7Placer

typescript pixelplace.io bot

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name          7Placer
// @description   typescript pixelplace.io bot
// @version       2.2.1
// @author        Azti
// @include       /^https:\/\/pixelplace.io\/\d+-/
// @require       https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js
// @require       https://update.greasyfork.org/scripts/498080/1395134/Hacktimer.js
// @require       https://cdnjs.cloudflare.com/ajax/libs/toastify-js/1.12.0/toastify.js
// @require       https://cdn.jsdelivr.net/npm/[email protected]/src/rgbquant.min.js
// @grant         none
// @run-at        document-start
// @namespace https://greasyfork.org/users/374503
// ==/UserScript==

/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./node_modules/css-loader/dist/cjs.js!./src/GUI/GUIStyle.css":
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://fonts.cdnfonts.com/css/verdana);"]);
// Module
___CSS_LOADER_EXPORT___.push([module.id, `:root {
    --gui-main-color: #7300ff;
    --gui-main-color-fade: color-mix(in oklab, var(--gui-main-color), #000)
}

/* GUI */
#sevenGUI {
    all: initial;
    background-color: #1C1C1C;
    height: 40vh;
    width: 50vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    border: #262626;
    border-style: solid;
    border-width: 0.4vh;
    user-select: none;
    display: flex;
    flex-direction: column;
    z-index: 1000;
}

#sevenGUIheader {
    color: var(--gui-main-color);
    text-align: center;
    font-family: Verdana, Tahoma, sans-serif;
    background-color: #1a1a1a;
    font-size: 1.5vh;
}

#sevenGUIheader:hover {
    cursor: move;
}

#rainbowBar {
    all: revert;
    height: 0.3vh;
    width: 100%;
    background: linear-gradient(90deg, rgba(0,140,255,1) 0%, rgba(96,39,147,1) 21%, rgba(140,77,78,1) 63%, rgba(181,181,0,1) 100%);
}

#generalContainer {
    display: flex;
    flex-grow: 1; /* Takes remaining space */
    min-height: 0;
}

/* SIDE BAR */
#sideBarContainer {
    height: 100%;
    width: 10vh;
    background-color: #161616;
    display: flex;
    flex-flow: column;
    align-items: center;
    position: relative;
}

#sideBarTabContainer {
    display: flex;
    flex-flow: column;
    flex-grow: 1;
    width: 100%;
    overflow-y: overlay;
    scrollbar-width: thin;
    scrollbar-color: grey #161616;
    direction: rtl;
}

.sideBarTab {
    height: 7vh;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.sideBarTab img {
    object-fit: contain;
    width: 100%;
    filter: invert(1) brightness(0.45);
    height: 80%;
}

.sideBarTab.selected {
    background-color: #1C1C1C;
}

.sideBarTab.selected img {
    filter: invert(1) brightness(1);
}

#tabButton_settings {
    position: relative;
    bottom: 0;
}

/* TAB STUFF */
.GUITabContainer {
    all: revert;
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    flex-direction: column;
    position: relative;
    padding: 3%;
    gap: 3%;
}

.GUISubmenu {
    all: revert;
    min-width: 25%;
    max-width: 45%;
    box-sizing: border-box;
    flex-grow: 1;
    position: relative;
    background-color: #151515;
    border: #252525;
    border-width: 0.3vh;
    border-style: solid;
    display: flex;
}

.submenuInside {
    display: flex;
    all: revert;
    overflow-x: hidden;
    flex-grow: 1;
    padding-top: 2%;
    scrollbar-color: rgb(91, 91, 91) rgb(48, 48, 48);
    scrollbar-width: thin;
    padding: 2%;
    min-width: 0;
    max-width: 100%;
}

.submenuTitle {
    all: revert;
    position: absolute;
    top: -1.9vh;
    left: 5%;
    color: white;
    font-weight: bold;
    font-family: 'Verdana', sans-serif;
    font-size: 1vh;
}

/* Toggle */
.toggleContainer {
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
    gap: 5%;
    padding-left: 7%;
    overflow: hidden;
    margin-top: 3%;
}

.toggleSquare {
    padding-left: 5%;
    padding-bottom: 5%;
    background: rgb(58, 58, 58);
    border: solid #000000 0.2vh;
}

.toggleContainer.toggled .toggleSquare {
    background: linear-gradient(180deg, var(--gui-main-color) 0%, var(--gui-main-color-fade) 100%);
}

.toggleName {
    color: rgb(219, 219, 219);
    font-family: 'Verdana', sans-serif;
    font-size: 1vh;
    margin: 3%;
}

/* text */
.textContainer {
    width: 100%;
    font-size: 1vh;
    justify-content: center;
    display: flex;
    flex-direction: row;
    justify-content: left;
    overflow: hidden;
    margin-top: 3%;
    justify-content: center;
}

.textContainer > p {
    color: rgb(219, 219, 219);
    font-family: 'Verdana', sans-serif;
    font-size: 1vh;
    margin: 3%;
}

/* Drop Image */
.dropImage {
    position: relative;
    display: flex;
    height: 7vh;
    width: 80%;
    align-self: center;
    margin-left: auto;
    margin-right: auto;
    background-color: #242424;
    border: 0.3vh solid var(--gui-main-color);
    justify-content: center;
    align-items: center;
    margin-top: 5%;
    color: white;
    font-family: Verdana, sans-serif;
    font-size: 1vh;
}

/* Button */
.button {
    position: relative;
    display: flex;
    height: 1.7vh;
    width: 80%;
    background: linear-gradient(180deg, rgb(76, 75, 75) 0%, rgb(25, 25, 25) 100%);
    border: 0.2vh solid #000000;
    justify-content: center;
    align-items: center;
    justify-self: center;
    margin-top: 5%;
    color: white;
    font-family: Verdana, sans-serif;
    font-size: 1vh;
}

.button:active {
    background: linear-gradient(180deg, rgb(31, 31, 31) 0%, rgb(25, 25, 25) 100%)
}

/* Input */
.inputContainer {
    display: flex;
    position: relative;
    justify-content: center;
    margin-top: 5%;
    width: 7vh;
    margin-left: auto;
    margin-right: auto;
}

.inputContainer input {
    text-align: center;
    height: 1.7vh;
    width: 100%;
    background-color: #2b2b2b;
    border: 1px solid #000;
    color: white;
    font-family: Verdana, Tahoma, sans-serif;
    font-size: 1.1vh;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Select */
.submenuInside select {
    background: linear-gradient(180deg, rgb(76, 75, 75) 0%, rgb(25, 25, 25) 100%);
    border: none;
    color: rgb(203, 203, 203);
    font-family: Verdana, Tahoma, sans-serif;
    height: 1.7vh;
    width: 80%;
    display: block;
    margin: 5% auto;
    font-size: 1vh;
}
select option {
    background: rgb(25, 25, 25);
    color: #fff;
}

/* ColorSelect */
.colorPicker {
    font-family: Verdana, sans-serif;
    font-size: 1vh;
    color: white;
    text-align: center;
}

.colorPicker input {
    height: 1.7vh;
    width: 80%;
    margin-top: 0.2vh;
}
input[type="color"]::-webkit-color-swatch-wrapper {
	padding: 0;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/***/ ((module) => {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
  var list = [];

  // return the list of modules as css string
  list.toString = function toString() {
    return this.map(function (item) {
      var content = "";
      var needLayer = typeof item[5] !== "undefined";
      if (item[4]) {
        content += "@supports (".concat(item[4], ") {");
      }
      if (item[2]) {
        content += "@media ".concat(item[2], " {");
      }
      if (needLayer) {
        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
      }
      content += cssWithMappingToString(item);
      if (needLayer) {
        content += "}";
      }
      if (item[2]) {
        content += "}";
      }
      if (item[4]) {
        content += "}";
      }
      return content;
    }).join("");
  };

  // import a list of modules into the list
  list.i = function i(modules, media, dedupe, supports, layer) {
    if (typeof modules === "string") {
      modules = [[null, modules, undefined]];
    }
    var alreadyImportedModules = {};
    if (dedupe) {
      for (var k = 0; k < this.length; k++) {
        var id = this[k][0];
        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }
    for (var _k = 0; _k < modules.length; _k++) {
      var item = [].concat(modules[_k]);
      if (dedupe && alreadyImportedModules[item[0]]) {
        continue;
      }
      if (typeof layer !== "undefined") {
        if (typeof item[5] === "undefined") {
          item[5] = layer;
        } else {
          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
          item[5] = layer;
        }
      }
      if (media) {
        if (!item[2]) {
          item[2] = media;
        } else {
          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
          item[2] = media;
        }
      }
      if (supports) {
        if (!item[4]) {
          item[4] = "".concat(supports);
        } else {
          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
          item[4] = supports;
        }
      }
      list.push(item);
    }
  };
  return list;
};

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
/***/ ((module) => {

"use strict";


module.exports = function (i) {
  return i[1];
};

/***/ }),

/***/ "./src/GUI/GUIStyle.css":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./node_modules/css-loader/dist/cjs.js!./src/GUI/GUIStyle.css");

      
      
      
      
      
      
      
      
      

var options = {};

options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());

var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, options);




       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A && _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.locals ? _node_modules_css_loader_dist_cjs_js_GUIStyle_css__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.locals : undefined);


/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/***/ ((module) => {

"use strict";


var stylesInDOM = [];
function getIndexByIdentifier(identifier) {
  var result = -1;
  for (var i = 0; i < stylesInDOM.length; i++) {
    if (stylesInDOM[i].identifier === identifier) {
      result = i;
      break;
    }
  }
  return result;
}
function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];
  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var indexByIdentifier = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3],
      supports: item[4],
      layer: item[5]
    };
    if (indexByIdentifier !== -1) {
      stylesInDOM[indexByIdentifier].references++;
      stylesInDOM[indexByIdentifier].updater(obj);
    } else {
      var updater = addElementStyle(obj, options);
      options.byIndex = i;
      stylesInDOM.splice(i, 0, {
        identifier: identifier,
        updater: updater,
        references: 1
      });
    }
    identifiers.push(identifier);
  }
  return identifiers;
}
function addElementStyle(obj, options) {
  var api = options.domAPI(options);
  api.update(obj);
  var updater = function updater(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
        return;
      }
      api.update(obj = newObj);
    } else {
      api.remove();
    }
  };
  return updater;
}
module.exports = function (list, options) {
  options = options || {};
  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];
    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDOM[index].references--;
    }
    var newLastIdentifiers = modulesToDom(newList, options);
    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];
      var _index = getIndexByIdentifier(_identifier);
      if (stylesInDOM[_index].references === 0) {
        stylesInDOM[_index].updater();
        stylesInDOM.splice(_index, 1);
      }
    }
    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
/***/ ((module) => {

"use strict";


var memo = {};

/* istanbul ignore next  */
function getTarget(target) {
  if (typeof memo[target] === "undefined") {
    var styleTarget = document.querySelector(target);

    // Special case to return head of iframe instead of iframe itself
    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
      try {
        // This will throw an exception if access to iframe is blocked
        // due to cross-origin restrictions
        styleTarget = styleTarget.contentDocument.head;
      } catch (e) {
        // istanbul ignore next
        styleTarget = null;
      }
    }
    memo[target] = styleTarget;
  }
  return memo[target];
}

/* istanbul ignore next  */
function insertBySelector(insert, style) {
  var target = getTarget(insert);
  if (!target) {
    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
  }
  target.appendChild(style);
}
module.exports = insertBySelector;

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function insertStyleElement(options) {
  var element = document.createElement("style");
  options.setAttributes(element, options.attributes);
  options.insert(element, options.options);
  return element;
}
module.exports = insertStyleElement;

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


/* istanbul ignore next  */
function setAttributesWithoutAttributes(styleElement) {
  var nonce =  true ? __webpack_require__.nc : 0;
  if (nonce) {
    styleElement.setAttribute("nonce", nonce);
  }
}
module.exports = setAttributesWithoutAttributes;

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function apply(styleElement, options, obj) {
  var css = "";
  if (obj.supports) {
    css += "@supports (".concat(obj.supports, ") {");
  }
  if (obj.media) {
    css += "@media ".concat(obj.media, " {");
  }
  var needLayer = typeof obj.layer !== "undefined";
  if (needLayer) {
    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
  }
  css += obj.css;
  if (needLayer) {
    css += "}";
  }
  if (obj.media) {
    css += "}";
  }
  if (obj.supports) {
    css += "}";
  }
  var sourceMap = obj.sourceMap;
  if (sourceMap && typeof btoa !== "undefined") {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  }

  // For old IE
  /* istanbul ignore if  */
  options.styleTagTransform(css, styleElement, options.options);
}
function removeStyleElement(styleElement) {
  // istanbul ignore if
  if (styleElement.parentNode === null) {
    return false;
  }
  styleElement.parentNode.removeChild(styleElement);
}

/* istanbul ignore next  */
function domAPI(options) {
  if (typeof document === "undefined") {
    return {
      update: function update() {},
      remove: function remove() {}
    };
  }
  var styleElement = options.insertStyleElement(options);
  return {
    update: function update(obj) {
      apply(styleElement, options, obj);
    },
    remove: function remove() {
      removeStyleElement(styleElement);
    }
  };
}
module.exports = domAPI;

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function styleTagTransform(css, styleElement) {
  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = css;
  } else {
    while (styleElement.firstChild) {
      styleElement.removeChild(styleElement.firstChild);
    }
    styleElement.appendChild(document.createTextNode(css));
  }
}
module.exports = styleTagTransform;

/***/ }),

/***/ "./src/GUI/GUICore.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   MainGUI: () => (/* binding */ MainGUI),
/* harmony export */   Submenu: () => (/* binding */ Submenu),
/* harmony export */   Tab: () => (/* binding */ Tab)
/* harmony export */ });
/* harmony import */ var _dragElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/dragElement.ts");

class MainGUI {
    constructor() {
        this._tabs = new Map();
        this._createMainGUI();
    }
    createTab(name, tab_image) {
        if (this._tabs.has(name))
            return;
        const created_tab = new Tab(this, name, tab_image);
        this._tabs.set(name, created_tab);
        return created_tab;
    }
    switchTab(name) {
        const tab = this._tabs.get(name);
        this._tabs.forEach((tab) => {
            tab.hide();
        });
        tab.show();
    }
    getTab(name) {
        return this._tabs.get(name);
    }
    _createMainGUI() {
        // main gui elements
        let GUI_core = `
        <div id='sevenGUI' style="display: none;">
            <div id="sevenGUIheader">7PLACER</div>
            <div id="rainbowBar"></div>
            <div id="generalContainer">
                <div id="sideBarContainer">
                    <div id="sideBarTabContainer"></div>
                </div>
            </div>
        </div>
        `;
        $("body").append(GUI_core);
        (0,_dragElement__WEBPACK_IMPORTED_MODULE_0__["default"])($("#sevenGUI")[0]);
        // menu toggle
        const toggle_gui_button = $('<a href="#" title="Seven Opener" class="grey margin-top-button"><img src="https://infonutricional.tomatelavida.com.co/wp-content/uploads/2023/06/postobon_informacion_nutriconallogo-7up.png" alt="icon"></a>');
        toggle_gui_button.css("border-color", "var(--gui-main-color)");
        $("#menu-buttons").append(toggle_gui_button);
        let toggle = false;
        toggle_gui_button.on("click", () => {
            if (toggle) {
                $('#sevenGUI').css("display", "none");
                toggle = false;
            }
            else {
                $('#sevenGUI').css({ "display": "flex", "top": "50%", "left": "50%", "transform": "translate(-50%, -50%)" });
                toggle = true;
            }
        });
        // settings tab
        const settings_tab = this.createTab('settings', 'https://upload.wikimedia.org/wikipedia/commons/d/dc/Settings-icon-symbol-vector.png');
        settings_tab.tab_button.appendTo('#sideBarContainer');
    }
    ;
    static get instance() {
        if (!this._instance) {
            this._instance = new MainGUI;
        }
        return this._instance;
    }
}
;
class Tab {
    constructor(main_gui, name, tab_image) {
        this._submenus = new Map();
        this._main_gui = main_gui;
        this._createTab(name, tab_image);
    }
    ;
    createSubmenu(name) {
        if (this._submenus.has(name))
            return;
        const created_submenu = new Submenu(this, name);
        this._submenus.set(name, created_submenu);
        return created_submenu;
    }
    getSubmenu(name) {
        return this._submenus.get(name);
    }
    show() {
        this._tab_button.addClass("selected");
        this._submenu_container.css("display", "flex");
    }
    hide() {
        this._tab_button.removeClass("selected");
        this._submenu_container.css("display", "none");
    }
    _createTab(name, tab_image) {
        this._tab_button = $(`<div class="sideBarTab" id="tabButton_${name}"><img src="${tab_image}" class="sideBarTab" draggable="false"></div>`);
        this._tab_button.on("click", () => {
            this._main_gui.switchTab(name);
        });
        $("#sideBarTabContainer").append(this._tab_button);
        this._submenu_container = $(`<div class="GUITabContainer" id="tab_${name}">`).css("display", "none");
        $("#generalContainer").append(this._submenu_container);
    }
    ;
    get submenu_container() {
        return this._submenu_container;
    }
    get tab_button() {
        return this._tab_button;
    }
}
class Submenu {
    constructor(parent_tab, name) {
        this._parent_tab = parent_tab;
        this._createSubmenu(name);
    }
    createToggle(name, default_state, callback) {
        const container = $(`<div class="toggleContainer" id="toggle_${name}"></div>`);
        container.append('<div class="toggleSquare"></div>');
        container.append(`<p class="toggleName">${name}</p>`);
        this._submenu_inside.append(container);
        if (default_state) {
            container.addClass("toggled");
        }
        let state = default_state;
        container.on("click", () => {
            if (state) {
                state = false;
                container.removeClass("toggled");
            }
            else {
                state = true;
                container.addClass("toggled");
            }
            callback(state);
        });
        return container;
    }
    createButton(name, callback) {
        const button = $(`<div class="button" id="button_${name}">${name}</div>`);
        this._submenu_inside.append(button);
        button.on("click", () => {
            callback();
        });
        return button;
    }
    createDrop(label, onFile) {
        const drop_container = $(`<div class="dropImage">${label}</div>`);
        drop_container.on("dragover", function (event) {
            event.preventDefault();
        });
        drop_container.on("drop", function (event) {
            event.preventDefault();
            const file = event.originalEvent.dataTransfer.files[0];
            if (file.type.startsWith("image/")) {
                const reader = new FileReader();
                reader.onload = function (e) {
                    drop_container.html(`<img src="${e.target.result}" style="max-width: 100%; max-height: 100%;">`);
                };
                reader.readAsDataURL(file);
                onFile(file);
            }
        });
        drop_container.on("click", () => {
            const input = $('<input type="file" accept="image/*" style="display:none">');
            $("body").append(input);
            input.on('change', function () {
                const file = input.prop('files')[0];
                if (!file)
                    return;
                const dropTarget = drop_container[0];
                const dataTransfer = new DataTransfer();
                dataTransfer.items.add(file);
                const dragEnter = new DragEvent('dragenter', { dataTransfer: dataTransfer });
                const dragOver = new DragEvent('dragover', { dataTransfer: dataTransfer });
                const drop = new DragEvent('drop', { dataTransfer: dataTransfer });
                dropTarget.dispatchEvent(dragEnter);
                dropTarget.dispatchEvent(dragOver);
                dropTarget.dispatchEvent(drop);
            });
            input.trigger("click");
        });
        this._submenu_inside.append(drop_container);
        return drop_container;
    }
    createInput(placeholder, type, onType) {
        const input = $(`<input id="${type}_input_${placeholder}" class="input" type="${type}" placeholder="${placeholder}">`);
        input.on("input", () => {
            onType(input.val());
        });
        this._submenu_inside.append($(`<div class="inputContainer"></div>`).append(input));
        return input;
    }
    createText(text) {
        const container = $(`<div class="textContainer">`);
        const text_elem = container.append(`<p>${text}</p>`);
        this._submenu_inside.append(container);
        return text_elem;
    }
    createSelect(default_value, options, onChange) {
        const selector = $(`<select id="selector_${default_value}"></select>`);
        selector.append(`<option value="">${default_value}</option>`);
        for (const option of options) {
            selector.append(`<option value="${option.value}">${option.label}</option>`);
        }
        selector.on("change", () => {
            const value = selector.val();
            if (value == "")
                return;
            onChange(value);
        });
        this._submenu_inside.append(selector);
        return selector;
    }
    createColor(label, default_color, onChange) {
        const color_selector = $(`<input type="color" value="${default_color}" />`);
        const container = $(`<div class="colorPicker"><div>${label}</div></div>`).append(color_selector);
        color_selector.on("input", () => {
            onChange(color_selector.val());
        });
        this._submenu_inside.append(container);
        return color_selector;
    }
    _createSubmenu(name) {
        this._submenu_element = $(`<div class="GUISubmenu" id="submenu_${name}">`);
        this._submenu_element.append(`<p class="submenuTitle">${name}</p>`);
        this._submenu_inside = $('<div class="submenuInside">');
        this._submenu_element.append(this._submenu_inside);
        this._parent_tab.submenu_container.append(this._submenu_element);
    }
}


/***/ }),

/***/ "./src/GUI/TAB_Botting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/index.ts");
/* harmony import */ var _modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
/* harmony import */ var _GUICore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/GUI/GUICore.ts");




$(function () {
    const GUI = _GUICore__WEBPACK_IMPORTED_MODULE_2__.MainGUI.instance;
    const TAB = GUI.createTab("Botting", "https://pngimg.com/d/android_logo_PNG5.png");
    GUI.switchTab("Botting");
    const image_submenu = TAB.createSubmenu("Images");
    let current_image;
    let current_image_x;
    let current_image_y;
    image_submenu.createDrop("Drop Image", dropped_image => {
        current_image = dropped_image;
    });
    image_submenu.createInput("X", "number", x_coord => {
        current_image_x = parseInt(x_coord);
    });
    image_submenu.createInput("Y", "number", y_coord => {
        current_image_y = parseInt(y_coord);
    });
    const dithering_options = [
        { label: "None", value: "None" },
        { label: "FloydSteinberg", value: "FloydSteinberg" },
        { label: "FalseFloydSteinberg", value: "FalseFloydSteinberg" },
        { label: "Stucki", value: "Stucki" },
        { label: "Atkinson", value: "Atkinson" },
        { label: "Jarvis", value: "Jarvis" },
        { label: "Burkes", value: "Burkes" },
        { label: "Sierra", value: "Sierra" },
        { label: "TwoSierra", value: "TwoSierra" },
        { label: "SierraLite", value: "SierraLite" },
    ];
    image_submenu.createSelect("-- select dithering --", dithering_options, (value) => {
        if (value == "None") {
            window.seven.dither = null;
            return;
        }
        window.seven.dither = value;
    });
    image_submenu.createButton("Start", () => {
        (0,_modules__WEBPACK_IMPORTED_MODULE_0__.botImage)(current_image_x, current_image_y, current_image);
    });
    image_submenu.createButton("Stop", () => {
        _modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
    });
    const protecting_submenu = TAB.createSubmenu("Protecting");
    protecting_submenu.createToggle("Protect", false, (state) => {
        window.seven.protect = state;
    });
    protecting_submenu.createToggle("Agressive protection", false, (state) => {
        window.seven.agressive_protection = state;
    });
    const square_submenu = TAB.createSubmenu("Squares");
    let square_x1;
    let square_y1;
    let square_x2;
    let square_y2;
    square_submenu.createText("Select color as usual");
    square_submenu.createInput('X1', "number", text => {
        square_x1 = parseInt(text);
    });
    square_submenu.createInput('Y1', "number", text => {
        square_y1 = parseInt(text);
    });
    square_submenu.createInput('X2', "number", text => {
        square_x2 = parseInt(text);
    });
    square_submenu.createInput('Y2', "number", text => {
        square_y2 = parseInt(text);
    });
    square_submenu.createButton("Start", () => {
        (0,_modules__WEBPACK_IMPORTED_MODULE_0__.BotSquare)(square_x1, square_y1, square_x2, square_y2, (0,_modules_util_getClientMouse__WEBPACK_IMPORTED_MODULE_3__["default"])()[2]);
    });
    square_submenu.createButton("Stop", () => {
        _modules_defaultModules_Queue__WEBPACK_IMPORTED_MODULE_1__["default"].stop();
    });
});


/***/ }),

/***/ "./src/GUI/TAB_Settings.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _GUICore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/GUI/GUICore.ts");
/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./package.json");


$(function () {
    const gui = _GUICore__WEBPACK_IMPORTED_MODULE_1__.MainGUI.instance;
    const tab = gui.getTab("settings");
    const bot_settings = tab.createSubmenu("bot settings");
    bot_settings.createText("pixel speed default is 21");
    const pixelspeed_input = bot_settings.createInput(`pixel speed`, "number", (number) => {
        number = parseInt(number);
        if (number < 16.5)
            number = 16.5;
        window.seven.pixelspeed = number;
    });
    const sort_options = [
        { label: "none", value: "none" },
        { label: "grid", value: "grid" },
        { label: "top left", value: "topleft" },
        { label: "random", value: "rand" },
        { label: "colors", value: "colors" },
        { label: "vertical", value: "vertical" },
        { label: "horizontal", value: "horizontal" },
        { label: "circle", value: "circle" },
    ];
    bot_settings.createSelect('-- select sorting --', sort_options, value => {
        window.seven.order = value;
    });
    bot_settings.createText('Only works in canvas your admin');
    const pixel_type_options = [
        { label: "default", value: "default" },
        { label: "protect", value: "protect" },
        { label: "sea protect", value: "seaprotect" },
        { label: "unprotect", value: "unprotect" },
        { label: "replace", value: "replace" },
    ];
    bot_settings.createSelect('-- select tool --', pixel_type_options, value => {
        window.seven.pixel_type = value;
    });
    bot_settings.createColor("GUI Color Picker", "", color => {
        $(":root").css("--gui-main-color", color);
    });
    tab.createSubmenu("version").createText("7Placer version " + _package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE);
});


/***/ }),

/***/ "./src/GUI/dragElement.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ dragElement)
/* harmony export */ });
// W3SCHOOLS
function dragElement(elmnt) {
    var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
    if (document.getElementById(elmnt.id + "header")) {
        // if present, the header is where you move the DIV from:
        document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
    }
    else {
        // otherwise, move the DIV from anywhere inside the DIV:
        elmnt.onmousedown = dragMouseDown;
    }
    function dragMouseDown(e) {
        e.preventDefault();
        // get the mouse cursor position at startup:
        pos3 = e.clientX;
        pos4 = e.clientY;
        document.onmouseup = closeDragElement;
        // call a function whenever the cursor moves:
        document.onmousemove = elementDrag;
    }
    function elementDrag(e) {
        e.preventDefault();
        // calculate the new cursor position:
        pos1 = pos3 - e.clientX;
        pos2 = pos4 - e.clientY;
        pos3 = e.clientX;
        pos4 = e.clientY;
        // set the element's new position:
        elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
        elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
    }
    function closeDragElement() {
        // stop moving when mouse button is released:
        document.onmouseup = null;
        document.onmousemove = null;
    }
}


/***/ }),

/***/ "./src/GUI/style.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   canvascss: () => (/* binding */ canvascss),
/* harmony export */   drop: () => (/* binding */ drop),
/* harmony export */   trackercss: () => (/* binding */ trackercss)
/* harmony export */ });
const trackercss = {
    top: '0px',
    left: '0px',
    borderColor: 'rgb(138,43,226)',
    color: 'rgb(138,43,226)',
    backgroundColor: 'black',
    opacity: '60%',
    display: 'none',
    transition: 'all 0.06s ease-in-out',
    pointerEvents: 'none'
};
// design by 0vc4
const drop = {
    width: 'calc(100% - 2em)',
    height: 'calc(100% - 2em)',
    position: 'fixed',
    left: '0px',
    top: '0px',
    backgroundColor: 'rgba(0, 0, 0, 0.533)',
    zIndex: '9999-',
    display: 'flex',
    color: 'white',
    fontSize: '48pt',
    justifyContent: 'center',
    alignItems: 'center',
    border: '3px white dashed',
    borderRadius: '18px',
    margin: '1em',
};
const canvascss = {
    position: 'absolute',
    pointerEvents: 'none',
    left: '0px',
    top: '0px',
    imageRendering: 'pixelated',
    opacity: '50%',
    animation: 'blink 3s ease-out infinite'
};
const blink = document.createElement("style");
blink.type = "text/css";
blink.innerText = `
@keyframes blink {
  0% { opacity: .30; }
  50% { opacity: .10; }
  100% { opacity: .30; }
}`;
document.head.appendChild(blink);


/***/ }),

/***/ "./src/auth/Auth.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Auth)
/* harmony export */ });
class Auth {
    constructor(authObj) {
        this.authKey = authObj.authKey;
        this.authId = authObj.authId;
        this.authToken = authObj.authToken;
    }
}


/***/ }),

/***/ "./src/auth/util/commands.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   deleteAccount: () => (/* binding */ deleteAccount),
/* harmony export */   public_commands: () => (/* binding */ public_commands)
/* harmony export */ });
/* harmony import */ var _Auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/auth/Auth.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/requests/get-painting.ts");
/* harmony import */ var _bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/bot/util/websocket.ts");




var LocalAccounts = new Map();
const public_commands = {
    saveAuth,
    getAuth,
    saveAccount,
    getAccounts,
    deleteAccount,
    connect,
    connectAll,
    disconnect,
    disconnectAll,
};
// save changes in localstorage
function storagePush() {
    const obj = Object.fromEntries(LocalAccounts);
    localStorage.setItem('LocalAccounts', JSON.stringify(obj));
}
// restore localstorage to localaccounts
function storageGet() {
    const storedAccounts = localStorage.getItem('LocalAccounts');
    if (storedAccounts) {
        const parsedAccounts = JSON.parse(storedAccounts);
        LocalAccounts = new Map(Object.entries(parsedAccounts));
    }
    else
        LocalAccounts = new Map();
}
async function delay(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
// saves from params
function saveAuth(username, authId, authKey, authToken, print = true) {
    if (!authId || !authKey || !authToken) {
        console.log('[7p] saveAuth usage: saveAuth(username, authId, authKey, authToken)');
        return;
    }
    const account = { authId, authKey, authToken };
    LocalAccounts.set(username, account);
    storagePush();
    if (print)
        console.log('Auth saved. Saved list: ', LocalAccounts);
}
// returns client's auth
async function getAuth(print = true) {
    const cookieStore = window.cookieStore;
    const authToken = await cookieStore.get("authToken");
    const authKey = await cookieStore.get("authKey");
    const authId = await cookieStore.get("authId");
    if (authToken == null || authKey == null || authId == null) {
        console.log('[7p] Please login first!');
        return;
    }
    if (print)
        console.log(`authId = "${authId.value}", authKey = "${authKey.value}", authToken = "${authToken.value}"`);
    return { authToken: authToken.value, authKey: authKey.value, authId: authId.value };
}
// saves auth from client cookies
async function saveAccount() {
    storageGet();
    const AuthObj = await getAuth(false);
    const userinfo = await (0,_requests_get_painting__WEBPACK_IMPORTED_MODULE_1__["default"])(AuthObj.authId, AuthObj.authKey, AuthObj.authToken);
    saveAuth(userinfo.user.name, AuthObj.authId, AuthObj.authKey, AuthObj.authToken, false);
    console.log('Auth saved. Saved list: ', LocalAccounts);
}
// logs saved auths
function getAccounts() {
    storageGet();
    if (!LocalAccounts || LocalAccounts.size == 0) {
        console.log('No accounts found');
        return;
    }
    console.log(`Found ${LocalAccounts.size} accounts`);
    console.log(LocalAccounts);
}
// deletes auths
function deleteAccount(identifier) {
    if (identifier == null) {
        console.log('deleteAccount usage: deleteAccount(user or index)');
        return;
    }
    storageGet();
    if (typeof identifier == 'string') {
        if (identifier == 'all') {
            LocalAccounts.forEach((value, key) => {
                LocalAccounts.delete(key);
            });
            return;
        }
        if (!LocalAccounts.has(identifier)) {
            console.log(`[7p] Error deleting: No account with name ${identifier}`);
            return;
        }
        LocalAccounts.delete(identifier);
        console.log(`[7p] Deleted account ${identifier}.`);
        console.log(LocalAccounts);
    }
    if (typeof identifier == 'number') {
        const keys = Array.from(LocalAccounts.keys());
        if (identifier > keys.length) {
            console.log(`[7p] Error deleting: No account with index ${identifier}`);
            return;
        }
        LocalAccounts.delete(keys[identifier]);
        console.log(`Deleted account ${identifier}`);
        console.log(LocalAccounts);
    }
    storagePush();
}
async function connect(username) {
    storageGet();
    const account = LocalAccounts.get(username);
    const seven = window.seven;
    if (!username) {
        console.log('[7p] Missing bot username, connect("username")');
        return;
    }
    if (!account) {
        console.log(`[7p] No account found with username ${username}`);
        return;
    }
    if (seven.bots.has(username)) {
        console.log(`[7p] Account ${username} is already connected.`);
        return;
    }
    const auth = new _Auth__WEBPACK_IMPORTED_MODULE_3__["default"](account);
    (0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__.createBot)(auth, username);
}
async function connectAll() {
    storageGet();
    const seven = window.seven;
    for (const [username, account] of LocalAccounts) {
        if (seven.bots.has(username)) {
            console.log(`[7p] Account ${username} is already connected.`);
            continue;
        }
        const auth = new _Auth__WEBPACK_IMPORTED_MODULE_3__["default"](account);
        (0,_bot_util_websocket__WEBPACK_IMPORTED_MODULE_2__.createBot)(auth, username);
        await delay(500);
    }
}
function disconnect(username) {
    const seven = window.seven;
    const bot = seven.bots.get(username);
    if (!username) {
        console.log('[7p] disconnect requires a username, disconnect("username")');
        return;
    }
    if (!bot) {
        console.log(`[7p] No bot connected with username ${username}`);
        return;
    }
    ;
    bot.kill();
}
function disconnectAll() {
    const seven = window.seven;
    if (seven.bots.size == 5) {
        console.log('[7p] No bots connected.');
        return;
    }
    ;
    seven.bots.forEach((bot, name) => {
        if (name == "Client") {
            return;
        }
        ;
        bot.kill();
    });
}


/***/ }),

/***/ "./src/bot/Bot.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Bot: () => (/* binding */ Bot),
/* harmony export */   Client: () => (/* binding */ Client),
/* harmony export */   WSBot: () => (/* binding */ WSBot)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _GUI_style__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/GUI/style.ts");
/* harmony import */ var _requests_get_painting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/requests/get-painting.ts");
/* harmony import */ var _util_MessageHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./src/bot/util/MessageHandler.ts");
/* harmony import */ var _modules_defaultModules_Protect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/modules/defaultModules/Protect.ts");
/* harmony import */ var _auth_util_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./src/auth/util/commands.ts");








class Bot {
    constructor(websocket) {
        this.trackeriters = 0;
        this.lastplace = performance.now();
        this._ws = websocket;
        this.handler = new _util_MessageHandler__WEBPACK_IMPORTED_MODULE_6__.MessageHandler(this, this.ws);
    }
    ;
    emit(event, params) {
        this.ws.send(`42["${event}",${params}]`);
    }
    ;
    kill() {
        const seven = window.seven;
        seven.bots.delete(this.username);
        if (this._ws.readyState == 1) {
            this._ws.close();
        }
        ;
    }
    ;
    async placePixel(pixel, tracker = true) {
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
        const seven = window.seven;
        if (window.seven.pixel_type == "default" && (canvas.isSameColor(pixel) || canvas.isProtected(pixel))) {
            return true;
        }
        ;
        while (performance.now() - this.lastplace < seven.pixelspeed) {
            await new Promise(resolve => setTimeout(resolve, 0));
        }
        ;
        // console.log(performance.now() - this.lastplace)
        const pixel_param = this.determinePixelType(pixel);
        this.emit('p', pixel_param);
        this.lastplace = performance.now();
        if (tracker && this.trackeriters >= 6) {
            $(this.tracker).css({ top: pixel.y, left: pixel.x, display: 'block' });
            this.trackeriters = 0;
        }
        ;
        this.trackeriters += 1;
        clearTimeout(this._trackerTimeout);
        this._trackerTimeout = setTimeout(() => {
            this.tracker?.hide();
        }, 5000);
        return true;
    }
    ;
    determinePixelType(pixel, type) {
        const types = {
            default: `[${pixel.x},${pixel.y},${pixel.color},1]`,
            protect: `[${pixel.x},${pixel.y},${pixel.color},1,1]`,
            seaprotect: `[${pixel.x},${pixel.y},-100,1,1]`,
            unprotect: `[${pixel.x},${pixel.y},${pixel.color},1,2]`,
            replace: `[${pixel.x}, ${pixel.y}, ${pixel.color}, 1, 3]`
        };
        if (!type)
            type = window.seven.pixel_type;
        if (!(type in types)) {
            throw new Error(type + " is not a valid pixel type.");
        }
        return types[type];
    }
    ;
    static async findAvailableBot() {
        const seven = window.seven;
        const bots = seven.bots;
        var tick = 0;
        while (true) {
            for (const [_, bot] of bots) {
                if (Date.now() - bot.lastplace >= seven.pixelspeed) {
                    // console.log(`[7p] found available bot: ${bot.username}, ${ Date.now() - bot.lastplace }`);
                    return bot;
                }
                ;
            }
            ;
            tick += 1;
            if (tick == seven.tickspeed) {
                tick = 0;
                await new Promise(resolve => setTimeout(resolve, 0));
            }
            ;
        }
        ;
    }
    createTracker() {
        const tracker = $('<div class="track" id="bottracker">').text(`[7P] ${this.username}`).css(_GUI_style__WEBPACK_IMPORTED_MODULE_2__.trackercss);
        $('#canvas').ready(function () {
            // console.log(`[7p] created tracker: ${name}`)
            $('#painting-move').append(tracker);
        });
        return tracker;
    }
    ;
    get ws() {
        return this._ws;
    }
    ;
}
class WSBot extends Bot {
    constructor(auth, username, websocket) {
        super(websocket);
        this._auth = auth;
        this.username = username;
        this.startBot();
    }
    async startBot() {
        this.generalinfo = await (0,_requests_get_painting__WEBPACK_IMPORTED_MODULE_3__["default"])(this.auth.authId, this.auth.authKey, this.auth.authToken);
        this.tracker = this.createTracker();
        this.internalListeners();
    }
    get auth() {
        return this._auth;
    }
    ;
    internalListeners() {
        this.handler.on('server_time', (data) => {
            this.paliveServerTime = data[1]; // stores servertime for palive
        });
        // this.handler.on('ping.alive', () => {
        //         const hash = getPalive(this.paliveServerTime, this.botid);
        //         console.log('[7p]', this.username, ': pong =', hash, this.botid)
        //         this.emit('pong.alive', `"${hash}"`);
        // })
        this.handler.on('throw.error', (data) => {
            if (data[1] == 49) {
                console.log(`[7p] [Bot ${this.username}] Error (${data[1]}): This auth is not valid! Deleting account from saved accounts...`);
                (0,_auth_util_commands__WEBPACK_IMPORTED_MODULE_5__.deleteAccount)(this.username);
                this.kill();
                return;
            }
            else if (data[1] == 16) {
                this.kill();
            }
            ;
            console.log(`[7p] [Bot ${this.username}] Pixelplace WS error: ${data[1]}`);
        });
        this.handler.on('canvas', () => {
            const seven = window.seven;
            console.log(`[7p] Succesfully connected to bot ${this.username}`);
            seven.bots.set(this.username, this);
        });
        this.handler.on(2, () => {
            this.ws.send('3');
        });
        this.handler.on('start', () => {
            this.ws.send('40');
        });
        this.handler.on('init', () => {
            this.emit('init', `{"authKey":"${this.auth.authKey}","authToken":"${this.auth.authToken}","authId":"${this.auth.authId}","boardId":${_canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.ID}}`);
        });
    }
}
class Client extends Bot {
    constructor(websocket) {
        super(websocket);
        Client.instance = this;
        this.start();
    }
    ;
    static get Client() {
        return Client.instance;
    }
    ;
    start() {
        const seven = window.seven;
        this.username = 'Client';
        this.tracker = this.createTracker();
        this.internalListeners();
        seven.bots.set(this.username, this);
    }
    ;
    internalListeners() {
        // Bot canvas array updater
        this.handler.on('p', (data) => {
            for (const pixel of data[1]) {
                const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
                const x = pixel[0];
                const y = pixel[1];
                const color = pixel[2];
                const id = pixel[4];
                canvas.updatePixel(x, y, color);
                _modules_defaultModules_Protect__WEBPACK_IMPORTED_MODULE_4__["default"].checkPixel(x, y, color);
            }
        });
        // Rewrites some pixels after loading (I think because of cache lag)
        this.handler.on("canvas", (data) => {
            for (const pixel of data[1]) {
                const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
                const x = pixel[0];
                const y = pixel[1];
                const color = pixel[2];
                canvas.updatePixel(x, y, color);
            }
            ;
        });
    }
    ;
}
;


/***/ }),

/***/ "./src/bot/util/MessageHandler.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   MessageHandler: () => (/* binding */ MessageHandler)
/* harmony export */ });
class MessageHandler {
    constructor(bot, websocket) {
        this._listeners = new Map();
        this._bot = bot;
        this._websocket = websocket;
        this._startHandler();
    }
    ;
    on(message_type, callback) {
        if (!this._listeners.has(message_type))
            this._listeners.set(message_type, []);
        this._listeners.get(message_type).push(callback);
    }
    ;
    cancel(func) {
        this._listeners.forEach((value) => {
            value.filter((listener) => {
                listener != func;
            });
        });
    }
    ;
    _startHandler() {
        this._websocket.addEventListener('message', event => this._handleMessage(event));
    }
    _handleMessage(message) {
        message = message.data;
        if (message.startsWith('42')) {
            message = JSON.parse(message.slice(2));
            const message_type = message[0];
            this._fire(message_type, message);
            return;
        }
        if (message.startsWith('0')) {
            this._fire('start');
            return;
        }
        if (message.startsWith('40')) {
            this._fire('init');
        }
        this._fire(message);
    }
    ;
    _fire(message_type, data) {
        if (!this._listeners.has(message_type))
            return;
        this._listeners.get(message_type).forEach((listener) => {
            listener(data);
        });
    }
    ;
}
;


/***/ }),

/***/ "./src/bot/util/palive.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ getPalive),
/* harmony export */   getTDelay: () => (/* binding */ getTDelay)
/* harmony export */ });
// credits to symmetry
function randomString(charList, num) {
    return Array.from({ length: num }, () => charList.charAt(Math.floor(Math.random() * charList.length))).join('');
}
function randomString1(num) {
    const charList = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    return randomString(charList, num);
}
function randomString2(num) {
    const charList = 'gmbonjklezcfxta1234567890GMBONJKLEZCFXTA';
    return randomString(charList, num);
}
function randInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
const paliveCharmap = {
    "0": "g",
    "1": "n",
    "2": "b",
    "3": "r",
    "4": "z",
    "5": "s",
    "6": "l",
    "7": "x",
    "8": "i",
    "9": "o",
};
function getPalive(serverTime, userId) {
    const tDelay = getTDelay(serverTime);
    const sequenceLengths = [6, 5, 9, 4, 5, 3, 6, 6, 3];
    const currentTimestamp = Math.floor(Date.now() / 1000) + tDelay - 5400;
    const timestampString = currentTimestamp.toString();
    const timestampCharacters = timestampString.split('');
    let result = '';
    for (let i = 0; i < sequenceLengths.length; i++) {
        const sequenceNumber = sequenceLengths[i];
        result += randInt(0, 1) == 1 ? randomString2(sequenceNumber) : randomString1(sequenceNumber);
        const letter = paliveCharmap[parseInt(timestampCharacters[i])];
        result += randInt(0, 1) == 0 ? letter.toUpperCase() : letter;
    }
    result += userId.toString().substring(0, 1) + (randInt(0, 1) == 1 ? randomString2(randInt(4, 20)) : randomString1(randInt(4, 25)));
    return result + "0=";
}
function getTDelay(serverTime) {
    const currentTime = new Date().getTime() / 1e3;
    return Math.floor(serverTime - currentTime);
}


/***/ }),

/***/ "./src/bot/util/websocket.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createBot: () => (/* binding */ createBot)
/* harmony export */ });
/* harmony import */ var _Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");


// client
function hookClient() {
    const unmodifiedWS = window.WebSocket;
    window.WebSocket = function (url, protocols) {
        const socket = new unmodifiedWS(url, protocols);
        socket.addEventListener("open", () => new _Bot__WEBPACK_IMPORTED_MODULE_0__.Client(socket));
        socket.addEventListener("close", hookClient);
        // client.handler = new MessageHandler(client, socket)
        return socket;
    };
}
hookClient();
// multibot
async function createBot(auth, username) {
    console.log(`[7p] Attempting to connect account ${username}`);
    const socket = new WebSocket("wss://pixelplace.io/socket.io/?EIO=4&transport=websocket");
    const bot = new _Bot__WEBPACK_IMPORTED_MODULE_0__.WSBot(auth, username, socket);
    socket.addEventListener("close", () => { bot.kill(); });
}


/***/ }),

/***/ "./src/canvas/Canvas.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Canvas: () => (/* binding */ Canvas),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _GUI_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/GUI/style.ts");
/* harmony import */ var _modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/index.ts");
/* harmony import */ var _util_canvasloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/canvas/util/canvasloader.ts");



class Canvas {
    constructor() {
        this._ID = this.ParseID();
        this._isProcessed = false;
        this._customCanvas = this.newPreviewCanvas();
        this._colors = this.getPalette();
    }
    static get instance() {
        if (!Canvas._instance) {
            Canvas._instance = new Canvas;
            (0,_util_canvasloader__WEBPACK_IMPORTED_MODULE_2__.processColors)();
        }
        return Canvas._instance;
    }
    newPreviewCanvas() {
        const canvas = $(`<canvas width="2500" height="2088">`).css(_GUI_style__WEBPACK_IMPORTED_MODULE_0__.canvascss);
        $('#canvas').ready(function () {
            $('#painting-move').append(canvas);
        });
        const ctx = canvas[0].getContext("2d");
        return ctx;
    }
    isSameColor(pixel) {
        return this.getColor(pixel.x, pixel.y) == pixel.color;
    }
    ;
    isProtected(pixel) {
        return this.getColor(pixel.x, pixel.y) == 200;
    }
    getColor(x, y) {
        return this.canvasArray[x][y];
    }
    ;
    updatePixel(x, y, color) {
        if (!this._isProcessed)
            return;
        this.canvasArray[x][y] = color;
        // console.log(this.getColor(x, y), "->", color)
    }
    getPalette() {
        const palette_buttons = document.querySelectorAll("#palette-buttons a");
        let unsorted_array = [];
        palette_buttons.forEach((color) => {
            let id = color.getAttribute('data-id');
            let colorhex = color.getAttribute('title');
            unsorted_array.push({ color: colorhex, id: parseInt(id) });
        });
        unsorted_array.sort((a, b) => { return a.id - b.id; });
        let result = [];
        unsorted_array.forEach((colorobj) => {
            result.push((0,_modules__WEBPACK_IMPORTED_MODULE_1__.hex2rgb)(colorobj.color));
        });
        return result;
    }
    ;
    ParseID() {
        return parseInt(window.location.href.split("/").slice(-1)[0].split("-")[0]);
    }
    get previewCanvas() {
        return this._customCanvas;
    }
    get canvasArray() {
        return this._canvasArray;
    }
    get isProcessed() {
        return this._isProcessed;
    }
    set isProcessed(bool) {
        this._isProcessed = bool;
    }
    get ID() {
        return this._ID;
    }
    get colors() {
        return this._colors;
    }
    set canvasArray(array) {
        this._canvasArray = array;
        this.isProcessed = true;
    }
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Canvas);


/***/ }),

/***/ "./src/canvas/util/canvasloader.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   processColors: () => (/* binding */ processColors),
/* harmony export */   processWater: () => (/* binding */ processWater)
/* harmony export */ });
/* harmony import */ var _Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");

async function processWater() {
    const pixelplace_canvas = document.getElementById('canvas');
    var waterArray = Array.from({ length: pixelplace_canvas.width }, () => Array.from({ length: pixelplace_canvas.height }, () => 1));
    var image = await fetch('https://pixelplace.io/canvas/' + _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.ID + 'p.png?t200000=' + Date.now());
    if (!image.ok) {
        return waterArray;
    }
    const blob = await image.blob();
    const bitmap = await createImageBitmap(blob);
    const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);
    const context = canvas.getContext('2d', { "willReadFrequently": true });
    context.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height);
    const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
    return new Promise((resolve) => {
        if (bitmap.width == 1 && bitmap.height == 1) { // custom canvases ?
            resolve(waterArray);
        }
        for (let y = 0; y < canvas.height; y++) {
            for (let x = 0; x < canvas.width; x++) {
                const index = (y * imageData.width + x) * 4;
                var r = imageData.data[index];
                var g = imageData.data[index + 1];
                var b = imageData.data[index + 2];
                if (r == 204 && g == 204 && b == 204) {
                    waterArray[x][y] = 200;
                }
            }
        }
        console.log(waterArray);
        resolve(waterArray);
    });
}
async function processColors() {
    const start_total_time = performance.now();
    const canvas = _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
    const pixelplace_canvas = document.getElementById('canvas');
    const ctx = pixelplace_canvas.getContext('2d', { "willReadFrequently": true });
    const imageData = ctx.getImageData(0, 0, pixelplace_canvas.width, pixelplace_canvas.height);
    const pixelData = imageData.data;
    const start_water_time = performance.now();
    const waterArray = await processWater();
    const final_water_time = performance.now() - start_water_time;
    var CanvasArray = Array.from({ length: pixelplace_canvas.width }, () => Array.from({ length: pixelplace_canvas.height }, () => 1));
    const start_color_time = performance.now();
    if (waterArray.length > 1) {
        CanvasArray = waterArray;
    }
    for (let y = 0; y < pixelplace_canvas.height; y++) {
        for (let x = 0; x < pixelplace_canvas.width; x++) {
            if (CanvasArray[x][y] == 200) {
                continue;
            }
            const pixelIndex = (y * pixelplace_canvas.width + x) * 4;
            const r = pixelData[pixelIndex];
            const g = pixelData[pixelIndex + 1];
            const b = pixelData[pixelIndex + 2];
            const colorIndex = canvas.colors.findIndex(color => color[0] === r && color[1] === g && color[2] === b);
            CanvasArray[x][y] = colorIndex;
        }
    }
    console.log(CanvasArray);
    _Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.canvasArray = CanvasArray;
    // Logging
    const final_total_time = performance.now() - start_total_time;
    const final_colors_time = performance.now() - start_color_time;
    console.log(`[7p PROCESSING] Total Time: ${final_total_time}ms, Colors Time: ${final_colors_time}ms, Water Time: ${final_water_time}ms`);
    Toastify({
        text: `Canvas loaded!`,
        style: {
            background: "#1a1a1a",
            border: "solid rgb(0, 255, 81)"
        },
    }).showToast();
}


/***/ }),

/***/ "./src/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./package.json");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _util_ExternalLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/util/ExternalLoader.ts");



// @ts-ignore (GLOBAL IMPORT)
const context = __webpack_require__("./src sync recursive ^(?%21.*global\\.d).+");
context.keys().forEach(context);
Object.defineProperty(window.console, 'log', {
    configurable: false,
    enumerable: true,
    writable: false,
    value: console.log
});
console.log(`%c7Placer Loaded! Version: ${_package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE}`, 'color: chartreuse; font-size: 60px; font-style: italic;');
(0,_util_ExternalLoader__WEBPACK_IMPORTED_MODULE_2__.loadCss)('https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css');
const intervalId = setInterval(() => {
    if (document.getElementById('canvas')) {
        clearInterval(intervalId);
        Toastify({
            text: `7Placer ${_package_json__WEBPACK_IMPORTED_MODULE_0__/* .version */ .rE} Loaded! Loading canvas...`,
            style: {
                background: "#1a1a1a",
                border: "solid var(--gui-main-color)"
            },
            callback: () => {
                Toastify({
                    text: `Click me to join the discord.`,
                    destination: "https://discord.gg/3fXfQp7Rms",
                    newWindow: true,
                    style: {
                        background: "#1a1a1a",
                        border: "solid var(--gui-main-color)"
                    },
                }).showToast();
            }
        }).showToast();
        _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
    }
}, 100);


/***/ }),

/***/ "./src/modules/defaultModules/ImageTools.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   botImage: () => (/* binding */ botImage),
/* harmony export */   hex2rgb: () => (/* binding */ hex2rgb),
/* harmony export */   imageBitmap2imageData: () => (/* binding */ imageBitmap2imageData),
/* harmony export */   imageData2array: () => (/* binding */ imageData2array)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _Sorting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/Sorting.ts");




function hex2rgb(hex) {
    const r = parseInt(hex.slice(1, 3), 16);
    const g = parseInt(hex.slice(3, 5), 16);
    const b = parseInt(hex.slice(5, 7), 16);
    return [r, g, b];
}
function previewCanvasImage(x, y, image) {
    const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
    const ctx = canvas.previewCanvas;
    const img = new Image();
    img.onload = function () {
        ctx.drawImage(img, x, y);
    };
    img.src = URL.createObjectURL(image);
}
const workerCode = `
    function getColorDistance(c1, c2) {
        return (c1.r - c2[0]) ** 2 + (c1.g - c2[1]) ** 2 + (c1.b - c2[2]) ** 2;
    }
    function findClosestColor(color, palette) {
        let minDistance = Infinity;
        let colorNumber
        let index = 0
        for (const palette_color of palette) {
            const distance = getColorDistance(color, palette_color);
            if (distance < minDistance) {
            minDistance = distance;
            colorNumber = index
            }
            index += 1
        }
        return colorNumber;
    }

    self.onmessage = function (e) { // {imageData: ImageData, palette: [r, g, b][]}
        const pixelData = e.data.imageData.data
        const result = []
        for (let y = 0; y < e.data.imageData.height; y++) {
            for (let x = 0; x < e.data.imageData.width; x++) {
                const pixelIndex = (y * e.data.imageData.width + x) * 4;
                const r = pixelData[pixelIndex];
                const g = pixelData[pixelIndex + 1];
                const b = pixelData[pixelIndex + 2];
                const a = pixelData[pixelIndex + 3];
                if (a < 1) {
                    continue; // ignore transparent pixels
                };
                const color = findClosestColor({r, g, b}, e.data.palette);
                result.push({x, y, color});
            };
        }
        self.postMessage(result);
    };
`;
const blob = new Blob([workerCode], { type: 'application/javascript' });
const blobUrl = URL.createObjectURL(blob);
async function imageData2array(imageData, palette, dither) {
    const t0 = performance.now();
    const processing_toast = Toastify({
        text: `Processing image...`,
        duration: 100000,
        style: {
            background: "#1a1a1a",
            border: "solid var(--gui-main-color)"
        },
    }).showToast();
    if (dither) {
        const quant = new RgbQuant({ palette: _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.colors });
        quant.sample(imageData);
        quant.reduce(imageData, 1, dither);
    }
    const final_result = await new Promise(resolve => {
        const worker = new Worker(blobUrl);
        var result = [];
        worker.postMessage({ imageData: imageData, palette: palette });
        worker.onmessage = function (e) {
            worker.terminate();
            resolve(e.data);
        };
    });
    processing_toast.hideToast();
    Toastify({
        text: `Image processed!`,
        style: {
            background: "#1a1a1a",
            border: "solid rgb(0, 255, 81)"
        },
    }).showToast();
    return final_result;
}
async function imageBitmap2imageData(image) {
    const canvas = new OffscreenCanvas(image.width, image.height);
    const ctx = canvas.getContext('2d');
    ctx.drawImage(image, 0, 0, image.width, image.height);
    const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    return imageData;
}
async function botImage(x, y, image) {
    if (x == undefined || y == undefined || !image)
        return;
    const seven = window.seven;
    const bitmap = await createImageBitmap(image);
    let image_data = await imageBitmap2imageData(bitmap);
    let processed = await imageData2array(image_data, _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance.colors, window.seven.dither);
    previewCanvasImage(x, y, image);
    processed = await (0,_Sorting__WEBPACK_IMPORTED_MODULE_3__["default"])(processed, seven.order);
    processed.forEach((pixel) => {
        pixel.x += x;
        pixel.y += y;
    });
    _Queue__WEBPACK_IMPORTED_MODULE_2__["default"].bulkAdd(processed, true);
}


/***/ }),

/***/ "./src/modules/defaultModules/Protect.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");


class Protector {
    protect(x, y, color) {
        Protector.protected.push({ x: x, y: y, color: color });
    }
    static clear() {
        Protector.protected = [];
    }
    static checkPixel(x, y, color) {
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
        if (Protector.protected.length == 0) {
            return;
        }
        function isInsideProtected(pixel) {
            if (pixel.x == x && pixel.y == y) {
                return true;
            }
            return false;
        }
        function isSameColor(pixel) {
            const canvasColor = canvas.getColor(x, y);
            if (canvasColor == pixel.color) {
                return true;
            }
            return false;
        }
        Protector.protected.forEach((pixel) => {
            if (isInsideProtected(pixel) && !isSameColor(pixel)) {
                _Queue__WEBPACK_IMPORTED_MODULE_1__["default"].add(pixel, false, window.seven.agressive_protection);
            }
        });
    }
}
Protector.protected = [];
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Protector);


/***/ }),

/***/ "./src/modules/defaultModules/Queue.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Queue)
/* harmony export */ });
/* harmony import */ var _bot_Bot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/bot/Bot.ts");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/canvas/Canvas.ts");
/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/variables.ts");
/* harmony import */ var _Protect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/Protect.ts");




class Queue {
    constructor() {
        Queue.performance = performance.now();
    }
    static add(pixel, protection, atStart = false, client = false) {
        const seven = window.seven;
        if (atStart)
            seven.queue.unshift(pixel);
        else {
            seven.queue.push(pixel);
        }
        ;
        if (seven.queue.length == 1)
            Queue.start();
    }
    ;
    static bulkAdd(pixel_array, protection, atStart = false, client = false) {
        const seven = window.seven;
        pixel_array.forEach(pixel => {
            pixel.protected = protection;
            pixel.client = client;
        });
        if (!atStart) {
            seven.queue = seven.queue.concat(pixel_array);
        }
        else {
            seven.queue.unshift(...pixel_array);
        }
        if (seven.queue.length == pixel_array.length)
            Queue.start();
    }
    ;
    static clear() {
        const seven = window.seven;
        // console.log('Queue cleared: ', seven.queue);
        seven.queue = [];
    }
    ;
    static async start() {
        const seven = window.seven;
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
        const protector = new _Protect__WEBPACK_IMPORTED_MODULE_3__["default"];
        if (!canvas.isProcessed) {
            Toastify({
                text: `Canvas has not been processed yet.`,
                style: {
                    background: "#1a1a1a",
                    border: "solid rgb(255, 0, 0)",
                },
            }).showToast();
            console.log('[7p] Error starting queue: Canvas has not been processed yet.');
            Queue.stop();
            return;
        }
        seven.inprogress = true;
        let tick = 0;
        while (seven.inprogress) {
            // console.log(performance.now() - Queue.performance);
            Queue.performance = performance.now();
            const pixel = seven.queue[0];
            let bot;
            if (pixel.client) {
                bot = _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Client.instance;
            }
            else {
                bot = await _bot_Bot__WEBPACK_IMPORTED_MODULE_0__.Bot.findAvailableBot();
            }
            ;
            // Anti lag when skipping (fix it pls)
            const canvas_color = canvas.getColor(pixel.x, pixel.y);
            if (pixel.color == canvas_color) {
                tick += 1;
            }
            else
                tick = 0;
            if (tick == 100) {
                await new Promise(resolve => setTimeout(resolve, 0));
                tick = 0;
            }
            ;
            await bot.placePixel(pixel);
            var indexOfRemoval = seven.queue.indexOf(pixel);
            seven.queue.splice(indexOfRemoval, 1);
            if (pixel.protected && seven.protect) {
                protector.protect(pixel.x, pixel.y, pixel.color);
            }
            if (seven.queue.length == 0) {
                seven.inprogress = false;
                console.log('[7p] Queue done.');
            }
            ;
        }
        ;
    }
    ;
    static stop() {
        const seven = window.seven;
        seven.inprogress = false;
        const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_1__["default"].instance;
        canvas.previewCanvas.clearRect(0, 0, 3000, 3000);
        _Protect__WEBPACK_IMPORTED_MODULE_3__["default"].clear();
        Queue.clear();
    }
    ;
}
;


/***/ }),

/***/ "./src/modules/defaultModules/Sorting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ sort)
/* harmony export */ });
const workerCode = `
    self.onmessage = function (e) { // {array: {x: number, y: number, color: number}[], order: string}
        let array = e.data.array
        switch (e.data.order) {
            case 'none':
            break

            case 'rand':
            array.sort(() => Math.random() - 0.5);
            break

            case 'colors':
            array.sort((a, b) => a.color - b.color);
            break

            case 'vertical':
            array.sort((a, b) => a.x - b.x);
            break

            case 'horizontal':
            array.sort((a, b) => a.y - b.y);
            break

            case 'topleft':
            array.sort((a, b) => {
                return (a.x + a.y) - (b.x + b.y);
            });
            break

            case 'grid':
            array.sort((a, b) => {
                if (b.x % 2 == 0 && b.y % 2 == 0) {
                    return -1
                } else {
                    return 1
                }
            })
            break

            default:
            case 'circle':
            const CX = Math.floor((array[0].x + array[array.length - 1].x) / 2);
            const CY = Math.floor((array[0].y + array[array.length - 1].y) / 2);
            array.sort((a, b) => {
                const distanceA = Math.sqrt((a.x - CX) ** 2 + (a.y - CY) ** 2);
                const distanceB = Math.sqrt((b.x - CX) ** 2 + (b.y - CY) ** 2);
                return distanceA - distanceB;
            });
        }
        self.postMessage(array)
    };
`;
const blob = new Blob([workerCode], { type: 'application/javascript' });
const blobUrl = URL.createObjectURL(blob);
async function sort(array, order) {
    const pixel_array = await new Promise(resolve => {
        let t0 = performance.now();
        let sorting_toast = Toastify({
            text: `Sorting...`,
            duration: 100000,
            style: {
                background: "#1a1a1a",
                border: "solid var(--gui-main-color)"
            },
        }).showToast();
        const worker = new Worker(blobUrl);
        worker.postMessage({ array: array, order: order });
        worker.onmessage = function (e) {
            resolve(e.data);
            console.log(`Sorted in ${performance.now() - t0}`);
            sorting_toast.hideToast();
            clearTimeout(long_sort_timeout);
        };
        let long_sort_timeout = setTimeout(() => {
            Toastify({
                text: `If sorting is taking too long consider using "sort: none"`,
                duration: 10000,
                style: {
                    background: "#1a1a1a",
                    border: "solid rgb(255, 251, 0)"
                },
            }).showToast();
        }, 7000);
    });
    return pixel_array;
}


/***/ }),

/***/ "./src/modules/defaultModules/SquareMaker.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   BotSquare: () => (/* binding */ BotSquare)
/* harmony export */ });
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _Sorting__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Sorting.ts");


async function BotSquare(x1, y1, x2, y2, color) {
    if (x1 == undefined || y1 == undefined || x2 == undefined || y2 == undefined || color === undefined)
        return;
    const seven = window.seven;
    var result = [];
    if (x2 < x1)
        [x1, x2] = [x2, x1];
    if (y2 < y1)
        [y1, y2] = [y2, y1];
    for (let x = x1; x <= x2; x++) {
        for (let y = y1; y <= y2; y++) {
            result.push({ x, y, color });
        }
    }
    result = await (0,_Sorting__WEBPACK_IMPORTED_MODULE_1__["default"])(result, seven.order);
    result.forEach((pixel) => {
        _Queue__WEBPACK_IMPORTED_MODULE_0__["default"].add(pixel, true);
    });
    Toastify({
        text: `Square from ${x1}, ${y1} TO ${x2}, ${y2} with color ID ${color}`,
        style: {
            background: "#1a1a1a",
            border: "solid var(--gui-main-color)"
        },
    }).showToast();
}


/***/ }),

/***/ "./src/modules/defaultModules/defaultKeys.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _util_getClientMouse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/util/getClientMouse.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _SquareMaker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/SquareMaker.ts");



var coord1 = null;
$(document).on('keydown', function (event) {
    if ($(':input[type="text"]').is(':focus'))
        return;
    let x, y, color;
    switch (event.which) {
        case (87):
            if (!event.altKey)
                return;
            _Queue__WEBPACK_IMPORTED_MODULE_0__["default"].stop();
            break;
        case (66):
            [x, y, color] = (0,_util_getClientMouse__WEBPACK_IMPORTED_MODULE_2__["default"])();
            $("#number_input_X").val(x).trigger("input");
            $("#number_input_Y").val(y).trigger("input");
            break;
        case 88:
            [x, y, color] = (0,_util_getClientMouse__WEBPACK_IMPORTED_MODULE_2__["default"])();
            if (coord1 == null) {
                coord1 = { x: x, y: y };
                return;
            }
            ;
            (0,_SquareMaker__WEBPACK_IMPORTED_MODULE_1__.BotSquare)(coord1.x, coord1.y, x, y, color);
            coord1 = null;
            break;
    }
});


/***/ }),

/***/ "./src/modules/defaultModules/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   BotSquare: () => (/* reexport safe */ _SquareMaker__WEBPACK_IMPORTED_MODULE_2__.BotSquare),
/* harmony export */   botImage: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.botImage),
/* harmony export */   hex2rgb: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.hex2rgb),
/* harmony export */   imageBitmap2imageData: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.imageBitmap2imageData),
/* harmony export */   imageData2array: () => (/* reexport safe */ _ImageTools__WEBPACK_IMPORTED_MODULE_0__.imageData2array)
/* harmony export */ });
/* harmony import */ var _ImageTools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/ImageTools.ts");
/* harmony import */ var _Queue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/modules/defaultModules/Queue.ts");
/* harmony import */ var _SquareMaker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/modules/defaultModules/SquareMaker.ts");
/* harmony import */ var _defaultKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/modules/defaultModules/defaultKeys.ts");






/***/ }),

/***/ "./src/modules/index.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   BotSquare: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.BotSquare),
/* harmony export */   botImage: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.botImage),
/* harmony export */   hex2rgb: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.hex2rgb),
/* harmony export */   imageBitmap2imageData: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.imageBitmap2imageData),
/* harmony export */   imageData2array: () => (/* reexport safe */ _defaultModules__WEBPACK_IMPORTED_MODULE_0__.imageData2array)
/* harmony export */ });
/* harmony import */ var _defaultModules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/modules/defaultModules/index.ts");

// custom exports


/***/ }),

/***/ "./src/modules/util/getClientMouse.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ getClientMouse)
/* harmony export */ });
function getClientMouse() {
    const coordinates = $('#coordinates').text();
    const [x, y] = coordinates.split(',').map(coord => parseInt(coord.trim()));
    const selectedcolor = $('#palette-buttons a.selected').data('id');
    return [x, y, selectedcolor];
}


/***/ }),

/***/ "./src/requests/get-painting.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ getPainting)
/* harmony export */ });
/* harmony import */ var _getCookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/requests/getCookie.ts");
/* harmony import */ var _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/canvas/Canvas.ts");


async function getPainting(authId, authKey, authToken) {
    const canvas = _canvas_Canvas__WEBPACK_IMPORTED_MODULE_0__["default"].instance;
    const originalAuthId = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authId');
    const originalAuthKey = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authKey');
    const originalAuthToken = (0,_getCookie__WEBPACK_IMPORTED_MODULE_1__["default"])('authToken');
    document.cookie = `authId=${authId}; path=/`;
    document.cookie = `authKey=${authKey}; path=/`;
    document.cookie = `authToken=${authToken}; path=/`;
    try {
        const response = await fetch(`https://pixelplace.io/api/get-painting.php?id=${canvas.ID}&connected=1`, {
            headers: {
                'Accept': 'application/json, text/javascript, */*; q=0.01',
            },
            credentials: 'include'
        });
        const json = response.json();
        return json;
    }
    finally {
        document.cookie = `authId=${originalAuthId}; path=/`;
        document.cookie = `authKey=${originalAuthKey}; path=/`;
        document.cookie = `authToken=${originalAuthToken}; path=/`;
    }
}


/***/ }),

/***/ "./src/requests/getCookie.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ getCookie)
/* harmony export */ });
function getCookie(name) {
    const value = `; ${document.cookie}`;
    const parts = value.split(`; ${name}=`);
    if (parts.length === 2)
        return parts.pop().split(';').shift();
}


/***/ }),

/***/ "./src/requests/ping.ts":
/***/ (() => {

// to do


/***/ }),

/***/ "./src/util/ExternalLoader.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   loadCss: () => (/* binding */ loadCss)
/* harmony export */ });
function loadCss(url) {
    var head = document.getElementsByTagName('head')[0];
    var link = document.createElement('link');
    link.rel = 'stylesheet';
    link.type = 'text/css';
    link.href = url;
    link.media = 'all';
    head.appendChild(link);
}


/***/ }),

/***/ "./src/variables.ts":
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/auth/util/commands.ts");

window.seven = {
    bots: new Map(),
    pixelspeed: 21,
    queue: [],
    inprogress: false,
    protect: false,
    tickspeed: 1000,
    order: 'fromCenter',
    multi: _auth_util_commands__WEBPACK_IMPORTED_MODULE_0__.public_commands,
    dither: null,
    agressive_protection: false,
    pixel_type: "default",
};


/***/ }),

/***/ "./src sync recursive ^(?%21.*global\\.d).+":
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var map = {
	".": "./src/index.ts",
	"./": "./src/index.ts",
	"./GUI/GUICore": "./src/GUI/GUICore.ts",
	"./GUI/GUICore.ts": "./src/GUI/GUICore.ts",
	"./GUI/GUIStyle.css": "./src/GUI/GUIStyle.css",
	"./GUI/TAB_Botting": "./src/GUI/TAB_Botting.ts",
	"./GUI/TAB_Botting.ts": "./src/GUI/TAB_Botting.ts",
	"./GUI/TAB_Settings": "./src/GUI/TAB_Settings.ts",
	"./GUI/TAB_Settings.ts": "./src/GUI/TAB_Settings.ts",
	"./GUI/dragElement": "./src/GUI/dragElement.ts",
	"./GUI/dragElement.ts": "./src/GUI/dragElement.ts",
	"./GUI/style": "./src/GUI/style.ts",
	"./GUI/style.ts": "./src/GUI/style.ts",
	"./auth/Auth": "./src/auth/Auth.ts",
	"./auth/Auth.ts": "./src/auth/Auth.ts",
	"./auth/util/commands": "./src/auth/util/commands.ts",
	"./auth/util/commands.ts": "./src/auth/util/commands.ts",
	"./bot/Bot": "./src/bot/Bot.ts",
	"./bot/Bot.ts": "./src/bot/Bot.ts",
	"./bot/util/MessageHandler": "./src/bot/util/MessageHandler.ts",
	"./bot/util/MessageHandler.ts": "./src/bot/util/MessageHandler.ts",
	"./bot/util/palive": "./src/bot/util/palive.ts",
	"./bot/util/palive.ts": "./src/bot/util/palive.ts",
	"./bot/util/websocket": "./src/bot/util/websocket.ts",
	"./bot/util/websocket.ts": "./src/bot/util/websocket.ts",
	"./canvas/Canvas": "./src/canvas/Canvas.ts",
	"./canvas/Canvas.ts": "./src/canvas/Canvas.ts",
	"./canvas/util/canvasloader": "./src/canvas/util/canvasloader.ts",
	"./canvas/util/canvasloader.ts": "./src/canvas/util/canvasloader.ts",
	"./index": "./src/index.ts",
	"./index.ts": "./src/index.ts",
	"./modules": "./src/modules/index.ts",
	"./modules/": "./src/modules/index.ts",
	"./modules/defaultModules": "./src/modules/defaultModules/index.ts",
	"./modules/defaultModules/": "./src/modules/defaultModules/index.ts",
	"./modules/defaultModules/ImageTools": "./src/modules/defaultModules/ImageTools.ts",
	"./modules/defaultModules/ImageTools.ts": "./src/modules/defaultModules/ImageTools.ts",
	"./modules/defaultModules/Protect": "./src/modules/defaultModules/Protect.ts",
	"./modules/defaultModules/Protect.ts": "./src/modules/defaultModules/Protect.ts",
	"./modules/defaultModules/Queue": "./src/modules/defaultModules/Queue.ts",
	"./modules/defaultModules/Queue.ts": "./src/modules/defaultModules/Queue.ts",
	"./modules/defaultModules/Sorting": "./src/modules/defaultModules/Sorting.ts",
	"./modules/defaultModules/Sorting.ts": "./src/modules/defaultModules/Sorting.ts",
	"./modules/defaultModules/SquareMaker": "./src/modules/defaultModules/SquareMaker.ts",
	"./modules/defaultModules/SquareMaker.ts": "./src/modules/defaultModules/SquareMaker.ts",
	"./modules/defaultModules/defaultKeys": "./src/modules/defaultModules/defaultKeys.ts",
	"./modules/defaultModules/defaultKeys.ts": "./src/modules/defaultModules/defaultKeys.ts",
	"./modules/defaultModules/index": "./src/modules/defaultModules/index.ts",
	"./modules/defaultModules/index.ts": "./src/modules/defaultModules/index.ts",
	"./modules/index": "./src/modules/index.ts",
	"./modules/index.ts": "./src/modules/index.ts",
	"./modules/util/getClientMouse": "./src/modules/util/getClientMouse.ts",
	"./modules/util/getClientMouse.ts": "./src/modules/util/getClientMouse.ts",
	"./requests/get-painting": "./src/requests/get-painting.ts",
	"./requests/get-painting.ts": "./src/requests/get-painting.ts",
	"./requests/getCookie": "./src/requests/getCookie.ts",
	"./requests/getCookie.ts": "./src/requests/getCookie.ts",
	"./requests/ping": "./src/requests/ping.ts",
	"./requests/ping.ts": "./src/requests/ping.ts",
	"./util/ExternalLoader": "./src/util/ExternalLoader.ts",
	"./util/ExternalLoader.ts": "./src/util/ExternalLoader.ts",
	"./variables": "./src/variables.ts",
	"./variables.ts": "./src/variables.ts"
};


function webpackContext(req) {
	var id = webpackContextResolve(req);
	return __webpack_require__(id);
}
function webpackContextResolve(req) {
	if(!__webpack_require__.o(map, req)) {
		var e = new Error("Cannot find module '" + req + "'");
		e.code = 'MODULE_NOT_FOUND';
		throw e;
	}
	return map[req];
}
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "./src sync recursive ^(?%21.*global\\.d).+";

/***/ }),

/***/ "./package.json":
/***/ ((module) => {

"use strict";
module.exports = {"rE":"2.2.1"};

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module is referenced by other modules so it can't be inlined
/******/ 	var __webpack_exports__ = __webpack_require__("./src/index.ts");
/******/ 	
/******/ })()
;