BetterDiscordApp-rauenzi/js/main.js

1116 lines
1.1 MiB

var Core =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./src/builtins/24hour.js":
/*!********************************!*\
!*** ./src/builtins/24hour.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class TwentyFourHour extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"24Hour\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"twentyFourHour\";\n }\n\n enabled() {\n this.inject24Hour();\n }\n\n disabled() {\n this.unpatchAll();\n }\n\n inject24Hour() {\n const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\\\s(AM|PM)`);\n\n const convert = (thisObject, args, returnValue) => {\n const matched = returnValue.match(twelveHour);\n if (!matched || matched.length !== 4) return;\n if (matched[3] === \"AM\") return returnValue = returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"00\" : matched[1].padStart(2, \"0\")}:${matched[2]}`);\n return returnValue = returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"12\" : parseInt(matched[1]) + 12}:${matched[2]}`);\n };\n\n this.after(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"calendarFormat\", convert); // Called in Cozy mode\n\n this.after(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"dateFormat\", convert); // Called in Compact mode\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zLzI0aG91ci5qcz9kZTc4Il0sIm5hbWVzIjpbIlR3ZW50eUZvdXJIb3VyIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsImluamVjdDI0SG91ciIsImRpc2FibGVkIiwidW5wYXRjaEFsbCIsInR3ZWx2ZUhvdXIiLCJSZWdFeHAiLCJjb252ZXJ0IiwidGhpc09iamVjdCIsImFyZ3MiLCJyZXR1cm5WYWx1ZSIsIm1hdGNoZWQiLCJtYXRjaCIsImxlbmd0aCIsInJlcGxhY2UiLCJwYWRTdGFydCIsInBhcnNlSW50IiwiYWZ0ZXIiLCJEaXNjb3JkTW9kdWxlcyIsIlRpbWVGb3JtYXR0ZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxtRUFBSSxNQUFNQSxjQUFOLFNBQTZCQyx3REFBN0IsQ0FBcUM7QUFDcEQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxRQUFQO0FBQWlCOztBQUM3QixNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFNBQVA7QUFBa0I7O0FBQ2xDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sZ0JBQVA7QUFBeUI7O0FBRW5DQyxTQUFPLEdBQUc7QUFDTixTQUFLQyxZQUFMO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFNBQUtDLFVBQUw7QUFDSDs7QUFFREYsY0FBWSxHQUFHO0FBQ1gsVUFBTUcsVUFBVSxHQUFHLElBQUlDLE1BQUosQ0FBWSxxQ0FBWixDQUFuQjs7QUFDQSxVQUFNQyxPQUFPLEdBQUcsQ0FBQ0MsVUFBRCxFQUFhQyxJQUFiLEVBQW1CQyxXQUFuQixLQUFtQztBQUMvQyxZQUFNQyxPQUFPLEdBQUdELFdBQVcsQ0FBQ0UsS0FBWixDQUFrQlAsVUFBbEIsQ0FBaEI7QUFDQSxVQUFJLENBQUNNLE9BQUQsSUFBWUEsT0FBTyxDQUFDRSxNQUFSLEtBQW1CLENBQW5DLEVBQXNDO0FBQ3RDLFVBQUlGLE9BQU8sQ0FBQyxDQUFELENBQVAsS0FBZSxJQUFuQixFQUF5QixPQUFPRCxXQUFXLEdBQUdBLFdBQVcsQ0FBQ0ksT0FBWixDQUFvQkgsT0FBTyxDQUFDLENBQUQsQ0FBM0IsRUFBaUMsR0FBRUEsT0FBTyxDQUFDLENBQUQsQ0FBUCxLQUFlLElBQWYsR0FBc0IsSUFBdEIsR0FBNkJBLE9BQU8sQ0FBQyxDQUFELENBQVAsQ0FBV0ksUUFBWCxDQUFvQixDQUFwQixFQUF1QixHQUF2QixDQUE0QixJQUFHSixPQUFPLENBQUMsQ0FBRCxDQUFJLEVBQTFHLENBQXJCO0FBQ3pCLGFBQU9ELFdBQVcsR0FBR0EsV0FBVyxDQUFDSSxPQUFaLENBQW9CSCxPQUFPLENBQUMsQ0FBRCxDQUEzQixFQUFpQyxHQUFFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBZixHQUFzQixJQUF0QixHQUE2QkssUUFBUSxDQUFDTCxPQUFPLENBQUMsQ0FBRCxDQUFSLENBQVIsR0FBdUIsRUFBRyxJQUFHQSxPQUFPLENBQUMsQ0FBRCxDQUFJLEVBQXhHLENBQXJCO0FBQ0gsS0FMRDs7QUFPQSxTQUFLTSxLQUFMLENBQVdDLHNEQUFjLENBQUNDLGFBQTFCLEVBQXlDLGdCQUF6QyxFQUEyRFosT0FBM0QsRUFUVyxDQVMwRDs7QUFDckUsU0FBS1UsS0FBTCxDQUFXQyxzREFBYyxDQUFDQyxhQUExQixFQUF5QyxZQUF6QyxFQUF1RFosT0FBdkQsRUFWVyxDQVVzRDtBQUNwRTs7QUF4Qm1ELENBQXpDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvMjRob3VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFR3ZW50eUZvdXJIb3VyIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCIyNEhvdXJcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJ0d2VudHlGb3VySG91clwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIHRoaXMuaW5qZWN0MjRIb3VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy51bnBhdGNoQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5qZWN0MjRIb3VyKCkge1xyXG4gICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXIgPSBuZXcgUmVnRXhwKGAoWzAtOV17MSwyfSk6KFswLTldezEsMn0pXFxcXHMoQU18UE0pYCk7XHJcbiAgICAgICAgY29uc3QgY29udmVydCA9ICh0aGlzT2JqZWN0LCBhcmdzLCByZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkID0gcmV0dXJuVmFsdWUubWF0Y2godHdlbHZlSG91cik7XHJcbiAgICAgICAgICAgIGlmICghbWF0Y2hlZCB8fCBtYXRjaGVkLmxlbmd0aCAhPT0gNCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlZFszXSA9PT0gXCJBTVwiKSByZXR1cm4gcmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZS5yZXBsYWNlKG1hdGNoZWRbMF0sIGAke21hdGNoZWRbMV0gPT09IFwiMTJcIiA/IFwiMDBcIiA6IG1hdGNoZWRbMV0ucGFkU3RhcnQoMiwgXCIwXCIpfToke21hdGNoZWRbMl19YCk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlLnJlcGxhY2UobWF0Y2hlZFswXSwgYCR7bWF0Y2hlZFsxXSA9PT0gXCIxMlwiID8gXCIxMlwiIDogcGFyc2VJbnQobWF0Y2hlZFsxXSkgKyAxMn06JHttYXRjaGVkWzJdfWApO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuYWZ0ZXIoRGlzY29yZE1vZHVsZXMuVGltZUZvcm1hdHRlciwgXCJjYWxlbmRhckZvcm1hdFwiLCBjb252ZXJ0KTsgLy8gQ2FsbGVkIGluIENvenkgbW9kZVxyXG4gICAgICAgIHRoaXMuYWZ0ZXIoRGlzY29yZE1vZHVsZXMuVGltZUZvcm1hdHRlciwgXCJkYXRlRm9ybWF0XCIsIGNvbnZlcnQpOyAvLyBDYWxsZWQgaW4gQ29tcGFjdCBtb2RlXHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/24hour.js\n");
/***/ }),
/***/ "./src/builtins/builtins.js":
/*!**********************************!*\
!*** ./src/builtins/builtins.js ***!
\**********************************/
/*! exports provided: EmoteModule, CustomCSS, VoiceMode, ClassNormalizer, DeveloperMode, PublicServers, DarkMode, MinimalMode, TwentyFourHour, ColoredText, VoiceDisconnect, EmoteMenu, EmoteAutocaps, WindowPrefs */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteModule\", function() { return _emotes__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _customcss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./customcss */ \"./src/builtins/customcss.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomCSS\", function() { return _customcss__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _voicemode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./voicemode */ \"./src/builtins/voicemode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceMode\", function() { return _voicemode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _classnormalizer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./classnormalizer */ \"./src/builtins/classnormalizer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClassNormalizer\", function() { return _classnormalizer__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _developermode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./developermode */ \"./src/builtins/developermode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeveloperMode\", function() { return _developermode__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _publicservers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./publicservers */ \"./src/builtins/publicservers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PublicServers\", function() { return _publicservers__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _darkmode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./darkmode */ \"./src/builtins/darkmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DarkMode\", function() { return _darkmode__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _minimalmode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./minimalmode */ \"./src/builtins/minimalmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MinimalMode\", function() { return _minimalmode__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./24hour */ \"./src/builtins/24hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TwentyFourHour\", function() { return _24hour__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _coloredtext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./coloredtext */ \"./src/builtins/coloredtext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColoredText\", function() { return _coloredtext__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _voicedisconnect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./voicedisconnect */ \"./src/builtins/voicedisconnect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceDisconnect\", function() { return _voicedisconnect__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _emotemenu__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emotemenu */ \"./src/builtins/emotemenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteMenu\", function() { return _emotemenu__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _emoteautocaps__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./emoteautocaps */ \"./src/builtins/emoteautocaps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteAutocaps\", function() { return _emoteautocaps__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _windowprefs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./windowprefs */ \"./src/builtins/windowprefs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WindowPrefs\", function() { return _windowprefs__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n// Export these two first because they add settings/panels\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmpzPzU5YTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IHRoZXNlIHR3byBmaXJzdCBiZWNhdXNlIHRoZXkgYWRkIHNldHRpbmdzL3BhbmVsc1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRW1vdGVNb2R1bGV9IGZyb20gXCIuL2Vtb3Rlc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgQ3VzdG9tQ1NTfSBmcm9tIFwiLi9jdXN0b21jc3NcIjtcclxuXHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBWb2ljZU1vZGV9IGZyb20gXCIuL3ZvaWNlbW9kZVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgQ2xhc3NOb3JtYWxpemVyfSBmcm9tIFwiLi9jbGFzc25vcm1hbGl6ZXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERldmVsb3Blck1vZGV9IGZyb20gXCIuL2RldmVsb3Blcm1vZGVcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFB1YmxpY1NlcnZlcnN9IGZyb20gXCIuL3B1YmxpY3NlcnZlcnNcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERhcmtNb2RlfSBmcm9tIFwiLi9kYXJrbW9kZVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgTWluaW1hbE1vZGV9IGZyb20gXCIuL21pbmltYWxtb2RlXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUd2VudHlGb3VySG91cn0gZnJvbSBcIi4vMjRob3VyXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDb2xvcmVkVGV4dH0gZnJvbSBcIi4vY29sb3JlZHRleHRcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFZvaWNlRGlzY29ubmVjdH0gZnJvbSBcIi4vdm9pY2VkaXNjb25uZWN0XCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbW90ZU1lbnV9IGZyb20gXCIuL2Vtb3RlbWVudVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRW1vdGVBdXRvY2Fwc30gZnJvbSBcIi4vZW1vdGVhdXRvY2Fwc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgV2luZG93UHJlZnN9IGZyb20gXCIuL3dpbmRvd3ByZWZzXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/builtins.js\n");
/***/ }),
/***/ "./src/builtins/classnormalizer.js":
/*!*****************************************!*\
!*** ./src/builtins/classnormalizer.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst normalizedPrefix = \"da\";\nconst randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$`);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ClassNormalizer extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get id() {\n return \"classNormalizer\";\n }\n\n get category() {\n return \"general\";\n }\n\n get name() {\n return \"ClassNormalizer\";\n }\n\n enabled() {\n if (this.hasPatched) return;\n this.patchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.normalizeElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = true;\n this.patchDOMMethods();\n }\n\n disabled() {\n if (!this.hasPatched) return;\n this.unpatchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.revertElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = false;\n }\n\n patchClassModules(modules) {\n for (const module of modules) {\n this.patchClassModule(normalizedPrefix, module);\n }\n }\n\n unpatchClassModules(modules) {\n for (const module of modules) {\n this.unpatchClassModule(normalizedPrefix, module);\n }\n }\n\n shouldIgnore(value) {\n if (!isNaN(value)) return true;\n if (value.endsWith(\"px\") || value.endsWith(\"ch\") || value.endsWith(\"em\") || value.endsWith(\"ms\")) return true;\n if (value.startsWith(\"layerContainer-\")) return true;\n if (value.startsWith(\"#\") && (value.length == 7 || value.length == 4)) return true;\n if (value.includes(\"calc(\") || value.includes(\"rgba\")) return true;\n return false;\n }\n\n moduleFilter(module) {\n if (typeof module !== \"object\" || Array.isArray(module)) return false;\n if (module.__esModule) return false;\n if (!Object.keys(module).length) return false;\n\n for (const baseClassName in module) {\n const value = module[baseClassName];\n if (typeof value !== \"string\") return false;\n if (this.shouldIgnore(value)) continue;\n if (value.split(\"-\").length === 1) return false;\n if (!randClass.test(value.split(\" \")[0])) return false;\n }\n\n return true;\n }\n\n patchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n const match = normalClass.match(randClass);\n if (!match || !match.length || match.length < 2) continue; // Shouldn't ever happen since they passed the moduleFilter, but you never know\n\n const camelCase = match[1].split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n classNames[baseClassName] += ` ${componentName}-${camelCase}`;\n }\n }\n }\n\n unpatchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n let newString = \"\";\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n if (normalClass.startsWith(`${componentName}-`)) continue;\n newString += ` ${normalClass}`;\n }\n\n classNames[baseClassName] = newString.trim();\n }\n }\n\n normalizeElement(element) {\n if (!(element instanceof Element)) return;\n const classes = element.classList;\n\n for (let c = 0, clen = classes.length; c < clen; c++) {\n if (!randClass.test(classes[c])) continue;\n const match = classes[c].match(randClass)[1];\n const newClass = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n element.classList.add(`${normalizedPrefix}-${newClass}`);\n }\n\n for (const child of element.children) this.normalizeElement(child);\n }\n\n revertElement(element) {\n if (!(element instanceof Element)) return;\n if (element.children && element.children.length) this.revertElement(element.children[0]);\n if (element.nextElementSibling) this.revertElement(element.nextElementSibling);\n const classes = element.classList;\n const toRemove = [];\n\n for (let c = 0; c < classes.length; c++) {\n if (classes[c].startsWith(`${normalizedPrefix}-`)) toRemove.push(classes[c]);\n }\n\n element.classList.remove(...toRemove);\n }\n\n patchDOMMethods() {\n const contains = DOMTokenList.prototype.contains;\n\n DOMTokenList.prototype.contains = function (token) {\n const tokens = token.split(\" \");\n return tokens.every(t => contains.call(this, t));\n };\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NsYXNzbm9ybWFsaXplci5qcz9kZDc4Il0sIm5hbWVzIjpbIm5vcm1hbGl6ZWRQcmVmaXgiLCJyYW5kQ2xhc3MiLCJSZWdFeHAiLCJDbGFzc05vcm1hbGl6ZXIiLCJCdWlsdGluIiwiaWQiLCJjYXRlZ29yeSIsIm5hbWUiLCJlbmFibGVkIiwiaGFzUGF0Y2hlZCIsInBhdGNoQ2xhc3NNb2R1bGVzIiwiV2VicGFja01vZHVsZXMiLCJnZXRNb2R1bGVzIiwibW9kdWxlRmlsdGVyIiwiYmluZCIsIm5vcm1hbGl6ZUVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJwYXRjaERPTU1ldGhvZHMiLCJkaXNhYmxlZCIsInVucGF0Y2hDbGFzc01vZHVsZXMiLCJyZXZlcnRFbGVtZW50IiwibW9kdWxlcyIsIm1vZHVsZSIsInBhdGNoQ2xhc3NNb2R1bGUiLCJ1bnBhdGNoQ2xhc3NNb2R1bGUiLCJzaG91bGRJZ25vcmUiLCJ2YWx1ZSIsImlzTmFOIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfX2VzTW9kdWxlIiwiT2JqZWN0Iiwia2V5cyIsImJhc2VDbGFzc05hbWUiLCJzcGxpdCIsInRlc3QiLCJjb21wb25lbnROYW1lIiwiY2xhc3NOYW1lcyIsImNsYXNzTGlzdCIsIm5vcm1hbENsYXNzIiwibWF0Y2giLCJjYW1lbENhc2UiLCJtYXAiLCJzIiwiaSIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJqb2luIiwibmV3U3RyaW5nIiwidHJpbSIsImVsZW1lbnQiLCJFbGVtZW50IiwiY2xhc3NlcyIsImMiLCJjbGVuIiwibmV3Q2xhc3MiLCJhZGQiLCJjaGlsZCIsImNoaWxkcmVuIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwidG9SZW1vdmUiLCJwdXNoIiwicmVtb3ZlIiwiY29udGFpbnMiLCJET01Ub2tlbkxpc3QiLCJwcm90b3R5cGUi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Z0MsS0FBSzNDLGFBQUwsQ0FBbUJrQyxPQUFPLENBQUNTLGtCQUEzQjtBQUNoQyxVQUFNUCxPQUFPLEdBQUdGLE9BQU8sQ0FBQ1osU0FBeEI7QUFDQSxVQUFNc0IsUUFBUSxHQUFHLEVBQWpCOztBQUNBLFNBQUssSUFBSVAsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0QsT0FBTyxDQUFDMUIsTUFBNUIsRUFBb0MyQixDQUFDLEVBQXJDLEVBQXlDO0FBQ3JDLFVBQUlELE9BQU8sQ0FBQ0MsQ0FBRCxDQUFQLENBQVc1QixVQUFYLENBQXVCLEdBQUU5QixnQkFBaUIsR0FBMUMsQ0FBSixFQUFtRGlFLFFBQVEsQ0FBQ0MsSUFBVCxDQUFjVCxPQUFPLENBQUNDLENBQUQsQ0FBckI7QUFDdEQ7O0FBQ0RILFdBQU8sQ0FBQ1osU0FBUixDQUFrQndCLE1BQWxCLENBQXlCLEdBQUdGLFFBQTVCO0FBQ0g7O0FBRUQvQyxpQkFBZSxHQUFHO0FBQ2QsVUFBTWtELFFBQVEsR0FBR0MsWUFBWSxDQUFDQyxTQUFiLENBQXVCRixRQUF4Qzs7QUFDQUMsZ0JBQVksQ0FBQ0MsU0FBYixDQUF1QkYsUUFBdkIsR0FBa0MsVUFBU0csS0FBVCxFQUFnQjtBQUM5QyxZQUFNQyxNQUFNLEdBQUdELEtBQUssQ0FBQ2hDLEtBQU4sQ0FBWSxHQUFaLENBQWY7QUFDQSxhQUFPaUMsTUFBTSxDQUFDQyxLQUFQLENBQWFDLENBQUMsSUFBSU4sUUFBUSxDQUFDTyxJQUFULENBQWMsSUFBZCxFQUFvQkQsQ0FBcEIsQ0FBbEIsQ0FBUDtBQUNILEtBSEQ7QUFJSDs7QUFsSG9ELENBQTFDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY2xhc3Nub3JtYWxpemVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge1dlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY29uc3Qgbm9ybWFsaXplZFByZWZpeCA9IFwiZGFcIjtcclxuY29uc3QgcmFuZENsYXNzID0gbmV3IFJlZ0V4cChgXig/ISR7bm9ybWFsaXplZFByZWZpeH0tKSgoPzpbQS1aYS16XXxbMC05XXwtKSspLSg/OltBLVphLXpdfFswLTldfC18Xyl7Nn0kYCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ2xhc3NOb3JtYWxpemVyIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiY2xhc3NOb3JtYWxpemVyXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJDbGFzc05vcm1hbGl6ZXJcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5oYXNQYXRjaGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wYXRjaENsYXNzTW9kdWxlcyhXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGVzKHRoaXMubW9kdWxlRmlsdGVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZUVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikpO1xyXG4gICAgICAgIHRoaXMuaGFzUGF0Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5wYXRjaERPTU1ldGhvZHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzUGF0Y2hlZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMudW5wYXRjaENsYXNzTW9kdWxlcyhXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGVzKHRoaXMubW9kdWxlRmlsdGVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLnJldmVydEVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikpO1xyXG4gICAgICAgIHRoaXMuaGFzUGF0Y2hlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoQ2xhc3NNb2R1bGVzKG1vZHVsZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF0Y2hDbGFzc01vZHVsZShub3JtYWxpemVkUHJlZml4LCBtb2R1bGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bnBhdGNoQ2xhc3NNb2R1bGVzKG1vZHVsZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5wYXRjaENsYXNzTW9kdWxlKG5vcm1hbGl6ZWRQcmVmaXgsIG1vZHVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3VsZElnbm9yZSh2YWx1ZSkge1xyXG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoXCJweFwiKSB8fCB2YWx1ZS5lbmRzV2l0aChcImNoXCIpIHx8IHZhbHVlLmVuZHNXaXRoKFwiZW1cIikgfHwgdmFsdWUuZW5kc1dpdGgoXCJtc1wiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoXCJsYXllckNvbnRhaW5lci1cIikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiI1wiKSAmJiAodmFsdWUubGVuZ3RoID09IDcgfHwgdmFsdWUubGVuZ3RoID09IDQpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoXCJjYWxjKFwiKSB8fCB2YWx1ZS5pbmNsdWRlcyhcInJnYmFcIikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBtb2R1bGVGaWx0ZXIobW9kdWxlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheShtb2R1bGUpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKG1vZHVsZS5fX2VzTW9kdWxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhtb2R1bGUpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgYmFzZUNsYXNzTmFtZSBpbiBtb2R1bGUpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBtb2R1bGVbYmFzZUNsYXNzTmFtZV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkSWdub3JlKHZhbHVlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zcGxpdChcIi1cIikubGVuZ3RoID09PSAxKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICghcmFuZENsYXNzLnRlc3QodmFsdWUuc3BsaXQoXCIgXCIpWzBdKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hDbGFzc01vZHVsZShjb21wb25lbnROYW1lLCBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3QgY2xhc3NMaXN0ID0gdmFsdWUuc3BsaXQoXCIgXCIpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vcm1hbENsYXNzIG9mIGNsYXNzTGlzdCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBub3JtYWxDbGFzcy5tYXRjaChyYW5kQ2xhc3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCB8fCAhbWF0Y2gubGVuZ3RoIHx8IG1hdGNoLmxlbmd0aCA8IDIpIGNvbnRpbnVlOyAvLyBTaG91bGRuJ3QgZXZlciBoYXBwZW4gc2luY2UgdGhleSBwYXNzZWQgdGhlIG1vZHVsZUZpbHRlciwgYnV0IHlvdSBuZXZlciBrbm93XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYW1lbENhc2UgPSBtYXRjaFsxXS5zcGxpdChcIi1cIikubWFwKChzLCBpKSA9PiBpID8gc1swXS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSA6IHMpLmpvaW4oXCJcIik7XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdICs9IGAgJHtjb21wb25lbnROYW1lfS0ke2NhbWVsQ2FzZX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVucGF0Y2hDbGFzc01vZHVsZShjb21wb25lbnROYW1lLCBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IG5ld1N0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTGlzdCA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBub3JtYWxDbGFzcyBvZiBjbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIGlmIChub3JtYWxDbGFzcy5zdGFydHNXaXRoKGAke2NvbXBvbmVudE5hbWV9LWApKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIG5ld1N0cmluZyArPSBgICR7bm9ybWFsQ2xhc3N9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdID0gbmV3U3RyaW5nLnRyaW0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbm9ybWFsaXplRWxlbWVudChlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwLCBjbGVuID0gY2xhc3Nlcy5sZW5ndGg7IGMgPCBjbGVuOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKCFyYW5kQ2xhc3MudGVzdChjbGFzc2VzW2NdKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gY2xhc3Nlc1tjXS5tYXRjaChyYW5kQ2xhc3MpWzFdO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdDbGFzcyA9IG1hdGNoLnNwbGl0KFwiLVwiKS5tYXAoKHMsIGkpID0+IGkgPyBzWzBdLnRvVXBwZXJDYXNlKCkgKyBzLnNsaWNlKDEpIDogcykuam9pbihcIlwiKTtcclxuICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGAke25vcm1hbGl6ZWRQcmVmaXh9LSR7bmV3Q2xhc3N9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZWxlbWVudC5jaGlsZHJlbikgdGhpcy5ub3JtYWxpemVFbGVtZW50KGNoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZlcnRFbGVtZW50KGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybjtcclxuICAgICAgICBpZiAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgIGlmIChlbGVtZW50Lm5leHRFbGVtZW50U2libGluZykgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKTtcclxuICAgICAgICBjb25zdCBjbGFzc2VzID0gZWxlbWVudC5jbGFzc0xpc3Q7XHJcbiAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IGNsYXNzZXMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKGNsYXNzZXNbY10uc3RhcnRzV2l0aChgJHtub3JtYWxpemVkUHJlZml4fS1gKSkgdG9SZW1vdmUucHVzaChjbGFzc2VzW2NdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLnRvUmVtb3ZlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcGF0Y2hET01NZXRob2RzKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5zID0gRE9NVG9rZW5MaXN0LnByb3RvdHlwZS5jb250YWlucztcclxuICAgICAgICBET01Ub2tlbkxpc3QucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24odG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgdG9rZW5zID0gdG9rZW4uc3BsaXQoXCIgXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zLmV2ZXJ5KHQgPT4gY29udGFpbnMuY2FsbCh0aGlzLCB0KSk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/classnormalizer.js\n");
/***/ }),
/***/ "./src/builtins/coloredtext.js":
/*!*************************************!*\
!*** ./src/builtins/coloredtext.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst MessageContent = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.default && m.default.displayName && m.default.displayName == \"Message\");\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ColoredText extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"ColoredText\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"coloredText\";\n }\n\n enabled() {\n this.injectColoredText();\n }\n\n disabled() {\n this.unpatchAll();\n }\n\n injectColoredText() {\n this.after(MessageContent.prototype, \"render\", (thisObject, args, retVal) => {\n this.after(retVal.props, \"children\", {\n silent: true,\n after: ({\n returnValue\n }) => {\n const markup = returnValue.props.children[1];\n const roleColor = thisObject.props.message.colorString;\n if (markup && roleColor) markup.props.style = {\n color: roleColor\n };\n }\n });\n });\n }\n\n removeColoredText() {\n document.querySelectorAll(\".markup-2BOw-j\").forEach(elem => {\n elem.style.setProperty(\"color\", \"\");\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NvbG9yZWR0ZXh0LmpzP2RlMDkiXSwibmFtZXMiOlsiTWVzc2FnZUNvbnRlbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0IiwiZGlzcGxheU5hbWUiLCJDb2xvcmVkVGV4dCIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCJpbmplY3RDb2xvcmVkVGV4dCIsImRpc2FibGVkIiwidW5wYXRjaEFsbCIsImFmdGVyIiwicHJvdG90eXBlIiwidGhpc09iamVjdCIsImFyZ3MiLCJyZXRWYWwiLCJwcm9wcyIsInNpbGVudCIsInJldHVyblZhbHVlIiwibWFya3VwIiwiY2hpbGRyZW4iLCJyb2xlQ29sb3IiLCJtZXNzYWdlIiwiY29sb3JTdHJpbmciLCJzdHlsZSIsImNvbG9yIiwicmVtb3ZlQ29sb3JlZFRleHQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiZWxlbSIsInNldFByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsTUFBTUEsY0FBYyxHQUFHQyxzREFBYyxDQUFDQyxTQUFmLENBQXlCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsT0FBRixJQUFhRCxDQUFDLENBQUNDLE9BQUYsQ0FBVUMsV0FBdkIsSUFBc0NGLENBQUMsQ0FBQ0MsT0FBRixDQUFVQyxXQUFWLElBQXlCLFNBQTdGLENBQXZCO0FBRWUsbUVBQUksTUFBTUMsV0FBTixTQUEwQkMsd0RBQTFCLENBQWtDO0FBQ2pELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFDbEMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLGFBQVA7QUFBc0I7O0FBRWhDQyxTQUFPLEdBQUc7QUFDTixTQUFLQyxpQkFBTDtBQUNIOztBQUVEQyxVQUFRLEdBQUc7QUFDUCxTQUFLQyxVQUFMO0FBQ0g7O0FBRURGLG1CQUFpQixHQUFHO0FBQ2hCLFNBQUtHLEtBQUwsQ0FBV2YsY0FBYyxDQUFDZ0IsU0FBMUIsRUFBcUMsUUFBckMsRUFBK0MsQ0FBQ0MsVUFBRCxFQUFhQyxJQUFiLEVBQW1CQyxNQUFuQixLQUE4QjtBQUN6RSxXQUFLSixLQUFMLENBQVdJLE1BQU0sQ0FBQ0MsS0FBbEIsRUFBeUIsVUFBekIsRUFBcUM7QUFBQ0MsY0FBTSxFQUFFLElBQVQ7QUFBZU4sYUFBSyxFQUFFLENBQUM7QUFBQ087QUFBRCxTQUFELEtBQW1CO0FBQzFFLGdCQUFNQyxNQUFNLEdBQUdELFdBQVcsQ0FBQ0YsS0FBWixDQUFrQkksUUFBbEIsQ0FBMkIsQ0FBM0IsQ0FBZjtBQUNBLGdCQUFNQyxTQUFTLEdBQUdSLFVBQVUsQ0FBQ0csS0FBWCxDQUFpQk0sT0FBakIsQ0FBeUJDLFdBQTNDO0FBQ0EsY0FBSUosTUFBTSxJQUFJRSxTQUFkLEVBQXlCRixNQUFNLENBQUNILEtBQVAsQ0FBYVEsS0FBYixHQUFxQjtBQUFDQyxpQkFBSyxFQUFFSjtBQUFSLFdBQXJCO0FBQzVCO0FBSm9DLE9BQXJDO0FBS0gsS0FORDtBQU9IOztBQUVESyxtQkFBaUIsR0FBRztBQUNoQkMsWUFBUSxDQUFDQyxnQkFBVCxDQUEwQixnQkFBMUIsRUFBNENDLE9BQTVDLENBQW9EQyxJQUFJLElBQUk7QUFDeERBLFVBQUksQ0FBQ04sS0FBTCxDQUFXTyxXQUFYLENBQXVCLE9BQXZCLEVBQWdDLEVBQWhDO0FBQ0gsS0FGRDtBQUdIOztBQTNCZ0QsQ0FBdEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9jb2xvcmVkdGV4dC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IE1lc3NhZ2VDb250ZW50ID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0ICYmIG0uZGVmYXVsdC5kaXNwbGF5TmFtZSAmJiBtLmRlZmF1bHQuZGlzcGxheU5hbWUgPT0gXCJNZXNzYWdlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIENvbG9yZWRUZXh0IGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJDb2xvcmVkVGV4dFwiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJhcHBlYXJhbmNlXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImNvbG9yZWRUZXh0XCI7fVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5pbmplY3RDb2xvcmVkVGV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHRoaXMudW5wYXRjaEFsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdENvbG9yZWRUZXh0KCkge1xyXG4gICAgICAgIHRoaXMuYWZ0ZXIoTWVzc2FnZUNvbnRlbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCwgYXJncywgcmV0VmFsKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXIocmV0VmFsLnByb3BzLCBcImNoaWxkcmVuXCIsIHtzaWxlbnQ6IHRydWUsIGFmdGVyOiAoe3JldHVyblZhbHVlfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFya3VwID0gcmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW5bMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb2xlQ29sb3IgPSB0aGlzT2JqZWN0LnByb3BzLm1lc3NhZ2UuY29sb3JTdHJpbmc7XHJcbiAgICAgICAgICAgICAgICBpZiAobWFya3VwICYmIHJvbGVDb2xvcikgbWFya3VwLnByb3BzLnN0eWxlID0ge2NvbG9yOiByb2xlQ29sb3J9O1xyXG4gICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ29sb3JlZFRleHQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrdXAtMkJPdy1qXCIpLmZvckVhY2goZWxlbSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBcIlwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/coloredtext.js\n");
/***/ }),
/***/ "./src/builtins/customcss.js":
/*!***********************************!*\
!*** ./src/builtins/customcss.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/csseditor */ \"./src/ui/customcss/csseditor.jsx\");\n/* harmony import */ var _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/floating/container */ \"./src/ui/floating/container.jsx\");\n/* harmony import */ var _ui_settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modules/utilities */ \"./src/modules/utilities.js\");\n\n\n\n\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\nconst UserSettings = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"updateAccount\");\nconst Dispatcher = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"dirtyDispatch\");\nconst ActionTypes = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"ActionTypes\").ActionTypes;\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"openAction\") == \"detached\";\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"openAction\") == \"system\";\n }\n\n constructor() {\n super();\n this.savedCss = \"\";\n this.insertedCss = \"\";\n this.isDetached = false;\n }\n\n async enabled() {\n if (!window.ace) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOMManager\"].injectScript(\"ace-script\", \"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\").then(() => {\n if (window.require.original) window.require = window.require.original;\n });\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Panels.customcss, {\n order: 2,\n element: () => [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].CustomCSS.editorTitle\n }), modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.savedCss,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n openDetached: this.openDetached.bind(this),\n onChange: this.onChange.bind(this)\n })],\n onClick: thisObject => {\n if (this.isDetached) return;\n if (this.nativeOpen) return this.openNative();else if (this.startDetached) return this.openDetached();\n const settingsView = _modules_utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].findInRenderTree(thisObject._reactInternalFiber, m => m && m.onSetSection, {\n walkable: [\"child\", \"memoizedProps\", \"props\", \"children\"]\n });\n if (settingsView && settingsView.onSetSection) settingsView.onSetSection(this.id);\n }\n });\n this.loadCSS();\n this.insertCSS(this.savedCss);\n this.watchContent();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n this.unwatchContent();\n }\n\n watchContent() {\n if (this.watcher) return this.error(\"Already watching content.\");\n const timeCache = {};\n this.log(\"Starting to watch content.\");\n this.watcher = fs.watch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete timeCache[filename];\n this.saveCSS(\"\");\n }\n\n const stats = fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (timeCache[filename] == stats.mtime.getTime()) return;\n timeCache[filename] = stats.mtime.getTime();\n\n if (eventType == \"change\") {\n const newCSS = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n if (newCSS == this.savedCss) return;\n this.savedCss = newCSS;\n this.insertCSS(this.savedCss);\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].emit(\"customcss-updated\", this.savedCss);\n }\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return this.error(\"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n this.log(\"No longer watching content.\");\n }\n\n onChange(value) {\n if (!modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\")) return;\n this.insertCSS(value);\n this.saveCSS(value);\n }\n\n loadCSS() {\n this.savedCss = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.insertedCss;else this.insertedCss = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOMManager\"].updateCustomCSS(newCss);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.savedCss = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.savedCss);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached(currentCSS) {\n const editorRef = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createRef();\n const editor = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n id: \"bd-floating-editor\",\n ref: editorRef,\n css: currentCSS,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n onChange: this.onChange.bind(this)\n });\n _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__[\"default\"].open({\n onClose: () => {\n this.isDetached = false;\n },\n onResize: () => {\n if (!editorRef || !editorRef.current || !editorRef.current.resize) return;\n editorRef.current.resize();\n },\n title: modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].CustomCSS.editorTitle,\n id: \"floating-editor-window\",\n height: 470,\n width: 410,\n center: true,\n resizable: true,\n children: editor,\n confirmClose: () => {\n if (!editorRef || !editorRef.current) return false;\n return editorRef.current.hasUnsavedChanges;\n },\n confirmationText: modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].CustomCSS.confirmationText\n });\n this.isDetached = true;\n UserSettings.close();\n Dispatcher.dirtyDispatch({\n type: ActionTypes.LAYER_POP\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsImVsZWN0cm9uIiwiVXNlclNldHRpbmdzIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiRGlzcGF0Y2hlciIsIkFjdGlvblR5cGVzIiwiQ3VzdG9tQ1NTIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic3RhcnREZXRhY2hlZCIsIlNldHRpbmdzIiwiZ2V0IiwiY29sbGVjdGlvbiIsIm5hdGl2ZU9wZW4iLCJjb25zdHJ1Y3RvciIsInNhdmVkQ3NzIiwiaW5zZXJ0ZWRDc3MiLCJpc0RldGFjaGVkIiwiZW5hYmxlZCIsIndpbmRvdyIsImFjZSIsIkRPTU1hbmFnZXIiLCJpbmplY3RTY3JpcHQiLCJ0aGVuIiwib3JpZ2luYWwiLCJyZWdpc3RlclBhbmVsIiwiU3RyaW5ncyIsIlBhbmVscyIsImN1c3RvbWNzcyIsIm9yZGVyIiwiZWxlbWVudCIsImVkaXRvclRpdGxlIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiQ1NTRWRpdG9yIiwiY3NzIiwic2F2ZSIsInNhdmVDU1MiLCJiaW5kIiwidXBkYXRlIiwiaW5zZXJ0Q1NTIiwib3Blbk5hdGl2ZSIsIm9wZW5EZXRhY2hlZCIsIm9uQ2hhbmdlIiwib25DbGljayIsInRoaXNPYmplY3QiLCJzZXR0aW5nc1ZpZXciLCJVdGlsaXRpZXMiLCJmaW5kSW5SZW5kZXJUcmVlIiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsIm0iLCJvblNldFNlY3Rpb24iLCJ3YWxrYWJsZSIsImxvYWRDU1MiLCJ3YXRjaENvbnRlbnQiLCJkaXNhYmxlZCIsInJlbW92ZVBhbmVsIiwidW53YXRjaENvbnRlbnQiLCJ3YXRjaGVyIiwiZXJyb3IiLCJ0aW1lQ2FjaGUiLCJsb2ciLCJ3YXRjaCIsIkRhdGFTdG9yZSIsImN1c3RvbUNTUyIsInBlcnNpc3RlbnQiLCJldmVudFR5cGUiLCJmaWxlbmFtZSIsIlByb21pc2UiLCJyIiwic2V0VGltZW91dCIsInN0YXRTeW5jIiwiZXJyIiwiY29kZSIsInN0YXRzIiwibXRpbWUiLCJnZXRUaW1lIiwibmV3Q1NTIiwibG9hZEN1c3RvbUNTUyIsIkV2ZW50cyIsImVtaXQiLCJjbG9zZSIsInZhbHVlIiwibmV3Q3NzIiwidXBkYXRlQ3VzdG9tQ1NTIiwic2F2ZUN1c3RvbUNTUyIsInNoZWxsIiwib3BlbkV4dGVybmFsIiwiY3VycmVudENTUyIsImVkaXRvclJlZiIsImNyZWF0ZVJlZiIsImVkaXRvciIsInJlZiIsIkZsb2F0aW5nV2luZG93Q29udGFpbmVyIiwib3BlbiIsIm9uQ2xvc2UiLCJvblJlc2l6ZSIsImN1cnJlbnQiLCJyZXNpemUiLCJ0aXRsZSIsImhlaWdodCIsIndpZHRoIiwiY2VudGVyIiwicmVzaXphYmxlIiwiY2hpbGRyZW4iLCJjb25maXJtQ2xvc2UiLCJoYXNVbnNhdmVkQ2hhbmdlcyIsImNvbmZpcm1hdGlvblRleHQiLCJkaXJ0eURpc3BhdGNoIiwidHlwZSIsIkxBWUVSX1BPUCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHRCxtQkFBTyxDQUFDLDBCQUFELENBQXhCOztBQUNBLE1BQU1FLFlBQVksR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFyQjtBQUNBLE1BQU1DLFVBQVUsR0FBR0Ysc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFuQjtBQUNBLE1BQU1FLFdBQVcsR0FBR0gsc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixhQUExQixFQUF5Q0UsV0FBN0Q7QUFFZSxtRUFBSSxNQUFNQyxTQUFOLFNBQXdCQyx3REFBeEIsQ0FBZ0M7QUFDL0MsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxZ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O0FBQ0gsT0FId0I7QUFJekIrRSxjQUFRLEVBQUUsTUFBTTtBQUNaLFlBQUksQ0FBQ1AsU0FBRCxJQUFjLENBQUNBLFNBQVMsQ0FBQ1EsT0FBekIsSUFBb0MsQ0FBQ1IsU0FBUyxDQUFDUSxPQUFWLENBQWtCQyxNQUEzRCxFQUFtRTtBQUNuRVQsaUJBQVMsQ0FBQ1EsT0FBVixDQUFrQkMsTUFBbEI7QUFDSCxPQVB3QjtBQVF6QkMsV0FBSyxFQUFFekUsK0NBQU8sQ0FBQ3RCLFNBQVIsQ0FBa0IyQixXQVJBO0FBU3pCdkIsUUFBRSxFQUFFLHdCQVRxQjtBQVV6QjRGLFlBQU0sRUFBRSxHQVZpQjtBQVd6QkMsV0FBSyxFQUFFLEdBWGtCO0FBWXpCQyxZQUFNLEVBQUUsSUFaaUI7QUFhekJDLGVBQVMsRUFBRSxJQWJjO0FBY3pCQyxjQUFRLEVBQUViLE1BZGU7QUFlekJjLGtCQUFZLEVBQUUsTUFBTTtBQUNoQixZQUFJLENBQUNoQixTQUFELElBQWMsQ0FBQ0EsU0FBUyxDQUFDUSxPQUE3QixFQUFzQyxPQUFPLEtBQVA7QUFDdEMsZUFBT1IsU0FBUyxDQUFDUSxPQUFWLENBQWtCUyxpQkFBekI7QUFDSCxPQWxCd0I7QUFtQnpCQyxzQkFBZ0IsRUFBRWpGLCtDQUFPLENBQUN0QixTQUFSLENBQWtCdUc7QUFuQlgsS0FBN0I7QUFxQkEsU0FBSzFGLFVBQUwsR0FBa0IsSUFBbEI7QUFDQWxCLGdCQUFZLENBQUNrRixLQUFiO0FBQ0EvRSxjQUFVLENBQUMwRyxhQUFYLENBQXlCO0FBQUNDLFVBQUksRUFBRTFHLFdBQVcsQ0FBQzJHO0FBQW5CLEtBQXpCO0FBQ0g7O0FBaEo4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtTZXR0aW5ncywgRGF0YVN0b3JlLCBSZWFjdCwgV2VicGFja01vZHVsZXMsIEV2ZW50cywgRE9NTWFuYWdlciwgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IENTU0VkaXRvciBmcm9tIFwiLi4vdWkvY3VzdG9tY3NzL2Nzc2VkaXRvclwiO1xyXG5pbXBvcnQgRmxvYXRpbmdXaW5kb3dDb250YWluZXIgZnJvbSBcIi4uL3VpL2Zsb2F0aW5nL2NvbnRhaW5lclwiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi4vdWkvc2V0dGluZ3MvdGl0bGVcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi4vbW9kdWxlcy91dGlsaXRpZXNcIjtcclxuXHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBlbGVjdHJvbiA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTtcclxuY29uc3QgVXNlclNldHRpbmdzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInVwZGF0ZUFjY291bnRcIik7XHJcbmNvbnN0IERpc3BhdGNoZXIgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGlydHlEaXNwYXRjaFwiKTtcclxuY29uc3QgQWN0aW9uVHlwZXMgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiQWN0aW9uVHlwZXNcIikuQWN0aW9uVHlwZXM7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ3VzdG9tQ1NTIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJDdXN0b20gQ1NTXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImN1c3RvbWNzc1wiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJjdXN0b21jc3NcIjt9XHJcbiAgICBnZXQgc3RhcnREZXRhY2hlZCgpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgXCJvcGVuQWN0aW9uXCIpID09IFwiZGV0YWNoZWRcIjt9XHJcbiAgICBnZXQgbmF0aXZlT3BlbigpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgXCJvcGVuQWN0aW9uXCIpID09IFwic3lzdGVtXCI7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5zYXZlZENzcyA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5pbnNlcnRlZENzcyA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5pc0RldGFjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHtcclxuICAgICAgICBpZiAoIXdpbmRvdy5hY2UpIHtcclxuICAgICAgICAgICAgRE9NTWFuYWdlci5pbmplY3RTY3JpcHQoXCJhY2Utc2NyaXB0XCIsIFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qc1wiKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cucmVxdWlyZS5vcmlnaW5hbCkgd2luZG93LnJlcXVpcmUgPSB3aW5kb3cucmVxdWlyZS5vcmlnaW5hbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFNldHRpbmdzLnJlZ2lzdGVyUGFuZWwodGhpcy5pZCwgU3RyaW5ncy5QYW5lbHMuY3VzdG9tY3NzLCB7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyLFxyXG4gICAgICAgICAgICBlbGVtZW50OiAoKSA9PiBbPFNldHRpbmdzVGl0bGUgdGV4dD17U3RyaW5ncy5DdXN0b21DU1MuZWRpdG9yVGl0bGV9IC8+LCBSZWFjdC5jcmVhdGVFbGVtZW50KENTU0VkaXRvciwge1xyXG4gICAgICAgICAgICAgICAgY3NzOiB0aGlzLnNhdmVkQ3NzLFxyXG4gICAgICAgICAgICAgICAgc2F2ZTogdGhpcy5zYXZlQ1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICB1cGRhdGU6IHRoaXMuaW5zZXJ0Q1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBvcGVuTmF0aXZlOiB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogdGhpcy5vcGVuRGV0YWNoZWQuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcylcclxuICAgICAgICAgICAgfSldLFxyXG4gICAgICAgICAgICBvbkNsaWNrOiAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEZXRhY2hlZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlT3BlbikgcmV0dXJuIHRoaXMub3Blbk5hdGl2ZSgpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zdGFydERldGFjaGVkKSByZXR1cm4gdGhpcy5vcGVuRGV0YWNoZWQoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzVmlldyA9IFV0aWxpdGllcy5maW5kSW5SZW5kZXJUcmVlKHRoaXNPYmplY3QuX3JlYWN0SW50ZXJuYWxGaWJlciwgbSA9PiBtICYmIG0ub25TZXRTZWN0aW9uLCB7d2Fsa2FibGU6IFtcImNoaWxkXCIsIFwibWVtb2l6ZWRQcm9wc1wiLCBcInByb3BzXCIsIFwiY2hpbGRyZW5cIl19KTtcclxuICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nc1ZpZXcgJiYgc2V0dGluZ3NWaWV3Lm9uU2V0U2VjdGlvbikgc2V0dGluZ3NWaWV3Lm9uU2V0U2VjdGlvbih0aGlzLmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubG9hZENTUygpO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0Q1NTKHRoaXMuc2F2ZWRDc3MpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgU2V0dGluZ3MucmVtb3ZlUGFuZWwodGhpcy5pZCk7XHJcbiAgICAgICAgdGhpcy51bndhdGNoQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhdGNoQ29udGVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy53YXRjaGVyKSByZXR1cm4gdGhpcy5lcnJvcihcIkFscmVhZHkgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICAgICAgY29uc3QgdGltZUNhY2hlID0ge307XHJcbiAgICAgICAgdGhpcy5sb2coXCJTdGFydGluZyB0byB3YXRjaCBjb250ZW50LlwiKTtcclxuICAgICAgICB0aGlzLndhdGNoZXIgPSBmcy53YXRjaChEYXRhU3RvcmUuY3VzdG9tQ1NTLCB7cGVyc2lzdGVudDogZmFsc2V9LCBhc3luYyAoZXZlbnRUeXBlLCBmaWxlbmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWV2ZW50VHlwZSB8fCAhZmlsZW5hbWUpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMoRGF0YVN0b3JlLmN1c3RvbUNTUyk7fVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRU5PRU5UXCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aW1lQ2FjaGVbZmlsZW5hbWVdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlQ1NTKFwiXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoRGF0YVN0b3JlLmN1c3RvbUNTUyk7XHJcbiAgICAgICAgICAgIGlmICghc3RhdHMgfHwgIXN0YXRzLm10aW1lIHx8ICFzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihzdGF0cy5tdGltZS5nZXRUaW1lKCkpICE9PSBcIm51bWJlclwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0aW1lQ2FjaGVbZmlsZW5hbWVdID09IHN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aW1lQ2FjaGVbZmlsZW5hbWVdID0gc3RhdHMubXRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwiY2hhbmdlXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NTUyA9IERhdGFTdG9yZS5sb2FkQ3VzdG9tQ1NTKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3Q1NTID09IHRoaXMuc2F2ZWRDc3MpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZWRDc3MgPSBuZXdDU1M7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydENTUyh0aGlzLnNhdmVkQ3NzKTtcclxuICAgICAgICAgICAgICAgIEV2ZW50cy5lbWl0KFwiY3VzdG9tY3NzLXVwZGF0ZWRcIiwgdGhpcy5zYXZlZENzcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1bndhdGNoQ29udGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMud2F0Y2hlcikgcmV0dXJuIHRoaXMuZXJyb3IoXCJXYXMgbm90IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXI7XHJcbiAgICAgICAgdGhpcy5sb2coXCJObyBsb25nZXIgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UodmFsdWUpIHtcclxuICAgICAgICBpZiAoIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY3VzdG9tY3NzXCIsIFwibGl2ZVVwZGF0ZVwiKSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0Q1NTKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNhdmVDU1ModmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDU1MoKSB7XHJcbiAgICAgICAgdGhpcy5zYXZlZENzcyA9IERhdGFTdG9yZS5sb2FkQ3VzdG9tQ1NTKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Q1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSA9PT0gXCJ1bmRlZmluZWRcIikgbmV3Q3NzID0gdGhpcy5pbnNlcnRlZENzcztcclxuICAgICAgICBlbHNlIHRoaXMuaW5zZXJ0ZWRDc3MgPSBuZXdDc3M7XHJcbiAgICAgICAgRE9NTWFuYWdlci51cGRhdGVDdXN0b21DU1MobmV3Q3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlQ1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSAhPT0gXCJ1bmRlZmluZWRcIikgdGhpcy5zYXZlZENzcyA9IG5ld0NzcztcclxuICAgICAgICBEYXRhU3RvcmUuc2F2ZUN1c3RvbUNTUyh0aGlzLnNhdmVkQ3NzKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGVsZWN0cm9uLnNoZWxsLm9wZW5FeHRlcm5hbChgZmlsZTovLyR7RGF0YVN0b3JlLmN1c3RvbUNTU31gKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRGV0YWNoZWQoY3VycmVudENTUykge1xyXG4gICAgICAgIGNvbnN0IGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG4gICAgICAgIGNvbnN0IGVkaXRvciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTRWRpdG9yLCB7XHJcbiAgICAgICAgICAgIGlkOiBcImJkLWZsb2F0aW5nLWVkaXRvclwiLFxyXG4gICAgICAgICAgICByZWY6IGVkaXRvclJlZixcclxuICAgICAgICAgICAgY3NzOiBjdXJyZW50Q1NTLFxyXG4gICAgICAgICAgICBzYXZlOiB0aGlzLnNhdmVDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgdXBkYXRlOiB0aGlzLmluc2VydENTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBvcGVuTmF0aXZlOiB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lci5vcGVuKHtcclxuICAgICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0RldGFjaGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uUmVzaXplOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWVkaXRvclJlZiB8fCAhZWRpdG9yUmVmLmN1cnJlbnQgfHwgIWVkaXRvclJlZi5jdXJyZW50LnJlc2l6ZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQucmVzaXplKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpdGxlOiBTdHJpbmdzLkN1c3RvbUNTUy5lZGl0b3JUaXRsZSxcclxuICAgICAgICAgICAgaWQ6IFwiZmxvYXRpbmctZWRpdG9yLXdpbmRvd1wiLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDQ3MCxcclxuICAgICAgICAgICAgd2lkdGg6IDQxMCxcclxuICAgICAgICAgICAgY2VudGVyOiB0cnVlLFxyXG4gICAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBlZGl0b3IsXHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlZGl0b3JSZWYgfHwgIWVkaXRvclJlZi5jdXJyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWRpdG9yUmVmLmN1cnJlbnQuaGFzVW5zYXZlZENoYW5nZXM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFN0cmluZ3MuQ3VzdG9tQ1NTLmNvbmZpcm1hdGlvblRleHRcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlzRGV0YWNoZWQgPSB0cnVlO1xyXG4gICAgICAgIFVzZXJTZXR0aW5ncy5jbG9zZSgpO1xyXG4gICAgICAgIERpc3BhdGNoZXIuZGlydHlEaXNwYXRjaCh7dHlwZTogQWN0aW9uVHlwZXMuTEFZRVJfUE9QfSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n");
/***/ }),
/***/ "./src/builtins/darkmode.js":
/*!**********************************!*\
!*** ./src/builtins/darkmode.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DarkMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"darkMode\";\n }\n\n enabled() {\n document.getElementById(\"app-mount\").classList.add(\"bda-dark\", \"bd-dark\");\n }\n\n disabled() {\n document.getElementById(\"app-mount\").classList.remove(\"bda-dark\", \"bd-dark\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Rhcmttb2RlLmpzPzVkZGUiXSwibmFtZXMiOlsiRGFya01vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJlbmFibGVkIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsYXNzTGlzdCIsImFkZCIsImRpc2FibGVkIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFZSxtRUFBSSxNQUFNQSxRQUFOLFNBQXVCQyx3REFBdkIsQ0FBK0I7QUFDOUMsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxVQUFQO0FBQW1COztBQUMvQixNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ3JDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFFN0JDLFNBQU8sR0FBRztBQUNOQyxZQUFRLENBQUNDLGNBQVQsQ0FBd0IsV0FBeEIsRUFBcUNDLFNBQXJDLENBQStDQyxHQUEvQyxDQUFtRCxVQUFuRCxFQUErRCxTQUEvRDtBQUNIOztBQUVEQyxVQUFRLEdBQUc7QUFDUEosWUFBUSxDQUFDQyxjQUFULENBQXdCLFdBQXhCLEVBQXFDQyxTQUFyQyxDQUErQ0csTUFBL0MsQ0FBc0QsVUFBdEQsRUFBa0UsU0FBbEU7QUFDSDs7QUFYNkMsQ0FBbkMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9kYXJrbW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRGFya01vZGVcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiYXBwZWFyYW5jZVwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJkYXJrTW9kZVwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYXBwLW1vdW50XCIpLmNsYXNzTGlzdC5hZGQoXCJiZGEtZGFya1wiLCBcImJkLWRhcmtcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhcHAtbW91bnRcIikuY2xhc3NMaXN0LnJlbW92ZShcImJkYS1kYXJrXCIsIFwiYmQtZGFya1wiKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/darkmode.js\n");
/***/ }),
/***/ "./src/builtins/developermode.js":
/*!***************************************!*\
!*** ./src/builtins/developermode.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DeveloperMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DeveloperMode\";\n }\n\n get category() {\n return \"developer\";\n }\n\n get id() {\n return \"developerMode\";\n }\n\n get selectorModeID() {\n return \"copySelector\";\n }\n\n get selectorMode() {\n return this.get(this.selectorModeID);\n }\n\n constructor() {\n super();\n this.enableSelectors = this.enableSelectors.bind(this);\n this.disableSelectors = this.disableSelectors.bind(this);\n }\n\n enabled() {\n $(document).on(\"keydown.bdDevmode\", e => {\n if (e.which === 119 || e.which == 118) {\n //F8\n this.log(\"Debugger Activated\");\n debugger; // eslint-disable-line no-debugger\n }\n });\n if (this.selectorMode) this.enableSelectors();\n this.selectorCancel = this.registerSetting(this.selectorModeID, this.enableSelectors, this.disableSelectors);\n }\n\n disabled() {\n $(document).off(\"keydown.bdDevmode\");\n if (this.selectorMode) this.disableSelectors();\n if (this.selectorCancel) this.selectorCancel();\n }\n\n enableSelectors() {\n $(document).on(\"contextmenu.bdDevmode\", e => {\n this.lastSelector = this.getSelector(e.toElement);\n\n const attach = () => {\n let cm = $(\".contextMenu-HLZMGh\");\n\n if (cm.length <= 0) {\n cm = $(\"<div class=\\\"contextMenu-HLZMGh bd-context-menu\\\"></div>\");\n cm.addClass($(\".app, .app-2rEoOp\").hasClass(\"theme-dark\") ? \"theme-dark\" : \"theme-light\");\n cm.appendTo(\".app, .app-2rEoOp\");\n cm.css(\"top\", e.clientY);\n cm.css(\"left\", e.clientX);\n $(document).on(\"click.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"contextmenu.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"keyup.bdDevModeCtx\", event => {\n if (event.keyCode === 27) {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n }\n });\n }\n\n const cmo = $(\"<div/>\", {\n \"class\": \"itemGroup-1tL0uz\"\n });\n const cmi = $(\"<div/>\", {\n \"class\": \"item-1Yvehc\",\n \"click\": () => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ElectronModule.copy(this.lastSelector);\n cm.hide();\n }\n }).append($(\"<span/>\", {\n text: modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Collections.settings.developer.copySelector.name\n }));\n cmo.append(cmi);\n cm.append(cmo);\n if (cm.hasClass(\"undefined\")) cm.css(\"top\", \"-=\" + cmo.outerHeight());\n };\n\n setImmediate(attach);\n e.stopPropagation();\n });\n }\n\n disableSelectors() {\n $(document).off(\"contextmenu.bdDevmode\");\n $(document).off(\"contextmenu.bdDevModeCtx\");\n }\n\n getRules(element, css = element.ownerDocument.styleSheets) {\n // return [].concat(...[...css].map(s => [...s.cssRules || []])).filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8);\n const sheets = [...css].filter(s => !s.href || !s.href.includes(\"BetterDiscordApp\"));\n const rules = sheets.map(s => [...(s.cssRules || [])]).flat();\n const elementRules = rules.filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8 && !r.selectorText.split(\", \").includes(\"*\"));\n return elementRules;\n }\n\n getSelector(element) {\n if (element.id) return `#${element.id}`;\n const rules = this.getRules(element);\n const latestRule = rules[rules.length - 1];\n if (latestRule) return latestRule.selectorText;else if (element.classList.length) return `.${Array.from(element.classList).join(\".\")}`;\n return `.${Array.from(element.parentElement.classList).join(\".\")}`;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2RldmVsb3Blcm1vZGUuanM/NjY2OSJdLCJuYW1lcyI6WyJEZXZlbG9wZXJNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic2VsZWN0b3JNb2RlSUQiLCJzZWxlY3Rvck1vZGUiLCJnZXQiLCJjb25zdHJ1Y3RvciIsImVuYWJsZVNlbGVjdG9ycyIsImJpbmQiLCJkaXNhYmxlU2VsZWN0b3JzIiwiZW5hYmxlZCIsIiQiLCJkb2N1bWVudCIsIm9uIiwiZSIsIndoaWNoIiwibG9nIiwic2VsZWN0b3JDYW5jZWwiLCJyZWdpc3RlclNldHRpbmciLCJkaXNhYmxlZCIsIm9mZiIsImxhc3RTZWxlY3RvciIsImdldFNlbGVjdG9yIiwidG9FbGVtZW50IiwiYXR0YWNoIiwiY20iLCJsZW5ndGgiLCJhZGRDbGFzcyIsImhhc0NsYXNzIiwiYXBwZW5kVG8iLCJjc3MiLCJjbGllbnRZIiwiY2xpZW50WCIsInJlbW92ZSIsImV2ZW50Iiwia2V5Q29kZSIsImNtbyIsImNtaSIsIkRpc2NvcmRNb2R1bGVzIiwiRWxlY3Ryb25Nb2R1bGUiLCJjb3B5IiwiaGlkZSIsImFwcGVuZCIsInRleHQiLCJTdHJpbmdzIiwiQ29sbGVjdGlvbnMiLCJzZXR0aW5ncyIsImRldmVsb3BlciIsImNvcHlTZWxlY3RvciIsIm91dGVySGVpZ2h0Iiwic2V0SW1tZWRpYXRlIiwic3RvcFByb3BhZ2F0aW9uIiwiZ2V0UnVsZXMiLCJlbGVtZW50Iiwib3duZXJEb2N1bWVudCIsInN0eWxlU2hlZXRzIiwic2hlZXRzIiwiZmlsdGVyIiwicyIsImhyZWYiLCJpbmNsdWRlcyIsInJ1bGVzIiwibWFwIiwiY3NzUnVsZXMiLCJmbGF0IiwiZWxlbWVudFJ1bGVzIiwiciIsInNlbGVjdG9yVGV4dCIsIm1hdGNoZXMiLCJzdHlsZSIsInNwbGl0IiwibGF0ZXN0UnVsZSIsImNsYXNzTGlzdCIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJw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Q0FBQ25ELEVBQVosRUFBZ0IsT0FBUSxJQUFHbUQsT0FBTyxDQUFDbkQsRUFBRyxFQUF0QjtBQUNoQixVQUFNMkQsS0FBSyxHQUFHLEtBQUtULFFBQUwsQ0FBY0MsT0FBZCxDQUFkO0FBQ0EsVUFBTWtCLFVBQVUsR0FBR1YsS0FBSyxDQUFDQSxLQUFLLENBQUNuQyxNQUFOLEdBQWUsQ0FBaEIsQ0FBeEI7QUFDQSxRQUFJNkMsVUFBSixFQUFnQixPQUFPQSxVQUFVLENBQUNKLFlBQWxCLENBQWhCLEtBQ0ssSUFBSWQsT0FBTyxDQUFDbUIsU0FBUixDQUFrQjlDLE1BQXRCLEVBQThCLE9BQVEsSUFBRytDLEtBQUssQ0FBQ0MsSUFBTixDQUFXckIsT0FBTyxDQUFDbUIsU0FBbkIsRUFBOEJHLElBQTlCLENBQW1DLEdBQW5DLENBQXdDLEVBQW5EO0FBQ25DLFdBQVEsSUFBR0YsS0FBSyxDQUFDQyxJQUFOLENBQVdyQixPQUFPLENBQUN1QixhQUFSLENBQXNCSixTQUFqQyxFQUE0Q0csSUFBNUMsQ0FBaUQsR0FBakQsQ0FBc0QsRUFBakU7QUFDSDs7QUFsR2tELENBQXhDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvZGV2ZWxvcGVybW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEaXNjb3JkTW9kdWxlcywgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEZXZlbG9wZXJNb2RlIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJEZXZlbG9wZXJNb2RlXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImRldmVsb3BlclwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJkZXZlbG9wZXJNb2RlXCI7fVxyXG4gICAgZ2V0IHNlbGVjdG9yTW9kZUlEKCkge3JldHVybiBcImNvcHlTZWxlY3RvclwiO31cclxuICAgIGdldCBzZWxlY3Rvck1vZGUoKSB7cmV0dXJuIHRoaXMuZ2V0KHRoaXMuc2VsZWN0b3JNb2RlSUQpO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlU2VsZWN0b3JzID0gdGhpcy5lbmFibGVTZWxlY3RvcnMuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVTZWxlY3RvcnMgPSB0aGlzLmRpc2FibGVTZWxlY3RvcnMuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKFwia2V5ZG93bi5iZERldm1vZGVcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGUud2hpY2ggPT09IDExOSB8fCBlLndoaWNoID09IDExOCkgey8vRjhcclxuICAgICAgICAgICAgICAgdGhpcy5sb2coXCJEZWJ1Z2dlciBBY3RpdmF0ZWRcIik7XHJcbiAgICAgICAgICAgICAgIGRlYnVnZ2VyOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWRlYnVnZ2VyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rvck1vZGUpIHRoaXMuZW5hYmxlU2VsZWN0b3JzKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RvckNhbmNlbCA9IHRoaXMucmVnaXN0ZXJTZXR0aW5nKHRoaXMuc2VsZWN0b3JNb2RlSUQsIHRoaXMuZW5hYmxlU2VsZWN0b3JzLCB0aGlzLmRpc2FibGVTZWxlY3RvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9mZihcImtleWRvd24uYmREZXZtb2RlXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdG9yTW9kZSkgdGhpcy5kaXNhYmxlU2VsZWN0b3JzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3JDYW5jZWwpIHRoaXMuc2VsZWN0b3JDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVTZWxlY3RvcnMoKSB7XHJcbiAgICAgICAgJChkb2N1bWVudCkub24oXCJjb250ZXh0bWVudS5iZERldm1vZGVcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0b3IgPSB0aGlzLmdldFNlbGVjdG9yKGUudG9FbGVtZW50KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgbGV0IGNtID0gJChcIi5jb250ZXh0TWVudS1ITFpNR2hcIik7XHJcbiAgICAgICAgICAgICAgIGlmIChjbS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgY20gPSAkKFwiPGRpdiBjbGFzcz1cXFwiY29udGV4dE1lbnUtSExaTUdoIGJkLWNvbnRleHQtbWVudVxcXCI+PC9kaXY+XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgY20uYWRkQ2xhc3MoJChcIi5hcHAsIC5hcHAtMnJFb09wXCIpLmhhc0NsYXNzKFwidGhlbWUtZGFya1wiKSA/IFwidGhlbWUtZGFya1wiIDogXCJ0aGVtZS1saWdodFwiKTtcclxuICAgICAgICAgICAgICAgICAgIGNtLmFwcGVuZFRvKFwiLmFwcCwgLmFwcC0yckVvT3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICBjbS5jc3MoXCJ0b3BcIiwgZS5jbGllbnRZKTtcclxuICAgICAgICAgICAgICAgICAgIGNtLmNzcyhcImxlZnRcIiwgZS5jbGllbnRYKTtcclxuICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2suYmREZXZNb2RlQ3R4XCIsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNvbnRleHRtZW51LmJkRGV2TW9kZUN0eFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgY20ucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwiLmJkRGV2TW9kZUN0eFwiKTtcclxuICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJrZXl1cC5iZERldk1vZGVDdHhcIiwgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICBjb25zdCBjbW8gPSAkKFwiPGRpdi8+XCIsIHtcclxuICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGVtR3JvdXAtMXRMMHV6XCJcclxuICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNtaSA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0ZW0tMVl2ZWhjXCIsXHJcbiAgICAgICAgICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5FbGVjdHJvbk1vZHVsZS5jb3B5KHRoaXMubGFzdFNlbGVjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIH0pLmFwcGVuZCgkKFwiPHNwYW4vPlwiLCB7dGV4dDogU3RyaW5ncy5Db2xsZWN0aW9ucy5zZXR0aW5ncy5kZXZlbG9wZXIuY29weVNlbGVjdG9yLm5hbWV9KSk7XHJcbiAgICAgICAgICAgICAgIGNtby5hcHBlbmQoY21pKTtcclxuICAgICAgICAgICAgICAgY20uYXBwZW5kKGNtbyk7XHJcbiAgICAgICAgICAgICAgIGlmIChjbS5oYXNDbGFzcyhcInVuZGVmaW5lZFwiKSkgY20uY3NzKFwidG9wXCIsICBcIi09XCIgKyBjbW8ub3V0ZXJIZWlnaHQoKSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoYXR0YWNoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlU2VsZWN0b3JzKCkge1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9mZihcImNvbnRleHRtZW51LmJkRGV2bW9kZVwiKTtcclxuICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJjb250ZXh0bWVudS5iZERldk1vZGVDdHhcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVsZXMoZWxlbWVudCwgY3NzID0gZWxlbWVudC5vd25lckRvY3VtZW50LnN0eWxlU2hlZXRzKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIFtdLmNvbmNhdCguLi5bLi4uY3NzXS5tYXAocyA9PiBbLi4ucy5jc3NSdWxlcyB8fCBbXV0pKS5maWx0ZXIociA9PiByICYmIHIuc2VsZWN0b3JUZXh0ICYmIGVsZW1lbnQubWF0Y2hlcyhyLnNlbGVjdG9yVGV4dCkgJiYgci5zdHlsZS5sZW5ndGggJiYgci5zZWxlY3RvclRleHQuc3BsaXQoXCIsIFwiKS5sZW5ndGggPCA4KTtcclxuICAgICAgICBjb25zdCBzaGVldHMgPSBbLi4uY3NzXS5maWx0ZXIocyA9PiAhcy5ocmVmIHx8ICFzLmhyZWYuaW5jbHVkZXMoXCJCZXR0ZXJEaXNjb3JkQXBwXCIpKTtcclxuICAgICAgICBjb25zdCBydWxlcyA9IHNoZWV0cy5tYXAocyA9PiBbLi4uKHMuY3NzUnVsZXMgfHwgW10pXSkuZmxhdCgpO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRSdWxlcyA9IHJ1bGVzLmZpbHRlcihyID0+IHIgJiYgci5zZWxlY3RvclRleHQgJiYgZWxlbWVudC5tYXRjaGVzKHIuc2VsZWN0b3JUZXh0KSAmJiByLnN0eWxlLmxlbmd0aCAmJiByLnNlbGVjdG9yVGV4dC5zcGxpdChcIiwgXCIpLmxlbmd0aCA8IDggJiYgIXIuc2VsZWN0b3JUZXh0LnNwbGl0KFwiLCBcIikuaW5jbHVkZXMoXCIqXCIpKTtcclxuICAgICAgICByZXR1cm4gZWxlbWVudFJ1bGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlbGVjdG9yKGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCkgcmV0dXJuIGAjJHtlbGVtZW50LmlkfWA7XHJcbiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLmdldFJ1bGVzKGVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IGxhdGVzdFJ1bGUgPSBydWxlc1tydWxlcy5sZW5ndGggLSAxXTtcclxuICAgICAgICBpZiAobGF0ZXN0UnVsZSkgcmV0dXJuIGxhdGVzdFJ1bGUuc2VsZWN0b3JUZXh0O1xyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCkgcmV0dXJuIGAuJHtBcnJheS5mcm9tKGVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgICAgIHJldHVybiBgLiR7QXJyYXkuZnJvbShlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/developermode.js\n");
/***/ }),
/***/ "./src/builtins/emoteautocaps.js":
/*!***************************************!*\
!*** ./src/builtins/emoteautocaps.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteAutocaps extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteAutocapitalize\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"autoCaps\";\n }\n\n enabled() {\n $(\"body\").off(\".bdac\");\n $(\"body\").on(\"keyup.bdac change.bdac paste.bdac\", $(\".channelTextArea-1LDbYG textarea:first\"), () => {\n const text = $(\".channelTextArea-1LDbYG textarea:first\").val();\n if (text == undefined) return;\n const lastWord = text.split(\" \").pop();\n\n if (lastWord.length > 3) {\n if (lastWord == \"danSgame\") return;\n const ret = this.capitalize(lastWord.toLowerCase());\n\n if (ret !== null && ret !== undefined) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].insertText(modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].getTextArea()[0], text.replace(lastWord, ret));\n }\n }\n });\n }\n\n disabled() {\n $(\"body\").off(\".bdac\");\n }\n\n capitalize(value) {\n const res = _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\");\n\n for (const p in res) {\n if (res.hasOwnProperty(p) && value == (p + \"\").toLowerCase()) {\n return p;\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlYXV0b2NhcHMuanM/MTY0NyJdLCJuYW1lcyI6WyJFbW90ZUF1dG9jYXBzIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCIkIiwib2ZmIiwib24iLCJ0ZXh0IiwidmFsIiwidW5kZWZpbmVkIiwibGFzdFdvcmQiLCJzcGxpdCIsInBvcCIsImxlbmd0aCIsInJldCIsImNhcGl0YWxpemUiLCJ0b0xvd2VyQ2FzZSIsIlV0aWxpdGllcyIsImluc2VydFRleHQiLCJnZXRUZXh0QXJlYSIsInJlcGxhY2UiLCJkaXNhYmxlZCIsInZhbHVlIiwicmVzIiwiRW1vdGVNb2R1bGUiLCJnZXRDYXRlZ29yeSIsInAiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFFZSxtRUFBSSxNQUFNQSxhQUFOLFNBQTRCQyx3REFBNUIsQ0FBb0M7QUFDbkQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxxQkFBUDtBQUE4Qjs7QUFDMUMsTUFBSUMsVUFBSixHQUFpQjtBQUFDLFdBQU8sUUFBUDtBQUFpQjs7QUFDbkMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxTQUFQO0FBQWtCOztBQUNsQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFVBQVA7QUFBbUI7O0FBRTdCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVQyxHQUFWLENBQWMsT0FBZDtBQUNBRCxLQUFDLENBQUMsTUFBRCxDQUFELENBQVVFLEVBQVYsQ0FBYSxtQ0FBYixFQUFrREYsQ0FBQyxDQUFDLHdDQUFELENBQW5ELEVBQStGLE1BQU07QUFDakcsWUFBTUcsSUFBSSxHQUFHSCxDQUFDLENBQUMsd0NBQUQsQ0FBRCxDQUE0Q0ksR0FBNUMsRUFBYjtBQUNBLFVBQUlELElBQUksSUFBSUUsU0FBWixFQUF1QjtBQUV2QixZQUFNQyxRQUFRLEdBQUdILElBQUksQ0FBQ0ksS0FBTCxDQUFXLEdBQVgsRUFBZ0JDLEdBQWhCLEVBQWpCOztBQUNBLFVBQUlGLFFBQVEsQ0FBQ0csTUFBVCxHQUFrQixDQUF0QixFQUF5QjtBQUNyQixZQUFJSCxRQUFRLElBQUksVUFBaEIsRUFBNEI7QUFDNUIsY0FBTUksR0FBRyxHQUFHLEtBQUtDLFVBQUwsQ0FBZ0JMLFFBQVEsQ0FBQ00sV0FBVCxFQUFoQixDQUFaOztBQUNBLFlBQUlGLEdBQUcsS0FBSyxJQUFSLElBQWdCQSxHQUFHLEtBQUtMLFNBQTVCLEVBQXVDO0FBQ25DUSwyREFBUyxDQUFDQyxVQUFWLENBQXFCRCxpREFBUyxDQUFDRSxXQUFWLEdBQXdCLENBQXhCLENBQXJCLEVBQWlEWixJQUFJLENBQUNhLE9BQUwsQ0FBYVYsUUFBYixFQUF1QkksR0FBdkIsQ0FBakQ7QUFDSDtBQUNKO0FBQ0osS0FaRDtBQWFIOztBQUVETyxVQUFRLEdBQUc7QUFDUGpCLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUMsR0FBVixDQUFjLE9BQWQ7QUFDSDs7QUFFRFUsWUFBVSxDQUFDTyxLQUFELEVBQVE7QUFDZCxVQUFNQyxHQUFHLEdBQUdDLCtDQUFXLENBQUNDLFdBQVosQ0FBd0IsY0FBeEIsQ0FBWjs7QUFDQSxTQUFLLE1BQU1DLENBQVgsSUFBZ0JILEdBQWhCLEVBQXFCO0FBQ2pCLFVBQUlBLEdBQUcsQ0FBQ0ksY0FBSixDQUFtQkQsQ0FBbkIsS0FBeUJKLEtBQUssSUFBSSxDQUFDSSxDQUFDLEdBQUcsRUFBTCxFQUFTVixXQUFULEVBQXRDLEVBQThEO0FBQzFELGVBQU9VLENBQVA7QUFDSDtBQUNKO0FBQ0o7O0FBbENrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2Vtb3RlYXV0b2NhcHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcblxyXG5pbXBvcnQge1V0aWxpdGllc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9lbW90ZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBFbW90ZUF1dG9jYXBzIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJFbW90ZUF1dG9jYXBpdGFsaXplXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwiZW1vdGVzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiYXV0b0NhcHNcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICAkKFwiYm9keVwiKS5vZmYoXCIuYmRhY1wiKTtcclxuICAgICAgICAkKFwiYm9keVwiKS5vbihcImtleXVwLmJkYWMgY2hhbmdlLmJkYWMgcGFzdGUuYmRhY1wiLCAkKFwiLmNoYW5uZWxUZXh0QXJlYS0xTERiWUcgdGV4dGFyZWE6Zmlyc3RcIiksICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9ICQoXCIuY2hhbm5lbFRleHRBcmVhLTFMRGJZRyB0ZXh0YXJlYTpmaXJzdFwiKS52YWwoKTtcclxuICAgICAgICAgICAgaWYgKHRleHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBjb25zdCBsYXN0V29yZCA9IHRleHQuc3BsaXQoXCIgXCIpLnBvcCgpO1xyXG4gICAgICAgICAgICBpZiAobGFzdFdvcmQubGVuZ3RoID4gMykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RXb3JkID09IFwiZGFuU2dhbWVcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0ID0gdGhpcy5jYXBpdGFsaXplKGxhc3RXb3JkLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJldCAhPT0gbnVsbCAmJiByZXQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy5pbnNlcnRUZXh0KFV0aWxpdGllcy5nZXRUZXh0QXJlYSgpWzBdLCB0ZXh0LnJlcGxhY2UobGFzdFdvcmQsIHJldCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikub2ZmKFwiLmJkYWNcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY2FwaXRhbGl6ZSh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IEVtb3RlTW9kdWxlLmdldENhdGVnb3J5KFwiVHdpdGNoR2xvYmFsXCIpO1xyXG4gICAgICAgIGZvciAoY29uc3QgcCBpbiByZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcy5oYXNPd25Qcm9wZXJ0eShwKSAmJiB2YWx1ZSA9PSAocCArIFwiXCIpLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/emoteautocaps.js\n");
/***/ }),
/***/ "./src/builtins/emotemenu.js":
/*!***********************************!*\
!*** ./src/builtins/emotemenu.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n\n\n\nconst headerHTML = `<div id=\"bd-qem\">\n <button class=\"active\" id=\"bd-qem-twitch\">Twitch</button>\n <button id=\"bd-qem-favourite\">Favourite</button>\n <button id=\"bd-qem-emojis\">Emojis</buttond>\n</div>`;\nconst twitchEmoteHTML = `<div id=\"bd-qem-twitch-container\">\n <div class=\"scroller-wrap scrollerWrap-2lJEkd fade\">\n <div class=\"scroller scroller-2FKFPG\">\n <div class=\"emote-menu-inner\">\n\n </div>\n </div>\n </div>\n</div>`;\nconst favoritesHTML = `<div id=\"bd-qem-favourite-container\">\n <div class=\"scroller-wrap scrollerWrap-2lJEkd fade\">\n <div class=\"scroller scroller-2FKFPG\">\n <div class=\"emote-menu-inner\">\n\n </div>\n </div>\n </div>\n</div>`;\n\nconst makeEmote = (emote, url, options = {}) => {\n const {\n onContextMenu,\n onClick\n } = options;\n const emoteContainer = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].parseHTML(`<div class=\"emote-container\">\n <img class=\"emote-icon\" alt=\"${emote}\" src=\"${url}\" title=\"${emote}\">\n </div>`);\n if (onContextMenu) emoteContainer.addEventListener(\"contextmenu\", onContextMenu);\n emoteContainer.addEventListener(\"click\", onClick);\n return emoteContainer;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteMenu extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteMenu\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emoteMenu\";\n }\n\n get hideEmojisID() {\n return \"hideEmojiMenu\";\n }\n\n get hideEmojis() {\n return this.get(this.hideEmojisID);\n }\n\n constructor() {\n super();\n this.lastTab = \"bd-qem-emojis\";\n this.qmeHeader = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].parseHTML(headerHTML);\n\n for (const button of this.qmeHeader.getElementsByTagName(\"button\")) button.addEventListener(\"click\", this.switchMenu.bind(this));\n\n this.teContainer = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].parseHTML(twitchEmoteHTML);\n this.teContainerInner = this.teContainer.querySelector(\".emote-menu-inner\");\n this.faContainer = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].parseHTML(favoritesHTML);\n this.faContainerInner = this.faContainer.querySelector(\".emote-menu-inner\");\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) this.observe(mutation);\n });\n this.enableHideEmojis = this.enableHideEmojis.bind(this);\n this.disableHideEmojis = this.disableHideEmojis.bind(this);\n this.updateTwitchEmotes = this.updateTwitchEmotes.bind(this);\n }\n\n async enabled() {\n this.log(\"Starting to observe\");\n this.observer.observe(document.getElementById(\"app-mount\"), {\n childList: true,\n subtree: true\n });\n this.hideEmojiCancel = this.registerSetting(this.hideEmojisID, this.enableHideEmojis, this.disableHideEmojis);\n if (this.hideEmojis) this.enableHideEmojis();\n if (_emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emotesLoaded) this.updateTwitchEmotes();\n this.updateFavorites();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].on(\"emotes-loaded\", this.updateTwitchEmotes);\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].off(\"emotes-loaded\", this.updateTwitchEmotes);\n this.observer.disconnect();\n this.disableHideEmojis();\n if (this.hideEmojiCancel) this.hideEmojiCancel();\n }\n\n enableHideEmojis() {\n const picker = document.querySelector(\".emojiPicker-3m1S-j\");\n if (picker) picker.classList.add(\"bd-qme-hidden\");\n }\n\n disableHideEmojis() {\n const picker = document.querySelector(\".emojiPicker-3m1S-j\");\n if (picker) picker.classList.remove(\"bd-qme-hidden\");\n }\n\n insertEmote(emote) {\n const ta = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].getTextArea();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].insertText(ta[0], ta.val().slice(-1) == \" \" ? ta.val() + emote : ta.val() + \" \" + emote);\n }\n\n favContext(e) {\n e.stopPropagation();\n const em = e.target.closest(\".emote-container\").children[0];\n const menu = $(`<div id=\"removemenu\" class=\"bd-context-menu context-menu theme-dark\">Remove</div>`);\n menu.css({\n top: e.pageY - $(\"#bd-qem-favourite-container\").offset().top,\n left: e.pageX - $(\"#bd-qem-favourite-container\").offset().left\n });\n $(em).parent().append(menu);\n menu.on(\"click\", event => {\n event.preventDefault();\n event.stopPropagation();\n $(em).remove();\n _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].removeFavorite($(em).attr(\"title\"));\n this.updateFavorites();\n $(document).off(\"mousedown.emotemenu\");\n });\n $(document).on(\"mousedown.emotemenu\", function (event) {\n if (event.target.id == \"removemenu\") return;\n $(\"#removemenu\").remove();\n $(document).off(\"mousedown.emotemenu\");\n });\n }\n\n switchMenu(e) {\n let id = typeof e == \"string\" ? e : e.target.id;\n if (id == \"bd-qem-emojis\" && this.hideEmojis) id = \"bd-qem-favourite\";\n const twitch = $(\"#bd-qem-twitch\");\n const fav = $(\"#bd-qem-favourite\");\n const emojis = $(\"#bd-qem-emojis\");\n twitch.removeClass(\"active\");\n fav.removeClass(\"active\");\n emojis.removeClass(\"active\");\n $(\".emojiPicker-3m1S-j\").hide();\n $(\"#bd-qem-favourite-container\").hide();\n $(\"#bd-qem-twitch-container\").hide();\n\n switch (id) {\n case \"bd-qem-twitch\":\n twitch.addClass(\"active\");\n $(\"#bd-qem-twitch-container\").show();\n break;\n\n case \"bd-qem-favourite\":\n fav.addClass(\"active\");\n $(\"#bd-qem-favourite-container\").show();\n break;\n\n case \"bd-qem-emojis\":\n emojis.addClass(\"active\");\n $(\".emojiPicker-3m1S-j\").show();\n $(\".emojiPicker-3m1S-j input\").focus();\n break;\n }\n\n if (id) this.lastTab = id;\n }\n\n observe(mutation) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) return;\n const node = mutation.addedNodes[0]; // if (!node.classList.contains(\"popout-2iWAc-\") || node.classList.contains(\"popoutLeft-30WmrD\") || !node.getElementsByClassName(\"emojiPicker-3m1S-j\").length) return;\n\n if (!node.classList.contains(\"layer-v9HyYc\") || !node.getElementsByClassName(\"emojiPicker-3m1S-j\").length || node.querySelector(\".emojiPicker-3m1S-j\").parentElement.classList.contains(\"animatorLeft-1EQxU0\")) return;\n const e = $(node);\n if (this.hideEmojis) e.addClass(\"bd-qme-hidden\");else e.removeClass(\"bd-qme-hidden\");\n e.prepend(this.qmeHeader);\n e.append(this.teContainer);\n e.append(this.faContainer);\n this.switchMenu(this.lastTab);\n }\n\n updateTwitchEmotes() {\n while (this.teContainerInner.firstChild) this.teContainerInner.firstChild.remove();\n\n for (const emote in _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\")) {\n if (!_emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\").hasOwnProperty(emote)) continue;\n const url = _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getUrl(\"TwitchGlobal\", emote);\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote)\n });\n this.teContainerInner.append(emoteElement);\n }\n }\n\n updateFavorites() {\n while (this.faContainerInner.firstChild) this.faContainerInner.firstChild.remove();\n\n for (const emote in _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].favorites) {\n const url = _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].favorites[emote];\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote),\n onContextMenu: this.favContext.bind(this)\n });\n this.faContainerInner.append(emoteElement);\n }\n\n _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].saveFavorites();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlbWVudS5qcz8yYWNlIl0sIm5hbWVzIjpbImhlYWRlckhUTUwiLCJ0d2l0Y2hFbW90ZUhUTUwiLCJmYXZvcml0ZXNIVE1MIiwibWFrZUVtb3RlIiwiZW1vdGUiLCJ1cmwiLCJvcHRpb25zIiwib25Db250ZXh0TWVudSIsIm9uQ2xpY2siLCJlbW90ZUNvbnRhaW5lciIsIlV0aWxpdGllcyIsInBhcnNlSFRNTCIsImFkZEV2ZW50TGlzdGVuZXIiLCJFbW90ZU1lbnUiLCJCdWlsdGluIiwibmFtZSIsImNvbGxlY3Rpb24iLCJjYXRlZ29yeSIsImlkIiwiaGlkZUVtb2ppc0lEIiwiaGlkZUVtb2ppcyIsImdldCIsImNvbnN0cnVjdG9yIiwibGFzdFRhYiIsInFtZUhlYWRlciIsImJ1dHRvbiIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwic3dpdGNoTWVudSIsImJpbmQiLCJ0ZUNvbnRhaW5lciIsInRlQ29udGFpbmVySW5uZXIiLCJxdWVyeVNlbGVjdG9yIiwiZmFDb250YWluZXIiLCJmYUNvbnRhaW5lcklubmVyIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJvYnNlcnZlIiwiZW5hYmxlSGlkZUVtb2ppcyIsImRpc2FibGVIaWRlRW1vamlzIiwidXBkYXRlVHdpdGNoRW1vdGVzIiwiZW5hYmxlZCIsImxvZyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiaGlkZUVtb2ppQ2FuY2VsIiwicmVnaXN0ZXJTZXR0aW5nIiwiRW1vdGVNb2R1bGUiLCJlbW90ZXNMb2FkZWQiLCJ1cGRhdGVGYXZvcml0ZXMiLCJFdmVudHMiLCJvbiIsImRpc2FibGVkIiwib2ZmIiwiZGlzY29ubmVjdCIsInBpY2tlciIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsImluc2VydEVtb3RlIiwidGEiLCJnZXRUZXh0QXJlYSIsImluc2VydFRleHQiLCJ2YWwiLCJzbGljZSIsImZhdkNvbnRleHQiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiZW0iLCJ0YXJnZXQiLCJjbG9zZXN0IiwiY2hpbGRyZW4iLCJtZW51IiwiJCIsImNzcyIsInRvcCIsInBhZ2VZIiwib2Zmc2V0IiwibGVmdCIsInBhZ2VYIiwicGFyZW50IiwiYXBwZW5kIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZUZhdm9yaXRlIiwiYXR0ciIsInR3aXRjaCIsImZhdiIsImVtb2ppcyIsInJlbW92ZUNsYXNzIiwiaGlkZSIsImFkZENsYXNzIiwic2hvdyIsImZvY3VzIiwiYWRkZWROb2RlcyIsImxlbmd0aCIsIkVsZW1lbnQiLCJub2RlIiwiY29udGFpbnMiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicGFyZW50RWxlbWVudCIsInByZXBlbmQiLCJmaXJzdENoaWxkIiwiZ2V0Q2F0ZWdvcnkiLCJoYXNPd25Qcm9wZXJ0eSIsImdldFVybCIsImVtb3RlRWxlbWVudCIsImZhdm9yaXRlcyIsInNhdmVGYXZvcml0ZXMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRUEsTUFBTUEsVUFBVSxHQUFJOzs7O09BQXBCO0FBTUEsTUFBTUMsZUFBZSxHQUFJOzs7Ozs7OztPQUF6QjtBQVVBLE1BQU1DLGFBQWEsR0FBSTs7Ozs7Ozs7T0FBdkI7O0FBVUEsTUFBTUMsU0FBUyxHQUFHLENBQUNDLEtBQUQsRUFBUUMsR0FBUixFQUFhQyxPQUFPLEdBQUcsRUFBdkIsS0FBOEI7QUFDNUMsUUFBTTtBQUFDQyxpQkFBRDtBQUFnQkM7QUFBaEIsTUFBMkJGLE9BQWpDO0FBQ0EsUUFBTUcsY0FBYyxHQUFHQyxpREFBUyxDQUFDQyxTQUFWLENBQXFCO3VDQUNUUCxLQUFNLFVBQVNDLEdBQUksWUFBV0QsS0FBTTtXQURoRCxDQUF2QjtBQUdBLE1BQUlHLGFBQUosRUFBbUJFLGNBQWMsQ0FBQ0csZ0JBQWYsQ0FBZ0MsYUFBaEMsRUFB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R0FBRzZDLCtDQUFXLENBQUMwRCxNQUFaLENBQW1CLGNBQW5CLEVBQW1DeEcsS0FBbkMsQ0FBWjtBQUNBLFlBQU15RyxZQUFZLEdBQUcxRyxTQUFTLENBQUNDLEtBQUQsRUFBUUMsR0FBUixFQUFhO0FBQUNHLGVBQU8sRUFBRSxLQUFLc0QsV0FBTCxDQUFpQmxDLElBQWpCLENBQXNCLElBQXRCLEVBQTRCeEIsS0FBNUI7QUFBVixPQUFiLENBQTlCO0FBQ0EsV0FBSzBCLGdCQUFMLENBQXNCc0QsTUFBdEIsQ0FBNkJ5QixZQUE3QjtBQUNIO0FBQ0o7O0FBRUR6RCxpQkFBZSxHQUFHO0FBQ2QsV0FBTyxLQUFLbkIsZ0JBQUwsQ0FBc0J3RSxVQUE3QixFQUF5QyxLQUFLeEUsZ0JBQUwsQ0FBc0J3RSxVQUF0QixDQUFpQzVDLE1BQWpDOztBQUN6QyxTQUFLLE1BQU16RCxLQUFYLElBQW9COEMsK0NBQVcsQ0FBQzRELFNBQWhDLEVBQTJDO0FBQ3ZDLFlBQU16RyxHQUFHLEdBQUc2QywrQ0FBVyxDQUFDNEQsU0FBWixDQUFzQjFHLEtBQXRCLENBQVo7QUFDQSxZQUFNeUcsWUFBWSxHQUFHMUcsU0FBUyxDQUFDQyxLQUFELEVBQVFDLEdBQVIsRUFBYTtBQUFDRyxlQUFPLEVBQUUsS0FBS3NELFdBQUwsQ0FBaUJsQyxJQUFqQixDQUFzQixJQUF0QixFQUE0QnhCLEtBQTVCLENBQVY7QUFBOENHLHFCQUFhLEVBQUUsS0FBSzZELFVBQUwsQ0FBZ0J4QyxJQUFoQixDQUFxQixJQUFyQjtBQUE3RCxPQUFiLENBQTlCO0FBQ0EsV0FBS0ssZ0JBQUwsQ0FBc0JtRCxNQUF0QixDQUE2QnlCLFlBQTdCO0FBQ0g7O0FBQ0QzRCxtREFBVyxDQUFDNkQsYUFBWjtBQUNIOztBQXpKOEMsQ0FBcEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9lbW90ZW1lbnUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzLCBFdmVudHN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVzXCI7XHJcblxyXG5jb25zdCBoZWFkZXJIVE1MID0gYDxkaXYgaWQ9XCJiZC1xZW1cIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhY3RpdmVcIiBpZD1cImJkLXFlbS10d2l0Y2hcIj5Ud2l0Y2g8L2J1dHRvbj5cclxuICAgIDxidXR0b24gaWQ9XCJiZC1xZW0tZmF2b3VyaXRlXCI+RmF2b3VyaXRlPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGlkPVwiYmQtcWVtLWVtb2ppc1wiPkVtb2ppczwvYnV0dG9uZD5cclxuPC9kaXY+YDtcclxuXHJcbmNvbnN0IHR3aXRjaEVtb3RlSFRNTCA9IGA8ZGl2IGlkPVwiYmQtcWVtLXR3aXRjaC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIHNjcm9sbGVyV3JhcC0ybEpFa2QgZmFkZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlciBzY3JvbGxlci0yRktGUEdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb3RlLW1lbnUtaW5uZXJcIj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PmA7XHJcblxyXG5jb25zdCBmYXZvcml0ZXNIVE1MID0gYDxkaXYgaWQ9XCJiZC1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyLXdyYXAgc2Nyb2xsZXJXcmFwLTJsSkVrZCBmYWRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyIHNjcm9sbGVyLTJGS0ZQR1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vdGUtbWVudS1pbm5lclwiPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+YDtcclxuXHJcbmNvbnN0IG1ha2VFbW90ZSA9IChlbW90ZSwgdXJsLCBvcHRpb25zID0ge30pID0+IHtcclxuICAgIGNvbnN0IHtvbkNvbnRleHRNZW51LCBvbkNsaWNrfSA9IG9wdGlvbnM7XHJcbiAgICBjb25zdCBlbW90ZUNvbnRhaW5lciA9IFV0aWxpdGllcy5wYXJzZUhUTUwoYDxkaXYgY2xhc3M9XCJlbW90ZS1jb250YWluZXJcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwiZW1vdGUtaWNvblwiIGFsdD1cIiR7ZW1vdGV9XCIgc3JjPVwiJHt1cmx9XCIgdGl0bGU9XCIke2Vtb3RlfVwiPlxyXG4gICAgPC9kaXY+YCk7XHJcbiAgICBpZiAob25Db250ZXh0TWVudSkgZW1vdGVDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIG9uQ29udGV4dE1lbnUpO1xyXG4gICAgZW1vdGVDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIG9uQ2xpY2spO1xyXG4gICAgcmV0dXJuIGVtb3RlQ29udGFpbmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIEVtb3RlTWVudSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRW1vdGVNZW51XCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwiZW1vdGVzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiZW1vdGVNZW51XCI7fVxyXG4gICAgZ2V0IGhpZGVFbW9qaXNJRCgpIHtyZXR1cm4gXCJoaWRlRW1vamlNZW51XCI7fVxyXG4gICAgZ2V0IGhpZGVFbW9qaXMoKSB7cmV0dXJuIHRoaXMuZ2V0KHRoaXMuaGlkZUVtb2ppc0lEKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmxhc3RUYWIgPSBcImJkLXFlbS1lbW9qaXNcIjtcclxuXHJcbiAgICAgICAgdGhpcy5xbWVIZWFkZXIgPSBVdGlsaXRpZXMucGFyc2VIVE1MKGhlYWRlckhUTUwpO1xyXG4gICAgICAgIGZvciAoY29uc3QgYnV0dG9uIG9mIHRoaXMucW1lSGVhZGVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpKSBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuc3dpdGNoTWVudS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZUNvbnRhaW5lciA9IFV0aWxpdGllcy5wYXJzZUhUTUwodHdpdGNoRW1vdGVIVE1MKTtcclxuICAgICAgICB0aGlzLnRlQ29udGFpbmVySW5uZXIgPSB0aGlzLnRlQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuZW1vdGUtbWVudS1pbm5lclwiKTtcclxuXHJcbiAgICAgICAgdGhpcy5mYUNvbnRhaW5lciA9IFV0aWxpdGllcy5wYXJzZUhUTUwoZmF2b3JpdGVzSFRNTCk7XHJcbiAgICAgICAgdGhpcy5mYUNvbnRhaW5lcklubmVyID0gdGhpcy5mYUNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmVtb3RlLW1lbnUtaW5uZXJcIik7XHJcblxyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge2ZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB0aGlzLm9ic2VydmUobXV0YXRpb24pO30pO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlSGlkZUVtb2ppcyA9IHRoaXMuZW5hYmxlSGlkZUVtb2ppcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMgPSB0aGlzLmRpc2FibGVIaWRlRW1vamlzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUd2l0Y2hFbW90ZXMgPSB0aGlzLnVwZGF0ZVR3aXRjaEVtb3Rlcy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJTdGFydGluZyB0byBvYnNlcnZlXCIpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFwcC1tb3VudFwiKSwge1xyXG4gICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmhpZGVFbW9qaUNhbmNlbCA9IHRoaXMucmVnaXN0ZXJTZXR0aW5nKHRoaXMuaGlkZUVtb2ppc0lELCB0aGlzLmVuYWJsZUhpZGVFbW9qaXMsIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVFbW9qaXMpIHRoaXMuZW5hYmxlSGlkZUVtb2ppcygpO1xyXG4gICAgICAgIGlmIChFbW90ZU1vZHVsZS5lbW90ZXNMb2FkZWQpIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGYXZvcml0ZXMoKTtcclxuICAgICAgICBFdmVudHMub24oXCJlbW90ZXMtbG9hZGVkXCIsIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKFwiZW1vdGVzLWxvYWRlZFwiLCB0aGlzLnVwZGF0ZVR3aXRjaEVtb3Rlcyk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlSGlkZUVtb2ppcygpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVFbW9qaUNhbmNlbCkgdGhpcy5oaWRlRW1vamlDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVIaWRlRW1vamlzKCkge1xyXG4gICAgICAgIGNvbnN0IHBpY2tlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZW1vamlQaWNrZXItM20xUy1qXCIpO1xyXG4gICAgICAgIGlmIChwaWNrZXIpIHBpY2tlci5jbGFzc0xpc3QuYWRkKFwiYmQtcW1lLWhpZGRlblwiKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlSGlkZUVtb2ppcygpIHtcclxuICAgICAgICBjb25zdCBwaWNrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKTtcclxuICAgICAgICBpZiAocGlja2VyKSBwaWNrZXIuY2xhc3NMaXN0LnJlbW92ZShcImJkLXFtZS1oaWRkZW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0RW1vdGUoZW1vdGUpIHtcclxuICAgICAgICBjb25zdCB0YSA9IFV0aWxpdGllcy5nZXRUZXh0QXJlYSgpO1xyXG4gICAgICAgIFV0aWxpdGllcy5pbnNlcnRUZXh0KHRhWzBdLCB0YS52YWwoKS5zbGljZSgtMSkgPT0gXCIgXCIgPyB0YS52YWwoKSArIGVtb3RlIDogdGEudmFsKCkgKyBcIiBcIiArIGVtb3RlKTtcclxuICAgIH1cclxuXHJcbiAgICBmYXZDb250ZXh0KGUpIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGNvbnN0IGVtID0gZS50YXJnZXQuY2xvc2VzdChcIi5lbW90ZS1jb250YWluZXJcIikuY2hpbGRyZW5bMF07XHJcbiAgICAgICAgY29uc3QgbWVudSA9ICQoYDxkaXYgaWQ9XCJyZW1vdmVtZW51XCIgY2xhc3M9XCJiZC1jb250ZXh0LW1lbnUgY29udGV4dC1tZW51IHRoZW1lLWRhcmtcIj5SZW1vdmU8L2Rpdj5gKTtcclxuICAgICAgICBtZW51LmNzcyh7XHJcbiAgICAgICAgICAgIHRvcDogZS5wYWdlWSAtICQoXCIjYmQtcWVtLWZhdm91cml0ZS1jb250YWluZXJcIikub2Zmc2V0KCkudG9wLFxyXG4gICAgICAgICAgICBsZWZ0OiBlLnBhZ2VYIC0gJChcIiNiZC1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5vZmZzZXQoKS5sZWZ0XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChlbSkucGFyZW50KCkuYXBwZW5kKG1lbnUpO1xyXG4gICAgICAgIG1lbnUub24oXCJjbGlja1wiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICQoZW0pLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICBFbW90ZU1vZHVsZS5yZW1vdmVGYXZvcml0ZSgkKGVtKS5hdHRyKFwidGl0bGVcIikpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZWRvd24uZW1vdGVtZW51XCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLmVtb3RlbWVudVwiLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LmlkID09IFwicmVtb3ZlbWVudVwiKSByZXR1cm47XHJcbiAgICAgICAgICAgICQoXCIjcmVtb3ZlbWVudVwiKS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLmVtb3RlbWVudVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2hNZW51KGUpIHtcclxuICAgICAgICBsZXQgaWQgPSB0eXBlb2YoZSkgPT0gXCJzdHJpbmdcIiA/IGUgOiBlLnRhcmdldC5pZDtcclxuICAgICAgICBpZiAoaWQgPT0gXCJiZC1xZW0tZW1vamlzXCIgJiYgdGhpcy5oaWRlRW1vamlzKSBpZCA9IFwiYmQtcWVtLWZhdm91cml0ZVwiO1xyXG4gICAgICAgIGNvbnN0IHR3aXRjaCA9ICQoXCIjYmQtcWVtLXR3aXRjaFwiKTtcclxuICAgICAgICBjb25zdCBmYXYgPSAkKFwiI2JkLXFlbS1mYXZvdXJpdGVcIik7XHJcbiAgICAgICAgY29uc3QgZW1vamlzID0gJChcIiNiZC1xZW0tZW1vamlzXCIpO1xyXG4gICAgICAgIHR3aXRjaC5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICBmYXYucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgZW1vamlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgICAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5oaWRlKCk7XHJcbiAgICAgICAgJChcIiNiZC1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5oaWRlKCk7XHJcbiAgICAgICAgJChcIiNiZC1xZW0tdHdpdGNoLWNvbnRhaW5lclwiKS5oaWRlKCk7XHJcblxyXG4gICAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcImJkLXFlbS10d2l0Y2hcIjpcclxuICAgICAgICAgICAgICAgIHR3aXRjaC5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIjYmQtcWVtLXR3aXRjaC1jb250YWluZXJcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJiZC1xZW0tZmF2b3VyaXRlXCI6XHJcbiAgICAgICAgICAgICAgICBmYXYuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgICAgICAgICAkKFwiI2JkLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLnNob3coKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiYmQtcWVtLWVtb2ppc1wiOlxyXG4gICAgICAgICAgICAgICAgZW1vamlzLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgICAgICAgICAgJChcIi5lbW9qaVBpY2tlci0zbTFTLWpcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgJChcIi5lbW9qaVBpY2tlci0zbTFTLWogaW5wdXRcIikuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWQpIHRoaXMubGFzdFRhYiA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIG9ic2VydmUobXV0YXRpb24pIHtcclxuICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbMF07XHJcbiAgICAgICAgLy8gaWYgKCFub2RlLmNsYXNzTGlzdC5jb250YWlucyhcInBvcG91dC0yaVdBYy1cIikgfHwgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJwb3BvdXRMZWZ0LTMwV21yRFwiKSB8fCAhbm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZW1vamlQaWNrZXItM20xUy1qXCIpLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJsYXllci12OUh5WWNcIikgfHwgIW5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImVtb2ppUGlja2VyLTNtMVMtalwiKS5sZW5ndGggfHwgbm9kZS5xdWVyeVNlbGVjdG9yKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImFuaW1hdG9yTGVmdC0xRVF4VTBcIikpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgZSA9ICQobm9kZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUVtb2ppcykgZS5hZGRDbGFzcyhcImJkLXFtZS1oaWRkZW5cIik7XHJcbiAgICAgICAgZWxzZSBlLnJlbW92ZUNsYXNzKFwiYmQtcW1lLWhpZGRlblwiKTtcclxuXHJcbiAgICAgICAgZS5wcmVwZW5kKHRoaXMucW1lSGVhZGVyKTtcclxuICAgICAgICBlLmFwcGVuZCh0aGlzLnRlQ29udGFpbmVyKTtcclxuICAgICAgICBlLmFwcGVuZCh0aGlzLmZhQ29udGFpbmVyKTtcclxuXHJcbiAgICAgICAgdGhpcy5zd2l0Y2hNZW51KHRoaXMubGFzdFRhYik7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVHdpdGNoRW1vdGVzKCkge1xyXG4gICAgICAgIHdoaWxlICh0aGlzLnRlQ29udGFpbmVySW5uZXIuZmlyc3RDaGlsZCkgdGhpcy50ZUNvbnRhaW5lcklubmVyLmZpcnN0Q2hpbGQucmVtb3ZlKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBlbW90ZSBpbiBFbW90ZU1vZHVsZS5nZXRDYXRlZ29yeShcIlR3aXRjaEdsb2JhbFwiKSkge1xyXG4gICAgICAgICAgICBpZiAoIUVtb3RlTW9kdWxlLmdldENhdGVnb3J5KFwiVHdpdGNoR2xvYmFsXCIpLmhhc093blByb3BlcnR5KGVtb3RlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IEVtb3RlTW9kdWxlLmdldFVybChcIlR3aXRjaEdsb2JhbFwiLCBlbW90ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlRWxlbWVudCA9IG1ha2VFbW90ZShlbW90ZSwgdXJsLCB7b25DbGljazogdGhpcy5pbnNlcnRFbW90ZS5iaW5kKHRoaXMsIGVtb3RlKX0pO1xyXG4gICAgICAgICAgICB0aGlzLnRlQ29udGFpbmVySW5uZXIuYXBwZW5kKGVtb3RlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUZhdm9yaXRlcygpIHtcclxuICAgICAgICB3aGlsZSAodGhpcy5mYUNvbnRhaW5lcklubmVyLmZpcnN0Q2hpbGQpIHRoaXMuZmFDb250YWluZXJJbm5lci5maXJzdENoaWxkLnJlbW92ZSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gRW1vdGVNb2R1bGUuZmF2b3JpdGVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IEVtb3RlTW9kdWxlLmZhdm9yaXRlc1tlbW90ZV07XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlRWxlbWVudCA9IG1ha2VFbW90ZShlbW90ZSwgdXJsLCB7b25DbGljazogdGhpcy5pbnNlcnRFbW90ZS5iaW5kKHRoaXMsIGVtb3RlKSwgb25Db250ZXh0TWVudTogdGhpcy5mYXZDb250ZXh0LmJpbmQodGhpcyl9KTtcclxuICAgICAgICAgICAgdGhpcy5mYUNvbnRhaW5lcklubmVyLmFwcGVuZChlbW90ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBFbW90ZU1vZHVsZS5zYXZlRmF2b3JpdGVzKCk7XHJcbiAgICB9XHJcblxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/emotemenu.js\n");
/***/ }),
/***/ "./src/builtins/emotes.js":
/*!********************************!*\
!*** ./src/builtins/emotes.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_emote__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/emote */ \"./src/ui/emote.js\");\n/* harmony import */ var _ui_toasts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/toasts */ \"./src/ui/toasts.js\");\n/* harmony import */ var _structs_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/string */ \"./src/structs/string.js\");\n\n\n\n\n\n\n\nconst request = __webpack_require__(/*! request */ \"request\");\n\nconst EmoteURLs = {\n TwitchGlobal: new _structs_string__WEBPACK_IMPORTED_MODULE_5__[\"default\"](`https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0`),\n TwitchSubscriber: new _structs_string__WEBPACK_IMPORTED_MODULE_5__[\"default\"](`https://static-cdn.jtvnw.net/emoticons/v1/{{id}}/1.0`),\n FrankerFaceZ: new _structs_string__WEBPACK_IMPORTED_MODULE_5__[\"default\"](`https://cdn.frankerfacez.com/emoticon/{{id}}/1`),\n BTTV: new _structs_string__WEBPACK_IMPORTED_MODULE_5__[\"default\"](`https://cdn.betterttv.net/emote/{{id}}/1x`)\n};\nconst Emotes = {\n TwitchGlobal: {},\n TwitchSubscriber: {},\n BTTV: {},\n FrankerFaceZ: {}\n};\nconst blacklist = [];\nconst overrides = [\"twitch\", \"subscriber\", \"bttv\", \"ffz\"];\nconst modifiers = [\"flip\", \"spin\", \"pulse\", \"spin2\", \"spin3\", \"1spin\", \"2spin\", \"3spin\", \"tr\", \"bl\", \"br\", \"shake\", \"shake2\", \"shake3\", \"flap\"];\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteModule extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Emotes\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emotes\";\n }\n\n get categories() {\n return Object.keys(Emotes).filter(k => this.isCategoryEnabled(k));\n }\n\n get shouldDownload() {\n return modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(\"emotes\", this.category, \"download\");\n }\n\n isCategoryEnabled(id) {\n return super.get(\"emotes\", \"categories\", id.toLowerCase());\n }\n\n get(id) {\n return super.get(\"emotes\", \"general\", id);\n }\n\n get MessageContentComponent() {\n return modules__WEBPACK_IMPORTED_MODULE_2__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n }\n\n get Emotes() {\n return Emotes;\n }\n\n get TwitchGlobal() {\n return Emotes.TwitchGlobal;\n }\n\n get TwitchSubscriber() {\n return Emotes.TwitchSubscriber;\n }\n\n get BTTV() {\n return Emotes.BTTV;\n }\n\n get FrankerFaceZ() {\n return Emotes.FrankerFaceZ;\n }\n\n get blacklist() {\n return blacklist;\n }\n\n get favorites() {\n return this.favoriteEmotes;\n }\n\n getUrl(category, name) {\n return EmoteURLs[category].format({\n id: Emotes[category][name]\n });\n }\n\n getCategory(category) {\n return Emotes[category];\n }\n\n getRemoteFile(category) {\n return modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].repoUrl(`data/emotes/${category.toLowerCase()}.json`);\n }\n\n initialize() {\n super.initialize();\n window.emoteModule = this;\n const storedFavorites = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"favoriteEmotes\");\n this.favoriteEmotes = storedFavorites || {};\n this.addFavorite = this.addFavorite.bind(this);\n this.removeFavorite = this.removeFavorite.bind(this);\n this.onCategoryToggle = this.onCategoryToggle.bind(this);\n this.resetEmotes = this.resetEmotes.bind(this);\n }\n\n async enabled() {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].registerCollection(\"emotes\", \"Emotes\", data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteConfig\"], {\n title: modules__WEBPACK_IMPORTED_MODULE_2__[\"Strings\"].Emotes.clearEmotes,\n onClick: this.resetEmotes\n });\n await this.getBlacklist();\n await this.loadEmoteData(); // while (!this.MessageContentComponent) await new Promise(resolve => setTimeout(resolve, 100));\n // this.patchMessageContent();\n\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].on(\"emotes-favorite-added\", this.addFavorite);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].on(\"emotes-favorite-removed\", this.removeFavorite);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].on(\"setting-updated\", this.onCategoryToggle);\n }\n\n disabled() {\n console.log(\"DISABLED\");\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].off(\"setting-updated\", this.onCategoryToggle);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].off(\"emotes-favorite-added\", this.addFavorite);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].off(\"emotes-favorite-removed\", this.removeFavorite);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].removeCollection(\"emotes\");\n this.emptyEmotes();\n if (!this.cancelEmoteRender) return;\n this.cancelEmoteRender();\n delete this.cancelEmoteRender;\n }\n\n onCategoryToggle(collection, cat, category, enabled) {\n if (collection != \"emotes\" || cat != \"categories\") return;\n if (enabled) return this.loadEmoteData(category);\n return this.unloadEmoteData(category);\n }\n\n addFavorite(name, url) {\n if (!this.favoriteEmotes.hasOwnProperty(name)) this.favoriteEmotes[name] = url;\n this.saveFavorites();\n }\n\n removeFavorite(name) {\n if (!this.favoriteEmotes.hasOwnProperty(name)) return;\n delete this.favoriteEmotes[name];\n this.saveFavorites();\n }\n\n isFavorite(name) {\n return this.favoriteEmotes.hasOwnProperty(name);\n }\n\n saveFavorites() {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"favoriteEmotes\", this.favoriteEmotes);\n }\n\n emptyEmotes() {\n for (const cat in Emotes) Object.assign(Emotes, {\n [cat]: {}\n });\n }\n\n patchMessageContent() {\n if (this.cancelEmoteRender) return;\n this.cancelEmoteRender = this.after(this.MessageContentComponent.prototype, \"render\", (thisObj, args, retVal) => {\n this.after(retVal.props, \"children\", (t, a, returnValue) => {\n if (this.categories.length == 0) return;\n const markup = returnValue.props.children[1];\n if (!markup.props.children) return;\n const nodes = markup.props.children[1];\n if (!nodes || !nodes.length) return;\n\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (typeof node !== \"string\") continue;\n const words = node.split(/([^\\s]+)([\\s]|$)/g);\n\n for (let c = 0, clen = this.categories.length; c < clen; c++) {\n for (let w = 0, wlen = words.length; w < wlen; w++) {\n const emote = words[w];\n const emoteSplit = emote.split(\":\");\n const emoteName = emoteSplit[0];\n let emoteModifier = emoteSplit[1] ? emoteSplit[1] : \"\";\n let emoteOverride = emoteModifier.slice(0);\n if (emoteName.length < 4 || blacklist.includes(emoteName)) continue;\n if (!modifiers.includes(emoteModifier) || !modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(\"emotes\", \"general\", \"modifiers\")) emoteModifier = \"\";\n if (!overrides.includes(emoteOverride)) emoteOverride = \"\";else emoteModifier = emoteOverride;\n let current = this.categories[c];\n\n if (emoteOverride === \"twitch\") {\n if (Emotes.TwitchGlobal[emoteName]) current = \"TwitchGlobal\";else if (Emotes.TwitchSubscriber[emoteName]) current = \"TwitchSubscriber\";\n } else if (emoteOverride === \"subscriber\") {\n if (Emotes.TwitchSubscriber[emoteName]) current = \"TwitchSubscriber\";\n } else if (emoteOverride === \"bttv\") {\n if (Emotes.BTTV[emoteName]) current = \"BTTV\";\n } else if (emoteOverride === \"ffz\") {\n if (Emotes.FrankerFaceZ[emoteName]) current = \"FrankerFaceZ\";\n }\n\n if (!Emotes[current][emoteName]) continue;\n const results = nodes[n].match(new RegExp(`([\\\\s]|^)${modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].escape(emoteModifier ? emoteName + \":\" + emoteModifier : emoteName)}([\\\\s]|$)`));\n if (!results) continue;\n const pre = nodes[n].substring(0, results.index + results[1].length);\n const post = nodes[n].substring(results.index + results[0].length - results[2].length);\n nodes[n] = pre;\n const emoteComponent = modules__WEBPACK_IMPORTED_MODULE_2__[\"DiscordModules\"].React.createElement(_ui_emote__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n name: emoteName,\n url: EmoteURLs[current].format({\n id: Emotes[current][emoteName]\n }),\n modifier: emoteModifier,\n isFavorite: this.isFavorite(emoteName)\n });\n nodes.splice(n + 1, 0, post);\n nodes.splice(n + 1, 0, emoteComponent);\n }\n }\n }\n\n const onlyEmotes = nodes.every(r => {\n if (typeof r == \"string\" && r.replace(/\\s*/, \"\") == \"\") return true;else if (r.type && r.type.name == \"BDEmote\") return true;else if (r.props && r.props.children && r.props.children.props && r.props.children.props.emojiName) return true;\n return false;\n });\n if (!onlyEmotes) return;\n\n for (const node of nodes) {\n if (typeof node != \"object\") continue;\n if (node.type.name == \"BDEmote\") node.props.jumboable = true;else if (node.props && node.props.children && node.props.children.props && node.props.children.props.emojiName) node.props.children.props.jumboable = true;\n }\n });\n });\n }\n\n async getBlacklist() {\n try {\n const category = \"Blacklist\";\n const exists = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].emotesExist(category);\n const valid = await this.isCacheValid(category);\n const useCache = valid || !valid && exists && !this.shouldDownload;\n const list = useCache ? modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getEmoteData(category) : await this.downloadEmotes(category);\n blacklist.push(...list);\n } catch (err) {// TODO: Log this\n }\n }\n\n isCacheValid(category) {\n return new Promise(resolve => {\n const etag = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getCacheHash(\"emotes\", category);\n if (!etag) return resolve(false);\n request.head({\n url: this.getRemoteFile(category),\n headers: {\n \"If-None-Match\": etag\n }\n }, (err, resp) => {\n resolve(resp.statusCode == 304);\n });\n });\n }\n\n async loadEmoteData(categories) {\n if (!categories) categories = this.categories;\n if (!Array.isArray(categories)) categories = [categories];\n const all = Object.keys(Emotes);\n categories = categories.map(k => all.find(c => c.toLowerCase() == k.toLowerCase()));\n _ui_toasts__WEBPACK_IMPORTED_MODULE_4__[\"default\"].show(modules__WEBPACK_IMPORTED_MODULE_2__[\"Strings\"].Emotes.loading, {\n type: \"info\"\n });\n this.emotesLoaded = false;\n\n for (const category of categories) {\n const exists = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].emotesExist(category);\n const valid = await this.isCacheValid(category);\n const useCache = valid || !valid && exists && !this.shouldDownload;\n let data = null;\n\n if (useCache) {\n this.log(`Loading ${category} emotes from local cache.`);\n const cachedData = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getEmoteData(category);\n const hasData = Object.keys(cachedData).length > 0;\n if (hasData) data = cachedData;\n }\n\n if (!data) data = await this.downloadEmotes(category);\n Object.assign(Emotes[category], data);\n await new Promise(r => setTimeout(r, 1000));\n }\n\n this.emotesLoaded = true;\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].dispatch(\"emotes-loaded\");\n _ui_toasts__WEBPACK_IMPORTED_MODULE_4__[\"default\"].show(modules__WEBPACK_IMPORTED_MODULE_2__[\"Strings\"].Emotes.loaded, {\n type: \"success\"\n });\n }\n\n unloadEmoteData(categories) {\n if (!categories) categories = this.categories;\n if (!Array.isArray(categories)) categories = [categories];\n const all = Object.keys(Emotes);\n categories = categories.map(k => all.find(c => c.toLowerCase() == k.toLowerCase()));\n\n for (const category of categories) {\n delete Emotes[category];\n Emotes[category] = {};\n }\n }\n\n downloadEmotes(category) {\n const url = this.getRemoteFile(category);\n this.log(`Downloading ${category} from ${url}`);\n const options = {\n url: url,\n timeout: 10000,\n json: true\n };\n return new Promise(resolve => {\n request.get(options, (error, response, parsedData) => {\n if (error || response.statusCode != 200) {\n this.stacktrace(`Could not download ${category} emotes.`, error);\n return resolve({});\n }\n\n for (const emote in parsedData) {\n if (emote.length < 4 || blacklist.includes(emote) || !parsedData[emote]) {\n delete parsedData[emote];\n continue;\n } // parsedData[emote] = EmoteURLs[category].format({id: parsedData[emote]});\n\n }\n\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].saveEmoteData(category, parsedData);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setCacheHash(\"emotes\", category, response.headers.etag);\n resolve(parsedData);\n this.log(`Downloaded ${category}`);\n });\n });\n }\n\n resetEmotes() {\n const categories = Object.keys(Emotes);\n this.unloadEmoteData(categories);\n\n for (const cat of categories) modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].invalidateCache(\"emotes\", cat);\n\n this.loadEmoteData();\n }\n\n}()); // (async () => {\n// const emoteData = await new Promise(resolve => {\n// const req = require(\"request\");\n// req.get({url: \"https://twitchemotes.com/api_cache/v3/global.json\", json: true}, (err, resp, parsedData) => {\n// for (const emote in parsedData) {\n// if (emote.length < 4 || window.bemotes.includes(emote)) {\n// delete parsedData[emote];\n// continue;\n// }\n// parsedData[emote] = parsedData[emote].id;\n// }\n// resolve(parsedData);\n// });\n// });\n// const fs = require(\"fs\");\n// fs.writeFileSync(\"Z:\\\\Programming\\\\BetterDiscordStuff\\\\BetterDiscordApp\\\\data\\\\emotes\\\\global.json\", JSON.stringify(emoteData));\n// return emoteData;\n// })();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3Rlcy5qcz82YTA0Il0sIm5hbWVzIjpbInJlcXVlc3QiLCJyZXF1aXJlIiwiRW1vdGVVUkxzIiwiVHdpdGNoR2xvYmFsIiwiRm9ybWF0dGFibGVTdHJpbmciLCJUd2l0Y2hTdWJzY3JpYmVyIiwiRnJhbmtlckZhY2VaIiwiQlRUViIsIkVtb3RlcyIsImJsYWNrbGlzdCIsIm92ZXJyaWRlcyIsIm1vZGlmaWVycyIsIkVtb3RlTW9kdWxlIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImNhdGVnb3JpZXMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwiayIsImlzQ2F0ZWdvcnlFbmFibGVkIiwic2hvdWxkRG93bmxvYWQiLCJTZXR0aW5ncyIsImdldCIsInRvTG93ZXJDYXNlIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJoYXNPd25Qcm9wZXJ0eSIsImZhdm9yaXRlcyIsImZhdm9yaXRlRW1vdGVzIiwiZ2V0VXJsIiwiZm9ybWF0IiwiZ2V0Q2F0ZWdvcnkiLCJnZXRSZW1vdGVGaWxlIiwiVXRpbGl0aWVzIiwicmVwb1VybCIsImluaXRpYWxpemUiLCJ3aW5kb3ciLCJlbW90ZU1vZHVsZSIsInN0b3JlZEZhdm9yaXRlcyIsIkRhdGFTdG9yZSIsImdldEJERGF0YSIsImFkZEZhdm9yaXRlIiwiYmluZCIsInJlbW92ZUZhdm9yaXRlIiwib25DYXRlZ29yeVRvZ2dsZSIsInJlc2V0RW1vdGVzIiwiZW5hYmxlZCIsInJlZ2lzdGVyQ29sbGVjdGlvbiIsIkVtb3RlQ29uZmlnIiwidGl0bGUiLCJTdHJpbmdzIiwiY2xlYXJFbW90ZXMiLCJvbkNsaWNrIiwiZ2V0QmxhY2tsaXN0IiwibG9hZEVtb3RlRGF0YSIsIkV2ZW50cyIsIm9uIiwiZGlzYWJsZWQiLCJjb25zb2xlIiwibG9nIiwib2ZmIiwicmVtb3ZlQ29sbGVjdGlvbiIsImVtcHR5RW1vdGVzIiwiY2FuY2VsRW1vdGVSZW5kZXIiLCJjYXQiLCJ1bmxvYWRFbW90ZURhdGEiLCJ1cmwiLCJzYXZlRmF2b3JpdGVzIiwiaXNGYXZvcml0ZSIsInNldEJERGF0YSIsImFzc2lnbiIsInBhdGNoTWVzc2FnZUNvbnRlbnQiLCJhZnRlciIsInByb3RvdHlwZSIsInRoaXNPYmoiLCJhcmdzIiwicmV0VmFsIiwicHJvcHMiLCJ0IiwiYSIsInJldHVyblZhbHVlIiwibGVuZ3RoIiwibWFya3VwIiwiY2hpbGRyZW4iLCJub2RlcyIsIm4iLCJub2RlIiwid29yZHMiLCJzcGxpdCIsImMiLCJjbGVuIiwidyIsIndsZW4iLCJlbW90ZSIsImVtb3RlU3BsaXQiLCJlbW90ZU5hbWUiLCJlbW90ZU1vZGlmaWVyIiwiZW1vdGVPdmVycmlkZSIsInNsaWNlIiwiaW5jbHVkZXMiLCJjdXJyZW50IiwicmVzdWx0cyIsIm1hdGNoIiwiUmVnRXhwIiwiZXNjYXBlIiwicHJlIiwic3Vic3RyaW5nIiwiaW5kZXgiLCJwb3N0IiwiZW1vdGVDb21wb25lbnQiLCJEaXNjb3JkTW9kdWxlcyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkJERW1vdGUiLCJtb2RpZmllciIsInNwbGljZSIsIm9ubHlFbW90ZXMiLCJldmVyeSIsInIiLCJyZXBsYWNlIiwidHlwZSIsImVtb2ppTmFtZSIsImp1bWJvYWJsZSIsImV4aXN0cyIsImVtb3Rlc0V4aXN0IiwidmFsaWQiLCJpc0NhY2hlVmFsaWQiLCJ1c2VDYWNoZSIsImxpc3QiLCJnZXRFbW90ZURhdGEiLCJkb3dubG9hZEVtb3RlcyIsInB1c2giLCJlcnIiLCJQcm9taXNlIiwicmVzb2x2ZSIsImV0YWciLCJnZXRDYWNoZUhhc2giLCJoZWFkIiwiaGVhZGVycyIsInJlc3AiLCJzdGF0dXNDb2RlIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxsIiwibWFwIiwiZmluZCIsIlRvYXN0cyIsInNob3ciLCJsb2FkaW5nIiwiZW1vdGVzTG9hZGVkIiwiZGF0YSIsImNhY2hlZERhdGEiLCJoYXNEYXRhIiwic2V0VGltZW91dCIsImRpc3BhdGNoIiwibG9hZGVkIiwib3B0aW9ucyIsInRpbWVvdXQiLCJqc29uIiwiZXJyb3IiLCJyZXNwb25zZSIsInBhcnNlZERhdGEiLCJzdGFja3RyYWNlIiwic2F2ZUVtb3RlRGF0YSIsInNldENhY2hlSGFzaCIsImludmFsaWRhdGVDYWNoZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUEsT0FBTyxHQUFHQyxtQkFBTyxDQUFDLHdCQUFELENBQXZCOztBQUVBLE1BQU1DLFNBQVMsR0FBRztBQUNkQyxjQUFZLEVBQUUsSUFBSUMsdURBQUosQ0FBdUIsc0RBQXZCLENBREE7QUFFZEMsa0JBQWdCLEVBQUUsSUFBSUQsdURBQUosQ0FBdUIsc0RBQXZCLENBRko7QUFHZEUsY0FBWSxFQUFFLElBQUlGLHVEQUFKLENBQXVCLGdEQUF2QixDQUhBO0FBSWRHLE1BQUksRUFBRSxJQUFJSCx1REFBSixDQUF1QiwyQ0FBdkI7QUFKUSxDQUFsQjtBQU9BLE1BQU1JLE1BQU0sR0FBRztBQUNYTCxjQUFZLEVBQUUsRUFESDtBQUVYRSxrQkFBZ0IsRUFBRSxFQUZQO0FBR1hFLE1BQUksRUFBRSxFQUhLO0FBSVhELGNBQVksRUFBRTtBQUpILENBQWY7QUFPQSxNQUFNRyxTQUFTLEdBQUcsRUFBbEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsQ0FBQyxRQUFELEVBQVcsWUFBWCxFQUF5QixNQUF6QixFQUFpQyxLQUFqQyxDQUFsQjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLE1BQUQsRUFBUyxNQUFULEVBQWlCLE9BQWpCLEVBQTBCLE9BQTFCLEVBQW1DLE9BQW5DLEVBQTRDLE9BQTVDLEVBQXFELE9BQXJELEVBQThELE9BQTlELEVBQXVFLElBQXZFLEVBQTZFLElBQTdFLEVBQW1GLElBQW5GLEVBQXlGLE9BQXpG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LGNBQWFsRCxRQUFTLEVBQWhDO0FBQ0gsT0FqQkQ7QUFrQkgsS0FuQk0sQ0FBUDtBQW9CSDs7QUFFRG9DLGFBQVcsR0FBRztBQUNWLFVBQU1sQyxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZWixNQUFaLENBQW5CO0FBQ0EsU0FBS2dFLGVBQUwsQ0FBcUJ0RCxVQUFyQjs7QUFDQSxTQUFLLE1BQU1xRCxHQUFYLElBQWtCckQsVUFBbEIsRUFBOEI0QixpREFBUyxDQUFDOEgsZUFBVixDQUEwQixRQUExQixFQUFvQ3JHLEdBQXBDOztBQUM5QixTQUFLVixhQUFMO0FBQ0g7O0FBL1BnRCxDQUF0QyxFQUFmLEUsQ0FtUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2Vtb3Rlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmltcG9ydCB7RW1vdGVDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzLCBXZWJwYWNrTW9kdWxlcywgRGF0YVN0b3JlLCBEaXNjb3JkTW9kdWxlcywgRXZlbnRzLCBTZXR0aW5ncywgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IEJERW1vdGUgZnJvbSBcIi4uL3VpL2Vtb3RlXCI7XHJcbmltcG9ydCBUb2FzdHMgZnJvbSBcIi4uL3VpL3RvYXN0c1wiO1xyXG5pbXBvcnQgRm9ybWF0dGFibGVTdHJpbmcgZnJvbSBcIi4uL3N0cnVjdHMvc3RyaW5nXCI7XHJcbmNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKFwicmVxdWVzdFwiKTtcclxuXHJcbmNvbnN0IEVtb3RlVVJMcyA9IHtcclxuICAgIFR3aXRjaEdsb2JhbDogbmV3IEZvcm1hdHRhYmxlU3RyaW5nKGBodHRwczovL3N0YXRpYy1jZG4uanR2bncubmV0L2Vtb3RpY29ucy92MS97e2lkfX0vMS4wYCksXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiBuZXcgRm9ybWF0dGFibGVTdHJpbmcoYGh0dHBzOi8vc3RhdGljLWNkbi5qdHZudy5uZXQvZW1vdGljb25zL3YxL3t7aWR9fS8xLjBgKSxcclxuICAgIEZyYW5rZXJGYWNlWjogbmV3IEZvcm1hdHRhYmxlU3RyaW5nKGBodHRwczovL2Nkbi5mcmFua2VyZmFjZXouY29tL2Vtb3RpY29uL3t7aWR9fS8xYCksXHJcbiAgICBCVFRWOiBuZXcgRm9ybWF0dGFibGVTdHJpbmcoYGh0dHBzOi8vY2RuLmJldHRlcnR0di5uZXQvZW1vdGUve3tpZH19LzF4YCksXHJcbn07XHJcblxyXG5jb25zdCBFbW90ZXMgPSB7XHJcbiAgICBUd2l0Y2hHbG9iYWw6IHt9LFxyXG4gICAgVHdpdGNoU3Vic2NyaWJlcjoge30sXHJcbiAgICBCVFRWOiB7fSxcclxuICAgIEZyYW5rZXJGYWNlWjoge31cclxufTtcclxuXHJcbmNvbnN0IGJsYWNrbGlzdCA9IFtdO1xyXG5jb25zdCBvdmVycmlkZXMgPSBbXCJ0d2l0Y2hcIiwgXCJzdWJzY3JpYmVyXCIsIFwiYnR0dlwiLCBcImZmelwiXTtcclxuY29uc3QgbW9kaWZpZXJzID0gW1wiZmxpcFwiLCBcInNwaW5cIiwgXCJwdWxzZVwiLCBcInNwaW4yXCIsIFwic3BpbjNcIiwgXCIxc3BpblwiLCBcIjJzcGluXCIsIFwiM3NwaW5cIiwgXCJ0clwiLCBcImJsXCIsIFwiYnJcIiwgXCJzaGFrZVwiLCBcInNoYWtlMlwiLCBcInNoYWtlM1wiLCBcImZsYXBcIl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgRW1vdGVNb2R1bGUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkVtb3Rlc1wiO31cclxuICAgIGdldCBjb2xsZWN0aW9uKCkge3JldHVybiBcInNldHRpbmdzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiZW1vdGVzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3JpZXMoKSB7cmV0dXJuIE9iamVjdC5rZXlzKEVtb3RlcykuZmlsdGVyKGsgPT4gdGhpcy5pc0NhdGVnb3J5RW5hYmxlZChrKSk7fVxyXG4gICAgZ2V0IHNob3VsZERvd25sb2FkKCkge3JldHVybiBTZXR0aW5ncy5nZXQoXCJlbW90ZXNcIiwgdGhpcy5jYXRlZ29yeSwgXCJkb3dubG9hZFwiKTt9XHJcblxyXG4gICAgaXNDYXRlZ29yeUVuYWJsZWQoaWQpIHtyZXR1cm4gc3VwZXIuZ2V0KFwiZW1vdGVzXCIsIFwiY2F0ZWdvcmllc1wiLCBpZC50b0xvd2VyQ2FzZSgpKTt9XHJcblxyXG4gICAgZ2V0KGlkKSB7cmV0dXJuIHN1cGVyLmdldChcImVtb3Rlc1wiLCBcImdlbmVyYWxcIiwgaWQpO31cclxuXHJcbiAgICBnZXQgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uZGVmYXVsdFByb3BzICYmIG0uZGVmYXVsdFByb3BzLmhhc093blByb3BlcnR5KFwiZGlzYWJsZUJ1dHRvbnNcIikpO31cclxuXHJcbiAgICBnZXQgRW1vdGVzKCkge3JldHVybiBFbW90ZXM7fVxyXG4gICAgZ2V0IFR3aXRjaEdsb2JhbCgpIHtyZXR1cm4gRW1vdGVzLlR3aXRjaEdsb2JhbDt9XHJcbiAgICBnZXQgVHdpdGNoU3Vic2NyaWJlcigpIHtyZXR1cm4gRW1vdGVzLlR3aXRjaFN1YnNjcmliZXI7fVxyXG4gICAgZ2V0IEJUVFYoKSB7cmV0dXJuIEVtb3Rlcy5CVFRWO31cclxuICAgIGdldCBGcmFua2VyRmFjZVooKSB7cmV0dXJuIEVtb3Rlcy5GcmFua2VyRmFjZVo7fVxyXG4gICAgZ2V0IGJsYWNrbGlzdCgpIHtyZXR1cm4gYmxhY2tsaXN0O31cclxuICAgIGdldCBmYXZvcml0ZXMoKSB7cmV0dXJuIHRoaXMuZmF2b3JpdGVFbW90ZXM7fVxyXG4gICAgZ2V0VXJsKGNhdGVnb3J5LCBuYW1lKSB7cmV0dXJuIEVtb3RlVVJMc1tjYXRlZ29yeV0uZm9ybWF0KHtpZDogRW1vdGVzW2NhdGVnb3J5XVtuYW1lXX0pO31cclxuXHJcbiAgICBnZXRDYXRlZ29yeShjYXRlZ29yeSkge3JldHVybiBFbW90ZXNbY2F0ZWdvcnldO31cclxuICAgIGdldFJlbW90ZUZpbGUoY2F0ZWdvcnkpIHtyZXR1cm4gVXRpbGl0aWVzLnJlcG9VcmwoYGRhdGEvZW1vdGVzLyR7Y2F0ZWdvcnkudG9Mb3dlckNhc2UoKX0uanNvbmApO31cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcclxuICAgICAgICB3aW5kb3cuZW1vdGVNb2R1bGUgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHN0b3JlZEZhdm9yaXRlcyA9IERhdGFTdG9yZS5nZXRCRERhdGEoXCJmYXZvcml0ZUVtb3Rlc1wiKTtcclxuICAgICAgICB0aGlzLmZhdm9yaXRlRW1vdGVzID0gc3RvcmVkRmF2b3JpdGVzIHx8IHt9O1xyXG4gICAgICAgIHRoaXMuYWRkRmF2b3JpdGUgPSB0aGlzLmFkZEZhdm9yaXRlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVGYXZvcml0ZSA9IHRoaXMucmVtb3ZlRmF2b3JpdGUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uQ2F0ZWdvcnlUb2dnbGUgPSB0aGlzLm9uQ2F0ZWdvcnlUb2dnbGUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlc2V0RW1vdGVzID0gdGhpcy5yZXNldEVtb3Rlcy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgU2V0dGluZ3MucmVnaXN0ZXJDb2xsZWN0aW9uKFwiZW1vdGVzXCIsIFwiRW1vdGVzXCIsIEVtb3RlQ29uZmlnLCB7dGl0bGU6IFN0cmluZ3MuRW1vdGVzLmNsZWFyRW1vdGVzLCBvbkNsaWNrOiB0aGlzLnJlc2V0RW1vdGVzfSk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRCbGFja2xpc3QoKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmxvYWRFbW90ZURhdGEoKTtcclxuXHJcbiAgICAgICAgLy8gd2hpbGUgKCF0aGlzLk1lc3NhZ2VDb250ZW50Q29tcG9uZW50KSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7XHJcbiAgICAgICAgLy8gdGhpcy5wYXRjaE1lc3NhZ2VDb250ZW50KCk7XHJcbiAgICAgICAgRXZlbnRzLm9uKFwiZW1vdGVzLWZhdm9yaXRlLWFkZGVkXCIsIHRoaXMuYWRkRmF2b3JpdGUpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcImVtb3Rlcy1mYXZvcml0ZS1yZW1vdmVkXCIsIHRoaXMucmVtb3ZlRmF2b3JpdGUpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCB0aGlzLm9uQ2F0ZWdvcnlUb2dnbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRElTQUJMRURcIik7XHJcbiAgICAgICAgRXZlbnRzLm9mZihcInNldHRpbmctdXBkYXRlZFwiLCB0aGlzLm9uQ2F0ZWdvcnlUb2dnbGUpO1xyXG4gICAgICAgIEV2ZW50cy5vZmYoXCJlbW90ZXMtZmF2b3JpdGUtYWRkZWRcIiwgdGhpcy5hZGRGYXZvcml0ZSk7XHJcbiAgICAgICAgRXZlbnRzLm9mZihcImVtb3Rlcy1mYXZvcml0ZS1yZW1vdmVkXCIsIHRoaXMucmVtb3ZlRmF2b3JpdGUpO1xyXG4gICAgICAgIFNldHRpbmdzLnJlbW92ZUNvbGxlY3Rpb24oXCJlbW90ZXNcIik7XHJcbiAgICAgICAgdGhpcy5lbXB0eUVtb3RlcygpO1xyXG4gICAgICAgIGlmICghdGhpcy5jYW5jZWxFbW90ZVJlbmRlcikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIoKTtcclxuICAgICAgICBkZWxldGUgdGhpcy5jYW5jZWxFbW90ZVJlbmRlcjtcclxuICAgIH1cclxuXHJcbiAgICBvbkNhdGVnb3J5VG9nZ2xlKGNvbGxlY3Rpb24sIGNhdCwgY2F0ZWdvcnksIGVuYWJsZWQpIHtcclxuICAgICAgICBpZiAoY29sbGVjdGlvbiAhPSBcImVtb3Rlc1wiIHx8IGNhdCAhPSBcImNhdGVnb3JpZXNcIikgcmV0dXJuO1xyXG4gICAgICAgIGlmIChlbmFibGVkKSByZXR1cm4gdGhpcy5sb2FkRW1vdGVEYXRhKGNhdGVnb3J5KTtcclxuICAgICAgICByZXR1cm4gdGhpcy51bmxvYWRFbW90ZURhdGEoY2F0ZWdvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZhdm9yaXRlKG5hbWUsIHVybCkge1xyXG4gICAgICAgIGlmICghdGhpcy5mYXZvcml0ZUVtb3Rlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgdGhpcy5mYXZvcml0ZUVtb3Rlc1tuYW1lXSA9IHVybDtcclxuICAgICAgICB0aGlzLnNhdmVGYXZvcml0ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGYXZvcml0ZShuYW1lKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZhdm9yaXRlRW1vdGVzLmhhc093blByb3BlcnR5KG5hbWUpKSByZXR1cm47XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZmF2b3JpdGVFbW90ZXNbbmFtZV07XHJcbiAgICAgICAgdGhpcy5zYXZlRmF2b3JpdGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNGYXZvcml0ZShuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmF2b3JpdGVFbW90ZXMuaGFzT3duUHJvcGVydHkobmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUZhdm9yaXRlcygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiZmF2b3JpdGVFbW90ZXNcIiwgdGhpcy5mYXZvcml0ZUVtb3Rlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZW1wdHlFbW90ZXMoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjYXQgaW4gRW1vdGVzKSBPYmplY3QuYXNzaWduKEVtb3Rlcywge1tjYXRdOiB7fX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoTWVzc2FnZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhbmNlbEVtb3RlUmVuZGVyID0gdGhpcy5hZnRlcih0aGlzLk1lc3NhZ2VDb250ZW50Q29tcG9uZW50LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKHRoaXNPYmosIGFyZ3MsIHJldFZhbCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFmdGVyKHJldFZhbC5wcm9wcywgXCJjaGlsZHJlblwiLCAodCwgYSwgcmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNhdGVnb3JpZXMubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1hcmt1cCA9IHJldHVyblZhbHVlLnByb3BzLmNoaWxkcmVuWzFdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtYXJrdXAucHJvcHMuY2hpbGRyZW4pIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gbWFya3VwLnByb3BzLmNoaWxkcmVuWzFdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFub2RlcyB8fCAhbm9kZXMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IG5vZGVzLmxlbmd0aDsgbisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW25dO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yobm9kZSkgIT09IFwic3RyaW5nXCIpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmRzID0gbm9kZS5zcGxpdCgvKFteXFxzXSspKFtcXHNdfCQpL2cpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGMgPSAwLCBjbGVuID0gdGhpcy5jYXRlZ29yaWVzLmxlbmd0aDsgYyA8IGNsZW47IGMrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCB3ID0gMCwgd2xlbiA9IHdvcmRzLmxlbmd0aDsgdyA8IHdsZW47IHcrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1vdGUgPSB3b3Jkc1t3XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlU3BsaXQgPSBlbW90ZS5zcGxpdChcIjpcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbW90ZU5hbWUgPSBlbW90ZVNwbGl0WzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVtb3RlTW9kaWZpZXIgPSBlbW90ZVNwbGl0WzFdID8gZW1vdGVTcGxpdFsxXSA6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZW1vdGVPdmVycmlkZSA9IGVtb3RlTW9kaWZpZXIuc2xpY2UoMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTmFtZS5sZW5ndGggPCA0IHx8IGJsYWNrbGlzdC5pbmNsdWRlcyhlbW90ZU5hbWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kaWZpZXJzLmluY2x1ZGVzKGVtb3RlTW9kaWZpZXIpIHx8ICFTZXR0aW5ncy5nZXQoXCJlbW90ZXNcIiwgXCJnZW5lcmFsXCIsIFwibW9kaWZpZXJzXCIpKSBlbW90ZU1vZGlmaWVyID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3ZlcnJpZGVzLmluY2x1ZGVzKGVtb3RlT3ZlcnJpZGUpKSBlbW90ZU92ZXJyaWRlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZW1vdGVNb2RpZmllciA9IGVtb3RlT3ZlcnJpZGU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSB0aGlzLmNhdGVnb3JpZXNbY107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGVPdmVycmlkZSA9PT0gXCJ0d2l0Y2hcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChFbW90ZXMuVHdpdGNoR2xvYmFsW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIlR3aXRjaEdsb2JhbFwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEVtb3Rlcy5Ud2l0Y2hTdWJzY3JpYmVyW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIlR3aXRjaFN1YnNjcmliZXJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwic3Vic2NyaWJlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEVtb3Rlcy5Ud2l0Y2hTdWJzY3JpYmVyW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIlR3aXRjaFN1YnNjcmliZXJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwiYnR0dlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEVtb3Rlcy5CVFRWW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIkJUVFZcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwiZmZ6XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRW1vdGVzLkZyYW5rZXJGYWNlWltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJGcmFua2VyRmFjZVpcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUVtb3Rlc1tjdXJyZW50XVtlbW90ZU5hbWVdKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBub2Rlc1tuXS5tYXRjaChuZXcgUmVnRXhwKGAoW1xcXFxzXXxeKSR7VXRpbGl0aWVzLmVzY2FwZShlbW90ZU1vZGlmaWVyID8gZW1vdGVOYW1lICsgXCI6XCIgKyBlbW90ZU1vZGlmaWVyIDogZW1vdGVOYW1lKX0oW1xcXFxzXXwkKWApKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0cykgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmUgPSBub2Rlc1tuXS5zdWJzdHJpbmcoMCwgcmVzdWx0cy5pbmRleCArIHJlc3VsdHNbMV0ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc3QgPSBub2Rlc1tuXS5zdWJzdHJpbmcocmVzdWx0cy5pbmRleCArIHJlc3VsdHNbMF0ubGVuZ3RoIC0gcmVzdWx0c1syXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXNbbl0gPSBwcmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbW90ZUNvbXBvbmVudCA9IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQkRFbW90ZSwge25hbWU6IGVtb3RlTmFtZSwgdXJsOiBFbW90ZVVSTHNbY3VycmVudF0uZm9ybWF0KHtpZDogRW1vdGVzW2N1cnJlbnRdW2Vtb3RlTmFtZV19KSwgbW9kaWZpZXI6IGVtb3RlTW9kaWZpZXIsIGlzRmF2b3JpdGU6IHRoaXMuaXNGYXZvcml0ZShlbW90ZU5hbWUpfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlcy5zcGxpY2UobiArIDEsIDAsIHBvc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXMuc3BsaWNlKG4gKyAxLCAwLCBlbW90ZUNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvbmx5RW1vdGVzID0gbm9kZXMuZXZlcnkociA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZihyKSA9PSBcInN0cmluZ1wiICYmIHIucmVwbGFjZSgvXFxzKi8sIFwiXCIpID09IFwiXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHIudHlwZSAmJiByLnR5cGUubmFtZSA9PSBcIkJERW1vdGVcIikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoci5wcm9wcyAmJiByLnByb3BzLmNoaWxkcmVuICYmIHIucHJvcHMuY2hpbGRyZW4ucHJvcHMgJiYgci5wcm9wcy5jaGlsZHJlbi5wcm9wcy5lbW9qaU5hbWUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFvbmx5RW1vdGVzKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZihub2RlKSAhPSBcIm9iamVjdFwiKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlLm5hbWUgPT0gXCJCREVtb3RlXCIpIG5vZGUucHJvcHMuanVtYm9hYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChub2RlLnByb3BzICYmIG5vZGUucHJvcHMuY2hpbGRyZW4gJiYgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcyAmJiBub2RlLnByb3BzLmNoaWxkcmVuLnByb3BzLmVtb2ppTmFtZSkgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcy5qdW1ib2FibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRCbGFja2xpc3QoKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBcIkJsYWNrbGlzdFwiO1xyXG4gICAgICAgICAgICBjb25zdCBleGlzdHMgPSBEYXRhU3RvcmUuZW1vdGVzRXhpc3QoY2F0ZWdvcnkpO1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZCA9IGF3YWl0IHRoaXMuaXNDYWNoZVZhbGlkKGNhdGVnb3J5KTtcclxuICAgICAgICAgICAgY29uc3QgdXNlQ2FjaGUgPSAodmFsaWQpIHx8ICghdmFsaWQgJiYgZXhpc3RzICYmICF0aGlzLnNob3VsZERvd25sb2FkKTtcclxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IHVzZUNhY2hlID8gRGF0YVN0b3JlLmdldEVtb3RlRGF0YShjYXRlZ29yeSkgOiBhd2FpdCB0aGlzLmRvd25sb2FkRW1vdGVzKGNhdGVnb3J5KTtcclxuICAgICAgICAgICAgYmxhY2tsaXN0LnB1c2goLi4ubGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgLy8gVE9ETzogTG9nIHRoaXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNDYWNoZVZhbGlkKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBldGFnID0gRGF0YVN0b3JlLmdldENhY2hlSGFzaChcImVtb3Rlc1wiLCBjYXRlZ29yeSk7XHJcbiAgICAgICAgICAgIGlmICghZXRhZykgcmV0dXJuIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmhlYWQoe3VybDogdGhpcy5nZXRSZW1vdGVGaWxlKGNhdGVnb3J5KSwgaGVhZGVyczoge1wiSWYtTm9uZS1NYXRjaFwiOiBldGFnfX0sIChlcnIsIHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcC5zdGF0dXNDb2RlID09IDMwNCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxvYWRFbW90ZURhdGEoY2F0ZWdvcmllcykge1xyXG4gICAgICAgIGlmICghY2F0ZWdvcmllcykgY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2F0ZWdvcmllcykpIGNhdGVnb3JpZXMgPSBbY2F0ZWdvcmllc107XHJcbiAgICAgICAgY29uc3QgYWxsID0gT2JqZWN0LmtleXMoRW1vdGVzKTtcclxuICAgICAgICBjYXRlZ29yaWVzID0gY2F0ZWdvcmllcy5tYXAoayA9PiBhbGwuZmluZChjID0+IGMudG9Mb3dlckNhc2UoKSA9PSBrLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgICBUb2FzdHMuc2hvdyhTdHJpbmdzLkVtb3Rlcy5sb2FkaW5nLCB7dHlwZTogXCJpbmZvXCJ9KTtcclxuICAgICAgICB0aGlzLmVtb3Rlc0xvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgZXhpc3RzID0gRGF0YVN0b3JlLmVtb3Rlc0V4aXN0KGNhdGVnb3J5KTtcclxuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBhd2FpdCB0aGlzLmlzQ2FjaGVWYWxpZChjYXRlZ29yeSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZUNhY2hlID0gKHZhbGlkKSB8fCAoIXZhbGlkICYmIGV4aXN0cyAmJiAhdGhpcy5zaG91bGREb3dubG9hZCk7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKHVzZUNhY2hlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZyhgTG9hZGluZyAke2NhdGVnb3J5fSBlbW90ZXMgZnJvbSBsb2NhbCBjYWNoZS5gKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSBEYXRhU3RvcmUuZ2V0RW1vdGVEYXRhKGNhdGVnb3J5KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0RhdGEgPSBPYmplY3Qua2V5cyhjYWNoZWREYXRhKS5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICAgICAgaWYgKGhhc0RhdGEpIGRhdGEgPSBjYWNoZWREYXRhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghZGF0YSkgZGF0YSA9IGF3YWl0IHRoaXMuZG93bmxvYWRFbW90ZXMoY2F0ZWdvcnkpO1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKEVtb3Rlc1tjYXRlZ29yeV0sIGRhdGEpO1xyXG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTAwMCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbW90ZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIEV2ZW50cy5kaXNwYXRjaChcImVtb3Rlcy1sb2FkZWRcIik7XHJcbiAgICAgICAgVG9hc3RzLnNob3coU3RyaW5ncy5FbW90ZXMubG9hZGVkLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgIH1cclxuXHJcbiAgICB1bmxvYWRFbW90ZURhdGEoY2F0ZWdvcmllcykge1xyXG4gICAgICAgIGlmICghY2F0ZWdvcmllcykgY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2F0ZWdvcmllcykpIGNhdGVnb3JpZXMgPSBbY2F0ZWdvcmllc107XHJcbiAgICAgICAgY29uc3QgYWxsID0gT2JqZWN0LmtleXMoRW1vdGVzKTtcclxuICAgICAgICBjYXRlZ29yaWVzID0gY2F0ZWdvcmllcy5tYXAoayA9PiBhbGwuZmluZChjID0+IGMudG9Mb3dlckNhc2UoKSA9PSBrLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcclxuICAgICAgICAgICAgZGVsZXRlIEVtb3Rlc1tjYXRlZ29yeV07XHJcbiAgICAgICAgICAgIEVtb3Rlc1tjYXRlZ29yeV0gPSB7fTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRFbW90ZXMoY2F0ZWdvcnkpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFJlbW90ZUZpbGUoY2F0ZWdvcnkpO1xyXG4gICAgICAgIHRoaXMubG9nKGBEb3dubG9hZGluZyAke2NhdGVnb3J5fSBmcm9tICR7dXJsfWApO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7dXJsOiB1cmwsIHRpbWVvdXQ6IDEwMDAwLCBqc29uOiB0cnVlfTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHJlcXVlc3QuZ2V0KG9wdGlvbnMsIChlcnJvciwgcmVzcG9uc2UsIHBhcnNlZERhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvciB8fCByZXNwb25zZS5zdGF0dXNDb2RlICE9IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2t0cmFjZShgQ291bGQgbm90IGRvd25sb2FkICR7Y2F0ZWdvcnl9IGVtb3Rlcy5gLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gcGFyc2VkRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbW90ZS5sZW5ndGggPCA0IHx8IGJsYWNrbGlzdC5pbmNsdWRlcyhlbW90ZSkgfHwgIXBhcnNlZERhdGFbZW1vdGVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWREYXRhW2Vtb3RlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHBhcnNlZERhdGFbZW1vdGVdID0gRW1vdGVVUkxzW2NhdGVnb3J5XS5mb3JtYXQoe2lkOiBwYXJzZWREYXRhW2Vtb3RlXX0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgRGF0YVN0b3JlLnNhdmVFbW90ZURhdGEoY2F0ZWdvcnksIHBhcnNlZERhdGEpO1xyXG4gICAgICAgICAgICAgICAgRGF0YVN0b3JlLnNldENhY2hlSGFzaChcImVtb3Rlc1wiLCBjYXRlZ29yeSwgcmVzcG9uc2UuaGVhZGVycy5ldGFnKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUocGFyc2VkRGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZyhgRG93bmxvYWRlZCAke2NhdGVnb3J5fWApO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXNldEVtb3RlcygpIHtcclxuICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMoRW1vdGVzKTtcclxuICAgICAgICB0aGlzLnVubG9hZEVtb3RlRGF0YShjYXRlZ29yaWVzKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNhdCBvZiBjYXRlZ29yaWVzKSBEYXRhU3RvcmUuaW52YWxpZGF0ZUNhY2hlKFwiZW1vdGVzXCIsIGNhdCk7XHJcbiAgICAgICAgdGhpcy5sb2FkRW1vdGVEYXRhKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5cclxuLy8gKGFzeW5jICgpID0+IHtcclxuLy8gICAgIGNvbnN0IGVtb3RlRGF0YSA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4vLyAgICAgICAgIGNvbnN0IHJlcSA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xyXG4vLyAgICAgICAgIHJlcS5nZXQoe3VybDogXCJodHRwczovL3R3aXRjaGVtb3Rlcy5jb20vYXBpX2NhY2hlL3YzL2dsb2JhbC5qc29uXCIsIGpzb246IHRydWV9LCAoZXJyLCByZXNwLCBwYXJzZWREYXRhKSA9PiB7XHJcbi8vICAgICAgICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gcGFyc2VkRGF0YSkge1xyXG4vLyAgICAgICAgICAgICAgICAgaWYgKGVtb3RlLmxlbmd0aCA8IDQgfHwgd2luZG93LmJlbW90ZXMuaW5jbHVkZXMoZW1vdGUpKSB7XHJcbi8vICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcnNlZERhdGFbZW1vdGVdO1xyXG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4vLyAgICAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAgICAgcGFyc2VkRGF0YVtlbW90ZV0gPSBwYXJzZWREYXRhW2Vtb3RlXS5pZDtcclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICByZXNvbHZlKHBhcnNlZERhdGEpO1xyXG4vLyAgICAgICAgIH0pO1xyXG4vLyAgICAgfSk7XHJcbi8vICAgICBjb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuLy8gICAgIGZzLndyaXRlRmlsZVN5bmMoXCJaOlxcXFxQcm9ncmFtbWluZ1xcXFxCZXR0ZXJEaXNjb3JkU3R1ZmZcXFxcQmV0dGVyRGlzY29yZEFwcFxcXFxkYXRhXFxcXGVtb3Rlc1xcXFxnbG9iYWwuanNvblwiLCBKU09OLnN0cmluZ2lmeShlbW90ZURhdGEpKTtcclxuLy8gICAgIHJldHVybiBlbW90ZURhdGE7XHJcbi8vIH0pKCk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/emotes.js\n");
/***/ }),
/***/ "./src/builtins/minimalmode.js":
/*!*************************************!*\
!*** ./src/builtins/minimalmode.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class MinimalMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"MinimalMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"minimalMode\";\n }\n\n get hideChannelsID() {\n return \"hideChannels\";\n }\n\n get hideChannels() {\n return this.get(this.hideChannelsID);\n }\n\n constructor() {\n super();\n this.enableHideChannels = this.enableHideChannels.bind(this);\n this.disableHideChannels = this.disableHideChannels.bind(this);\n }\n\n enabled() {\n document.body.classList.add(\"bd-minimal\");\n if (this.hideChannels) this.enableHideChannels();\n this.hideChannelCancel = this.registerSetting(this.hideChannelsID, this.enableHideChannels, this.disableHideChannels);\n }\n\n disabled() {\n document.body.classList.remove(\"bd-minimal\");\n if (this.hideChannels) this.disableHideChannels();\n if (this.hideChannelCancel) this.hideChannelCancel();\n }\n\n enableHideChannels() {\n document.body.classList.add(\"bd-minimal-chan\");\n }\n\n disableHideChannels() {\n document.body.classList.remove(\"bd-minimal-chan\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL21pbmltYWxtb2RlLmpzPzgzMzgiXSwibmFtZXMiOlsiTWluaW1hbE1vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJoaWRlQ2hhbm5lbHNJRCIsImhpZGVDaGFubmVscyIsImdldCIsImNvbnN0cnVjdG9yIiwiZW5hYmxlSGlkZUNoYW5uZWxzIiwiYmluZCIsImRpc2FibGVIaWRlQ2hhbm5lbHMiLCJlbmFibGVkIiwiZG9jdW1lbnQiLCJib2R5IiwiY2xhc3NMaXN0IiwiYWRkIiwiaGlkZUNoYW5uZWxDYW5jZWwiLCJyZWdpc3RlclNldHRpbmciLCJkaXNhYmxlZCIsInJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsV0FBTixTQUEwQkMsd0RBQTFCLENBQWtDO0FBQ2pELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFDbEMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLGFBQVA7QUFBc0I7O0FBQ2hDLE1BQUlDLGNBQUosR0FBcUI7QUFBQyxXQUFPLGNBQVA7QUFBdUI7O0FBQzdDLE1BQUlDLFlBQUosR0FBbUI7QUFBQyxXQUFPLEtBQUtDLEdBQUwsQ0FBUyxLQUFLRixjQUFkLENBQVA7QUFBc0M7O0FBRTFERyxhQUFXLEdBQUc7QUFDVjtBQUNBLFNBQUtDLGtCQUFMLEdBQTBCLEtBQUtBLGtCQUFMLENBQXdCQyxJQUF4QixDQUE2QixJQUE3QixDQUExQjtBQUNBLFNBQUtDLG1CQUFMLEdBQTJCLEtBQUtBLG1CQUFMLENBQXlCRCxJQUF6QixDQUE4QixJQUE5QixDQUEzQjtBQUNIOztBQUVERSxTQUFPLEdBQUc7QUFDTkMsWUFBUSxDQUFDQyxJQUFULENBQWNDLFNBQWQsQ0FBd0JDLEdBQXhCLENBQTRCLFlBQTVCO0FBQ0EsUUFBSSxLQUFLVixZQUFULEVBQXVCLEtBQUtHLGtCQUFMO0FBQ3ZCLFNBQUtRLGlCQUFMLEdBQXlCLEtBQUtDLGVBQUwsQ0FBcUIsS0FBS2IsY0FBMUIsRUFBMEMsS0FBS0ksa0JBQS9DLEVBQW1FLEtBQUtFLG1CQUF4RSxDQUF6QjtBQUNIOztBQUVEUSxVQUFRLEdBQUc7QUFDUE4sWUFBUSxDQUFDQyxJQUFULENBQWNDLFNBQWQsQ0FBd0JLLE1BQXhCLENBQStCLFlBQS9CO0FBQ0EsUUFBSSxLQUFLZCxZQUFULEVBQXVCLEtBQUtLLG1CQUFMO0FBQ3ZCLFFBQUksS0FBS00saUJBQVQsRUFBNEIsS0FBS0EsaUJBQUw7QUFDL0I7O0FBRURSLG9CQUFrQixHQUFHO0FBQ2pCSSxZQUFRLENBQUNDLElBQVQsQ0FBY0MsU0FBZCxDQUF3QkMsR0FBeEIsQ0FBNEIsaUJBQTVCO0FBQ0g7O0FBRURMLHFCQUFtQixHQUFHO0FBQ2xCRSxZQUFRLENBQUNDLElBQVQsQ0FBY0MsU0FBZCxDQUF3QkssTUFBeEIsQ0FBK0IsaUJBQS9CO0FBQ0g7O0FBL0JnRCxDQUF0QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL21pbmltYWxtb2RlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIE1pbmltYWxNb2RlIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJNaW5pbWFsTW9kZVwiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJhcHBlYXJhbmNlXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcIm1pbmltYWxNb2RlXCI7fVxyXG4gICAgZ2V0IGhpZGVDaGFubmVsc0lEKCkge3JldHVybiBcImhpZGVDaGFubmVsc1wiO31cclxuICAgIGdldCBoaWRlQ2hhbm5lbHMoKSB7cmV0dXJuIHRoaXMuZ2V0KHRoaXMuaGlkZUNoYW5uZWxzSUQpO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlSGlkZUNoYW5uZWxzID0gdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVIaWRlQ2hhbm5lbHMgPSB0aGlzLmRpc2FibGVIaWRlQ2hhbm5lbHMuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImJkLW1pbmltYWxcIik7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUNoYW5uZWxzKSB0aGlzLmVuYWJsZUhpZGVDaGFubmVscygpO1xyXG4gICAgICAgIHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwgPSB0aGlzLnJlZ2lzdGVyU2V0dGluZyh0aGlzLmhpZGVDaGFubmVsc0lELCB0aGlzLmVuYWJsZUhpZGVDaGFubmVscywgdGhpcy5kaXNhYmxlSGlkZUNoYW5uZWxzKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVDaGFubmVscykgdGhpcy5kaXNhYmxlSGlkZUNoYW5uZWxzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwpIHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVIaWRlQ2hhbm5lbHMoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiYmQtbWluaW1hbC1jaGFuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVIaWRlQ2hhbm5lbHMoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiYmQtbWluaW1hbC1jaGFuXCIpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/minimalmode.js\n");
/***/ }),
/***/ "./src/builtins/publicservers.js":
/*!***************************************!*\
!*** ./src/builtins/publicservers.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_publicservers_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/publicservers/menu */ \"./src/ui/publicservers/menu.js\");\n\n\n\nconst LayerStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"pushLayer\");\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"PublicServers\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"publicServers\";\n }\n\n enabled() {\n const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].GuildClasses.wrapper.split(\" \")[0];\n const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n guilds.after(this.button);\n }\n\n disabled() {\n $(\"#bd-pub-li\").remove();\n }\n\n openPublicServers() {\n LayerStack.pushLayer(() => modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(_ui_publicservers_menu__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n close: LayerStack.popLayer\n }));\n }\n\n get button() {\n const btn = $(\"<div/>\", {\n \"class\": modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].GuildClasses.listItem,\n \"id\": \"bd-pub-li\"\n }).append($(\"<div/>\", {\n \"class\": \"wrapper-25eVIn \" + modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].GuildClasses.circleButtonMask,\n \"text\": modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].PublicServers.button,\n \"id\": \"bd-pub-button\",\n \"click\": () => {\n this.openPublicServers();\n }\n }));\n return btn;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanM/MWY2NSJdLCJuYW1lcyI6WyJMYXllclN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiUHVibGljU2VydmVycyIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCJ3cmFwcGVyIiwiRGlzY29yZE1vZHVsZXMiLCJHdWlsZENsYXNzZXMiLCJzcGxpdCIsImd1aWxkcyIsIiQiLCJhZnRlciIsImJ1dHRvbiIsImRpc2FibGVkIiwicmVtb3ZlIiwib3BlblB1YmxpY1NlcnZlcnMiLCJwdXNoTGF5ZXIiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJQdWJsaWNTZXJ2ZXJzTWVudSIsImNsb3NlIiwicG9wTGF5ZXIiLCJidG4iLCJsaXN0SXRlbSIsImFwcGVuZCIsImNpcmNsZUJ1dHRvbk1hc2siLCJTdHJpbmdzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFVBQVUsR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixXQUExQixDQUFuQjtBQUVlLG1FQUFJLE1BQU1DLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxlQUFQO0FBQXdCOztBQUVsQ0MsU0FBTyxHQUFHO0FBQ04sVUFBTUMsT0FBTyxHQUFHQyxzREFBYyxDQUFDQyxZQUFmLENBQTRCRixPQUE1QixDQUFvQ0csS0FBcEMsQ0FBMEMsR0FBMUMsRUFBK0MsQ0FBL0MsQ0FBaEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBRSxJQUFHTCxPQUFRLGlDQUFiLENBQWhCO0FBQ0FJLFVBQU0sQ0FBQ0UsS0FBUCxDQUFhLEtBQUtDLE1BQWxCO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQSCxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCSSxNQUFoQjtBQUNIOztBQUVEQyxtQkFBaUIsR0FBRztBQUNoQm5CLGNBQVUsQ0FBQ29CLFNBQVgsQ0FBcUIsTUFBTVYsc0RBQWMsQ0FBQ1csS0FBZixDQUFxQkMsYUFBckIsQ0FBbUNDLDhEQUFuQyxFQUFzRDtBQUFDQyxXQUFLLEVBQUV4QixVQUFVLENBQUN5QjtBQUFuQixLQUF0RCxDQUEzQjtBQUNIOztBQUVELE1BQUlULE1BQUosR0FBYTtBQUNULFVBQU1VLEdBQUcsR0FBR1osQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNwQixlQUFTSixzREFBYyxDQUFDQyxZQUFmLENBQTRCZ0IsUUFEakI7QUFFcEIsWUFBTTtBQUZjLEtBQVgsQ0FBRCxDQUdUQyxNQUhTLENBR0ZkLENBQUMsQ0FBQyxRQUFELEVBQVc7QUFDbEIsZUFBUyxvQkFBb0JKLHNEQUFjLENBQUNDLFlBQWYsQ0FBNEJrQixnQkFEdkM7QUFFbEIsY0FBUUMsK0NBQU8sQ0FBQzNCLGFBQVIsQ0FBc0JhLE1BRlo7QUFHbEIsWUFBTSxlQUhZO0FBSWxCLGVBQVMsTUFBTTtBQUFFLGFBQUtHLGlCQUFMO0FBQTJCO0FBSjFCLEtBQVgsQ0FIQyxDQUFaO0FBVUEsV0FBT08sR0FBUDtBQUNIOztBQS9Ca0QsQ0FBeEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9wdWJsaWNzZXJ2ZXJzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge0Rpc2NvcmRNb2R1bGVzLCBXZWJwYWNrTW9kdWxlcywgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IFB1YmxpY1NlcnZlcnNNZW51IGZyb20gXCIuLi91aS9wdWJsaWNzZXJ2ZXJzL21lbnVcIjtcclxuXHJcbmNvbnN0IExheWVyU3RhY2sgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicHVzaExheWVyXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlB1YmxpY1NlcnZlcnNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJwdWJsaWNTZXJ2ZXJzXCI7fVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IERpc2NvcmRNb2R1bGVzLkd1aWxkQ2xhc3Nlcy53cmFwcGVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICBjb25zdCBndWlsZHMgPSAkKGAuJHt3cmFwcGVyfSAuc2Nyb2xsZXItMkZLRlBHID46Zmlyc3QtY2hpbGRgKTtcclxuICAgICAgICBndWlsZHMuYWZ0ZXIodGhpcy5idXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoXCIjYmQtcHViLWxpXCIpLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5QdWJsaWNTZXJ2ZXJzKCkge1xyXG4gICAgICAgIExheWVyU3RhY2sucHVzaExheWVyKCgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoUHVibGljU2VydmVyc01lbnUsIHtjbG9zZTogTGF5ZXJTdGFjay5wb3BMYXllcn0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnV0dG9uKCkge1xyXG4gICAgICAgIGNvbnN0IGJ0biA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IERpc2NvcmRNb2R1bGVzLkd1aWxkQ2xhc3Nlcy5saXN0SXRlbSxcclxuICAgICAgICAgICAgXCJpZFwiOiBcImJkLXB1Yi1saVwiXHJcbiAgICAgICAgfSkuYXBwZW5kKCQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IFwid3JhcHBlci0yNWVWSW4gXCIgKyBEaXNjb3JkTW9kdWxlcy5HdWlsZENsYXNzZXMuY2lyY2xlQnV0dG9uTWFzayxcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IFN0cmluZ3MuUHVibGljU2VydmVycy5idXR0b24sXHJcbiAgICAgICAgICAgIFwiaWRcIjogXCJiZC1wdWItYnV0dG9uXCIsXHJcbiAgICAgICAgICAgIFwiY2xpY2tcIjogKCkgPT4geyB0aGlzLm9wZW5QdWJsaWNTZXJ2ZXJzKCk7IH1cclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHJldHVybiBidG47XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/publicservers.js\n");
/***/ }),
/***/ "./src/builtins/voicedisconnect.js":
/*!*****************************************!*\
!*** ./src/builtins/voicedisconnect.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceDisconnect\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"voiceDisconnect\";\n }\n\n constructor() {\n super();\n this.beforeUnload = this.beforeUnload.bind(this);\n }\n\n enabled() {\n window.addEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n disabled() {\n window.removeEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n beforeUnload() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ChannelActions.selectVoiceChannel(null, null);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcz8yYmVmIl0sIm5hbWVzIjpbIkRhcmtNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiY29uc3RydWN0b3IiLCJiZWZvcmVVbmxvYWQiLCJiaW5kIiwiZW5hYmxlZCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNhYmxlZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJEaXNjb3JkTW9kdWxlcyIsIkNoYW5uZWxBY3Rpb25zIiwic2VsZWN0Vm9pY2VDaGFubmVsIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsUUFBTixTQUF1QkMsd0RBQXZCLENBQStCO0FBQzlDLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8saUJBQVA7QUFBMEI7O0FBQ3RDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFFcENDLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixLQUFLQSxZQUFMLENBQWtCQyxJQUFsQixDQUF1QixJQUF2QixDQUFwQjtBQUNIOztBQUVEQyxTQUFPLEdBQUc7QUFDTkMsVUFBTSxDQUFDQyxnQkFBUCxDQUF3QixjQUF4QixFQUF3QyxLQUFLSixZQUE3QztBQUNIOztBQUVESyxVQUFRLEdBQUc7QUFDUEYsVUFBTSxDQUFDRyxtQkFBUCxDQUEyQixjQUEzQixFQUEyQyxLQUFLTixZQUFoRDtBQUNIOztBQUVEQSxjQUFZLEdBQUc7QUFDWE8sMERBQWMsQ0FBQ0MsY0FBZixDQUE4QkMsa0JBQTlCLENBQWlELElBQWpELEVBQXVELElBQXZEO0FBQ0g7O0FBcEI2QyxDQUFuQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEaXNjb3JkTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVm9pY2VEaXNjb25uZWN0XCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwidm9pY2VEaXNjb25uZWN0XCI7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVVbmxvYWQgPSB0aGlzLmJlZm9yZVVubG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgdGhpcy5iZWZvcmVVbmxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsIHRoaXMuYmVmb3JlVW5sb2FkKTtcclxuICAgIH1cclxuXHJcbiAgICBiZWZvcmVVbmxvYWQoKSB7XHJcbiAgICAgICAgRGlzY29yZE1vZHVsZXMuQ2hhbm5lbEFjdGlvbnMuc2VsZWN0Vm9pY2VDaGFubmVsKG51bGwsIG51bGwpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/voicedisconnect.js\n");
/***/ }),
/***/ "./src/builtins/voicemode.js":
/*!***********************************!*\
!*** ./src/builtins/voicemode.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class VoiceMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"voiceMode\";\n }\n\n enabled() {\n document.querySelector(\".chat-3bRxxu\").style.setProperty(\"visibility\", \"hidden\");\n document.querySelector(\".chat-3bRxxu\").style.setProperty(\"min-width\", \"0px\");\n document.querySelector(\".channels-Ie2l6A\").style.setProperty(\"flex-grow\", \"100000\");\n }\n\n disabled() {\n document.querySelector(\".chat-3bRxxu\").style.setProperty(\"visibility\", \"\");\n document.querySelector(\".chat-3bRxxu\").style.setProperty(\"min-width\", \"\");\n document.querySelector(\".channels-Ie2l6A\").style.setProperty(\"flex-grow\", \"\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlbW9kZS5qcz80M2E3Il0sIm5hbWVzIjpbIlZvaWNlTW9kZSIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzdHlsZSIsInNldFByb3BlcnR5IiwiZGlzYWJsZWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVlLG1FQUFJLE1BQU1BLFNBQU4sU0FBd0JDLHdEQUF4QixDQUFnQztBQUMvQyxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBQ2hDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sWUFBUDtBQUFxQjs7QUFDckMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxXQUFQO0FBQW9COztBQUU5QkMsU0FBTyxHQUFHO0FBQ05DLFlBQVEsQ0FBQ0MsYUFBVCxDQUF1QixjQUF2QixFQUF1Q0MsS0FBdkMsQ0FBNkNDLFdBQTdDLENBQXlELFlBQXpELEVBQXVFLFFBQXZFO0FBQ0FILFlBQVEsQ0FBQ0MsYUFBVCxDQUF1QixjQUF2QixFQUF1Q0MsS0FBdkMsQ0FBNkNDLFdBQTdDLENBQXlELFdBQXpELEVBQXNFLEtBQXRFO0FBQ0FILFlBQVEsQ0FBQ0MsYUFBVCxDQUF1QixrQkFBdkIsRUFBMkNDLEtBQTNDLENBQWlEQyxXQUFqRCxDQUE2RCxXQUE3RCxFQUEwRSxRQUExRTtBQUNIOztBQUVEQyxVQUFRLEdBQUc7QUFDUEosWUFBUSxDQUFDQyxhQUFULENBQXVCLGNBQXZCLEVBQXVDQyxLQUF2QyxDQUE2Q0MsV0FBN0MsQ0FBeUQsWUFBekQsRUFBdUUsRUFBdkU7QUFDQUgsWUFBUSxDQUFDQyxhQUFULENBQXVCLGNBQXZCLEVBQXVDQyxLQUF2QyxDQUE2Q0MsV0FBN0MsQ0FBeUQsV0FBekQsRUFBc0UsRUFBdEU7QUFDQUgsWUFBUSxDQUFDQyxhQUFULENBQXVCLGtCQUF2QixFQUEyQ0MsS0FBM0MsQ0FBaURDLFdBQWpELENBQTZELFdBQTdELEVBQTBFLEVBQTFFO0FBQ0g7O0FBZjhDLENBQXBDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvdm9pY2Vtb2RlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFZvaWNlTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVm9pY2VNb2RlXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFwcGVhcmFuY2VcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwidm9pY2VNb2RlXCI7fVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jaGF0LTNiUnh4dVwiKS5zdHlsZS5zZXRQcm9wZXJ0eShcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIik7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jaGF0LTNiUnh4dVwiKS5zdHlsZS5zZXRQcm9wZXJ0eShcIm1pbi13aWR0aFwiLCBcIjBweFwiKTtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNoYW5uZWxzLUllMmw2QVwiKS5zdHlsZS5zZXRQcm9wZXJ0eShcImZsZXgtZ3Jvd1wiLCBcIjEwMDAwMFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlZCgpIHtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNoYXQtM2JSeHh1XCIpLnN0eWxlLnNldFByb3BlcnR5KFwidmlzaWJpbGl0eVwiLCBcIlwiKTtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNoYXQtM2JSeHh1XCIpLnN0eWxlLnNldFByb3BlcnR5KFwibWluLXdpZHRoXCIsIFwiXCIpO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuY2hhbm5lbHMtSWUybDZBXCIpLnN0eWxlLnNldFByb3BlcnR5KFwiZmxleC1ncm93XCIsIFwiXCIpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/voicemode.js\n");
/***/ }),
/***/ "./src/builtins/windowprefs.js":
/*!*************************************!*\
!*** ./src/builtins/windowprefs.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class WindowPrefs extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"WindowPrefs\";\n }\n\n get category() {\n return \"window\";\n }\n\n get id() {\n return \"transparency\";\n }\n\n get WindowConfigFile() {\n if (this._windowConfigFile) return this._windowConfigFile;\n\n const electron = __webpack_require__(/*! electron */ \"electron\").remote.app;\n\n const base = electron.getAppPath();\n const roamingBase = electron.getPath(\"userData\");\n const roamingLocation = path.resolve(roamingBase, electron.getVersion(), \"modules\", \"discord_desktop_core\", \"injector\", \"config.json\");\n const location = path.resolve(base, \"..\", \"app\", \"config.json\");\n const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null;\n if (!realLocation) return this._windowConfigFile = null;\n return this._windowConfigFile = realLocation;\n }\n\n enabled() {\n this.setWindowPreference(\"transparent\", true);\n this.setWindowPreference(\"backgroundColor\", null);\n }\n\n disabled() {\n this.setWindowPreference(\"transparent\", false);\n this.setWindowPreference(\"backgroundColor\", \"#2f3136\");\n }\n\n getAllWindowPreferences() {\n if (!this.WindowConfigFile) return {};\n return require(this.WindowConfigFile);\n }\n\n getWindowPreference(key) {\n if (!this.WindowConfigFile) return undefined;\n return this.getAllWindowPreferences()[key];\n }\n\n setWindowPreference(key, value) {\n if (!this.WindowConfigFile) return;\n const prefs = this.getAllWindowPreferences();\n prefs[key] = value;\n delete __webpack_require__.c[this.WindowConfigFile];\n fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3dpbmRvd3ByZWZzLmpzP2I0YTciXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsIldpbmRvd1ByZWZzIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiV2luZG93Q29uZmlnRmlsZSIsIl93aW5kb3dDb25maWdGaWxlIiwiZWxlY3Ryb24iLCJyZW1vdGUiLCJhcHAiLCJiYXNlIiwiZ2V0QXBwUGF0aCIsInJvYW1pbmdCYXNlIiwiZ2V0UGF0aCIsInJvYW1pbmdMb2NhdGlvbiIsInJlc29sdmUiLCJnZXRWZXJzaW9uIiwibG9jYXRpb24iLCJyZWFsTG9jYXRpb24iLCJleGlzdHNTeW5jIiwiZW5hYmxlZCIsInNldFdpbmRvd1ByZWZlcmVuY2UiLCJkaXNhYmxlZCIsImdldEFsbFdpbmRvd1ByZWZlcmVuY2VzIiwiX19ub25fd2VicGFja19yZXF1aXJlX18iLCJnZXRXaW5kb3dQcmVmZXJlbmNlIiwia2V5IiwidW5kZWZpbmVkIiwidmFsdWUiLCJwcmVmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUVlLG1FQUFJLE1BQU1FLFdBQU4sU0FBMEJDLHdEQUExQixDQUFrQztBQUNqRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGFBQVA7QUFBc0I7O0FBQ2xDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sUUFBUDtBQUFpQjs7QUFDakMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxjQUFQO0FBQXVCOztBQUVqQyxNQUFJQyxnQkFBSixHQUF1QjtBQUNuQixRQUFJLEtBQUtDLGlCQUFULEVBQTRCLE9BQU8sS0FBS0EsaUJBQVo7O0FBQzVCLFVBQU1DLFFBQVEsR0FBR1QsbUJBQU8sQ0FBQywwQkFBRCxDQUFQLENBQW9CVSxNQUFwQixDQUEyQkMsR0FBNUM7O0FBQ0EsVUFBTUMsSUFBSSxHQUFHSCxRQUFRLENBQUNJLFVBQVQsRUFBYjtBQUNBLFVBQU1DLFdBQVcsR0FBR0wsUUFBUSxDQUFDTSxPQUFULENBQWlCLFVBQWpCLENBQXBCO0FBQ0EsVUFBTUMsZUFBZSxHQUFHZixJQUFJLENBQUNnQixPQUFMLENBQWFILFdBQWIsRUFBMEJMLFFBQVEsQ0FBQ1MsVUFBVCxFQUExQixFQUFpRCxTQUFqRCxFQUE0RCxzQkFBNUQsRUFBb0YsVUFBcEYsRUFBZ0csYUFBaEcsQ0FBeEI7QUFDQSxVQUFNQyxRQUFRLEdBQUdsQixJQUFJLENBQUNnQixPQUFMLENBQWFMLElBQWIsRUFBbUIsSUFBbkIsRUFBeUIsS0FBekIsRUFBZ0MsYUFBaEMsQ0FBakI7QUFDQSxVQUFNUSxZQUFZLEdBQUdyQixFQUFFLENBQUNzQixVQUFILENBQWNGLFFBQWQsSUFBMEJBLFFBQTFCLEdBQXFDcEIsRUFBRSxDQUFDc0IsVUFBSCxDQUFjTCxlQUFkLElBQWlDQSxlQUFqQyxHQUFtRCxJQUE3RztBQUNBLFFBQUksQ0FBQ0ksWUFBTCxFQUFtQixPQUFPLEtBQUtaLGlCQUFMLEdBQXlCLElBQWhDO0FBQ25CLFdBQU8sS0FBS0EsaUJBQUwsR0FBeUJZLFlBQWhDO0FBQ0g7O0FBRURFLFNBQU8sR0FBRztBQUNOLFNBQUtDLG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDLElBQXhDO0FBQ0EsU0FBS0EsbUJBQUwsQ0FBeUIsaUJBQXpCLEVBQTRDLElBQTVDO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFNBQUtELG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDLEtBQXhDO0FBQ0EsU0FBS0EsbUJBQUwsQ0FBeUIsaUJBQXpCLEVBQTRDLFNBQTVDO0FBQ0g7O0FBRURFLHlCQUF1QixHQUFHO0FBQ3RCLFFBQUksQ0FBQyxLQUFLbEIsZ0JBQVYsRUFBNEIsT0FBTyxFQUFQO0FBQzVCLFdBQU9tQixPQUF1QixDQUFDLEtBQUtuQixnQkFBTixDQUE5QjtBQUNIOztBQUVEb0IscUJBQW1CLENBQUNDLEdBQUQsRUFBTTtBQUNyQixRQUFJLENBQUMsS0FBS3JCLGdCQUFWLEVBQTRCLE9BQU9zQixTQUFQO0FBQzVCLFdBQU8sS0FBS0osdUJBQUwsR0FBK0JHLEdBQS9CLENBQVA7QUFDSDs7QUFFREwscUJBQW1CLENBQUNLLEdBQUQsRUFBTUUsS0FBTixFQUFhO0FBQzVCLFFBQUksQ0FBQyxLQUFLdkIsZ0JBQVYsRUFBNEI7QUFDNUIsVUFBTXdCLEtBQUssR0FBRyxLQUFLTix1QkFBTCxFQUFkO0FBQ0FNLFNBQUssQ0FBQ0gsR0FBRCxDQUFMLEdBQWFFLEtBQWI7QUFDQSxXQUFPOUIscUJBQUEsQ0FBYyxLQUFLTyxnQkFBbkIsQ0FBUDtBQUNBUixNQUFFLENBQUNpQyxhQUFILENBQWlCLEtBQUt6QixnQkFBdEIsRUFBd0MwQixJQUFJLENBQUNDLFNBQUwsQ0FBZUgsS0FBZixFQUFzQixJQUF0QixFQUE0QixDQUE1QixDQUF4QztBQUNIOztBQTNDZ0QsQ0FBdEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy93aW5kb3dwcmVmcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgV2luZG93UHJlZnMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIldpbmRvd1ByZWZzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcIndpbmRvd1wiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJ0cmFuc3BhcmVuY3lcIjt9XHJcblxyXG4gICAgZ2V0IFdpbmRvd0NvbmZpZ0ZpbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlO1xyXG4gICAgICAgIGNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHA7XHJcbiAgICAgICAgY29uc3QgYmFzZSA9IGVsZWN0cm9uLmdldEFwcFBhdGgoKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nQmFzZSA9IGVsZWN0cm9uLmdldFBhdGgoXCJ1c2VyRGF0YVwiKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nTG9jYXRpb24gPSBwYXRoLnJlc29sdmUocm9hbWluZ0Jhc2UsIGVsZWN0cm9uLmdldFZlcnNpb24oKSwgXCJtb2R1bGVzXCIsIFwiZGlzY29yZF9kZXNrdG9wX2NvcmVcIiwgXCJpbmplY3RvclwiLCBcImNvbmZpZy5qc29uXCIpO1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcGF0aC5yZXNvbHZlKGJhc2UsIFwiLi5cIiwgXCJhcHBcIiwgXCJjb25maWcuanNvblwiKTtcclxuICAgICAgICBjb25zdCByZWFsTG9jYXRpb24gPSBmcy5leGlzdHNTeW5jKGxvY2F0aW9uKSA/IGxvY2F0aW9uIDogZnMuZXhpc3RzU3luYyhyb2FtaW5nTG9jYXRpb24pID8gcm9hbWluZ0xvY2F0aW9uIDogbnVsbDtcclxuICAgICAgICBpZiAoIXJlYWxMb2NhdGlvbikgcmV0dXJuIHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUgPSBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlID0gcmVhbExvY2F0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRXaW5kb3dQcmVmZXJlbmNlKFwidHJhbnNwYXJlbnRcIiwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHRoaXMuc2V0V2luZG93UHJlZmVyZW5jZShcInRyYW5zcGFyZW50XCIsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJiYWNrZ3JvdW5kQ29sb3JcIiwgXCIjMmYzMTM2XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFsbFdpbmRvd1ByZWZlcmVuY2VzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm4ge307XHJcbiAgICAgICAgcmV0dXJuIF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuV2luZG93Q29uZmlnRmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0V2luZG93UHJlZmVyZW5jZShrZXkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxXaW5kb3dQcmVmZXJlbmNlcygpW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2luZG93UHJlZmVyZW5jZShrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLldpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybjtcclxuICAgICAgICBjb25zdCBwcmVmcyA9IHRoaXMuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMoKTtcclxuICAgICAgICBwcmVmc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgZGVsZXRlIHJlcXVpcmUuY2FjaGVbdGhpcy5XaW5kb3dDb25maWdGaWxlXTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuV2luZG93Q29uZmlnRmlsZSwgSlNPTi5zdHJpbmdpZnkocHJlZnMsIG51bGwsIDQpKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/windowprefs.js\n");
/***/ }),
/***/ "./src/data/changelog.js":
/*!*******************************!*\
!*** ./src/data/changelog.js ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n description: \"Don't be shocked, this modal is supposed to be here.\",\n changes: [{\n title: \"What's New?\",\n items: [\"**BandagedBD will now keep you updated with changelogs!** I will try to only show a changelog when there's more than a tiny or internal change.\", \"**Twitter (@BandagedBD)** I created a Twitter to try and provide support and such for those without access to the server. https://Twitter.com/BandagedBD\"]\n }, {\n title: \"Fixes\",\n type: \"fixed\",\n items: [\"**Colored Text** option should work again.\", \"**Emotes** should show up in chat.\", \"Fixed a bug where BBD attempted to patch the TabBar module incorrectly. (Thanks, DevilBro)\"]\n }, {\n title: \"Minor Stuff\",\n type: \"improved\",\n items: [\"**Colour->Color.** Swapped to using English-US spelling by default to be consistent, and to potentially be prepared for localization.\", \"**Versions simplified.** The BandagedBD version now integrates into Discord's at the bottom-left of settings instead of randomly being a part of the setting list.\"]\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvY2hhbmdlbG9nLmpzP2Y4OWMiXSwibmFtZXMiOlsiZGVzY3JpcHRpb24iLCJjaGFuZ2VzIiwidGl0bGUiLCJpdGVtcyIsInR5cGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQWU7QUFDWEEsYUFBVyxFQUFFLHNEQURGO0FBRVhDLFNBQU8sRUFBRSxDQUNMO0FBQ0lDLFNBQUssRUFBRSxhQURYO0FBRUlDLFNBQUssRUFBRSxDQUNILGlKQURHLEVBRUgsMEpBRkc7QUFGWCxHQURLLEVBUUw7QUFDSUQsU0FBSyxFQUFFLE9BRFg7QUFFSUUsUUFBSSxFQUFFLE9BRlY7QUFHSUQsU0FBSyxFQUFFLENBQ0gsNENBREcsRUFFSCxvQ0FGRyxFQUdILDRGQUhHO0FBSFgsR0FSSyxFQWlCTDtBQUNJRCxTQUFLLEVBQUUsYUFEWDtBQUVJRSxRQUFJLEVBQUUsVUFGVjtBQUdJRCxTQUFLLEVBQUUsQ0FDSCx1SUFERyxFQUVILG9LQUZHO0FBSFgsR0FqQks7QUFGRSxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvY2hhbmdlbG9nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgZGVzY3JpcHRpb246IFwiRG9uJ3QgYmUgc2hvY2tlZCwgdGhpcyBtb2RhbCBpcyBzdXBwb3NlZCB0byBiZSBoZXJlLlwiLFxyXG4gICAgY2hhbmdlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6IFwiV2hhdCdzIE5ldz9cIixcclxuICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICAgIFwiKipCYW5kYWdlZEJEIHdpbGwgbm93IGtlZXAgeW91IHVwZGF0ZWQgd2l0aCBjaGFuZ2Vsb2dzISoqIEkgd2lsbCB0cnkgdG8gb25seSBzaG93IGEgY2hhbmdlbG9nIHdoZW4gdGhlcmUncyBtb3JlIHRoYW4gYSB0aW55IG9yIGludGVybmFsIGNoYW5nZS5cIixcclxuICAgICAgICAgICAgICAgIFwiKipUd2l0dGVyIChAQmFuZGFnZWRCRCkqKiBJIGNyZWF0ZWQgYSBUd2l0dGVyIHRvIHRyeSBhbmQgcHJvdmlkZSBzdXBwb3J0IGFuZCBzdWNoIGZvciB0aG9zZSB3aXRob3V0IGFjY2VzcyB0byB0aGUgc2VydmVyLiBodHRwczovL1R3aXR0ZXIuY29tL0JhbmRhZ2VkQkRcIlxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkZpeGVzXCIsXHJcbiAgICAgICAgICAgIHR5cGU6IFwiZml4ZWRcIixcclxuICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICAgIFwiKipDb2xvcmVkIFRleHQqKiBvcHRpb24gc2hvdWxkIHdvcmsgYWdhaW4uXCIsXHJcbiAgICAgICAgICAgICAgICBcIioqRW1vdGVzKiogc2hvdWxkIHNob3cgdXAgaW4gY2hhdC5cIixcclxuICAgICAgICAgICAgICAgIFwiRml4ZWQgYSBidWcgd2hlcmUgQkJEIGF0dGVtcHRlZCB0byBwYXRjaCB0aGUgVGFiQmFyIG1vZHVsZSBpbmNvcnJlY3RseS4gKFRoYW5rcywgRGV2aWxCcm8pXCJcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogXCJNaW5vciBTdHVmZlwiLFxyXG4gICAgICAgICAgICB0eXBlOiBcImltcHJvdmVkXCIsXHJcbiAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAgICBcIioqQ29sb3VyLT5Db2xvci4qKiBTd2FwcGVkIHRvIHVzaW5nIEVuZ2xpc2gtVVMgc3BlbGxpbmcgYnkgZGVmYXVsdCB0byBiZSBjb25zaXN0ZW50LCBhbmQgdG8gcG90ZW50aWFsbHkgYmUgcHJlcGFyZWQgZm9yIGxvY2FsaXphdGlvbi5cIixcclxuICAgICAgICAgICAgICAgIFwiKipWZXJzaW9ucyBzaW1wbGlmaWVkLioqIFRoZSBCYW5kYWdlZEJEIHZlcnNpb24gbm93IGludGVncmF0ZXMgaW50byBEaXNjb3JkJ3MgYXQgdGhlIGJvdHRvbS1sZWZ0IG9mIHNldHRpbmdzIGluc3RlYWQgb2YgcmFuZG9tbHkgYmVpbmcgYSBwYXJ0IG9mIHRoZSBzZXR0aW5nIGxpc3QuXCJcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgIF1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/changelog.js\n");
/***/ }),
/***/ "./src/data/config.js":
/*!****************************!*\
!*** ./src/data/config.js ***!
\****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n local: false,\n localServer: \"//localhost:8080\",\n minified: true,\n version: \"0.3.0\",\n branch: \"master\",\n repo: \"rauenzi\",\n minSupportedVersion: \"0.3.0\",\n bbdVersion: \"1.0.0\"\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvY29uZmlnLmpzPzRiYWEiXSwibmFtZXMiOlsibG9jYWwiLCJsb2NhbFNlcnZlciIsIm1pbmlmaWVkIiwidmVyc2lvbiIsImJyYW5jaCIsInJlcG8iLCJtaW5TdXBwb3J0ZWRWZXJzaW9uIiwiYmJkVmVyc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZTtBQUNYQSxPQUFLLEVBQUUsS0FESTtBQUVYQyxhQUFXLEVBQUUsa0JBRkY7QUFHWEMsVUFBUSxFQUFFLElBSEM7QUFJWEMsU0FBTyxFQUFFLE9BSkU7QUFLWEMsUUFBTSxFQUFFLFFBTEc7QUFNWEMsTUFBSSxFQUFFLFNBTks7QUFPWEMscUJBQW1CLEVBQUUsT0FQVjtBQVFYQyxZQUFVLEVBQUU7QUFSRCxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvY29uZmlnLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgbG9jYWw6IGZhbHNlLFxyXG4gICAgbG9jYWxTZXJ2ZXI6IFwiLy9sb2NhbGhvc3Q6ODA4MFwiLFxyXG4gICAgbWluaWZpZWQ6IHRydWUsXHJcbiAgICB2ZXJzaW9uOiBcIjAuMy4wXCIsXHJcbiAgICBicmFuY2g6IFwibWFzdGVyXCIsXHJcbiAgICByZXBvOiBcInJhdWVuemlcIixcclxuICAgIG1pblN1cHBvcnRlZFZlcnNpb246IFwiMC4zLjBcIixcclxuICAgIGJiZFZlcnNpb246IFwiMS4wLjBcIlxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/config.js\n");
/***/ }),
/***/ "./src/data/data.js":
/*!**************************!*\
!*** ./src/data/data.js ***!
\**************************/
/*! exports provided: Config, EmoteConfig, SettingsConfig, Strings, Changelog */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./src/data/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return _config__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _settings_emoteconfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings/emoteconfig */ \"./src/data/settings/emoteconfig.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteConfig\", function() { return _settings_emoteconfig__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _settings_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/config */ \"./src/data/settings/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsConfig\", function() { return _settings_config__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./strings */ \"./src/data/strings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Strings\", function() { return _strings__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _changelog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./changelog */ \"./src/data/changelog.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Changelog\", function() { return _changelog__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZGF0YS5qcz9kNWM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvZGF0YS9kYXRhLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtkZWZhdWx0IGFzIENvbmZpZ30gZnJvbSBcIi4vY29uZmlnXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbW90ZUNvbmZpZ30gZnJvbSBcIi4vc2V0dGluZ3MvZW1vdGVjb25maWdcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFNldHRpbmdzQ29uZmlnfSBmcm9tIFwiLi9zZXR0aW5ncy9jb25maWdcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFN0cmluZ3N9IGZyb20gXCIuL3N0cmluZ3NcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIENoYW5nZWxvZ30gZnJvbSBcIi4vY2hhbmdlbG9nXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/data.js\n");
/***/ }),
/***/ "./src/data/settings/config.js":
/*!*************************************!*\
!*** ./src/data/settings/config.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n type: \"category\",\n id: \"general\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"emotes\",\n value: true\n }, {\n type: \"switch\",\n id: \"publicServers\",\n value: true\n }, {\n type: \"switch\",\n id: \"voiceDisconnect\",\n value: false\n }, {\n type: \"switch\",\n id: \"twentyFourHour\",\n value: false\n }, {\n type: \"switch\",\n id: \"classNormalizer\",\n value: true\n }, {\n type: \"switch\",\n id: \"showToasts\",\n value: true\n }]\n}, {\n type: \"category\",\n id: \"appearance\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"voiceMode\",\n value: false\n }, {\n type: \"switch\",\n id: \"minimalMode\",\n value: false\n }, {\n type: \"switch\",\n id: \"hideChannels\",\n value: false,\n enableWith: \"minimalMode\"\n }, {\n type: \"switch\",\n id: \"darkMode\",\n value: true\n }, {\n type: \"switch\",\n id: \"coloredText\",\n value: false\n }]\n}, {\n type: \"category\",\n id: \"addons\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"addonErrors\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoScroll\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoReload\",\n value: true\n }, {\n type: \"dropdown\",\n id: \"editAction\",\n value: \"detached\",\n options: [{\n value: \"detached\"\n }, {\n value: \"system\"\n }]\n }]\n}, {\n type: \"category\",\n id: \"customcss\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"customcss\",\n value: true\n }, {\n type: \"switch\",\n id: \"liveUpdate\",\n value: false\n }, {\n type: \"dropdown\",\n id: \"openAction\",\n value: \"settings\",\n options: [{\n value: \"settings\"\n }, {\n value: \"detached\"\n }, {\n value: \"system\"\n }]\n }]\n}, {\n type: \"category\",\n id: \"developer\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"developerMode\",\n value: false\n }, {\n type: \"switch\",\n id: \"copySelector\",\n value: false,\n enableWith: \"developerMode\"\n }]\n}, {\n type: \"category\",\n id: \"window\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"transparency\",\n value: false\n }, {\n type: \"switch\",\n id: \"frame\",\n value: false,\n hidden: true\n }]\n}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc2V0dGluZ3MvY29uZmlnLmpzP2ZmOGUiXSwibmFtZXMiOlsidHlwZSIsImlkIiwiY29sbGFwc2libGUiLCJzZXR0aW5ncyIsInZhbHVlIiwiZW5hYmxlV2l0aCIsInNob3duIiwib3B0aW9ucyIsImhpZGRlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZSxnRUFDWDtBQUNJQSxNQUFJLEVBQUUsVUFEVjtBQUVJQyxJQUFFLEVBQUUsU0FGUjtBQUdJQyxhQUFXLEVBQUUsSUFIakI7QUFJSUMsVUFBUSxFQUFFLENBQ047QUFBQ0gsUUFBSSxFQUFFLFFBQVA7QUFBaUJDLE1BQUUsRUFBRSxRQUFyQjtBQUErQkcsU0FBSyxFQUFFO0FBQXRDLEdBRE0sRUFFTjtBQUFDSixRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLGVBQXJCO0FBQXNDRyxTQUFLLEVBQUU7QUFBN0MsR0FGTSxFQUdOO0FBQUNKLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsaUJBQXJCO0FBQXdDRyxTQUFLLEVBQUU7QUFBL0MsR0FITSxFQUlOO0FBQUNKLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsZ0JBQXJCO0FBQXVDRyxTQUFLLEVBQUU7QUFBOUMsR0FKTSxFQUtOO0FBQUNKLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsaUJBQXJCO0FBQXdDRyxTQUFLLEVBQUU7QUFBL0MsR0FMTSxFQU1OO0FBQUNKLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsWUFBckI7QUFBbUNHLFNBQUssRUFBRTtBQUExQyxHQU5NO0FBSmQsQ0FEVyxFQWNYO0FBQ0lKLE1BQUksRUFBRSxVQURWO0FBRUlDLElBQUUsRUFBRSxZQUZSO0FBR0lDLGFBQVcsRUFBRSxJQUhqQjtBQUlJQyxVQUFRLEVBQUUsQ0FDTjtBQUFDSCxRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLFdBQXJCO0FBQWtDRyxTQUFL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QUssRUFBRTtBQUE1QyxHQURNLEVBRU47QUFBQ0osUUFBSSxFQUFFLFFBQVA7QUFBaUJDLE1BQUUsRUFBRSxPQUFyQjtBQUE4QkcsU0FBSyxFQUFFLEtBQXJDO0FBQTRDSSxVQUFNLEVBQUU7QUFBcEQsR0FGTTtBQUxkLENBM0RXLENBQWYiLCJmaWxlIjoiLi9zcmMvZGF0YS9zZXR0aW5ncy9jb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcImdlbmVyYWxcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiZW1vdGVzXCIsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcInB1YmxpY1NlcnZlcnNcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwidm9pY2VEaXNjb25uZWN0XCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJ0d2VudHlGb3VySG91clwiLCB2YWx1ZTogZmFsc2V9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiY2xhc3NOb3JtYWxpemVyXCIsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcInNob3dUb2FzdHNcIiwgdmFsdWU6IHRydWV9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiYXBwZWFyYW5jZVwiLFxyXG4gICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJ2b2ljZU1vZGVcIiwgdmFsdWU6IGZhbHNlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcIm1pbmltYWxNb2RlXCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJoaWRlQ2hhbm5lbHNcIiwgdmFsdWU6IGZhbHNlLCBlbmFibGVXaXRoOiBcIm1pbmltYWxNb2RlXCJ9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiZGFya01vZGVcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiY29sb3JlZFRleHRcIiwgdmFsdWU6IGZhbHNlfVxyXG4gICAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcImFkZG9uc1wiLFxyXG4gICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHNob3duOiBmYWxzZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiYWRkb25FcnJvcnNcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiYXV0b1Njcm9sbFwiLCB2YWx1ZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJhdXRvUmVsb2FkXCIsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwiZHJvcGRvd25cIiwgaWQ6IFwiZWRpdEFjdGlvblwiLCB2YWx1ZTogXCJkZXRhY2hlZFwiLCBvcHRpb25zOiBbe3ZhbHVlOiBcImRldGFjaGVkXCJ9LCB7dmFsdWU6IFwic3lzdGVtXCJ9XX1cclxuICAgICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICBpZDogXCJjdXN0b21jc3NcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzaG93bjogZmFsc2UsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImN1c3RvbWNzc1wiLCB2YWx1ZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJsaXZlVXBkYXRlXCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcImRyb3Bkb3duXCIsIGlkOiBcIm9wZW5BY3Rpb25cIiwgdmFsdWU6IFwic2V0dGluZ3NcIiwgb3B0aW9uczogW3t2YWx1ZTogXCJzZXR0aW5nc1wifSwge3ZhbHVlOiBcImRldGFjaGVkXCJ9LCB7dmFsdWU6IFwic3lzdGVtXCJ9XX1cclxuICAgICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICBpZDogXCJkZXZlbG9wZXJcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzaG93bjogZmFsc2UsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImRldmVsb3Blck1vZGVcIiwgdmFsdWU6IGZhbHNlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImNvcHlTZWxlY3RvclwiLCB2YWx1ZTogZmFsc2UsIGVuYWJsZVdpdGg6IFwiZGV2ZWxvcGVyTW9kZVwifVxyXG4gICAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcIndpbmRvd1wiLFxyXG4gICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHNob3duOiBmYWxzZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwidHJhbnNwYXJlbmN5XCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJmcmFtZVwiLCB2YWx1ZTogZmFsc2UsIGhpZGRlbjogdHJ1ZX1cclxuICAgICAgICBdXHJcbiAgICB9XHJcbl07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/settings/config.js\n");
/***/ }),
/***/ "./src/data/settings/emoteconfig.js":
/*!******************************************!*\
!*** ./src/data/settings/emoteconfig.js ***!
\******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n type: \"category\",\n id: \"general\",\n name: \"General\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"download\",\n value: true\n }, {\n type: \"switch\",\n id: \"emoteMenu\",\n value: true\n }, {\n type: \"switch\",\n id: \"hideEmojiMenu\",\n value: false,\n enableWith: \"emoteMenu\"\n }, {\n type: \"switch\",\n id: \"autoCaps\",\n value: false\n }, {\n type: \"switch\",\n id: \"showNames\",\n value: true\n }, {\n type: \"switch\",\n id: \"modifiers\",\n value: true\n }, {\n type: \"switch\",\n id: \"animateOnHover\",\n value: false\n }]\n}, {\n type: \"category\",\n id: \"categories\",\n name: \"Categories\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"twitchglobal\",\n value: true\n }, {\n type: \"switch\",\n id: \"twitchsubscriber\",\n value: false\n }, {\n type: \"switch\",\n id: \"frankerfacez\",\n value: true\n }, {\n type: \"switch\",\n id: \"bttv\",\n value: true\n }]\n}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc2V0dGluZ3MvZW1vdGVjb25maWcuanM/ODU5NyJdLCJuYW1lcyI6WyJ0eXBlIiwiaWQiLCJuYW1lIiwiY29sbGFwc2libGUiLCJzZXR0aW5ncyIsInZhbHVlIiwiZW5hYmxlV2l0aCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZSxnRUFDWDtBQUNJQSxNQUFJLEVBQUUsVUFEVjtBQUVJQyxJQUFFLEVBQUUsU0FGUjtBQUdJQyxNQUFJLEVBQUUsU0FIVjtBQUlJQyxhQUFXLEVBQUUsSUFKakI7QUFLSUMsVUFBUSxFQUFFLENBQ047QUFBQ0osUUFBSSxFQUFFLFFBQVA7QUFBaUJDLE1BQUUsRUFBRSxVQUFyQjtBQUFpQ0ksU0FBSyxFQUFFO0FBQXhDLEdBRE0sRUFFTjtBQUFDTCxRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLFdBQXJCO0FBQWtDSSxTQUFLLEVBQUU7QUFBekMsR0FGTSxFQUdOO0FBQUNMLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsZUFBckI7QUFBc0NJLFNBQUssRUFBRSxLQUE3QztBQUFvREMsY0FBVSxFQUFFO0FBQWhFLEdBSE0sRUFJTjtBQUFDTixRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLFVBQXJCO0FBQWlDSSxTQUFLLEVBQUU7QUFBeEMsR0FKTSxFQUtOO0FBQUNMLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsV0FBckI7QUFBa0NJLFNBQUssRUFBRTtBQUF6QyxHQUxNLEVBTU47QUFBQ0wsUUFBSSxFQUFFLFFBQVA7QUFBaUJDLE1BQUUsRUFBRSxXQUFyQjtBQUFrQ0ksU0FBSyxFQUFFO0FBQXpDLEdBTk0sRUFPTjtBQUFDTCxRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLGdCQUFyQjtBQUF1Q0ksU0FBSyxFQUFFO0FBQTlDLEdBUE07QUFMZCxDQURXLEVBZ0JYO0FBQ0lMLE1BQUksRUFBRSxVQURWO0FBRUlDLElBQUUsRUFBRSxZQUZSO0FBR0lDLE1BQUksRUFBRSxZQUhWO0FBSUlDLGFBQVcsRUFBRSxJQUpqQjtBQUtJQyxVQUFRLEVBQUUsQ0FDTjtBQUFDSixRQUFJLEVBQUUsUUFBUDtBQUFpQkMsTUFBRSxFQUFFLGNBQXJCO0FBQXFDSSxTQUFLLEVBQUU7QUFBNUMsR0FETSxFQUVOO0FBQUNMLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsa0JBQXJCO0FBQXlDSSxTQUFLLEVBQUU7QUFBaEQsR0FGTSxFQUdOO0FBQUNMLFFBQUksRUFBRSxRQUFQO0FBQWlCQyxNQUFFLEVBQUUsY0FBckI7QUFBcUNJLFNBQUssRUFBRTtBQUE1QyxHQUhNLEVBSU47QUFBQ0wsUUFBSSxFQUFFLFFBQVA7QUFBaUJDLE1BQUUsRUFBRSxNQUFyQjtBQUE2QkksU0FBSyxFQUFFO0FBQXBDLEdBSk07QUFMZCxDQWhCVyxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvc2V0dGluZ3MvZW1vdGVjb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcImdlbmVyYWxcIixcclxuICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiZG93bmxvYWRcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiZW1vdGVNZW51XCIsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImhpZGVFbW9qaU1lbnVcIiwgdmFsdWU6IGZhbHNlLCBlbmFibGVXaXRoOiBcImVtb3RlTWVudVwifSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImF1dG9DYXBzXCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJzaG93TmFtZXNcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwibW9kaWZpZXJzXCIsIHZhbHVlOiB0cnVlfSxcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcImFuaW1hdGVPbkhvdmVyXCIsIHZhbHVlOiBmYWxzZX1cclxuICAgICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHR5cGU6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICBpZDogXCJjYXRlZ29yaWVzXCIsXHJcbiAgICAgICAgbmFtZTogXCJDYXRlZ29yaWVzXCIsXHJcbiAgICAgICAgY29sbGFwc2libGU6IHRydWUsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge3R5cGU6IFwic3dpdGNoXCIsIGlkOiBcInR3aXRjaGdsb2JhbFwiLCB2YWx1ZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJ0d2l0Y2hzdWJzY3JpYmVyXCIsIHZhbHVlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHt0eXBlOiBcInN3aXRjaFwiLCBpZDogXCJmcmFua2VyZmFjZXpcIiwgdmFsdWU6IHRydWV9LFxyXG4gICAgICAgICAgICB7dHlwZTogXCJzd2l0Y2hcIiwgaWQ6IFwiYnR0dlwiLCB2YWx1ZTogdHJ1ZX1cclxuICAgICAgICBdXHJcbiAgICB9XHJcbl07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/settings/emoteconfig.js\n");
/***/ }),
/***/ "./src/data/strings.js":
/*!*****************************!*\
!*** ./src/data/strings.js ***!
\*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n Panels: {\n plugins: \"Plugins\",\n themes: \"Themes\",\n customcss: \"Custom CSS\"\n },\n Collections: {\n settings: {\n name: \"Settings\",\n general: {\n name: \"General\",\n emotes: {\n name: \"Emote System\",\n note: \"Enables BD's emote system\"\n },\n publicServers: {\n name: \"Public Servers\",\n note: \"Display public servers button\"\n },\n voiceDisconnect: {\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\"\n },\n twentyFourHour: {\n name: \"24-Hour Timestamps\",\n note: \"Hides channels when in minimal mode\"\n },\n classNormalizer: {\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\"\n }\n },\n appearance: {\n name: \"Appearance\",\n voiceMode: {\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\"\n },\n minimalMode: {\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\"\n },\n hideChannels: {\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\"\n },\n darkMode: {\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\"\n },\n coloredText: {\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\"\n }\n },\n addons: {\n name: \"Addon Manager\",\n addonErrors: {\n name: \"Show Addon Errors\",\n note: \"Shows a modal with plugin/theme errors\"\n },\n autoScroll: {\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\"\n },\n autoReload: {\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\"\n },\n editAction: {\n name: \"Edit Action\",\n note: \"Where plugins & themes appear when editing\",\n options: {\n detached: \"Detached Window\",\n system: \"System Editor\"\n }\n }\n },\n customcss: {\n name: \"Custom CSS\",\n customcss: {\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\"\n },\n liveUpdate: {\n name: \"Live Update\",\n note: \"Updates the css as you type\"\n },\n startDetached: {\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\"\n },\n nativeOpen: {\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\"\n },\n openAction: {\n name: \"Editor Location\",\n note: \"Where Custom CSS should open by default\",\n options: {\n settings: \"Settings Menu\",\n detached: \"Detached Window\",\n system: \"System Editor\"\n }\n }\n },\n developer: {\n name: \"Developer Settings\",\n developerMode: {\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\"\n },\n copySelector: {\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\"\n }\n },\n window: {\n name: \"Window Preferences\",\n transparency: {\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\"\n },\n frame: {\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"General\",\n download: {\n name: \"Download Emotes\",\n note: \"Download emotes whenever they are out of date\"\n },\n emoteMenu: {\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\"\n },\n hideEmojiMenu: {\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\"\n },\n autoCaps: {\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\"\n },\n showNames: {\n name: \"Show Names\",\n note: \"Show emote names on hover\"\n },\n modifiers: {\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\"\n }\n },\n categories: {\n name: \"Categories\",\n twitchglobal: {\n name: \"Twitch Globals\",\n note: \"Show Twitch global emotes\"\n },\n twitchsubscriber: {\n name: \"Twitch Subscribers\",\n note: \"Show Twitch subscriber emotes\"\n },\n frankerfacez: {\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\"\n }\n }\n }\n },\n Addons: {\n title: \"{{name}} v{{version}} by {{author}}\",\n openFolder: \"Open {{type}} Folder\",\n reload: \"Reload\",\n addonSettings: \"Settings\",\n website: \"Website\",\n source: \"Source\",\n server: \"Support Server\",\n donate: \"Donate\",\n name: \"Name\",\n author: \"Author\",\n version: \"Version\",\n added: \"Date Added\",\n modified: \"Date Modified\",\n search: \"Search {{type}}\",\n editAddon: \"Edit\",\n deleteAddon: \"Delete\",\n confirmDelete: \"Are you sure you want to delete {{name}}?\",\n confirmationText: \"You have unsaved changes to {{name}}. Closing this window will lose all those changes.\"\n },\n Emotes: {\n loading: \"Loading emotes in the background do not reload.\",\n loaded: \"All emotes successfully loaded.\",\n clearEmotes: \"Clear Emote Data\",\n favoriteAction: \"Favorite!\"\n },\n CustomCSS: {\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\",\n update: \"Update\",\n save: \"Save\",\n openNative: \"Open in System Editor\",\n openDetached: \"Detach Window\",\n settings: \"Editor Settings\",\n editorTitle: \"Custom CSS Editor\"\n },\n PublicServers: {\n button: \"public\",\n join: \"Join\",\n joining: \"Joining\",\n joined: \"Joined\",\n loading: \"Loading\",\n loadMore: \"Load More\",\n notConnected: \"Not connected to DiscordServers.com!\",\n search: \"Search\",\n connect: \"Connect\",\n reconnect: \"Reconnect\",\n categories: \"Categories\",\n connection: \"Connected as: {{username}}#{{discriminator}}\",\n results: \"Showing {{start}}-{{end}} of {{total}} results in {{category}}\",\n query: \"for {{query}}\"\n },\n Modals: {\n confirmAction: \"Are You Sure?\",\n okay: \"Okay\",\n cancel: \"Cancel\",\n close: \"Close\",\n name: \"Name\",\n message: \"Message\",\n error: \"Error\",\n addonErrors: \"Addon Errors\"\n },\n Sorting: {\n sortBy: \"Sort By\",\n order: \"Order\",\n ascending: \"Ascending\",\n descending: \"Descending\"\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RyaW5ncy5qcz9iYzcxIl0sIm5hbWVzIjpbIlBhbmVscyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJjdXN0b21jc3MiLCJDb2xsZWN0aW9ucyIsInNldHRpbmdzIiwibmFtZSIsImdlbmVyYWwiLCJlbW90ZXMiLCJub3RlIiwicHVibGljU2VydmVycyIsInZvaWNlRGlzY29ubmVjdCIsInR3ZW50eUZvdXJIb3VyIiwiY2xhc3NOb3JtYWxpemVyIiwic2hvd1RvYXN0cyIsImFwcGVhcmFuY2UiLCJ2b2ljZU1vZGUiLCJtaW5pbWFsTW9kZSIsImhpZGVDaGFubmVscyIsImRhcmtNb2RlIiwiY29sb3JlZFRleHQiLCJhZGRvbnMiLCJhZGRvbkVycm9ycyIsImF1dG9TY3JvbGwiLCJhdXRvUmVsb2FkIiwiZWRpdEFjdGlvbiIsIm9wdGlvbnMiLCJkZXRhY2hlZCIsInN5c3RlbSIsImxpdmVVcGRhdGUiLCJzdGFydERldGFjaGVkIiwibmF0aXZlT3BlbiIsIm9wZW5BY3Rpb24iLCJkZXZlbG9wZXIiLCJkZXZlbG9wZXJNb2RlIiwiY29weVNlbGVjdG9yIiwid2luZG93IiwidHJhbnNwYXJlbmN5IiwiZnJhbWUiLCJkb3dubG9hZCIsImVtb3RlTWVudSIsImhpZGVFbW9qaU1lbnUiLCJhdXRvQ2FwcyIsInNob3dOYW1lcyIsIm1vZGlmaWVycyIsImFuaW1hdGVPbkhvdmVyIiwiY2F0ZWdvcmllcyIsInR3aXRjaGdsb2JhbCIsInR3aXRjaHN1YnNjcmliZXIiLCJmcmFua2VyZmFjZXoiLCJidHR2IiwiQWRkb25zIiwidGl0bGUiLCJvcGVuRm9sZGVyIiwicmVsb2FkIiwiYWRkb25TZXR0aW5ncyIsIndlYnNpdGUiLCJzb3VyY2UiLCJzZXJ2ZXIiLCJkb25hdGUiLCJhdXRob3IiLCJ2ZXJzaW9uIiwiYWRkZWQiLCJtb2RpZmllZCIsInNlYXJjaCIsImVkaXRBZGRvbiIsImRlbGV0ZUFkZG9uIiwiY29uZmlybURlbGV0ZSIsImNvbmZpcm1hdGlvblRleHQiLCJFbW90ZXMiLCJsb2FkaW5nIiwibG9hZGVkIiwiY2xlYXJFbW90ZXMiLCJmYXZvcml0ZUFjdGlvbiIsIkN1c3RvbUNTUyIsInVwZGF0ZSIsInNhdmUiLCJvcGVuTmF0aXZlIiwib3BlbkRldGFjaGVkIiwiZWRpdG9yVGl0bGUiLCJQdWJsaWNTZXJ2ZXJzIiwiYnV0dG9uIiwiam9pbiIsImpvaW5pbmciLCJqb2luZWQiLCJsb2FkTW9yZSIsIm5vdENvbm5lY3RlZCIsImNvbm5lY3QiLCJyZWNvbm5lY3QiLCJjb25uZWN0aW9uIiwicmVzdWx0cyIsInF1ZXJ5IiwiTW9kYWxzIiwiY29uZmlybUFjdGlvbiIsIm9rYXkiLCJjYW5jZWwiLCJjbG9zZSIsIm1lc3NhZ2UiLCJlcnJvciIsIlNvcnRpbmciLCJzb3J0QnkiLCJvcmRlciIsImFzY2VuZGluZyIsImRlc2NlbmRpbmciXSwibWFwcGluZ3MiOiJBQUFBO0FBQWU7QUFDWEEsUUFBTSxFQUFFO0FBQ0pDLFdBQU8sRUFBRSxTQURMO0FBRUpDLFVBQU0sRUFBRSxRQUZKO0FBR0pDLGFBQVMsRUFBRTtBQUhQLEdBREc7QUFNWEMsYUFBVyxFQUFFO0FBQ1RDLFlBQVEsRUFBRTtBQUNOQyxVQUFJLEVBQUUsVUFEQTtBQUVOQyxhQUFPLEVBQUU7QUFDTEQsWUFBSSxFQUFFLFNBREQ7QUFFTEUsY0FBTSxFQUFFO0FBQ0pGLGNBQUksRUFBRSxjQURGO0FBRUpHLGNBQUksRUFBRTtBQUZGLFNBRkg7QUFNTEMscUJBQWEsRUFBRTtBQUNYSixjQUFJLEVBQUUsZ0JBREs7QUFFWEcsY0FBSSxFQUFFO0FBRkssU0FOVjtBQVVMRSx1QkFBZSxFQUFFO0FBQ2JMLGNBQUksRUFBRSxrQkFETztBQUViRyxjQUFJLEVBQUU7QUFGTyxTQVZaO0FBY0xHLHNCQUFjLEVBQUU7QUFDWk4sY0FBSSxFQUFFLG9CQURNO0FBRVpHLGNBQUksRUFBRTtBQUZNLFNBZFg7QUFrQkxJLHVCQUFlLEVBQUU7QUFDYlAsY0FBSSxFQUFFLG1CQURPO0FBRWJHLGNB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QyxpQkFBYSxFQUFFLGVBRFg7QUFFSkMsUUFBSSxFQUFFLE1BRkY7QUFHSkMsVUFBTSxFQUFFLFFBSEo7QUFJSkMsU0FBSyxFQUFFLE9BSkg7QUFLSjFGLFFBQUksRUFBRSxNQUxGO0FBTUoyRixXQUFPLEVBQUUsU0FOTDtBQU9KQyxTQUFLLEVBQUUsT0FQSDtBQVFKNUUsZUFBVyxFQUFFO0FBUlQsR0E5T0c7QUF3UFg2RSxTQUFPLEVBQUU7QUFDTEMsVUFBTSxFQUFFLFNBREg7QUFFTEMsU0FBSyxFQUFFLE9BRkY7QUFHTEMsYUFBUyxFQUFFLFdBSE47QUFJTEMsY0FBVSxFQUFFO0FBSlA7QUF4UEUsQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3N0cmluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBQYW5lbHM6IHtcclxuICAgICAgICBwbHVnaW5zOiBcIlBsdWdpbnNcIixcclxuICAgICAgICB0aGVtZXM6IFwiVGhlbWVzXCIsXHJcbiAgICAgICAgY3VzdG9tY3NzOiBcIkN1c3RvbSBDU1NcIlxyXG4gICAgfSxcclxuICAgIENvbGxlY3Rpb25zOiB7XHJcbiAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgbmFtZTogXCJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICAgICAgICAgIGVtb3Rlczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgU3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIEJEJ3MgZW1vdGUgc3lzdGVtXCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBwdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQdWJsaWMgU2VydmVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzcGxheSBwdWJsaWMgc2VydmVycyBidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHZvaWNlRGlzY29ubmVjdDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgRGlzY29ubmVjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29ubmVjdCBmcm9tIHZvaWNlIHNlcnZlciB3aGVuIGNsb3NpbmcgRGlzY29yZFwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgdHdlbnR5Rm91ckhvdXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI0LUhvdXIgVGltZXN0YW1wc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgY2hhbm5lbHMgd2hlbiBpbiBtaW5pbWFsIG1vZGVcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNsYXNzTm9ybWFsaXplcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTm9ybWFsaXplIENsYXNzZXNcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgc3RhYmxlIGNsYXNzZXMgdG8gZWxlbWVudHMgdG8gaGVscCB0aGVtZXMuIChlLmcuIGFkZHMgLmRhLWNoYW5uZWxzIHRvIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzaG93VG9hc3RzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvd3MgYSBzbWFsbCBub3RpZmljYXRpb24gZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQXBwZWFyYW5jZVwiLFxyXG4gICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWb2ljZSBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBldmVyeXRoaW5nIHRoYXQgaXNuJ3Qgdm9pY2UgY2hhdFwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgbWluaW1hbE1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1pbmltYWwgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZSBlbGVtZW50cyBhbmQgcmVkdWNlIHRoZSBzaXplIG9mIGVsZW1lbnRzXCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRlQ2hhbm5lbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkhpZGUgQ2hhbm5lbHNcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGNoYW5uZWxzIHdoZW4gaW4gbWluaW1hbCBtb2RlXCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkYXJrTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGFyayBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIGNlcnRhaW4gZWxlbWVudHMgZGFyayBieSBkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb2xvcmVkVGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29sb3JlZCBUZXh0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIHRleHQgY29sb3VyIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBhZGRvbnM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQWRkb24gTWFuYWdlclwiLFxyXG4gICAgICAgICAgICAgICAgYWRkb25FcnJvcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgQWRkb24gRXJyb3JzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93cyBhIG1vZGFsIHdpdGggcGx1Z2luL3RoZW1lIGVycm9yc1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXV0b1Njcm9sbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2Nyb2xsIFRvIFNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvLXNjcm9sbHMgdG8gYSBwbHVnaW4ncyBzZXR0aW5ncyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCAob25seSBpZiBvdXQgb2YgdmlldylcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF1dG9SZWxvYWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkF1dG9tYXRpYyBMb2FkaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvbWF0aWNhbGx5IGxvYWRzLCByZWxvYWRzLCBhbmQgdW5sb2FkcyBwbHVnaW5zIGFuZCB0aGVtZXNcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVkaXRBY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVkaXQgQWN0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJXaGVyZSBwbHVnaW5zICYgdGhlbWVzIGFwcGVhciB3aGVuIGVkaXRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFjaGVkOiBcIkRldGFjaGVkIFdpbmRvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW06IFwiU3lzdGVtIEVkaXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ3VzdG9tIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDdXN0b20gQ1NTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIHRoZSBDdXN0b20gQ1NTIHRhYlwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgbGl2ZVVwZGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTGl2ZSBVcGRhdGVcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwZGF0ZXMgdGhlIGNzcyBhcyB5b3UgdHlwZVwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3RhcnREZXRhY2hlZDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU3RhcnQgRGV0YWNoZWRcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkNsaWNraW5nIHRoZSBDdXN0b20gQ1NTIHRhYiBvcGVucyB0aGUgZWRpdG9yIGluIGEgc2VwYXJhdGUgd2luZG93XCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgbmF0aXZlT3Blbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiT3BlbiBpbiBOYXRpdmUgRWRpdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJDbGlja2luZyB0aGUgQ3VzdG9tIENTUyB0YWIgb3BlbnMgeW91ciBjdXN0b20gY3NzIGluIHlvdXIgbmF0aXZlIGVkaXRvclwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgb3BlbkFjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRWRpdG9yIExvY2F0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJXaGVyZSBDdXN0b20gQ1NTIHNob3VsZCBvcGVuIGJ5IGRlZmF1bHRcIixcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiBcIlNldHRpbmdzIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWNoZWQ6IFwiRGV0YWNoZWQgV2luZG93XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbTogXCJTeXN0ZW0gRWRpdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGRldmVsb3Blcjoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJEZXZlbG9wZXIgU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgIGRldmVsb3Blck1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRldmVsb3BlciBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbGxvd3MgYWN0aXZhdGluZyBkZWJ1Z2dlciB3aGVuIHByZXNzaW5nIEY4XCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb3B5U2VsZWN0b3I6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNvcHkgU2VsZWN0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgYSBcXFwiQ29weSBTZWxlY3RvclxcXCIgb3B0aW9uIHRvIGNvbnRleHQgbWVudXMgd2hlbiBkZXZlbG9wZXIgbW9kZSBpcyBhY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB3aW5kb3c6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiV2luZG93IFByZWZlcmVuY2VzXCIsXHJcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVuY3k6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVuYWJsZSBUcmFuc3BhcmVuY3lcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgdGhlIG1haW4gd2luZG93IHRvIGJlIHNlZS10aHJvdWdoIChyZXF1aXJlcyByZXN0YXJ0KVwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZnJhbWU6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIldpbmRvdyBGcmFtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyB0aGUgbmF0aXZlIG9zIHdpbmRvdyBmcmFtZSB0byB0aGUgbWFpbiB3aW5kb3dcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgbmFtZTogXCJFbW90ZXNcIixcclxuICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmFsXCIsXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRG93bmxvYWQgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJEb3dubG9hZCBlbW90ZXMgd2hlbmV2ZXIgdGhleSBhcmUgb3V0IG9mIGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVtb3RlTWVudToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgTWVudVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2gvRmF2b3VyaXRlIGVtb3RlcyBpbiBlbW90ZSBtZW51XCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRlRW1vamlNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJIaWRlIEVtb2ppIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIERpc2NvcmQncyBlbW9qaSBtZW51IHdoZW4gdXNpbmcgZW1vdGUgbWVudVwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXV0b0NhcHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIEF1dG9jYXBpdGFsaXphdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b2NhcGl0YWxpemUgZW1vdGUgY29tbWFuZHNcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNob3dOYW1lczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBOYW1lc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZSBuYW1lcyBvbiBob3ZlclwiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IEVtb3RlIE1vZGlmaWVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGVPbkhvdmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBbmltYXRlIE9uIEhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJPbmx5IGFuaW1hdGUgdGhlIGVtb3RlIG1vZGlmaWVycyBvbiBob3ZlclwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICAgICAgdHdpdGNoZ2xvYmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUd2l0Y2ggR2xvYmFsc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2ggZ2xvYmFsIGVtb3Rlc1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgdHdpdGNoc3Vic2NyaWJlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVHdpdGNoIFN1YnNjcmliZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IFR3aXRjaCBzdWJzY3JpYmVyIGVtb3Rlc1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZnJhbmtlcmZhY2V6OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGcmFua2VyRmFjZVpcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gRkZaXCJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBidHR2OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gQlRUVlwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgQWRkb25zOiB7XHJcbiAgICAgICAgdGl0bGU6IFwie3tuYW1lfX0gdnt7dmVyc2lvbn19IGJ5IHt7YXV0aG9yfX1cIixcclxuICAgICAgICBvcGVuRm9sZGVyOiBcIk9wZW4ge3t0eXBlfX0gRm9sZGVyXCIsXHJcbiAgICAgICAgcmVsb2FkOiBcIlJlbG9hZFwiLFxyXG4gICAgICAgIGFkZG9uU2V0dGluZ3M6IFwiU2V0dGluZ3NcIixcclxuICAgICAgICB3ZWJzaXRlOiBcIldlYnNpdGVcIixcclxuICAgICAgICBzb3VyY2U6IFwiU291cmNlXCIsXHJcbiAgICAgICAgc2VydmVyOiBcIlN1cHBvcnQgU2VydmVyXCIsXHJcbiAgICAgICAgZG9uYXRlOiBcIkRvbmF0ZVwiLFxyXG4gICAgICAgIG5hbWU6IFwiTmFtZVwiLFxyXG4gICAgICAgIGF1dGhvcjogXCJBdXRob3JcIixcclxuICAgICAgICB2ZXJzaW9uOiBcIlZlcnNpb25cIixcclxuICAgICAgICBhZGRlZDogXCJEYXRlIEFkZGVkXCIsXHJcbiAgICAgICAgbW9kaWZpZWQ6IFwiRGF0ZSBNb2RpZmllZFwiLFxyXG4gICAgICAgIHNlYXJjaDogXCJTZWFyY2gge3t0eXBlfX1cIixcclxuICAgICAgICBlZGl0QWRkb246IFwiRWRpdFwiLFxyXG4gICAgICAgIGRlbGV0ZUFkZG9uOiBcIkRlbGV0ZVwiLFxyXG4gICAgICAgIGNvbmZpcm1EZWxldGU6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB7e25hbWV9fT9cIixcclxuICAgICAgICBjb25maXJtYXRpb25UZXh0OiBcIllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyB0byB7e25hbWV9fS4gQ2xvc2luZyB0aGlzIHdpbmRvdyB3aWxsIGxvc2UgYWxsIHRob3NlIGNoYW5nZXMuXCIsXHJcbiAgICB9LFxyXG4gICAgRW1vdGVzOiB7XHJcbiAgICAgICAgbG9hZGluZzogXCJMb2FkaW5nIGVtb3RlcyBpbiB0aGUgYmFja2dyb3VuZCBkbyBub3QgcmVsb2FkLlwiLFxyXG4gICAgICAgIGxvYWRlZDogXCJBbGwgZW1vdGVzIHN1Y2Nlc3NmdWxseSBsb2FkZWQuXCIsXHJcbiAgICAgICAgY2xlYXJFbW90ZXM6IFwiQ2xlYXIgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgIGZhdm9yaXRlQWN0aW9uOiBcIkZhdm9yaXRlIVwiXHJcbiAgICB9LFxyXG4gICAgQ3VzdG9tQ1NTOiB7XHJcbiAgICAgICAgY29uZmlybWF0aW9uVGV4dDogXCJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMgdG8geW91ciBDdXN0b20gQ1NTLiBDbG9zaW5nIHRoaXMgd2luZG93IHdpbGwgbG9zZSBhbGwgdGhvc2UgY2hhbmdlcy5cIixcclxuICAgICAgICB1cGRhdGU6IFwiVXBkYXRlXCIsXHJcbiAgICAgICAgc2F2ZTogXCJTYXZlXCIsXHJcbiAgICAgICAgb3Blbk5hdGl2ZTogXCJPcGVuIGluIFN5c3RlbSBFZGl0b3JcIixcclxuICAgICAgICBvcGVuRGV0YWNoZWQ6IFwiRGV0YWNoIFdpbmRvd1wiLFxyXG4gICAgICAgIHNldHRpbmdzOiBcIkVkaXRvciBTZXR0aW5nc1wiLFxyXG4gICAgICAgIGVkaXRvclRpdGxlOiBcIkN1c3RvbSBDU1MgRWRpdG9yXCJcclxuICAgIH0sXHJcbiAgICBQdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgYnV0dG9uOiBcInB1YmxpY1wiLFxyXG4gICAgICAgIGpvaW46IFwiSm9pblwiLFxyXG4gICAgICAgIGpvaW5pbmc6IFwiSm9pbmluZ1wiLFxyXG4gICAgICAgIGpvaW5lZDogXCJKb2luZWRcIixcclxuICAgICAgICBsb2FkaW5nOiBcIkxvYWRpbmdcIixcclxuICAgICAgICBsb2FkTW9yZTogXCJMb2FkIE1vcmVcIixcclxuICAgICAgICBub3RDb25uZWN0ZWQ6IFwiTm90IGNvbm5lY3RlZCB0byBEaXNjb3JkU2VydmVycy5jb20hXCIsXHJcbiAgICAgICAgc2VhcmNoOiBcIlNlYXJjaFwiLFxyXG4gICAgICAgIGNvbm5lY3Q6IFwiQ29ubmVjdFwiLFxyXG4gICAgICAgIHJlY29ubmVjdDogXCJSZWNvbm5lY3RcIixcclxuICAgICAgICBjYXRlZ29yaWVzOiBcIkNhdGVnb3JpZXNcIixcclxuICAgICAgICBjb25uZWN0aW9uOiBcIkNvbm5lY3RlZCBhczoge3t1c2VybmFtZX19I3t7ZGlzY3JpbWluYXRvcn19XCIsXHJcbiAgICAgICAgcmVzdWx0czogXCJTaG93aW5nIHt7c3RhcnR9fS17e2VuZH19IG9mIHt7dG90YWx9fSByZXN1bHRzIGluIHt7Y2F0ZWdvcnl9fVwiLFxyXG4gICAgICAgIHF1ZXJ5OiBcImZvciB7e3F1ZXJ5fX1cIlxyXG4gICAgfSxcclxuICAgIE1vZGFsczoge1xyXG4gICAgICAgIGNvbmZpcm1BY3Rpb246IFwiQXJlIFlvdSBTdXJlP1wiLFxyXG4gICAgICAgIG9rYXk6IFwiT2theVwiLFxyXG4gICAgICAgIGNhbmNlbDogXCJDYW5jZWxcIixcclxuICAgICAgICBjbG9zZTogXCJDbG9zZVwiLFxyXG4gICAgICAgIG5hbWU6IFwiTmFtZVwiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwiTWVzc2FnZVwiLFxyXG4gICAgICAgIGVycm9yOiBcIkVycm9yXCIsXHJcbiAgICAgICAgYWRkb25FcnJvcnM6IFwiQWRkb24gRXJyb3JzXCJcclxuICAgIH0sXHJcbiAgICBTb3J0aW5nOiB7XHJcbiAgICAgICAgc29ydEJ5OiBcIlNvcnQgQnlcIixcclxuICAgICAgICBvcmRlcjogXCJPcmRlclwiLFxyXG4gICAgICAgIGFzY2VuZGluZzogXCJBc2NlbmRpbmdcIixcclxuICAgICAgICBkZXNjZW5kaW5nOiBcIkRlc2NlbmRpbmdcIlxyXG4gICAgfVxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/strings.js\n");
/***/ }),
/***/ "./src/index.js":
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CoreWrapper; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_datastore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _builtins_emotes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./builtins/emotes */ \"./src/builtins/emotes.js\");\n/* harmony import */ var _modules_dommanager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _modules_reactcomponents__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/reactcomponents */ \"./src/modules/reactcomponents.js\");\n/* harmony import */ var _modules_strings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/strings */ \"./src/modules/strings.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n // Perform some setup\n// proxyLocalStorage();\n\nconst loadingIcon = document.createElement(\"div\");\nloadingIcon.className = \"bd-loaderv2\";\nloadingIcon.title = \"BandagedBD is loading...\";\ndocument.body.appendChild(loadingIcon); // window.Core = Core;\n\nwindow.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; // window.bdthemes = Themes;\n// window.bdplugins = Plugins;\n\nwindow.bdEmotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_8__[\"default\"].Emotes;\nwindow.bemotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_8__[\"default\"].blacklist; // window.bdPluginStorage = bdPluginStorage;\n\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\nwindow.DataStore = _modules_datastore__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.DomManager = _modules_dommanager__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\nwindow.utils = _modules_utilities__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\nwindow.Components = _modules_reactcomponents__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nwindow.Strings = _modules_strings__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init();\n }\n\n}\n\nfunction patchModuleLoad() {\n const namespace = \"betterdiscord\";\n const prefix = `${namespace}/`;\n\n const Module = __webpack_require__(/*! module */ \"module\");\n\n const load = Module._load; // const resolveFilename = Module._resolveFilename;\n\n Module._load = function (request) {\n if (request === namespace || request.startsWith(prefix)) {\n const requested = request.substr(prefix.length);\n if (requested == \"api\") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n }\n\n return load.apply(this, arguments);\n }; // Module._resolveFilename = function (request, parent, isMain) {\n // if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n // const contentPath = PluginManager.getPluginPathByModule(parent);\n // if (contentPath) return request;\n // }\n // return resolveFilename.apply(this, arguments);\n // };\n\n\n return function () {\n Module._load = load;\n };\n}\n\npatchModuleLoad(); // var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsibG9hZGluZ0ljb24iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIndpbmRvdyIsIkJkQXBpIiwicGx1Z2luTW9kdWxlIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lTW9kdWxlIiwiVGhlbWVNYW5hZ2VyIiwiYmRFbW90ZXMiLCJFbW90ZU1vZHVsZSIsIkVtb3RlcyIsImJlbW90ZXMiLCJibGFja2xpc3QiLCJzZXR0aW5nc01vZHVsZSIsIlNldHRpbmdzIiwiRGF0YVN0b3JlIiwiRG9tTWFuYWdlciIsInV0aWxzIiwiVXRpbGl0aWVzIiwiQ29tcG9uZW50cyIsIlJlYWN0Q29tcG9uZW50cyIsIkJERXZlbnRzIiwiRXZlbnRzIiwiYmRDb25maWciLCJDb25maWciLCJTdHJpbmdzIiwiQ29yZVdyYXBwZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsIkNvcmUiLCJzZXRDb25maWciLCJpbml0IiwicGF0Y2hNb2R1bGVMb2FkIiwibmFtZXNwYWNlIiwicHJlZml4IiwiTW9kdWxlIiwicmVxdWlyZSIsImxvYWQiLCJfbG9hZCIsInJlcXVlc3QiLCJzdGFydHNXaXRoIiwicmVxdWVzdGVkIiwic3Vic3RyIiwibGVuZ3RoIiwiYXBwbHkiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBO0FBQ0E7O0FBQ0EsTUFBTUEsV0FBVyxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBcEI7QUFDQUYsV0FBVyxDQUFDRyxTQUFaLEdBQXdCLGFBQXhCO0FBQ0FILFdBQVcsQ0FBQ0ksS0FBWixHQUFvQiwwQkFBcEI7QUFDQUgsUUFBUSxDQUFDSSxJQUFULENBQWNDLFdBQWQsQ0FBMEJOLFdBQTFCLEUsQ0FFQTs7QUFDQU8sTUFBTSxDQUFDQyxLQUFQLEdBQWVBLDBEQUFmLEMsQ0FDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUQsTUFBTSxDQUFDRSxZQUFQLEdBQXNCQyw4REFBdEI7QUFDQUgsTUFBTSxDQUFDSSxXQUFQLEdBQXFCQyw2REFBckIsQyxDQUNBO0FBQ0E7O0FBQ0FMLE1BQU0sQ0FBQ00sUUFBUCxHQUFrQkMsd0RBQVcsQ0FBQ0MsTUFBOUI7QUFDQVIsTUFBTSxDQUFDUyxPQUFQLEdBQWlCRix3REFBVyxDQUFDRyxTQUE3QixDLENBQ0E7O0FBQ0FWLE1BQU0sQ0FBQ1csY0FBUCxHQUF3QkMsZ0VBQXhCO0FBQ0FaLE1BQU0sQ0FBQ2EsU0FBUCxHQUFtQkEsMERBQW5CO0FBR0FiLE1BQU0sQ0FBQ2MsVUFBUCxHQUFvQkEsMkRBQXBCO0FBQ0FkLE1BQU0sQ0FBQ2UsS0FBUCxHQUFlQywyREFBZjtBQUNBaEIsTUFBTSxDQUFDaUIsVUFBUCxHQUFvQkMsaUVBQXBCO0FBRUFsQixNQUFNLENBQUNtQixRQUFQLEdBQWtCQyx3REFBbEI7QUFDQXBCLE1BQU0sQ0FBQ3FCLFFBQVAsR0FBa0JDLDJDQUFsQjtBQUNBdEIsTUFBTSxDQUFDdUIsT0FBUCxHQUFpQkEseURBQWpCO0FBRWUsTUFBTUMsV0FBTixDQUFrQjtBQUM3QkMsYUFBVyxDQUFDQyxNQUFELEVBQVM7QUFDaEJDLHlEQUFJLENBQUNDLFNBQUwsQ0FBZUYsTUFBZjtBQUNIOztBQUVERyxNQUFJLEdBQUc7QUFDSEYseURBQUksQ0FBQ0UsSUFBTDtBQUNIOztBQVA0Qjs7QUFVakMsU0FBU0MsZUFBVCxHQUEyQjtBQUN2QixRQUFNQyxTQUFTLEdBQUcsZUFBbEI7QUFDQSxRQUFNQyxNQUFNLEdBQUksR0FBRUQsU0FBVSxHQUE1Qjs7QUFDQSxRQUFNRSxNQUFNLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBdEI7O0FBQ0EsUUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLEtBQXBCLENBSnVCLENBS3ZCOztBQUVBSCxRQUFNLENBQUNHLEtBQVAsR0FBZSxVQUFTQyxPQUFULEVBQWtCO0FBQzdCLFFBQUlBLE9BQU8sS0FBS04sU0FBWixJQUF5Qk0sT0FBTyxDQUFDQyxVQUFSLENBQW1CTixNQUFuQixDQUE3QixFQUF5RDtBQUNyRCxZQUFNTyxTQUFTLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixDQUFlUixNQUFNLENBQUNTLE1BQXRCLENBQWxCO0FBQ0EsVUFBSUYsU0FBUyxJQUFJLEtBQWpCLEVBQXdCLE9BQU90QywwREFBUDtBQUMzQjs7QUFFRCxXQUFPa0MsSUFBSSxDQUFDTyxLQUFMLENBQVcsSUFBWCxFQUFpQkMsU0FBakIsQ0FBUDtBQUNILEdBUEQsQ0FQdUIsQ0FnQnZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7QUFFQSxTQUFPLFlBQVc7QUFDZFYsVUFBTSxDQUFDRyxLQUFQLEdBQWVELElBQWY7QUFDSCxHQUZEO0FBR0g7O0FBRURMLGVBQWUsRyxDQUVmO0FBQ0EiLCJmaWxlIjoiLi9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IENvcmUgZnJvbSBcIi4vbW9kdWxlcy9jb3JlXCI7XHJcbmltcG9ydCBCZEFwaSBmcm9tIFwiLi9tb2R1bGVzL3BsdWdpbmFwaVwiO1xyXG5pbXBvcnQgUGx1Z2luTWFuYWdlciBmcm9tIFwiLi9tb2R1bGVzL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi9tb2R1bGVzL3RoZW1lbWFuYWdlclwiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuL21vZHVsZXMvZW1pdHRlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vbW9kdWxlcy9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9tb2R1bGVzL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vYnVpbHRpbnMvZW1vdGVzXCI7XHJcbmltcG9ydCBEb21NYW5hZ2VyIGZyb20gXCIuL21vZHVsZXMvZG9tbWFuYWdlclwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL21vZHVsZXMvdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBSZWFjdENvbXBvbmVudHMgZnJvbSBcIi4vbW9kdWxlcy9yZWFjdGNvbXBvbmVudHNcIjtcclxuaW1wb3J0IFN0cmluZ3MgZnJvbSBcIi4vbW9kdWxlcy9zdHJpbmdzXCI7XHJcblxyXG4vLyBQZXJmb3JtIHNvbWUgc2V0dXBcclxuLy8gcHJveHlMb2NhbFN0b3JhZ2UoKTtcclxuY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5sb2FkaW5nSWNvbi5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XHJcbmxvYWRpbmdJY29uLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcclxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkaW5nSWNvbik7XHJcblxyXG4vLyB3aW5kb3cuQ29yZSA9IENvcmU7XHJcbndpbmRvdy5CZEFwaSA9IEJkQXBpO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3MgPSBTZXR0aW5nc0luZm87XHJcbi8vIHdpbmRvdy5zZXR0aW5nc0Nvb2tpZSA9IFNldHRpbmdzQ29va2llO1xyXG4vLyB3aW5kb3cucGx1Z2luQ29va2llID0gUGx1Z2luQ29va2llO1xyXG4vLyB3aW5kb3cudGhlbWVDb29raWUgPSBUaGVtZUNvb2tpZTtcclxud2luZG93LnBsdWdpbk1vZHVsZSA9IFBsdWdpbk1hbmFnZXI7XHJcbndpbmRvdy50aGVtZU1vZHVsZSA9IFRoZW1lTWFuYWdlcjtcclxuLy8gd2luZG93LmJkdGhlbWVzID0gVGhlbWVzO1xyXG4vLyB3aW5kb3cuYmRwbHVnaW5zID0gUGx1Z2lucztcclxud2luZG93LmJkRW1vdGVzID0gRW1vdGVNb2R1bGUuRW1vdGVzO1xyXG53aW5kb3cuYmVtb3RlcyA9IEVtb3RlTW9kdWxlLmJsYWNrbGlzdDtcclxuLy8gd2luZG93LmJkUGx1Z2luU3RvcmFnZSA9IGJkUGx1Z2luU3RvcmFnZTtcclxud2luZG93LnNldHRpbmdzTW9kdWxlID0gU2V0dGluZ3M7XHJcbndpbmRvdy5EYXRhU3RvcmUgPSBEYXRhU3RvcmU7XHJcblxyXG5cclxud2luZG93LkRvbU1hbmFnZXIgPSBEb21NYW5hZ2VyO1xyXG53aW5kb3cudXRpbHMgPSBVdGlsaXRpZXM7XHJcbndpbmRvdy5Db21wb25lbnRzID0gUmVhY3RDb21wb25lbnRzO1xyXG5cclxud2luZG93LkJERXZlbnRzID0gRXZlbnRzO1xyXG53aW5kb3cuYmRDb25maWcgPSBDb25maWc7XHJcbndpbmRvdy5TdHJpbmdzID0gU3RyaW5ncztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvcmVXcmFwcGVyIHtcclxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZykge1xyXG4gICAgICAgIENvcmUuc2V0Q29uZmlnKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICBDb3JlLmluaXQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xyXG4gICAgY29uc3QgbmFtZXNwYWNlID0gXCJiZXR0ZXJkaXNjb3JkXCI7XHJcbiAgICBjb25zdCBwcmVmaXggPSBgJHtuYW1lc3BhY2V9L2A7XHJcbiAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xyXG4gICAgY29uc3QgbG9hZCA9IE1vZHVsZS5fbG9hZDtcclxuICAgIC8vIGNvbnN0IHJlc29sdmVGaWxlbmFtZSA9IE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lO1xyXG5cclxuICAgIE1vZHVsZS5fbG9hZCA9IGZ1bmN0aW9uKHJlcXVlc3QpIHtcclxuICAgICAgICBpZiAocmVxdWVzdCA9PT0gbmFtZXNwYWNlIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RlZCA9IHJlcXVlc3Quc3Vic3RyKHByZWZpeC5sZW5ndGgpO1xyXG4gICAgICAgICAgICBpZiAocmVxdWVzdGVkID09IFwiYXBpXCIpIHJldHVybiBCZEFwaTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lID0gZnVuY3Rpb24gKHJlcXVlc3QsIHBhcmVudCwgaXNNYWluKSB7XHJcbiAgICAvLyAgICAgaWYgKHJlcXVlc3QgPT09IFwiYmV0dGVyZGlzY29yZFwiIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChcImJldHRlcmRpc2NvcmQvXCIpKSB7XHJcbiAgICAvLyAgICAgICAgIGNvbnN0IGNvbnRlbnRQYXRoID0gUGx1Z2luTWFuYWdlci5nZXRQbHVnaW5QYXRoQnlNb2R1bGUocGFyZW50KTtcclxuICAgIC8vICAgICAgICAgaWYgKGNvbnRlbnRQYXRoKSByZXR1cm4gcmVxdWVzdDtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIHJldHVybiByZXNvbHZlRmlsZW5hbWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIC8vIH07XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIE1vZHVsZS5fbG9hZCA9IGxvYWQ7XHJcbiAgICB9O1xyXG59XHJcblxyXG5wYXRjaE1vZHVsZUxvYWQoKTtcclxuXHJcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xyXG4vLyB2YXIgYmRDb25maWcgPSBudWxsOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.js\n");
/***/ }),
/***/ "./src/modules/addonmanager.js":
/*!*************************************!*\
!*** ./src/modules/addonmanager.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonManager; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _structs_addonerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/addonerror */ \"./src/structs/addonerror.js\");\n/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../structs/metaerror */ \"./src/structs/metaerror.js\");\n/* harmony import */ var _ui_toasts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ui/toasts */ \"./src/ui/toasts.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n/* harmony import */ var _ui_misc_addoneditor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../ui/misc/addoneditor */ \"./src/ui/misc/addoneditor.jsx\");\n/* harmony import */ var _ui_floating_container__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../ui/floating/container */ \"./src/ui/floating/container.jsx\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst React = _discordmodules__WEBPACK_IMPORTED_MODULE_8__[\"default\"].React;\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\nconst splitRegex = /[^\\S\\r\\n]*?\\r?(?:\\r\\n|\\n)[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\n\nconst stripBOM = function (fileContent) {\n if (fileContent.charCodeAt(0) === 0xFEFF) {\n fileContent = fileContent.slice(1);\n }\n\n return fileContent;\n};\n\nclass AddonManager {\n get name() {\n return \"\";\n }\n\n get moduleExtension() {\n return \"\";\n }\n\n get extension() {\n return \"\";\n }\n\n get addonFolder() {\n return \"\";\n }\n\n get language() {\n return \"\";\n }\n\n get prefix() {\n return \"addon\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"addons\";\n }\n\n get id() {\n return \"autoReload\";\n }\n\n emit(event, ...args) {\n return _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].emit(`${this.prefix}-${event}`, ...args);\n }\n\n constructor() {\n this.timeCache = {};\n this.addonList = [];\n this.state = {};\n }\n\n initialize() {\n this.originalRequire = Module._extensions[this.moduleExtension];\n Module._extensions[this.moduleExtension] = this.getAddonRequire();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(this.collection, this.category, this.id, enabled => {\n if (enabled) this.watchAddons();else this.unwatchAddons();\n });\n return this.loadAllAddons();\n } // Subclasses should overload this and modify the addon object as needed to fully load it\n\n\n initializeAddon() {\n return;\n } // Subclasses should overload this and modify the fileContent as needed to require() the file\n\n\n getFileModification(module, fileContent) {\n return fileContent;\n }\n\n startAddon() {\n return;\n }\n\n stopAddon() {\n return;\n }\n\n loadState() {\n const saved = _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getData(`${this.prefix}s`);\n if (!saved) return;\n Object.assign(this.state, saved);\n }\n\n saveState() {\n _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setData(`${this.prefix}s`, this.state);\n }\n\n watchAddons() {\n if (this.watcher) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(this.name, `Already watching ${this.prefix} addons.`);\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(this.name, `Starting to watch ${this.prefix} addons.`);\n this.watcher = fs.watch(this.addonFolder, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename || !filename.endsWith(this.extension)) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(path.resolve(this.addonFolder, filename));\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete this.timeCache[filename];\n this.unloadAddon(filename, true);\n }\n\n if (!fs.statSync(path.resolve(this.addonFolder, filename)).isFile()) return;\n const stats = fs.statSync(path.resolve(this.addonFolder, filename));\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (this.timeCache[filename] == stats.mtime.getTime()) return;\n this.timeCache[filename] = stats.mtime.getTime();\n if (eventType == \"rename\") this.loadAddon(filename, true);\n if (eventType == \"change\") this.reloadAddon(filename, true);\n });\n }\n\n unwatchAddons() {\n if (!this.watcher) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(this.name, `Was not watching ${this.prefix} addons.`);\n this.watcher.close();\n delete this.watcher;\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(this.name, `No longer watching ${this.prefix} addons.`);\n }\n\n extractMeta(fileContent) {\n const firstLine = fileContent.split(\"\\n\")[0];\n const hasOldMeta = firstLine.includes(\"//META\");\n if (hasOldMeta) return this.parseOldMeta(fileContent);\n const hasNewMeta = firstLine.includes(\"/**\");\n if (hasNewMeta) return this.parseNewMeta(fileContent);\n throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_6__[\"default\"](\"META was not found.\");\n }\n\n parseOldMeta(fileContent) {\n const meta = fileContent.split(\"\\n\")[0];\n const metaData = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n const parsed = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(metaData);\n if (!parsed) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_6__[\"default\"](\"META could not be parsed.\");\n if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_6__[\"default\"](\"META missing name data.\");\n parsed.format = \"json\";\n return parsed;\n }\n\n parseNewMeta(fileContent) {\n const block = fileContent.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n const out = {};\n let field = \"\";\n let accum = \"\";\n\n for (const line of block.split(splitRegex)) {\n if (line.length === 0) continue;\n\n if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n out[field] = accum;\n const l = line.indexOf(\" \");\n field = line.substr(1, l - 1);\n accum = line.substr(l + 1);\n } else {\n accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n }\n }\n\n out[field] = accum.trim();\n delete out[\"\"];\n out.format = \"jsdoc\";\n return out;\n }\n\n getAddonRequire() {\n const self = this; // const baseFolder = this.addonFolder;\n\n const originalRequire = this.originalRequire;\n return function (module, filename) {\n const possiblePath = path.resolve(self.addonFolder, path.basename(filename));\n if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n let fileContent = fs.readFileSync(filename, \"utf8\");\n fileContent = stripBOM(fileContent);\n const stats = fs.statSync(filename);\n const meta = self.extractMeta(fileContent);\n meta.id = meta.name;\n meta.filename = path.basename(filename);\n meta.added = stats.atimeMs;\n meta.modified = stats.mtimeMs;\n meta.size = stats.size;\n fileContent = self.getFileModification(module, fileContent, meta);\n\n module._compile(fileContent, filename);\n };\n } // Subclasses should use the return (if not AddonError) and push to this.addonList\n\n\n loadAddon(filename, shouldToast = false) {\n if (typeof filename === \"undefined\") return;\n\n try {\n require(path.resolve(this.addonFolder, filename));\n } catch (error) {\n return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](filename, filename, \"Could not be compiled.\", {\n message: error.message,\n stack: error.stack\n });\n }\n\n const addon = require(path.resolve(this.addonFolder, filename));\n\n if (this.addonList.find(c => c.id == addon.id)) return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](addon.name, filename, `There is already a plugin with name ${addon.name}`);\n const error = this.initializeAddon(addon);\n if (error) return error;\n this.addonList.push(addon);\n if (shouldToast) _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].success(`${addon.name} v${addon.version} was loaded.`);\n this.emit(\"loaded\", addon.id);\n if (!this.state[addon.id]) return this.state[addon.id] = false;\n return this.startAddon(addon);\n }\n\n unloadAddon(idOrFileOrAddon, shouldToast = true, isReload = false) {\n const addon = typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n if (!addon) return false;\n if (this.state[addon.id]) isReload ? this.stopAddon(addon) : this.disableAddon(addon);\n delete require.cache[require.resolve(path.resolve(this.addonFolder, addon.filename))];\n this.addonList.splice(this.addonList.indexOf(addon), 1);\n this.emit(\"unloaded\", addon.id);\n if (shouldToast) _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].success(`${addon.name} was unloaded.`);\n return true;\n }\n\n reloadAddon(idOrFileOrAddon, shouldToast = true) {\n const addon = typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n const didUnload = this.unloadAddon(addon, shouldToast, true);\n if (!didUnload) return didUnload;\n return this.loadAddon(addon.filename, shouldToast);\n }\n\n isLoaded(idOrFile) {\n const addon = this.addonList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!addon) return false;\n return true;\n }\n\n isEnabled(idOrFile) {\n const addon = this.addonList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!addon) return false;\n return this.state[addon.id];\n }\n\n enableAddon(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n if (this.state[addon.id]) return;\n this.state[addon.id] = true;\n this.startAddon(addon);\n this.saveState();\n }\n\n disableAddon(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n if (!this.state[addon.id]) return;\n this.state[addon.id] = false;\n this.stopAddon(addon);\n this.saveState();\n }\n\n toggleAddon(id) {\n if (this.state[id]) this.disableAddon(id);else this.enableAddon(id);\n }\n\n loadNewAddons() {\n const files = fs.readdirSync(this.addonFolder);\n const removed = this.addonList.filter(t => !files.includes(t.filename)).map(c => c.id);\n const added = files.filter(f => !this.addonList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.addonFolder, f)).isFile());\n return {\n added,\n removed\n };\n }\n\n updateList() {\n const results = this.loadNewAddons();\n\n for (const filename of results.added) this.loadAddon(filename);\n\n for (const name of results.removed) this.unloadAddon(name);\n }\n\n loadAllAddons() {\n this.loadState();\n const errors = [];\n const files = fs.readdirSync(this.addonFolder);\n\n for (const filename of files) {\n if (!fs.statSync(path.resolve(this.addonFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue;\n const addon = this.loadAddon(filename, false);\n if (addon instanceof _structs_addonerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) errors.push(addon);\n }\n\n this.saveState();\n if (_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(this.collection, this.category, this.id)) this.watchAddons();\n return errors;\n }\n\n deleteAddon(idOrFileOrAddon) {\n const addon = typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n return fs.unlinkSync(path.resolve(this.addonFolder, addon.filename));\n }\n\n saveAddon(idOrFileOrAddon, content) {\n const addon = typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n return fs.writeFileSync(path.resolve(this.addonFolder, addon.filename), content);\n }\n\n editAddon(idOrFileOrAddon, system) {\n const addon = typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n const fullPath = path.resolve(this.addonFolder, addon.filename);\n if (typeof system == \"undefined\") system = _settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(\"settings\", \"addons\", \"editAction\") == \"system\";\n if (system) return __webpack_require__(/*! electron */ \"electron\").shell.openItem(`${fullPath}`);\n return this.openDetached(addon);\n }\n\n openDetached(addon) {\n const fullPath = path.resolve(this.addonFolder, addon.filename);\n const content = fs.readFileSync(fullPath).toString();\n const editorRef = React.createRef();\n const editor = React.createElement(_ui_misc_addoneditor__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n id: \"bd-floating-editor-\" + addon.name,\n ref: editorRef,\n content: content,\n save: this.saveAddon.bind(this, addon),\n openNative: this.editAddon.bind(this, addon, true),\n language: this.language\n });\n _ui_floating_container__WEBPACK_IMPORTED_MODULE_11__[\"default\"].open({\n onClose: () => {\n this.isDetached = false;\n },\n onResize: () => {\n if (!editorRef || !editorRef.current || !editorRef.current.resize) return;\n editorRef.current.resize();\n },\n title: addon.name,\n id: content.id,\n className: \"floating-addon-window\",\n height: 470,\n width: 410,\n center: true,\n resizable: true,\n children: editor,\n confirmClose: () => {\n if (!editorRef || !editorRef.current) return false;\n return editorRef.current.hasUnsavedChanges;\n },\n confirmationText: _strings__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Addons.confirmationText.format({\n name: addon.name\n })\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvYWRkb25tYW5hZ2VyLmpzP2NlYTkiXSwibmFtZXMiOlsiUmVhY3QiLCJEaXNjb3JkTW9kdWxlcyIsInBhdGgiLCJyZXF1aXJlIiwiZnMiLCJNb2R1bGUiLCJnbG9iYWxQYXRocyIsInB1c2giLCJyZXNvbHZlIiwicmVtb3RlIiwiYXBwIiwiZ2V0QXBwUGF0aCIsInNwbGl0UmVnZXgiLCJlc2NhcGVkQXRSZWdleCIsInN0cmlwQk9NIiwiZmlsZUNvbnRlbnQiLCJjaGFyQ29kZUF0Iiwic2xpY2UiLCJBZGRvbk1hbmFnZXIiLCJuYW1lIiwibW9kdWxlRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uIiwiYWRkb25Gb2xkZXIiLCJsYW5ndWFnZSIsInByZWZpeCIsImNvbGxlY3Rpb24iLCJjYXRlZ29yeSIsImlkIiwiZW1pdCIsImV2ZW50IiwiYXJncyIsIkV2ZW50cyIsImNvbnN0cnVjdG9yIiwidGltZUNhY2hlIiwiYWRkb25MaXN0Iiwic3RhdGUiLCJpbml0aWFsaXplIiwib3JpZ2luYWxSZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJnZXRBZGRvblJlcXVpcmUiLCJTZXR0aW5ncyIsIm9uIiwiZW5hYmxlZCIsIndhdGNoQWRkb25zIiwidW53YXRjaEFkZG9ucyIsImxvYWRBbGxBZGRvbnMiLCJpbml0aWFsaXplQWRkb24iLCJnZXRGaWxlTW9kaWZpY2F0aW9uIiwibW9kdWxlIiwic3RhcnRBZGRvbiIsInN0b3BBZGRvbiIsImxvYWRTdGF0ZSIsInNhdmVkIiwiRGF0YVN0b3JlIiwiZ2V0RGF0YSIsIk9iamVjdCIsImFzc2lnbiIsInNhdmVTdGF0ZSIsInNldERhdGEiLCJ3YXRjaGVyIiwiTG9nZ2VyIiwiZXJyb3IiLCJsb2ciLCJ3YXRjaCIsInBlcnNpc3RlbnQiLCJldmVudFR5cGUiLCJmaWxlbmFtZSIsImVuZHNXaXRoIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0Iiwic3RhdFN5bmMiLCJlcnIiLCJjb2RlIiwidW5sb2FkQWRkb24iLCJpc0ZpbGUiLCJzdGF0cyIsIm10aW1lIiwiZ2V0VGltZSIsImxvYWRBZGRvbiIsInJlbG9hZEFkZG9uIiwiY2xvc2UiLCJleHRyYWN0TWV0YSIsImZpcnN0TGluZSIsInNwbGl0IiwiaGFzT2xkTWV0YSIsImluY2x1ZGVzIiwicGFyc2VPbGRNZXRhIiwiaGFzTmV3TWV0YSIsInBhcnNlTmV3TWV0YSIsIk1ldGFFcnJvciIsIm1ldGEiLCJtZXRhRGF0YSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwicGFyc2VkIiwiVXRpbGl0aWVzIiwidGVzdEpTT04iLCJmb3JtYXQiLCJibG9jayIsIm91dCIsImZpZWxkIiwiYWNjdW0iLCJsaW5lIiwibGVuZ3RoIiwiY2hhckF0IiwibCIsImluZGV4T2YiLCJzdWJzdHIiLCJyZXBsYWNlIiwidHJpbSIsInNlbGYiLCJwb3NzaWJsZVBhdGgiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJyZWFscGF0aFN5bmMiLCJSZWZsZWN0IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZWFkRmlsZVN5bmMiLCJhZGRlZCIsImF0aW1lTXMiLCJtb2RpZmllZCIsIm10aW1lTXMiLCJzaXplIiwiX2NvbXBpbGUiLCJzaG91bGRUb2FzdCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiQWRkb25FcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsImFkZG9uIiwiZmluZCIsImMiLCJUb2FzdHMiLCJzdWNjZXNzIiwidmVyc2lvbiIsImlkT3JGaWxlT3JBZGRvbiIsImlzUmVsb2FkIiwiZGlzYWJsZUFkZG9uIiwiY2FjaGUiLCJzcGxpY2UiLCJkaWRVbmxvYWQiLCJpc0xvYWRlZCIsImlkT3JGaWxlIiwiaXNFbmFibGVkIiwiZW5hYmxlQWRkb24iLCJpZE9yQWRkb24iLCJwIiwidG9nZ2xlQWRkb24iLCJsb2FkTmV3QWRkb25zIiwiZmlsZXMiLCJyZWFkZGlyU3luYyIsInJlbW92ZWQiLCJmaWx0ZXIiLCJ0IiwibWFwIiwiZiIsInVwZGF0ZUxpc3QiLCJyZXN1bHRzIiwiZXJyb3JzIiwiZ2V0IiwiZGVsZXRlQWRkb24iLCJ1bmxpbmtTeW5jIiwic2F2ZUFkZG9uIiwiY29udGVudCIsIndyaXRlRmlsZVN5bmMiLCJlZGl0QWRkb24iLCJzeXN0ZW0iLCJmdWxsUGF0aCIsInNoZWxsIiwib3Blbkl0ZW0iLCJvcGVuRGV0YWNoZWQiLCJ0b1N0cmluZyIsImVkaXRvclJlZiIsImNyZWF0ZVJlZiIsImVkaXRvciIsImNyZWF0ZUVsZW1lbnQiLCJBZGRvbkVkaXRvciIsInJlZiIsInNhdmUiLCJiaW5kIiwib3Blbk5hdGl2ZSIsIkZsb2F0aW5nV2luZG93Q29udGFpbmVyIiwib3BlbiIsIm9uQ2xvc2UiLCJpc0RldGFjaGVkIiwib25SZXNpemUiLCJjdXJyZW50IiwicmVzaXplIiwidGl0bGUiLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNlbnRlciIsInJlc2l6YWJsZSIsImNoaWxkcmVuIiwiY29uZmlybUNsb3NlIiwiaGFzVW5zYXZlZENoYW5nZXMiLCJjb25maXJtYXRpb25UZXh0IiwiU3RyaW5ncyIsIkFkZG9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBLE1BQU1BLEtBQUssR0FBR0MsdURBQWMsQ0FBQ0QsS0FBN0I7O0FBRUEsTUFBTUUsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsbUJBQU8sQ0FBQyxjQUFELENBQWxCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsbUJBQU8sQ0FBQyxzQkFBRCxDQUFQLENBQWtCRSxNQUFqQzs7QUFDQUEsTUFBTSxDQUFDQyxXQUFQLENBQW1CQyxJQUFuQixDQUF3QkwsSUFBSSxDQUFDTSxPQUFMLENBQWFMLG1CQUFPLENBQUMsMEJBQUQsQ0FB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YyxPQUFWLENBQWtCQyxNQUEzRCxFQUFtRTtBQUNuRWYsaUJBQVMsQ0FBQ2MsT0FBVixDQUFrQkMsTUFBbEI7QUFDSCxPQVB3QjtBQVF6QkMsV0FBSyxFQUFFM0QsS0FBSyxDQUFDaEgsSUFSWTtBQVN6QlEsUUFBRSxFQUFFMEksT0FBTyxDQUFDMUksRUFUYTtBQVV6Qm9LLGVBQVMsRUFBRSx1QkFWYztBQVd6QkMsWUFBTSxFQUFFLEdBWGlCO0FBWXpCQyxXQUFLLEVBQUUsR0Faa0I7QUFhekJDLFlBQU0sRUFBRSxJQWJpQjtBQWN6QkMsZUFBUyxFQUFFLElBZGM7QUFlekJDLGNBQVEsRUFBRXBCLE1BZmU7QUFnQnpCcUIsa0JBQVksRUFBRSxNQUFNO0FBQ2hCLFlBQUksQ0FBQ3ZCLFNBQUQsSUFBYyxDQUFDQSxTQUFTLENBQUNjLE9BQTdCLEVBQXNDLE9BQU8sS0FBUDtBQUN0QyxlQUFPZCxTQUFTLENBQUNjLE9BQVYsQ0FBa0JVLGlCQUF6QjtBQUNILE9BbkJ3QjtBQW9CekJDLHNCQUFnQixFQUFFQyxnREFBTyxDQUFDQyxNQUFSLENBQWVGLGdCQUFmLENBQWdDckcsTUFBaEMsQ0FBdUM7QUFBQy9FLFlBQUksRUFBRWdILEtBQUssQ0FBQ2hIO0FBQWIsT0FBdkM7QUFwQk8sS0FBN0I7QUFzQkg7O0FBdFM2QiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2FkZG9ubWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBBZGRvbkVycm9yIGZyb20gXCIuLi9zdHJ1Y3RzL2FkZG9uZXJyb3JcIjtcclxuaW1wb3J0IE1ldGFFcnJvciBmcm9tIFwiLi4vc3RydWN0cy9tZXRhZXJyb3JcIjtcclxuaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdWkvdG9hc3RzXCI7XHJcbmltcG9ydCBEaXNjb3JkTW9kdWxlcyBmcm9tIFwiLi9kaXNjb3JkbW9kdWxlc1wiO1xyXG5pbXBvcnQgU3RyaW5ncyBmcm9tIFwiLi9zdHJpbmdzXCI7XHJcblxyXG5pbXBvcnQgQWRkb25FZGl0b3IgZnJvbSBcIi4uL3VpL21pc2MvYWRkb25lZGl0b3JcIjtcclxuaW1wb3J0IEZsb2F0aW5nV2luZG93Q29udGFpbmVyIGZyb20gXCIuLi91aS9mbG9hdGluZy9jb250YWluZXJcIjtcclxuXHJcbmNvbnN0IFJlYWN0ID0gRGlzY29yZE1vZHVsZXMuUmVhY3Q7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpLk1vZHVsZTtcclxuTW9kdWxlLmdsb2JhbFBhdGhzLnB1c2gocGF0aC5yZXNvbHZlKHJlcXVpcmUoXCJlbGVjdHJvblwiKS5yZW1vdGUuYXBwLmdldEFwcFBhdGgoKSwgXCJub2RlX21vZHVsZXNcIikpO1xyXG5cclxuY29uc3Qgc3BsaXRSZWdleCA9IC9bXlxcU1xcclxcbl0qP1xccj8oPzpcXHJcXG58XFxuKVteXFxTXFxyXFxuXSo/XFwqW15cXFNcXHJcXG5dPy87XHJcbmNvbnN0IGVzY2FwZWRBdFJlZ2V4ID0gL15cXFxcQC87XHJcblxyXG5jb25zdCBzdHJpcEJPTSA9IGZ1bmN0aW9uKGZpbGVDb250ZW50KSB7XHJcbiAgICBpZiAoZmlsZUNvbnRlbnQuY2hhckNvZGVBdCgwKSA9PT0gMHhGRUZGKSB7XHJcbiAgICAgICAgZmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudC5zbGljZSgxKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlQ29udGVudDtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkZG9uTWFuYWdlciB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IG1vZHVsZUV4dGVuc2lvbigpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgZXh0ZW5zaW9uKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBhZGRvbkZvbGRlcigpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgbGFuZ3VhZ2UoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJhZGRvblwiO31cclxuICAgIGdldCBjb2xsZWN0aW9uKCkge3JldHVybiBcInNldHRpbmdzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFkZG9uc1wiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJhdXRvUmVsb2FkXCI7fVxyXG4gICAgZW1pdChldmVudCwgLi4uYXJncykge3JldHVybiBFdmVudHMuZW1pdChgJHt0aGlzLnByZWZpeH0tJHtldmVudH1gLCAuLi5hcmdzKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy50aW1lQ2FjaGUgPSB7fTtcclxuICAgICAgICB0aGlzLmFkZG9uTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXF1aXJlID0gTW9kdWxlLl9leHRlbnNpb25zW3RoaXMubW9kdWxlRXh0ZW5zaW9uXTtcclxuICAgICAgICBNb2R1bGUuX2V4dGVuc2lvbnNbdGhpcy5tb2R1bGVFeHRlbnNpb25dID0gdGhpcy5nZXRBZGRvblJlcXVpcmUoKTtcclxuICAgICAgICBTZXR0aW5ncy5vbih0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQsIChlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSB0aGlzLndhdGNoQWRkb25zKCk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy51bndhdGNoQWRkb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbEFkZG9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJsb2FkIHRoaXMgYW5kIG1vZGlmeSB0aGUgYWRkb24gb2JqZWN0IGFzIG5lZWRlZCB0byBmdWxseSBsb2FkIGl0XHJcbiAgICBpbml0aWFsaXplQWRkb24oKSB7cmV0dXJuO31cclxuXHJcbiAgICAvLyBTdWJjbGFzc2VzIHNob3VsZCBvdmVybG9hZCB0aGlzIGFuZCBtb2RpZnkgdGhlIGZpbGVDb250ZW50IGFzIG5lZWRlZCB0byByZXF1aXJlKCkgdGhlIGZpbGVcclxuICAgIGdldEZpbGVNb2RpZmljYXRpb24obW9kdWxlLCBmaWxlQ29udGVudCkge3JldHVybiBmaWxlQ29udGVudDt9XHJcblxyXG4gICAgc3RhcnRBZGRvbigpIHtyZXR1cm47fVxyXG4gICAgc3RvcEFkZG9uKCkge3JldHVybjt9XHJcblxyXG4gICAgbG9hZFN0YXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHNhdmVkID0gRGF0YVN0b3JlLmdldERhdGEoYCR7dGhpcy5wcmVmaXh9c2ApO1xyXG4gICAgICAgIGlmICghc2F2ZWQpIHJldHVybjtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUsIHNhdmVkKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlU3RhdGUoKSB7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNldERhdGEoYCR7dGhpcy5wcmVmaXh9c2AsIHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhdGNoQWRkb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIpIHJldHVybiBMb2dnZXIuZXJyb3IodGhpcy5uYW1lLCBgQWxyZWFkeSB3YXRjaGluZyAke3RoaXMucHJlZml4fSBhZGRvbnMuYCk7XHJcbiAgICAgICAgTG9nZ2VyLmxvZyh0aGlzLm5hbWUsIGBTdGFydGluZyB0byB3YXRjaCAke3RoaXMucHJlZml4fSBhZGRvbnMuYCk7XHJcbiAgICAgICAgdGhpcy53YXRjaGVyID0gZnMud2F0Y2godGhpcy5hZGRvbkZvbGRlciwge3BlcnNpc3RlbnQ6IGZhbHNlfSwgYXN5bmMgKGV2ZW50VHlwZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUgfHwgIWZpbGVuYW1lIHx8ICFmaWxlbmFtZS5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuYWRkb25Gb2xkZXIsIGZpbGVuYW1lKSk7fVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRU5PRU5UXCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRpbWVDYWNoZVtmaWxlbmFtZV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVubG9hZEFkZG9uKGZpbGVuYW1lLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBmaWxlbmFtZSkpLmlzRmlsZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuYWRkb25Gb2xkZXIsIGZpbGVuYW1lKSk7XHJcbiAgICAgICAgICAgIGlmICghc3RhdHMgfHwgIXN0YXRzLm10aW1lIHx8ICFzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihzdGF0cy5tdGltZS5nZXRUaW1lKCkpICE9PSBcIm51bWJlclwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRpbWVDYWNoZVtmaWxlbmFtZV0gPT0gc3RhdHMubXRpbWUuZ2V0VGltZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXSA9IHN0YXRzLm10aW1lLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBcInJlbmFtZVwiKSB0aGlzLmxvYWRBZGRvbihmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gXCJjaGFuZ2VcIikgdGhpcy5yZWxvYWRBZGRvbihmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW53YXRjaEFkZG9ucygpIHtcclxuICAgICAgICBpZiAoIXRoaXMud2F0Y2hlcikgcmV0dXJuIExvZ2dlci5lcnJvcih0aGlzLm5hbWUsIGBXYXMgbm90IHdhdGNoaW5nICR7dGhpcy5wcmVmaXh9IGFkZG9ucy5gKTtcclxuICAgICAgICB0aGlzLndhdGNoZXIuY2xvc2UoKTtcclxuICAgICAgICBkZWxldGUgdGhpcy53YXRjaGVyO1xyXG4gICAgICAgIExvZ2dlci5sb2codGhpcy5uYW1lLCBgTm8gbG9uZ2VyIHdhdGNoaW5nICR7dGhpcy5wcmVmaXh9IGFkZG9ucy5gKTtcclxuICAgIH1cclxuXHJcbiAgICBleHRyYWN0TWV0YShmaWxlQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0TGluZSA9IGZpbGVDb250ZW50LnNwbGl0KFwiXFxuXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGhhc09sZE1ldGEgPSBmaXJzdExpbmUuaW5jbHVkZXMoXCIvL01FVEFcIik7XHJcbiAgICAgICAgaWYgKGhhc09sZE1ldGEpIHJldHVybiB0aGlzLnBhcnNlT2xkTWV0YShmaWxlQ29udGVudCk7XHJcbiAgICAgICAgY29uc3QgaGFzTmV3TWV0YSA9IGZpcnN0TGluZS5pbmNsdWRlcyhcIi8qKlwiKTtcclxuICAgICAgICBpZiAoaGFzTmV3TWV0YSkgcmV0dXJuIHRoaXMucGFyc2VOZXdNZXRhKGZpbGVDb250ZW50KTtcclxuICAgICAgICB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSB3YXMgbm90IGZvdW5kLlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU9sZE1ldGEoZmlsZUNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBtZXRhID0gZmlsZUNvbnRlbnQuc3BsaXQoXCJcXG5cIilbMF07XHJcbiAgICAgICAgY29uc3QgbWV0YURhdGEgPSBtZXRhLnN1YnN0cmluZyhtZXRhLmxhc3RJbmRleE9mKFwiLy9NRVRBXCIpICsgNiwgbWV0YS5sYXN0SW5kZXhPZihcIiovL1wiKSk7XHJcbiAgICAgICAgY29uc3QgcGFyc2VkID0gVXRpbGl0aWVzLnRlc3RKU09OKG1ldGFEYXRhKTtcclxuICAgICAgICBpZiAoIXBhcnNlZCkgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgY291bGQgbm90IGJlIHBhcnNlZC5cIik7XHJcbiAgICAgICAgaWYgKCFwYXJzZWQubmFtZSkgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgbWlzc2luZyBuYW1lIGRhdGEuXCIpO1xyXG4gICAgICAgIHBhcnNlZC5mb3JtYXQgPSBcImpzb25cIjtcclxuICAgICAgICByZXR1cm4gcGFyc2VkO1xyXG4gICAgfVxyXG5cclxuICAgIHBhcnNlTmV3TWV0YShmaWxlQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrID0gZmlsZUNvbnRlbnQuc3BsaXQoXCIvKipcIiwgMilbMV0uc3BsaXQoXCIqL1wiLCAxKVswXTtcclxuICAgICAgICBjb25zdCBvdXQgPSB7fTtcclxuICAgICAgICBsZXQgZmllbGQgPSBcIlwiO1xyXG4gICAgICAgIGxldCBhY2N1bSA9IFwiXCI7XHJcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGJsb2NrLnNwbGl0KHNwbGl0UmVnZXgpKSB7XHJcbiAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PT0gXCJAXCIgJiYgbGluZS5jaGFyQXQoMSkgIT09IFwiIFwiKSB7XHJcbiAgICAgICAgICAgICAgICBvdXRbZmllbGRdID0gYWNjdW07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsID0gbGluZS5pbmRleE9mKFwiIFwiKTtcclxuICAgICAgICAgICAgICAgIGZpZWxkID0gbGluZS5zdWJzdHIoMSwgbCAtIDEpO1xyXG4gICAgICAgICAgICAgICAgYWNjdW0gPSBsaW5lLnN1YnN0cihsICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhY2N1bSArPSBcIiBcIiArIGxpbmUucmVwbGFjZShcIlxcXFxuXCIsIFwiXFxuXCIpLnJlcGxhY2UoZXNjYXBlZEF0UmVnZXgsIFwiQFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvdXRbZmllbGRdID0gYWNjdW0udHJpbSgpO1xyXG4gICAgICAgIGRlbGV0ZSBvdXRbXCJcIl07XHJcbiAgICAgICAgb3V0LmZvcm1hdCA9IFwianNkb2NcIjtcclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFkZG9uUmVxdWlyZSgpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICAvLyBjb25zdCBiYXNlRm9sZGVyID0gdGhpcy5hZGRvbkZvbGRlcjtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSB0aGlzLm9yaWdpbmFsUmVxdWlyZTtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24obW9kdWxlLCBmaWxlbmFtZSkge1xyXG4gICAgICAgICAgICBjb25zdCBwb3NzaWJsZVBhdGggPSBwYXRoLnJlc29sdmUoc2VsZi5hZGRvbkZvbGRlciwgcGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocG9zc2libGVQYXRoKSB8fCBmaWxlbmFtZSAhPT0gZnMucmVhbHBhdGhTeW5jKHBvc3NpYmxlUGF0aCkpIHJldHVybiBSZWZsZWN0LmFwcGx5KG9yaWdpbmFsUmVxdWlyZSwgdGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgbGV0IGZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBcInV0ZjhcIik7XHJcbiAgICAgICAgICAgIGZpbGVDb250ZW50ID0gc3RyaXBCT00oZmlsZUNvbnRlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNlbGYuZXh0cmFjdE1ldGEoZmlsZUNvbnRlbnQpO1xyXG4gICAgICAgICAgICBtZXRhLmlkID0gbWV0YS5uYW1lO1xyXG4gICAgICAgICAgICBtZXRhLmZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgIG1ldGEuYWRkZWQgPSBzdGF0cy5hdGltZU1zO1xyXG4gICAgICAgICAgICBtZXRhLm1vZGlmaWVkID0gc3RhdHMubXRpbWVNcztcclxuICAgICAgICAgICAgbWV0YS5zaXplID0gc3RhdHMuc2l6ZTtcclxuICAgICAgICAgICAgZmlsZUNvbnRlbnQgPSBzZWxmLmdldEZpbGVNb2RpZmljYXRpb24obW9kdWxlLCBmaWxlQ29udGVudCwgbWV0YSk7XHJcbiAgICAgICAgICAgIG1vZHVsZS5fY29tcGlsZShmaWxlQ29udGVudCwgZmlsZW5hbWUpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIHRoZSByZXR1cm4gKGlmIG5vdCBBZGRvbkVycm9yKSBhbmQgcHVzaCB0byB0aGlzLmFkZG9uTGlzdFxyXG4gICAgbG9hZEFkZG9uKGZpbGVuYW1lLCBzaG91bGRUb2FzdCA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihmaWxlbmFtZSkgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcclxuICAgICAgICB0cnkge19fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBmaWxlbmFtZSkpO31cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtyZXR1cm4gbmV3IEFkZG9uRXJyb3IoZmlsZW5hbWUsIGZpbGVuYW1lLCBcIkNvdWxkIG5vdCBiZSBjb21waWxlZC5cIiwge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja30pO31cclxuICAgICAgICBjb25zdCBhZGRvbiA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBmaWxlbmFtZSkpO1xyXG4gICAgICAgIGlmICh0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBhZGRvbi5pZCkpIHJldHVybiBuZXcgQWRkb25FcnJvcihhZGRvbi5uYW1lLCBmaWxlbmFtZSwgYFRoZXJlIGlzIGFscmVhZHkgYSBwbHVnaW4gd2l0aCBuYW1lICR7YWRkb24ubmFtZX1gKTtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuaW5pdGlhbGl6ZUFkZG9uKGFkZG9uKTtcclxuICAgICAgICBpZiAoZXJyb3IpIHJldHVybiBlcnJvcjtcclxuICAgICAgICB0aGlzLmFkZG9uTGlzdC5wdXNoKGFkZG9uKTtcclxuICAgICAgICBpZiAoc2hvdWxkVG9hc3QpIFRvYXN0cy5zdWNjZXNzKGAke2FkZG9uLm5hbWV9IHYke2FkZG9uLnZlcnNpb259IHdhcyBsb2FkZWQuYCk7XHJcbiAgICAgICAgdGhpcy5lbWl0KFwibG9hZGVkXCIsIGFkZG9uLmlkKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2FkZG9uLmlkXSkgcmV0dXJuIHRoaXMuc3RhdGVbYWRkb24uaWRdID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRBZGRvbihhZGRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgdW5sb2FkQWRkb24oaWRPckZpbGVPckFkZG9uLCBzaG91bGRUb2FzdCA9IHRydWUsIGlzUmVsb2FkID0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHR5cGVvZihpZE9yRmlsZU9yQWRkb24pID09IFwic3RyaW5nXCIgPyB0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZU9yQWRkb24gfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQWRkb24pIDogaWRPckZpbGVPckFkZG9uO1xyXG4gICAgICAgIGlmICghYWRkb24pIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVthZGRvbi5pZF0pIGlzUmVsb2FkID8gdGhpcy5zdG9wQWRkb24oYWRkb24pIDogdGhpcy5kaXNhYmxlQWRkb24oYWRkb24pO1xyXG4gICAgICAgIGRlbGV0ZSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXy5jYWNoZVtfX25vbl93ZWJwYWNrX3JlcXVpcmVfXy5yZXNvbHZlKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBhZGRvbi5maWxlbmFtZSkpXTtcclxuICAgICAgICB0aGlzLmFkZG9uTGlzdC5zcGxpY2UodGhpcy5hZGRvbkxpc3QuaW5kZXhPZihhZGRvbiksIDEpO1xyXG4gICAgICAgIHRoaXMuZW1pdChcInVubG9hZGVkXCIsIGFkZG9uLmlkKTtcclxuICAgICAgICBpZiAoc2hvdWxkVG9hc3QpIFRvYXN0cy5zdWNjZXNzKGAke2FkZG9uLm5hbWV9IHdhcyB1bmxvYWRlZC5gKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRBZGRvbihpZE9yRmlsZU9yQWRkb24sIHNob3VsZFRvYXN0ID0gdHJ1ZSkge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JGaWxlT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JBZGRvbiB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlT3JBZGRvbikgOiBpZE9yRmlsZU9yQWRkb247XHJcbiAgICAgICAgY29uc3QgZGlkVW5sb2FkID0gdGhpcy51bmxvYWRBZGRvbihhZGRvbiwgc2hvdWxkVG9hc3QsIHRydWUpO1xyXG4gICAgICAgIGlmICghZGlkVW5sb2FkKSByZXR1cm4gZGlkVW5sb2FkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRBZGRvbihhZGRvbi5maWxlbmFtZSwgc2hvdWxkVG9hc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTG9hZGVkKGlkT3JGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZSB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlKTtcclxuICAgICAgICBpZiAoIWFkZG9uKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFbmFibGVkKGlkT3JGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZSB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlKTtcclxuICAgICAgICBpZiAoIWFkZG9uKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbYWRkb24uaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZUFkZG9uKGlkT3JBZGRvbikge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JBZGRvbikgOiBpZE9yQWRkb247XHJcbiAgICAgICAgaWYgKCFhZGRvbikgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlW2FkZG9uLmlkXSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc3RhdGVbYWRkb24uaWRdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN0YXJ0QWRkb24oYWRkb24pO1xyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUFkZG9uKGlkT3JBZGRvbikge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JBZGRvbikgOiBpZE9yQWRkb247XHJcbiAgICAgICAgaWYgKCFhZGRvbikgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVthZGRvbi5pZF0pIHJldHVybjtcclxuICAgICAgICB0aGlzLnN0YXRlW2FkZG9uLmlkXSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RvcEFkZG9uKGFkZG9uKTtcclxuICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUFkZG9uKGlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVbaWRdKSB0aGlzLmRpc2FibGVBZGRvbihpZCk7XHJcbiAgICAgICAgZWxzZSB0aGlzLmVuYWJsZUFkZG9uKGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV3QWRkb25zKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmModGhpcy5hZGRvbkZvbGRlcik7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuYWRkb25MaXN0LmZpbHRlcih0ID0+ICFmaWxlcy5pbmNsdWRlcyh0LmZpbGVuYW1lKSkubWFwKGMgPT4gYy5pZCk7XHJcbiAgICAgICAgY29uc3QgYWRkZWQgPSBmaWxlcy5maWx0ZXIoZiA9PiAhdGhpcy5hZGRvbkxpc3QuZmluZCh0ID0+IHQuZmlsZW5hbWUgPT0gZikgJiYgZi5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikgJiYgZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuYWRkb25Gb2xkZXIsIGYpKS5pc0ZpbGUoKSk7XHJcbiAgICAgICAgcmV0dXJuIHthZGRlZCwgcmVtb3ZlZH07XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGlzdCgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5sb2FkTmV3QWRkb25zKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiByZXN1bHRzLmFkZGVkKSB0aGlzLmxvYWRBZGRvbihmaWxlbmFtZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHJlc3VsdHMucmVtb3ZlZCkgdGhpcy51bmxvYWRBZGRvbihuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQWxsQWRkb25zKCkge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW107XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmFkZG9uRm9sZGVyKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgICBpZiAoIWZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBmaWxlbmFtZSkpLmlzRmlsZSgpIHx8ICFmaWxlbmFtZS5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRvbiA9IHRoaXMubG9hZEFkZG9uKGZpbGVuYW1lLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChhZGRvbiBpbnN0YW5jZW9mIEFkZG9uRXJyb3IpIGVycm9ycy5wdXNoKGFkZG9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSB0aGlzLndhdGNoQWRkb25zKCk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVBZGRvbihpZE9yRmlsZU9yQWRkb24pIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHR5cGVvZihpZE9yRmlsZU9yQWRkb24pID09IFwic3RyaW5nXCIgPyB0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZU9yQWRkb24gfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQWRkb24pIDogaWRPckZpbGVPckFkZG9uO1xyXG4gICAgICAgIHJldHVybiBmcy51bmxpbmtTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBhZGRvbi5maWxlbmFtZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVBZGRvbihpZE9yRmlsZU9yQWRkb24sIGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHR5cGVvZihpZE9yRmlsZU9yQWRkb24pID09IFwic3RyaW5nXCIgPyB0aGlzLmFkZG9uTGlzdC5maW5kKGMgPT4gYy5pZCA9PSBpZE9yRmlsZU9yQWRkb24gfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQWRkb24pIDogaWRPckZpbGVPckFkZG9uO1xyXG4gICAgICAgIHJldHVybiBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmFkZG9uRm9sZGVyLCBhZGRvbi5maWxlbmFtZSksIGNvbnRlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRBZGRvbihpZE9yRmlsZU9yQWRkb24sIHN5c3RlbSkge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JGaWxlT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JBZGRvbiB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlT3JBZGRvbikgOiBpZE9yRmlsZU9yQWRkb247XHJcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5hZGRvbkZvbGRlciwgYWRkb24uZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmICh0eXBlb2Yoc3lzdGVtKSA9PSBcInVuZGVmaW5lZFwiKSBzeXN0ZW0gPSBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImFkZG9uc1wiLCBcImVkaXRBY3Rpb25cIikgPT0gXCJzeXN0ZW1cIjtcclxuICAgICAgICBpZiAoc3lzdGVtKSByZXR1cm4gcmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGAke2Z1bGxQYXRofWApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5EZXRhY2hlZChhZGRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkRldGFjaGVkKGFkZG9uKSB7XHJcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5hZGRvbkZvbGRlciwgYWRkb24uZmlsZW5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZnVsbFBhdGgpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG4gICAgICAgIGNvbnN0IGVkaXRvciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQWRkb25FZGl0b3IsIHtcclxuICAgICAgICAgICAgaWQ6IFwiYmQtZmxvYXRpbmctZWRpdG9yLVwiICsgYWRkb24ubmFtZSxcclxuICAgICAgICAgICAgcmVmOiBlZGl0b3JSZWYsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXHJcbiAgICAgICAgICAgIHNhdmU6IHRoaXMuc2F2ZUFkZG9uLmJpbmQodGhpcywgYWRkb24pLFxyXG4gICAgICAgICAgICBvcGVuTmF0aXZlOiB0aGlzLmVkaXRBZGRvbi5iaW5kKHRoaXMsIGFkZG9uLCB0cnVlKSxcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2VcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgRmxvYXRpbmdXaW5kb3dDb250YWluZXIub3Blbih7XHJcbiAgICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNEZXRhY2hlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvblJlc2l6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlZGl0b3JSZWYgfHwgIWVkaXRvclJlZi5jdXJyZW50IHx8ICFlZGl0b3JSZWYuY3VycmVudC5yZXNpemUpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnJlc2l6ZSgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aXRsZTogYWRkb24ubmFtZSxcclxuICAgICAgICAgICAgaWQ6IGNvbnRlbnQuaWQsXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZTogXCJmbG9hdGluZy1hZGRvbi13aW5kb3dcIixcclxuICAgICAgICAgICAgaGVpZ2h0OiA0NzAsXHJcbiAgICAgICAgICAgIHdpZHRoOiA0MTAsXHJcbiAgICAgICAgICAgIGNlbnRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogZWRpdG9yLFxyXG4gICAgICAgICAgICBjb25maXJtQ2xvc2U6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZWRpdG9yUmVmIHx8ICFlZGl0b3JSZWYuY3VycmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRvclJlZi5jdXJyZW50Lmhhc1Vuc2F2ZWRDaGFuZ2VzO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjb25maXJtYXRpb25UZXh0OiBTdHJpbmdzLkFkZG9ucy5jb25maXJtYXRpb25UZXh0LmZvcm1hdCh7bmFtZTogYWRkb24ubmFtZX0pXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/addonmanager.js\n");
/***/ }),
/***/ "./src/modules/componentpatcher.js":
/*!*****************************************!*\
!*** ./src/modules/componentpatcher.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _patcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./patcher */ \"./src/modules/patcher.js\");\n/* harmony import */ var _ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/icons/bdlogo */ \"./src/ui/icons/bdlogo.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ComponentPatcher {\n initialize() {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].suppressErrors(this.patchSocial.bind(this), \"BD Social Patch\")();\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].suppressErrors(this.patchGuildPills.bind(this), \"BD Guild Pills Patch\")();\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].suppressErrors(this.patchGuildListItems.bind(this), \"BD Guild List Items Patch\")();\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].suppressErrors(this.patchGuildSeparator.bind(this), \"BD Guild Separator Patch\")();\n }\n\n patchSocial() {\n if (this.socialPatch) return;\n const TabBar = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByDisplayName(\"TabBar\");\n const Anchor = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByDisplayName(\"Anchor\");\n if (!TabBar || !Anchor) return;\n this.socialPatch = _patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].after(\"ThemeHelper\", TabBar.prototype, \"render\", (_, __, returnValue) => {\n const children = returnValue.props.children;\n if (!children || !children.length) return;\n if (children[children.length - 2].type.displayName !== \"Separator\") return;\n if (!children[children.length - 1].type.toString().includes(\"socialLinks\")) return;\n const original = children[children.length - 1].type;\n\n const newOne = function () {\n const returnVal = original(...arguments);\n returnVal.props.children.push(_discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(Anchor, {\n className: \"bd-social-link\",\n href: \"https://github.com/rauenzi/BetterDiscordApp\",\n rel: \"author\",\n title: \"BandagedBD\",\n target: \"_blank\"\n }, _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(_ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n size: \"16px\",\n className: \"bd-social-logo\"\n })));\n return returnVal;\n };\n\n children[children.length - 1].type = newOne;\n });\n }\n\n patchGuildListItems() {\n if (this.guildListItemsPatch) return;\n const listItemClass = _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GuildClasses.listItem.split(\" \")[0];\n const blobClass = _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].GuildClasses.blobContainer.split(\" \")[0];\n const reactInstance = _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getReactInstance(document.querySelector(`.${listItemClass} .${blobClass}`).parentElement);\n const GuildComponent = reactInstance.return.type;\n if (!GuildComponent) return;\n this.guildListItemsPatch = _patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].after(\"ThemeHelper\", GuildComponent.prototype, \"render\", (thisObject, _, returnValue) => {\n if (!returnValue || !thisObject) return;\n const guildData = thisObject.props;\n returnValue.props.className += \" bd-guild\";\n if (guildData.unread) returnValue.props.className += \" bd-unread\";\n if (guildData.selected) returnValue.props.className += \" bd-selected\";\n if (guildData.audio) returnValue.props.className += \" bd-audio\";\n if (guildData.video) returnValue.props.className += \" bd-video\";\n if (guildData.badge) returnValue.props.className += \" bd-badge\";\n if (guildData.animatable) returnValue.props.className += \" bd-animatable\";\n return returnValue;\n });\n }\n\n patchGuildPills() {\n if (this.guildPillPatch) return;\n const guildPill = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.default && !m.default.displayName && m.default.toString && m.default.toString().includes(\"translate3d\"));\n if (!guildPill) return;\n this.guildPillPatch = _patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].after(\"ThemeHelper\", guildPill, \"default\", (_, args, returnValue) => {\n const props = args[0];\n if (props.unread) returnValue.props.className += \" bd-unread\";\n if (props.selected) returnValue.props.className += \" bd-selected\";\n if (props.hovered) returnValue.props.className += \" bd-hovered\";\n return returnValue;\n });\n }\n\n patchGuildSeparator() {\n if (this.guildSeparatorPatch) return;\n const Guilds = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByDisplayName(\"Guilds\");\n const guildComponents = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"renderListItem\");\n if (!guildComponents || !Guilds) return;\n\n const GuildSeparator = function () {\n const returnValue = guildComponents.Separator(...arguments);\n returnValue.props.className += \" bd-guild-separator\";\n return returnValue;\n };\n\n this.guildSeparatorPatch = _patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].after(\"ThemeHelper\", Guilds.prototype, \"render\", (_, __, returnValue) => {\n const Separator = _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].findInReactTree(returnValue, m => m.type && !m.type.displayName && typeof m.type == \"function\" && _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isEmpty(m.props));\n if (!Separator) return;\n Separator.type = GuildSeparator;\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29tcG9uZW50cGF0Y2hlci5qcz8yZjAyIl0sIm5hbWVzIjpbIkNvbXBvbmVudFBhdGNoZXIiLCJpbml0aWFsaXplIiwiVXRpbGl0aWVzIiwic3VwcHJlc3NFcnJvcnMiLCJwYXRjaFNvY2lhbCIsImJpbmQiLCJwYXRjaEd1aWxkUGlsbHMiLCJwYXRjaEd1aWxkTGlzdEl0ZW1zIiwicGF0Y2hHdWlsZFNlcGFyYXRvciIsInNvY2lhbFBhdGNoIiwiVGFiQmFyIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwiQW5jaG9yIiwiUGF0Y2hlciIsImFmdGVyIiwicHJvdG90eXBlIiwiXyIsIl9fIiwicmV0dXJuVmFsdWUiLCJjaGlsZHJlbiIsInByb3BzIiwibGVuZ3RoIiwidHlwZSIsImRpc3BsYXlOYW1lIiwidG9TdHJpbmciLCJpbmNsdWRlcyIsIm9yaWdpbmFsIiwibmV3T25lIiwicmV0dXJuVmFsIiwiYXJndW1lbnRzIiwicHVzaCIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaHJlZiIsInJlbCIsInRpdGxlIiwidGFyZ2V0IiwiQkRMb2dvIiwic2l6ZSIsImd1aWxkTGlzdEl0ZW1zUGF0Y2giLCJsaXN0SXRlbUNsYXNzIiwiR3VpbGRDbGFzc2VzIiwibGlzdEl0ZW0iLCJzcGxpdCIsImJsb2JDbGFzcyIsImJsb2JDb250YWluZXIiLCJyZWFjdEluc3RhbmNlIiwiZ2V0UmVhY3RJbnN0YW5jZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcmVudEVsZW1lbnQiLCJHdWlsZENvbXBvbmVudCIsInJldHVybiIsInRoaXNPYmplY3QiLCJndWlsZERhdGEiLCJ1bnJlYWQiLCJzZWxlY3RlZCIsImF1ZGlvIiwidmlkZW8iLCJiYWRnZSIsImFuaW1hdGFibGUiLCJndWlsZFBpbGxQYXRjaCIsImd1aWxkUGlsbCIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0IiwiYXJncyIsImhvdmVyZWQiLCJndWlsZFNlcGFyYXRvclBhdGNoIiwiR3VpbGRzIiwiZ3VpbGRDb21wb25lbnRzIiwiZ2V0QnlQcm9wcyIsIkd1aWxkU2VwYXJhdG9yIiwiU2VwYXJhdG9yIiwiZmluZEluUmVhY3RUcmVlIiwiaXNFbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGdCQUFOLENBQXVCO0FBRXRDQyxZQUFVLEdBQUc7QUFDVEMsc0RBQVMsQ0FBQ0MsY0FBVixDQUF5QixLQUFLQyxXQUFMLENBQWlCQyxJQUFqQixDQUFzQixJQUF0QixDQUF6QixFQUFzRCxpQkFBdEQ7QUFDQUgsc0RBQVMsQ0FBQ0MsY0FBVixDQUF5QixLQUFLRyxlQUFMLENBQXFCRCxJQUFyQixDQUEwQixJQUExQixDQUF6QixFQUEwRCxzQkFBMUQ7QUFDQUgsc0RBQVMsQ0FBQ0MsY0FBVixDQUF5QixLQUFLSSxtQkFBTCxDQUF5QkYsSUFBekIsQ0FBOEIsSUFBOUIsQ0FBekIsRUFBOEQsMkJBQTlEO0FBQ0FILHNEQUFTLENBQUNDLGNBQVYsQ0FBeUIsS0FBS0ssbUJBQUwsQ0FBeUJILElBQXpCLENBQThCLElBQTlCLENBQXpCLEVBQThELDBCQUE5RDtBQUNIOztBQUVERCxhQUFXLEdBQUc7QUFDVixRQUFJLEtBQUtLLFdBQVQsRUFBc0I7QUFDdEIsVUFBTUMsTUFBTSxHQUFHQyx1REFBYyxDQUFDQyxnQkFBZixDQUFnQyxRQUFoQyxDQUFmO0FBQ0EsVUFBTUMsTUFBTSxHQUFHRix1REFBYyxDQUFDQyxnQkFBZixDQUFnQyxRQUFoQyxDQUFmO0FBQ0EsUUFBSSxDQUFDRixNQUFELElBQVcsQ0FBQ0csTUFBaEIsRUFBd0I7QUFDeEIsU0FBS0osV0FBTCxHQUFtQkssZ0RBQU8sQ0FBQ0MsS0FBUixDQUFjLGFBQWQsRUFBNkJMLE1BQU0sQ0FBQ00sU0FBcEMsRUFBK0MsUUFBL0Ms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LENBQUMsQ0FBQzVDLElBQUYsQ0FBT0MsV0FBbEIsSUFBaUMsT0FBTzJDLENBQUMsQ0FBQzVDLElBQVQsSUFBa0IsVUFBbkQsSUFBaUVyQixrREFBUyxDQUFDNEUsT0FBVixDQUFrQlgsQ0FBQyxDQUFDOUMsS0FBcEIsQ0FBN0csQ0FBbEI7QUFDQSxVQUFJLENBQUN1RCxTQUFMLEVBQWdCO0FBQ2hCQSxlQUFTLENBQUNyRCxJQUFWLEdBQWlCb0QsY0FBakI7QUFDSCxLQUowQixDQUEzQjtBQUtIOztBQWhGcUMsQ0FBM0IsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2NvbXBvbmVudHBhdGNoZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV2VicGFja01vZHVsZXMgZnJvbSBcIi4vd2VicGFja21vZHVsZXNcIjtcclxuaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBQYXRjaGVyIGZyb20gXCIuL3BhdGNoZXJcIjtcclxuaW1wb3J0IEJETG9nbyBmcm9tIFwiLi4vdWkvaWNvbnMvYmRsb2dvXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ29tcG9uZW50UGF0Y2hlciB7XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBVdGlsaXRpZXMuc3VwcHJlc3NFcnJvcnModGhpcy5wYXRjaFNvY2lhbC5iaW5kKHRoaXMpLCBcIkJEIFNvY2lhbCBQYXRjaFwiKSgpO1xyXG4gICAgICAgIFV0aWxpdGllcy5zdXBwcmVzc0Vycm9ycyh0aGlzLnBhdGNoR3VpbGRQaWxscy5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIFBpbGxzIFBhdGNoXCIpKCk7XHJcbiAgICAgICAgVXRpbGl0aWVzLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZExpc3RJdGVtcy5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIExpc3QgSXRlbXMgUGF0Y2hcIikoKTtcclxuICAgICAgICBVdGlsaXRpZXMuc3VwcHJlc3NFcnJvcnModGhpcy5wYXRjaEd1aWxkU2VwYXJhdG9yLmJpbmQodGhpcyksIFwiQkQgR3VpbGQgU2VwYXJhdG9yIFBhdGNoXCIpKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hTb2NpYWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc29jaWFsUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBUYWJCYXIgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeURpc3BsYXlOYW1lKFwiVGFiQmFyXCIpO1xyXG4gICAgICAgIGNvbnN0IEFuY2hvciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJBbmNob3JcIik7XHJcbiAgICAgICAgaWYgKCFUYWJCYXIgfHwgIUFuY2hvcikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc29jaWFsUGF0Y2ggPSBQYXRjaGVyLmFmdGVyKFwiVGhlbWVIZWxwZXJcIiwgVGFiQmFyLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKF8sIF9fLCByZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHJldHVyblZhbHVlLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDJdLnR5cGUuZGlzcGxheU5hbWUgIT09IFwiU2VwYXJhdG9yXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKCFjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXS50eXBlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJzb2NpYWxMaW5rc1wiKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld09uZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0dXJuVmFsID0gb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgIHJldHVyblZhbC5wcm9wcy5jaGlsZHJlbi5wdXNoKERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5jaG9yLCB7Y2xhc3NOYW1lOiBcImJkLXNvY2lhbC1saW5rXCIsIGhyZWY6IFwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcFwiLCByZWw6IFwiYXV0aG9yXCIsIHRpdGxlOiBcIkJhbmRhZ2VkQkRcIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5SZWFjdC5jcmVhdGVFbGVtZW50KEJETG9nbywge3NpemU6IFwiMTZweFwiLCBjbGFzc05hbWU6IFwiYmQtc29jaWFsLWxvZ29cIn0pXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGUgPSBuZXdPbmU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hHdWlsZExpc3RJdGVtcygpIHtcclxuICAgICAgICBpZiAodGhpcy5ndWlsZExpc3RJdGVtc1BhdGNoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgbGlzdEl0ZW1DbGFzcyA9IERpc2NvcmRNb2R1bGVzLkd1aWxkQ2xhc3Nlcy5saXN0SXRlbS5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3QgYmxvYkNsYXNzID0gRGlzY29yZE1vZHVsZXMuR3VpbGRDbGFzc2VzLmJsb2JDb250YWluZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IHJlYWN0SW5zdGFuY2UgPSBVdGlsaXRpZXMuZ2V0UmVhY3RJbnN0YW5jZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtsaXN0SXRlbUNsYXNzfSAuJHtibG9iQ2xhc3N9YCkucGFyZW50RWxlbWVudCk7XHJcbiAgICAgICAgY29uc3QgR3VpbGRDb21wb25lbnQgPSByZWFjdEluc3RhbmNlLnJldHVybi50eXBlO1xyXG4gICAgICAgIGlmICghR3VpbGRDb21wb25lbnQpIHJldHVybjtcclxuICAgICAgICB0aGlzLmd1aWxkTGlzdEl0ZW1zUGF0Y2ggPSBQYXRjaGVyLmFmdGVyKFwiVGhlbWVIZWxwZXJcIiwgR3VpbGRDb21wb25lbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCwgXywgcmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFyZXR1cm5WYWx1ZSB8fCAhdGhpc09iamVjdCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBndWlsZERhdGEgPSB0aGlzT2JqZWN0LnByb3BzO1xyXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtZ3VpbGRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS51bnJlYWQpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC11bnJlYWRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5zZWxlY3RlZCkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYXVkaW8pIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1hdWRpb1wiO1xyXG4gICAgICAgICAgICBpZiAoZ3VpbGREYXRhLnZpZGVvKSByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtdmlkZW9cIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5iYWRnZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWJhZGdlXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYW5pbWF0YWJsZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWFuaW1hdGFibGVcIjtcclxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoR3VpbGRQaWxscygpIHtcclxuICAgICAgICBpZiAodGhpcy5ndWlsZFBpbGxQYXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkUGlsbCA9IFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uZGVmYXVsdCAmJiAhbS5kZWZhdWx0LmRpc3BsYXlOYW1lICYmIG0uZGVmYXVsdC50b1N0cmluZyAmJiBtLmRlZmF1bHQudG9TdHJpbmcoKS5pbmNsdWRlcyhcInRyYW5zbGF0ZTNkXCIpKTtcclxuICAgICAgICBpZiAoIWd1aWxkUGlsbCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuZ3VpbGRQaWxsUGF0Y2ggPSBQYXRjaGVyLmFmdGVyKFwiVGhlbWVIZWxwZXJcIiwgZ3VpbGRQaWxsLCBcImRlZmF1bHRcIiwgKF8sIGFyZ3MsIHJldHVyblZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gYXJnc1swXTtcclxuICAgICAgICAgICAgaWYgKHByb3BzLnVucmVhZCkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXVucmVhZFwiO1xyXG4gICAgICAgICAgICBpZiAocHJvcHMuc2VsZWN0ZWQpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1zZWxlY3RlZFwiO1xyXG4gICAgICAgICAgICBpZiAocHJvcHMuaG92ZXJlZCkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWhvdmVyZWRcIjtcclxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoR3VpbGRTZXBhcmF0b3IoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VpbGRTZXBhcmF0b3JQYXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IEd1aWxkcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJHdWlsZHNcIik7XHJcbiAgICAgICAgY29uc3QgZ3VpbGRDb21wb25lbnRzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInJlbmRlckxpc3RJdGVtXCIpO1xyXG4gICAgICAgIGlmICghZ3VpbGRDb21wb25lbnRzIHx8ICFHdWlsZHMpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZFNlcGFyYXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGd1aWxkQ29tcG9uZW50cy5TZXBhcmF0b3IoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWd1aWxkLXNlcGFyYXRvclwiO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2ggPSBQYXRjaGVyLmFmdGVyKFwiVGhlbWVIZWxwZXJcIiwgR3VpbGRzLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwgKF8sIF9fLCByZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBTZXBhcmF0b3IgPSBVdGlsaXRpZXMuZmluZEluUmVhY3RUcmVlKHJldHVyblZhbHVlLCBtID0+IG0udHlwZSAmJiAhbS50eXBlLmRpc3BsYXlOYW1lICYmIHR5cGVvZihtLnR5cGUpID09IFwiZnVuY3Rpb25cIiAmJiBVdGlsaXRpZXMuaXNFbXB0eShtLnByb3BzKSk7XHJcbiAgICAgICAgICAgIGlmICghU2VwYXJhdG9yKSByZXR1cm47XHJcbiAgICAgICAgICAgIFNlcGFyYXRvci50eXBlID0gR3VpbGRTZXBhcmF0b3I7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/componentpatcher.js\n");
/***/ }),
/***/ "./src/modules/core.js":
/*!*****************************!*\
!*** ./src/modules/core.js ***!
\*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _localemanager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localemanager */ \"./src/modules/localemanager.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _reactcomponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./reactcomponents */ \"./src/modules/reactcomponents.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _componentpatcher__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./componentpatcher */ \"./src/modules/componentpatcher.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\n\n\n\n\nconst GuildClasses = _discordmodules__WEBPACK_IMPORTED_MODULE_11__[\"default\"].GuildClasses;\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").<br><br> Please download the latest version from <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>GitHub</a>\");\n return;\n }\n\n if (window.ED) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.\");\n return;\n }\n\n if (window.WebSocket && window.WebSocket.name && window.WebSocket.name.includes(\"Patched\")) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with Powercord. Please uninstall one of them.\");\n return;\n } // const latestLocalVersion = Config.updater ? Config.updater.LatestVersion : Config.latestVersion;\n // if (latestLocalVersion > Config.version) {\n // Modals.alert(\"Update Available\", `\n // An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!<br /><br />\n // <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>Download Installer</a>\n // `);\n // }\n\n\n _datastore__WEBPACK_IMPORTED_MODULE_10__[\"default\"].initialize();\n await _localemanager__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"].initialize();\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].initialize();\n await this.waitForGuilds();\n _reactcomponents__WEBPACK_IMPORTED_MODULE_9__[\"default\"].initialize();\n _componentpatcher__WEBPACK_IMPORTED_MODULE_12__[\"default\"].initialize();\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_7__) builtins__WEBPACK_IMPORTED_MODULE_7__[module].initialize();\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove(); // Show loading errors\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].showAddonErrors({\n plugins: pluginErrors,\n themes: themeErrors\n }); // const previousVersion = DataStore.getBDData(\"version\");\n // if (bbdVersion > previousVersion) {\n // if (bbdChangelog) this.showChangelogModal(bbdChangelog);\n // DataStore.setBDData(\"version\", bbdVersion);\n // }\n};\n\nCore.prototype.waitForGuilds = function () {\n let timesChecked = 0;\n return new Promise(resolve => {\n const checkForGuilds = function () {\n timesChecked++;\n if (document.readyState != \"complete\") setTimeout(checkForGuilds, 100);\n const wrapper = GuildClasses.wrapper.split(\" \")[0];\n const guild = GuildClasses.listItem.split(\" \")[0];\n const blob = GuildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);else if (timesChecked >= 50) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n checkForGuilds();\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkd1aWxkQ2xhc3NlcyIsIkRpc2NvcmRNb2R1bGVzIiwiQ29yZSIsInByb3RvdHlwZSIsInNldENvbmZpZyIsImNvbmZpZyIsIk9iamVjdCIsImFzc2lnbiIsIkNvbmZpZyIsImluaXQiLCJ2ZXJzaW9uIiwibWluU3VwcG9ydGVkVmVyc2lvbiIsIk1vZGFscyIsImFsZXJ0IiwiYmJkVmVyc2lvbiIsIndpbmRvdyIsIkVEIiwiV2ViU29ja2V0IiwibmFtZSIsImluY2x1ZGVzIiwiRGF0YVN0b3JlIiwiaW5pdGlhbGl6ZSIsIkxvY2FsZU1hbmFnZXIiLCJMb2dnZXIiLCJsb2ciLCJTZXR0aW5ncyIsIkRPTU1hbmFnZXIiLCJ3YWl0Rm9yR3VpbGRzIiwiUmVhY3RDb21wb25lbnRzIiwiQ29tcG9uZW50UGF0Y2hlciIsIm1vZHVsZSIsIkJ1aWx0aW5zIiwicGx1Z2luRXJyb3JzIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicmVtb3ZlIiwic2hvd0FkZG9uRXJyb3JzIiwicGx1Z2lucyIsInRoZW1lcyIsInRpbWVzQ2hlY2tlZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2hlY2tGb3JHdWlsZHMiLCJyZWFkeVN0YXRlIiwic2V0VGltZW91dCIsIndyYXBwZXIiLCJzcGxpdCIsImd1aWxkIiwibGlzdEl0ZW0iLCJibG9iIiwiYmxvYkNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJkZWZlckxvYWRlZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7Q0FFQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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T0FBTyxHQUFHaEQsWUFBWSxDQUFDZ0QsT0FBYixDQUFxQkMsS0FBckIsQ0FBMkIsR0FBM0IsRUFBZ0MsQ0FBaEMsQ0FBaEI7QUFDQSxZQUFNQyxLQUFLLEdBQUdsRCxZQUFZLENBQUNtRCxRQUFiLENBQXNCRixLQUF0QixDQUE0QixHQUE1QixFQUFpQyxDQUFqQyxDQUFkO0FBQ0EsWUFBTUcsSUFBSSxHQUFHcEQsWUFBWSxDQUFDcUQsYUFBYixDQUEyQkosS0FBM0IsQ0FBaUMsR0FBakMsRUFBc0MsQ0FBdEMsQ0FBYjtBQUNBLFVBQUliLFFBQVEsQ0FBQ2tCLGdCQUFULENBQTJCLElBQUdOLE9BQVEsS0FBSUUsS0FBTSxLQUFJRSxJQUFLLEVBQXpELEVBQTRERyxNQUE1RCxHQUFxRSxDQUF6RSxFQUE0RSxPQUFPWCxPQUFPLENBQUNwQywyQ0FBTSxDQUFDZ0QsV0FBUCxHQUFxQixJQUF0QixDQUFkLENBQTVFLEtBQ0ssSUFBSWQsWUFBWSxJQUFJLEVBQXBCLEVBQXdCLE9BQU9FLE9BQU8sQ0FBQ3BDLDJDQUFNLENBQUNnRCxXQUFQLEdBQXFCLElBQXRCLENBQWQ7QUFDN0JULGdCQUFVLENBQUNGLGNBQUQsRUFBaUIsR0FBakIsQ0FBVjtBQUNILEtBVEQ7O0FBV0FBLGtCQUFjO0FBQ2pCLEdBYk0sQ0FBUDtBQWNILENBaEJEOztBQWtCZSxtRUFBSTNDLElBQUosRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2NvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9jYWxlTWFuYWdlciBmcm9tIFwiLi9sb2NhbGVtYW5hZ2VyXCI7XHJcblxyXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuLy8gaW1wb3J0IEVtb3RlTW9kdWxlIGZyb20gXCIuL2Vtb3Rlc1wiO1xyXG4vLyBpbXBvcnQgUXVpY2tFbW90ZU1lbnUgZnJvbSBcIi4uL2J1aWx0aW5zL2Vtb3RlbWVudVwiO1xyXG5pbXBvcnQgRE9NTWFuYWdlciBmcm9tIFwiLi9kb21tYW5hZ2VyXCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQgKiBhcyBCdWlsdGlucyBmcm9tIFwiYnVpbHRpbnNcIjtcclxuaW1wb3J0IE1vZGFscyBmcm9tIFwiLi4vdWkvbW9kYWxzXCI7XHJcbmltcG9ydCBSZWFjdENvbXBvbmVudHMgZnJvbSBcIi4vcmVhY3Rjb21wb25lbnRzXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBEaXNjb3JkTW9kdWxlcyBmcm9tIFwiLi9kaXNjb3JkbW9kdWxlc1wiO1xyXG5pbXBvcnQgQ29tcG9uZW50UGF0Y2hlciBmcm9tIFwiLi9jb21wb25lbnRwYXRjaGVyXCI7XHJcblxyXG5cclxuY29uc3QgR3VpbGRDbGFzc2VzID0gRGlzY29yZE1vZHVsZXMuR3VpbGRDbGFzc2VzO1xyXG5cclxuZnVuY3Rpb24gQ29yZSgpIHtcclxufVxyXG5cclxuQ29yZS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24oY29uZmlnKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKENvbmZpZywgY29uZmlnKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChDb25maWcudmVyc2lvbiA8IENvbmZpZy5taW5TdXBwb3J0ZWRWZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgQ29uZmlnLnZlcnNpb24gKyBcIiAoeW91ciB2ZXJzaW9uKVwiICsgXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGF0ZXN0IGpzIChcIiArIENvbmZpZy5iYmRWZXJzaW9uICsgXCIpLjxicj48YnI+IFBsZWFzZSBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkdpdEh1YjwvYT5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3cuRUQpIHtcclxuICAgICAgICBNb2RhbHMuYWxlcnQoXCJOb3QgU3VwcG9ydGVkXCIsIFwiQmFuZGFnZWRCRCBkb2VzIG5vdCB3b3JrIHdpdGggRW5oYW5jZWREaXNjb3JkLiBQbGVhc2UgdW5pbnN0YWxsIG9uZSBvZiB0aGVtLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5XZWJTb2NrZXQgJiYgd2luZG93LldlYlNvY2tldC5uYW1lICYmIHdpbmRvdy5XZWJTb2NrZXQubmFtZS5pbmNsdWRlcyhcIlBhdGNoZWRcIikpIHtcclxuICAgICAgICBNb2RhbHMuYWxlcnQoXCJOb3QgU3VwcG9ydGVkXCIsIFwiQmFuZGFnZWRCRCBkb2VzIG5vdCB3b3JrIHdpdGggUG93ZXJjb3JkLiBQbGVhc2UgdW5pbnN0YWxsIG9uZSBvZiB0aGVtLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBjb25zdCBsYXRlc3RMb2NhbFZlcnNpb24gPSBDb25maWcudXBkYXRlciA/IENvbmZpZy51cGRhdGVyLkxhdGVzdFZlcnNpb24gOiBDb25maWcubGF0ZXN0VmVyc2lvbjtcclxuICAgIC8vIGlmIChsYXRlc3RMb2NhbFZlcnNpb24gPiBDb25maWcudmVyc2lvbikge1xyXG4gICAgLy8gICAgIE1vZGFscy5hbGVydChcIlVwZGF0ZSBBdmFpbGFibGVcIiwgYFxyXG4gICAgLy8gICAgICAgICBBbiB1cGRhdGUgZm9yIEJhbmRhZ2VkQkQgaXMgYXZhaWxhYmxlICgke2xhdGVzdExvY2FsVmVyc2lvbn0pISBQbGVhc2UgUmVpbnN0YWxsITxiciAvPjxiciAvPlxyXG4gICAgLy8gICAgICAgICA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkRvd25sb2FkIEluc3RhbGxlcjwvYT5cclxuICAgIC8vICAgICBgKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBEYXRhU3RvcmUuaW5pdGlhbGl6ZSgpO1xyXG4gICAgYXdhaXQgTG9jYWxlTWFuYWdlci5pbml0aWFsaXplKCk7XHJcblxyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIERPTU1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yR3VpbGRzKCk7XHJcbiAgICBSZWFjdENvbXBvbmVudHMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgQ29tcG9uZW50UGF0Y2hlci5pbml0aWFsaXplKCk7XHJcbiAgICBmb3IgKGNvbnN0IG1vZHVsZSBpbiBCdWlsdGlucykgQnVpbHRpbnNbbW9kdWxlXS5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgTG9nZ2VyLmxvZyhcIlN0YXJ0dXBcIiwgXCJMb2FkaW5nIFBsdWdpbnNcIik7XHJcbiAgICBjb25zdCBwbHVnaW5FcnJvcnMgPSBQbHVnaW5NYW5hZ2VyLmluaXRpYWxpemUoKTtcclxuXHJcbiAgICBMb2dnZXIubG9nKFwiU3RhcnR1cFwiLCBcIkxvYWRpbmcgVGhlbWVzXCIpO1xyXG4gICAgY29uc3QgdGhlbWVFcnJvcnMgPSBUaGVtZU1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiUmVtb3ZpbmcgTG9hZGluZyBJY29uXCIpO1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpWzBdLnJlbW92ZSgpO1xyXG5cclxuICAgIC8vIFNob3cgbG9hZGluZyBlcnJvcnNcclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiQ29sbGVjdGluZyBTdGFydHVwIEVycm9yc1wiKTtcclxuICAgIE1vZGFscy5zaG93QWRkb25FcnJvcnMoe3BsdWdpbnM6IHBsdWdpbkVycm9ycywgdGhlbWVzOiB0aGVtZUVycm9yc30pO1xyXG5cclxuICAgIC8vIGNvbnN0IHByZXZpb3VzVmVyc2lvbiA9IERhdGFTdG9yZS5nZXRCRERhdGEoXCJ2ZXJzaW9uXCIpO1xyXG4gICAgLy8gaWYgKGJiZFZlcnNpb24gPiBwcmV2aW91c1ZlcnNpb24pIHtcclxuICAgIC8vICAgICBpZiAoYmJkQ2hhbmdlbG9nKSB0aGlzLnNob3dDaGFuZ2Vsb2dNb2RhbChiYmRDaGFuZ2Vsb2cpO1xyXG4gICAgLy8gICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJ2ZXJzaW9uXCIsIGJiZFZlcnNpb24pO1xyXG4gICAgLy8gfVxyXG59O1xyXG5cclxuQ29yZS5wcm90b3R5cGUud2FpdEZvckd1aWxkcyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgbGV0IHRpbWVzQ2hlY2tlZCA9IDA7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgdGltZXNDaGVja2VkKys7XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9IFwiY29tcGxldGVcIikgc2V0VGltZW91dChjaGVja0Zvckd1aWxkcywgMTAwKTtcclxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IEd1aWxkQ2xhc3Nlcy53cmFwcGVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgZ3VpbGQgPSBHdWlsZENsYXNzZXMubGlzdEl0ZW0uc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBibG9iID0gR3VpbGRDbGFzc2VzLmJsb2JDb250YWluZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7d3JhcHBlcn0gLiR7Z3VpbGR9IC4ke2Jsb2J9YCkubGVuZ3RoID4gMCkgcmV0dXJuIHJlc29sdmUoQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRpbWVzQ2hlY2tlZCA+PSA1MCkgcmV0dXJuIHJlc29sdmUoQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY2hlY2tGb3JHdWlsZHMoKTtcclxuICAgIH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IENvcmUoKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/core.js\n");
/***/ }),
/***/ "./src/modules/datastore.js":
/*!**********************************!*\
!*** ./src/modules/datastore.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel; // Schema\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\n// -> [releaseChannel]\\ (stable/canary/ptb)\n// -> settings.json\n// -> plugins.json\n// -> themes.json\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n constructor() {\n this.data = {\n misc: {}\n };\n this.pluginData = {};\n this.cacheData = {};\n }\n\n initialize() {\n if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder);\n if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder);\n if (!fs.existsSync(this.localeFolder)) fs.mkdirSync(this.localeFolder);\n if (!fs.existsSync(this.emoteFolder)) fs.mkdirSync(this.emoteFolder);\n if (!fs.existsSync(this.cacheFile)) fs.writeFileSync(this.cacheFile, JSON.stringify({}));\n if (!fs.existsSync(this.customCSS)) fs.writeFileSync(this.customCSS, \"\");\n const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(\".json\"));\n\n for (const file of dataFiles) {\n this.data[file.split(\".\")[0]] = require(path.resolve(this.dataFolder, file));\n }\n\n this.cacheData = _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].testJSON(fs.readFileSync(this.cacheFile).toString()) || {};\n }\n\n get customCSS() {\n return this._customCSS || (this._customCSS = path.resolve(this.dataFolder, \"custom.css\"));\n }\n\n get baseFolder() {\n return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\"));\n }\n\n get dataFolder() {\n return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));\n }\n\n get localeFolder() {\n return this._localeFolder || (this._localeFolder = path.resolve(this.baseFolder, `locales`));\n }\n\n get emoteFolder() {\n return this._emoteFolder || (this._emoteFolder = path.resolve(this.baseFolder, `emotes`));\n }\n\n get cacheFile() {\n return this._cacheFile || (this._cacheFile = path.resolve(this.baseFolder, `.cache`));\n }\n\n getPluginFile(pluginName) {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\", pluginName + \".config.json\");\n }\n\n _getFile(key) {\n if (key == \"settings\" || key == \"plugins\" || key == \"themes\") return path.resolve(this.dataFolder, `${key}.json`);\n return path.resolve(this.dataFolder, `misc.json`);\n }\n\n getBDData(key) {\n return this.data.misc[key] || \"\";\n }\n\n setBDData(key, value) {\n this.data.misc[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4));\n }\n\n getLocale(locale) {\n const file = path.resolve(this.localeFolder, `${locale}.json`);\n if (!fs.existsSync(file)) return null;\n return _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].testJSON(fs.readFileSync(file).toString());\n }\n\n saveLocale(locale, strings) {\n fs.writeFileSync(path.resolve(this.localeFolder, `${locale}.json`), JSON.stringify(strings, null, 4));\n }\n\n getCacheHash(category, key) {\n if (!this.cacheData[category]) return \"\";\n if (!fs.existsSync(path.resolve(this.baseFolder, category, `${key}.json`))) return \"\";\n return this.cacheData[category][key] || \"\";\n }\n\n setCacheHash(category, key, hash) {\n if (!this.cacheData[category]) this.cacheData[category] = {};\n this.cacheData[category][key] = hash;\n fs.writeFileSync(this.cacheFile, JSON.stringify(this.cacheData));\n }\n\n invalidateCache(category, key) {\n if (!this.cacheData[category]) return;\n delete this.cacheData[category][key];\n fs.writeFileSync(this.cacheFile, JSON.stringify(this.cacheData));\n }\n\n emotesExist(category) {\n return fs.existsSync(path.resolve(this.emoteFolder, `${category}.json`));\n }\n\n getEmoteData(category) {\n const file = path.resolve(this.emoteFolder, `${category}.json`);\n if (!fs.existsSync(file)) return null;\n return _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].testJSON(fs.readFileSync(file).toString());\n }\n\n saveEmoteData(category, data) {\n fs.writeFileSync(path.resolve(this.emoteFolder, `${category}.json`), JSON.stringify(data));\n }\n\n getData(key) {\n return this.data[key] || \"\";\n }\n\n setData(key, value) {\n this.data[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4));\n }\n\n loadCustomCSS() {\n return fs.readFileSync(this.customCSS).toString();\n }\n\n saveCustomCSS(css) {\n return fs.writeFileSync(this.customCSS, css);\n }\n\n getPluginData(pluginName, key) {\n if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n return this.pluginData[pluginName][key] || undefined;\n }\n\n setPluginData(pluginName, key, value) {\n if (value === undefined) return;\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n this.pluginData[pluginName][key] = value;\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n deletePluginData(pluginName, key) {\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n delete this.pluginData[pluginName][key];\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzPzEwNTIiXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsInJlbGVhc2VDaGFubmVsIiwiRGlzY29yZE5hdGl2ZSIsImdsb2JhbHMiLCJEYXRhU3RvcmUiLCJjb25zdHJ1Y3RvciIsImRhdGEiLCJtaXNjIiwicGx1Z2luRGF0YSIsImNhY2hlRGF0YSIsImluaXRpYWxpemUiLCJleGlzdHNTeW5jIiwiYmFzZUZvbGRlciIsIm1rZGlyU3luYyIsImRhdGFGb2xkZXIiLCJsb2NhbGVGb2xkZXIiLCJlbW90ZUZvbGRlciIsImNhY2hlRmlsZSIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiY3VzdG9tQ1NTIiwiZGF0YUZpbGVzIiwicmVhZGRpclN5bmMiLCJmaWx0ZXIiLCJmIiwic3RhdFN5bmMiLCJyZXNvbHZlIiwiaXNEaXJlY3RvcnkiLCJlbmRzV2l0aCIsImZpbGUiLCJzcGxpdCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiVXRpbGl0aWVzIiwidGVzdEpTT04iLCJyZWFkRmlsZVN5bmMiLCJ0b1N0cmluZyIsIl9jdXN0b21DU1MiLCJfYmFzZUZvbGRlciIsIkNvbmZpZyIsImRhdGFQYXRoIiwiX2RhdGFGb2xkZXIiLCJfbG9jYWxlRm9sZGVyIiwiX2Vtb3RlRm9sZGVyIiwiX2NhY2hlRmlsZSIsImdldFBsdWdpbkZpbGUiLCJwbHVnaW5OYW1lIiwiX2dldEZpbGUiLCJrZXkiLCJnZXRCRERhdGEiLCJzZXRCRERhdGEiLCJ2YWx1ZSIsImdldExvY2FsZSIsImxvY2FsZSIsInNhdmVMb2NhbGUiLCJzdHJpbmdzIiwiZ2V0Q2FjaGVIYXNoIiwiY2F0ZWdvcnkiLCJzZXRDYWNoZUhhc2giLCJoYXNoIiwiaW52YWxpZGF0ZUNhY2hlIiwiZW1vdGVzRXhpc3QiLCJnZXRFbW90ZURhdGEiLCJzYXZlRW1vdGVEYXRhIiwiZ2V0RGF0YSIsInNldERhdGEiLCJsb2FkQ3VzdG9tQ1NTIiwic2F2ZUN1c3RvbUNTUyIsImNzcyIsImdldFBsdWdpbkRhdGEiLCJ1bmRlZmluZWQiLCJwYXJzZSIsInNldFBsdWdpbkRhdGEiLCJkZWxldGVQbHVnaW5EYXRhIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBOztBQUNBLE1BQU1BLEVBQUUsR0FBR0MsbUJBQU8sQ0FBQyxjQUFELENBQWxCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNRSxjQUFjLEdBQUdDLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQkYsY0FBN0MsQyxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWUsbUVBQUksTUFBTUcsU0FBTixDQUFnQjtBQUMvQkMsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsSUFBTCxHQUFZO0FBQUNDLFVBQUksRUFBRTtBQUFQLEtBQVo7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLEVBQWxCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixFQUFqQjtBQUNIOztBQUVEQyxZQUFVLEdBQUc7QUFDVCxRQUFJLENBQUNaLEVBQUUsQ0FBQ2EsVUFBSCxDQUFjLEtBQUtDLFVBQW5CLENBQUwsRUFBcUNkLEVBQUUsQ0FBQ2UsU0FBSCxDQUFhLEtBQUtELFVBQWxCO0FBQ3JDLFFBQUksQ0FBQ2QsRUFBRSxDQUFDYSxVQUFILENBQWMsS0FBS0csVUFBbkIsQ0FBTCxFQUFxQ2hCLEVBQUUsQ0FBQ2UsU0FBSCxDQUFhLEtBQUtDLFVBQWxCO0FBQ3JDLFFBQUksQ0FBQ2hCLEVBQUUsQ0FBQ2EsVUFBSCxDQUFjLEtBQUtJLFlBQW5CLENBQUwsRUFBdUNqQixFQUFFLENBQUNlLFNBQUgsQ0FBYSxLQUFLRSxZQUFsQjtBQUN2QyxRQUFJLENBQUNqQixFQUFFLENBQUNhLFVBQUgsQ0FBYyxLQUFLSyxXQUFuQixDQUFMLEVBQXNDbEIsRUFBRSxDQUFDZSxTQUFILENBQWEsS0FBS0csV0FBbEI7QUFDdEMsUUFBSSxDQUFD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QUFDL0MsU0FBS3RDLFVBQUwsQ0FBZ0JzQyxVQUFoQixFQUE0QkUsR0FBNUIsSUFBbUNHLEtBQW5DO0FBQ0FyRCxNQUFFLENBQUNvQixhQUFILENBQWlCLEtBQUsyQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRDNCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtaLFVBQUwsQ0FBZ0JzQyxVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBRUQyQixrQkFBZ0IsQ0FBQzNCLFVBQUQsRUFBYUUsR0FBYixFQUFrQjtBQUM5QixRQUFJLEtBQUt4QyxVQUFMLENBQWdCc0MsVUFBaEIsTUFBZ0N3QixTQUFwQyxFQUErQyxLQUFLOUQsVUFBTCxDQUFnQnNDLFVBQWhCLElBQThCLEVBQTlCO0FBQy9DLFdBQU8sS0FBS3RDLFVBQUwsQ0FBZ0JzQyxVQUFoQixFQUE0QkUsR0FBNUIsQ0FBUDtBQUNBbEQsTUFBRSxDQUFDb0IsYUFBSCxDQUFpQixLQUFLMkIsYUFBTCxDQUFtQkMsVUFBbkIsQ0FBakIsRUFBaUQzQixJQUFJLENBQUNDLFNBQUwsQ0FBZSxLQUFLWixVQUFMLENBQWdCc0MsVUFBaEIsQ0FBZixFQUE0QyxJQUE1QyxFQUFrRCxDQUFsRCxDQUFqRDtBQUNIOztBQXpIOEIsQ0FBcEIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2RhdGFzdG9yZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5jb25zdCByZWxlYXNlQ2hhbm5lbCA9IERpc2NvcmROYXRpdmUuZ2xvYmFscy5yZWxlYXNlQ2hhbm5lbDtcclxuXHJcbi8vIFNjaGVtYVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAlYXBwZGF0YSVcXEJldHRlckRpc2NvcmRcclxuLy8gICAgIC0+IGRhdGFcclxuLy8gICAgICAgICAtPiBbcmVsZWFzZUNoYW5uZWxdXFwgKHN0YWJsZS9jYW5hcnkvcHRiKVxyXG4vLyAgICAgICAgICAgICAtPiBzZXR0aW5ncy5qc29uXHJcbi8vICAgICAgICAgICAgIC0+IHBsdWdpbnMuanNvblxyXG4vLyAgICAgICAgICAgICAtPiB0aGVtZXMuanNvblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIERhdGFTdG9yZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB7bWlzYzoge319O1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY2FjaGVEYXRhID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5iYXNlRm9sZGVyKSkgZnMubWtkaXJTeW5jKHRoaXMuYmFzZUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZGF0YUZvbGRlcikpIGZzLm1rZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmxvY2FsZUZvbGRlcikpIGZzLm1rZGlyU3luYyh0aGlzLmxvY2FsZUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZW1vdGVGb2xkZXIpKSBmcy5ta2RpclN5bmModGhpcy5lbW90ZUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuY2FjaGVGaWxlKSkgZnMud3JpdGVGaWxlU3luYyh0aGlzLmNhY2hlRmlsZSwgSlNPTi5zdHJpbmdpZnkoe30pKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5jdXN0b21DU1MpKSBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTLCBcIlwiKTtcclxuICAgICAgICBjb25zdCBkYXRhRmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpLmZpbHRlcihmID0+ICFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBmKSkuaXNEaXJlY3RvcnkoKSAmJiBmLmVuZHNXaXRoKFwiLmpzb25cIikpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBkYXRhRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2ZpbGUuc3BsaXQoXCIuXCIpWzBdXSA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGZpbGUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYWNoZURhdGEgPSBVdGlsaXRpZXMudGVzdEpTT04oZnMucmVhZEZpbGVTeW5jKHRoaXMuY2FjaGVGaWxlKS50b1N0cmluZygpKSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3VzdG9tQ1NTKCkge3JldHVybiB0aGlzLl9jdXN0b21DU1MgfHwgKHRoaXMuX2N1c3RvbUNTUyA9IHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIFwiY3VzdG9tLmNzc1wiKSk7fVxyXG4gICAgZ2V0IGJhc2VGb2xkZXIoKSB7cmV0dXJuIHRoaXMuX2Jhc2VGb2xkZXIgfHwgKHRoaXMuX2Jhc2VGb2xkZXIgPSBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcImRhdGFcIikpO31cclxuICAgIGdldCBkYXRhRm9sZGVyKCkge3JldHVybiB0aGlzLl9kYXRhRm9sZGVyIHx8ICh0aGlzLl9kYXRhRm9sZGVyID0gcGF0aC5yZXNvbHZlKHRoaXMuYmFzZUZvbGRlciwgYCR7cmVsZWFzZUNoYW5uZWx9YCkpO31cclxuICAgIGdldCBsb2NhbGVGb2xkZXIoKSB7cmV0dXJuIHRoaXMuX2xvY2FsZUZvbGRlciB8fCAodGhpcy5fbG9jYWxlRm9sZGVyID0gcGF0aC5yZXNvbHZlKHRoaXMuYmFzZUZvbGRlciwgYGxvY2FsZXNgKSk7fVxyXG4gICAgZ2V0IGVtb3RlRm9sZGVyKCkge3JldHVybiB0aGlzLl9lbW90ZUZvbGRlciB8fCAodGhpcy5fZW1vdGVGb2xkZXIgPSBwYXRoLnJlc29sdmUodGhpcy5iYXNlRm9sZGVyLCBgZW1vdGVzYCkpO31cclxuICAgIGdldCBjYWNoZUZpbGUoKSB7cmV0dXJuIHRoaXMuX2NhY2hlRmlsZSB8fCAodGhpcy5fY2FjaGVGaWxlID0gcGF0aC5yZXNvbHZlKHRoaXMuYmFzZUZvbGRlciwgYC5jYWNoZWApKTt9XHJcbiAgICBnZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJwbHVnaW5zXCIsIHBsdWdpbk5hbWUgKyBcIi5jb25maWcuanNvblwiKTt9XHJcblxyXG5cclxuICAgIF9nZXRGaWxlKGtleSkge1xyXG4gICAgICAgIGlmIChrZXkgPT0gXCJzZXR0aW5nc1wiIHx8IGtleSA9PSBcInBsdWdpbnNcIiB8fCBrZXkgPT0gXCJ0aGVtZXNcIikgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGAke2tleX0uanNvbmApO1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgbWlzYy5qc29uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QkREYXRhKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEubWlzY1trZXldIHx8IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QkREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGEubWlzY1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgbWlzYy5qc29uYCksIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YS5taXNjLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9jYWxlKGxvY2FsZSkge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBwYXRoLnJlc29sdmUodGhpcy5sb2NhbGVGb2xkZXIsIGAke2xvY2FsZX0uanNvbmApO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIFV0aWxpdGllcy50ZXN0SlNPTihmcy5yZWFkRmlsZVN5bmMoZmlsZSkudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUxvY2FsZShsb2NhbGUsIHN0cmluZ3MpIHtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmxvY2FsZUZvbGRlciwgYCR7bG9jYWxlfS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHN0cmluZ3MsIG51bGwsIDQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDYWNoZUhhc2goY2F0ZWdvcnksIGtleSkge1xyXG4gICAgICAgIGlmICghdGhpcy5jYWNoZURhdGFbY2F0ZWdvcnldKSByZXR1cm4gXCJcIjtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5yZXNvbHZlKHRoaXMuYmFzZUZvbGRlciwgY2F0ZWdvcnksIGAke2tleX0uanNvbmApKSkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVEYXRhW2NhdGVnb3J5XVtrZXldIHx8IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q2FjaGVIYXNoKGNhdGVnb3J5LCBrZXksIGhhc2gpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2FjaGVEYXRhW2NhdGVnb3J5XSkgdGhpcy5jYWNoZURhdGFbY2F0ZWdvcnldID0ge307XHJcbiAgICAgICAgdGhpcy5jYWNoZURhdGFbY2F0ZWdvcnldW2tleV0gPSBoYXNoO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jYWNoZUZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMuY2FjaGVEYXRhKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW52YWxpZGF0ZUNhY2hlKGNhdGVnb3J5LCBrZXkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2FjaGVEYXRhW2NhdGVnb3J5XSkgcmV0dXJuO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNhY2hlRGF0YVtjYXRlZ29yeV1ba2V5XTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY2FjaGVGaWxlLCBKU09OLnN0cmluZ2lmeSh0aGlzLmNhY2hlRGF0YSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGVtb3Rlc0V4aXN0KGNhdGVnb3J5KSB7XHJcbiAgICAgICAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aC5yZXNvbHZlKHRoaXMuZW1vdGVGb2xkZXIsIGAke2NhdGVnb3J5fS5qc29uYCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEVtb3RlRGF0YShjYXRlZ29yeSkge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBwYXRoLnJlc29sdmUodGhpcy5lbW90ZUZvbGRlciwgYCR7Y2F0ZWdvcnl9Lmpzb25gKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZSkpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBVdGlsaXRpZXMudGVzdEpTT04oZnMucmVhZEZpbGVTeW5jKGZpbGUpLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVFbW90ZURhdGEoY2F0ZWdvcnksIGRhdGEpIHtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmVtb3RlRm9sZGVyLCBgJHtjYXRlZ29yeX0uanNvbmApLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YShrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tleV0gfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEN1c3RvbUNTUygpIHtcclxuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDdXN0b21DU1MoY3NzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZzLndyaXRlRmlsZVN5bmModGhpcy5jdXN0b21DU1MsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5nZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPT09IHVuZGVmaW5lZCkgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/datastore.js\n");
/***/ }),
/***/ "./src/modules/discordmodules.js":
/*!***************************************!*\
!*** ./src/modules/discordmodules.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/**\r\n * A large list of known and useful webpack modules internal to Discord.\r\n *\r\n * @module DiscordModules\r\n * @version 0.0.3\r\n */\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].memoizeObject({\n get React() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"createElement\", \"cloneElement\");\n },\n\n get ReactDOM() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"render\", \"findDOMNode\");\n },\n\n get Flux() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"connectStores\");\n },\n\n get Events() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByPrototypes(\"setMaxListeners\", \"emit\");\n },\n\n /* Guild Info, Stores, and Utilities */\n get GuildStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getGuild\");\n },\n\n get SortedGuildStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getSortedGuilds\");\n },\n\n get SelectedGuildStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getLastSelectedGuildId\");\n },\n\n get GuildSync() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getSyncedGuilds\");\n },\n\n get GuildInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getAcronym\");\n },\n\n get GuildChannelsStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getChannels\", \"getDefaultChannel\");\n },\n\n get GuildMemberStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getMember\");\n },\n\n get MemberCountStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getMemberCounts\");\n },\n\n get GuildEmojiStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getEmojis\");\n },\n\n get GuildActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"markGuildAsRead\");\n },\n\n get GuildPermissions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getGuildPermissions\");\n },\n\n /* Channel Store & Actions */\n get ChannelStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getChannels\", \"getDMFromUserId\");\n },\n\n get SelectedChannelStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getLastSelectedChannelId\");\n },\n\n get ChannelActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"selectChannel\");\n },\n\n get PrivateChannelActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"openPrivateChannel\");\n },\n\n get ChannelSelector() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"selectGuild\", \"selectChannel\");\n },\n\n /* Current User Info, State and Settings */\n get UserInfoStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getToken\");\n },\n\n get UserSettingsStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"guildPositions\");\n },\n\n get AccountManager() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"register\", \"login\");\n },\n\n get UserSettingsUpdater() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"updateRemoteSettings\");\n },\n\n get OnlineWatcher() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isOnline\");\n },\n\n get CurrentUserIdle() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getIdleTime\");\n },\n\n get RelationshipStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isBlocked\", \"getFriendIDs\");\n },\n\n get RelationshipManager() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"addRelationship\");\n },\n\n get MentionStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getMentions\");\n },\n\n /* User Stores and Utils */\n get UserStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getCurrentUser\");\n },\n\n get UserStatusStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getStatus\", \"getState\");\n },\n\n get UserTypingStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isTyping\");\n },\n\n get UserActivityStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getActivity\");\n },\n\n get UserNameResolver() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getName\");\n },\n\n get UserNoteStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getNote\");\n },\n\n get UserNoteActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"updateNote\");\n },\n\n /* Emoji Store and Utils */\n get EmojiInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isEmojiDisabled\");\n },\n\n get EmojiUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getGuildEmoji\");\n },\n\n get EmojiStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getByCategory\", \"EMOJI_NAME_RE\");\n },\n\n /* Invite Store and Utils */\n get InviteStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getInvites\");\n },\n\n get InviteResolver() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"findInvite\");\n },\n\n get InviteActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"acceptInvite\");\n },\n\n /* Discord Objects & Utils */\n get DiscordConstants() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Permissions\", \"ActivityTypes\", \"StatusTypes\");\n },\n\n get DiscordPermissions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Permissions\", \"ActivityTypes\", \"StatusTypes\").Permissions;\n },\n\n get PermissionUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getHighestRole\");\n },\n\n get ColorConverter() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"hex2int\");\n },\n\n get ColorShader() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"darken\");\n },\n\n get TinyColor() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByPrototypes(\"toRgb\");\n },\n\n get ClassResolver() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getClass\");\n },\n\n get ButtonData() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"ButtonSizes\");\n },\n\n get IconNames() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"IconNames\");\n },\n\n get NavigationUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"transitionTo\", \"replaceWith\", \"getHistory\");\n },\n\n /* Discord Messages */\n get MessageStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getMessages\");\n },\n\n get MessageActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"jumpToMessage\", \"_sendMessage\");\n },\n\n get MessageQueue() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"enqueue\");\n },\n\n get MessageParser() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"createMessage\", \"parse\", \"unparse\");\n },\n\n /* Text Processing */\n get hljs() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"highlight\", \"highlightBlock\");\n },\n\n get SimpleMarkdown() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"parseBlock\", \"parseInline\", \"defaultOutput\");\n },\n\n /* Experiments */\n get ExperimentStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getExperimentOverrides\");\n },\n\n get ExperimentsManager() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isDeveloper\");\n },\n\n get CurrentExperiment() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getExperimentId\");\n },\n\n /* Images, Avatars and Utils */\n get ImageResolver() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getUserAvatarURL\", \"getGuildIconURL\");\n },\n\n get ImageUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getSizedImageSrc\");\n },\n\n get AvatarDefaults() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\n },\n\n /* Window, DOM, HTML */\n get WindowInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"isFocused\", \"windowSize\");\n },\n\n get TagInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"VALID_TAG_NAMES\");\n },\n\n get DOMInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"canUseDOM\");\n },\n\n /* Locale/Location and Time */\n get LocaleManager() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"setLocale\");\n },\n\n get Moment() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"parseZone\");\n },\n\n get LocationManager() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"createLocation\");\n },\n\n get Timestamps() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"fromTimestamp\");\n },\n\n get TimeFormatter() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"dateFormat\");\n },\n\n /* Strings and Utils */\n get Strings() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Messages\").Messages;\n },\n\n get StringFormats() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"a\", \"z\");\n },\n\n get StringUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"toASCII\");\n },\n\n /* URLs and Utils */\n get URLParser() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Url\", \"parse\");\n },\n\n get ExtraURLs() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getArticleURL\");\n },\n\n /* Drag & Drop */\n get DNDActions() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"beginDrag\");\n },\n\n get DNDSources() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"addTarget\");\n },\n\n get DNDObjects() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"DragSource\");\n },\n\n /* Media Stuff (Audio/Video) */\n get MediaDeviceInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Codecs\", \"SUPPORTED_BROWSERS\");\n },\n\n get MediaInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getOutputVolume\");\n },\n\n get MediaEngineInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"MediaEngineFeatures\");\n },\n\n get VoiceInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"EchoCancellation\");\n },\n\n get VideoStream() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getVideoStream\");\n },\n\n get SoundModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"playSound\");\n },\n\n /* Electron & Other Internals with Utils*/\n get ElectronModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"setBadge\");\n },\n\n get Dispatcher() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"dirtyDispatch\");\n },\n\n get PathUtils() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"hasBasename\");\n },\n\n get NotificationModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"showNotification\");\n },\n\n get RouterModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Router\");\n },\n\n get APIModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getAPIBaseURL\");\n },\n\n get AnalyticEvents() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"AnalyticEventConfigs\");\n },\n\n get KeyGenerator() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByRegex(/\"binary\"/);\n },\n\n get Buffers() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"Buffer\", \"kMaxLength\");\n },\n\n get DeviceStore() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"getDevices\");\n },\n\n get SoftwareInfo() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"os\");\n },\n\n get CurrentContext() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"setTagsContext\");\n },\n\n /* Commonly Used Classes */\n get GuildClasses() {\n const guildsWrapper = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"wrapper\", \"unreadMentionsBar\");\n const guilds = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"guildsError\", \"selected\");\n const pill = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(\"blobContainer\");\n return Object.assign({}, guildsWrapper, guilds, pill);\n }\n\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGlzY29yZG1vZHVsZXMuanM/YTU0ZCJdLCJuYW1lcyI6WyJVdGlsaXRpZXMiLCJtZW1vaXplT2JqZWN0IiwiUmVhY3QiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5UHJvcHMiLCJSZWFjdERPTSIsIkZsdXgiLCJFdmVudHMiLCJnZXRCeVByb3RvdHlwZXMiLCJHdWlsZFN0b3JlIiwiU29ydGVkR3VpbGRTdG9yZSIsIlNlbGVjdGVkR3VpbGRTdG9yZSIsIkd1aWxkU3luYyIsIkd1aWxkSW5mbyIsIkd1aWxkQ2hhbm5lbHNTdG9yZSIsIkd1aWxkTWVtYmVyU3RvcmUiLCJNZW1iZXJDb3VudFN0b3JlIiwiR3VpbGRFbW9qaVN0b3JlIiwiR3VpbGRBY3Rpb25zIiwiR3VpbGRQZXJtaXNzaW9ucyIsIkNoYW5uZWxTdG9yZSIsIlNlbGVjdGVkQ2hhbm5lbFN0b3JlIiwiQ2hhbm5lbEFjdGlvbnMiLCJQcml2YXRlQ2hhbm5lbEFjdGlvbnMiLCJDaGFubmVsU2VsZWN0b3IiLCJVc2VySW5mb1N0b3JlIiwiVXNlclNldHRpbmdzU3RvcmUiLCJBY2NvdW50TWFuYWdlciIsIlVzZXJTZXR0aW5nc1VwZGF0ZXIiLCJPbmxpbmVXYXRjaGVyIiwiQ3VycmVudFVzZXJJZGxlIiwiUmVsYXRpb25zaGlwU3RvcmUiLCJSZWxhdGlvbnNoaXBNYW5hZ2VyIiwiTWVudGlvblN0b3JlIiwiVXNlclN0b3JlIiwiVXNlclN0YXR1c1N0b3JlIiwiVXNlclR5cGluZ1N0b3JlIiwiVXNlckFjdGl2aXR5U3RvcmUiLCJVc2VyTmFtZVJlc29sdmVyIiwiVXNlck5vdGVTdG9yZSIsIlVzZXJOb3RlQWN0aW9ucyIsIkVtb2ppSW5mbyIsIkVtb2ppVXRpbHMiLCJFbW9qaVN0b3JlIiwiSW52aXRlU3RvcmUiLCJJbnZpdGVSZXNvbHZlciIsIkludml0ZUFjdGlvbnMiLCJEaXNjb3JkQ29uc3RhbnRzIiwiRGlzY29yZFBlcm1pc3Npb25zIiwiUGVybWlzc2lvbnMiLCJQZXJtaXNzaW9uVXRpbHMiLCJDb2xvckNvbnZlcnRlciIsIkNvbG9yU2hhZGVyIiwiVGlueUNvbG9yIiwiQ2xhc3NSZXNvbHZlciIsIkJ1dHRvbkRhdGEiLCJJY29uTmFtZXMiLCJOYXZpZ2F0aW9uVXRpbHMiLCJNZXNzYWdlU3RvcmUiLCJNZXNzYWdlQWN0aW9ucyIsIk1lc3NhZ2VRdWV1ZSIsIk1lc3NhZ2VQYXJzZXIiLCJobGpzIiwiU2ltcGxlTWFya2Rvd24iLCJFeHBlcmltZW50U3RvcmUiLCJFeHBlcmltZW50c01hbmFnZXIiLCJDdXJyZW50RXhwZXJpbWVudCIsIkltYWdlUmVzb2x2ZXIiLCJJbWFnZVV0aWxzIiwiQXZhdGFyRGVmYXVsdHMiLCJXaW5kb3dJbmZvIiwiVGFnSW5mbyIsIkRPTUluZm8iLCJMb2NhbGVNYW5hZ2VyIiwiTW9tZW50IiwiTG9jYXRpb25NYW5hZ2VyIiwiVGltZXN0YW1wcyIsIlRpbWVGb3JtYXR0ZXIiLCJTdHJpbmdzIiwiTWVzc2FnZXMiLCJTdHJpbmdGb3JtYXRzIiwiU3RyaW5nVXRpbHMiLCJVUkxQYXJzZXIiLCJFeHRyYVVSTHMiLCJETkRBY3Rpb25zIiwiRE5EU291cmNlcyIsIkRORE9iamVjdHMiLCJNZWRpYURldmljZUluZm8iLCJNZWRpYUluZm8iLCJNZWRpYUVuZ2luZUluZm8iLCJWb2ljZUluZm8iLCJWaWRlb1N0cmVhbSIsIlNvdW5kTW9kdWxlIiwiRWxlY3Ryb25Nb2R1bGUiLCJEaXNwYXRjaGVyIiwiUGF0aFV0aWxzIiwiTm90aWZpY2F0aW9uTW9kdWxlIiwiUm91dGVyTW9kdWxlIiwiQVBJTW9kdWxlIiwiQW5hbHl0aWNFdmVudHMiLCJLZXlHZW5lcmF0b3IiLCJnZXRCeVJlZ2V4IiwiQnVmZmVycyIsIkRldmljZVN0b3JlIiwiU29mdHdhcmVJbmZvIiwiQ3VycmVudENvbnRleHQiLCJHdWlsZENsYXNzZXMiLCJndWlsZHNXcmFwcGVyIiwiZ3VpbGRzIiwicGlsbCIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFB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QyxDQUFmO0FBQ0EsVUFBTXlHLElBQUksR0FBRzFHLHVEQUFjLENBQUNDLFVBQWYsQ0FBMEIsZUFBMUIsQ0FBYjtBQUNBLFdBQU8wRyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSixhQUFsQixFQUFpQ0MsTUFBakMsRUFBeUNDLElBQXpDLENBQVA7QUFDTjs7QUE5SXFDLENBQXhCLENBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9kaXNjb3JkbW9kdWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBIGxhcmdlIGxpc3Qgb2Yga25vd24gYW5kIHVzZWZ1bCB3ZWJwYWNrIG1vZHVsZXMgaW50ZXJuYWwgdG8gRGlzY29yZC5cclxuICpcclxuICogQG1vZHVsZSBEaXNjb3JkTW9kdWxlc1xyXG4gKiBAdmVyc2lvbiAwLjAuM1xyXG4gKi9cclxuXHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcyBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVXRpbGl0aWVzLm1lbW9pemVPYmplY3Qoe1xyXG4gICAgZ2V0IFJlYWN0KCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY3JlYXRlRWxlbWVudFwiLCBcImNsb25lRWxlbWVudFwiKTt9LFxyXG4gICAgZ2V0IFJlYWN0RE9NKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicmVuZGVyXCIsIFwiZmluZERPTU5vZGVcIik7fSxcclxuICAgIGdldCBGbHV4KCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY29ubmVjdFN0b3Jlc1wiKTt9LFxyXG4gICAgZ2V0IEV2ZW50cygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwic2V0TWF4TGlzdGVuZXJzXCIsIFwiZW1pdFwiKTt9LFxyXG5cclxuICAgIC8qIEd1aWxkIEluZm8sIFN0b3JlcywgYW5kIFV0aWxpdGllcyAqL1xyXG4gICAgZ2V0IEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRHdWlsZFwiKTt9LFxyXG4gICAgZ2V0IFNvcnRlZEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRTb3J0ZWRHdWlsZHNcIik7fSxcclxuICAgIGdldCBTZWxlY3RlZEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRMYXN0U2VsZWN0ZWRHdWlsZElkXCIpO30sXHJcbiAgICBnZXQgR3VpbGRTeW5jKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U3luY2VkR3VpbGRzXCIpO30sXHJcbiAgICBnZXQgR3VpbGRJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QWNyb255bVwiKTt9LFxyXG4gICAgZ2V0IEd1aWxkQ2hhbm5lbHNTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldENoYW5uZWxzXCIsIFwiZ2V0RGVmYXVsdENoYW5uZWxcIik7fSxcclxuICAgIGdldCBHdWlsZE1lbWJlclN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0TWVtYmVyXCIpO30sXHJcbiAgICBnZXQgTWVtYmVyQ291bnRTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE1lbWJlckNvdW50c1wiKTt9LFxyXG4gICAgZ2V0IEd1aWxkRW1vamlTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldEVtb2ppc1wiKTt9LFxyXG4gICAgZ2V0IEd1aWxkQWN0aW9ucygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIm1hcmtHdWlsZEFzUmVhZFwiKTt9LFxyXG4gICAgZ2V0IEd1aWxkUGVybWlzc2lvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRHdWlsZFBlcm1pc3Npb25zXCIpO30sXHJcblxyXG4gICAgLyogQ2hhbm5lbCBTdG9yZSAmIEFjdGlvbnMgKi9cclxuICAgIGdldCBDaGFubmVsU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRDaGFubmVsc1wiLCBcImdldERNRnJvbVVzZXJJZFwiKTt9LFxyXG4gICAgZ2V0IFNlbGVjdGVkQ2hhbm5lbFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0TGFzdFNlbGVjdGVkQ2hhbm5lbElkXCIpO30sXHJcbiAgICBnZXQgQ2hhbm5lbEFjdGlvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZWxlY3RDaGFubmVsXCIpO30sXHJcbiAgICBnZXQgUHJpdmF0ZUNoYW5uZWxBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwib3BlblByaXZhdGVDaGFubmVsXCIpO30sXHJcbiAgICBnZXQgQ2hhbm5lbFNlbGVjdG9yKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic2VsZWN0R3VpbGRcIiwgXCJzZWxlY3RDaGFubmVsXCIpO30sXHJcblxyXG4gICAgLyogQ3VycmVudCBVc2VyIEluZm8sIFN0YXRlIGFuZCBTZXR0aW5ncyAqL1xyXG4gICAgZ2V0IFVzZXJJbmZvU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRUb2tlblwiKTt9LFxyXG4gICAgZ2V0IFVzZXJTZXR0aW5nc1N0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ3VpbGRQb3NpdGlvbnNcIik7fSxcclxuICAgIGdldCBBY2NvdW50TWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInJlZ2lzdGVyXCIsIFwibG9naW5cIik7fSxcclxuICAgIGdldCBVc2VyU2V0dGluZ3NVcGRhdGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwidXBkYXRlUmVtb3RlU2V0dGluZ3NcIik7fSxcclxuICAgIGdldCBPbmxpbmVXYXRjaGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNPbmxpbmVcIik7fSxcclxuICAgIGdldCBDdXJyZW50VXNlcklkbGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRJZGxlVGltZVwiKTt9LFxyXG4gICAgZ2V0IFJlbGF0aW9uc2hpcFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNCbG9ja2VkXCIsIFwiZ2V0RnJpZW5kSURzXCIpO30sXHJcbiAgICBnZXQgUmVsYXRpb25zaGlwTWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFkZFJlbGF0aW9uc2hpcFwiKTt9LFxyXG4gICAgZ2V0IE1lbnRpb25TdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE1lbnRpb25zXCIpO30sXHJcblxyXG4gICAgLyogVXNlciBTdG9yZXMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgVXNlclN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0Q3VycmVudFVzZXJcIik7fSxcclxuICAgIGdldCBVc2VyU3RhdHVzU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRTdGF0dXNcIiwgXCJnZXRTdGF0ZVwiKTt9LFxyXG4gICAgZ2V0IFVzZXJUeXBpbmdTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzVHlwaW5nXCIpO30sXHJcbiAgICBnZXQgVXNlckFjdGl2aXR5U3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRBY3Rpdml0eVwiKTt9LFxyXG4gICAgZ2V0IFVzZXJOYW1lUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXROYW1lXCIpO30sXHJcbiAgICBnZXQgVXNlck5vdGVTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE5vdGVcIik7fSxcclxuICAgIGdldCBVc2VyTm90ZUFjdGlvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ1cGRhdGVOb3RlXCIpO30sXHJcblxyXG4gICAgLyogRW1vamkgU3RvcmUgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgRW1vamlJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNFbW9qaURpc2FibGVkXCIpO30sXHJcbiAgICBnZXQgRW1vamlVdGlscygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldEd1aWxkRW1vamlcIik7fSxcclxuICAgIGdldCBFbW9qaVN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QnlDYXRlZ29yeVwiLCBcIkVNT0pJX05BTUVfUkVcIik7fSxcclxuXHJcbiAgICAvKiBJbnZpdGUgU3RvcmUgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgSW52aXRlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRJbnZpdGVzXCIpO30sXHJcbiAgICBnZXQgSW52aXRlUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmaW5kSW52aXRlXCIpO30sXHJcbiAgICBnZXQgSW52aXRlQWN0aW9ucygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFjY2VwdEludml0ZVwiKTt9LFxyXG5cclxuICAgIC8qIERpc2NvcmQgT2JqZWN0cyAmIFV0aWxzICovXHJcbiAgICBnZXQgRGlzY29yZENvbnN0YW50cygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIlBlcm1pc3Npb25zXCIsIFwiQWN0aXZpdHlUeXBlc1wiLCBcIlN0YXR1c1R5cGVzXCIpO30sXHJcbiAgICBnZXQgRGlzY29yZFBlcm1pc3Npb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiUGVybWlzc2lvbnNcIiwgXCJBY3Rpdml0eVR5cGVzXCIsIFwiU3RhdHVzVHlwZXNcIikuUGVybWlzc2lvbnM7fSxcclxuICAgIGdldCBQZXJtaXNzaW9uVXRpbHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRIaWdoZXN0Um9sZVwiKTt9LFxyXG4gICAgZ2V0IENvbG9yQ29udmVydGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaGV4MmludFwiKTt9LFxyXG4gICAgZ2V0IENvbG9yU2hhZGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGFya2VuXCIpO30sXHJcbiAgICBnZXQgVGlueUNvbG9yKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3RvdHlwZXMoXCJ0b1JnYlwiKTt9LFxyXG4gICAgZ2V0IENsYXNzUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRDbGFzc1wiKTt9LFxyXG4gICAgZ2V0IEJ1dHRvbkRhdGEoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJCdXR0b25TaXplc1wiKTt9LFxyXG4gICAgZ2V0IEljb25OYW1lcygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIkljb25OYW1lc1wiKTt9LFxyXG4gICAgZ2V0IE5hdmlnYXRpb25VdGlscygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInRyYW5zaXRpb25Ub1wiLCBcInJlcGxhY2VXaXRoXCIsIFwiZ2V0SGlzdG9yeVwiKTt9LFxyXG5cclxuICAgIC8qIERpc2NvcmQgTWVzc2FnZXMgKi9cclxuICAgIGdldCBNZXNzYWdlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRNZXNzYWdlc1wiKTt9LFxyXG4gICAgZ2V0IE1lc3NhZ2VBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwianVtcFRvTWVzc2FnZVwiLCBcIl9zZW5kTWVzc2FnZVwiKTt9LFxyXG4gICAgZ2V0IE1lc3NhZ2VRdWV1ZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImVucXVldWVcIik7fSxcclxuICAgIGdldCBNZXNzYWdlUGFyc2VyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY3JlYXRlTWVzc2FnZVwiLCBcInBhcnNlXCIsIFwidW5wYXJzZVwiKTt9LFxyXG5cclxuICAgIC8qIFRleHQgUHJvY2Vzc2luZyAqL1xyXG4gICAgZ2V0IGhsanMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJoaWdobGlnaHRcIiwgXCJoaWdobGlnaHRCbG9ja1wiKTt9LFxyXG4gICAgZ2V0IFNpbXBsZU1hcmtkb3duKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicGFyc2VCbG9ja1wiLCBcInBhcnNlSW5saW5lXCIsIFwiZGVmYXVsdE91dHB1dFwiKTt9LFxyXG5cclxuICAgIC8qIEV4cGVyaW1lbnRzICovXHJcbiAgICBnZXQgRXhwZXJpbWVudFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0RXhwZXJpbWVudE92ZXJyaWRlc1wiKTt9LFxyXG4gICAgZ2V0IEV4cGVyaW1lbnRzTWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzRGV2ZWxvcGVyXCIpO30sXHJcbiAgICBnZXQgQ3VycmVudEV4cGVyaW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRFeHBlcmltZW50SWRcIik7fSxcclxuXHJcbiAgICAvKiBJbWFnZXMsIEF2YXRhcnMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgSW1hZ2VSZXNvbHZlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldFVzZXJBdmF0YXJVUkxcIiwgXCJnZXRHdWlsZEljb25VUkxcIik7fSxcclxuICAgIGdldCBJbWFnZVV0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U2l6ZWRJbWFnZVNyY1wiKTt9LFxyXG4gICAgZ2V0IEF2YXRhckRlZmF1bHRzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0VXNlckF2YXRhclVSTFwiLCBcIkRFRkFVTFRfQVZBVEFSU1wiKTt9LFxyXG5cclxuICAgIC8qIFdpbmRvdywgRE9NLCBIVE1MICovXHJcbiAgICBnZXQgV2luZG93SW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzRm9jdXNlZFwiLCBcIndpbmRvd1NpemVcIik7fSxcclxuICAgIGdldCBUYWdJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiVkFMSURfVEFHX05BTUVTXCIpO30sXHJcbiAgICBnZXQgRE9NSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImNhblVzZURPTVwiKTt9LFxyXG5cclxuICAgIC8qIExvY2FsZS9Mb2NhdGlvbiBhbmQgVGltZSAqL1xyXG4gICAgZ2V0IExvY2FsZU1hbmFnZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZXRMb2NhbGVcIik7fSxcclxuICAgIGdldCBNb21lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJwYXJzZVpvbmVcIik7fSxcclxuICAgIGdldCBMb2NhdGlvbk1hbmFnZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJjcmVhdGVMb2NhdGlvblwiKTt9LFxyXG4gICAgZ2V0IFRpbWVzdGFtcHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmcm9tVGltZXN0YW1wXCIpO30sXHJcbiAgICBnZXQgVGltZUZvcm1hdHRlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImRhdGVGb3JtYXRcIik7fSxcclxuXHJcbiAgICAvKiBTdHJpbmdzIGFuZCBVdGlscyAqL1xyXG4gICAgZ2V0IFN0cmluZ3MoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJNZXNzYWdlc1wiKS5NZXNzYWdlczt9LFxyXG4gICAgZ2V0IFN0cmluZ0Zvcm1hdHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJhXCIsIFwielwiKTt9LFxyXG4gICAgZ2V0IFN0cmluZ1V0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwidG9BU0NJSVwiKTt9LFxyXG5cclxuICAgIC8qIFVSTHMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgVVJMUGFyc2VyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiVXJsXCIsIFwicGFyc2VcIik7fSxcclxuICAgIGdldCBFeHRyYVVSTHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRBcnRpY2xlVVJMXCIpO30sXHJcblxyXG4gICAgLyogRHJhZyAmIERyb3AgKi9cclxuICAgIGdldCBETkRBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmVnaW5EcmFnXCIpO30sXHJcbiAgICBnZXQgRE5EU291cmNlcygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFkZFRhcmdldFwiKTt9LFxyXG4gICAgZ2V0IERORE9iamVjdHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJEcmFnU291cmNlXCIpO30sXHJcblxyXG4gICAgLyogTWVkaWEgU3R1ZmYgKEF1ZGlvL1ZpZGVvKSAqL1xyXG4gICAgZ2V0IE1lZGlhRGV2aWNlSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIkNvZGVjc1wiLCBcIlNVUFBPUlRFRF9CUk9XU0VSU1wiKTt9LFxyXG4gICAgZ2V0IE1lZGlhSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE91dHB1dFZvbHVtZVwiKTt9LFxyXG4gICAgZ2V0IE1lZGlhRW5naW5lSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIk1lZGlhRW5naW5lRmVhdHVyZXNcIik7fSxcclxuICAgIGdldCBWb2ljZUluZm8oKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJFY2hvQ2FuY2VsbGF0aW9uXCIpO30sXHJcbiAgICBnZXQgVmlkZW9TdHJlYW0oKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRWaWRlb1N0cmVhbVwiKTt9LFxyXG4gICAgZ2V0IFNvdW5kTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicGxheVNvdW5kXCIpO30sXHJcblxyXG4gICAgLyogRWxlY3Ryb24gJiBPdGhlciBJbnRlcm5hbHMgd2l0aCBVdGlscyovXHJcbiAgICBnZXQgRWxlY3Ryb25Nb2R1bGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZXRCYWRnZVwiKTt9LFxyXG4gICAgZ2V0IERpc3BhdGNoZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJkaXJ0eURpc3BhdGNoXCIpO30sXHJcbiAgICBnZXQgUGF0aFV0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaGFzQmFzZW5hbWVcIik7fSxcclxuICAgIGdldCBOb3RpZmljYXRpb25Nb2R1bGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaG93Tm90aWZpY2F0aW9uXCIpO30sXHJcbiAgICBnZXQgUm91dGVyTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiUm91dGVyXCIpO30sXHJcbiAgICBnZXQgQVBJTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QVBJQmFzZVVSTFwiKTt9LFxyXG4gICAgZ2V0IEFuYWx5dGljRXZlbnRzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiQW5hbHl0aWNFdmVudENvbmZpZ3NcIik7fSxcclxuICAgIGdldCBLZXlHZW5lcmF0b3IoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UmVnZXgoL1wiYmluYXJ5XCIvKTt9LFxyXG4gICAgZ2V0IEJ1ZmZlcnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJCdWZmZXJcIiwgXCJrTWF4TGVuZ3RoXCIpO30sXHJcbiAgICBnZXQgRGV2aWNlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXREZXZpY2VzXCIpO30sXHJcbiAgICBnZXQgU29mdHdhcmVJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwib3NcIik7fSxcclxuICAgIGdldCBDdXJyZW50Q29udGV4dCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInNldFRhZ3NDb250ZXh0XCIpO30sXHJcblxyXG4gICAgLyogQ29tbW9ubHkgVXNlZCBDbGFzc2VzICovXHJcbiAgICBnZXQgR3VpbGRDbGFzc2VzKCkge1xyXG5cdFx0Y29uc3QgZ3VpbGRzV3JhcHBlciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ3cmFwcGVyXCIsIFwidW5yZWFkTWVudGlvbnNCYXJcIik7XHJcbiAgICAgICAgY29uc3QgZ3VpbGRzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImd1aWxkc0Vycm9yXCIsIFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgY29uc3QgcGlsbCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJibG9iQ29udGFpbmVyXCIpO1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBndWlsZHNXcmFwcGVyLCBndWlsZHMsIHBpbGwpO1xyXG5cdH1cclxufSk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/discordmodules.js\n");
/***/ }),
/***/ "./src/modules/dommanager.js":
/*!***********************************!*\
!*** ./src/modules/dommanager.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DOMManager; });\nclass DOMManager {\n static get bdHead() {\n return this.getElement(\"bd-head\");\n }\n\n static get bdBody() {\n return this.getElement(\"bd-body\");\n }\n\n static get bdScripts() {\n return this.getElement(\"bd-scripts\");\n }\n\n static get bdStyles() {\n return this.getElement(\"bd-styles\");\n }\n\n static get bdThemes() {\n return this.getElement(\"bd-themes\");\n }\n\n static get bdCustomCSS() {\n return this.getElement(\"#customcss\");\n } // static get bdTooltips() { return this.getElement(\"bd-tooltips\") || this.createElement(\"bd-tooltips\").appendTo(this.bdBody); }\n // static get bdModals() { return this.getElement(\"bd-modals\") || this.createElement(\"bd-modals\").appendTo(this.bdBody); }\n // static get bdToasts() { return this.getElement(\"bd-toasts\") || this.createElement(\"bd-toasts\").appendTo(this.bdBody); }\n\n\n static initialize() {\n this.createElement(\"bd-head\", {\n target: document.head\n });\n this.createElement(\"bd-body\", {\n target: document.body\n });\n this.createElement(\"bd-scripts\", {\n target: this.bdHead\n });\n this.createElement(\"bd-styles\", {\n target: this.bdHead\n });\n this.createElement(\"bd-themes\", {\n target: this.bdHead\n });\n this.createElement(\"style\", {\n id: \"customcss\",\n target: this.bdHead\n });\n }\n\n static escapeID(id) {\n return id.replace(/^[^a-z]+|[^\\w-]+/gi, \"-\");\n }\n\n static getElement(e, baseElement = document) {\n if (e instanceof Node) return e;\n return baseElement.querySelector(e);\n }\n\n static createElement(tag, options = {}) {\n const {\n className,\n id,\n target\n } = options;\n const element = document.createElement(tag);\n if (className) element.className = className;\n if (id) element.id = id;\n if (target) this.getElement(target).append(element);\n return element;\n }\n\n static removeStyle(id) {\n id = this.escapeID(id);\n const exists = this.getElement(`#${id}`, this.bdStyles);\n if (exists) exists.remove();\n }\n\n static injectStyle(id, css) {\n id = this.escapeID(id);\n const style = this.getElement(`#${id}`, this.bdStyles) || this.createElement(\"style\", {\n id\n });\n style.textContent = css;\n this.bdStyles.append(style);\n }\n\n static removeTheme(id) {\n id = this.escapeID(id);\n const exists = this.getElement(`#${id}`, this.bdThemes);\n if (exists) exists.remove();\n }\n\n static injectTheme(id, css) {\n id = this.escapeID(id);\n const style = this.getElement(`#${id}`, this.bdThemes) || this.createElement(\"style\", {\n id\n });\n style.textContent = css;\n this.bdThemes.append(style);\n }\n\n static updateCustomCSS(css) {\n this.bdCustomCSS.textContent = css;\n }\n\n static removeScript(id) {\n id = this.escapeID(id);\n const exists = this.getElement(`#${id}`, this.bdScripts);\n if (exists) exists.remove();\n }\n\n static injectScript(id, url) {\n id = this.escapeID(id);\n return new Promise(resolve => {\n const script = this.getElement(`#${id}`, this.bdScripts) || this.createElement(\"script\", {\n id\n });\n script.src = url;\n script.onload = resolve;\n this.bdScripts.append(script);\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZG9tbWFuYWdlci5qcz9jZDVjIl0sIm5hbWVzIjpbIkRPTU1hbmFnZXIiLCJiZEhlYWQiLCJnZXRFbGVtZW50IiwiYmRCb2R5IiwiYmRTY3JpcHRzIiwiYmRTdHlsZXMiLCJiZFRoZW1lcyIsImJkQ3VzdG9tQ1NTIiwiaW5pdGlhbGl6ZSIsImNyZWF0ZUVsZW1lbnQiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImhlYWQiLCJib2R5IiwiaWQiLCJlc2NhcGVJRCIsInJlcGxhY2UiLCJlIiwiYmFzZUVsZW1lbnQiLCJOb2RlIiwicXVlcnlTZWxlY3RvciIsInRhZyIsIm9wdGlvbnMiLCJjbGFzc05hbWUiLCJlbGVtZW50IiwiYXBwZW5kIiwicmVtb3ZlU3R5bGUiLCJleGlzdHMiLCJyZW1vdmUiLCJpbmplY3RTdHlsZSIsImNzcyIsInN0eWxlIiwidGV4dENvbnRlbnQiLCJyZW1vdmVUaGVtZSIsImluamVjdFRoZW1lIiwidXBkYXRlQ3VzdG9tQ1NTIiwicmVtb3ZlU2NyaXB0IiwiaW5qZWN0U2NyaXB0IiwidXJsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzY3JpcHQiLCJzcmMiLCJvbmxvYWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBZSxNQUFNQSxVQUFOLENBQWlCO0FBRTVCLGFBQVdDLE1BQVgsR0FBb0I7QUFBQyxXQUFPLEtBQUtDLFVBQUwsQ0FBZ0IsU0FBaEIsQ0FBUDtBQUFtQzs7QUFDeEQsYUFBV0MsTUFBWCxHQUFvQjtBQUFDLFdBQU8sS0FBS0QsVUFBTCxDQUFnQixTQUFoQixDQUFQO0FBQW1DOztBQUN4RCxhQUFXRSxTQUFYLEdBQXVCO0FBQUMsV0FBTyxLQUFLRixVQUFMLENBQWdCLFlBQWhCLENBQVA7QUFBc0M7O0FBQzlELGFBQVdHLFFBQVgsR0FBc0I7QUFBQyxXQUFPLEtBQUtILFVBQUwsQ0FBZ0IsV0FBaEIsQ0FBUDtBQUFxQzs7QUFDNUQsYUFBV0ksUUFBWCxHQUFzQjtBQUFDLFdB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VUFBTCxDQUFpQixJQUFHWSxFQUFHLEVBQXZCLEVBQTBCLEtBQUtWLFNBQS9CLEtBQTZDLEtBQUtLLGFBQUwsQ0FBbUIsUUFBbkIsRUFBNkI7QUFBQ0s7QUFBRCxPQUE3QixDQUE1RDtBQUNBMkIsWUFBTSxDQUFDQyxHQUFQLEdBQWFKLEdBQWI7QUFDQUcsWUFBTSxDQUFDRSxNQUFQLEdBQWdCSCxPQUFoQjtBQUNBLFdBQUtwQyxTQUFMLENBQWVxQixNQUFmLENBQXNCZ0IsTUFBdEI7QUFDSCxLQUxNLENBQVA7QUFNSDs7QUFuRjJCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZG9tbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIERPTU1hbmFnZXIge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgYmRIZWFkKCkge3JldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC1oZWFkXCIpO31cclxuICAgIHN0YXRpYyBnZXQgYmRCb2R5KCkge3JldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC1ib2R5XCIpO31cclxuICAgIHN0YXRpYyBnZXQgYmRTY3JpcHRzKCkge3JldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC1zY3JpcHRzXCIpO31cclxuICAgIHN0YXRpYyBnZXQgYmRTdHlsZXMoKSB7cmV0dXJuIHRoaXMuZ2V0RWxlbWVudChcImJkLXN0eWxlc1wiKTt9XHJcbiAgICBzdGF0aWMgZ2V0IGJkVGhlbWVzKCkge3JldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC10aGVtZXNcIik7fVxyXG4gICAgc3RhdGljIGdldCBiZEN1c3RvbUNTUygpIHtyZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiI2N1c3RvbWNzc1wiKTt9XHJcbiAgICAvLyBzdGF0aWMgZ2V0IGJkVG9vbHRpcHMoKSB7IHJldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC10b29sdGlwc1wiKSB8fCB0aGlzLmNyZWF0ZUVsZW1lbnQoXCJiZC10b29sdGlwc1wiKS5hcHBlbmRUbyh0aGlzLmJkQm9keSk7IH1cclxuICAgIC8vIHN0YXRpYyBnZXQgYmRNb2RhbHMoKSB7IHJldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC1tb2RhbHNcIikgfHwgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtbW9kYWxzXCIpLmFwcGVuZFRvKHRoaXMuYmRCb2R5KTsgfVxyXG4gICAgLy8gc3RhdGljIGdldCBiZFRvYXN0cygpIHsgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudChcImJkLXRvYXN0c1wiKSB8fCB0aGlzLmNyZWF0ZUVsZW1lbnQoXCJiZC10b2FzdHNcIikuYXBwZW5kVG8odGhpcy5iZEJvZHkpOyB9XHJcblxyXG4gICAgc3RhdGljIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtaGVhZFwiLCB7dGFyZ2V0OiBkb2N1bWVudC5oZWFkfSk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtYm9keVwiLCB7dGFyZ2V0OiBkb2N1bWVudC5ib2R5fSk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtc2NyaXB0c1wiLCB7dGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLXN0eWxlc1wiLCB7dGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLXRoZW1lc1wiLCB7dGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtpZDogXCJjdXN0b21jc3NcIiwgdGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlc2NhcGVJRChpZCkge1xyXG4gICAgICAgIHJldHVybiBpZC5yZXBsYWNlKC9eW15hLXpdK3xbXlxcdy1dKy9naSwgXCItXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRFbGVtZW50KGUsIGJhc2VFbGVtZW50ID0gZG9jdW1lbnQpIHtcclxuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vZGUpIHJldHVybiBlO1xyXG4gICAgICAgIHJldHVybiBiYXNlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjcmVhdGVFbGVtZW50KHRhZywgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3Qge2NsYXNzTmFtZSwgaWQsIHRhcmdldH0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XHJcbiAgICAgICAgaWYgKGNsYXNzTmFtZSkgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgICAgICAgaWYgKGlkKSBlbGVtZW50LmlkID0gaWQ7XHJcbiAgICAgICAgaWYgKHRhcmdldCkgdGhpcy5nZXRFbGVtZW50KHRhcmdldCkuYXBwZW5kKGVsZW1lbnQpO1xyXG4gICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZW1vdmVTdHlsZShpZCkge1xyXG4gICAgICAgIGlkID0gdGhpcy5lc2NhcGVJRChpZCk7XHJcbiAgICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5nZXRFbGVtZW50KGAjJHtpZH1gLCB0aGlzLmJkU3R5bGVzKTtcclxuICAgICAgICBpZiAoZXhpc3RzKSBleGlzdHMucmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGluamVjdFN0eWxlKGlkLCBjc3MpIHtcclxuICAgICAgICBpZCA9IHRoaXMuZXNjYXBlSUQoaWQpO1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5nZXRFbGVtZW50KGAjJHtpZH1gLCB0aGlzLmJkU3R5bGVzKSB8fCB0aGlzLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCB7aWR9KTtcclxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGNzcztcclxuICAgICAgICB0aGlzLmJkU3R5bGVzLmFwcGVuZChzdHlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlbW92ZVRoZW1lKGlkKSB7XHJcbiAgICAgICAgaWQgPSB0aGlzLmVzY2FwZUlEKGlkKTtcclxuICAgICAgICBjb25zdCBleGlzdHMgPSB0aGlzLmdldEVsZW1lbnQoYCMke2lkfWAsIHRoaXMuYmRUaGVtZXMpO1xyXG4gICAgICAgIGlmIChleGlzdHMpIGV4aXN0cy5yZW1vdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW5qZWN0VGhlbWUoaWQsIGNzcykge1xyXG4gICAgICAgIGlkID0gdGhpcy5lc2NhcGVJRChpZCk7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLmdldEVsZW1lbnQoYCMke2lkfWAsIHRoaXMuYmRUaGVtZXMpIHx8IHRoaXMuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtpZH0pO1xyXG4gICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gY3NzO1xyXG4gICAgICAgIHRoaXMuYmRUaGVtZXMuYXBwZW5kKHN0eWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdXBkYXRlQ3VzdG9tQ1NTKGNzcykge1xyXG4gICAgICAgIHRoaXMuYmRDdXN0b21DU1MudGV4dENvbnRlbnQgPSBjc3M7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJlbW92ZVNjcmlwdChpZCkge1xyXG4gICAgICAgIGlkID0gdGhpcy5lc2NhcGVJRChpZCk7XHJcbiAgICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5nZXRFbGVtZW50KGAjJHtpZH1gLCB0aGlzLmJkU2NyaXB0cyk7XHJcbiAgICAgICAgaWYgKGV4aXN0cykgZXhpc3RzLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbmplY3RTY3JpcHQoaWQsIHVybCkge1xyXG4gICAgICAgIGlkID0gdGhpcy5lc2NhcGVJRChpZCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmdldEVsZW1lbnQoYCMke2lkfWAsIHRoaXMuYmRTY3JpcHRzKSB8fCB0aGlzLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIiwge2lkfSk7XHJcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XHJcbiAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSByZXNvbHZlO1xyXG4gICAgICAgICAgICB0aGlzLmJkU2NyaXB0cy5hcHBlbmQoc2NyaXB0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/dommanager.js\n");
/***/ }),
/***/ "./src/modules/emitter.js":
/*!********************************!*\
!*** ./src/modules/emitter.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst EventEmitter = __webpack_require__(/*! events */ \"events\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class BDEvents extends EventEmitter {\n constructor() {\n super();\n this.setMaxListeners(20);\n }\n\n dispatch(eventName, ...args) {\n this.emit(eventName, ...args);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZW1pdHRlci5qcz9lOTNhIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsInJlcXVpcmUiLCJCREV2ZW50cyIsImNvbnN0cnVjdG9yIiwic2V0TWF4TGlzdGVuZXJzIiwiZGlzcGF0Y2giLCJldmVudE5hbWUiLCJhcmdzIiwiZW1pdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQSxNQUFNQSxZQUFZLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBNUI7O0FBQ2UsbUVBQUksTUFBTUMsUUFBTixTQUF1QkYsWUFBdkIsQ0FBb0M7QUFDbkRHLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsZUFBTCxDQUFxQixFQUFyQjtBQUNIOztBQUNEQyxVQUFRLENBQUNDLFNBQUQsRUFBWSxHQUFHQyxJQUFmLEVBQXFCO0FBQ3pCLFNBQUtDLElBQUwsQ0FBVUYsU0FBVixFQUFxQixHQUFHQyxJQUF4QjtBQUNIOztBQVBrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZW1pdHRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBCREV2ZW50cyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuc2V0TWF4TGlzdGVuZXJzKDIwKTtcclxuICAgIH1cclxuICAgIGRpc3BhdGNoKGV2ZW50TmFtZSwgLi4uYXJncykge1xyXG4gICAgICAgIHRoaXMuZW1pdChldmVudE5hbWUsIC4uLmFyZ3MpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/emitter.js\n");
/***/ }),
/***/ "./src/modules/localemanager.js":
/*!**************************************!*\
!*** ./src/modules/localemanager.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _data_strings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../data/strings */ \"./src/data/strings.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n\n\n\n\n\n\nconst request = __webpack_require__(/*! request */ \"request\");\n\nconst {\n Dispatcher,\n DiscordConstants,\n UserSettingsStore\n} = _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class LocaleManager {\n get discordLocale() {\n return UserSettingsStore.locale.split(\"-\")[0];\n }\n\n get defaultLocale() {\n return \"en\";\n }\n\n constructor() {\n this.locale = \"\";\n this.strings = {};\n }\n\n async initialize() {\n await this.setLocale(this.discordLocale);\n Dispatcher.subscribe(DiscordConstants.ActionTypes.USER_SETTINGS_UPDATE, ({\n settings\n }) => {\n const newLocale = settings.locale;\n if (newLocale && newLocale != this.locale) this.setLocale(newLocale.split(\"-\")[0]);\n });\n }\n\n async setLocale(newLocale) {\n let newStrings;\n\n if (newLocale != this.defaultLocale) {\n newStrings = await this.getLocaleStrings(newLocale);\n if (!newStrings) return this.setLocale(this.defaultLocale);\n } else {\n newStrings = _data_strings__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n }\n\n this.locale = newLocale;\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(this.strings, newStrings);\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].emit(\"strings-updated\");\n }\n\n async getLocaleStrings(locale) {\n const hash = _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getCacheHash(\"locales\", locale);\n if (!hash) return await this.downloadLocale(locale);\n const invalid = await this.downloadLocale(locale, hash);\n if (!invalid) return _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getLocale(locale);\n return invalid;\n }\n\n downloadLocale(locale, hash = \"\") {\n return new Promise(resolve => {\n const options = {\n url: _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].repoUrl(`data/locales/${locale}.json`),\n timeout: 2000,\n json: true\n };\n if (hash) options.headers = {\n \"If-None-Match\": hash\n };\n request.get(options, (err, resp, newStrings) => {\n if (err || resp.statusCode !== 200) return resolve(null);\n _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].saveLocale(locale, newStrings);\n _datastore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setCacheHash(\"locales\", locale, resp.headers.etag);\n resolve(newStrings);\n });\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvbG9jYWxlbWFuYWdlci5qcz8yMzlkIl0sIm5hbWVzIjpbInJlcXVlc3QiLCJyZXF1aXJlIiwiRGlzcGF0Y2hlciIsIkRpc2NvcmRDb25zdGFudHMiLCJVc2VyU2V0dGluZ3NTdG9yZSIsIkRpc2NvcmRNb2R1bGVzIiwiTG9jYWxlTWFuYWdlciIsImRpc2NvcmRMb2NhbGUiLCJsb2NhbGUiLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJjb25zdHJ1Y3RvciIsInN0cmluZ3MiLCJpbml0aWFsaXplIiwic2V0TG9jYWxlIiwic3Vic2NyaWJlIiwiQWN0aW9uVHlwZXMiLCJVU0VSX1NFVFRJTkdTX1VQREFURSIsInNldHRpbmdzIiwibmV3TG9jYWxlIiwibmV3U3RyaW5ncyIsImdldExvY2FsZVN0cmluZ3MiLCJEZWZhdWx0U3RyaW5ncyIsIlV0aWxpdGllcyIsImV4dGVuZCIsIkV2ZW50cyIsImVtaXQiLCJoYXNoIiwiRGF0YVN0b3JlIiwiZ2V0Q2FjaGVIYXNoIiwiZG93bmxvYWRMb2NhbGUiLCJpbnZhbGlkIiwiZ2V0TG9jYWxlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJvcHRpb25zIiwidXJsIiwicmVwb1VybCIsInRpbWVvdXQiLCJqc29uIiwiaGVhZGVycyIsImdldCIsImVyciIsInJlc3AiLCJzdGF0dXNDb2RlIiwic2F2ZUxvY2FsZSIsInNldENhY2hlSGFzaCIsImV0YWciXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUEsT0FBTyxHQUFHQyxtQkFBTyxDQUFDLHdCQUFELENBQXZCOztBQUVBLE1BQU07QUFBQ0MsWUFBRDtBQUFhQyxrQkFBYjtBQUErQkM7QUFBL0IsSUFBb0RDLHVEQUExRDtBQUVlLG1FQUFJLE1BQU1DLGFBQU4sQ0FBb0I7QUFDdEMsTUFBSUMsYUFBSixHQUFvQjtBQUFDLFdBQU9ILGlC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SUFBSSxDQUFDSCxPQUFMLENBQWFPLElBQXZEO0FBQ0FiLGVBQU8sQ0FBQ2QsVUFBRCxDQUFQO0FBQ0EsT0FMRDtBQU1BLEtBYk0sQ0FBUDtBQWNBOztBQXREcUMsQ0FBeEIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL2xvY2FsZW1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGVmYXVsdFN0cmluZ3MgZnJvbSBcIi4uL2RhdGEvc3RyaW5nc1wiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKFwicmVxdWVzdFwiKTtcclxuXHJcbmNvbnN0IHtEaXNwYXRjaGVyLCBEaXNjb3JkQ29uc3RhbnRzLCBVc2VyU2V0dGluZ3NTdG9yZX0gPSBEaXNjb3JkTW9kdWxlcztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBMb2NhbGVNYW5hZ2VyIHtcclxuXHRnZXQgZGlzY29yZExvY2FsZSgpIHtyZXR1cm4gVXNlclNldHRpbmdzU3RvcmUubG9jYWxlLnNwbGl0KFwiLVwiKVswXTt9XHJcblx0Z2V0IGRlZmF1bHRMb2NhbGUoKSB7cmV0dXJuIFwiZW5cIjt9XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnN0cmluZ3MgPSB7fTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXRMb2NhbGUodGhpcy5kaXNjb3JkTG9jYWxlKTtcclxuICAgICAgICBEaXNwYXRjaGVyLnN1YnNjcmliZShEaXNjb3JkQ29uc3RhbnRzLkFjdGlvblR5cGVzLlVTRVJfU0VUVElOR1NfVVBEQVRFLCAoe3NldHRpbmdzfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdMb2NhbGUgPSBzZXR0aW5ncy5sb2NhbGU7XHJcbiAgICAgICAgICAgIGlmIChuZXdMb2NhbGUgJiYgbmV3TG9jYWxlICE9IHRoaXMubG9jYWxlKSB0aGlzLnNldExvY2FsZShuZXdMb2NhbGUuc3BsaXQoXCItXCIpWzBdKTtcclxuICAgICAgICB9KTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNldExvY2FsZShuZXdMb2NhbGUpIHtcclxuICAgICAgICBsZXQgbmV3U3RyaW5ncztcclxuICAgICAgICBpZiAobmV3TG9jYWxlICE9IHRoaXMuZGVmYXVsdExvY2FsZSkge1xyXG5cdFx0XHRuZXdTdHJpbmdzID0gYXdhaXQgdGhpcy5nZXRMb2NhbGVTdHJpbmdzKG5ld0xvY2FsZSk7XHJcbiAgICAgICAgICAgIGlmICghbmV3U3RyaW5ncykgcmV0dXJuIHRoaXMuc2V0TG9jYWxlKHRoaXMuZGVmYXVsdExvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBuZXdTdHJpbmdzID0gRGVmYXVsdFN0cmluZ3M7XHJcbiAgICAgICAgfVxyXG5cdFx0dGhpcy5sb2NhbGUgPSBuZXdMb2NhbGU7XHJcblx0XHRVdGlsaXRpZXMuZXh0ZW5kKHRoaXMuc3RyaW5ncywgbmV3U3RyaW5ncyk7XHJcblx0XHRFdmVudHMuZW1pdChcInN0cmluZ3MtdXBkYXRlZFwiKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGdldExvY2FsZVN0cmluZ3MobG9jYWxlKSB7XHJcblx0XHRjb25zdCBoYXNoID0gRGF0YVN0b3JlLmdldENhY2hlSGFzaChcImxvY2FsZXNcIiwgbG9jYWxlKTtcclxuXHRcdGlmICghaGFzaCkgcmV0dXJuIGF3YWl0IHRoaXMuZG93bmxvYWRMb2NhbGUobG9jYWxlKTtcclxuXHRcdGNvbnN0IGludmFsaWQgPSBhd2FpdCB0aGlzLmRvd25sb2FkTG9jYWxlKGxvY2FsZSwgaGFzaCk7XHJcblx0XHRpZiAoIWludmFsaWQpIHJldHVybiBEYXRhU3RvcmUuZ2V0TG9jYWxlKGxvY2FsZSk7XHJcblx0XHRyZXR1cm4gaW52YWxpZDtcclxuXHR9XHJcblxyXG5cdGRvd25sb2FkTG9jYWxlKGxvY2FsZSwgaGFzaCA9IFwiXCIpIHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuXHRcdFx0Y29uc3Qgb3B0aW9ucyA9IHtcclxuXHRcdFx0XHR1cmw6IFV0aWxpdGllcy5yZXBvVXJsKGBkYXRhL2xvY2FsZXMvJHtsb2NhbGV9Lmpzb25gKSxcclxuXHRcdFx0XHR0aW1lb3V0OiAyMDAwLFxyXG5cdFx0XHRcdGpzb246IHRydWVcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGhhc2gpIG9wdGlvbnMuaGVhZGVycyA9IHtcIklmLU5vbmUtTWF0Y2hcIjogaGFzaH07XHJcblx0XHRcdHJlcXVlc3QuZ2V0KG9wdGlvbnMsIChlcnIsIHJlc3AsIG5ld1N0cmluZ3MpID0+IHtcclxuXHRcdFx0XHRpZiAoZXJyIHx8IHJlc3Auc3RhdHVzQ29kZSAhPT0gMjAwKSByZXR1cm4gcmVzb2x2ZShudWxsKTtcclxuXHRcdFx0XHREYXRhU3RvcmUuc2F2ZUxvY2FsZShsb2NhbGUsIG5ld1N0cmluZ3MpO1xyXG5cdFx0XHRcdERhdGFTdG9yZS5zZXRDYWNoZUhhc2goXCJsb2NhbGVzXCIsIGxvY2FsZSwgcmVzcC5oZWFkZXJzLmV0YWcpO1xyXG5cdFx0XHRcdHJlc29sdmUobmV3U3RyaW5ncyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/localemanager.js\n");
/***/ }),
/***/ "./src/modules/logger.js":
/*!*******************************!*\
!*** ./src/modules/logger.js ***!
\*******************************/
/*! exports provided: LogTypes, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogTypes\", function() { return LogTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Logger; });\n/**\r\n * Simple logger for the lib and plugins.\r\n *\r\n * @module Logger\r\n * @version 0.1.0\r\n */\n\n/* eslint-disable no-console */\n\n/**\r\n * List of logging types.\r\n */\nconst LogTypes = {\n /** Alias for error */\n err: \"error\",\n error: \"error\",\n\n /** Alias for debug */\n dbg: \"debug\",\n debug: \"debug\",\n log: \"log\",\n warn: \"warn\",\n info: \"info\"\n};\nclass Logger {\n /**\r\n * Logs an error using a collapsed error group with stacktrace.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {string} message - Message or error to have logged.\r\n * @param {Error} error - Error object to log with the message.\r\n */\n static stacktrace(module, message, error) {\n console.error(`%c[${module}]%c ${message}\\n\\n%c`, \"color: #3a71c1; font-weight: 700;\", \"color: red; font-weight: 700;\", \"color: red;\", error);\n }\n /**\r\n * Logs using error formatting. For logging an actual error object consider {@link module:Logger.stacktrace}\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {string} message - Messages to have logged.\r\n */\n\n\n static err(module, ...message) {\n Logger._log(module, message, \"error\");\n }\n /**\r\n * Logs a warning message.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {...any} message - Messages to have logged.\r\n */\n\n\n static warn(module, ...message) {\n Logger._log(module, message, \"warn\");\n }\n /**\r\n * Logs an informational message.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {...any} message - Messages to have logged.\r\n */\n\n\n static info(module, ...message) {\n Logger._log(module, message, \"info\");\n }\n /**\r\n * Logs used for debugging purposes.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {...any} message - Messages to have logged.\r\n */\n\n\n static debug(module, ...message) {\n Logger._log(module, message, \"debug\");\n }\n /**\r\n * Logs used for basic loggin.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {...any} message - Messages to have logged.\r\n */\n\n\n static log(module, ...message) {\n Logger._log(module, message);\n }\n /**\r\n * Logs strings using different console levels and a module label.\r\n *\r\n * @param {string} module - Name of the calling module.\r\n * @param {any|Array<any>} message - Messages to have logged.\r\n * @param {module:Logger.LogTypes} type - Type of log to use in console.\r\n */\n\n\n static _log(module, message, type = \"log\") {\n type = Logger.parseType(type);\n if (!Array.isArray(message)) message = [message];\n console[type](`%c[BandagedBD]%c [${module}]%c`, \"color: #3E82E5; font-weight: 700;\", \"color: #3a71c1;\", \"\", ...message); //console.log(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: #3a71c1; font-weight: 700;\", \"color: #3a71c1;\", \"\");\n }\n\n static parseType(type) {\n return LogTypes.hasOwnProperty(type) ? LogTypes[type] : \"log\";\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvbG9nZ2VyLmpzPzk5OGUiXSwibmFtZXMiOlsiTG9nVHlwZXMiLCJlcnIiLCJlcnJvciIsImRiZyIsImRlYnVnIiwibG9nIiwid2FybiIsImluZm8iLCJMb2dnZXIiLCJzdGFja3RyYWNlIiwibW9kdWxlIiwibWVzc2FnZSIsImNvbnNvbGUiLCJfbG9nIiwidHlwZSIsInBhcnNlVHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7OztBQU9BOztBQUVBOzs7QUFHTyxNQUFNQSxRQUFRLEdBQUc7QUFDcEI7QUFDQUMsS0FBRyxFQUFFLE9BRmU7QUFHcEJDLE9BQUssRUFBRSxPQUhhOztBQUlwQjtBQUNBQyxLQUFHLEVBQUUsT0FMZTtBQU1wQkMsT0FBSyxFQUFFLE9BTmE7QUFPcEJDLEtBQUcsRUFBRSxLQVBlO0FBUXBCQyxNQUFJLEVBQUUsTUFSYztBQVNwQkMsTUFBSSxFQUFFO0FBVGMsQ0FBakI7QUFZUSxNQUFNQyxNQUFOLENBQWE7QUFFeEI7Ozs7Ozs7QUFPQSxTQUFPQyxVQUFQLENBQWtCQyxNQUFsQixFQUEwQkMsT0FBMUIsRUFBbUNULEtBQW5DLEVBQTBDO0FBQzVDVSxXQUFPLENBQUNWLEtBQVIsQ0FBZSxNQUFLUSxNQUFPLE9BQU1DLE9BQVEsUUFBekMsRUFBa0QsbUNBQWxELEVBQXVGLCtCQUF2RixFQUF3SCxhQUF4SCxFQUF1SVQsS0FBdkk7QUFDRztBQUVEOzs7Ozs7OztBQU1BLFNBQU9ELEdBQVAsQ0FBV1MsTUFBWCxFQUFtQixHQUFHQyxPQUF0QixFQUErQjtBQUFFSCxVQUFNLENBQUNLLElBQVAsQ0FBWUgsTUFBWixFQUFvQkMsT0FBcEIsRUFBNkIsT0FBN0I7QUFBd0M7QUFFekU7Ozs7Ozs7O0FBTUEsU0FBT0wsSUFBUCxDQUFZSSxNQUFaLEVBQW9CLEdBQUdDLE9BQXZCLEVBQWdDO0FBQUVILFVBQU0sQ0FBQ0ssSUFBUCxDQUFZSCxNQUFaLEVBQW9CQyxPQUFwQixFQUE2QixNQUE3QjtBQUF1QztBQUV6RTs7Ozs7Ozs7QUFNQSxTQUFPSixJQUFQLENBQVlHLE1BQVosRUFBb0IsR0FBR0MsT0FBdkIsRUFBZ0M7QUFBRUgsVUFBTSxDQUFDSyxJQUFQLENBQVlILE1BQVosRUFBb0JDLE9BQXBCLEVBQTZCLE1BQTdCO0FBQXVDO0FBRXpFOzs7Ozs7OztBQU1BLFNBQU9QLEtBQVAsQ0FBYU0sTUFBYixFQUFxQixHQUFHQyxPQUF4QixFQUFpQztBQUFFSCxVQUFNLENBQUNLLElBQVAsQ0FBWUgsTUFBWixFQUFvQkMsT0FBcEIsRUFBNkIsT0FBN0I7QUFBd0M7QUFFM0U7Ozs7Ozs7O0FBTUEsU0FBT04sR0FBUCxDQUFXSyxNQUFYLEVBQW1CLEdBQUdDLE9BQXRCLEVBQStCO0FBQUVILFVBQU0sQ0FBQ0ssSUFBUCxDQUFZSCxNQUFaLEVBQW9CQyxPQUFwQjtBQUErQjtBQUVoRTs7Ozs7Ozs7O0FBT0EsU0FBT0UsSUFBUCxDQUFZSCxNQUFaLEVBQW9CQyxPQUFwQixFQUE2QkcsSUFBSSxHQUFHLEtBQXBDLEVBQTJDO0FBQ3ZDQSxRQUFJLEdBQUdOLE1BQU0sQ0FBQ08sU0FBUCxDQUFpQkQsSUFBakIsQ0FBUDtBQUNBLFFBQUksQ0FBQ0UsS0FBSyxDQUFDQyxPQUFOLENBQWNOLE9BQWQsQ0FBTCxFQUE2QkEsT0FBTyxHQUFHLENBQUNBLE9BQUQsQ0FBVjtBQUM3QkMsV0FBTyxDQUFDRSxJQUFELENBQVAsQ0FBZSxxQkFBb0JKLE1BQU8sS0FBMUMsRUFBZ0QsbUNBQWhELEVBQXFGLGlCQUFyRixFQUF3RyxFQUF4RyxFQUE0RyxHQUFHQyxPQUEvRyxFQUh1QyxDQUl2QztBQUNIOztBQUVELFNBQU9JLFNBQVAsQ0FBaUJELElBQWpCLEVBQXVCO0FBQ25CLFdBQU9kLFFBQVEsQ0FBQ2tCLGNBQVQsQ0FBd0JKLElBQXhCLElBQWdDZCxRQUFRLENBQUNjLElBQUQsQ0FBeEMsR0FBaUQsS0FBeEQ7QUFDSDs7QUFyRXVCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvbG9nZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNpbXBsZSBsb2dnZXIgZm9yIHRoZSBsaWIgYW5kIHBsdWdpbnMuXHJcbiAqXHJcbiAqIEBtb2R1bGUgTG9nZ2VyXHJcbiAqIEB2ZXJzaW9uIDAuMS4wXHJcbiAqL1xyXG5cclxuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xyXG5cclxuLyoqXHJcbiAqIExpc3Qgb2YgbG9nZ2luZyB0eXBlcy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBMb2dUeXBlcyA9IHtcclxuICAgIC8qKiBBbGlhcyBmb3IgZXJyb3IgKi9cclxuICAgIGVycjogXCJlcnJvclwiLFxyXG4gICAgZXJyb3I6IFwiZXJyb3JcIixcclxuICAgIC8qKiBBbGlhcyBmb3IgZGVidWcgKi9cclxuICAgIGRiZzogXCJkZWJ1Z1wiLFxyXG4gICAgZGVidWc6IFwiZGVidWdcIixcclxuICAgIGxvZzogXCJsb2dcIixcclxuICAgIHdhcm46IFwid2FyblwiLFxyXG4gICAgaW5mbzogXCJpbmZvXCJcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2dlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2dzIGFuIGVycm9yIHVzaW5nIGEgY29sbGFwc2VkIGVycm9yIGdyb3VwIHdpdGggc3RhY2t0cmFjZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlIC0gTmFtZSBvZiB0aGUgY2FsbGluZyBtb2R1bGUuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIE1lc3NhZ2Ugb3IgZXJyb3IgdG8gaGF2ZSBsb2dnZWQuXHJcblx0ICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgLSBFcnJvciBvYmplY3QgdG8gbG9nIHdpdGggdGhlIG1lc3NhZ2UuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBzdGFja3RyYWNlKG1vZHVsZSwgbWVzc2FnZSwgZXJyb3IpIHtcclxuXHRcdGNvbnNvbGUuZXJyb3IoYCVjWyR7bW9kdWxlfV0lYyAke21lc3NhZ2V9XFxuXFxuJWNgLCBcImNvbG9yOiAjM2E3MWMxOyBmb250LXdlaWdodDogNzAwO1wiLCBcImNvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiA3MDA7XCIsIFwiY29sb3I6IHJlZDtcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9ncyB1c2luZyBlcnJvciBmb3JtYXR0aW5nLiBGb3IgbG9nZ2luZyBhbiBhY3R1YWwgZXJyb3Igb2JqZWN0IGNvbnNpZGVyIHtAbGluayBtb2R1bGU6TG9nZ2VyLnN0YWNrdHJhY2V9XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZSAtIE5hbWUgb2YgdGhlIGNhbGxpbmcgbW9kdWxlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBNZXNzYWdlcyB0byBoYXZlIGxvZ2dlZC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGVycihtb2R1bGUsIC4uLm1lc3NhZ2UpIHsgTG9nZ2VyLl9sb2cobW9kdWxlLCBtZXNzYWdlLCBcImVycm9yXCIpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2dzIGEgd2FybmluZyBtZXNzYWdlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGUgLSBOYW1lIG9mIHRoZSBjYWxsaW5nIG1vZHVsZS5cclxuICAgICAqIEBwYXJhbSB7Li4uYW55fSBtZXNzYWdlIC0gTWVzc2FnZXMgdG8gaGF2ZSBsb2dnZWQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB3YXJuKG1vZHVsZSwgLi4ubWVzc2FnZSkgeyBMb2dnZXIuX2xvZyhtb2R1bGUsIG1lc3NhZ2UsIFwid2FyblwiKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9ncyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZSAtIE5hbWUgb2YgdGhlIGNhbGxpbmcgbW9kdWxlLlxyXG4gICAgICogQHBhcmFtIHsuLi5hbnl9IG1lc3NhZ2UgLSBNZXNzYWdlcyB0byBoYXZlIGxvZ2dlZC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGluZm8obW9kdWxlLCAuLi5tZXNzYWdlKSB7IExvZ2dlci5fbG9nKG1vZHVsZSwgbWVzc2FnZSwgXCJpbmZvXCIpOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2dzIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbW9kdWxlIC0gTmFtZSBvZiB0aGUgY2FsbGluZyBtb2R1bGUuXHJcbiAgICAgKiBAcGFyYW0gey4uLmFueX0gbWVzc2FnZSAtIE1lc3NhZ2VzIHRvIGhhdmUgbG9nZ2VkLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZGVidWcobW9kdWxlLCAuLi5tZXNzYWdlKSB7IExvZ2dlci5fbG9nKG1vZHVsZSwgbWVzc2FnZSwgXCJkZWJ1Z1wiKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9ncyB1c2VkIGZvciBiYXNpYyBsb2dnaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZSAtIE5hbWUgb2YgdGhlIGNhbGxpbmcgbW9kdWxlLlxyXG4gICAgICogQHBhcmFtIHsuLi5hbnl9IG1lc3NhZ2UgLSBNZXNzYWdlcyB0byBoYXZlIGxvZ2dlZC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGxvZyhtb2R1bGUsIC4uLm1lc3NhZ2UpIHsgTG9nZ2VyLl9sb2cobW9kdWxlLCBtZXNzYWdlKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9ncyBzdHJpbmdzIHVzaW5nIGRpZmZlcmVudCBjb25zb2xlIGxldmVscyBhbmQgYSBtb2R1bGUgbGFiZWwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZSAtIE5hbWUgb2YgdGhlIGNhbGxpbmcgbW9kdWxlLlxyXG4gICAgICogQHBhcmFtIHthbnl8QXJyYXk8YW55Pn0gbWVzc2FnZSAtIE1lc3NhZ2VzIHRvIGhhdmUgbG9nZ2VkLlxyXG4gICAgICogQHBhcmFtIHttb2R1bGU6TG9nZ2VyLkxvZ1R5cGVzfSB0eXBlIC0gVHlwZSBvZiBsb2cgdG8gdXNlIGluIGNvbnNvbGUuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBfbG9nKG1vZHVsZSwgbWVzc2FnZSwgdHlwZSA9IFwibG9nXCIpIHtcclxuICAgICAgICB0eXBlID0gTG9nZ2VyLnBhcnNlVHlwZSh0eXBlKTtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkobWVzc2FnZSkpIG1lc3NhZ2UgPSBbbWVzc2FnZV07XHJcbiAgICAgICAgY29uc29sZVt0eXBlXShgJWNbQmFuZGFnZWRCRF0lYyBbJHttb2R1bGV9XSVjYCwgXCJjb2xvcjogIzNFODJFNTsgZm9udC13ZWlnaHQ6IDcwMDtcIiwgXCJjb2xvcjogIzNhNzFjMTtcIiwgXCJcIiwgLi4ubWVzc2FnZSk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhgJWNbQmFuZGFnZWRCRF0lYyBbJHttb2R1bGVOYW1lfV0lYyAke21lc3NhZ2V9YCwgXCJjb2xvcjogIzNhNzFjMTsgZm9udC13ZWlnaHQ6IDcwMDtcIiwgXCJjb2xvcjogIzNhNzFjMTtcIiwgXCJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHBhcnNlVHlwZSh0eXBlKSB7XHJcbiAgICAgICAgcmV0dXJuIExvZ1R5cGVzLmhhc093blByb3BlcnR5KHR5cGUpID8gTG9nVHlwZXNbdHlwZV0gOiBcImxvZ1wiO1xyXG4gICAgfVxyXG5cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/logger.js\n");
/***/ }),
/***/ "./src/modules/modules.js":
/*!********************************!*\
!*** ./src/modules/modules.js ***!
\********************************/
/*! exports provided: WebpackModules, React, ReactDOM, DiscordModules, Utilities, DataStore, Events, Settings, DOMManager, Logger, Patcher, ReactComponents, LocaleManager, Strings */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"React\", function() { return React; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactDOM\", function() { return ReactDOM; });\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WebpackModules\", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DiscordModules\", function() { return _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Utilities\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataStore\", function() { return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Events\", function() { return _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Settings\", function() { return _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DOMManager\", function() { return _dommanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Logger\", function() { return _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _patcher__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./patcher */ \"./src/modules/patcher.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Patcher\", function() { return _patcher__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _reactcomponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./reactcomponents */ \"./src/modules/reactcomponents.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReactComponents\", function() { return _reactcomponents__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _localemanager__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./localemanager */ \"./src/modules/localemanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LocaleManager\", function() { return _localemanager__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Strings\", function() { return _strings__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n\n\nconst React = _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React;\nconst ReactDOM = _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ReactDOM;\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvbW9kdWxlcy5qcz8xNGRiIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGlzY29yZE1vZHVsZXMiLCJSZWFjdERPTSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNPLE1BQU1BLEtBQUssR0FBR0MsdURBQWMsQ0FBQ0QsS0FBN0I7QUFDQSxNQUFNRSxRQUFRLEdBQUdELHVEQUFjLENBQUNDLFFBQWhDO0FBQ1A7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9tb2R1bGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtkZWZhdWx0IGFzIFdlYnBhY2tNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmV4cG9ydCBjb25zdCBSZWFjdCA9IERpc2NvcmRNb2R1bGVzLlJlYWN0O1xyXG5leHBvcnQgY29uc3QgUmVhY3RET00gPSBEaXNjb3JkTW9kdWxlcy5SZWFjdERPTTtcclxuZXhwb3J0IHtEaXNjb3JkTW9kdWxlc307XHJcblxyXG5leHBvcnQge2RlZmF1bHQgYXMgVXRpbGl0aWVzfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFTdG9yZX0gZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFdmVudHN9IGZyb20gXCIuL2VtaXR0ZXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFNldHRpbmdzfSBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERPTU1hbmFnZXJ9IGZyb20gXCIuL2RvbW1hbmFnZXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIExvZ2dlcn0gZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQYXRjaGVyfSBmcm9tIFwiLi9wYXRjaGVyXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBSZWFjdENvbXBvbmVudHN9IGZyb20gXCIuL3JlYWN0Y29tcG9uZW50c1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgTG9jYWxlTWFuYWdlcn0gZnJvbSBcIi4vbG9jYWxlbWFuYWdlclwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgU3RyaW5nc30gZnJvbSBcIi4vc3RyaW5nc1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/modules.js\n");
/***/ }),
/***/ "./src/modules/patcher.js":
/*!********************************!*\
!*** ./src/modules/patcher.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Patcher; });\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/**\r\n * Patcher that can patch other functions allowing you to run code before, after or\r\n * instead of the original function. Can also alter arguments and return values.\r\n *\r\n * This is from Zerebos' library {@link https://github.com/JsSucks/BetterDiscordApp/blob/master/client/src/modules/patcher.js}\r\n *\r\n * @module Patcher\r\n * @version 0.0.2\r\n */\n\n\n\nclass Patcher {\n static get patches() {\n return this._patches || (this._patches = []);\n }\n /**\r\n * Returns all the patches done by a specific caller\r\n * @param {string} name - Name of the patch caller\r\n * @method\r\n */\n\n\n static getPatchesByCaller(name) {\n if (!name) return [];\n const patches = [];\n\n for (const patch of this.patches) {\n for (const childPatch of patch.children) {\n if (childPatch.caller === name) patches.push(childPatch);\n }\n }\n\n return patches;\n }\n /**\r\n * Unpatches all patches passed, or when a string is passed unpatches all\r\n * patches done by that specific caller.\r\n * @param {Array|string} patches - Either an array of patches to unpatch or a caller name\r\n */\n\n\n static unpatchAll(patches) {\n if (typeof patches === \"string\") patches = this.getPatchesByCaller(patches);\n\n for (const patch of patches) {\n patch.unpatch();\n }\n }\n\n static resolveModule(module) {\n if (module instanceof Function || module instanceof Object && !(module instanceof Array)) return module;\n if (typeof module === \"string\") return _discordmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"][module];\n if (module instanceof Array) return _webpackmodules__WEBPACK_IMPORTED_MODULE_2__[\"default\"].findByUniqueProperties(module);\n return null;\n }\n\n static makeOverride(patch) {\n return function () {\n let returnValue = undefined;\n if (!patch.children || !patch.children.length) return patch.originalFunction.apply(this, arguments);\n\n for (const superPatch of patch.children.filter(c => c.type === \"before\")) {\n try {\n superPatch.callback(this, arguments);\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(\"Patcher\", `Could not fire before callback of ${patch.functionName} for ${superPatch.caller}`, err);\n }\n }\n\n const insteads = patch.children.filter(c => c.type === \"instead\");\n\n if (!insteads.length) {\n returnValue = patch.originalFunction.apply(this, arguments);\n } else {\n for (const insteadPatch of insteads) {\n try {\n const tempReturn = insteadPatch.callback(this, arguments, patch.originalFunction.bind(this));\n if (typeof tempReturn !== \"undefined\") returnValue = tempReturn;\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(\"Patcher\", `Could not fire instead callback of ${patch.functionName} for ${insteadPatch.caller}`, err);\n }\n }\n }\n\n for (const slavePatch of patch.children.filter(c => c.type === \"after\")) {\n try {\n const tempReturn = slavePatch.callback(this, arguments, returnValue);\n if (typeof tempReturn !== \"undefined\") returnValue = tempReturn;\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(\"Patcher\", `Could not fire after callback of ${patch.functionName} for ${slavePatch.caller}`, err);\n }\n }\n\n return returnValue;\n };\n }\n\n static rePatch(patch) {\n patch.proxyFunction = patch.module[patch.functionName] = this.makeOverride(patch);\n }\n\n static makePatch(module, functionName, name) {\n const patch = {\n name,\n module,\n functionName,\n originalFunction: module[functionName],\n proxyFunction: null,\n revert: () => {\n // Calling revert will destroy any patches added to the same module after this\n patch.module[patch.functionName] = patch.originalFunction;\n patch.proxyFunction = null;\n patch.children = [];\n },\n counter: 0,\n children: []\n };\n patch.proxyFunction = module[functionName] = this.makeOverride(patch);\n return this.patches.push(patch), patch;\n }\n /**\r\n * Function with no arguments and no return value that may be called to revert changes made by {@link module:Patcher}, restoring (unpatching) original method.\r\n * @callback module:Patcher~unpatch\r\n */\n\n /**\r\n * A callback that modifies method logic. This callback is called on each call of the original method and is provided all data about original call. Any of the data can be modified if necessary, but do so wisely.\r\n *\r\n * The third argument for the callback will be `undefined` for `before` patches. `originalFunction` for `instead` patches and `returnValue` for `after` patches.\r\n *\r\n * @callback module:Patcher~patchCallback\r\n * @param {object} thisObject - `this` in the context of the original function.\r\n * @param {arguments} arguments - The original arguments of the original function.\r\n * @param {(function|*)} extraValue - For `instead` patches, this is the original function from the module. For `after` patches, this is the return value of the function.\r\n * @return {*} Makes sense only when using an `instead` or `after` patch. If something other than `undefined` is returned, the returned value replaces the value of `returnValue`. If used for `before` the return value is ignored.\r\n */\n\n /**\r\n * This method patches onto another function, allowing your code to run beforehand.\r\n * Using this, you are also able to modify the incoming arguments before the original method is run.\r\n *\r\n * @param {string} caller - Name of the caller of the patch function. Using this you can undo all patches with the same name using {@link module:Patcher.unpatchAll}. Use `\"\"` if you don't care.\r\n * @param {object} moduleToPatch - Object with the function to be patched. Can also patch an object's prototype.\r\n * @param {string} functionName - Name of the method to be patched\r\n * @param {module:Patcher~patchCallback} callback - Function to run before the original method\r\n * @param {object} options - Object used to pass additional options.\r\n * @param {string} [options.displayName] You can provide meaningful name for class/object provided in `what` param for logging purposes. By default, this function will try to determine name automatically.\r\n * @param {boolean} [options.forcePatch=true] Set to `true` to patch even if the function doesnt exist. (Adds noop function in place).\r\n * @return {module:Patcher~unpatch} Function with no arguments and no return value that should be called to cancel (unpatch) this patch. You should save and run it when your plugin is stopped.\r\n */\n\n\n static before(caller, moduleToPatch, functionName, callback, options = {}) {\n return this.pushChildPatch(caller, moduleToPatch, functionName, callback, Object.assign(options, {\n type: \"before\"\n }));\n }\n /**\r\n * This method patches onto another function, allowing your code to run after.\r\n * Using this, you are also able to modify the return value, using the return of your code instead.\r\n *\r\n * @param {string} caller - Name of the caller of the patch function. Using this you can undo all patches with the same name using {@link module:Patcher.unpatchAll}. Use `\"\"` if you don't care.\r\n * @param {object} moduleToPatch - Object with the function to be patched. Can also patch an object's prototype.\r\n * @param {string} functionName - Name of the method to be patched\r\n * @param {module:Patcher~patchCallback} callback - Function to run instead of the original method\r\n * @param {object} options - Object used to pass additional options.\r\n * @param {string} [options.displayName] You can provide meaningful name for class/object provided in `what` param for logging purposes. By default, this function will try to determine name automatically.\r\n * @param {boolean} [options.forcePatch=true] Set to `true` to patch even if the function doesnt exist. (Adds noop function in place).\r\n * @return {module:Patcher~unpatch} Function with no arguments and no return value that should be called to cancel (unpatch) this patch. You should save and run it when your plugin is stopped.\r\n */\n\n\n static after(caller, moduleToPatch, functionName, callback, options = {}) {\n return this.pushChildPatch(caller, moduleToPatch, functionName, callback, Object.assign(options, {\n type: \"after\"\n }));\n }\n /**\r\n * This method patches onto another function, allowing your code to run instead.\r\n * Using this, you are also able to modify the return value, using the return of your code instead.\r\n *\r\n * @param {string} caller - Name of the caller of the patch function. Using this you can undo all patches with the same name using {@link module:Patcher.unpatchAll}. Use `\"\"` if you don't care.\r\n * @param {object} moduleToPatch - Object with the function to be patched. Can also patch an object's prototype.\r\n * @param {string} functionName - Name of the method to be patched\r\n * @param {module:Patcher~patchCallback} callback - Function to run after the original method\r\n * @param {object} options - Object used to pass additional options.\r\n * @param {string} [options.displayName] You can provide meaningful name for class/object provided in `what` param for logging purposes. By default, this function will try to determine name automatically.\r\n * @param {boolean} [options.forcePatch=true] Set to `true` to patch even if the function doesnt exist. (Adds noop function in place).\r\n * @return {module:Patcher~unpatch} Function with no arguments and no return value that should be called to cancel (unpatch) this patch. You should save and run it when your plugin is stopped.\r\n */\n\n\n static instead(caller, moduleToPatch, functionName, callback, options = {}) {\n return this.pushChildPatch(caller, moduleToPatch, functionName, callback, Object.assign(options, {\n type: \"instead\"\n }));\n }\n /**\r\n * This method patches onto another function, allowing your code to run before, instead or after the original function.\r\n * Using this you are able to modify the incoming arguments before the original function is run as well as the return\r\n * value before the original function actually returns.\r\n *\r\n * @param {string} caller - Name of the caller of the patch function. Using this you can undo all patches with the same name using {@link module:Patcher.unpatchAll}. Use `\"\"` if you don't care.\r\n * @param {object} moduleToPatch - Object with the function to be patched. Can also patch an object's prototype.\r\n * @param {string} functionName - Name of the method to be patched\r\n * @param {module:Patcher~patchCallback} callback - Function to run after the original method\r\n * @param {object} options - Object used to pass additional options.\r\n * @param {string} [options.type=after] - Determines whether to run the function `before`, `instead`, or `after` the original.\r\n * @param {string} [options.displayName] You can provide meaningful name for class/object provided in `what` param for logging purposes. By default, this function will try to determine name automatically.\r\n * @param {boolean} [options.forcePatch=true] Set to `true` to patch even if the function doesnt exist. (Adds noop function in place).\r\n * @return {module:Patcher~unpatch} Function with no arguments and no return value that should be called to cancel (unpatch) this patch. You should save and run it when your plugin is stopped.\r\n */\n\n\n static pushChildPatch(caller, moduleToPatch, functionName, callback, options = {}) {\n const {\n type = \"after\",\n forcePatch = true\n } = options;\n const module = this.resolveModule(moduleToPatch);\n if (!module) return null;\n if (!module[functionName] && forcePatch) module[functionName] = function () {};\n if (!(module[functionName] instanceof Function)) return null;\n if (typeof moduleToPatch === \"string\") options.displayName = moduleToPatch;\n const displayName = options.displayName || module.displayName || module.name || module.constructor.displayName || module.constructor.name;\n const patchId = `${displayName}.${functionName}`;\n const patch = this.patches.find(p => p.module == module && p.functionName == functionName) || this.makePatch(module, functionName, patchId);\n if (!patch.proxyFunction) this.rePatch(patch);\n const child = {\n caller,\n type,\n id: patch.counter,\n callback,\n unpatch: () => {\n patch.children.splice(patch.children.findIndex(cpatch => cpatch.id === child.id && cpatch.type === type), 1);\n\n if (patch.children.length <= 0) {\n const patchNum = this.patches.findIndex(p => p.module == module && p.functionName == functionName);\n this.patches[patchNum].revert();\n this.patches.splice(patchNum, 1);\n }\n }\n };\n patch.children.push(child);\n patch.counter++;\n return child.unpatch;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGF0Y2hlci5qcz8yNTUwIl0sIm5hbWVzIjpbIlBhdGNoZXIiLCJwYXRjaGVzIiwiX3BhdGNoZXMiLCJnZXRQYXRjaGVzQnlDYWxsZXIiLCJuYW1lIiwicGF0Y2giLCJjaGlsZFBhdGNoIiwiY2hpbGRyZW4iLCJjYWxsZXIiLCJwdXNoIiwidW5wYXRjaEFsbCIsInVucGF0Y2giLCJyZXNvbHZlTW9kdWxlIiwibW9kdWxlIiwiRnVuY3Rpb24iLCJPYmplY3QiLCJBcnJheSIsIkRpc2NvcmRNb2R1bGVzIiwiV2VicGFja01vZHVsZXMiLCJmaW5kQnlVbmlxdWVQcm9wZXJ0aWVzIiwibWFrZU92ZXJyaWRlIiwicmV0dXJuVmFsdWUiLCJ1bmRlZmluZWQiLCJsZW5ndGgiLCJvcmlnaW5hbEZ1bmN0aW9uIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJzdXBlclBhdGNoIiwiZmlsdGVyIiwiYyIsInR5cGUiLCJjYWxsYmFjayIsImVyciIsIkxvZ2dlciIsImZ1bmN0aW9uTmFtZSIsImluc3RlYWRzIiwiaW5zdGVhZFBhdGNoIiwidGVtcFJldHVybiIsImJpbmQiLCJzbGF2ZVBhdGNoIiwicmVQYXRjaCIsInByb3h5RnVuY3Rpb24iLCJtYWtlUGF0Y2giLCJyZXZlcnQiLCJjb3VudGVyIiwiYmVmb3JlIiwibW9kdWxlVG9QYXRjaCIsIm9wdGlvbnMiLCJwdXNoQ2hpbGRQYXRjaCIsImFzc2lnbiIsImFmdGVyIiwiaW5zdGVhZCIsImZvcmNlUGF0Y2giLCJkaXNwbGF5TmFtZSIsImNvbnN0cnVjdG9yIiwicGF0Y2hJZCIsImZpbmQiLCJwIiwiY2hpbGQiLCJpZCIsInNwbGljZSIsImZpbmRJbmRleCIsImNwYXRjaCIsInBhdGNoTnVtIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQVVBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLE9BQU4sQ0FBYztBQUV6QixhQUFXQyxPQUFY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QUE3RSxDQUF0QixFQUEwRyxDQUExRzs7QUFDQSxZQUFJekIsS0FBSyxDQUFDRSxRQUFOLENBQWVnQixNQUFmLElBQXlCLENBQTdCLEVBQWdDO0FBQzNDLGdCQUFNd0MsUUFBUSxHQUFHLEtBQUs5RCxPQUFMLENBQWE0RCxTQUFiLENBQXVCSixDQUFDLElBQUlBLENBQUMsQ0FBQzVDLE1BQUYsSUFBWUEsTUFBWixJQUFzQjRDLENBQUMsQ0FBQ3ZCLFlBQUYsSUFBa0JBLFlBQXBFLENBQWpCO0FBQ0EsZUFBS2pDLE9BQUwsQ0FBYThELFFBQWIsRUFBdUJwQixNQUF2QjtBQUNBLGVBQUsxQyxPQUFMLENBQWEyRCxNQUFiLENBQW9CRyxRQUFwQixFQUE4QixDQUE5QjtBQUNBO0FBQ1E7QUFaUyxLQUFkO0FBY0ExRCxTQUFLLENBQUNFLFFBQU4sQ0FBZUUsSUFBZixDQUFvQmlELEtBQXBCO0FBQ0FyRCxTQUFLLENBQUN1QyxPQUFOO0FBQ0EsV0FBT2MsS0FBSyxDQUFDL0MsT0FBYjtBQUNIOztBQWxOd0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9wYXRjaGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFBhdGNoZXIgdGhhdCBjYW4gcGF0Y2ggb3RoZXIgZnVuY3Rpb25zIGFsbG93aW5nIHlvdSB0byBydW4gY29kZSBiZWZvcmUsIGFmdGVyIG9yXHJcbiAqIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLiBDYW4gYWxzbyBhbHRlciBhcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMuXHJcbiAqXHJcbiAqIFRoaXMgaXMgZnJvbSBaZXJlYm9zJyBsaWJyYXJ5IHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vSnNTdWNrcy9CZXR0ZXJEaXNjb3JkQXBwL2Jsb2IvbWFzdGVyL2NsaWVudC9zcmMvbW9kdWxlcy9wYXRjaGVyLmpzfVxyXG4gKlxyXG4gKiBAbW9kdWxlIFBhdGNoZXJcclxuICogQHZlcnNpb24gMC4wLjJcclxuICovXHJcblxyXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuL2xvZ2dlclwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuaW1wb3J0IFdlYnBhY2tNb2R1bGVzIGZyb20gXCIuL3dlYnBhY2ttb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXRjaGVyIHtcclxuXHJcbiAgICBzdGF0aWMgZ2V0IHBhdGNoZXMoKSB7IHJldHVybiB0aGlzLl9wYXRjaGVzIHx8ICh0aGlzLl9wYXRjaGVzID0gW10pOyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFsbCB0aGUgcGF0Y2hlcyBkb25lIGJ5IGEgc3BlY2lmaWMgY2FsbGVyXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIE5hbWUgb2YgdGhlIHBhdGNoIGNhbGxlclxyXG4gICAgICogQG1ldGhvZFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0UGF0Y2hlc0J5Q2FsbGVyKG5hbWUpIHtcclxuXHRcdGlmICghbmFtZSkgcmV0dXJuIFtdO1xyXG4gICAgICAgIGNvbnN0IHBhdGNoZXMgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IHBhdGNoIG9mIHRoaXMucGF0Y2hlcykge1xyXG5cdFx0XHRmb3IgKGNvbnN0IGNoaWxkUGF0Y2ggb2YgcGF0Y2guY2hpbGRyZW4pIHtcclxuXHRcdFx0XHRpZiAoY2hpbGRQYXRjaC5jYWxsZXIgPT09IG5hbWUpIHBhdGNoZXMucHVzaChjaGlsZFBhdGNoKTtcclxuXHRcdFx0fVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGF0Y2hlcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVucGF0Y2hlcyBhbGwgcGF0Y2hlcyBwYXNzZWQsIG9yIHdoZW4gYSBzdHJpbmcgaXMgcGFzc2VkIHVucGF0Y2hlcyBhbGxcclxuICAgICAqIHBhdGNoZXMgZG9uZSBieSB0aGF0IHNwZWNpZmljIGNhbGxlci5cclxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRjaGVzIC0gRWl0aGVyIGFuIGFycmF5IG9mIHBhdGNoZXMgdG8gdW5wYXRjaCBvciBhIGNhbGxlciBuYW1lXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB1bnBhdGNoQWxsKHBhdGNoZXMpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHBhdGNoZXMgPT09IFwic3RyaW5nXCIpIHBhdGNoZXMgPSB0aGlzLmdldFBhdGNoZXNCeUNhbGxlcihwYXRjaGVzKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwYXRjaCBvZiBwYXRjaGVzKSB7XHJcblx0XHRcdHBhdGNoLnVucGF0Y2goKTtcclxuICAgICAgICB9XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgcmVzb2x2ZU1vZHVsZShtb2R1bGUpIHtcclxuICAgICAgICBpZiAobW9kdWxlIGluc3RhbmNlb2YgRnVuY3Rpb24gfHwgKG1vZHVsZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKG1vZHVsZSBpbnN0YW5jZW9mIEFycmF5KSkpIHJldHVybiBtb2R1bGU7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBtb2R1bGUgPT09IFwic3RyaW5nXCIpIHJldHVybiBEaXNjb3JkTW9kdWxlc1ttb2R1bGVdO1xyXG4gICAgICAgIGlmIChtb2R1bGUgaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIFdlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMobW9kdWxlKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG4gICAgc3RhdGljIG1ha2VPdmVycmlkZShwYXRjaCkge1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgaWYgKCFwYXRjaC5jaGlsZHJlbiB8fCAhcGF0Y2guY2hpbGRyZW4ubGVuZ3RoKSByZXR1cm4gcGF0Y2gub3JpZ2luYWxGdW5jdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1cGVyUGF0Y2ggb2YgcGF0Y2guY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy50eXBlID09PSBcImJlZm9yZVwiKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBzdXBlclBhdGNoLmNhbGxiYWNrKHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyLmVycihcIlBhdGNoZXJcIiwgYENvdWxkIG5vdCBmaXJlIGJlZm9yZSBjYWxsYmFjayBvZiAke3BhdGNoLmZ1bmN0aW9uTmFtZX0gZm9yICR7c3VwZXJQYXRjaC5jYWxsZXJ9YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgaW5zdGVhZHMgPSBwYXRjaC5jaGlsZHJlbi5maWx0ZXIoYyA9PiBjLnR5cGUgPT09IFwiaW5zdGVhZFwiKTtcclxuICAgICAgICAgICAgaWYgKCFpbnN0ZWFkcy5sZW5ndGgpIHtyZXR1cm5WYWx1ZSA9IHBhdGNoLm9yaWdpbmFsRnVuY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTt9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpbnN0ZWFkUGF0Y2ggb2YgaW5zdGVhZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCB0ZW1wUmV0dXJuID0gaW5zdGVhZFBhdGNoLmNhbGxiYWNrKHRoaXMsIGFyZ3VtZW50cywgcGF0Y2gub3JpZ2luYWxGdW5jdGlvbi5iaW5kKHRoaXMpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZih0ZW1wUmV0dXJuKSAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuVmFsdWUgPSB0ZW1wUmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExvZ2dlci5lcnIoXCJQYXRjaGVyXCIsIGBDb3VsZCBub3QgZmlyZSBpbnN0ZWFkIGNhbGxiYWNrIG9mICR7cGF0Y2guZnVuY3Rpb25OYW1lfSBmb3IgJHtpbnN0ZWFkUGF0Y2guY2FsbGVyfWAsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNsYXZlUGF0Y2ggb2YgcGF0Y2guY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy50eXBlID09PSBcImFmdGVyXCIpKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG5cdFx0XHRcdFx0Y29uc3QgdGVtcFJldHVybiA9IHNsYXZlUGF0Y2guY2FsbGJhY2sodGhpcywgYXJndW1lbnRzLCByZXR1cm5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZih0ZW1wUmV0dXJuKSAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuVmFsdWUgPSB0ZW1wUmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlci5lcnIoXCJQYXRjaGVyXCIsIGBDb3VsZCBub3QgZmlyZSBhZnRlciBjYWxsYmFjayBvZiAke3BhdGNoLmZ1bmN0aW9uTmFtZX0gZm9yICR7c2xhdmVQYXRjaC5jYWxsZXJ9YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVQYXRjaChwYXRjaCkge1xyXG4gICAgICAgIHBhdGNoLnByb3h5RnVuY3Rpb24gPSBwYXRjaC5tb2R1bGVbcGF0Y2guZnVuY3Rpb25OYW1lXSA9IHRoaXMubWFrZU92ZXJyaWRlKHBhdGNoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbWFrZVBhdGNoKG1vZHVsZSwgZnVuY3Rpb25OYW1lLCBuYW1lKSB7XHJcbiAgICAgICAgY29uc3QgcGF0Y2ggPSB7XHJcblx0XHRcdG5hbWUsXHJcbiAgICAgICAgICAgIG1vZHVsZSxcclxuICAgICAgICAgICAgZnVuY3Rpb25OYW1lLFxyXG4gICAgICAgICAgICBvcmlnaW5hbEZ1bmN0aW9uOiBtb2R1bGVbZnVuY3Rpb25OYW1lXSxcclxuICAgICAgICAgICAgcHJveHlGdW5jdGlvbjogbnVsbCxcclxuICAgICAgICAgICAgcmV2ZXJ0OiAoKSA9PiB7IC8vIENhbGxpbmcgcmV2ZXJ0IHdpbGwgZGVzdHJveSBhbnkgcGF0Y2hlcyBhZGRlZCB0byB0aGUgc2FtZSBtb2R1bGUgYWZ0ZXIgdGhpc1xyXG4gICAgICAgICAgICAgICAgcGF0Y2gubW9kdWxlW3BhdGNoLmZ1bmN0aW9uTmFtZV0gPSBwYXRjaC5vcmlnaW5hbEZ1bmN0aW9uO1xyXG4gICAgICAgICAgICAgICAgcGF0Y2gucHJveHlGdW5jdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBwYXRjaC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjb3VudGVyOiAwLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIHBhdGNoLnByb3h5RnVuY3Rpb24gPSBtb2R1bGVbZnVuY3Rpb25OYW1lXSA9IHRoaXMubWFrZU92ZXJyaWRlKHBhdGNoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXRjaGVzLnB1c2gocGF0Y2gpLCBwYXRjaDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHdpdGggbm8gYXJndW1lbnRzIGFuZCBubyByZXR1cm4gdmFsdWUgdGhhdCBtYXkgYmUgY2FsbGVkIHRvIHJldmVydCBjaGFuZ2VzIG1hZGUgYnkge0BsaW5rIG1vZHVsZTpQYXRjaGVyfSwgcmVzdG9yaW5nICh1bnBhdGNoaW5nKSBvcmlnaW5hbCBtZXRob2QuXHJcbiAgICAgKiBAY2FsbGJhY2sgbW9kdWxlOlBhdGNoZXJ+dW5wYXRjaFxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGNhbGxiYWNrIHRoYXQgbW9kaWZpZXMgbWV0aG9kIGxvZ2ljLiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCBvbiBlYWNoIGNhbGwgb2YgdGhlIG9yaWdpbmFsIG1ldGhvZCBhbmQgaXMgcHJvdmlkZWQgYWxsIGRhdGEgYWJvdXQgb3JpZ2luYWwgY2FsbC4gQW55IG9mIHRoZSBkYXRhIGNhbiBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnksIGJ1dCBkbyBzbyB3aXNlbHkuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHRoaXJkIGFyZ3VtZW50IGZvciB0aGUgY2FsbGJhY2sgd2lsbCBiZSBgdW5kZWZpbmVkYCBmb3IgYGJlZm9yZWAgcGF0Y2hlcy4gYG9yaWdpbmFsRnVuY3Rpb25gIGZvciBgaW5zdGVhZGAgcGF0Y2hlcyBhbmQgYHJldHVyblZhbHVlYCBmb3IgYGFmdGVyYCBwYXRjaGVzLlxyXG4gICAgICpcclxuICAgICAqIEBjYWxsYmFjayBtb2R1bGU6UGF0Y2hlcn5wYXRjaENhbGxiYWNrXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gdGhpc09iamVjdCAtIGB0aGlzYCBpbiB0aGUgY29udGV4dCBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge2FyZ3VtZW50c30gYXJndW1lbnRzIC0gVGhlIG9yaWdpbmFsIGFyZ3VtZW50cyBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0geyhmdW5jdGlvbnwqKX0gZXh0cmFWYWx1ZSAtIEZvciBgaW5zdGVhZGAgcGF0Y2hlcywgdGhpcyBpcyB0aGUgb3JpZ2luYWwgZnVuY3Rpb24gZnJvbSB0aGUgbW9kdWxlLiBGb3IgYGFmdGVyYCBwYXRjaGVzLCB0aGlzIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uLlxyXG4gICAgICogQHJldHVybiB7Kn0gTWFrZXMgc2Vuc2Ugb25seSB3aGVuIHVzaW5nIGFuIGBpbnN0ZWFkYCBvciBgYWZ0ZXJgIHBhdGNoLiBJZiBzb21ldGhpbmcgb3RoZXIgdGhhbiBgdW5kZWZpbmVkYCBpcyByZXR1cm5lZCwgdGhlIHJldHVybmVkIHZhbHVlIHJlcGxhY2VzIHRoZSB2YWx1ZSBvZiBgcmV0dXJuVmFsdWVgLiBJZiB1c2VkIGZvciBgYmVmb3JlYCB0aGUgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQuXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHBhdGNoZXMgb250byBhbm90aGVyIGZ1bmN0aW9uLCBhbGxvd2luZyB5b3VyIGNvZGUgdG8gcnVuIGJlZm9yZWhhbmQuXHJcbiAgICAgKiBVc2luZyB0aGlzLCB5b3UgYXJlIGFsc28gYWJsZSB0byBtb2RpZnkgdGhlIGluY29taW5nIGFyZ3VtZW50cyBiZWZvcmUgdGhlIG9yaWdpbmFsIG1ldGhvZCBpcyBydW4uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNhbGxlciAtIE5hbWUgb2YgdGhlIGNhbGxlciBvZiB0aGUgcGF0Y2ggZnVuY3Rpb24uIFVzaW5nIHRoaXMgeW91IGNhbiB1bmRvIGFsbCBwYXRjaGVzIHdpdGggdGhlIHNhbWUgbmFtZSB1c2luZyB7QGxpbmsgbW9kdWxlOlBhdGNoZXIudW5wYXRjaEFsbH0uIFVzZSBgXCJcImAgaWYgeW91IGRvbid0IGNhcmUuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gbW9kdWxlVG9QYXRjaCAtIE9iamVjdCB3aXRoIHRoZSBmdW5jdGlvbiB0byBiZSBwYXRjaGVkLiBDYW4gYWxzbyBwYXRjaCBhbiBvYmplY3QncyBwcm90b3R5cGUuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gTmFtZSBvZiB0aGUgbWV0aG9kIHRvIGJlIHBhdGNoZWRcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOlBhdGNoZXJ+cGF0Y2hDYWxsYmFja30gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBydW4gYmVmb3JlIHRoZSBvcmlnaW5hbCBtZXRob2RcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gT2JqZWN0IHVzZWQgdG8gcGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuZGlzcGxheU5hbWVdIFlvdSBjYW4gcHJvdmlkZSBtZWFuaW5nZnVsIG5hbWUgZm9yIGNsYXNzL29iamVjdCBwcm92aWRlZCBpbiBgd2hhdGAgcGFyYW0gZm9yIGxvZ2dpbmcgcHVycG9zZXMuIEJ5IGRlZmF1bHQsIHRoaXMgZnVuY3Rpb24gd2lsbCB0cnkgdG8gZGV0ZXJtaW5lIG5hbWUgYXV0b21hdGljYWxseS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZm9yY2VQYXRjaD10cnVlXSBTZXQgdG8gYHRydWVgIHRvIHBhdGNoIGV2ZW4gaWYgdGhlIGZ1bmN0aW9uIGRvZXNudCBleGlzdC4gKEFkZHMgbm9vcCBmdW5jdGlvbiBpbiBwbGFjZSkuXHJcbiAgICAgKiBAcmV0dXJuIHttb2R1bGU6UGF0Y2hlcn51bnBhdGNofSBGdW5jdGlvbiB3aXRoIG5vIGFyZ3VtZW50cyBhbmQgbm8gcmV0dXJuIHZhbHVlIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB0byBjYW5jZWwgKHVucGF0Y2gpIHRoaXMgcGF0Y2guIFlvdSBzaG91bGQgc2F2ZSBhbmQgcnVuIGl0IHdoZW4geW91ciBwbHVnaW4gaXMgc3RvcHBlZC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGJlZm9yZShjYWxsZXIsIG1vZHVsZVRvUGF0Y2gsIGZ1bmN0aW9uTmFtZSwgY2FsbGJhY2ssIG9wdGlvbnMgPSB7fSkgeyByZXR1cm4gdGhpcy5wdXNoQ2hpbGRQYXRjaChjYWxsZXIsIG1vZHVsZVRvUGF0Y2gsIGZ1bmN0aW9uTmFtZSwgY2FsbGJhY2ssIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwiYmVmb3JlXCJ9KSk7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHBhdGNoZXMgb250byBhbm90aGVyIGZ1bmN0aW9uLCBhbGxvd2luZyB5b3VyIGNvZGUgdG8gcnVuIGFmdGVyLlxyXG4gICAgICogVXNpbmcgdGhpcywgeW91IGFyZSBhbHNvIGFibGUgdG8gbW9kaWZ5IHRoZSByZXR1cm4gdmFsdWUsIHVzaW5nIHRoZSByZXR1cm4gb2YgeW91ciBjb2RlIGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNhbGxlciAtIE5hbWUgb2YgdGhlIGNhbGxlciBvZiB0aGUgcGF0Y2ggZnVuY3Rpb24uIFVzaW5nIHRoaXMgeW91IGNhbiB1bmRvIGFsbCBwYXRjaGVzIHdpdGggdGhlIHNhbWUgbmFtZSB1c2luZyB7QGxpbmsgbW9kdWxlOlBhdGNoZXIudW5wYXRjaEFsbH0uIFVzZSBgXCJcImAgaWYgeW91IGRvbid0IGNhcmUuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gbW9kdWxlVG9QYXRjaCAtIE9iamVjdCB3aXRoIHRoZSBmdW5jdGlvbiB0byBiZSBwYXRjaGVkLiBDYW4gYWxzbyBwYXRjaCBhbiBvYmplY3QncyBwcm90b3R5cGUuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lIC0gTmFtZSBvZiB0aGUgbWV0aG9kIHRvIGJlIHBhdGNoZWRcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOlBhdGNoZXJ+cGF0Y2hDYWxsYmFja30gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBydW4gaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIE9iamVjdCB1c2VkIHRvIHBhc3MgYWRkaXRpb25hbCBvcHRpb25zLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmRpc3BsYXlOYW1lXSBZb3UgY2FuIHByb3ZpZGUgbWVhbmluZ2Z1bCBuYW1lIGZvciBjbGFzcy9vYmplY3QgcHJvdmlkZWQgaW4gYHdoYXRgIHBhcmFtIGZvciBsb2dnaW5nIHB1cnBvc2VzLiBCeSBkZWZhdWx0LCB0aGlzIGZ1bmN0aW9uIHdpbGwgdHJ5IHRvIGRldGVybWluZSBuYW1lIGF1dG9tYXRpY2FsbHkuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZvcmNlUGF0Y2g9dHJ1ZV0gU2V0IHRvIGB0cnVlYCB0byBwYXRjaCBldmVuIGlmIHRoZSBmdW5jdGlvbiBkb2VzbnQgZXhpc3QuIChBZGRzIG5vb3AgZnVuY3Rpb24gaW4gcGxhY2UpLlxyXG4gICAgICogQHJldHVybiB7bW9kdWxlOlBhdGNoZXJ+dW5wYXRjaH0gRnVuY3Rpb24gd2l0aCBubyBhcmd1bWVudHMgYW5kIG5vIHJldHVybiB2YWx1ZSB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gY2FuY2VsICh1bnBhdGNoKSB0aGlzIHBhdGNoLiBZb3Ugc2hvdWxkIHNhdmUgYW5kIHJ1biBpdCB3aGVuIHlvdXIgcGx1Z2luIGlzIHN0b3BwZWQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhZnRlcihjYWxsZXIsIG1vZHVsZVRvUGF0Y2gsIGZ1bmN0aW9uTmFtZSwgY2FsbGJhY2ssIG9wdGlvbnMgPSB7fSkgeyByZXR1cm4gdGhpcy5wdXNoQ2hpbGRQYXRjaChjYWxsZXIsIG1vZHVsZVRvUGF0Y2gsIGZ1bmN0aW9uTmFtZSwgY2FsbGJhY2ssIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwiYWZ0ZXJcIn0pKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgcGF0Y2hlcyBvbnRvIGFub3RoZXIgZnVuY3Rpb24sIGFsbG93aW5nIHlvdXIgY29kZSB0byBydW4gaW5zdGVhZC5cclxuICAgICAqIFVzaW5nIHRoaXMsIHlvdSBhcmUgYWxzbyBhYmxlIHRvIG1vZGlmeSB0aGUgcmV0dXJuIHZhbHVlLCB1c2luZyB0aGUgcmV0dXJuIG9mIHlvdXIgY29kZSBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjYWxsZXIgLSBOYW1lIG9mIHRoZSBjYWxsZXIgb2YgdGhlIHBhdGNoIGZ1bmN0aW9uLiBVc2luZyB0aGlzIHlvdSBjYW4gdW5kbyBhbGwgcGF0Y2hlcyB3aXRoIHRoZSBzYW1lIG5hbWUgdXNpbmcge0BsaW5rIG1vZHVsZTpQYXRjaGVyLnVucGF0Y2hBbGx9LiBVc2UgYFwiXCJgIGlmIHlvdSBkb24ndCBjYXJlLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG1vZHVsZVRvUGF0Y2ggLSBPYmplY3Qgd2l0aCB0aGUgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZC4gQ2FuIGFsc28gcGF0Y2ggYW4gb2JqZWN0J3MgcHJvdG90eXBlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZ1bmN0aW9uTmFtZSAtIE5hbWUgb2YgdGhlIG1ldGhvZCB0byBiZSBwYXRjaGVkXHJcbiAgICAgKiBAcGFyYW0ge21vZHVsZTpQYXRjaGVyfnBhdGNoQ2FsbGJhY2t9IGNhbGxiYWNrIC0gRnVuY3Rpb24gdG8gcnVuIGFmdGVyIHRoZSBvcmlnaW5hbCBtZXRob2RcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gT2JqZWN0IHVzZWQgdG8gcGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuZGlzcGxheU5hbWVdIFlvdSBjYW4gcHJvdmlkZSBtZWFuaW5nZnVsIG5hbWUgZm9yIGNsYXNzL29iamVjdCBwcm92aWRlZCBpbiBgd2hhdGAgcGFyYW0gZm9yIGxvZ2dpbmcgcHVycG9zZXMuIEJ5IGRlZmF1bHQsIHRoaXMgZnVuY3Rpb24gd2lsbCB0cnkgdG8gZGV0ZXJtaW5lIG5hbWUgYXV0b21hdGljYWxseS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZm9yY2VQYXRjaD10cnVlXSBTZXQgdG8gYHRydWVgIHRvIHBhdGNoIGV2ZW4gaWYgdGhlIGZ1bmN0aW9uIGRvZXNudCBleGlzdC4gKEFkZHMgbm9vcCBmdW5jdGlvbiBpbiBwbGFjZSkuXHJcbiAgICAgKiBAcmV0dXJuIHttb2R1bGU6UGF0Y2hlcn51bnBhdGNofSBGdW5jdGlvbiB3aXRoIG5vIGFyZ3VtZW50cyBhbmQgbm8gcmV0dXJuIHZhbHVlIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB0byBjYW5jZWwgKHVucGF0Y2gpIHRoaXMgcGF0Y2guIFlvdSBzaG91bGQgc2F2ZSBhbmQgcnVuIGl0IHdoZW4geW91ciBwbHVnaW4gaXMgc3RvcHBlZC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGluc3RlYWQoY2FsbGVyLCBtb2R1bGVUb1BhdGNoLCBmdW5jdGlvbk5hbWUsIGNhbGxiYWNrLCBvcHRpb25zID0ge30pIHsgcmV0dXJuIHRoaXMucHVzaENoaWxkUGF0Y2goY2FsbGVyLCBtb2R1bGVUb1BhdGNoLCBmdW5jdGlvbk5hbWUsIGNhbGxiYWNrLCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcImluc3RlYWRcIn0pKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgcGF0Y2hlcyBvbnRvIGFub3RoZXIgZnVuY3Rpb24sIGFsbG93aW5nIHlvdXIgY29kZSB0byBydW4gYmVmb3JlLCBpbnN0ZWFkIG9yIGFmdGVyIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cclxuICAgICAqIFVzaW5nIHRoaXMgeW91IGFyZSBhYmxlIHRvIG1vZGlmeSB0aGUgaW5jb21pbmcgYXJndW1lbnRzIGJlZm9yZSB0aGUgb3JpZ2luYWwgZnVuY3Rpb24gaXMgcnVuIGFzIHdlbGwgYXMgdGhlIHJldHVyblxyXG4gICAgICogdmFsdWUgYmVmb3JlIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBhY3R1YWxseSByZXR1cm5zLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjYWxsZXIgLSBOYW1lIG9mIHRoZSBjYWxsZXIgb2YgdGhlIHBhdGNoIGZ1bmN0aW9uLiBVc2luZyB0aGlzIHlvdSBjYW4gdW5kbyBhbGwgcGF0Y2hlcyB3aXRoIHRoZSBzYW1lIG5hbWUgdXNpbmcge0BsaW5rIG1vZHVsZTpQYXRjaGVyLnVucGF0Y2hBbGx9LiBVc2UgYFwiXCJgIGlmIHlvdSBkb24ndCBjYXJlLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG1vZHVsZVRvUGF0Y2ggLSBPYmplY3Qgd2l0aCB0aGUgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZC4gQ2FuIGFsc28gcGF0Y2ggYW4gb2JqZWN0J3MgcHJvdG90eXBlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZ1bmN0aW9uTmFtZSAtIE5hbWUgb2YgdGhlIG1ldGhvZCB0byBiZSBwYXRjaGVkXHJcbiAgICAgKiBAcGFyYW0ge21vZHVsZTpQYXRjaGVyfnBhdGNoQ2FsbGJhY2t9IGNhbGxiYWNrIC0gRnVuY3Rpb24gdG8gcnVuIGFmdGVyIHRoZSBvcmlnaW5hbCBtZXRob2RcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gT2JqZWN0IHVzZWQgdG8gcGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudHlwZT1hZnRlcl0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gcnVuIHRoZSBmdW5jdGlvbiBgYmVmb3JlYCwgYGluc3RlYWRgLCBvciBgYWZ0ZXJgIHRoZSBvcmlnaW5hbC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5kaXNwbGF5TmFtZV0gWW91IGNhbiBwcm92aWRlIG1lYW5pbmdmdWwgbmFtZSBmb3IgY2xhc3Mvb2JqZWN0IHByb3ZpZGVkIGluIGB3aGF0YCBwYXJhbSBmb3IgbG9nZ2luZyBwdXJwb3Nlcy4gQnkgZGVmYXVsdCwgdGhpcyBmdW5jdGlvbiB3aWxsIHRyeSB0byBkZXRlcm1pbmUgbmFtZSBhdXRvbWF0aWNhbGx5LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5mb3JjZVBhdGNoPXRydWVdIFNldCB0byBgdHJ1ZWAgdG8gcGF0Y2ggZXZlbiBpZiB0aGUgZnVuY3Rpb24gZG9lc250IGV4aXN0LiAoQWRkcyBub29wIGZ1bmN0aW9uIGluIHBsYWNlKS5cclxuICAgICAqIEByZXR1cm4ge21vZHVsZTpQYXRjaGVyfnVucGF0Y2h9IEZ1bmN0aW9uIHdpdGggbm8gYXJndW1lbnRzIGFuZCBubyByZXR1cm4gdmFsdWUgdGhhdCBzaG91bGQgYmUgY2FsbGVkIHRvIGNhbmNlbCAodW5wYXRjaCkgdGhpcyBwYXRjaC4gWW91IHNob3VsZCBzYXZlIGFuZCBydW4gaXQgd2hlbiB5b3VyIHBsdWdpbiBpcyBzdG9wcGVkLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcHVzaENoaWxkUGF0Y2goY2FsbGVyLCBtb2R1bGVUb1BhdGNoLCBmdW5jdGlvbk5hbWUsIGNhbGxiYWNrLCBvcHRpb25zID0ge30pIHtcclxuXHRcdGNvbnN0IHt0eXBlID0gXCJhZnRlclwiLCBmb3JjZVBhdGNoID0gdHJ1ZX0gPSBvcHRpb25zO1xyXG5cdFx0Y29uc3QgbW9kdWxlID0gdGhpcy5yZXNvbHZlTW9kdWxlKG1vZHVsZVRvUGF0Y2gpO1xyXG5cdFx0aWYgKCFtb2R1bGUpIHJldHVybiBudWxsO1xyXG5cdFx0aWYgKCFtb2R1bGVbZnVuY3Rpb25OYW1lXSAmJiBmb3JjZVBhdGNoKSBtb2R1bGVbZnVuY3Rpb25OYW1lXSA9IGZ1bmN0aW9uKCkge307XHJcblx0XHRpZiAoIShtb2R1bGVbZnVuY3Rpb25OYW1lXSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkgcmV0dXJuIG51bGw7XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBtb2R1bGVUb1BhdGNoID09PSBcInN0cmluZ1wiKSBvcHRpb25zLmRpc3BsYXlOYW1lID0gbW9kdWxlVG9QYXRjaDtcclxuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWUgfHwgbW9kdWxlLmRpc3BsYXlOYW1lIHx8IG1vZHVsZS5uYW1lIHx8IG1vZHVsZS5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCBtb2R1bGUuY29uc3RydWN0b3IubmFtZTtcclxuXHJcblx0XHRjb25zdCBwYXRjaElkID0gYCR7ZGlzcGxheU5hbWV9LiR7ZnVuY3Rpb25OYW1lfWA7XHJcbiAgICAgICAgY29uc3QgcGF0Y2ggPSB0aGlzLnBhdGNoZXMuZmluZChwID0+IHAubW9kdWxlID09IG1vZHVsZSAmJiBwLmZ1bmN0aW9uTmFtZSA9PSBmdW5jdGlvbk5hbWUpIHx8IHRoaXMubWFrZVBhdGNoKG1vZHVsZSwgZnVuY3Rpb25OYW1lLCBwYXRjaElkKTtcclxuICAgICAgICBpZiAoIXBhdGNoLnByb3h5RnVuY3Rpb24pIHRoaXMucmVQYXRjaChwYXRjaCk7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSB7XHJcbiAgICAgICAgICAgIGNhbGxlcixcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgaWQ6IHBhdGNoLmNvdW50ZXIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrLFxyXG4gICAgICAgICAgICB1bnBhdGNoOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXRjaC5jaGlsZHJlbi5zcGxpY2UocGF0Y2guY2hpbGRyZW4uZmluZEluZGV4KGNwYXRjaCA9PiBjcGF0Y2guaWQgPT09IGNoaWxkLmlkICYmIGNwYXRjaC50eXBlID09PSB0eXBlKSwgMSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocGF0Y2guY2hpbGRyZW4ubGVuZ3RoIDw9IDApIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBhdGNoTnVtID0gdGhpcy5wYXRjaGVzLmZpbmRJbmRleChwID0+IHAubW9kdWxlID09IG1vZHVsZSAmJiBwLmZ1bmN0aW9uTmFtZSA9PSBmdW5jdGlvbk5hbWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5wYXRjaGVzW3BhdGNoTnVtXS5yZXZlcnQoKTtcclxuXHRcdFx0XHRcdHRoaXMucGF0Y2hlcy5zcGxpY2UocGF0Y2hOdW0sIDEpO1xyXG5cdFx0XHRcdH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcGF0Y2guY2hpbGRyZW4ucHVzaChjaGlsZCk7XHJcbiAgICAgICAgcGF0Y2guY291bnRlcisrO1xyXG4gICAgICAgIHJldHVybiBjaGlsZC51bnBhdGNoO1xyXG4gICAgfVxyXG5cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/patcher.js\n");
/***/ }),
/***/ "./src/modules/pluginapi.js":
/*!**********************************!*\
!*** ./src/modules/pluginapi.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _ui_toasts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/toasts */ \"./src/ui/toasts.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n\n\n\n\n\n\n\n\n\nconst BdApi = {\n get React() {\n return _discordmodules__WEBPACK_IMPORTED_MODULE_2__[\"default\"].React;\n },\n\n get ReactDOM() {\n return _discordmodules__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ReactDOM;\n },\n\n get WindowConfigFile() {\n if (this._windowConfigFile) return this._windowConfigFile;\n\n const electron = __webpack_require__(/*! electron */ \"electron\").remote.app;\n\n const path = __webpack_require__(/*! path */ \"path\");\n\n const base = electron.getAppPath();\n const roamingBase = electron.getPath(\"userData\");\n const roamingLocation = path.resolve(roamingBase, electron.getVersion(), \"modules\", \"discord_desktop_core\", \"injector\", \"config.json\");\n const location = path.resolve(base, \"..\", \"app\", \"config.json\");\n\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null;\n if (!realLocation) return this._windowConfigFile = null;\n return this._windowConfigFile = realLocation;\n }\n\n};\n\nBdApi.getAllWindowPreferences = function () {\n if (!this.WindowConfigFile) return {};\n return require(this.WindowConfigFile);\n};\n\nBdApi.getWindowPreference = function (key) {\n if (!this.WindowConfigFile) return undefined;\n return this.getAllWindowPreferences()[key];\n};\n\nBdApi.setWindowPreference = function (key, value) {\n if (!this.WindowConfigFile) return;\n\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const prefs = this.getAllWindowPreferences();\n prefs[key] = value;\n delete __webpack_require__.c[this.WindowConfigFile];\n fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4));\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.injectCSS = function (id, css) {\n _dommanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].injectStyle(id, css);\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.clearCSS = function (id) {\n _dommanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].removeStyle(id);\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.linkJS = function (id, url) {\n return _dommanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].injectScript(id, url);\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.unlinkJS = function (id) {\n _dommanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].removeScript(id);\n};\n/**\r\n * Shows a generic but very customizable modal.\r\n * @param {string} title - title of the modal\r\n * @param {string} content - a string of text to display in the modal\r\n */\n\n\nBdApi.alert = function (title, content) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_6__[\"default\"].alert(title, content);\n};\n/**\r\n * Shows a generic but very customizable confirmation modal with optional confirm and cancel callbacks.\r\n * @param {string} title - title of the modal\r\n * @param {(string|ReactElement|Array<string|ReactElement>)} children - a single or mixed array of react elements and strings. Everything is wrapped in Discord's `TextElement` component so strings will show and render properly.\r\n * @param {object} [options] - options to modify the modal\r\n * @param {boolean} [options.danger=false] - whether the main button should be red or not\r\n * @param {string} [options.confirmText=Okay] - text for the confirmation/submit button\r\n * @param {string} [options.cancelText=Cancel] - text for the cancel button\r\n * @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button\r\n * @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button\r\n */\n\n\nBdApi.showConfirmationModal = function (title, content, options = {}) {\n return _ui_modals__WEBPACK_IMPORTED_MODULE_6__[\"default\"].showConfirmationModal(title, content, options);\n};\n/**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\nBdApi.showToast = function (content, options = {}) {\n _ui_toasts__WEBPACK_IMPORTED_MODULE_5__[\"default\"].show(content, options);\n}; // Finds module\n\n\nBdApi.findModule = function (filter) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getModule(filter);\n}; // Finds module\n\n\nBdApi.findAllModules = function (filter) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getModule(filter, false);\n}; // Finds module\n\n\nBdApi.findModuleByProps = function (...props) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(...props);\n};\n\nBdApi.findModuleByPrototypes = function (...protos) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByPrototypes(...protos);\n};\n\nBdApi.findModuleByDisplayName = function (name) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByDisplayName(name);\n}; // Gets react instance\n\n\nBdApi.getInternalInstance = function (node) {\n if (!(node instanceof window.jQuery) && !(node instanceof Element)) return undefined;\n if (node instanceof jQuery) node = node[0];\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getReactInstance(node);\n}; // Gets data\n\n\nBdApi.loadData = function (pluginName, key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getPluginData(pluginName, key);\n};\n\nBdApi.getData = BdApi.loadData; // Sets data\n\nBdApi.saveData = function (pluginName, key, data) {\n return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setPluginData(pluginName, key, data);\n};\n\nBdApi.setData = BdApi.saveData; // Deletes data\n\nBdApi.deleteData = function (pluginName, key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].deletePluginData(pluginName, key);\n}; // Patches other functions\n\n\nBdApi.monkeyPatch = function (what, methodName, options) {\n const {\n before,\n after,\n instead,\n once = false,\n silent = false,\n force = false\n } = options;\n const displayName = options.displayName || what.displayName || what.name || what.constructor.displayName || what.constructor.name;\n if (!silent) console.log(\"patch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n if (!what[methodName]) {\n if (force) what[methodName] = function () {};else return console.error(methodName, \"does not exist for\", displayName); // eslint-disable-line no-console\n }\n\n const origMethod = what[methodName];\n\n const cancel = () => {\n if (!silent) console.log(\"unpatch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n what[methodName] = origMethod;\n };\n\n what[methodName] = function () {\n const data = {\n thisObject: this,\n methodArguments: arguments,\n cancelPatch: cancel,\n originalMethod: origMethod,\n callOriginalMethod: () => data.returnValue = data.originalMethod.apply(data.thisObject, data.methodArguments)\n };\n\n if (instead) {\n const tempRet = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].suppressErrors(instead, \"`instead` callback of \" + what[methodName].displayName)(data);\n if (tempRet !== undefined) data.returnValue = tempRet;\n } else {\n if (before) _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].suppressErrors(before, \"`before` callback of \" + what[methodName].displayName)(data);\n data.callOriginalMethod();\n if (after) _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].suppressErrors(after, \"`after` callback of \" + what[methodName].displayName)(data);\n }\n\n if (once) cancel();\n return data.returnValue;\n };\n\n what[methodName].__monkeyPatched = true;\n if (!what[methodName].__originalMethod) what[methodName].__originalMethod = origMethod;\n what[methodName].displayName = \"patched \" + (what[methodName].displayName || methodName);\n return cancel;\n}; // Event when element is removed\n\n\nBdApi.onRemoved = function (node, callback) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].onRemoved(node, callback);\n}; // Wraps function in try..catch\n\n\nBdApi.suppressErrors = function (method, message) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].suppressErrors(method, message);\n}; // Tests for valid JSON\n\n\nBdApi.testJSON = function (data) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(data);\n}; //Get another plugin\n//name = name of plugin\n\n\nBdApi.getPlugin = function (name) {\n return _pluginmanager__WEBPACK_IMPORTED_MODULE_7__[\"default\"].addonList.find(a => a.name == name);\n};\n\nBdApi.isPluginEnabled = function (name) {\n const plugin = this.getPlugin(name);\n if (!plugin) return false;\n return _pluginmanager__WEBPACK_IMPORTED_MODULE_7__[\"default\"].isEnabled(plugin.id);\n};\n\nBdApi.isThemeEnabled = function (name) {\n const theme = _thememanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"].addonList.find(a => a.name == name);\n if (!theme) return false;\n return _thememanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"].isEnabled(theme.id);\n}; // Gets data\n\n\nBdApi.getBDData = function (key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getBDData(key);\n}; // Sets data\n\n\nBdApi.setBDData = function (key, data) {\n return _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setBDData(key, data);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (BdApi);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2luYXBpLmpzPzZhOTMiXSwibmFtZXMiOlsiQmRBcGkiLCJSZWFjdCIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3RET00iLCJXaW5kb3dDb25maWdGaWxlIiwiX3dpbmRvd0NvbmZpZ0ZpbGUiLCJlbGVjdHJvbiIsInJlcXVpcmUiLCJyZW1vdGUiLCJhcHAiLCJwYXRoIiwiYmFzZSIsImdldEFwcFBhdGgiLCJyb2FtaW5nQmFzZSIsImdldFBhdGgiLCJyb2FtaW5nTG9jYXRpb24iLCJyZXNvbHZlIiwiZ2V0VmVyc2lvbiIsImxvY2F0aW9uIiwiZnMiLCJyZWFsTG9jYXRpb24iLCJleGlzdHNTeW5jIiwiZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsImdldFdpbmRvd1ByZWZlcmVuY2UiLCJrZXkiLCJ1bmRlZmluZWQiLCJzZXRXaW5kb3dQcmVmZXJlbmNlIiwidmFsdWUiLCJwcmVmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5qZWN0Q1NTIiwiaWQiLCJjc3MiLCJET01NYW5hZ2VyIiwiaW5qZWN0U3R5bGUiLCJjbGVhckNTUyIsInJlbW92ZVN0eWxlIiwibGlua0pTIiwidXJsIiwiaW5qZWN0U2NyaXB0IiwidW5saW5rSlMiLCJyZW1vdmVTY3JpcHQiLCJhbGVydCIsInRpdGxlIiwiY29udGVudCIsIk1vZGFscyIsInNob3dDb25maXJtYXRpb25Nb2RhbCIsIm9wdGlvbnMiLCJzaG93VG9hc3QiLCJUb2FzdHMiLCJzaG93IiwiZmluZE1vZHVsZSIsImZpbHRlciIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0TW9kdWxlIiwiZmluZEFsbE1vZHVsZXMiLCJmaW5kTW9kdWxlQnlQcm9wcyIsInByb3BzIiwiZ2V0QnlQcm9wcyIsImZpbmRNb2R1bGVCeVByb3RvdHlwZXMiLCJwcm90b3MiLCJnZXRCeVByb3RvdHlwZXMiLCJmaW5kTW9kdWxlQnlEaXNwbGF5TmFtZSIsIm5hbWUiLCJnZXRCeURpc3BsYXlOYW1lIiwiZ2V0SW50ZXJuYWxJbnN0YW5jZSIsIm5vZGUiLCJ3aW5kb3ciLCJqUXVlcnkiLCJFbGVtZW50IiwiVXRpbGl0aWVzIiwiZ2V0UmVhY3RJbnN0YW5jZSIsImxvYWREYXRhIiwicGx1Z2luTmFtZSIsIkRhdGFTdG9yZSIsImdldFBsdWdpbkRhdGEiLCJnZXREYXRhIiwic2F2ZURhdGEiLCJkYXRhIiwic2V0UGx1Z2luRGF0YSIsInNldERhdGEiLCJkZWxldGVEYXRhIiwiZGVsZXRlUGx1Z2luRGF0YSIsIm1vbmtleVBhdGNoIiwid2hhdCIsIm1ldGhvZE5hbWUiLCJiZWZvcmUiLCJhZnRlciIsImluc3RlYWQiLCJvbmNlIiwic2lsZW50IiwiZm9yY2UiLCJkaXNwbGF5TmFtZSIsImNvbnN0cnVjdG9yIiwiY29uc29sZSIsImxvZyIsImVycm9yIiwib3JpZ01ldGhvZCIsImNhbmNlbCIsInRoaXNPYmplY3QiLCJtZXRob2RBcmd1bWVudHMiLCJhcmd1bWVudHMiLCJjYW5jZWxQYXRjaCIsIm9yaWdpbmFsTWV0aG9kIiwiY2FsbE9yaWdpbmFsTWV0aG9kIiwicmV0dXJuVmFsdWUiLCJhcHBseSIsInRlbXBSZXQiLCJzdXBwcmVzc0Vycm9ycyIsIl9fbW9ua2V5UGF0Y2hlZCIsIl9fb3JpZ2luYWxNZXRob2QiLCJvblJlbW92ZWQiLCJjYWxsYmFjayIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJ0ZXN0SlNPTiIsImdldFBsdWdpbiIsIlBsdWdpbk1hbmFnZXIiLCJhZGRvbkxpc3QiLCJmaW5kIiwiYSIsImlzUGx1Z2luRW5hYmxlZCIsInBsdWdpbiIsImlzRW5hYmxlZCIsImlzVGhlbWVFbmFibGVkIiwidGhlbWUiLCJUaGVtZU1hbmFnZXIiLCJnZXRCRERhdGEiLCJzZXRCRERhdGEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7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QUlBOzs7QUFDQXpCLEtBQUssQ0FBQ21JLFNBQU4sR0FBa0IsVUFBUzFHLEdBQVQsRUFBY3dELElBQWQsRUFBb0I7QUFDbEMsU0FBT0osa0RBQVMsQ0FBQ3NELFNBQVYsQ0FBb0IxRyxHQUFwQixFQUF5QndELElBQXpCLENBQVA7QUFDSCxDQUZEOztBQUllakYsb0VBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9wbHVnaW5hcGkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgV2VicGFja01vZHVsZXMgZnJvbSBcIi4vd2VicGFja21vZHVsZXNcIjtcclxuaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBET01NYW5hZ2VyIGZyb20gXCIuL2RvbW1hbmFnZXJcIjtcclxuaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdWkvdG9hc3RzXCI7XHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL3VpL21vZGFsc1wiO1xyXG5pbXBvcnQgUGx1Z2luTWFuYWdlciBmcm9tIFwiLi9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vdGhlbWVtYW5hZ2VyXCI7XHJcblxyXG5jb25zdCBCZEFwaSA9IHtcclxuICAgIGdldCBSZWFjdCgpIHsgcmV0dXJuIERpc2NvcmRNb2R1bGVzLlJlYWN0OyB9LFxyXG4gICAgZ2V0IFJlYWN0RE9NKCkgeyByZXR1cm4gRGlzY29yZE1vZHVsZXMuUmVhY3RET007IH0sXHJcbiAgICBnZXQgV2luZG93Q29uZmlnRmlsZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fd2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGU7XHJcbiAgICAgICAgY29uc3QgZWxlY3Ryb24gPSByZXF1aXJlKFwiZWxlY3Ryb25cIikucmVtb3RlLmFwcDtcclxuICAgICAgICBjb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbiAgICAgICAgY29uc3QgYmFzZSA9IGVsZWN0cm9uLmdldEFwcFBhdGgoKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nQmFzZSA9IGVsZWN0cm9uLmdldFBhdGgoXCJ1c2VyRGF0YVwiKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nTG9jYXRpb24gPSBwYXRoLnJlc29sdmUocm9hbWluZ0Jhc2UsIGVsZWN0cm9uLmdldFZlcnNpb24oKSwgXCJtb2R1bGVzXCIsIFwiZGlzY29yZF9kZXNrdG9wX2NvcmVcIiwgXCJpbmplY3RvclwiLCBcImNvbmZpZy5qc29uXCIpO1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcGF0aC5yZXNvbHZlKGJhc2UsIFwiLi5cIiwgXCJhcHBcIiwgXCJjb25maWcuanNvblwiKTtcclxuICAgICAgICBjb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuICAgICAgICBjb25zdCByZWFsTG9jYXRpb24gPSBmcy5leGlzdHNTeW5jKGxvY2F0aW9uKSA/IGxvY2F0aW9uIDogZnMuZXhpc3RzU3luYyhyb2FtaW5nTG9jYXRpb24pID8gcm9hbWluZ0xvY2F0aW9uIDogbnVsbDtcclxuICAgICAgICBpZiAoIXJlYWxMb2NhdGlvbikgcmV0dXJuIHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUgPSBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlID0gcmVhbExvY2F0aW9uO1xyXG4gICAgfVxyXG59O1xyXG5cclxuQmRBcGkuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm4ge307XHJcbiAgICByZXR1cm4gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5XaW5kb3dDb25maWdGaWxlKTtcclxufTtcclxuXHJcbkJkQXBpLmdldFdpbmRvd1ByZWZlcmVuY2UgPSBmdW5jdGlvbihrZXkpIHtcclxuICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMoKVtrZXldO1xyXG59O1xyXG5cclxuQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZSA9IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcclxuICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm47XHJcbiAgICBjb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuICAgIGNvbnN0IHByZWZzID0gdGhpcy5nZXRBbGxXaW5kb3dQcmVmZXJlbmNlcygpO1xyXG4gICAgcHJlZnNba2V5XSA9IHZhbHVlO1xyXG4gICAgZGVsZXRlIHJlcXVpcmUuY2FjaGVbdGhpcy5XaW5kb3dDb25maWdGaWxlXTtcclxuICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5XaW5kb3dDb25maWdGaWxlLCBKU09OLnN0cmluZ2lmeShwcmVmcywgbnVsbCwgNCkpO1xyXG59O1xyXG5cclxuLy9JbmplY3QgQ1NTIHRvIGRvY3VtZW50IGhlYWRcclxuLy9pZCA9IGlkIG9mIGVsZW1lbnRcclxuLy9jc3MgPSBjdXN0b20gY3NzXHJcbkJkQXBpLmluamVjdENTUyA9IGZ1bmN0aW9uIChpZCwgY3NzKSB7XHJcbiAgICBET01NYW5hZ2VyLmluamVjdFN0eWxlKGlkLCBjc3MpO1xyXG59O1xyXG5cclxuLy9DbGVhciBjc3MvcmVtb3ZlIGFueSBlbGVtZW50XHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbkJkQXBpLmNsZWFyQ1NTID0gZnVuY3Rpb24gKGlkKSB7XHJcbiAgICBET01NYW5hZ2VyLnJlbW92ZVN0eWxlKGlkKTtcclxufTtcclxuXHJcbi8vSW5qZWN0IENTUyB0byBkb2N1bWVudCBoZWFkXHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbi8vY3NzID0gY3VzdG9tIGNzc1xyXG5CZEFwaS5saW5rSlMgPSBmdW5jdGlvbiAoaWQsIHVybCkge1xyXG4gICAgcmV0dXJuIERPTU1hbmFnZXIuaW5qZWN0U2NyaXB0KGlkLCB1cmwpO1xyXG59O1xyXG5cclxuLy9DbGVhciBjc3MvcmVtb3ZlIGFueSBlbGVtZW50XHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbkJkQXBpLnVubGlua0pTID0gZnVuY3Rpb24gKGlkKSB7XHJcbiAgICBET01NYW5hZ2VyLnJlbW92ZVNjcmlwdChpZCk7XHJcbn07XHJcblxyXG4vKipcclxuICogU2hvd3MgYSBnZW5lcmljIGJ1dCB2ZXJ5IGN1c3RvbWl6YWJsZSBtb2RhbC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIC0gdGl0bGUgb2YgdGhlIG1vZGFsXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IC0gYSBzdHJpbmcgb2YgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBtb2RhbFxyXG4gKi9cclxuQmRBcGkuYWxlcnQgPSBmdW5jdGlvbiAodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgIE1vZGFscy5hbGVydCh0aXRsZSwgY29udGVudCk7XHJcbn07XHJcblxyXG4vKipcclxuICogU2hvd3MgYSBnZW5lcmljIGJ1dCB2ZXJ5IGN1c3RvbWl6YWJsZSBjb25maXJtYXRpb24gbW9kYWwgd2l0aCBvcHRpb25hbCBjb25maXJtIGFuZCBjYW5jZWwgY2FsbGJhY2tzLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgbW9kYWxcclxuICogQHBhcmFtIHsoc3RyaW5nfFJlYWN0RWxlbWVudHxBcnJheTxzdHJpbmd8UmVhY3RFbGVtZW50Pil9IGNoaWxkcmVuIC0gYSBzaW5nbGUgb3IgbWl4ZWQgYXJyYXkgb2YgcmVhY3QgZWxlbWVudHMgYW5kIHN0cmluZ3MuIEV2ZXJ5dGhpbmcgaXMgd3JhcHBlZCBpbiBEaXNjb3JkJ3MgYFRleHRFbGVtZW50YCBjb21wb25lbnQgc28gc3RyaW5ncyB3aWxsIHNob3cgYW5kIHJlbmRlciBwcm9wZXJseS5cclxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIG9wdGlvbnMgdG8gbW9kaWZ5IHRoZSBtb2RhbFxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmRhbmdlcj1mYWxzZV0gLSB3aGV0aGVyIHRoZSBtYWluIGJ1dHRvbiBzaG91bGQgYmUgcmVkIG9yIG5vdFxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY29uZmlybVRleHQ9T2theV0gLSB0ZXh0IGZvciB0aGUgY29uZmlybWF0aW9uL3N1Ym1pdCBidXR0b25cclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmNhbmNlbFRleHQ9Q2FuY2VsXSAtIHRleHQgZm9yIHRoZSBjYW5jZWwgYnV0dG9uXHJcbiAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLm9uQ29uZmlybT1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIHN1Ym1pdCBidXR0b25cclxuICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25DYW5jZWw9Tk9PUF0gLSBjYWxsYmFjayB0byBvY2N1ciB3aGVuIGNsaWNraW5nIHRoZSBjYW5jZWwgYnV0dG9uXHJcbiAqL1xyXG5CZEFwaS5zaG93Q29uZmlybWF0aW9uTW9kYWwgPSBmdW5jdGlvbiAodGl0bGUsIGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgcmV0dXJuIE1vZGFscy5zaG93Q29uZmlybWF0aW9uTW9kYWwodGl0bGUsIGNvbnRlbnQsIG9wdGlvbnMpO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2hvd3MgYSB0b2FzdCBzaW1pbGFyIHRvIGFuZHJvaWQgdG93YXJkcyB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IFRoZSBzdHJpbmcgdG8gc2hvdyBpbiB0aGUgdG9hc3QuXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIE9wdGlvbnMgb2JqZWN0LiBPcHRpb25hbCBwYXJhbWV0ZXIuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy50eXBlPVwiXCJdIENoYW5nZXMgdGhlIHR5cGUgb2YgdGhlIHRvYXN0IHN0eWxpc3RpY2FsbHkgYW5kIHNlbWFudGljYWxseS4gQ2hvaWNlczogXCJcIiwgXCJpbmZvXCIsIFwic3VjY2Vzc1wiLCBcImRhbmdlclwiL1wiZXJyb3JcIiwgXCJ3YXJuaW5nXCIvXCJ3YXJuXCIuIERlZmF1bHQ6IFwiXCJcclxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pY29uPXRydWVdIERldGVybWluZXMgd2hldGhlciB0aGUgaWNvbiBzaG91bGQgc2hvdyBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlLiBBIHRvYXN0IHdpdGhvdXQgdHlwZSB3aWxsIGFsd2F5cyBoYXZlIG5vIGljb24uIERlZmF1bHQ6IHRydWVcclxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnRpbWVvdXQ9MzAwMF0gQWRqdXN0cyB0aGUgdGltZSAoaW4gbXMpIHRoZSB0b2FzdCBzaG91bGQgYmUgc2hvd24gZm9yIGJlZm9yZSBkaXNhcHBlYXJpbmcgYXV0b21hdGljYWxseS4gRGVmYXVsdDogMzAwMFxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmZvcmNlU2hvdz1mYWxzZV0gV2hldGhlciB0byBmb3JjZSBzaG93aW5nIHRoZSB0b2FzdCBhbmQgaWdub3JlIHRoZSBiZCBzZXR0aW5nXHJcbiAqL1xyXG5CZEFwaS5zaG93VG9hc3QgPSBmdW5jdGlvbihjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgIFRvYXN0cy5zaG93KGNvbnRlbnQsIG9wdGlvbnMpO1xyXG59O1xyXG5cclxuLy8gRmluZHMgbW9kdWxlXHJcbkJkQXBpLmZpbmRNb2R1bGUgPSBmdW5jdGlvbihmaWx0ZXIpIHtcclxuICAgIHJldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUoZmlsdGVyKTtcclxufTtcclxuXHJcbi8vIEZpbmRzIG1vZHVsZVxyXG5CZEFwaS5maW5kQWxsTW9kdWxlcyA9IGZ1bmN0aW9uKGZpbHRlcikge1xyXG4gICAgcmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShmaWx0ZXIsIGZhbHNlKTtcclxufTtcclxuXHJcbi8vIEZpbmRzIG1vZHVsZVxyXG5CZEFwaS5maW5kTW9kdWxlQnlQcm9wcyA9IGZ1bmN0aW9uKC4uLnByb3BzKSB7XHJcbiAgICByZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyguLi5wcm9wcyk7XHJcbn07XHJcblxyXG5CZEFwaS5maW5kTW9kdWxlQnlQcm90b3R5cGVzID0gZnVuY3Rpb24oLi4ucHJvdG9zKSB7XHJcbiAgICByZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKC4uLnByb3Rvcyk7XHJcbn07XHJcblxyXG5CZEFwaS5maW5kTW9kdWxlQnlEaXNwbGF5TmFtZSA9IGZ1bmN0aW9uKG5hbWUpIHtcclxuICAgIHJldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeURpc3BsYXlOYW1lKG5hbWUpO1xyXG59O1xyXG5cclxuLy8gR2V0cyByZWFjdCBpbnN0YW5jZVxyXG5CZEFwaS5nZXRJbnRlcm5hbEluc3RhbmNlID0gZnVuY3Rpb24obm9kZSkge1xyXG4gICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIHdpbmRvdy5qUXVlcnkpICYmICEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBqUXVlcnkpIG5vZGUgPSBub2RlWzBdO1xyXG4gICAgcmV0dXJuIFV0aWxpdGllcy5nZXRSZWFjdEluc3RhbmNlKG5vZGUpO1xyXG59O1xyXG5cclxuLy8gR2V0cyBkYXRhXHJcbkJkQXBpLmxvYWREYXRhID0gZnVuY3Rpb24ocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLmdldFBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KTtcclxufTtcclxuXHJcbkJkQXBpLmdldERhdGEgPSBCZEFwaS5sb2FkRGF0YTtcclxuXHJcbi8vIFNldHMgZGF0YVxyXG5CZEFwaS5zYXZlRGF0YSA9IGZ1bmN0aW9uKHBsdWdpbk5hbWUsIGtleSwgZGF0YSkge1xyXG4gICAgcmV0dXJuIERhdGFTdG9yZS5zZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgZGF0YSk7XHJcbn07XHJcblxyXG5CZEFwaS5zZXREYXRhID0gQmRBcGkuc2F2ZURhdGE7XHJcblxyXG4vLyBEZWxldGVzIGRhdGFcclxuQmRBcGkuZGVsZXRlRGF0YSA9IGZ1bmN0aW9uKHBsdWdpbk5hbWUsIGtleSkge1xyXG4gICAgcmV0dXJuIERhdGFTdG9yZS5kZWxldGVQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSk7XHJcbn07XHJcblxyXG4vLyBQYXRjaGVzIG90aGVyIGZ1bmN0aW9uc1xyXG5CZEFwaS5tb25rZXlQYXRjaCA9IGZ1bmN0aW9uKHdoYXQsIG1ldGhvZE5hbWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHtiZWZvcmUsIGFmdGVyLCBpbnN0ZWFkLCBvbmNlID0gZmFsc2UsIHNpbGVudCA9IGZhbHNlLCBmb3JjZSA9IGZhbHNlfSA9IG9wdGlvbnM7XHJcbiAgICBjb25zdCBkaXNwbGF5TmFtZSA9IG9wdGlvbnMuZGlzcGxheU5hbWUgfHwgd2hhdC5kaXNwbGF5TmFtZSB8fCB3aGF0Lm5hbWUgfHwgd2hhdC5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCB3aGF0LmNvbnN0cnVjdG9yLm5hbWU7XHJcbiAgICBpZiAoIXNpbGVudCkgY29uc29sZS5sb2coXCJwYXRjaFwiLCBtZXRob2ROYW1lLCBcIm9mXCIsIGRpc3BsYXlOYW1lKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXHJcbiAgICBpZiAoIXdoYXRbbWV0aG9kTmFtZV0pIHtcclxuICAgICAgICBpZiAoZm9yY2UpIHdoYXRbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHt9O1xyXG4gICAgICAgIGVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IobWV0aG9kTmFtZSwgXCJkb2VzIG5vdCBleGlzdCBmb3JcIiwgZGlzcGxheU5hbWUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcclxuICAgIH1cclxuICAgIGNvbnN0IG9yaWdNZXRob2QgPSB3aGF0W21ldGhvZE5hbWVdO1xyXG4gICAgY29uc3QgY2FuY2VsID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICghc2lsZW50KSBjb25zb2xlLmxvZyhcInVucGF0Y2hcIiwgbWV0aG9kTmFtZSwgXCJvZlwiLCBkaXNwbGF5TmFtZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgIHdoYXRbbWV0aG9kTmFtZV0gPSBvcmlnTWV0aG9kO1xyXG4gICAgfTtcclxuICAgIHdoYXRbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgICAgICB0aGlzT2JqZWN0OiB0aGlzLFxyXG4gICAgICAgICAgICBtZXRob2RBcmd1bWVudHM6IGFyZ3VtZW50cyxcclxuICAgICAgICAgICAgY2FuY2VsUGF0Y2g6IGNhbmNlbCxcclxuICAgICAgICAgICAgb3JpZ2luYWxNZXRob2Q6IG9yaWdNZXRob2QsXHJcbiAgICAgICAgICAgIGNhbGxPcmlnaW5hbE1ldGhvZDogKCkgPT4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEub3JpZ2luYWxNZXRob2QuYXBwbHkoZGF0YS50aGlzT2JqZWN0LCBkYXRhLm1ldGhvZEFyZ3VtZW50cylcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChpbnN0ZWFkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBSZXQgPSBVdGlsaXRpZXMuc3VwcHJlc3NFcnJvcnMoaW5zdGVhZCwgXCJgaW5zdGVhZGAgY2FsbGJhY2sgb2YgXCIgKyB3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lKShkYXRhKTtcclxuICAgICAgICAgICAgaWYgKHRlbXBSZXQgIT09IHVuZGVmaW5lZCkgZGF0YS5yZXR1cm5WYWx1ZSA9IHRlbXBSZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoYmVmb3JlKSBVdGlsaXRpZXMuc3VwcHJlc3NFcnJvcnMoYmVmb3JlLCBcImBiZWZvcmVgIGNhbGxiYWNrIG9mIFwiICsgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSkoZGF0YSk7XHJcbiAgICAgICAgICAgIGRhdGEuY2FsbE9yaWdpbmFsTWV0aG9kKCk7XHJcbiAgICAgICAgICAgIGlmIChhZnRlcikgVXRpbGl0aWVzLnN1cHByZXNzRXJyb3JzKGFmdGVyLCBcImBhZnRlcmAgY2FsbGJhY2sgb2YgXCIgKyB3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lKShkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uY2UpIGNhbmNlbCgpO1xyXG4gICAgICAgIHJldHVybiBkYXRhLnJldHVyblZhbHVlO1xyXG4gICAgfTtcclxuICAgIHdoYXRbbWV0aG9kTmFtZV0uX19tb25rZXlQYXRjaGVkID0gdHJ1ZTtcclxuICAgIGlmICghd2hhdFttZXRob2ROYW1lXS5fX29yaWdpbmFsTWV0aG9kKSB3aGF0W21ldGhvZE5hbWVdLl9fb3JpZ2luYWxNZXRob2QgPSBvcmlnTWV0aG9kO1xyXG4gICAgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSA9IFwicGF0Y2hlZCBcIiArICh3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lIHx8IG1ldGhvZE5hbWUpO1xyXG4gICAgcmV0dXJuIGNhbmNlbDtcclxufTtcclxuLy8gRXZlbnQgd2hlbiBlbGVtZW50IGlzIHJlbW92ZWRcclxuQmRBcGkub25SZW1vdmVkID0gZnVuY3Rpb24obm9kZSwgY2FsbGJhY2spIHtcclxuICAgIHJldHVybiBVdGlsaXRpZXMub25SZW1vdmVkKG5vZGUsIGNhbGxiYWNrKTtcclxufTtcclxuXHJcbi8vIFdyYXBzIGZ1bmN0aW9uIGluIHRyeS4uY2F0Y2hcclxuQmRBcGkuc3VwcHJlc3NFcnJvcnMgPSBmdW5jdGlvbihtZXRob2QsIG1lc3NhZ2UpIHtcclxuICAgIHJldHVybiBVdGlsaXRpZXMuc3VwcHJlc3NFcnJvcnMobWV0aG9kLCBtZXNzYWdlKTtcclxufTtcclxuXHJcbi8vIFRlc3RzIGZvciB2YWxpZCBKU09OXHJcbkJkQXBpLnRlc3RKU09OID0gZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgcmV0dXJuIFV0aWxpdGllcy50ZXN0SlNPTihkYXRhKTtcclxufTtcclxuXHJcbi8vR2V0IGFub3RoZXIgcGx1Z2luXHJcbi8vbmFtZSA9IG5hbWUgb2YgcGx1Z2luXHJcbkJkQXBpLmdldFBsdWdpbiA9IGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICByZXR1cm4gUGx1Z2luTWFuYWdlci5hZGRvbkxpc3QuZmluZChhID0+IGEubmFtZSA9PSBuYW1lKTtcclxufTtcclxuXHJcbkJkQXBpLmlzUGx1Z2luRW5hYmxlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcclxuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMuZ2V0UGx1Z2luKG5hbWUpO1xyXG4gICAgaWYgKCFwbHVnaW4pIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBQbHVnaW5NYW5hZ2VyLmlzRW5hYmxlZChwbHVnaW4uaWQpO1xyXG59O1xyXG5cclxuQmRBcGkuaXNUaGVtZUVuYWJsZWQgPSBmdW5jdGlvbihuYW1lKSB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFRoZW1lTWFuYWdlci5hZGRvbkxpc3QuZmluZChhID0+IGEubmFtZSA9PSBuYW1lKTtcclxuICAgIGlmICghdGhlbWUpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBUaGVtZU1hbmFnZXIuaXNFbmFibGVkKHRoZW1lLmlkKTtcclxufTtcclxuXHJcbi8vIEdldHMgZGF0YVxyXG5CZEFwaS5nZXRCRERhdGEgPSBmdW5jdGlvbihrZXkpIHtcclxuICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0QkREYXRhKGtleSk7XHJcbn07XHJcblxyXG4vLyBTZXRzIGRhdGFcclxuQmRBcGkuc2V0QkREYXRhID0gZnVuY3Rpb24oa2V5LCBkYXRhKSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLnNldEJERGF0YShrZXksIGRhdGEpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQmRBcGk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/pluginapi.js\n");
/***/ }),
/***/ "./src/modules/pluginmanager.js":
/*!**************************************!*\
!*** ./src/modules/pluginmanager.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _addonmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./addonmanager */ \"./src/modules/addonmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/addonerror */ \"./src/structs/addonerror.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n/* harmony import */ var _ui_toasts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ui/toasts */ \"./src/ui/toasts.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _ui_settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../ui/settings */ \"./src/ui/settings.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst electronRemote = __webpack_require__(/*! electron */ \"electron\").remote;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PluginManager extends _addonmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n get name() {\n return \"PluginManager\";\n }\n\n get moduleExtension() {\n return \".js\";\n }\n\n get extension() {\n return \".plugin.js\";\n }\n\n get addonFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\");\n }\n\n get prefix() {\n return \"plugin\";\n }\n\n get language() {\n return \"javascript\";\n }\n\n constructor() {\n super();\n this.onSwitch = this.onSwitch.bind(this);\n this.observer = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n this.onMutation(mutations[i]);\n }\n });\n }\n\n initialize() {\n const errors = super.initialize();\n this.setupFunctions();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].registerPanel(\"plugins\", _strings__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Panels.plugins, {\n element: () => _ui_settings__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getAddonPanel(_strings__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Panels.plugins, this.addonList, this.state, {\n folder: this.addonFolder,\n onChange: this.togglePlugin.bind(this),\n reload: this.reloadPlugin.bind(this),\n refreshList: this.updatePluginList.bind(this),\n saveAddon: this.saveAddon.bind(this),\n editAddon: this.editAddon.bind(this),\n deleteAddon: this.deleteAddon.bind(this),\n prefix: this.prefix\n })\n });\n return errors;\n }\n /* Aliases */\n\n\n updatePluginList() {\n return this.updateList();\n }\n\n loadAllPlugins() {\n return this.loadAllAddons();\n }\n\n enablePlugin(idOrAddon) {\n return this.enableAddon(idOrAddon);\n }\n\n disablePlugin(idOrAddon) {\n return this.disableAddon(idOrAddon);\n }\n\n togglePlugin(id) {\n return this.toggleAddon(id);\n }\n\n unloadPlugin(idOrFileOrAddon) {\n return this.unloadAddon(idOrFileOrAddon);\n }\n\n loadPlugin(filename) {\n const error = this.loadAddon(filename);\n if (error) _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].showAddonErrors({\n themes: [error]\n });\n }\n\n reloadPlugin(idOrFileOrAddon) {\n const error = this.reloadAddon(idOrFileOrAddon);\n if (error) _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].showAddonErrors({\n plugins: [error]\n });\n return typeof idOrFileOrAddon == \"string\" ? this.addonList.find(c => c.id == idOrFileOrAddon || c.filename == idOrFileOrAddon) : idOrFileOrAddon;\n }\n /* Overrides */\n\n\n initializeAddon(addon) {\n if (!addon.type) return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](addon.name, addon.filename, \"Plugin had no exports\", {\n message: \"Plugin had no exports or no name property.\",\n stack: \"\"\n });\n\n try {\n const thePlugin = new addon.type();\n addon.plugin = thePlugin;\n addon.name = thePlugin.getName() || addon.name;\n addon.author = thePlugin.getAuthor() || addon.author || \"No author\";\n addon.description = thePlugin.getDescription() || addon.description || \"No description\";\n addon.version = thePlugin.getVersion() || addon.version || \"No version\";\n\n try {\n if (typeof addon.plugin.load == \"function\") addon.plugin.load();\n } catch (error) {\n this.state[addon.id] = false;\n return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](addon.name, addon.filename, \"load() could not be fired.\", {\n message: error.message,\n stack: error.stack\n });\n }\n } catch (error) {\n return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](addon.name, addon.filename, \"Could not be constructed.\", {\n message: error.message,\n stack: error.stack\n });\n }\n }\n\n getFileModification(module, fileContent, meta) {\n module._compile(fileContent, module.filename);\n\n const didExport = !_utilities__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isEmpty(module.exports);\n\n if (didExport) {\n meta.type = module.exports;\n module.exports = meta;\n return \"\";\n }\n\n fileContent += `\\nmodule.exports = ${JSON.stringify(meta)};\\nmodule.exports.type = ${meta.exports || meta.name};`;\n return fileContent;\n }\n\n startAddon(id) {\n return this.startPlugin(id);\n }\n\n stopAddon(id) {\n return this.stopPlugin(id);\n }\n\n startPlugin(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n const plugin = addon.plugin;\n\n try {\n plugin.start();\n this.emit(\"started\", addon.id);\n _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].show(`${addon.name} v${addon.version} has started.`);\n } catch (err) {\n this.state[addon.id] = false;\n _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${addon.name} v${addon.version} could not be started.`);\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].stacktrace(this.name, addon.name + \" could not be started.\", err);\n return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](addon.name, addon.filename, \"start() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n stopPlugin(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n const plugin = addon.plugin;\n\n try {\n plugin.stop();\n this.emit(\"stopped\", addon.id);\n _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].show(`${addon.name} v${addon.version} has stopped.`);\n } catch (err) {\n this.state[addon.id] = false;\n _ui_toasts__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`${addon.name} v${addon.version} could not be stopped.`);\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].stacktrace(this.name, addon.name + \" could not be stopped.\", err);\n return new _structs_addonerror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](addon.name, addon.filename, \"stop() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n setupFunctions() {\n electronRemote.getCurrentWebContents().on(\"did-navigate-in-page\", this.onSwitch.bind(this));\n this.observer.observe(document, {\n childList: true,\n subtree: true\n });\n }\n\n onSwitch() {\n this.emit(\"page-switch\");\n\n for (let i = 0; i < this.addonList.length; i++) {\n const plugin = this.addonList[i].plugin;\n if (!this.state[this.addonList[i].id]) continue;\n\n if (typeof plugin.onSwitch === \"function\") {\n try {\n plugin.onSwitch();\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].stacktrace(this.name, \"Unable to fire onSwitch for \" + this.addonList[i].name + \".\", err);\n }\n }\n }\n }\n\n onMutation(mutation) {\n for (let i = 0; i < this.addonList.length; i++) {\n const plugin = this.addonList[i].plugin;\n if (!this.state[this.addonList[i].id]) continue;\n\n if (typeof plugin.observer === \"function\") {\n try {\n plugin.observer(mutation);\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].stacktrace(this.name, \"Unable to fire observer for \" + this.addonList[i].name + \".\", err);\n }\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2lubWFuYWdlci5qcz9kMTczIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiZWxlY3Ryb25SZW1vdGUiLCJyZW1vdGUiLCJQbHVnaW5NYW5hZ2VyIiwiQWRkb25NYW5hZ2VyIiwibmFtZSIsIm1vZHVsZUV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImFkZG9uRm9sZGVyIiwicmVzb2x2ZSIsIkNvbmZpZyIsImRhdGFQYXRoIiwicHJlZml4IiwibGFuZ3VhZ2UiLCJjb25zdHJ1Y3RvciIsIm9uU3dpdGNoIiwiYmluZCIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm11dGF0aW9ucyIsImkiLCJtbGVuIiwibGVuZ3RoIiwib25NdXRhdGlvbiIsImluaXRpYWxpemUiLCJlcnJvcnMiLCJzZXR1cEZ1bmN0aW9ucyIsIlNldHRpbmdzIiwicmVnaXN0ZXJQYW5lbCIsIlN0cmluZ3MiLCJQYW5lbHMiLCJwbHVnaW5zIiwiZWxlbWVudCIsIlNldHRpbmdzUmVuZGVyZXIiLCJnZXRBZGRvblBhbmVsIiwiYWRkb25MaXN0Iiwic3RhdGUiLCJmb2xkZXIiLCJvbkNoYW5nZSIsInRvZ2dsZVBsdWdpbiIsInJlbG9hZCIsInJlbG9hZFBsdWdpbiIsInJlZnJlc2hMaXN0IiwidXBkYXRlUGx1Z2luTGlzdCIsInNhdmVBZGRvbiIsImVkaXRBZGRvbiIsImRlbGV0ZUFkZG9uIiwidXBkYXRlTGlzdCIsImxvYWRBbGxQbHVnaW5zIiwibG9hZEFsbEFkZG9ucyIsImVuYWJsZVBsdWdpbiIsImlkT3JBZGRvbiIsImVuYWJsZUFkZG9uIiwiZGlzYWJsZVBsdWdpbiIsImRpc2FibGVBZGRvbiIsImlkIiwidG9nZ2xlQWRkb24iLCJ1bmxvYWRQbHVnaW4iLCJpZE9yRmlsZU9yQWRkb24iLCJ1bmxvYWRBZGRvbiIsImxvYWRQbHVnaW4iLCJmaWxlbmFtZSIsImVycm9yIiwibG9hZEFkZG9uIiwiTW9kYWxzIiwic2hvd0FkZG9uRXJyb3JzIiwidGhlbWVzIiwicmVsb2FkQWRkb24iLCJmaW5kIiwiYyIsImluaXRpYWxpemVBZGRvbiIsImFkZG9uIiwidHlwZSIsIkFkZG9uRXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJ0aGVQbHVnaW4iLCJwbHVnaW4iLCJnZXROYW1lIiwiYXV0aG9yIiwiZ2V0QXV0aG9yIiwiZGVzY3JpcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibG9hZCIsImdldEZpbGVNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJmaWxlQ29udGVudCIsIm1ldGEiLCJfY29tcGlsZSIsImRpZEV4cG9ydCIsIlV0aWxpdGllcyIsImlzRW1wdHkiLCJleHBvcnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0QWRkb24iLCJzdGFydFBsdWdpbiIsInN0b3BBZGRvbiIsInN0b3BQbHVnaW4iLCJwIiwic3RhcnQiLCJlbWl0IiwiVG9hc3RzIiwic2hvdyIsImVyciIsIkxvZ2dlciIsInN0YWNrdHJhY2UiLCJzdG9wIiwiZ2V0Q3VycmVudFdlYkNvbnRlbnRzIiwib24iLCJvYnNlcnZlIiwiZG9jdW1lbnQiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwibXV0YXRpb24iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxJQUFJLEdBQUdDLG1CQUFPLENBQUMsa0JBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsY0FBYyxHQUFHRCxtQkFBTyxDQUFDLDBCQUFELENBQVAsQ0FBb0JFLE1BQTNDOztBQUVlLG1FQUFJLE1BQU1DLGFBQU4sU0FBNEJDLHFEQUE1QixDQUF5QztBQUN4RCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLGVBQUosR0FBc0I7QUFBQyxXQUFPLEtB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QzlELFFBQVA7QUFBb0IsU0FBMUIsQ0FDQSxPQUFPMkYsR0FBUCxFQUFZO0FBQUVDLHlEQUFNLENBQUNDLFVBQVAsQ0FBa0IsS0FBS3ZHLElBQXZCLEVBQTZCLGlDQUFpQyxLQUFLOEIsU0FBTCxDQUFlZixDQUFmLEVBQWtCZixJQUFuRCxHQUEwRCxHQUF2RixFQUE0RnFHLEdBQTVGO0FBQW1HO0FBQ3BIO0FBQ0o7QUFDSjs7QUFFRG5GLFlBQVUsQ0FBQzZGLFFBQUQsRUFBVztBQUNqQixTQUFLLElBQUloRyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHLEtBQUtlLFNBQUwsQ0FBZWIsTUFBbkMsRUFBMkNGLENBQUMsRUFBNUMsRUFBZ0Q7QUFDNUMsWUFBTXlELE1BQU0sR0FBRyxLQUFLMUMsU0FBTCxDQUFlZixDQUFmLEVBQWtCeUQsTUFBakM7QUFDQSxVQUFJLENBQUMsS0FBS3pDLEtBQUwsQ0FBVyxLQUFLRCxTQUFMLENBQWVmLENBQWYsRUFBa0JtQyxFQUE3QixDQUFMLEVBQXVDOztBQUN2QyxVQUFJLE9BQU9zQixNQUFNLENBQUM1RCxRQUFkLEtBQTJCLFVBQS9CLEVBQTJDO0FBQ3ZDLFlBQUk7QUFBRTRELGdCQUFNLENBQUM1RCxRQUFQLENBQWdCbUcsUUFBaEI7QUFBNEIsU0FBbEMsQ0FDQSxPQUFPVixHQUFQLEVBQVk7QUFBRUMseURBQU0sQ0FBQ0MsVUFBUCxDQUFrQixLQUFLdkcsSUFBdkIsRUFBNkIsaUNBQWlDLEtBQUs4QixTQUFMLENBQWVmLENBQWYsRUFBa0JmLElBQW5ELEdBQTBELEdBQXZGLEVBQTRGcUcsR0FBNUY7QUFBbUc7QUFDcEg7QUFDSjtBQUNKOztBQTFKdUQsQ0FBN0MsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3BsdWdpbm1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIjtcclxuaW1wb3J0IEFkZG9uTWFuYWdlciBmcm9tIFwiLi9hZGRvbm1hbmFnZXJcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IEFkZG9uRXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvYWRkb25lcnJvclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCBTdHJpbmdzIGZyb20gXCIuL3N0cmluZ3NcIjtcclxuXHJcbmltcG9ydCBUb2FzdHMgZnJvbSBcIi4uL3VpL3RvYXN0c1wiO1xyXG5pbXBvcnQgTW9kYWxzIGZyb20gXCIuLi91aS9tb2RhbHNcIjtcclxuaW1wb3J0IFNldHRpbmdzUmVuZGVyZXIgZnJvbSBcIi4uL3VpL3NldHRpbmdzXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGVsZWN0cm9uUmVtb3RlID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBQbHVnaW5NYW5hZ2VyIGV4dGVuZHMgQWRkb25NYW5hZ2VyIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlBsdWdpbk1hbmFnZXJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIi5qc1wiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiLnBsdWdpbi5qc1wiO31cclxuICAgIGdldCBhZGRvbkZvbGRlcigpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJwbHVnaW5zXCIpO31cclxuICAgIGdldCBwcmVmaXgoKSB7cmV0dXJuIFwicGx1Z2luXCI7fVxyXG4gICAgZ2V0IGxhbmd1YWdlKCkge3JldHVybiBcImphdmFzY3JpcHRcIjt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLm9uU3dpdGNoID0gdGhpcy5vblN3aXRjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBtbGVuID0gbXV0YXRpb25zLmxlbmd0aDsgaSA8IG1sZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbk11dGF0aW9uKG11dGF0aW9uc1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IHN1cGVyLmluaXRpYWxpemUoKTtcclxuICAgICAgICB0aGlzLnNldHVwRnVuY3Rpb25zKCk7XHJcbiAgICAgICAgU2V0dGluZ3MucmVnaXN0ZXJQYW5lbChcInBsdWdpbnNcIiwgU3RyaW5ncy5QYW5lbHMucGx1Z2lucywge2VsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuZ2V0QWRkb25QYW5lbChTdHJpbmdzLlBhbmVscy5wbHVnaW5zLCB0aGlzLmFkZG9uTGlzdCwgdGhpcy5zdGF0ZSwge1xyXG4gICAgICAgICAgICBmb2xkZXI6IHRoaXMuYWRkb25Gb2xkZXIsXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnRvZ2dsZVBsdWdpbi5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICByZWxvYWQ6IHRoaXMucmVsb2FkUGx1Z2luLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0OiB0aGlzLnVwZGF0ZVBsdWdpbkxpc3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgc2F2ZUFkZG9uOiB0aGlzLnNhdmVBZGRvbi5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBlZGl0QWRkb246IHRoaXMuZWRpdEFkZG9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIGRlbGV0ZUFkZG9uOiB0aGlzLmRlbGV0ZUFkZG9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHByZWZpeDogdGhpcy5wcmVmaXhcclxuICAgICAgICB9KX0pO1xyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWxpYXNlcyAqL1xyXG4gICAgdXBkYXRlUGx1Z2luTGlzdCgpIHtyZXR1cm4gdGhpcy51cGRhdGVMaXN0KCk7fVxyXG4gICAgbG9hZEFsbFBsdWdpbnMoKSB7cmV0dXJuIHRoaXMubG9hZEFsbEFkZG9ucygpO31cclxuXHJcbiAgICBlbmFibGVQbHVnaW4oaWRPckFkZG9uKSB7cmV0dXJuIHRoaXMuZW5hYmxlQWRkb24oaWRPckFkZG9uKTt9XHJcbiAgICBkaXNhYmxlUGx1Z2luKGlkT3JBZGRvbikge3JldHVybiB0aGlzLmRpc2FibGVBZGRvbihpZE9yQWRkb24pO31cclxuICAgIHRvZ2dsZVBsdWdpbihpZCkge3JldHVybiB0aGlzLnRvZ2dsZUFkZG9uKGlkKTt9XHJcblxyXG4gICAgdW5sb2FkUGx1Z2luKGlkT3JGaWxlT3JBZGRvbikge3JldHVybiB0aGlzLnVubG9hZEFkZG9uKGlkT3JGaWxlT3JBZGRvbik7fVxyXG5cclxuICAgIGxvYWRQbHVnaW4oZmlsZW5hbWUpIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubG9hZEFkZG9uKGZpbGVuYW1lKTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93QWRkb25FcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZFBsdWdpbihpZE9yRmlsZU9yQWRkb24pIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMucmVsb2FkQWRkb24oaWRPckZpbGVPckFkZG9uKTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93QWRkb25FcnJvcnMoe3BsdWdpbnM6IFtlcnJvcl19KTtcclxuICAgICAgICByZXR1cm4gdHlwZW9mKGlkT3JGaWxlT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JBZGRvbiB8fCBjLmZpbGVuYW1lID09IGlkT3JGaWxlT3JBZGRvbikgOiBpZE9yRmlsZU9yQWRkb247XHJcbiAgICB9XHJcblxyXG4gICAgLyogT3ZlcnJpZGVzICovXHJcbiAgICBpbml0aWFsaXplQWRkb24oYWRkb24pIHtcclxuICAgICAgICBpZiAoIWFkZG9uLnR5cGUpIHJldHVybiBuZXcgQWRkb25FcnJvcihhZGRvbi5uYW1lLCBhZGRvbi5maWxlbmFtZSwgXCJQbHVnaW4gaGFkIG5vIGV4cG9ydHNcIiwge21lc3NhZ2U6IFwiUGx1Z2luIGhhZCBubyBleHBvcnRzIG9yIG5vIG5hbWUgcHJvcGVydHkuXCIsIHN0YWNrOiBcIlwifSk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgdGhlUGx1Z2luID0gbmV3IGFkZG9uLnR5cGUoKTtcclxuICAgICAgICAgICAgYWRkb24ucGx1Z2luID0gdGhlUGx1Z2luO1xyXG4gICAgICAgICAgICBhZGRvbi5uYW1lID0gdGhlUGx1Z2luLmdldE5hbWUoKSB8fCBhZGRvbi5uYW1lO1xyXG4gICAgICAgICAgICBhZGRvbi5hdXRob3IgPSB0aGVQbHVnaW4uZ2V0QXV0aG9yKCkgfHwgYWRkb24uYXV0aG9yIHx8IFwiTm8gYXV0aG9yXCI7XHJcbiAgICAgICAgICAgIGFkZG9uLmRlc2NyaXB0aW9uID0gdGhlUGx1Z2luLmdldERlc2NyaXB0aW9uKCkgfHwgYWRkb24uZGVzY3JpcHRpb24gfHwgXCJObyBkZXNjcmlwdGlvblwiO1xyXG4gICAgICAgICAgICBhZGRvbi52ZXJzaW9uID0gdGhlUGx1Z2luLmdldFZlcnNpb24oKSB8fCBhZGRvbi52ZXJzaW9uIHx8IFwiTm8gdmVyc2lvblwiO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihhZGRvbi5wbHVnaW4ubG9hZCkgPT0gXCJmdW5jdGlvblwiKSBhZGRvbi5wbHVnaW4ubG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVthZGRvbi5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQWRkb25FcnJvcihhZGRvbi5uYW1lLCBhZGRvbi5maWxlbmFtZSwgXCJsb2FkKCkgY291bGQgbm90IGJlIGZpcmVkLlwiLCB7bWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7cmV0dXJuIG5ldyBBZGRvbkVycm9yKGFkZG9uLm5hbWUsIGFkZG9uLmZpbGVuYW1lLCBcIkNvdWxkIG5vdCBiZSBjb25zdHJ1Y3RlZC5cIiwge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja30pO31cclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWxlTW9kaWZpY2F0aW9uKG1vZHVsZSwgZmlsZUNvbnRlbnQsIG1ldGEpIHtcclxuICAgICAgICBtb2R1bGUuX2NvbXBpbGUoZmlsZUNvbnRlbnQsIG1vZHVsZS5maWxlbmFtZSk7XHJcbiAgICAgICAgY29uc3QgZGlkRXhwb3J0ID0gIVV0aWxpdGllcy5pc0VtcHR5KG1vZHVsZS5leHBvcnRzKTtcclxuICAgICAgICBpZiAoZGlkRXhwb3J0KSB7XHJcbiAgICAgICAgICAgIG1ldGEudHlwZSA9IG1vZHVsZS5leHBvcnRzO1xyXG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IG1ldGE7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlQ29udGVudCArPSBgXFxubW9kdWxlLmV4cG9ydHMgPSAke0pTT04uc3RyaW5naWZ5KG1ldGEpfTtcXG5tb2R1bGUuZXhwb3J0cy50eXBlID0gJHttZXRhLmV4cG9ydHMgfHwgbWV0YS5uYW1lfTtgO1xyXG4gICAgICAgIHJldHVybiBmaWxlQ29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydEFkZG9uKGlkKSB7cmV0dXJuIHRoaXMuc3RhcnRQbHVnaW4oaWQpO31cclxuICAgIHN0b3BBZGRvbihpZCkge3JldHVybiB0aGlzLnN0b3BQbHVnaW4oaWQpO31cclxuXHJcbiAgICBzdGFydFBsdWdpbihpZE9yQWRkb24pIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHR5cGVvZihpZE9yQWRkb24pID09IFwic3RyaW5nXCIgPyB0aGlzLmFkZG9uTGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQWRkb24pIDogaWRPckFkZG9uO1xyXG4gICAgICAgIGlmICghYWRkb24pIHJldHVybjtcclxuICAgICAgICBjb25zdCBwbHVnaW4gPSBhZGRvbi5wbHVnaW47XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcGx1Z2luLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdChcInN0YXJ0ZWRcIiwgYWRkb24uaWQpO1xyXG4gICAgICAgICAgICBUb2FzdHMuc2hvdyhgJHthZGRvbi5uYW1lfSB2JHthZGRvbi52ZXJzaW9ufSBoYXMgc3RhcnRlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlW2FkZG9uLmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBUb2FzdHMuZXJyb3IoYCR7YWRkb24ubmFtZX0gdiR7YWRkb24udmVyc2lvbn0gY291bGQgbm90IGJlIHN0YXJ0ZWQuYCk7XHJcbiAgICAgICAgICAgIExvZ2dlci5zdGFja3RyYWNlKHRoaXMubmFtZSwgYWRkb24ubmFtZSArIFwiIGNvdWxkIG5vdCBiZSBzdGFydGVkLlwiLCBlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFkZG9uRXJyb3IoYWRkb24ubmFtZSwgYWRkb24uZmlsZW5hbWUsIFwic3RhcnQoKSBjb3VsZCBub3QgYmUgZmlyZWQuXCIsIHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdG9wUGx1Z2luKGlkT3JBZGRvbikge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JBZGRvbikgOiBpZE9yQWRkb247XHJcbiAgICAgICAgaWYgKCFhZGRvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IGFkZG9uLnBsdWdpbjtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwbHVnaW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXQoXCJzdG9wcGVkXCIsIGFkZG9uLmlkKTtcclxuICAgICAgICAgICAgVG9hc3RzLnNob3coYCR7YWRkb24ubmFtZX0gdiR7YWRkb24udmVyc2lvbn0gaGFzIHN0b3BwZWQuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZVthZGRvbi5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgVG9hc3RzLmVycm9yKGAke2FkZG9uLm5hbWV9IHYke2FkZG9uLnZlcnNpb259IGNvdWxkIG5vdCBiZSBzdG9wcGVkLmApO1xyXG4gICAgICAgICAgICBMb2dnZXIuc3RhY2t0cmFjZSh0aGlzLm5hbWUsIGFkZG9uLm5hbWUgKyBcIiBjb3VsZCBub3QgYmUgc3RvcHBlZC5cIiwgZXJyKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBZGRvbkVycm9yKGFkZG9uLm5hbWUsIGFkZG9uLmZpbGVuYW1lLCBcInN0b3AoKSBjb3VsZCBub3QgYmUgZmlyZWQuXCIsIHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXR1cEZ1bmN0aW9ucygpIHtcclxuICAgICAgICBlbGVjdHJvblJlbW90ZS5nZXRDdXJyZW50V2ViQ29udGVudHMoKS5vbihcImRpZC1uYXZpZ2F0ZS1pbi1wYWdlXCIsIHRoaXMub25Td2l0Y2guYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7XHJcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3dpdGNoKCkge1xyXG4gICAgICAgIHRoaXMuZW1pdChcInBhZ2Utc3dpdGNoXCIpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hZGRvbkxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcy5hZGRvbkxpc3RbaV0ucGx1Z2luO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbdGhpcy5hZGRvbkxpc3RbaV0uaWRdKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihwbHVnaW4ub25Td2l0Y2gpID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7IHBsdWdpbi5vblN3aXRjaCgpOyB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7IExvZ2dlci5zdGFja3RyYWNlKHRoaXMubmFtZSwgXCJVbmFibGUgdG8gZmlyZSBvblN3aXRjaCBmb3IgXCIgKyB0aGlzLmFkZG9uTGlzdFtpXS5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbk11dGF0aW9uKG11dGF0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFkZG9uTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmFkZG9uTGlzdFtpXS5wbHVnaW47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZVt0aGlzLmFkZG9uTGlzdFtpXS5pZF0pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBsdWdpbi5vYnNlcnZlciA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkgeyBwbHVnaW4ub2JzZXJ2ZXIobXV0YXRpb24pOyB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7IExvZ2dlci5zdGFja3RyYWNlKHRoaXMubmFtZSwgXCJVbmFibGUgdG8gZmlyZSBvYnNlcnZlciBmb3IgXCIgKyB0aGlzLmFkZG9uTGlzdFtpXS5uYW1lICsgXCIuXCIsIGVycik7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/pluginmanager.js\n");
/***/ }),
/***/ "./src/modules/reactcomponents.js":
/*!****************************************!*\
!*** ./src/modules/reactcomponents.js ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _patcher__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./patcher */ \"./src/modules/patcher.js\");\n\n\nconst React = _discordmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nconst components = {};\nconst unknownComponents = new Set();\nconst listeners = new Set();\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ReactComponents {\n get named() {\n return components;\n }\n\n get unknown() {\n return unknownComponents;\n }\n\n get listeners() {\n return listeners;\n }\n\n constructor() {\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].after(\"ReactComponents\", React, \"createElement\", (_, __, returnValue) => {\n this.walkRenderTree(returnValue);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.Component.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n _patcher__WEBPACK_IMPORTED_MODULE_1__[\"default\"].instead(\"ReactComponents\", React.PureComponent.prototype, \"UNSAFE_componentWillMount\", thisObject => {\n this.addComponent(thisObject.constructor);\n });\n }\n\n initialize() {\n this.walkReactTree(document.querySelector(\"#app-mount\")._reactRootContainer._internalRoot.current);\n }\n\n get(name, filter) {\n return new Promise(resolve => {\n if (components[name]) return resolve(components[name]);\n listeners.add({\n name,\n filter,\n resolve\n });\n if (!filter) return;\n\n for (const component of unknownComponents) {\n if (!filter(component)) continue;\n component.displayName = name;\n unknownComponents.delete(component);\n this.addNamedComponent(component);\n }\n });\n }\n\n addNamedComponent(component) {\n const name = component.displayName;\n\n if (!components[name]) {\n components[name] = component;\n\n for (const listener of listeners) {\n if (listener.name !== name) continue;\n listener.resolve(component);\n listeners.delete(listener);\n }\n }\n }\n\n addUnknownComponent(component) {\n if (unknownComponents.has(component)) return;\n\n for (const listener of listeners) {\n if (!listener.filter || !listener.filter(component)) continue;\n component.displayName = listener.name;\n this.addNamedComponent(component);\n }\n\n if (!component.displayName) unknownComponents.add(component);\n }\n\n addComponent(component) {\n if (component.displayName) return this.addNamedComponent(component);\n return this.addUnknownComponent(component);\n }\n\n walkRenderTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (Array.isArray(tree)) for (const value of tree) this.walkRenderTree(value);\n if (tree.props && tree.props.children) this.walkRenderTree(tree.props.children);\n }\n\n walkReactTree(tree) {\n if (!tree) return;\n if (typeof tree.type == \"function\") this.addComponent(tree.type);\n if (tree.child) this.walkReactTree(tree.child);\n if (tree.sibling) this.walkReactTree(tree.sibling);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzPzY5NTQiXSwibmFtZXMiOlsiUmVhY3QiLCJEaXNjb3JkTW9kdWxlcyIsImNvbXBvbmVudHMiLCJ1bmtub3duQ29tcG9uZW50cyIsIlNldCIsImxpc3RlbmVycyIsIlJlYWN0Q29tcG9uZW50cyIsIm5hbWVkIiwidW5rbm93biIsImNvbnN0cnVjdG9yIiwiUGF0Y2hlciIsImFmdGVyIiwiXyIsIl9fIiwicmV0dXJuVmFsdWUiLCJ3YWxrUmVuZGVyVHJlZSIsImluc3RlYWQiLCJDb21wb25lbnQiLCJwcm90b3R5cGUiLCJ0aGlzT2JqZWN0IiwiYWRkQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImluaXRpYWxpemUiLCJ3YWxrUmVhY3RUcmVlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiX3JlYWN0Um9vdENvbnRhaW5lciIsIl9pbnRlcm5hbFJvb3QiLCJjdXJyZW50IiwiZ2V0IiwibmFtZSIsImZpbHRlciIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWRkIiwiY29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJkZWxldGUiLCJhZGROYW1lZENvbXBvbmVudCIsImxpc3RlbmVyIiwiYWRkVW5rbm93bkNvbXBvbmVudCIsImhhcyIsInRyZWUiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsdWUiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2hpbGQiLCJzaWJsaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsTUFBTUEsS0FBSyxHQUFHQyx1REFBYyxDQUFDRCxLQUE3QjtBQUNBLE1BQU1FLFVBQVUsR0FBRyxFQUFuQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLElBQUlDLEdBQUosRUFBMUI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsSUFBSUQsR0FBSixFQUFsQjtBQUVlLG1FQUFJLE1BQU1FLGVBQU4sQ0FBc0I7QUFFckMsTUFBSUMsS0FBSixHQUFZO0FBQUMsV0FBT0wsVUFBUDtBQUFtQjs7QUFDaEMsTUFBSU0sT0FBSixHQUFjO0FBQUMsV0FBT0wsaUJBQVA7QUFBMEI7O0FBQ3pDLE1BQUlFLFNBQUosR0FBZ0I7QUFBQyxXQUFPQSxTQUFQO0FBQWtCOztBQUVuQ0ksYUFBVyxHQUFHO0FBQ1ZDLG9EQUFPLENBQUNDLEtBQVIsQ0FBYyxpQkFBZCxFQUFpQ1gsS0FBakMsRUFBd0MsZUFBeEMsRUFBeUQsQ0FBQ1ksQ0FBRCxFQUFJQyxFQUFKLEVBQVFDLFdBQVIsS0FBd0I7QUFDN0UsV0FBS0MsY0FBTCxDQUFvQkQsV0FBcEI7QUFDSCxLQUZEO0FBR0FKLG9EQUFPLENBQUNNLE9BQVIsQ0FBZ0IsaUJBQWhCLEVBQW1DaEIsS0FBSyxDQUFDaUIsU0FBTixDQUFnQkMsU0FBbkQsRUFBOEQsb0JBQTlELEVBQXFGQyxVQUFELElBQWdCO0FBQ2hHLFdBQUtDLFlBQUwsQ0FBa0JELFVBQVUsQ0FBQ1YsV0FBN0I7QUFDSCxLQUZEO0FBR0FDLG9EQUFPLENBQUNNLE9BQVIsQ0FBZ0IsaUJBQWhCLEVBQW1DaEIsS0FBSyxDQUFDaUIsU0FBTixDQUFnQkMsU0FBbkQsRUFBOEQsMkJBQTlELEVBQTRGQyxVQUFELElBQWdCO0FBQ3ZHLFdBQUtDLFlBQUwsQ0FBa0JELFVBQVUsQ0FBQ1YsV0FBN0I7QUFDSCxLQUZEO0FBSUFDLG9EQUFPLENBQUNNLE9BQVIsQ0FBZ0IsaUJBQWhCLEVBQW1DaEIsS0FBSyxDQUFDcUIsYUFBTixDQUFvQkgsU0FBdkQsRUFBa0Usb0JBQWxFLEVBQXlGQyxVQUFELElBQWdCO0FBQ3BHLFdBQUtDLFlBQUwsQ0FBa0JELFVBQVUsQ0FBQ1YsV0FBN0I7QUFDSCxLQUZEO0FBR0FDLG9EQUFPLENBQUNNLE9BQVIsQ0FBZ0IsaUJBQWhCLEVBQW1DaEIsS0FBSyxDQUFDcUIsYUFBTixDQUFvQkgsU0FBdkQsRUFBa0UsMkJBQWxFLEVBQWdHQyxVQUFELElBQWdCO0FBQzNHLFdBQUtDLFlBQUwsQ0FBa0JELFVBQVUsQ0FBQ1YsV0FBN0I7QUFDSCxLQUZEO0FBR0g7O0FBRURhLFlBQVUsR0FBRztBQUNULFNBQUtDLGFBQUwsQ0FBbUJDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixZQUF2QixFQUFxQ0MsbUJBQXJDLENBQXlEQyxhQUF6RCxDQUF1RUMsT0FBMUY7QUFDSDs7QUFFREMsS0FBRyxDQUFDQyxJQUFELEVBQU9DLE1BQVAsRUFBZTtBQUNkLFdBQU8sSUFBSUMsT0FBSixDQUFZQyxPQUFPLElBQUk7QUFDMUIsVUFBSS9CLFVBQVUsQ0FBQzRCLElBQUQsQ0FBZCxFQUFzQixPQUFPRyxPQUFPLENBQUMvQixVQUFVLENBQUM0QixJQUFELENBQVgsQ0FBZDtBQUN0QnpCLGVBQVMsQ0FBQzZCLEdBQVYsQ0FBYztBQUFDSixZQUFEO0FBQU9DLGNBQVA7QUFBZUU7QUFBZixPQUFkO0FBQ0EsVUFBSSxDQUFDRixNQUFMLEVBQWE7O0FBQ2IsV0FBSyxNQUFNSSxTQUFYLElBQXdCaEMsaUJBQXhCLEVBQTJDO0FBQ3ZDLFlBQUksQ0FBQzRCLE1BQU0sQ0FBQ0ksU0FBRCxDQUFYLEVBQXdCO0FBQ3hCQSxpQkFBUyxDQUFDQyxXQUFWLEdBQXdCTixJQUF4QjtBQUNBM0IseUJBQWlCLENBQUNrQyxNQUFsQixDQUF5QkYsU0FBekI7QUFDQSxhQUFLRyxpQkFBTCxDQUF1QkgsU0FBdkI7QUFDSDtBQUNKLEtBVk0sQ0FBUDtBQVdIOztBQUVERyxtQkFBaUIsQ0FBQ0gsU0FBRCxFQUFZO0FBQ3pCLFVBQU1MLElBQUksR0FBR0ssU0FBUyxDQUFDQyxXQUF2Qjs7QUFDQSxRQUFJLENBQUNsQyxVQUFVLENBQUM0QixJQUFELENBQWYsRUFBdUI7QUFDbkI1QixnQkFBVSxDQUFDNEIsSUFBRCxDQUFWLEdBQW1CSyxTQUFuQjs7QUFDQSxXQUFLLE1BQU1JLFFBQVgsSUFBdUJsQyxTQUF2QixFQUFrQztBQUM5QixZQUFJa0MsUUFBUSxDQUFDVCxJQUFULEtBQWtCQSxJQUF0QixFQUE0QjtBQUM1QlMsZ0JBQVEsQ0FBQ04sT0FBVCxDQUFpQkUsU0FBakI7QUFDQTlCLGlCQUFTLENBQUNnQyxNQUFWLENBQWlCRSxRQUFqQjtBQUNIO0FBQ0o7QUFDSjs7QUFFREMscUJBQW1CLENBQUNMLFNBQUQsRUFBWTtBQUMzQixRQUFJaEMsaUJBQWlCLENBQUNzQyxHQUFsQixDQUFzQk4sU0FBdEIsQ0FBSixFQUFzQzs7QUFDdEMsU0FBSyxNQUFNSSxRQUFYLElBQXVCbEMsU0FBdkIsRUFBa0M7QUFDOUIsVUFBSSxDQUFDa0MsUUFBUSxDQUFDUixNQUFWLElBQW9CLENBQUNRLFFBQVEsQ0FBQ1IsTUFBVCxDQUFnQkksU0FBaEIsQ0FBekIsRUFBcUQ7QUFDckRBLGVBQVMsQ0FBQ0MsV0FBVixHQUF3QkcsUUFBUSxDQUFDVCxJQUFqQztBQUNBLFdBQUtRLGlCQUFMLENBQXVCSCxTQUF2QjtBQUNIOztBQUNELFFBQUksQ0FBQ0EsU0FBUyxDQUFDQyxXQUFmLEVBQTRCakMsaUJBQWlCLENBQUMrQixHQUFsQixDQUFzQkMsU0FBdEI7QUFDL0I7O0FBRURmLGNBQVksQ0FBQ2UsU0FBRCxFQUFZO0FBQ3BCLFFBQUlBLFNBQVMsQ0FBQ0MsV0FBZCxFQUEyQixPQUFPLEtBQUtFLGlCQUFMLENBQXVCSCxTQUF2QixDQUFQO0FBQzNCLFdBQU8sS0FBS0ssbUJBQUwsQ0FBeUJMLFNBQXpCLENBQVA7QUFDSDs7QUFFRHBCLGdCQUFjLENBQUMyQixJQUFELEVBQU87QUFDakIsUUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDWCxRQUFJLE9BQU9BLElBQUksQ0FBQ0MsSUFBWixJQUFxQixVQUF6QixFQUFxQyxLQUFLdkIsWUFBTCxDQUFrQnNCLElBQUksQ0FBQ0MsSUFBdkI7QUFDckMsUUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNILElBQWQsQ0FBSixFQUF5QixLQUFLLE1BQU1JLEtBQVgsSUFBb0JKLElBQXBCLEVBQTBCLEtBQUszQixjQUFMLENBQW9CK0IsS0FBcEI7QUFDbkQsUUFBSUosSUFBSSxDQUFDSyxLQUFMLElBQWNMLElBQUksQ0FBQ0ssS0FBTCxDQUFXQyxRQUE3QixFQUF1QyxLQUFLakMsY0FBTCxDQUFvQjJCLElBQUksQ0FBQ0ssS0FBTCxDQUFXQyxRQUEvQjtBQUMxQzs7QUFFRHpCLGVBQWEsQ0FBQ21CLElBQUQsRUFBTztBQUNoQixRQUFJLENBQUNBLElBQUwsRUFBVztBQUNYLFFBQUksT0FBT0EsSUFBSSxDQUFDQyxJQUFaLElBQXFCLFVBQXpCLEVBQXFDLEtBQUt2QixZQUFMLENBQWtCc0IsSUFBSSxDQUFDQyxJQUF2QjtBQUNyQyxRQUFJRCxJQUFJLENBQUNPLEtBQVQsRUFBZ0IsS0FBSzFCLGFBQUwsQ0FBbUJtQixJQUFJLENBQUNPLEtBQXhCO0FBQ2hCLFFBQUlQLElBQUksQ0FBQ1EsT0FBVCxFQUFrQixLQUFLM0IsYUFBTCxDQUFtQm1CLElBQUksQ0FBQ1EsT0FBeEI7QUFDckI7O0FBbEZvQyxDQUExQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvcmVhY3Rjb21wb25lbnRzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBQYXRjaGVyIGZyb20gXCIuL3BhdGNoZXJcIjtcclxuXHJcbmNvbnN0IFJlYWN0ID0gRGlzY29yZE1vZHVsZXMuUmVhY3Q7XHJcbmNvbnN0IGNvbXBvbmVudHMgPSB7fTtcclxuY29uc3QgdW5rbm93bkNvbXBvbmVudHMgPSBuZXcgU2V0KCk7XHJcbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBSZWFjdENvbXBvbmVudHMge1xyXG5cclxuICAgIGdldCBuYW1lZCgpIHtyZXR1cm4gY29tcG9uZW50czt9XHJcbiAgICBnZXQgdW5rbm93bigpIHtyZXR1cm4gdW5rbm93bkNvbXBvbmVudHM7fVxyXG4gICAgZ2V0IGxpc3RlbmVycygpIHtyZXR1cm4gbGlzdGVuZXJzO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LCBcImNyZWF0ZUVsZW1lbnRcIiwgKF8sIF9fLCByZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLndhbGtSZW5kZXJUcmVlKHJldHVyblZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZSwgXCJjb21wb25lbnRXaWxsTW91bnRcIiwgKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hZGRDb21wb25lbnQodGhpc09iamVjdC5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgUGF0Y2hlci5pbnN0ZWFkKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LkNvbXBvbmVudC5wcm90b3R5cGUsIFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgUGF0Y2hlci5pbnN0ZWFkKFwiUmVhY3RDb21wb25lbnRzXCIsIFJlYWN0LlB1cmVDb21wb25lbnQucHJvdG90eXBlLCBcImNvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmluc3RlYWQoXCJSZWFjdENvbXBvbmVudHNcIiwgUmVhY3QuUHVyZUNvbXBvbmVudC5wcm90b3R5cGUsIFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbXBvbmVudCh0aGlzT2JqZWN0LmNvbnN0cnVjdG9yKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHRoaXMud2Fsa1JlYWN0VHJlZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FwcC1tb3VudFwiKS5fcmVhY3RSb290Q29udGFpbmVyLl9pbnRlcm5hbFJvb3QuY3VycmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KG5hbWUsIGZpbHRlcikge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudHNbbmFtZV0pIHJldHVybiByZXNvbHZlKGNvbXBvbmVudHNbbmFtZV0pO1xyXG4gICAgICAgICAgICBsaXN0ZW5lcnMuYWRkKHtuYW1lLCBmaWx0ZXIsIHJlc29sdmV9KTtcclxuICAgICAgICAgICAgaWYgKCFmaWx0ZXIpIHJldHVybjtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdW5rbm93bkNvbXBvbmVudHMpIHtcclxuICAgICAgICAgICAgICAgIGlmICghZmlsdGVyKGNvbXBvbmVudCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc3BsYXlOYW1lID0gbmFtZTtcclxuICAgICAgICAgICAgICAgIHVua25vd25Db21wb25lbnRzLmRlbGV0ZShjb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGROYW1lZENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkTmFtZWRDb21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbXBvbmVudC5kaXNwbGF5TmFtZTtcclxuICAgICAgICBpZiAoIWNvbXBvbmVudHNbbmFtZV0pIHtcclxuICAgICAgICAgICAgY29tcG9uZW50c1tuYW1lXSA9IGNvbXBvbmVudDtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lci5uYW1lICE9PSBuYW1lKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGxpc3RlbmVyLnJlc29sdmUoY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIGxpc3RlbmVycy5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFkZFVua25vd25Db21wb25lbnQoY29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHVua25vd25Db21wb25lbnRzLmhhcyhjb21wb25lbnQpKSByZXR1cm47XHJcbiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcclxuICAgICAgICAgICAgaWYgKCFsaXN0ZW5lci5maWx0ZXIgfHwgIWxpc3RlbmVyLmZpbHRlcihjb21wb25lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29tcG9uZW50LmRpc3BsYXlOYW1lID0gbGlzdGVuZXIubmFtZTtcclxuICAgICAgICAgICAgdGhpcy5hZGROYW1lZENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWNvbXBvbmVudC5kaXNwbGF5TmFtZSkgdW5rbm93bkNvbXBvbmVudHMuYWRkKGNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudCkge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQuZGlzcGxheU5hbWUpIHJldHVybiB0aGlzLmFkZE5hbWVkQ29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkVW5rbm93bkNvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhbGtSZW5kZXJUcmVlKHRyZWUpIHtcclxuICAgICAgICBpZiAoIXRyZWUpIHJldHVybjtcclxuICAgICAgICBpZiAodHlwZW9mKHRyZWUudHlwZSkgPT0gXCJmdW5jdGlvblwiKSB0aGlzLmFkZENvbXBvbmVudCh0cmVlLnR5cGUpO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRyZWUpKSBmb3IgKGNvbnN0IHZhbHVlIG9mIHRyZWUpIHRoaXMud2Fsa1JlbmRlclRyZWUodmFsdWUpO1xyXG4gICAgICAgIGlmICh0cmVlLnByb3BzICYmIHRyZWUucHJvcHMuY2hpbGRyZW4pIHRoaXMud2Fsa1JlbmRlclRyZWUodHJlZS5wcm9wcy5jaGlsZHJlbik7XHJcbiAgICB9XHJcblxyXG4gICAgd2Fsa1JlYWN0VHJlZSh0cmVlKSB7XHJcbiAgICAgICAgaWYgKCF0cmVlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHR5cGVvZih0cmVlLnR5cGUpID09IFwiZnVuY3Rpb25cIikgdGhpcy5hZGRDb21wb25lbnQodHJlZS50eXBlKTtcclxuICAgICAgICBpZiAodHJlZS5jaGlsZCkgdGhpcy53YWxrUmVhY3RUcmVlKHRyZWUuY2hpbGQpO1xyXG4gICAgICAgIGlmICh0cmVlLnNpYmxpbmcpIHRoaXMud2Fsa1JlYWN0VHJlZSh0cmVlLnNpYmxpbmcpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/reactcomponents.js\n");
/***/ }),
/***/ "./src/modules/settingsmanager.js":
/*!****************************************!*\
!*** ./src/modules/settingsmanager.js ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.state = {};\n this.collections = [];\n this.panels = [];\n this.updateStrings = this.updateStrings.bind(this);\n }\n\n initialize() {\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"strings-updated\", this.updateStrings); // this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setupCollection(id);\n this.loadCollection(id);\n this.updateStrings();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n } // TODO: Move this to SettingsRenderer and also add a registerContentPanel\n\n\n registerPanel(id, name, options) {\n if (this.panels.find(p => p.id == id)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"Already have a panel with id \" + id);\n const {\n element,\n onClick,\n order = 1\n } = options;\n const section = {\n id,\n order,\n label: name,\n section: id\n };\n if (onClick) section.clickListener = onClick;\n if (element) section.element = element instanceof _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.Component ? () => _discordmodules__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n removePanel(id) {\n const location = this.panels.findIndex(c => c.id == id);\n if (!location < 0) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"Settings\", \"No collection with id \" + id);\n this.panels.splice(location, 1);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setupCollection(id) {\n const collection = this.collections.find(c => c.id == id);\n if (!collection) return;\n const categories = collection.settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let cc = 0; cc < categories.length; cc++) {\n const category = categories[cc];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n if (setting.hasOwnProperty(\"disabled\")) continue;\n if (!setting.enableWith && !setting.disableWith) continue;\n const pathString = setting.enableWith || setting.disableWith;\n const path = this.getPath(pathString.split(\".\"), collection.id, category.id);\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n const other = this.state[path.collection][path.category][path.setting];\n return setting.enableWith ? !other : other;\n }\n });\n }\n }\n }\n }\n\n saveSettings() {\n for (const collection in this.state) this.saveCollection(collection);\n }\n\n loadSettings() {\n for (const collection in this.state) this.loadCollection(collection);\n }\n\n saveCollection(collection) {\n _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setData(collection, this.state[collection]);\n }\n\n loadCollection(id) {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getData(id);\n if (!previousState) return this.saveCollection(id);\n\n for (const category in this.state[id]) {\n if (!previousState[category]) Object.assign(previousState, {\n [category]: this.state[id][category]\n });\n\n for (const setting in this.state[id][category]) {\n if (previousState[category][setting] == undefined) continue;\n const settingObj = this.getSetting(id, category, setting);\n if (settingObj.type == \"switch\") this.state[id][category][setting] = previousState[category][setting];\n\n if (settingObj.type == \"dropdown\") {\n const exists = settingObj.options.some(o => o.value == previousState[category][setting]);\n if (exists) this.state[id][category][setting] = previousState[category][setting];\n }\n }\n }\n\n this.saveCollection(id); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value);\n this.saveCollection(collection);\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).settings.find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n set(collection, category, id, value) {\n if (arguments.length == 3) {\n value = id;\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n return this.onSettingChange(collection, category, id, value);\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_3__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n updateStrings() {\n // Update settings collections\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const CS = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Collections[collection.id];\n if (!CS) continue;\n collection.name = CS.name || collection.name;\n const categories = this.collections[c].settings;\n\n for (let cat = 0; cat < categories.length; cat++) {\n const category = categories[cat];\n const CatStr = CS[category.id];\n if (!CatStr) continue;\n category.name = CatStr.name || category.name;\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n const SetStr = CatStr[setting.id];\n if (!SetStr) continue;\n setting.name = SetStr.name || setting.name;\n setting.note = SetStr.note || setting.note;\n if (!setting.options) continue;\n\n for (const opt of setting.options) {\n opt.label = SetStr.options[opt.id] || SetStr.options[opt.value] || opt.label;\n }\n }\n }\n } // Update panel labels\n\n\n for (let p = 0; p < this.panels.length; p++) {\n const panel = this.panels[p];\n const Str = _strings__WEBPACK_IMPORTED_MODULE_5__[\"default\"].Panels[panel.id];\n panel.label = Str || panel.label;\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJzdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwidXBkYXRlU3RyaW5ncyIsImJpbmQiLCJpbml0aWFsaXplIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiU2V0dGluZ3NDb25maWciLCJFdmVudHMiLCJvbiIsImlkIiwibmFtZSIsInNldHRpbmdzIiwiYnV0dG9uIiwiZmluZCIsImMiLCJMb2dnZXIiLCJlcnJvciIsInB1c2giLCJ0eXBlIiwic2V0dXBDb2xsZWN0aW9uIiwibG9hZENvbGxlY3Rpb24iLCJyZW1vdmVDb2xsZWN0aW9uIiwibG9jYXRpb24iLCJmaW5kSW5kZXgiLCJzcGxpY2UiLCJyZWdpc3RlclBhbmVsIiwib3B0aW9ucyIsInAiLCJlbGVtZW50Iiwib25DbGljayIsIm9yZGVyIiwic2VjdGlvbiIsImxhYmVsIiwiY2xpY2tMaXN0ZW5lciIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwicmVtb3ZlUGFuZWwiLCJnZXRQYXRoIiwicGF0aCIsImNvbGxlY3Rpb25JZCIsImNhdGVnb3J5SWQiLCJjb2xsZWN0aW9uIiwibGVuZ3RoIiwiY2F0ZWdvcnkiLCJzZXR0aW5nIiwiY2F0ZWdvcmllcyIsImNjIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZSIsInMiLCJlbmFibGVXaXRoIiwiZGlzYWJsZVdpdGgiLCJwYXRoU3RyaW5nIiwic3BsaXQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsIm90aGVyIiwic2F2ZVNldHRpbmdzIiwic2F2ZUNvbGxlY3Rpb24iLCJsb2FkU2V0dGluZ3MiLCJEYXRhU3RvcmUiLCJzZXREYXRhIiwicHJldmlvdXNTdGF0ZSIsImdldERhdGEiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJzZXR0aW5nT2JqIiwiZ2V0U2V0dGluZyIsImV4aXN0cyIsInNvbWUiLCJvIiwib25TZXR0aW5nQ2hhbmdlIiwiZGlzcGF0Y2giLCJhcmd1bWVudHMiLCJzZXQiLCJpZGVudGlmaWVyIiwiY2FsbGJhY2siLCJoYW5kbGVyIiwiY29sIiwiY2F0Iiwib2ZmIiwiQ1MiLCJTdHJpbmdzIiwiQ29sbGVjdGlvbnMiLCJDYXRTdHIiLCJTZXRTdHIiLCJub3RlIiwib3B0IiwicGFuZWwiLCJTdHIiLCJQYW5lbHMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZUFBTixDQUFzQjtBQUVyQ0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsS0FBTCxHQUFhLEVBQWI7QUFDQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxhQUFMLEdBQXFCLEtBQUtBLGFBQUwsQ0FBbUJDLElBQW5CLENBQXdCLElBQXhCLENBQXJCO0FBQ0g7O0FBRURDLFlBQVUsR0FBRztBQUNULFNBQUtDLGtCQUFMLENBQXdCLFVBQXhCLEVBQW9DLFVBQXBDLEVBQWdEQyxtREFBaEQ7QUFDQUMsb0RBQU0sQ0FBQ0MsRUFBUCxDQUFVLGlCQUFWLEVBQTZCLEtBQUtOLGFBQWxDLEVBRlMsQ0FHVDtBQUNIOztBQUVERyxvQkFBa0IsQ0FBQ0ksRUFBRCxFQUFLQyxJQUFMLEVBQVdDLFFBQVgsRUFBcUJDLE1BQU0sR0FBRyxJQUE5QixFQUFvQztBQUNsRCxRQUFJLEtBQUtaLFdBQUwsQ0FBaUJhLElBQWpCLENBQXNCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0wsRUFBRixJQUFRQSxFQUFuQyxDQUFKLEVBQTRDLE9BQU9NLCtDQUFNLENBQUNDLEtBQVAsQ0FBYSxVQUFiLEVBQXlCLHVDQUF1Q1AsRUFBaEUsQ0FBUDtBQUM1QyxTQUFLVCxXQUFMLENBQWlCaUIsSUFBakIsQ0FBc0I7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QWVvQyxPQUFPLENBQUNwQyxJQUF0QztBQUNBb0MsaUJBQU8sQ0FBQzJDLElBQVIsR0FBZUQsTUFBTSxDQUFDQyxJQUFQLElBQWUzQyxPQUFPLENBQUMyQyxJQUF0QztBQUNBLGNBQUksQ0FBQzNDLE9BQU8sQ0FBQ3BCLE9BQWIsRUFBc0I7O0FBQ3RCLGVBQUssTUFBTWdFLEdBQVgsSUFBa0I1QyxPQUFPLENBQUNwQixPQUExQixFQUFtQztBQUMvQmdFLGVBQUcsQ0FBQzFELEtBQUosR0FBWXdELE1BQU0sQ0FBQzlELE9BQVAsQ0FBZWdFLEdBQUcsQ0FBQ2pGLEVBQW5CLEtBQTBCK0UsTUFBTSxDQUFDOUQsT0FBUCxDQUFlZ0UsR0FBRyxDQUFDeEMsS0FBbkIsQ0FBMUIsSUFBdUR3QyxHQUFHLENBQUMxRCxLQUF2RTtBQUNIO0FBQ0o7QUFDSjtBQUNKLEtBekJXLENBMkJaOzs7QUFDQSxTQUFLLElBQUlMLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUcsS0FBSzFCLE1BQUwsQ0FBWTJDLE1BQWhDLEVBQXdDakIsQ0FBQyxFQUF6QyxFQUE2QztBQUN6QyxZQUFNZ0UsS0FBSyxHQUFHLEtBQUsxRixNQUFMLENBQVkwQixDQUFaLENBQWQ7QUFDQSxZQUFNaUUsR0FBRyxHQUFHUCxnREFBTyxDQUFDUSxNQUFSLENBQWVGLEtBQUssQ0FBQ2xGLEVBQXJCLENBQVo7QUFDQWtGLFdBQUssQ0FBQzNELEtBQU4sR0FBYzRELEdBQUcsSUFBSUQsS0FBSyxDQUFDM0QsS0FBM0I7QUFDSDtBQUNKOztBQTlMb0MsQ0FBMUIsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3NldHRpbmdzbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2V0dGluZ3NDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBFdmVudHMgZnJvbSBcIi4vZW1pdHRlclwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuaW1wb3J0IFN0cmluZ3MgZnJvbSBcIi4vc3RyaW5nc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzTWFuYWdlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMudXBkYXRlU3RyaW5ncyA9IHRoaXMudXBkYXRlU3RyaW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckNvbGxlY3Rpb24oXCJzZXR0aW5nc1wiLCBcIlNldHRpbmdzXCIsIFNldHRpbmdzQ29uZmlnKTtcclxuICAgICAgICBFdmVudHMub24oXCJzdHJpbmdzLXVwZGF0ZWRcIiwgdGhpcy51cGRhdGVTdHJpbmdzKTtcclxuICAgICAgICAvLyB0aGlzLnBhdGNoU2VjdGlvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckNvbGxlY3Rpb24oaWQsIG5hbWUsIHNldHRpbmdzLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sbGVjdGlvbnMuZmluZChjID0+IGMuaWQgPT0gaWQpKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJBbHJlYWR5IGhhdmUgYSBjb2xsZWN0aW9uIHdpdGggaWQgXCIgKyBpZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgdHlwZTogXCJjb2xsZWN0aW9uXCIsXHJcbiAgICAgICAgICAgIGlkOiBpZCxcclxuICAgICAgICAgICAgbmFtZTogbmFtZSxcclxuICAgICAgICAgICAgc2V0dGluZ3M6IHNldHRpbmdzLFxyXG4gICAgICAgICAgICBidXR0b246IGJ1dHRvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0dXBDb2xsZWN0aW9uKGlkKTtcclxuICAgICAgICB0aGlzLmxvYWRDb2xsZWN0aW9uKGlkKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVN0cmluZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVDb2xsZWN0aW9uKGlkKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmNvbGxlY3Rpb25zLmZpbmRJbmRleChjID0+IGMuaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmICghbG9jYXRpb24gPCAwKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiU2V0dGluZ3NcIiwgXCJObyBjb2xsZWN0aW9uIHdpdGggaWQgXCIgKyBpZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5zcGxpY2UobG9jYXRpb24sIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBTZXR0aW5nc1JlbmRlcmVyIGFuZCBhbHNvIGFkZCBhIHJlZ2lzdGVyQ29udGVudFBhbmVsXHJcbiAgICByZWdpc3RlclBhbmVsKGlkLCBuYW1lLCBvcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFuZWxzLmZpbmQocCA9PiBwLmlkID09IGlkKSkgcmV0dXJuIExvZ2dlci5lcnJvcihcIlNldHRpbmdzXCIsIFwiQWxyZWFkeSBoYXZlIGEgcGFuZWwgd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICBjb25zdCB7ZWxlbWVudCwgb25DbGljaywgb3JkZXIgPSAxfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHtpZCwgb3JkZXIsIGxhYmVsOiBuYW1lLCBzZWN0aW9uOiBpZH07XHJcbiAgICAgICAgaWYgKG9uQ2xpY2spIHNlY3Rpb24uY2xpY2tMaXN0ZW5lciA9IG9uQ2xpY2s7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQpIHNlY3Rpb24uZWxlbWVudCA9IGVsZW1lbnQgaW5zdGFuY2VvZiBEaXNjb3JkTW9kdWxlcy5SZWFjdC5Db21wb25lbnQgPyAoKSA9PiBEaXNjb3JkTW9kdWxlcy5SZWFjdC5jcmVhdGVFbGVtZW50KGVsZW1lbnQsIHt9KSA6IHR5cGVvZihlbGVtZW50KSA9PSBcImZ1bmN0aW9uXCIgPyBlbGVtZW50IDogKCkgPT4gZWxlbWVudDtcclxuICAgICAgICB0aGlzLnBhbmVscy5wdXNoKHNlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVBhbmVsKGlkKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnBhbmVscy5maW5kSW5kZXgoYyA9PiBjLmlkID09IGlkKTtcclxuICAgICAgICBpZiAoIWxvY2F0aW9uIDwgMCkgcmV0dXJuIExvZ2dlci5lcnJvcihcIlNldHRpbmdzXCIsIFwiTm8gY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnNwbGljZShsb2NhdGlvbiwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF0aChwYXRoLCBjb2xsZWN0aW9uSWQgPSBcIlwiLCBjYXRlZ29yeUlkID0gXCJcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBwYXRoLmxlbmd0aCA9PSAzID8gcGF0aFswXSA6IGNvbGxlY3Rpb25JZDtcclxuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzFdIDogcGF0aC5sZW5ndGggPT0gMiA/IHBhdGhbMF0gOiBjYXRlZ29yeUlkO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmcgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgcmV0dXJuIHtjb2xsZWN0aW9uLCBjYXRlZ29yeSwgc2V0dGluZ307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDb2xsZWN0aW9uKGlkKSB7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbnMuZmluZChjID0+IGMuaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmICghY29sbGVjdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBjb2xsZWN0aW9uLnNldHRpbmdzO1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXSA9IHt9O1xyXG4gICAgICAgIGZvciAobGV0IGNjID0gMDsgY2MgPCBjYXRlZ29yaWVzLmxlbmd0aDsgY2MrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2NdO1xyXG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnkudHlwZSAhPSBcImNhdGVnb3J5XCIpIHtpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IGNhdGVnb3J5LnZhbHVlO31cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF0uaGFzT3duUHJvcGVydHkoY2F0ZWdvcnkuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcyA9IDA7IHMgPCBjYXRlZ29yeS5zZXR0aW5ncy5sZW5ndGg7IHMrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBjYXRlZ29yeS5zZXR0aW5nc1tzXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdLmhhc093blByb3BlcnR5KHNldHRpbmcuaWQpKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXVtzZXR0aW5nLmlkXSA9IHNldHRpbmcudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5nLmVuYWJsZVdpdGggJiYgIXNldHRpbmcuZGlzYWJsZVdpdGgpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhTdHJpbmcgPSBzZXR0aW5nLmVuYWJsZVdpdGggfHwgc2V0dGluZy5kaXNhYmxlV2l0aDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKHBhdGhTdHJpbmcuc3BsaXQoXCIuXCIpLCBjb2xsZWN0aW9uLmlkLCBjYXRlZ29yeS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNldHRpbmcsIFwiZGlzYWJsZWRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG90aGVyID0gdGhpcy5zdGF0ZVtwYXRoLmNvbGxlY3Rpb25dW3BhdGguY2F0ZWdvcnldW3BhdGguc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0dGluZy5lbmFibGVXaXRoID8gIW90aGVyIDogb3RoZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzYXZlU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIGluIHRoaXMuc3RhdGUpIHRoaXMuc2F2ZUNvbGxlY3Rpb24oY29sbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFNldHRpbmdzKCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiB0aGlzLnN0YXRlKSB0aGlzLmxvYWRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDb2xsZWN0aW9uKGNvbGxlY3Rpb24pIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShjb2xsZWN0aW9uLCB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkQ29sbGVjdGlvbihpZCkge1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBEYXRhU3RvcmUuZ2V0RGF0YShpZCk7XHJcbiAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlKSByZXR1cm4gdGhpcy5zYXZlQ29sbGVjdGlvbihpZCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBjYXRlZ29yeSBpbiB0aGlzLnN0YXRlW2lkXSkge1xyXG4gICAgICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGVbY2F0ZWdvcnldKSBPYmplY3QuYXNzaWduKHByZXZpb3VzU3RhdGUsIHtbY2F0ZWdvcnldOiB0aGlzLnN0YXRlW2lkXVtjYXRlZ29yeV19KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzZXR0aW5nIGluIHRoaXMuc3RhdGVbaWRdW2NhdGVnb3J5XSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU3RhdGVbY2F0ZWdvcnldW3NldHRpbmddID09IHVuZGVmaW5lZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXR0aW5nT2JqID0gdGhpcy5nZXRTZXR0aW5nKGlkLCBjYXRlZ29yeSwgc2V0dGluZyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ09iai50eXBlID09IFwic3dpdGNoXCIpIHRoaXMuc3RhdGVbaWRdW2NhdGVnb3J5XVtzZXR0aW5nXSA9IHByZXZpb3VzU3RhdGVbY2F0ZWdvcnldW3NldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNldHRpbmdPYmoudHlwZSA9PSBcImRyb3Bkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdHMgPSBzZXR0aW5nT2JqLm9wdGlvbnMuc29tZShvID0+IG8udmFsdWUgPT0gcHJldmlvdXNTdGF0ZVtjYXRlZ29yeV1bc2V0dGluZ10pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChleGlzdHMpIHRoaXMuc3RhdGVbaWRdW2NhdGVnb3J5XVtzZXR0aW5nXSA9IHByZXZpb3VzU3RhdGVbY2F0ZWdvcnldW3NldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNhdmVDb2xsZWN0aW9uKGlkKTsgLy8gaW4gY2FzZSBuZXcgdGhpbmdzIHdlcmUgYWRkZWRcclxuICAgIH1cclxuXHJcbiAgICBvblNldHRpbmdDaGFuZ2UoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW2lkXSA9IHZhbHVlO1xyXG4gICAgICAgIEV2ZW50cy5kaXNwYXRjaChcInNldHRpbmctdXBkYXRlZFwiLCBjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNhdmVDb2xsZWN0aW9uKGNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnNbMF0uZmluZChjID0+IGMuaWQgPT0gYXJndW1lbnRzWzBdKS5zZXR0aW5ncy5maW5kKHMgPT4gcy5pZCA9PSBhcmd1bWVudHNbMV0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25zLmZpbmQoYyA9PiBjLmlkID09IGNvbGxlY3Rpb24pLnNldHRpbmdzLmZpbmQoYyA9PiBjLmlkID09IGNhdGVnb3J5KS5zZXR0aW5ncy5maW5kKHMgPT4gcy5pZCA9PSBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCkge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHtcclxuICAgICAgICAgICAgaWQgPSBjYXRlZ29yeTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkgPSBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gXCJzZXR0aW5nc1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29sbGVjdGlvbl0gfHwgIXRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW2lkXTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSkge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpZDtcclxuICAgICAgICAgICAgaWQgPSBjYXRlZ29yeTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkgPSBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gXCJzZXR0aW5nc1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5vblNldHRpbmdDaGFuZ2UoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb24oY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkZW50aWZpZXIsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChjb2wsIGNhdCwgaWQsIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2wgIT09IGNvbGxlY3Rpb24gfHwgY2F0ICE9PSBjYXRlZ29yeSB8fCBpZCAhPT0gaWRlbnRpZmllcikgcmV0dXJuO1xyXG4gICAgICAgICAgICBjYWxsYmFjayh2YWx1ZSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBFdmVudHMub24oXCJzZXR0aW5nLXVwZGF0ZWRcIiwgaGFuZGxlcik7XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHtFdmVudHMub2ZmKFwic2V0dGluZy11cGRhdGVkXCIsIGhhbmRsZXIpO307XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlU3RyaW5ncygpIHtcclxuICAgICAgICAvLyBVcGRhdGUgc2V0dGluZ3MgY29sbGVjdGlvbnNcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHRoaXMuY29sbGVjdGlvbnMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbnNbY107XHJcbiAgICAgICAgICAgIGNvbnN0IENTID0gU3RyaW5ncy5Db2xsZWN0aW9uc1tjb2xsZWN0aW9uLmlkXTtcclxuICAgICAgICAgICAgaWYgKCFDUykgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24ubmFtZSA9IENTLm5hbWUgfHwgY29sbGVjdGlvbi5uYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gdGhpcy5jb2xsZWN0aW9uc1tjXS5zZXR0aW5ncztcclxuICAgICAgICAgICAgZm9yIChsZXQgY2F0ID0gMDsgY2F0IDwgY2F0ZWdvcmllcy5sZW5ndGg7IGNhdCsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2F0XTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IENhdFN0ciA9IENTW2NhdGVnb3J5LmlkXTtcclxuICAgICAgICAgICAgICAgIGlmICghQ2F0U3RyKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5Lm5hbWUgPSBDYXRTdHIubmFtZSB8fCBjYXRlZ29yeS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcyA9IDA7IHMgPCBjYXRlZ29yeS5zZXR0aW5ncy5sZW5ndGg7IHMrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBjYXRlZ29yeS5zZXR0aW5nc1tzXTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBTZXRTdHIgPSBDYXRTdHJbc2V0dGluZy5pZF07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFTZXRTdHIpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmcubmFtZSA9IFNldFN0ci5uYW1lIHx8IHNldHRpbmcubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLm5vdGUgPSBTZXRTdHIubm90ZSB8fCBzZXR0aW5nLm5vdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5nLm9wdGlvbnMpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0IG9mIHNldHRpbmcub3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQubGFiZWwgPSBTZXRTdHIub3B0aW9uc1tvcHQuaWRdIHx8IFNldFN0ci5vcHRpb25zW29wdC52YWx1ZV0gfHwgb3B0LmxhYmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIHBhbmVsIGxhYmVsc1xyXG4gICAgICAgIGZvciAobGV0IHAgPSAwOyBwIDwgdGhpcy5wYW5lbHMubGVuZ3RoOyBwKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcGFuZWwgPSB0aGlzLnBhbmVsc1twXTtcclxuICAgICAgICAgICAgY29uc3QgU3RyID0gU3RyaW5ncy5QYW5lbHNbcGFuZWwuaWRdO1xyXG4gICAgICAgICAgICBwYW5lbC5sYWJlbCA9IFN0ciB8fCBwYW5lbC5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n");
/***/ }),
/***/ "./src/modules/strings.js":
/*!********************************!*\
!*** ./src/modules/strings.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _localemanager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localemanager */ \"./src/modules/localemanager.js\");\n/* harmony import */ var _structs_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../structs/string */ \"./src/structs/string.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Proxy(_localemanager__WEBPACK_IMPORTED_MODULE_0__[\"default\"].strings, {\n get: function (strings, category) {\n if (!strings.hasOwnProperty(category)) {\n return new Proxy({}, {\n get: function () {\n return `String group \"${category}\" not found.`;\n }\n });\n }\n\n return new Proxy(strings[category], {\n get: function (obj, prop) {\n if (typeof obj[prop] == \"string\") return new _structs_string__WEBPACK_IMPORTED_MODULE_1__[\"default\"](obj[prop]);\n return obj[prop];\n }\n });\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc3RyaW5ncy5qcz8zNTllIl0sIm5hbWVzIjpbIlByb3h5IiwiTG9jYWxlTWFuYWdlciIsInN0cmluZ3MiLCJnZXQiLCJjYXRlZ29yeSIsImhhc093blByb3BlcnR5Iiwib2JqIiwicHJvcCIsIkZvcm1hdHRhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsbUVBQUlBLEtBQUosQ0FBVUMsc0RBQWEsQ0FBQ0MsT0FBeEIsRUFBaUM7QUFDL0NDLEtBQUcsRUFBRSxVQUFTRCxPQUFULEVBQWtCRSxRQUFsQixFQUE0QjtBQUMxQixRQUFJLENBQUNGLE9BQU8sQ0FBQ0csY0FBUixDQUF1QkQsUUFBdkIsQ0FBTCxFQUF1QztBQUM1QyxhQUFPLElBQUlKLEtBQUosQ0FBVSxFQUFWLEVBQWM7QUFDcEJHLFdBQUcsRUFBRSxZQUFXO0FBQ2YsaUJBQVEsaUJBQWdCQyxRQUFTLGNBQWpDO0FBQ0E7QUFIbUIsT0FBZCxDQUFQO0FBS0E7O0FBQ0QsV0FBTyxJQUFJSixLQUFKLENBQVVFLE9BQU8sQ0FBQ0UsUUFBRCxDQUFqQixFQUE2QjtBQUNuQ0QsU0FBRyxFQUFFLFVBQVNHLEdBQVQsRUFBY0MsSUFBZCxFQUFvQjtBQUN4QixZQUFJLE9BQU9ELEdBQUcsQ0FBQ0MsSUFBRCxDQUFWLElBQXFCLFFBQXpCLEVBQW1DLE9BQU8sSUFBSUMsdURBQUosQ0FBc0JGLEdBQUcsQ0FBQ0MsSUFBRCxDQUF6QixDQUFQO0FBQ25DLGVBQU9ELEdBQUcsQ0FBQ0MsSUFBRCxDQUFWO0FBQ0E7QUFKa0MsS0FBN0IsQ0FBUDtBQU1BO0FBZjhDLENBQWpDLENBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9zdHJpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvY2FsZU1hbmFnZXIgZnJvbSBcIi4vbG9jYWxlbWFuYWdlclwiO1xyXG5pbXBvcnQgRm9ybWF0dGFibGVTdHJpbmcgZnJvbSBcIi4uL3N0cnVjdHMvc3RyaW5nXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgUHJveHkoTG9jYWxlTWFuYWdlci5zdHJpbmdzLCB7XHJcblx0Z2V0OiBmdW5jdGlvbihzdHJpbmdzLCBjYXRlZ29yeSkge1xyXG4gICAgICAgIGlmICghc3RyaW5ncy5oYXNPd25Qcm9wZXJ0eShjYXRlZ29yeSkpIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm94eSh7fSwge1xyXG5cdFx0XHRcdGdldDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gYFN0cmluZyBncm91cCBcIiR7Y2F0ZWdvcnl9XCIgbm90IGZvdW5kLmA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBuZXcgUHJveHkoc3RyaW5nc1tjYXRlZ29yeV0sIHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbihvYmosIHByb3ApIHtcclxuXHRcdFx0XHRpZiAodHlwZW9mKG9ialtwcm9wXSkgPT0gXCJzdHJpbmdcIikgcmV0dXJuIG5ldyBGb3JtYXR0YWJsZVN0cmluZyhvYmpbcHJvcF0pO1xyXG5cdFx0XHRcdHJldHVybiBvYmpbcHJvcF07XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufSk7XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/strings.js\n");
/***/ }),
/***/ "./src/modules/thememanager.js":
/*!*************************************!*\
!*** ./src/modules/thememanager.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _addonmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./addonmanager */ \"./src/modules/addonmanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./strings */ \"./src/modules/strings.js\");\n/* harmony import */ var _ui_toasts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/toasts */ \"./src/ui/toasts.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _ui_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ui/settings */ \"./src/ui/settings.js\");\n\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ThemeManager extends _addonmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"ThemeManager\";\n }\n\n get moduleExtension() {\n return \".css\";\n }\n\n get extension() {\n return \".theme.css\";\n }\n\n get addonFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"themes\");\n }\n\n get prefix() {\n return \"theme\";\n }\n\n get language() {\n return \"css\";\n }\n\n initialize() {\n const errors = super.initialize();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].registerPanel(\"themes\", _strings__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Panels.themes, {\n element: () => _ui_settings__WEBPACK_IMPORTED_MODULE_7__[\"default\"].getAddonPanel(_strings__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Panels.themes, this.addonList, this.state, {\n folder: this.addonFolder,\n onChange: this.toggleTheme.bind(this),\n reload: this.reloadTheme.bind(this),\n refreshList: this.updateThemeList.bind(this),\n saveAddon: this.saveAddon.bind(this),\n editAddon: this.editAddon.bind(this),\n deleteAddon: this.deleteAddon.bind(this),\n prefix: this.prefix\n })\n });\n return errors;\n }\n /* Aliases */\n\n\n updateThemeList() {\n return this.updateList();\n }\n\n loadAllThemes() {\n return this.loadAllAddons();\n }\n\n enableTheme(idOrAddon) {\n return this.enableAddon(idOrAddon);\n }\n\n disableTheme(idOrAddon) {\n return this.disableAddon(idOrAddon);\n }\n\n toggleTheme(id) {\n return this.toggleAddon(id);\n }\n\n unloadTheme(idOrFileOrAddon) {\n return this.unloadAddon(idOrFileOrAddon);\n }\n\n loadTheme(filename) {\n const error = this.loadAddon(filename);\n if (error) _ui_modals__WEBPACK_IMPORTED_MODULE_6__[\"default\"].showAddonErrors({\n themes: [error]\n });\n }\n\n reloadTheme(idOrFileOrAddon) {\n const error = this.reloadAddon(idOrFileOrAddon);\n if (error) _ui_modals__WEBPACK_IMPORTED_MODULE_6__[\"default\"].showAddonErrors({\n themes: [error]\n });\n }\n /* Overrides */\n\n\n getFileModification(module, fileContent, meta) {\n meta.css = fileContent;\n return `module.exports = ${JSON.stringify(meta)};`;\n }\n\n startAddon(id) {\n return this.addTheme(id);\n }\n\n stopAddon(id) {\n return this.removeTheme(id);\n }\n\n addTheme(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].injectTheme(addon.id, addon.css);\n _ui_toasts__WEBPACK_IMPORTED_MODULE_5__[\"default\"].show(`${addon.name} v${addon.version} has been applied.`);\n }\n\n removeTheme(idOrAddon) {\n const addon = typeof idOrAddon == \"string\" ? this.addonList.find(p => p.id == idOrAddon) : idOrAddon;\n if (!addon) return;\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].removeTheme(addon.id);\n _ui_toasts__WEBPACK_IMPORTED_MODULE_5__[\"default\"].show(`${addon.name} v${addon.version} has been removed.`);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdGhlbWVtYW5hZ2VyLmpzPzQwNzgiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJUaGVtZU1hbmFnZXIiLCJBZGRvbk1hbmFnZXIiLCJuYW1lIiwibW9kdWxlRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uIiwiYWRkb25Gb2xkZXIiLCJyZXNvbHZlIiwiQ29uZmlnIiwiZGF0YVBhdGgiLCJwcmVmaXgiLCJsYW5ndWFnZSIsImluaXRpYWxpemUiLCJlcnJvcnMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJTdHJpbmdzIiwiUGFuZWxzIiwidGhlbWVzIiwiZWxlbWVudCIsIlNldHRpbmdzUmVuZGVyZXIiLCJnZXRBZGRvblBhbmVsIiwiYWRkb25MaXN0Iiwic3RhdGUiLCJmb2xkZXIiLCJvbkNoYW5nZSIsInRvZ2dsZVRoZW1lIiwiYmluZCIsInJlbG9hZCIsInJlbG9hZFRoZW1lIiwicmVmcmVzaExpc3QiLCJ1cGRhdGVUaGVtZUxpc3QiLCJzYXZlQWRkb24iLCJlZGl0QWRkb24iLCJkZWxldGVBZGRvbiIsInVwZGF0ZUxpc3QiLCJsb2FkQWxsVGhlbWVzIiwibG9hZEFsbEFkZG9ucyIsImVuYWJsZVRoZW1lIiwiaWRPckFkZG9uIiwiZW5hYmxlQWRkb24iLCJkaXNhYmxlVGhlbWUiLCJkaXNhYmxlQWRkb24iLCJpZCIsInRvZ2dsZUFkZG9uIiwidW5sb2FkVGhlbWUiLCJpZE9yRmlsZU9yQWRkb24iLCJ1bmxvYWRBZGRvbiIsImxvYWRUaGVtZSIsImZpbGVuYW1lIiwiZXJyb3IiLCJsb2FkQWRkb24iLCJNb2RhbHMiLCJzaG93QWRkb25FcnJvcnMiLCJyZWxvYWRBZGRvbiIsImdldEZpbGVNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJmaWxlQ29udGVudCIsIm1ldGEiLCJjc3MiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRBZGRvbiIsImFkZFRoZW1lIiwic3RvcEFkZG9uIiwicmVtb3ZlVGhlbWUiLCJhZGRvbiIsImZpbmQiLCJwIiwiRE9NTWFuYWdlciIsImluamVjdFRoZW1lIiwiVG9hc3RzIiwic2hvdyIsInZlcnNpb24iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUVlLG1FQUFJLE1BQU1DLFlBQU4sU0FBMkJDLHFEQUEzQixDQUF3QztBQUN2RCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGNBQVA7QUFBdUI7O0FBQ25DLE1BQUlDLGVBQUosR0FBc0I7QUFBQyxXQUFPLE1BQVA7QUFBZTs7QUFDdEMsTUFBSUMsU0FBSixHQUFnQjtBQUFDLFdBQU8sWUFBUDtBQUFxQjs7QUFDdEMsTUFBSUMsV0FBSixHQUFrQjtBQUFDLFdBQU9QLElBQUksQ0FBQ1EsT0FBTCxDQUFhQywyQ0FBTSxDQUFDQyxRQUFwQixFQUE4QixRQUE5QixDQUFQO0FBQWdEOztBQUNuRSxNQUFJQyxNQUFKLEdBQWE7QUFBQyxXQUFPLE9BQVA7QUFBZ0I7O0FBQzlCLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sS0FBUDtBQUFjOztBQUU5QkMsWUFBVSxHQUFHO0FBQ1QsVUFBTUMsTUFBTSxHQUFHLE1BQU1ELFVBQU4sRUFBZjtBQUNBRSw0REFBUSxDQUFDQyxhQUFULENBQXVCLFFBQXZCLEVBQWlDQyxnREFBTyxDQUFDQyxNQUFSLENBQWVDLE1BQWhELEVBQXdEO0FBQUNDLGFBQU8sRUFBRSxNQUFNQyxvREFBZ0IsQ0FBQ0MsYUFBakIsQ0FBK0JMLGdEQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBOUMsRUFBc0QsS0FBS0ksU0FBM0QsRUFBc0UsS0FBS0MsS0FBM0UsRUFBa0Y7QUFDdEpDLGNBQU0sRUFBRSxLQUFLbEIsV0FEeUk7QUFFdEptQixnQkFBUSxFQUFFLEtBQUtDLFdBQUwsQ0FBaUJDLElBQWpCLENBQXNCLElBQXRCLENBRjRJO0FBR3RKQyxjQUFNLEVBQUUsS0FBS0MsV0FBTCxDQUFpQkYsSUFBakIsQ0FBc0IsSUFBdEIsQ0FIOEk7QUFJdEpHLG1CQUFXLEVBQUUsS0FBS0MsZUFBTCxDQUFxQkosSUFBckIsQ0FBMEIsSUFBMUIsQ0FKeUk7QUFLdEpLLGlCQUFTLEVBQUUsS0FBS0EsU0FBTCxDQUFlTCxJQUFmLENBQW9CLElBQXBCLENBTDJJO0FBTXRKTSxpQkFBUyxFQUFFLEtBQUtBLFNBQUwsQ0FBZU4sSUFBZixDQUFvQixJQUFwQixDQU4ySTtBQU90Sk8sbUJBQVcsRUFBRSxLQUFLQSxXQUFMLENBQWlCUCxJQUFqQixDQUFzQixJQUF0QixDQVB5STtBQVF0SmpCLGNBQU0sRUFBRSxLQUFLQTtBQVJ5SSxPQUFsRjtBQUFoQixLQUF4RDtBQVVBLFdBQU9HLE1BQVA7QUFDSDtBQUVEOzs7QUFDQWtCLGlCQUFlLEdBQUc7QUFBQyxXQUFPLEtBQUtJLFVBQUwsRUFBUDtBQUEwQjs7QUFDN0NDLGVBQWEsR0FBRztBQUFDLFdBQU8sS0FBS0MsYUFBTCxFQUFQO0FBQTZCOztBQUU5Q0MsYUFBVyxDQUFDQyxTQUFELEVBQVk7QUFBQyxXQUFPLEtBQUtDLFdBQUwsQ0FBaUJELFNBQWpCLENBQVA7QUFBb0M7O0FBQzVERSxjQUFZLENBQUNGLFNBQUQsRUFBWTtBQUFDLFdBQU8sS0FBS0csWUFBTCxDQUFrQkgsU0FBbEIsQ0FBUDtBQUFxQzs7QUFDOURiLGFBQVcsQ0FBQ2lCLEVBQUQsRUFBSztBQUFDLFdBQU8sS0FBS0MsV0FBTCxDQUFpQkQsRUFBakIsQ0FBUDtBQUE2Qjs7QUFFOUNFLGFBQVcsQ0FBQ0MsZUFBRCxFQUFrQjtBQUFDLFdBQU8sS0FBS0MsV0FBTCxDQUFpQkQsZUFBakIsQ0FBUDtBQUEwQzs7QUFFeEVFLFdBQVMsQ0FBQ0MsUUFBRCxFQUFXO0FBQ2hCLFVBQU1DLEtBQUssR0FBRyxLQUFLQyxTQUFMLENBQWVGLFFBQWYsQ0FBZDtBQUNBLFFBQUlDLEtBQUosRUFBV0Usa0RBQU0sQ0FBQ0MsZUFBUCxDQUF1QjtBQUFDbkMsWUFBTSxFQUFFLENBQUNnQyxLQUFEO0FBQVQsS0FBdkI7QUFDZDs7QUFFRHJCLGFBQVcsQ0FBQ2lCLGVBQUQsRUFBa0I7QUFDekIsVUFBTUksS0FBSyxHQUFHLEtBQUtJLFdBQUwsQ0FBaUJSLGVBQWpCLENBQWQ7QUFDQSxRQUFJSSxLQUFKLEVBQVdFLGtEQUFNLENBQUNDLGVBQVAsQ0FBdUI7QUFBQ25DLFlBQU0sRUFBRSxDQUFDZ0MsS0FBRDtBQUFULEtBQXZCO0FBQ2Q7QUFFRDs7O0FBQ0FLLHFCQUFtQixDQUFDQyxNQUFELEVBQVNDLFdBQVQsRUFBc0JDLElBQXRCLEVBQTRCO0FBQzNDQSxRQUFJLENBQUNDLEdBQUwsR0FBV0YsV0FBWDtBQUNBLFdBQVEsb0JBQW1CRyxJQUFJLENBQUNDLFNBQUwsQ0FBZUgsSUFBZixDQUFxQixHQUFoRDtBQUNIOztBQUVESSxZQUFVLENBQUNuQixFQUFELEVBQUs7QUFBQyxXQUFPLEtBQUtvQixRQUFMLENBQWNwQixFQUFkLENBQVA7QUFBMEI7O0FBQzFDcUIsV0FBUyxDQUFDckIsRUFBRCxFQUFLO0FBQUMsV0FBTyxLQUFLc0IsV0FBTCxDQUFpQnRCLEVBQWpCLENBQVA7QUFBNkI7O0FBRTVDb0IsVUFBUSxDQUFDeEIsU0FBRCxFQUFZO0FBQ2hCLFVBQU0yQixLQUFLLEdBQUcsT0FBTzNCLFNBQVAsSUFBcUIsUUFBckIsR0FBZ0MsS0FBS2pCLFNBQUwsQ0FBZTZDLElBQWYsQ0FBb0JDLENBQUMsSUFBSUEsQ0FBQyxDQUFDekIsRUFBRixJQUFRSixTQUFqQyxDQUFoQyxHQUE4RUEsU0FBNUY7QUFDQSxRQUFJLENBQUMyQixLQUFMLEVBQVk7QUFDWkcsdURBQVUsQ0FBQ0MsV0FBWCxDQUF1QkosS0FBSyxDQUFDdkIsRUFBN0IsRUFBaUN1QixLQUFLLENBQUNQLEdBQXZDO0FBQ0FZLHNEQUFNLENBQUNDLElBQVAsQ0FBYSxHQUFFTixLQUFLLENBQUMvRCxJQUFLLEtBQUkrRCxLQUFLLENBQUNPLE9BQVEsb0JBQTVDO0FBQ0g7O0FBRURSLGFBQVcsQ0FBQzFCLFNBQUQsRUFBWTtBQUNuQixVQUFNMkIsS0FBSyxHQUFHLE9BQU8zQixTQUFQLElBQXFCLFFBQXJCLEdBQWdDLEtBQUtqQixTQUFMLENBQWU2QyxJQUFmLENBQW9CQyxDQUFDLElBQUlBLENBQUMsQ0FBQ3pCLEVBQUYsSUFBUUosU0FBakMsQ0FBaEMsR0FBOEVBLFNBQTVGO0FBQ0EsUUFBSSxDQUFDMkIsS0FBTCxFQUFZO0FBQ1pHLHVEQUFVLENBQUNKLFdBQVgsQ0FBdUJDLEtBQUssQ0FBQ3ZCLEVBQTdCO0FBQ0E0QixzREFBTSxDQUFDQyxJQUFQLENBQWEsR0FBRU4sS0FBSyxDQUFDL0QsSUFBSyxLQUFJK0QsS0FBSyxDQUFDTyxPQUFRLG9CQUE1QztBQUNIOztBQWhFc0QsQ0FBNUMsRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3RoZW1lbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQgQWRkb25NYW5hZ2VyIGZyb20gXCIuL2FkZG9ubWFuYWdlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3NtYW5hZ2VyXCI7XHJcbmltcG9ydCBET01NYW5hZ2VyIGZyb20gXCIuL2RvbW1hbmFnZXJcIjtcclxuaW1wb3J0IFN0cmluZ3MgZnJvbSBcIi4vc3RyaW5nc1wiO1xyXG5cclxuaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdWkvdG9hc3RzXCI7XHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL3VpL21vZGFsc1wiO1xyXG5pbXBvcnQgU2V0dGluZ3NSZW5kZXJlciBmcm9tIFwiLi4vdWkvc2V0dGluZ3NcIjtcclxuXHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBUaGVtZU1hbmFnZXIgZXh0ZW5kcyBBZGRvbk1hbmFnZXIge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVGhlbWVNYW5hZ2VyXCI7fVxyXG4gICAgZ2V0IG1vZHVsZUV4dGVuc2lvbigpIHtyZXR1cm4gXCIuY3NzXCI7fVxyXG4gICAgZ2V0IGV4dGVuc2lvbigpIHtyZXR1cm4gXCIudGhlbWUuY3NzXCI7fVxyXG4gICAgZ2V0IGFkZG9uRm9sZGVyKCkge3JldHVybiBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcInRoZW1lc1wiKTt9XHJcbiAgICBnZXQgcHJlZml4KCkge3JldHVybiBcInRoZW1lXCI7fVxyXG4gICAgZ2V0IGxhbmd1YWdlKCkge3JldHVybiBcImNzc1wiO31cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IHN1cGVyLmluaXRpYWxpemUoKTtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKFwidGhlbWVzXCIsIFN0cmluZ3MuUGFuZWxzLnRoZW1lcywge2VsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuZ2V0QWRkb25QYW5lbChTdHJpbmdzLlBhbmVscy50aGVtZXMsIHRoaXMuYWRkb25MaXN0LCB0aGlzLnN0YXRlLCB7XHJcbiAgICAgICAgICAgIGZvbGRlcjogdGhpcy5hZGRvbkZvbGRlcixcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudG9nZ2xlVGhlbWUuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgcmVsb2FkOiB0aGlzLnJlbG9hZFRoZW1lLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0OiB0aGlzLnVwZGF0ZVRoZW1lTGlzdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICBzYXZlQWRkb246IHRoaXMuc2F2ZUFkZG9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIGVkaXRBZGRvbjogdGhpcy5lZGl0QWRkb24uYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgZGVsZXRlQWRkb246IHRoaXMuZGVsZXRlQWRkb24uYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgcHJlZml4OiB0aGlzLnByZWZpeFxyXG4gICAgICAgIH0pfSk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKiBBbGlhc2VzICovXHJcbiAgICB1cGRhdGVUaGVtZUxpc3QoKSB7cmV0dXJuIHRoaXMudXBkYXRlTGlzdCgpO31cclxuICAgIGxvYWRBbGxUaGVtZXMoKSB7cmV0dXJuIHRoaXMubG9hZEFsbEFkZG9ucygpO31cclxuXHJcbiAgICBlbmFibGVUaGVtZShpZE9yQWRkb24pIHtyZXR1cm4gdGhpcy5lbmFibGVBZGRvbihpZE9yQWRkb24pO31cclxuICAgIGRpc2FibGVUaGVtZShpZE9yQWRkb24pIHtyZXR1cm4gdGhpcy5kaXNhYmxlQWRkb24oaWRPckFkZG9uKTt9XHJcbiAgICB0b2dnbGVUaGVtZShpZCkge3JldHVybiB0aGlzLnRvZ2dsZUFkZG9uKGlkKTt9XHJcblxyXG4gICAgdW5sb2FkVGhlbWUoaWRPckZpbGVPckFkZG9uKSB7cmV0dXJuIHRoaXMudW5sb2FkQWRkb24oaWRPckZpbGVPckFkZG9uKTt9XHJcblxyXG4gICAgbG9hZFRoZW1lKGZpbGVuYW1lKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmxvYWRBZGRvbihmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0FkZG9uRXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRUaGVtZShpZE9yRmlsZU9yQWRkb24pIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMucmVsb2FkQWRkb24oaWRPckZpbGVPckFkZG9uKTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93QWRkb25FcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIE92ZXJyaWRlcyAqL1xyXG4gICAgZ2V0RmlsZU1vZGlmaWNhdGlvbihtb2R1bGUsIGZpbGVDb250ZW50LCBtZXRhKSB7XHJcbiAgICAgICAgbWV0YS5jc3MgPSBmaWxlQ29udGVudDtcclxuICAgICAgICByZXR1cm4gYG1vZHVsZS5leHBvcnRzID0gJHtKU09OLnN0cmluZ2lmeShtZXRhKX07YDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydEFkZG9uKGlkKSB7cmV0dXJuIHRoaXMuYWRkVGhlbWUoaWQpO31cclxuICAgIHN0b3BBZGRvbihpZCkge3JldHVybiB0aGlzLnJlbW92ZVRoZW1lKGlkKTt9XHJcblxyXG4gICAgYWRkVGhlbWUoaWRPckFkZG9uKSB7XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0eXBlb2YoaWRPckFkZG9uKSA9PSBcInN0cmluZ1wiID8gdGhpcy5hZGRvbkxpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckFkZG9uKSA6IGlkT3JBZGRvbjtcclxuICAgICAgICBpZiAoIWFkZG9uKSByZXR1cm47XHJcbiAgICAgICAgRE9NTWFuYWdlci5pbmplY3RUaGVtZShhZGRvbi5pZCwgYWRkb24uY3NzKTtcclxuICAgICAgICBUb2FzdHMuc2hvdyhgJHthZGRvbi5uYW1lfSB2JHthZGRvbi52ZXJzaW9ufSBoYXMgYmVlbiBhcHBsaWVkLmApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVRoZW1lKGlkT3JBZGRvbikge1xyXG4gICAgICAgIGNvbnN0IGFkZG9uID0gdHlwZW9mKGlkT3JBZGRvbikgPT0gXCJzdHJpbmdcIiA/IHRoaXMuYWRkb25MaXN0LmZpbmQocCA9PiBwLmlkID09IGlkT3JBZGRvbikgOiBpZE9yQWRkb247XHJcbiAgICAgICAgaWYgKCFhZGRvbikgcmV0dXJuO1xyXG4gICAgICAgIERPTU1hbmFnZXIucmVtb3ZlVGhlbWUoYWRkb24uaWQpO1xyXG4gICAgICAgIFRvYXN0cy5zaG93KGAke2FkZG9uLm5hbWV9IHYke2FkZG9uLnZlcnNpb259IGhhcyBiZWVuIHJlbW92ZWQuYCk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/thememanager.js\n");
/***/ }),
/***/ "./src/modules/utilities.js":
/*!**********************************!*\
!*** ./src/modules/utilities.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Utilities; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n\n\nclass Utilities {\n static repoUrl(path) {\n return `https://cdn.staticaly.com/gh/${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].repo}/BetterDiscordApp/${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].hash}/${path}`;\n }\n /**\r\n * Parses a string of HTML and returns the results. If the second parameter is true,\r\n * the parsed HTML will be returned as a document fragment {@see https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment}.\r\n * This is extremely useful if you have a list of elements at the top level, they can then be appended all at once to another node.\r\n *\r\n * If the second parameter is false, then the return value will be the list of parsed\r\n * nodes and there were multiple top level nodes, otherwise the single node is returned.\r\n * @param {string} html - HTML to be parsed\r\n * @param {boolean} [fragment=false] - Whether or not the return should be the raw `DocumentFragment`\r\n * @returns {(DocumentFragment|NodeList|HTMLElement)} - The result of HTML parsing\r\n */\n\n\n static parseHTML(html, fragment = false) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n const node = template.content.cloneNode(true);\n if (fragment) return node;\n return node.childNodes.length > 1 ? node.childNodes : node.childNodes[0];\n }\n\n static getTextArea() {\n return $(\".channelTextArea-1LDbYG textarea\");\n }\n\n static insertText(textarea, text) {\n textarea.focus();\n textarea.selectionStart = 0;\n textarea.selectionEnd = textarea.value.length;\n document.execCommand(\"insertText\", false, text);\n }\n\n static escape(s) {\n return s.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n }\n\n static testJSON(data) {\n try {\n return JSON.parse(data);\n } catch (err) {\n return false;\n }\n }\n\n static suppressErrors(method, message) {\n return (...params) => {\n try {\n return method(...params);\n } catch (e) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].stacktrace(\"SuppressedError\", \"Error occurred in \" + message, e);\n }\n };\n }\n\n static onRemoved(node, callback) {\n const observer = new MutationObserver(mutations => {\n for (let m = 0; m < mutations.length; m++) {\n const mutation = mutations[m];\n const nodes = Array.from(mutation.removedNodes);\n const directMatch = nodes.indexOf(node) > -1;\n const parentMatch = nodes.some(parent => parent.contains(node));\n\n if (directMatch || parentMatch) {\n observer.disconnect();\n callback();\n }\n }\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true\n });\n }\n\n static isEmpty(obj) {\n if (obj == null || obj == undefined || obj == \"\") return true;\n if (typeof obj !== \"object\") return false;\n if (Array.isArray(obj)) return obj.length == 0;\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) return false;\n }\n\n return true;\n }\n /**\r\n * Generates an automatically memoizing version of an object.\r\n * @author Zerebos\r\n * @param {Object} object - object to memoize\r\n * @returns {Proxy} the proxy to the object that memoizes properties\r\n */\n\n\n static memoizeObject(object) {\n const proxy = new Proxy(object, {\n get: function (obj, mod) {\n if (!obj.hasOwnProperty(mod)) return undefined;\n\n if (Object.getOwnPropertyDescriptor(obj, mod).get) {\n const value = obj[mod];\n delete obj[mod];\n obj[mod] = value;\n }\n\n return obj[mod];\n },\n set: function (obj, mod, value) {\n if (obj.hasOwnProperty(mod)) return _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].error(\"MemoizedObject\", \"Trying to overwrite existing property\");\n obj[mod] = value;\n return obj[mod];\n }\n });\n Object.defineProperty(proxy, \"hasOwnProperty\", {\n value: function (prop) {\n return this[prop] !== undefined;\n }\n });\n return proxy;\n }\n /**\r\n * Deep extends an object with a set of other objects. Objects later in the list\r\n * of `extenders` have priority, that is to say if one sets a key to be a primitive,\r\n * it will be overwritten with the next one with the same key. If it is an object,\r\n * and the keys match, the object is extended. This happens recursively.\r\n * @param {object} extendee - Object to be extended\r\n * @param {...object} extenders - Objects to extend with\r\n * @returns {object} - A reference to `extendee`\r\n */\n\n\n static extend(extendee, ...extenders) {\n for (let i = 0; i < extenders.length; i++) {\n for (const key in extenders[i]) {\n if (extenders[i].hasOwnProperty(key)) {\n if (typeof extendee[key] === \"object\" && typeof extenders[i][key] === \"object\") this.extend(extendee[key], extenders[i][key]);else if (typeof extenders[i][key] === \"object\") extendee[key] = {}, this.extend(extendee[key], extenders[i][key]);else extendee[key] = extenders[i][key];\n }\n }\n }\n\n return extendee;\n }\n /**\r\n * Format strings with placeholders (`{{placeholder}}`) into full strings.\r\n * Quick example: `PluginUtilities.formatString(\"Hello, {{user}}\", {user: \"Zerebos\"})`\r\n * would return \"Hello, Zerebos\".\r\n * @param {string} string - string to format\r\n * @param {object} values - object literal of placeholders to replacements\r\n * @returns {string} the properly formatted string\r\n */\n\n\n static formatString(string, values) {\n for (const val in values) {\n let replacement = values[val];\n if (Array.isArray(replacement)) replacement = JSON.stringify(replacement);\n if (typeof replacement === \"object\" && replacement !== null) replacement = replacement.toString();\n string = string.replace(new RegExp(`{{${val}}}`, \"g\"), replacement);\n }\n\n return string;\n }\n /**\r\n * Finds a value, subobject, or array from a tree that matches a specific filter.\r\n * @param {object} tree Tree that should be walked\r\n * @param {callable} searchFilter Filter to check against each object and subobject\r\n * @param {object} options Additional options to customize the search\r\n * @param {Array<string>|null} [options.walkable=null] Array of strings to use as keys that are allowed to be walked on. Null value indicates all keys are walkable\r\n * @param {Array<string>} [options.ignore=[]] Array of strings to use as keys to exclude from the search, most helpful when `walkable = null`.\r\n */\n\n\n static findInTree(tree, searchFilter, {\n walkable = null,\n ignore = []\n } = {}) {\n if (typeof searchFilter === \"string\") {\n if (tree.hasOwnProperty(searchFilter)) return tree[searchFilter];\n } else if (searchFilter(tree)) {\n return tree;\n }\n\n if (typeof tree !== \"object\" || tree == null) return undefined;\n let tempReturn = undefined;\n\n if (tree instanceof Array) {\n for (const value of tree) {\n tempReturn = this.findInTree(value, searchFilter, {\n walkable,\n ignore\n });\n if (typeof tempReturn != \"undefined\") return tempReturn;\n }\n } else {\n const toWalk = walkable == null ? Object.keys(tree) : walkable;\n\n for (const key of toWalk) {\n if (typeof tree[key] == \"undefined\" || ignore.includes(key)) continue;\n tempReturn = this.findInTree(tree[key], searchFilter, {\n walkable,\n ignore\n });\n if (typeof tempReturn != \"undefined\") return tempReturn;\n }\n }\n\n return tempReturn;\n }\n /**\r\n * Gets a nested property (if it exists) safely. Path should be something like `prop.prop2.prop3`.\r\n * Numbers can be used for arrays as well like `prop.prop2.array.0.id`.\r\n * @param {Object} obj - object to get nested property of\r\n * @param {string} path - representation of the property to obtain\r\n */\n\n\n static getNestedProp(obj, path) {\n return path.split(/\\s?\\.\\s?/).reduce(function (currentObj, prop) {\n return currentObj && currentObj[prop];\n }, obj);\n }\n /**\r\n * Finds a value, subobject, or array from a tree that matches a specific filter. Great for patching render functions.\r\n * @param {object} tree React tree to look through. Can be a rendered object or an internal instance.\r\n * @param {callable} searchFilter Filter function to check subobjects against.\r\n */\n\n\n static findInRenderTree(tree, searchFilter, {\n walkable = [\"props\", \"children\", \"child\", \"sibling\"],\n ignore = []\n } = {}) {\n return this.findInTree(tree, searchFilter, {\n walkable,\n ignore\n });\n }\n /**\r\n * Finds a value, subobject, or array from a tree that matches a specific filter. Great for patching render functions.\r\n * @param {object} tree React tree to look through. Can be a rendered object or an internal instance.\r\n * @param {callable} searchFilter Filter function to check subobjects against.\r\n */\n\n\n static findInReactTree(tree, searchFilter) {\n return this.findInTree(tree, searchFilter, {\n walkable: [\"props\", \"children\", \"return\", \"stateNode\"]\n });\n }\n\n static getReactInstance(node) {\n if (node.__reactInternalInstance$) return node.__reactInternalInstance$;\n return node[Object.keys(node).find(k => k.startsWith(\"__reactInternalInstance\"))] || null;\n }\n /**\r\n * Grabs a value from the react internal instance. Allows you to grab\r\n * long depth values safely without accessing no longer valid properties.\r\n * @param {HTMLElement} node - node to obtain react instance of\r\n * @param {object} options - options for the search\r\n * @param {array} [options.include] - list of items to include from the search\r\n * @param {array} [options.exclude=[\"Popout\", \"Tooltip\", \"Scroller\", \"BackgroundFlash\"]] - list of items to exclude from the search\r\n * @param {callable} [options.filter=_=>_] - filter to check the current instance with (should return a boolean)\r\n * @return {(*|null)} the owner instance or undefined if not found.\r\n */\n\n\n static getOwnerInstance(node, {\n include,\n exclude = [\"Popout\", \"Tooltip\", \"Scroller\", \"BackgroundFlash\"],\n filter = _ => _\n } = {}) {\n if (node === undefined) return undefined;\n const excluding = include === undefined;\n const nameFilter = excluding ? exclude : include;\n\n function getDisplayName(owner) {\n const type = owner.type;\n if (!type) return null;\n return type.displayName || type.name || null;\n }\n\n function classFilter(owner) {\n const name = getDisplayName(owner);\n return name !== null && !!(nameFilter.includes(name) ^ excluding);\n }\n\n let curr = this.getReactInstance(node);\n\n for (curr = curr && curr.return; curr !== null; curr = curr.return) {\n if (curr === null) continue;\n const owner = curr.stateNode;\n if (curr !== null && !(owner instanceof HTMLElement) && classFilter(curr) && filter(owner)) return owner;\n }\n\n return null;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdXRpbGl0aWVzLmpzPzk3NjkiXSwibmFtZXMiOlsiVXRpbGl0aWVzIiwicmVwb1VybCIsInBhdGgiLCJDb25maWciLCJyZXBvIiwiaGFzaCIsInBhcnNlSFRNTCIsImh0bWwiLCJmcmFnbWVudCIsInRlbXBsYXRlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwibm9kZSIsImNvbnRlbnQiLCJjbG9uZU5vZGUiLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiZ2V0VGV4dEFyZWEiLCIkIiwiaW5zZXJ0VGV4dCIsInRleHRhcmVhIiwidGV4dCIsImZvY3VzIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJ2YWx1ZSIsImV4ZWNDb21tYW5kIiwiZXNjYXBlIiwicyIsInJlcGxhY2UiLCJ0ZXN0SlNPTiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJlcnIiLCJzdXBwcmVzc0Vycm9ycyIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJwYXJhbXMiLCJlIiwiTG9nZ2VyIiwic3RhY2t0cmFjZSIsIm9uUmVtb3ZlZCIsImNhbGxiYWNrIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibSIsIm11dGF0aW9uIiwibm9kZXMiLCJBcnJheSIsImZyb20iLCJyZW1vdmVkTm9kZXMiLCJkaXJlY3RNYXRjaCIsImluZGV4T2YiLCJwYXJlbnRNYXRjaCIsInNvbWUiLCJwYXJlbnQiLCJjb250YWlucyIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiYm9keSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJpc0VtcHR5Iiwib2JqIiwidW5kZWZpbmVkIiwiaXNBcnJheSIsImtleSIsImhhc093blByb3BlcnR5IiwibWVtb2l6ZU9iamVjdCIsIm9iamVjdCIsInByb3h5IiwiUHJveHkiLCJnZXQiLCJtb2QiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJzZXQiLCJlcnJvciIsImRlZmluZVByb3BlcnR5IiwicHJvcCIsImV4dGVuZCIsImV4dGVuZGVlIiwiZXh0ZW5kZXJzIiwiaSIsImZvcm1hdFN0cmluZyIsInN0cmluZyIsInZhbHVlcyIsInZhbCIsInJlcGxhY2VtZW50Iiwic3RyaW5naWZ5IiwidG9TdHJpbmciLCJSZWdFeHAiLCJmaW5kSW5UcmVlIiwidHJlZSIsInNlYXJjaEZpbHRlciIsIndhbGthYmxlIiwiaWdub3JlIiwidGVtcFJldHVybiIsInRvV2FsayIsImtleXMiLCJpbmNsdWRlcyIsImdldE5lc3RlZFByb3AiLCJzcGxpdCIsInJlZHVjZSIsImN1cnJlbnRPYmoiLCJmaW5kSW5SZW5kZXJUcmVlIiwiZmluZEluUmVhY3RUcmVlIiwiZ2V0UmVhY3RJbnN0YW5jZSIsIl9fcmVhY3RJbnRlcm5hbEluc3RhbmNlJCIsImZpbmQiLCJrIiwic3RhcnRzV2l0aCIsImdldE93bmVySW5zdGFuY2UiLCJpbmNsdWRlIiwiZXhjbHVkZSIsImZpbHRlciIsIl8iLCJleGNsdWRpbmciLCJuYW1lRmlsdGVyIiwiZ2V0RGlzcGxheU5hbWUiLCJvd25lciIsInR5cGUiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJjbGFzc0ZpbHRlciIsImN1cnIiLCJyZXR1cm4iLCJzdGF0ZU5vZGUiLCJIVE1MRWxlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsTUFBTUEsU0FBTixDQUFnQjtBQUUzQixTQUFPQyxPQUFQLENBQWVDLElBQWYsRUFBcUI7QUFDakIsV0FBUSxnQ0FBK0JDLDJDQUFNLENBQUNDLElBQUsscUJBQW9CRCwyQ0FBTSxDQUFDRSxJQUFLLElBQUdILElBQUssRUFBM0Y7QUFDSDtBQUVEOzs7Ozs7Ozs7Ozs7O0FBV0EsU0FBT0ksU0FBUCxDQUFpQkMsSUFBakIsRUFBdUJDLFFBQVEsR0FBRyxLQUFsQyxFQUF5QztBQUNyQyxVQUFNQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixVQUF2QixDQUFq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RUFBbUI7QUFDbkIsWUFBTUwsS0FBSyxHQUFHSyxJQUFJLENBQUNFLFNBQW5CO0FBQ0EsVUFBSUYsSUFBSSxLQUFLLElBQVQsSUFBaUIsRUFBRUwsS0FBSyxZQUFZUSxXQUFuQixDQUFqQixJQUFvREosV0FBVyxDQUFDQyxJQUFELENBQS9ELElBQXlFVixNQUFNLENBQUNLLEtBQUQsQ0FBbkYsRUFBNEYsT0FBT0EsS0FBUDtBQUM1Rjs7QUFFRCxXQUFPLElBQVA7QUFDQTs7QUFqUTZCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvdXRpbGl0aWVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVdGlsaXRpZXMge1xyXG5cclxuICAgIHN0YXRpYyByZXBvVXJsKHBhdGgpIHtcclxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vY2RuLnN0YXRpY2FseS5jb20vZ2gvJHtDb25maWcucmVwb30vQmV0dGVyRGlzY29yZEFwcC8ke0NvbmZpZy5oYXNofS8ke3BhdGh9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnNlcyBhIHN0cmluZyBvZiBIVE1MIGFuZCByZXR1cm5zIHRoZSByZXN1bHRzLiBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyB0cnVlLFxyXG4gICAgICogdGhlIHBhcnNlZCBIVE1MIHdpbGwgYmUgcmV0dXJuZWQgYXMgYSBkb2N1bWVudCBmcmFnbWVudCB7QHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRG9jdW1lbnRGcmFnbWVudH0uXHJcbiAgICAgKiBUaGlzIGlzIGV4dHJlbWVseSB1c2VmdWwgaWYgeW91IGhhdmUgYSBsaXN0IG9mIGVsZW1lbnRzIGF0IHRoZSB0b3AgbGV2ZWwsIHRoZXkgY2FuIHRoZW4gYmUgYXBwZW5kZWQgYWxsIGF0IG9uY2UgdG8gYW5vdGhlciBub2RlLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGZhbHNlLCB0aGVuIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSB0aGUgbGlzdCBvZiBwYXJzZWRcclxuICAgICAqIG5vZGVzIGFuZCB0aGVyZSB3ZXJlIG11bHRpcGxlIHRvcCBsZXZlbCBub2Rlcywgb3RoZXJ3aXNlIHRoZSBzaW5nbGUgbm9kZSBpcyByZXR1cm5lZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBodG1sIC0gSFRNTCB0byBiZSBwYXJzZWRcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZyYWdtZW50PWZhbHNlXSAtIFdoZXRoZXIgb3Igbm90IHRoZSByZXR1cm4gc2hvdWxkIGJlIHRoZSByYXcgYERvY3VtZW50RnJhZ21lbnRgXHJcbiAgICAgKiBAcmV0dXJucyB7KERvY3VtZW50RnJhZ21lbnR8Tm9kZUxpc3R8SFRNTEVsZW1lbnQpfSAtIFRoZSByZXN1bHQgb2YgSFRNTCBwYXJzaW5nXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwYXJzZUhUTUwoaHRtbCwgZnJhZ21lbnQgPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpO1xyXG4gICAgICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IGh0bWw7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgICAgIGlmIChmcmFnbWVudCkgcmV0dXJuIG5vZGU7XHJcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPiAxID8gbm9kZS5jaGlsZE5vZGVzIDogbm9kZS5jaGlsZE5vZGVzWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRUZXh0QXJlYSgpIHtcclxuICAgICAgICByZXR1cm4gJChcIi5jaGFubmVsVGV4dEFyZWEtMUxEYllHIHRleHRhcmVhXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbnNlcnRUZXh0KHRleHRhcmVhLCB0ZXh0KSB7XHJcbiAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTtcclxuICAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25TdGFydCA9IDA7XHJcbiAgICAgICAgdGV4dGFyZWEuc2VsZWN0aW9uRW5kID0gdGV4dGFyZWEudmFsdWUubGVuZ3RoO1xyXG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiaW5zZXJ0VGV4dFwiLCBmYWxzZSwgdGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGVzY2FwZShzKSB7XHJcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy0vXFxcXF4kKis/LigpfFtcXF17fV0vZywgXCJcXFxcJCZcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRlc3RKU09OKGRhdGEpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzdXBwcmVzc0Vycm9ycyhtZXRob2QsIG1lc3NhZ2UpIHtcclxuICAgICAgICByZXR1cm4gKC4uLnBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICB0cnkgeyByZXR1cm4gbWV0aG9kKC4uLnBhcmFtcyk7XHR9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7IExvZ2dlci5zdGFja3RyYWNlKFwiU3VwcHJlc3NlZEVycm9yXCIsIFwiRXJyb3Igb2NjdXJyZWQgaW4gXCIgKyBtZXNzYWdlLCBlKTsgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG9uUmVtb3ZlZChub2RlLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBtID0gMDsgbSA8IG11dGF0aW9ucy5sZW5ndGg7IG0rKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbXV0YXRpb24gPSBtdXRhdGlvbnNbbV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlcyA9IEFycmF5LmZyb20obXV0YXRpb24ucmVtb3ZlZE5vZGVzKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdE1hdGNoID0gbm9kZXMuaW5kZXhPZihub2RlKSA+IC0xO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50TWF0Y2ggPSBub2Rlcy5zb21lKHBhcmVudCA9PiBwYXJlbnQuY29udGFpbnMobm9kZSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpcmVjdE1hdGNoIHx8IHBhcmVudE1hdGNoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqKSB7XHJcbiAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IG9iaiA9PSB1bmRlZmluZWQgfHwgb2JqID09IFwiXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh0eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIikgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoubGVuZ3RoID09IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhbiBhdXRvbWF0aWNhbGx5IG1lbW9pemluZyB2ZXJzaW9uIG9mIGFuIG9iamVjdC5cclxuICAgICAqIEBhdXRob3IgWmVyZWJvc1xyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCAtIG9iamVjdCB0byBtZW1vaXplXHJcbiAgICAgKiBAcmV0dXJucyB7UHJveHl9IHRoZSBwcm94eSB0byB0aGUgb2JqZWN0IHRoYXQgbWVtb2l6ZXMgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgbWVtb2l6ZU9iamVjdChvYmplY3QpIHtcclxuICAgICAgICBjb25zdCBwcm94eSA9IG5ldyBQcm94eShvYmplY3QsIHtcclxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbihvYmosIG1vZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkobW9kKSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgbW9kKS5nZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialttb2RdO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmpbbW9kXTtcclxuICAgICAgICAgICAgICAgICAgICBvYmpbbW9kXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ialttb2RdO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKG9iaiwgbW9kLCB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShtb2QpKSByZXR1cm4gTG9nZ2VyLmVycm9yKFwiTWVtb2l6ZWRPYmplY3RcIiwgXCJUcnlpbmcgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIHByb3BlcnR5XCIpO1xyXG4gICAgICAgICAgICAgICAgb2JqW21vZF0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvYmpbbW9kXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHksIFwiaGFzT3duUHJvcGVydHlcIiwge3ZhbHVlOiBmdW5jdGlvbihwcm9wKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3Byb3BdICE9PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfX0pO1xyXG5cclxuICAgICAgICByZXR1cm4gcHJveHk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWVwIGV4dGVuZHMgYW4gb2JqZWN0IHdpdGggYSBzZXQgb2Ygb3RoZXIgb2JqZWN0cy4gT2JqZWN0cyBsYXRlciBpbiB0aGUgbGlzdFxyXG4gICAgICogb2YgYGV4dGVuZGVyc2AgaGF2ZSBwcmlvcml0eSwgdGhhdCBpcyB0byBzYXkgaWYgb25lIHNldHMgYSBrZXkgdG8gYmUgYSBwcmltaXRpdmUsXHJcbiAgICAgKiBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggdGhlIG5leHQgb25lIHdpdGggdGhlIHNhbWUga2V5LiBJZiBpdCBpcyBhbiBvYmplY3QsXHJcbiAgICAgKiBhbmQgdGhlIGtleXMgbWF0Y2gsIHRoZSBvYmplY3QgaXMgZXh0ZW5kZWQuIFRoaXMgaGFwcGVucyByZWN1cnNpdmVseS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBleHRlbmRlZSAtIE9iamVjdCB0byBiZSBleHRlbmRlZFxyXG4gICAgICogQHBhcmFtIHsuLi5vYmplY3R9IGV4dGVuZGVycyAtIE9iamVjdHMgdG8gZXh0ZW5kIHdpdGhcclxuICAgICAqIEByZXR1cm5zIHtvYmplY3R9IC0gQSByZWZlcmVuY2UgdG8gYGV4dGVuZGVlYFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZXh0ZW5kKGV4dGVuZGVlLCAuLi5leHRlbmRlcnMpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4dGVuZGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBleHRlbmRlcnNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGlmIChleHRlbmRlcnNbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0ZW5kZWVba2V5XSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgZXh0ZW5kZXJzW2ldW2tleV0gPT09IFwib2JqZWN0XCIpIHRoaXMuZXh0ZW5kKGV4dGVuZGVlW2tleV0sIGV4dGVuZGVyc1tpXVtrZXldKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgZXh0ZW5kZXJzW2ldW2tleV0gPT09IFwib2JqZWN0XCIpIGV4dGVuZGVlW2tleV0gPSB7fSwgdGhpcy5leHRlbmQoZXh0ZW5kZWVba2V5XSwgZXh0ZW5kZXJzW2ldW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgZXh0ZW5kZWVba2V5XSA9IGV4dGVuZGVyc1tpXVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBleHRlbmRlZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdCBzdHJpbmdzIHdpdGggcGxhY2Vob2xkZXJzIChge3twbGFjZWhvbGRlcn19YCkgaW50byBmdWxsIHN0cmluZ3MuXHJcbiAgICAgKiBRdWljayBleGFtcGxlOiBgUGx1Z2luVXRpbGl0aWVzLmZvcm1hdFN0cmluZyhcIkhlbGxvLCB7e3VzZXJ9fVwiLCB7dXNlcjogXCJaZXJlYm9zXCJ9KWBcclxuICAgICAqIHdvdWxkIHJldHVybiBcIkhlbGxvLCBaZXJlYm9zXCIuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIC0gc3RyaW5nIHRvIGZvcm1hdFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHZhbHVlcyAtIG9iamVjdCBsaXRlcmFsIG9mIHBsYWNlaG9sZGVycyB0byByZXBsYWNlbWVudHNcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBwcm9wZXJseSBmb3JtYXR0ZWQgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBmb3JtYXRTdHJpbmcoc3RyaW5nLCB2YWx1ZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHZhbCBpbiB2YWx1ZXMpIHtcclxuICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gdmFsdWVzW3ZhbF07XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcGxhY2VtZW50KSkgcmVwbGFjZW1lbnQgPSBKU09OLnN0cmluZ2lmeShyZXBsYWNlbWVudCk7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YocmVwbGFjZW1lbnQpID09PSBcIm9iamVjdFwiICYmIHJlcGxhY2VtZW50ICE9PSBudWxsKSByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKG5ldyBSZWdFeHAoYHt7JHt2YWx9fX1gLCBcImdcIiksIHJlcGxhY2VtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgdmFsdWUsIHN1Ym9iamVjdCwgb3IgYXJyYXkgZnJvbSBhIHRyZWUgdGhhdCBtYXRjaGVzIGEgc3BlY2lmaWMgZmlsdGVyLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHRyZWUgVHJlZSB0aGF0IHNob3VsZCBiZSB3YWxrZWRcclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IHNlYXJjaEZpbHRlciBGaWx0ZXIgdG8gY2hlY2sgYWdhaW5zdCBlYWNoIG9iamVjdCBhbmQgc3Vib2JqZWN0XHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSBzZWFyY2hcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPnxudWxsfSBbb3B0aW9ucy53YWxrYWJsZT1udWxsXSBBcnJheSBvZiBzdHJpbmdzIHRvIHVzZSBhcyBrZXlzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgd2Fsa2VkIG9uLiBOdWxsIHZhbHVlIGluZGljYXRlcyBhbGwga2V5cyBhcmUgd2Fsa2FibGVcclxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW29wdGlvbnMuaWdub3JlPVtdXSBBcnJheSBvZiBzdHJpbmdzIHRvIHVzZSBhcyBrZXlzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgc2VhcmNoLCBtb3N0IGhlbHBmdWwgd2hlbiBgd2Fsa2FibGUgPSBudWxsYC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZpbmRJblRyZWUodHJlZSwgc2VhcmNoRmlsdGVyLCB7d2Fsa2FibGUgPSBudWxsLCBpZ25vcmUgPSBbXX0gPSB7fSkge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoRmlsdGVyID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIGlmICh0cmVlLmhhc093blByb3BlcnR5KHNlYXJjaEZpbHRlcikpIHJldHVybiB0cmVlW3NlYXJjaEZpbHRlcl07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHNlYXJjaEZpbHRlcih0cmVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJlZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdHJlZSAhPT0gXCJvYmplY3RcIiB8fCB0cmVlID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGxldCB0ZW1wUmV0dXJuID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB0cmVlKSB7XHJcbiAgICAgICAgICAgICAgICB0ZW1wUmV0dXJuID0gdGhpcy5maW5kSW5UcmVlKHZhbHVlLCBzZWFyY2hGaWx0ZXIsIHt3YWxrYWJsZSwgaWdub3JlfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRlbXBSZXR1cm4gIT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRlbXBSZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvV2FsayA9IHdhbGthYmxlID09IG51bGwgPyBPYmplY3Qua2V5cyh0cmVlKSA6IHdhbGthYmxlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0b1dhbGspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YodHJlZVtrZXldKSA9PSBcInVuZGVmaW5lZFwiIHx8IGlnbm9yZS5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIHRlbXBSZXR1cm4gPSB0aGlzLmZpbmRJblRyZWUodHJlZVtrZXldLCBzZWFyY2hGaWx0ZXIsIHt3YWxrYWJsZSwgaWdub3JlfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRlbXBSZXR1cm4gIT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRlbXBSZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRlbXBSZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgbmVzdGVkIHByb3BlcnR5IChpZiBpdCBleGlzdHMpIHNhZmVseS4gUGF0aCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UgYHByb3AucHJvcDIucHJvcDNgLlxyXG4gICAgICogTnVtYmVycyBjYW4gYmUgdXNlZCBmb3IgYXJyYXlzIGFzIHdlbGwgbGlrZSBgcHJvcC5wcm9wMi5hcnJheS4wLmlkYC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSBvYmplY3QgdG8gZ2V0IG5lc3RlZCBwcm9wZXJ0eSBvZlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcHJvcGVydHkgdG8gb2J0YWluXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXROZXN0ZWRQcm9wKG9iaiwgcGF0aCkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KC9cXHM/XFwuXFxzPy8pLnJlZHVjZShmdW5jdGlvbihjdXJyZW50T2JqLCBwcm9wKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50T2JqICYmIGN1cnJlbnRPYmpbcHJvcF07XHJcbiAgICAgICAgfSwgb2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgdmFsdWUsIHN1Ym9iamVjdCwgb3IgYXJyYXkgZnJvbSBhIHRyZWUgdGhhdCBtYXRjaGVzIGEgc3BlY2lmaWMgZmlsdGVyLiBHcmVhdCBmb3IgcGF0Y2hpbmcgcmVuZGVyIGZ1bmN0aW9ucy5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSB0cmVlIFJlYWN0IHRyZWUgdG8gbG9vayB0aHJvdWdoLiBDYW4gYmUgYSByZW5kZXJlZCBvYmplY3Qgb3IgYW4gaW50ZXJuYWwgaW5zdGFuY2UuXHJcbiAgICAgKiBAcGFyYW0ge2NhbGxhYmxlfSBzZWFyY2hGaWx0ZXIgRmlsdGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHN1Ym9iamVjdHMgYWdhaW5zdC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZpbmRJblJlbmRlclRyZWUodHJlZSwgc2VhcmNoRmlsdGVyLCB7d2Fsa2FibGUgPSBbXCJwcm9wc1wiLCBcImNoaWxkcmVuXCIsIFwiY2hpbGRcIiwgXCJzaWJsaW5nXCJdLCBpZ25vcmUgPSBbXX0gPSB7fSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRJblRyZWUodHJlZSwgc2VhcmNoRmlsdGVyLCB7d2Fsa2FibGUsIGlnbm9yZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYSB2YWx1ZSwgc3Vib2JqZWN0LCBvciBhcnJheSBmcm9tIGEgdHJlZSB0aGF0IG1hdGNoZXMgYSBzcGVjaWZpYyBmaWx0ZXIuIEdyZWF0IGZvciBwYXRjaGluZyByZW5kZXIgZnVuY3Rpb25zLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHRyZWUgUmVhY3QgdHJlZSB0byBsb29rIHRocm91Z2guIENhbiBiZSBhIHJlbmRlcmVkIG9iamVjdCBvciBhbiBpbnRlcm5hbCBpbnN0YW5jZS5cclxuICAgICAqIEBwYXJhbSB7Y2FsbGFibGV9IHNlYXJjaEZpbHRlciBGaWx0ZXIgZnVuY3Rpb24gdG8gY2hlY2sgc3Vib2JqZWN0cyBhZ2FpbnN0LlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZmluZEluUmVhY3RUcmVlKHRyZWUsIHNlYXJjaEZpbHRlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRJblRyZWUodHJlZSwgc2VhcmNoRmlsdGVyLCB7d2Fsa2FibGU6IFtcInByb3BzXCIsIFwiY2hpbGRyZW5cIiwgXCJyZXR1cm5cIiwgXCJzdGF0ZU5vZGVcIl19KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UmVhY3RJbnN0YW5jZShub2RlKSB7XHJcbiAgICAgICAgaWYgKG5vZGUuX19yZWFjdEludGVybmFsSW5zdGFuY2UkKSByZXR1cm4gbm9kZS5fX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSQ7XHJcbiAgICAgICAgcmV0dXJuIG5vZGVbT2JqZWN0LmtleXMobm9kZSkuZmluZChrID0+IGsuc3RhcnRzV2l0aChcIl9fcmVhY3RJbnRlcm5hbEluc3RhbmNlXCIpKV0gfHwgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuXHQgKiBHcmFicyBhIHZhbHVlIGZyb20gdGhlIHJlYWN0IGludGVybmFsIGluc3RhbmNlLiBBbGxvd3MgeW91IHRvIGdyYWJcclxuXHQgKiBsb25nIGRlcHRoIHZhbHVlcyBzYWZlbHkgd2l0aG91dCBhY2Nlc3Npbmcgbm8gbG9uZ2VyIHZhbGlkIHByb3BlcnRpZXMuXHJcblx0ICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbm9kZSAtIG5vZGUgdG8gb2J0YWluIHJlYWN0IGluc3RhbmNlIG9mXHJcblx0ICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIGZvciB0aGUgc2VhcmNoXHJcblx0ICogQHBhcmFtIHthcnJheX0gW29wdGlvbnMuaW5jbHVkZV0gLSBsaXN0IG9mIGl0ZW1zIHRvIGluY2x1ZGUgZnJvbSB0aGUgc2VhcmNoXHJcblx0ICogQHBhcmFtIHthcnJheX0gW29wdGlvbnMuZXhjbHVkZT1bXCJQb3BvdXRcIiwgXCJUb29sdGlwXCIsIFwiU2Nyb2xsZXJcIiwgXCJCYWNrZ3JvdW5kRmxhc2hcIl1dIC0gbGlzdCBvZiBpdGVtcyB0byBleGNsdWRlIGZyb20gdGhlIHNlYXJjaFxyXG5cdCAqIEBwYXJhbSB7Y2FsbGFibGV9IFtvcHRpb25zLmZpbHRlcj1fPT5fXSAtIGZpbHRlciB0byBjaGVjayB0aGUgY3VycmVudCBpbnN0YW5jZSB3aXRoIChzaG91bGQgcmV0dXJuIGEgYm9vbGVhbilcclxuXHQgKiBAcmV0dXJuIHsoKnxudWxsKX0gdGhlIG93bmVyIGluc3RhbmNlIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXHJcblx0ICovXHJcblx0c3RhdGljIGdldE93bmVySW5zdGFuY2Uobm9kZSwge2luY2x1ZGUsIGV4Y2x1ZGUgPSBbXCJQb3BvdXRcIiwgXCJUb29sdGlwXCIsIFwiU2Nyb2xsZXJcIiwgXCJCYWNrZ3JvdW5kRmxhc2hcIl0sIGZpbHRlciA9IF8gPT4gX30gPSB7fSkge1xyXG5cdFx0aWYgKG5vZGUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdGNvbnN0IGV4Y2x1ZGluZyA9IGluY2x1ZGUgPT09IHVuZGVmaW5lZDtcclxuXHRcdGNvbnN0IG5hbWVGaWx0ZXIgPSBleGNsdWRpbmcgPyBleGNsdWRlIDogaW5jbHVkZTtcclxuXHRcdGZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKG93bmVyKSB7XHJcblx0XHRcdGNvbnN0IHR5cGUgPSBvd25lci50eXBlO1xyXG5cdFx0XHRpZiAoIXR5cGUpIHJldHVybiBudWxsO1xyXG5cdFx0XHRyZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcclxuXHRcdH1cclxuXHRcdGZ1bmN0aW9uIGNsYXNzRmlsdGVyKG93bmVyKSB7XHJcblx0XHRcdGNvbnN0IG5hbWUgPSBnZXREaXNwbGF5TmFtZShvd25lcik7XHJcblx0XHRcdHJldHVybiAobmFtZSAhPT0gbnVsbCAmJiAhIShuYW1lRmlsdGVyLmluY2x1ZGVzKG5hbWUpIF4gZXhjbHVkaW5nKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGN1cnIgPSB0aGlzLmdldFJlYWN0SW5zdGFuY2Uobm9kZSk7XHJcblx0XHRmb3IgKGN1cnIgPSBjdXJyICYmIGN1cnIucmV0dXJuOyBjdXJyICE9PSBudWxsOyBjdXJyID0gY3Vyci5yZXR1cm4pIHtcclxuXHRcdFx0aWYgKGN1cnIgPT09IG51bGwpIGNvbnRpbnVlO1xyXG5cdFx0XHRjb25zdCBvd25lciA9IGN1cnIuc3RhdGVOb2RlO1xyXG5cdFx0XHRpZiAoY3VyciAhPT0gbnVsbCAmJiAhKG93bmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpICYmIGNsYXNzRmlsdGVyKGN1cnIpICYmIGZpbHRlcihvd25lcikpIHJldHVybiBvd25lcjtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/utilities.js\n");
/***/ }),
/***/ "./src/modules/webpackmodules.js":
/*!***************************************!*\
!*** ./src/modules/webpackmodules.js ***!
\***************************************/
/*! exports provided: Filters, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Filters\", function() { return Filters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WebpackModules; });\n/**\r\n * Allows for grabbing and searching through Discord's webpacked modules.\r\n * @module WebpackModules\r\n * @version 0.0.2\r\n */\n// import DiscordModules from \"./discordmodules\";\n\n/**\r\n * Checks if a given module matches a set of parameters.\r\n * @callback module:WebpackModules.Filters~filter\r\n * @param {*} module - module to check\r\n * @returns {boolean} - True if the module matches the filter, false otherwise\r\n */\n\n/**\r\n * Filters for use with {@link module:WebpackModules} but may prove useful elsewhere.\r\n */\nclass Filters {\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties.\r\n * @param {Array<string>} props - Array of property names\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n static byProperties(props, filter = m => m) {\n return module => {\n const component = filter(module);\n if (!component) return false;\n return props.every(property => component[property] !== undefined);\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties on the object's prototype.\r\n * @param {Array<string>} fields - Array of property names\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties on the object's prototype\r\n */\n\n\n static byPrototypeFields(fields, filter = m => m) {\n return module => {\n const component = filter(module);\n if (!component) return false;\n if (!component.prototype) return false;\n return fields.every(field => component.prototype[field] !== undefined);\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a regex.\r\n * @param {RegExp} search - A RegExp to check on the module\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n\n\n static byCode(search, filter = m => m) {\n return module => {\n const method = filter(module);\n if (!method) return false;\n return method.toString([]).search(search) !== -1;\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by strings.\r\n * @param {...String} search - A RegExp to check on the module\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of strings\r\n */\n\n\n static byString(...strings) {\n return module => {\n const moduleString = module.toString([]);\n\n for (const s of strings) {\n if (!moduleString.includes(s)) return false;\n }\n\n return true;\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties.\r\n * @param {string} name - Name the module should have\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n\n\n static byDisplayName(name) {\n return module => {\n return module && module.displayName === name;\n };\n }\n /**\r\n * Generates a combined {@link module:WebpackModules.Filters~filter} from a list of filters.\r\n * @param {...module:WebpackModules.Filters~filter} filters - A list of filters\r\n * @returns {module:WebpackModules.Filters~filter} - Combinatory filter of all arguments\r\n */\n\n\n static combine(...filters) {\n return module => {\n return filters.every(filter => filter(module));\n };\n }\n\n}\nclass WebpackModules {\n static find(filter, first = true) {\n return this.getModule(filter, first);\n }\n\n static findAll(filter) {\n return this.getModule(filter, false);\n }\n\n static findByUniqueProperties(props, first = true) {\n return first ? this.getByProps(...props) : this.getAllByProps(...props);\n }\n\n static findByDisplayName(name) {\n return this.getByDisplayName(name);\n }\n /**\r\n * Finds a module using a filter function.\r\n * @param {Function} filter A function to use to filter modules\r\n * @param {Boolean} first Whether to return only the first matching module\r\n * @return {Any}\r\n */\n\n\n static getModule(filter, first = true) {\n const modules = this.getAllModules();\n const rm = [];\n\n for (const index in modules) {\n if (!modules.hasOwnProperty(index)) continue;\n const module = modules[index];\n const {\n exports\n } = module;\n let foundModule = null;\n if (!exports) continue;\n if (exports.__esModule && exports.default && filter(exports.default)) foundModule = exports.default;\n if (filter(exports)) foundModule = exports;\n if (!foundModule) continue;\n if (first) return foundModule;\n rm.push(foundModule);\n }\n\n return first || rm.length == 0 ? undefined : rm;\n }\n /**\r\n * Finds all modules matching a filter function.\r\n * @param {Function} filter A function to use to filter modules\r\n */\n\n\n static getModules(filter) {\n return this.getModule(filter, false);\n }\n /**\r\n * Finds a module by its name.\r\n * @param {String} name The name of the module\r\n * @param {Function} fallback A function to use to filter modules if not finding a known module\r\n * @return {Any}\r\n */\n // static getModuleByName(name, fallback) {\n // if (DiscordModules.hasOwnProperty(name)) return DiscordModules[name];\n // if (!fallback) return undefined;\n // const module = this.getModule(fallback, true);\n // return module ? DiscordModules[name] = module : undefined;\n // }\n\n /**\r\n * Finds a module by its display name.\r\n * @param {String} name The display name of the module\r\n * @return {Any}\r\n */\n\n\n static getByDisplayName(name) {\n return this.getModule(Filters.byDisplayName(name), true);\n }\n /**\r\n * Finds a module using its code.\r\n * @param {RegEx} regex A regular expression to use to filter modules\r\n * @param {Boolean} first Whether to return the only the first matching module\r\n * @return {Any}\r\n */\n\n\n static getByRegex(regex, first = true) {\n return this.getModule(Filters.byCode(regex), first);\n }\n /**\r\n * Finds a single module using properties on its prototype.\r\n * @param {...string} prototypes Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByPrototypes(...prototypes) {\n return this.getModule(Filters.byPrototypeFields(prototypes), true);\n }\n /**\r\n * Finds all modules with a set of properties of its prototype.\r\n * @param {...string} prototypes Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByPrototypes(...prototypes) {\n return this.getModule(Filters.byPrototypeFields(prototypes), false);\n }\n /**\r\n * Finds a single module using its own properties.\r\n * @param {...string} props Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByProps(...props) {\n return this.getModule(Filters.byProperties(props), true);\n }\n /**\r\n * Finds all modules with a set of properties.\r\n * @param {...string} props Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByProps(...props) {\n return this.getModule(Filters.byProperties(props), false);\n }\n /**\r\n * Finds a single module using a set of strings.\r\n * @param {...String} props Strings to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByString(...strings) {\n return this.getModule(Filters.byString(...strings), true);\n }\n /**\r\n * Finds all modules with a set of strings.\r\n * @param {...String} strings Strings to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByString(...strings) {\n return this.getModule(Filters.byString(...strings), false);\n }\n /**\r\n * Discord's __webpack_require__ function.\r\n */\n\n\n static get require() {\n if (this._require) return this._require;\n const id = \"bbd-webpackmodules\";\n\n const __webpack_require__ = typeof window.webpackJsonp == \"function\" ? window.webpackJsonp([], {\n [id]: (module, exports, __internal_require__) => exports.default = __internal_require__\n }, [id]).default : window.webpackJsonp.push([[], {\n [id]: (module, exports, __internal_require__) => module.exports = __internal_require__\n }, [[id]]]);\n\n delete __webpack_require__.m[id];\n delete __webpack_require__.c[id];\n return this._require = __webpack_require__;\n }\n /**\r\n * Returns all loaded modules.\r\n * @return {Array}\r\n */\n\n\n static getAllModules() {\n return this.require.c;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvd2VicGFja21vZHVsZXMuanM/OWIyNyJdLCJuYW1lcyI6WyJGaWx0ZXJzIiwiYnlQcm9wZXJ0aWVzIiwicHJvcHMiLCJmaWx0ZXIiLCJtIiwibW9kdWxlIiwiY29tcG9uZW50IiwiZXZlcnkiLCJwcm9wZXJ0eSIsInVuZGVmaW5lZCIsImJ5UHJvdG90eXBlRmllbGRzIiwiZmllbGRzIiwicHJvdG90eXBlIiwiZmllbGQiLCJieUNvZGUiLCJzZWFyY2giLCJtZXRob2QiLCJ0b1N0cmluZyIsImJ5U3RyaW5nIiwic3RyaW5ncyIsIm1vZHVsZVN0cmluZyIsInMiLCJpbmNsdWRlcyIsImJ5RGlzcGxheU5hbWUiLCJuYW1lIiwiZGlzcGxheU5hbWUiLCJjb21iaW5lIiwiZmlsdGVycyIsIldlYnBhY2tNb2R1bGVzIiwiZmluZCIsImZpcnN0IiwiZ2V0TW9kdWxlIiwiZmluZEFsbCIsImZpbmRCeVVuaXF1ZVByb3BlcnRpZXMiLCJnZXRCeVByb3BzIiwiZ2V0QWxsQnlQcm9wcyIsImZpbmRCeURpc3BsYXlOYW1lIiwiZ2V0QnlEaXNwbGF5TmFtZSIsIm1vZHVsZXMiLCJnZXRBbGxNb2R1bGVzIiwicm0iLCJpbmRleCIsImhhc093blByb3BlcnR5IiwiZXhwb3J0cyIsImZvdW5kTW9kdWxlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJwdXNoIiwibGVuZ3RoIiwiZ2V0TW9kdWxlcyIsImdldEJ5UmVnZXgiLCJyZWdleCIsImdldEJ5UHJvdG90eXBlcyIsInByb3RvdHlwZXMiLCJnZXRBbGxCeVByb3RvdHlwZXMiLCJnZXRCeVN0cmluZyIsImdldEFsbEJ5U3RyaW5nIiwicmVxdWlyZSIsIl9yZXF1aXJlIiwiaWQiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwid2luZG93Iiwid2VicGFja0pzb25wIiwiX19pbnRlcm5hbF9yZXF1aXJlX18iLCJjIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFNQTs7QUFFQTs7Ozs7OztBQU9BOzs7QUFHTyxNQUFNQSxPQUFOLENBQWM7QUFDakI7Ozs7OztBQU1BLFNBQU9DLFlBQVAsQ0FBb0JDLEtBQXBCLEVBQTJCQyxNQUFNLEdBQUdDLENBQUMsSUFBSUEsQ0FBekMsRUFBNEM7QUFDeEMsV0FBT0MsTUFBTSxJQUFJO0FBQ2IsWUFBTUMsU0FBUyxHQUFHSCxNQUFNLENBQUNFLE1BQUQsQ0FBeEI7QUFDQSxVQUFJLENBQUNDLFNBQUwsRUFBZ0IsT0FBTyxLQUFQO0FBQ2hCLGFBQU9KLEtBQUssQ0FBQ0ssS0FBTixDQUFZQyxRQUFRLElBQUlGLFNBQVMsQ0FBQ0UsUUFBRCxDQUFULEtBQXdCQyxTQUFoRCxDQUFQO0FBQ0gsS0FKRDtBQUtIO0FBRUQ7Ozs7Ozs7O0FBTUEsU0FBT0MsaUJBQVAsQ0FBeUJDLE1BQXpCLEVBQWlDUixNQUFNLEdBQUdDLENBQUMsSUFBSUEsQ0FBL0MsRUFBa0Q7QUFDOUMsV0FBT0MsTUFBTSxJQUFJO0FBQ2IsWUFBTUMsU0FBUyxHQUFHSCxNQUFNLENBQUNFLE1BQUQsQ0FBeEI7QUFDQSxVQUFJLENBQUNDLFNBQUwsRUFBZ0IsT0FBTyxLQUFQO0FBQ2hCLFVBQUksQ0FBQ0EsU0FBUyxDQUFDTSxTQUFmLEVBQTBCLE9BQU8sS0FBUDtBQUMxQixhQUFPRCxNQUFNLENBQUNKLEtBQVAsQ0FBYU0sS0FBSyxJQUFJUCxTQUFTLENBQUNNLFNBQVYsQ0FBb0JDLEtBQXBCLE1BQStCSixTQUFyRCxDQUFQO0FBQ0gsS0FMRDtBQU1IO0FBRUQ7Ozs7Ozs7O0FBTUEsU0FBT0ssTUFBUCxDQUFjQyxNQUFkLEVBQXNCWixNQUFNLEdBQUdDLENBQUMsSUFBSUEsQ0FBcEMsRUFBdUM7QUFDbkMsV0FBT0MsTUFBTSxJQUFJO0FBQ2IsWUFBTVcsTUFBTSxHQUFHYixNQUFNLENBQUNFLE1BQUQsQ0FBckI7QUFDQSxVQUFJLENBQUNXLE1BQUwsRUFBYSxPQUFPLEtBQVA7QUFDYixhQUFPQSxNQUFNLENBQUNDLFFBQVAsQ0FBZ0IsRUFBaEIsRUFBb0JGLE1BQXBCLENBQTJCQSxNQUEzQixNQUF1QyxDQUFDLENBQS9DO0FBQ0gsS0FKRDtBQUtIO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFPRyxRQUFQLENBQWdCLEdBQUdDLE9BQW5CLEVBQTRCO0FBQ3hCLFdBQU9kLE1BQU0sSUFBSTtBQUNiLFlBQU1lLFlBQVksR0FBR2YsTUFBTSxDQUFDWSxRQUFQLENBQWdCLEVBQWhCLENBQXJCOztBQUNBLFdBQUssTUFBTUksQ0FBWCxJQUFnQkYsT0FBaEIsRUFBeUI7QUFDckIsWUFBSSxDQUFDQyxZQUFZLENBQUNFLFFBQWIsQ0FBc0JELENBQXRCLENBQUwsRUFBK0IsT0FBTyxLQUFQO0FBQ2xDOztBQUNELGFBQU8sSUFBUDtBQUNILEtBTkQ7QUFPSDtBQUVEOzs7Ozs7OztBQU1BLFNBQU9FLGFBQVAsQ0FBcUJDLElBQXJCLEVBQTJCO0FBQ3ZCLFdBQU9uQixNQUFNLElBQUk7QUFDYixhQUFPQSxNQUFNLElBQUlBLE1BQU0sQ0FBQ29CLFdBQVAsS0FBdUJELElBQXhDO0FBQ0gsS0FGRDtBQUdIO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFPRSxPQUFQLENBQWUsR0FBR0MsT0FBbEIsRUFBMkI7QUFDdkIsV0FBT3RCLE1BQU0sSUFBSTtBQUNiLGFBQU9zQixPQUFPLENBQUNwQixLQUFSLENBQWNKLE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxNQUFELENBQTlCLENBQVA7QUFDSCxLQUZEO0FBR0g7O0FBaEZnQjtBQW1GTixNQUFNdUIsY0FBTixDQUFxQjtBQUVoQyxTQUFPQyxJQUFQLENBQVkxQixNQUFaLEVBQW9CMkIsS0FBSyxHQUFHLElBQTVCLEVBQWtDO0FBQUMsV0FBTyxLQUFLQyxTQUFMLENBQWU1QixNQUFmLEVBQXVCMkIsS0FBdkIsQ0FBUDtBQUFzQzs7QUFDekUsU0FBT0UsT0FBUCxDQUFlN0IsTUFBZixFQUF1QjtBQUFDLFdBQU8sS0FBSzRCLFNBQUwsQ0FBZTVCLE1BQWYsRUFBdUIsS0FBdkIsQ0FBUDtBQUFzQzs7QUFDOUQsU0FBTzhCLHNCQUFQLENBQThCL0IsS0FBOUIsRUFBcUM0QixLQUFLLEdBQUcsSUFBN0MsRUFBbUQ7QUFBQyxXQUFPQSxLQUFLLEdBQUcsS0FBS0ksVUFBTCxDQUFnQixHQUFHaEMsS0FBbkIsQ0FBSCxHQUErQixLQUFLaUMsYUFBTCxDQUFtQixHQUFHakMsS0FBdEIsQ0FBM0M7QUFBeUU7O0FBQzdILFNBQU9rQyxpQkFBUCxDQUF5QlosSUFBekIsRUFBK0I7QUFBQyxXQUFPLEtBQUthLGdCQUFMLENBQXNCYixJQUF0QixDQUFQO0FBQW9DO0FBRXBFOzs7Ozs7OztBQU1BLFNBQU9PLFNBQVAsQ0FBaUI1QixNQUFqQixFQUF5QjJCLEtBQUssR0FBRyxJQUFqQyxFQUF1QztBQUNuQyxVQUFNUSxPQUFPLEdBQUcsS0FBS0MsYUFBTCxFQUFoQjtBQUNBLFVBQU1DLEVBQUUsR0FBRyxFQUFYOztBQUNBLFNBQUssTUFBTUMsS0FBWCxJQUFvQkgsT0FBcEIsRUFBNkI7QUFDekIsVUFBSSxDQUFDQSxPQUFPLENBQUNJLGNBQVIsQ0FBdUJELEtBQXZCLENBQUwsRUFBb0M7QUFDcEMsWUFBTXBDLE1BQU0sR0FBR2lDLE9BQU8sQ0FBQ0csS0FBRCxDQUF0QjtBQUNBLFlBQU07QUFBQ0U7QUFBRCxVQUFZdEMsTUFBbEI7QUFDQSxVQUFJdUMsV0FBVyxHQUFHLElBQWxCO0FBRUEsVUFBSSxDQUFDRCxPQUFMLEVBQWM7QUFDZCxVQUFJQSxPQUFPLENBQUNFLFVBQVIsSUFBc0JGLE9BQU8sQ0FBQ0csT0FBOUIsSUFBeUMzQyxNQUFNLENBQUN3QyxPQUFPLENBQUNHLE9BQVQsQ0FBbkQsRUFBc0VGLFdBQVcsR0FBR0QsT0FBTyxDQUFDRyxPQUF0QjtBQUN0RSxVQUFJM0MsTUFBTSxDQUFDd0MsT0FBRCxDQUFWLEVBQXFCQyxXQUFXLEdBQUdELE9BQWQ7QUFDckIsVUFBSSxDQUFDQyxXQUFMLEVBQWtCO0FBQ2xCLFVBQUlkLEtBQUosRUFBVyxPQUFPYyxXQUFQO0FBQ1hKLFFBQUUsQ0FBQ08sSUFBSCxDQUFRSCxXQUFSO0FBQ0g7O0FBQ0QsV0FBT2QsS0FBSyxJQUFJVSxFQUFFLENBQUNRLE1BQUgsSUFBYSxDQUF0QixHQUEwQnZDLFNBQTFCLEdBQXNDK0IsRUFBN0M7QUFDSDtBQUVEOzs7Ozs7QUFJQSxTQUFPUyxVQUFQLENBQWtCOUMsTUFBbEIsRUFBMEI7QUFBQyxXQUFPLEtBQUs0QixTQUFMLENBQWU1QixNQUFmLEVBQXVCLEtBQXZCLENBQVA7QUFBc0M7QUFFakU7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQUtBLFNBQU9rQyxnQkFBUCxDQUF3QmIsSUFBeEIsRUFBOEI7QUFDMUIsV0FBTyxLQUFLTyxTQUFMLENBQWUvQixPQUFPLENBQUN1QixhQUFSLENBQXNCQyxJQUF0QixDQUFmLEVBQTRDLElBQTVDLENBQVA7QUFDSDtBQUVEOzs7Ozs7OztBQU1BLFNBQU8wQixVQUFQLENBQWtCQyxLQUFsQixFQUF5QnJCLEtBQUssR0FBRyxJQUFqQyxFQUF1QztBQUNuQyxXQUFPLEtBQUtDLFNBQUwsQ0FBZS9CLE9BQU8sQ0FBQ2MsTUFBUixDQUFlcUMsS0FBZixDQUFmLEVBQXNDckIsS0FBdEMsQ0FBUDtBQUNIO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFPc0IsZUFBUCxDQUF1QixHQUFHQyxVQUExQixFQUFzQztBQUNsQyxXQUFPLEtBQUt0QixTQUFMLENBQWUvQixPQUFPLENBQUNVLGlCQUFSLENBQTBCMkMsVUFBMUIsQ0FBZixFQUFzRCxJQUF0RCxDQUFQO0FBQ0g7QUFFRDs7Ozs7OztBQUtBLFNBQU9DLGtCQUFQLENBQTBCLEdBQUdELFVBQTdCLEVBQXlDO0FBQ3JDLFdBQU8sS0FBS3RCLFNBQUwsQ0FBZS9CLE9BQU8sQ0FBQ1UsaUJBQVIsQ0FBMEIyQyxVQUExQixDQUFmLEVBQXNELEtBQXRELENBQVA7QUFDSDtBQUVEOzs7Ozs7O0FBS0EsU0FBT25CLFVBQVAsQ0FBa0IsR0FBR2hDLEtBQXJCLEVBQTRCO0FBQ3hCLFdBQU8sS0FBSzZCLFNBQUwsQ0FBZS9CLE9BQU8sQ0FBQ0MsWUFBUixDQUFxQkMsS0FBckIsQ0FBZixFQUE0QyxJQUE1QyxDQUFQO0FBQ0g7QUFFRDs7Ozs7OztBQUtBLFNBQU9pQyxhQUFQLENBQXFCLEdBQUdqQyxLQUF4QixFQUErQjtBQUMzQixXQUFPLEtBQUs2QixTQUFMLENBQWUvQixPQUFPLENBQUNDLFlBQVIsQ0FBcUJDLEtBQXJCLENBQWYsRUFBNEMsS0FBNUMsQ0FBUDtBQUNIO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFPcUQsV0FBUCxDQUFtQixHQUFHcEMsT0FBdEIsRUFBK0I7QUFDM0IsV0FBTyxLQUFLWSxTQUFMLENBQWUvQixPQUFPLENBQUNrQixRQUFSLENBQWlCLEdBQUdDLE9BQXBCLENBQWYsRUFBNkMsSUFBN0MsQ0FBUDtBQUNIO0FBRUQ7Ozs7Ozs7QUFLQSxTQUFPcUMsY0FBUCxDQUFzQixHQUFHckMsT0FBekIsRUFBa0M7QUFDOUIsV0FBTyxLQUFLWSxTQUFMLENBQWUvQixPQUFPLENBQUNrQixRQUFSLENBQWlCLEdBQUdDLE9BQXBCLENBQWYsRUFBNkMsS0FBN0MsQ0FBUDtBQUNIO0FBRUQ7Ozs7O0FBR0EsYUFBV3NDLE9BQVgsR0FBcUI7QUFDakIsUUFBSSxLQUFLQyxRQUFULEVBQW1CLE9BQU8sS0FBS0EsUUFBWjtBQUNuQixVQUFNQyxFQUFFLEdBQUcsb0JBQVg7O0FBQ0EsVUFBTUMsbUJBQW1CLEdBQUcsT0FBT0MsTUFBTSxDQUFDQyxZQUFkLElBQStCLFVBQS9CLEdBQTRDRCxNQUFNLENBQUNDLFlBQVAsQ0FBb0IsRUFBcEIsRUFBd0I7QUFDNUYsT0FBQ0gsRUFBRCxHQUFNLENBQUN0RCxNQUFELEVBQVNzQyxPQUFULEVBQWtCb0Isb0JBQWxCLEtBQTJDcEIsT0FBTyxDQUFDRyxPQUFSLEdBQWtCaUI7QUFEeUIsS0FBeEIsRUFFckUsQ0FBQ0osRUFBRCxDQUZxRSxFQUUvRGIsT0FGbUIsR0FFVGUsTUFBTSxDQUFDQyxZQUFQLENBQW9CZixJQUFwQixDQUF5QixDQUFDLEVBQUQsRUFBSztBQUM3QyxPQUFDWSxFQUFELEdBQU0sQ0FBQ3RELE1BQUQsRUFBU3NDLE9BQVQsRUFBa0JvQixvQkFBbEIsS0FBMkMxRCxNQUFNLENBQUNzQyxPQUFQLEdBQWlCb0I7QUFEckIsS0FBTCxFQUV6QyxDQUFDLENBQUNKLEVBQUQsQ0FBRCxDQUZ5QyxDQUF6QixDQUZuQjs7QUFLQSxXQUFPQyxtQkFBbUIsQ0FBQ3hELENBQXBCLENBQXNCdUQsRUFBdEIsQ0FBUDtBQUNBLFdBQU9DLG1CQUFtQixDQUFDSSxDQUFwQixDQUFzQkwsRUFBdEIsQ0FBUDtBQUNBLFdBQU8sS0FBS0QsUUFBTCxHQUFnQkUsbUJBQXZCO0FBQ0g7QUFFRDs7Ozs7O0FBSUEsU0FBT3JCLGFBQVAsR0FBdUI7QUFDbkIsV0FBTyxLQUFLa0IsT0FBTCxDQUFhTyxDQUFwQjtBQUNIOztBQWxKK0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy93ZWJwYWNrbW9kdWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBbGxvd3MgZm9yIGdyYWJiaW5nIGFuZCBzZWFyY2hpbmcgdGhyb3VnaCBEaXNjb3JkJ3Mgd2VicGFja2VkIG1vZHVsZXMuXHJcbiAqIEBtb2R1bGUgV2VicGFja01vZHVsZXNcclxuICogQHZlcnNpb24gMC4wLjJcclxuICovXHJcblxyXG4vLyBpbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBtb2R1bGUgbWF0Y2hlcyBhIHNldCBvZiBwYXJhbWV0ZXJzLlxyXG4gKiBAY2FsbGJhY2sgbW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyXHJcbiAqIEBwYXJhbSB7Kn0gbW9kdWxlIC0gbW9kdWxlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgaWYgdGhlIG1vZHVsZSBtYXRjaGVzIHRoZSBmaWx0ZXIsIGZhbHNlIG90aGVyd2lzZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBGaWx0ZXJzIGZvciB1c2Ugd2l0aCB7QGxpbmsgbW9kdWxlOldlYnBhY2tNb2R1bGVzfSBidXQgbWF5IHByb3ZlIHVzZWZ1bCBlbHNld2hlcmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmlsdGVycyB7XHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHNldCBvZiBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBwcm9wcyAtIEFycmF5IG9mIHByb3BlcnR5IG5hbWVzXHJcbiAgICAgKiBAcGFyYW0ge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gZmlsdGVyIC0gQWRkaXRpb25hbCBmaWx0ZXJcclxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IC0gQSBmaWx0ZXIgdGhhdCBjaGVja3MgZm9yIGEgc2V0IG9mIHByb3BlcnRpZXNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGJ5UHJvcGVydGllcyhwcm9wcywgZmlsdGVyID0gbSA9PiBtKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGZpbHRlcihtb2R1bGUpO1xyXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuZXZlcnkocHJvcGVydHkgPT4gY29tcG9uZW50W3Byb3BlcnR5XSAhPT0gdW5kZWZpbmVkKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEge0BsaW5rIG1vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gdGhhdCBmaWx0ZXJzIGJ5IGEgc2V0IG9mIHByb3BlcnRpZXMgb24gdGhlIG9iamVjdCdzIHByb3RvdHlwZS5cclxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gZmllbGRzIC0gQXJyYXkgb2YgcHJvcGVydHkgbmFtZXNcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllcyBvbiB0aGUgb2JqZWN0J3MgcHJvdG90eXBlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBieVByb3RvdHlwZUZpZWxkcyhmaWVsZHMsIGZpbHRlciA9IG0gPT4gbSkge1xyXG4gICAgICAgIHJldHVybiBtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBmaWx0ZXIobW9kdWxlKTtcclxuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQucHJvdG90eXBlKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWVsZHMuZXZlcnkoZmllbGQgPT4gY29tcG9uZW50LnByb3RvdHlwZVtmaWVsZF0gIT09IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHJlZ2V4LlxyXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IHNlYXJjaCAtIEEgUmVnRXhwIHRvIGNoZWNrIG9uIHRoZSBtb2R1bGVcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYnlDb2RlKHNlYXJjaCwgZmlsdGVyID0gbSA9PiBtKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGZpbHRlcihtb2R1bGUpO1xyXG4gICAgICAgICAgICBpZiAoIW1ldGhvZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLnRvU3RyaW5nKFtdKS5zZWFyY2goc2VhcmNoKSAhPT0gLTE7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHNlYXJjaCAtIEEgUmVnRXhwIHRvIGNoZWNrIG9uIHRoZSBtb2R1bGVcclxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IC0gQSBmaWx0ZXIgdGhhdCBjaGVja3MgZm9yIGEgc2V0IG9mIHN0cmluZ3NcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGJ5U3RyaW5nKC4uLnN0cmluZ3MpIHtcclxuICAgICAgICByZXR1cm4gbW9kdWxlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW9kdWxlU3RyaW5nID0gbW9kdWxlLnRvU3RyaW5nKFtdKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIHN0cmluZ3MpIHtcclxuICAgICAgICAgICAgICAgIGlmICghbW9kdWxlU3RyaW5nLmluY2x1ZGVzKHMpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHNldCBvZiBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBOYW1lIHRoZSBtb2R1bGUgc2hvdWxkIGhhdmVcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYnlEaXNwbGF5TmFtZShuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGUgJiYgbW9kdWxlLmRpc3BsYXlOYW1lID09PSBuYW1lO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgYSBjb21iaW5lZCB7QGxpbmsgbW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmcm9tIGEgbGlzdCBvZiBmaWx0ZXJzLlxyXG4gICAgICogQHBhcmFtIHsuLi5tb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IGZpbHRlcnMgLSBBIGxpc3Qgb2YgZmlsdGVyc1xyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBDb21iaW5hdG9yeSBmaWx0ZXIgb2YgYWxsIGFyZ3VtZW50c1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29tYmluZSguLi5maWx0ZXJzKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJzLmV2ZXJ5KGZpbHRlciA9PiBmaWx0ZXIobW9kdWxlKSk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2VicGFja01vZHVsZXMge1xyXG5cclxuICAgIHN0YXRpYyBmaW5kKGZpbHRlciwgZmlyc3QgPSB0cnVlKSB7cmV0dXJuIHRoaXMuZ2V0TW9kdWxlKGZpbHRlciwgZmlyc3QpO31cclxuICAgIHN0YXRpYyBmaW5kQWxsKGZpbHRlcikge3JldHVybiB0aGlzLmdldE1vZHVsZShmaWx0ZXIsIGZhbHNlKTt9XHJcbiAgICBzdGF0aWMgZmluZEJ5VW5pcXVlUHJvcGVydGllcyhwcm9wcywgZmlyc3QgPSB0cnVlKSB7cmV0dXJuIGZpcnN0ID8gdGhpcy5nZXRCeVByb3BzKC4uLnByb3BzKSA6IHRoaXMuZ2V0QWxsQnlQcm9wcyguLi5wcm9wcyk7fVxyXG4gICAgc3RhdGljIGZpbmRCeURpc3BsYXlOYW1lKG5hbWUpIHtyZXR1cm4gdGhpcy5nZXRCeURpc3BsYXlOYW1lKG5hbWUpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIHVzaW5nIGEgZmlsdGVyIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmlsdGVyIEEgZnVuY3Rpb24gdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGZpcnN0IFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgdGhlIGZpcnN0IG1hdGNoaW5nIG1vZHVsZVxyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0TW9kdWxlKGZpbHRlciwgZmlyc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlcyA9IHRoaXMuZ2V0QWxsTW9kdWxlcygpO1xyXG4gICAgICAgIGNvbnN0IHJtID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBpbmRleCBpbiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIGlmICghbW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShpbmRleCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBtb2R1bGUgPSBtb2R1bGVzW2luZGV4XTtcclxuICAgICAgICAgICAgY29uc3Qge2V4cG9ydHN9ID0gbW9kdWxlO1xyXG4gICAgICAgICAgICBsZXQgZm91bmRNb2R1bGUgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFleHBvcnRzKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGV4cG9ydHMuX19lc01vZHVsZSAmJiBleHBvcnRzLmRlZmF1bHQgJiYgZmlsdGVyKGV4cG9ydHMuZGVmYXVsdCkpIGZvdW5kTW9kdWxlID0gZXhwb3J0cy5kZWZhdWx0O1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyKGV4cG9ydHMpKSBmb3VuZE1vZHVsZSA9IGV4cG9ydHM7XHJcbiAgICAgICAgICAgIGlmICghZm91bmRNb2R1bGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QpIHJldHVybiBmb3VuZE1vZHVsZTtcclxuICAgICAgICAgICAgcm0ucHVzaChmb3VuZE1vZHVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaXJzdCB8fCBybS5sZW5ndGggPT0gMCA/IHVuZGVmaW5lZCA6IHJtO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYWxsIG1vZHVsZXMgbWF0Y2hpbmcgYSBmaWx0ZXIgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmaWx0ZXIgQSBmdW5jdGlvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldE1vZHVsZXMoZmlsdGVyKSB7cmV0dXJuIHRoaXMuZ2V0TW9kdWxlKGZpbHRlciwgZmFsc2UpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIGJ5IGl0cyBuYW1lLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmFsbGJhY2sgQSBmdW5jdGlvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXMgaWYgbm90IGZpbmRpbmcgYSBrbm93biBtb2R1bGVcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgLy8gc3RhdGljIGdldE1vZHVsZUJ5TmFtZShuYW1lLCBmYWxsYmFjaykge1xyXG4gICAgLy8gICAgIGlmIChEaXNjb3JkTW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgcmV0dXJuIERpc2NvcmRNb2R1bGVzW25hbWVdO1xyXG4gICAgLy8gICAgIGlmICghZmFsbGJhY2spIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvLyAgICAgY29uc3QgbW9kdWxlID0gdGhpcy5nZXRNb2R1bGUoZmFsbGJhY2ssIHRydWUpO1xyXG4gICAgLy8gICAgIHJldHVybiBtb2R1bGUgPyBEaXNjb3JkTW9kdWxlc1tuYW1lXSA9IG1vZHVsZSA6IHVuZGVmaW5lZDtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIGJ5IGl0cyBkaXNwbGF5IG5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBtb2R1bGVcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEJ5RGlzcGxheU5hbWUobmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5RGlzcGxheU5hbWUobmFtZSksIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYSBtb2R1bGUgdXNpbmcgaXRzIGNvZGUuXHJcbiAgICAgKiBAcGFyYW0ge1JlZ0V4fSByZWdleCBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gZmlyc3QgV2hldGhlciB0byByZXR1cm4gdGhlIG9ubHkgdGhlIGZpcnN0IG1hdGNoaW5nIG1vZHVsZVxyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0QnlSZWdleChyZWdleCwgZmlyc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlDb2RlKHJlZ2V4KSwgZmlyc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYSBzaW5nbGUgbW9kdWxlIHVzaW5nIHByb3BlcnRpZXMgb24gaXRzIHByb3RvdHlwZS5cclxuICAgICAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwcm90b3R5cGVzIFByb3BlcnRpZXMgdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcmV0dXJuIHtBbnl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRCeVByb3RvdHlwZXMoLi4ucHJvdG90eXBlcykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5UHJvdG90eXBlRmllbGRzKHByb3RvdHlwZXMpLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGFsbCBtb2R1bGVzIHdpdGggYSBzZXQgb2YgcHJvcGVydGllcyBvZiBpdHMgcHJvdG90eXBlLlxyXG4gICAgICogQHBhcmFtIHsuLi5zdHJpbmd9IHByb3RvdHlwZXMgUHJvcGVydGllcyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEFsbEJ5UHJvdG90eXBlcyguLi5wcm90b3R5cGVzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlQcm90b3R5cGVGaWVsZHMocHJvdG90eXBlcyksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgc2luZ2xlIG1vZHVsZSB1c2luZyBpdHMgb3duIHByb3BlcnRpZXMuXHJcbiAgICAgKiBAcGFyYW0gey4uLnN0cmluZ30gcHJvcHMgUHJvcGVydGllcyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEJ5UHJvcHMoLi4ucHJvcHMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNb2R1bGUoRmlsdGVycy5ieVByb3BlcnRpZXMocHJvcHMpLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGFsbCBtb2R1bGVzIHdpdGggYSBzZXQgb2YgcHJvcGVydGllcy5cclxuICAgICAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwcm9wcyBQcm9wZXJ0aWVzIHRvIHVzZSB0byBmaWx0ZXIgbW9kdWxlc1xyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0QWxsQnlQcm9wcyguLi5wcm9wcykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5UHJvcGVydGllcyhwcm9wcyksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgc2luZ2xlIG1vZHVsZSB1c2luZyBhIHNldCBvZiBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHByb3BzIFN0cmluZ3MgdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcmV0dXJuIHtBbnl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRCeVN0cmluZyguLi5zdHJpbmdzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlTdHJpbmcoLi4uc3RyaW5ncyksIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYWxsIG1vZHVsZXMgd2l0aCBhIHNldCBvZiBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHN0cmluZ3MgU3RyaW5ncyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEFsbEJ5U3RyaW5nKC4uLnN0cmluZ3MpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNb2R1bGUoRmlsdGVycy5ieVN0cmluZyguLi5zdHJpbmdzKSwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzY29yZCdzIF9fd2VicGFja19yZXF1aXJlX18gZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXQgcmVxdWlyZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZSkgcmV0dXJuIHRoaXMuX3JlcXVpcmU7XHJcbiAgICAgICAgY29uc3QgaWQgPSBcImJiZC13ZWJwYWNrbW9kdWxlc1wiO1xyXG4gICAgICAgIGNvbnN0IF9fd2VicGFja19yZXF1aXJlX18gPSB0eXBlb2Yod2luZG93LndlYnBhY2tKc29ucCkgPT0gXCJmdW5jdGlvblwiID8gd2luZG93LndlYnBhY2tKc29ucChbXSwge1xyXG4gICAgICAgICAgICBbaWRdOiAobW9kdWxlLCBleHBvcnRzLCBfX2ludGVybmFsX3JlcXVpcmVfXykgPT4gZXhwb3J0cy5kZWZhdWx0ID0gX19pbnRlcm5hbF9yZXF1aXJlX19cclxuICAgICAgICB9LCBbaWRdKS5kZWZhdWx0IDogd2luZG93LndlYnBhY2tKc29ucC5wdXNoKFtbXSwge1xyXG4gICAgICAgICAgICBbaWRdOiAobW9kdWxlLCBleHBvcnRzLCBfX2ludGVybmFsX3JlcXVpcmVfXykgPT4gbW9kdWxlLmV4cG9ydHMgPSBfX2ludGVybmFsX3JlcXVpcmVfX1xyXG4gICAgICAgIH0sIFtbaWRdXV0pO1xyXG4gICAgICAgIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLm1baWRdO1xyXG4gICAgICAgIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbaWRdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlID0gX193ZWJwYWNrX3JlcXVpcmVfXztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYWxsIGxvYWRlZCBtb2R1bGVzLlxyXG4gICAgICogQHJldHVybiB7QXJyYXl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRBbGxNb2R1bGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUuYztcclxuICAgIH1cclxuXHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/webpackmodules.js\n");
/***/ }),
/***/ "./src/structs/addonerror.js":
/*!***********************************!*\
!*** ./src/structs/addonerror.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonError; });\nclass AddonError extends Error {\n constructor(name, filename, message, error) {\n super(message);\n this.name = name;\n this.file = filename;\n this.error = error;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvYWRkb25lcnJvci5qcz9lZjgwIl0sIm5hbWVzIjpbIkFkZG9uRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZpbGVuYW1lIiwibWVzc2FnZSIsImVycm9yIiwiZmlsZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFlLE1BQU1BLFVBQU4sU0FBeUJDLEtBQXpCLENBQStCO0FBQzFDQyxhQUFXLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQkMsT0FBakIsRUFBMEJDLEtBQTFCLEVBQWlDO0FBQ3hDLFVBQU1ELE9BQU47QUFDQSxTQUFLRixJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLSSxJQUFMLEdBQVlILFFBQVo7QUFDQSxTQUFLRSxLQUFMLEdBQWFBLEtBQWI7QUFDSDs7QUFOeUMiLCJmaWxlIjoiLi9zcmMvc3RydWN0cy9hZGRvbmVycm9yLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRkb25FcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGZpbGVuYW1lLCBtZXNzYWdlLCBlcnJvcikge1xyXG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5maWxlID0gZmlsZW5hbWU7XHJcbiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/addonerror.js\n");
/***/ }),
/***/ "./src/structs/builtin.js":
/*!********************************!*\
!*** ./src/structs/builtin.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BuiltinModule; });\n/* harmony import */ var _modules_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/logger */ \"./src/modules/logger.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_patcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/patcher */ \"./src/modules/patcher.js\");\n\n\n\n\nclass BuiltinModule {\n get name() {\n return \"Unnamed Builtin\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"None\";\n }\n\n async initialize() {\n if (_modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(this.collection, this.category, this.id)) await this.enable();\n _modules_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(\"setting-updated\", (collection, category, id, enabled) => {\n if (collection != this.collection || category !== this.category || id !== this.id) return;\n if (enabled) this.enable();else this.disable();\n });\n }\n\n registerSetting(collection, category, id, onEnable, onDisable) {\n if (arguments.length == 4) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n onEnable = arguments[2];\n onDisable = arguments[3];\n } else if (arguments.length == 3) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n onEnable = arguments[1];\n onDisable = arguments[2];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(collection, category, id, value => {\n if (value) onEnable();else onDisable();\n });\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n } else if (arguments.length == 1) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(collection, category, id);\n }\n\n async enable() {\n this.log(\"Enabled\");\n await this.enabled();\n }\n\n async disable() {\n this.log(\"Disabled\");\n await this.disabled();\n }\n\n async enabled() {}\n\n async disabled() {}\n\n log(...message) {\n _modules_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, ...message);\n }\n\n warn(...message) {\n _modules_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(this.name, ...message);\n }\n\n error(...message) {\n _modules_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, ...message);\n }\n\n stacktrace(message, error) {\n _modules_logger__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stacktrace(this.name, message, error);\n }\n\n after(object, func, callback) {\n return _modules_patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].after(this.name, object, func, callback);\n }\n\n unpatchAll() {\n return _modules_patcher__WEBPACK_IMPORTED_MODULE_3__[\"default\"].unpatchAll(this.name);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvYnVpbHRpbi5qcz85NTYyIl0sIm5hbWVzIjpbIkJ1aWx0aW5Nb2R1bGUiLCJuYW1lIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJpbml0aWFsaXplIiwiU2V0dGluZ3MiLCJnZXQiLCJlbmFibGUiLCJFdmVudHMiLCJvbiIsImVuYWJsZWQiLCJkaXNhYmxlIiwicmVnaXN0ZXJTZXR0aW5nIiwib25FbmFibGUiLCJvbkRpc2FibGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSIsImxvZyIsImRpc2FibGVkIiwibWVzc2FnZSIsIkxvZ2dlciIsIndhcm4iLCJlcnJvciIsImVyciIsInN0YWNrdHJhY2UiLCJhZnRlciIsIm9iamVjdCIsImZ1bmMiLCJjYWxsYmFjayIsIlBhdGNoZXIiLCJ1bnBhdGNoQWxsIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGFBQU4sQ0FBb0I7QUFFL0IsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFDdEMsTUFBSUMsVUFBSixHQUFpQjtBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFDckMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxTQUFQO0FBQWtCOztBQUNsQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLE1BQVA7QUFBZTs7QUFFekIsUUFBTUMsVUFBTixHQUFtQjtBQUNmLFFBQUlDLGdFQUFRLENBQUNDLEdBQVQsQ0FBYSxLQUFLTCxVQUFsQixFQUE4QixLQUFLQyxRQUFuQyxFQUE2QyxLQUFLQyxFQUFsRCxDQUFKLEVBQTJELE1BQU0sS0FBS0ksTUFBTCxFQUFOO0FBQzNEQyw0REFBTSxDQUFDQyxFQUFQLENBQVUsaUJBQVYsRUFBNkIsQ0FBQ1IsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixFQUEyQk8sT0FBM0IsS0FBdUM7QUFD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RURLLFlBQVUsQ0FBQ0wsT0FBRCxFQUFVRyxLQUFWLEVBQWlCO0FBQ3ZCRiwyREFBTSxDQUFDSSxVQUFQLENBQWtCLEtBQUt6QixJQUF2QixFQUE2Qm9CLE9BQTdCLEVBQXNDRyxLQUF0QztBQUNIOztBQUVERyxPQUFLLENBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxRQUFmLEVBQXlCO0FBQzFCLFdBQU9DLHdEQUFPLENBQUNKLEtBQVIsQ0FBYyxLQUFLMUIsSUFBbkIsRUFBeUIyQixNQUF6QixFQUFpQ0MsSUFBakMsRUFBdUNDLFFBQXZDLENBQVA7QUFDSDs7QUFFREUsWUFBVSxHQUFHO0FBQ1QsV0FBT0Qsd0RBQU8sQ0FBQ0MsVUFBUixDQUFtQixLQUFLL0IsSUFBeEIsQ0FBUDtBQUNIOztBQXRGOEIiLCJmaWxlIjoiLi9zcmMvc3RydWN0cy9idWlsdGluLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vbW9kdWxlcy9sb2dnZXJcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi4vbW9kdWxlcy9lbWl0dGVyXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi4vbW9kdWxlcy9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IFBhdGNoZXIgZnJvbSBcIi4uL21vZHVsZXMvcGF0Y2hlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbHRpbk1vZHVsZSB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVW5uYW1lZCBCdWlsdGluXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJOb25lXCI7fVxyXG5cclxuICAgIGFzeW5jIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSBhd2FpdCB0aGlzLmVuYWJsZSgpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCAoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uICE9IHRoaXMuY29sbGVjdGlvbiB8fCBjYXRlZ29yeSAhPT0gdGhpcy5jYXRlZ29yeSB8fCBpZCAhPT0gdGhpcy5pZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgdGhpcy5lbmFibGUoKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmRpc2FibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBvbkVuYWJsZSwgb25EaXNhYmxlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGFyZ3VtZW50c1swXTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgICAgIG9uRW5hYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgICAgICBvbkRpc2FibGUgPSBhcmd1bWVudHNbM107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGlkID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBvbkVuYWJsZSA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICAgICAgb25EaXNhYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU2V0dGluZ3Mub24oY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSBvbkVuYWJsZSgpO1xyXG4gICAgICAgICAgICBlbHNlIG9uRGlzYWJsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBpZCA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTZXR0aW5ncy5nZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJFbmFibGVkXCIpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc2FibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJEaXNhYmxlZFwiKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHt9XHJcbiAgICBhc3luYyBkaXNhYmxlZCgpIHt9XHJcblxyXG4gICAgbG9nKC4uLm1lc3NhZ2UpIHtcclxuICAgICAgICBMb2dnZXIubG9nKHRoaXMubmFtZSwgLi4ubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2FybiguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgTG9nZ2VyLndhcm4odGhpcy5uYW1lLCAuLi5tZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvciguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgTG9nZ2VyLmVycih0aGlzLm5hbWUsIC4uLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YWNrdHJhY2UobWVzc2FnZSwgZXJyb3IpIHtcclxuICAgICAgICBMb2dnZXIuc3RhY2t0cmFjZSh0aGlzLm5hbWUsIG1lc3NhZ2UsIGVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICBhZnRlcihvYmplY3QsIGZ1bmMsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIFBhdGNoZXIuYWZ0ZXIodGhpcy5uYW1lLCBvYmplY3QsIGZ1bmMsIGNhbGxiYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICB1bnBhdGNoQWxsKCkge1xyXG4gICAgICAgIHJldHVybiBQYXRjaGVyLnVucGF0Y2hBbGwodGhpcy5uYW1lKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/structs/builtin.js\n");
/***/ }),
/***/ "./src/structs/metaerror.js":
/*!**********************************!*\
!*** ./src/structs/metaerror.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MetaError; });\nclass MetaError extends Error {\n constructor(message) {\n super(message);\n this.name = \"MetaError\";\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvbWV0YWVycm9yLmpzP2UxOTYiXSwibmFtZXMiOlsiTWV0YUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQWUsTUFBTUEsU0FBTixTQUF3QkMsS0FBeEIsQ0FBOEI7QUFDekNDLGFBQVcsQ0FBQ0MsT0FBRCxFQUFVO0FBQ2pCLFVBQU1BLE9BQU47QUFDQSxTQUFLQyxJQUFMLEdBQVksV0FBWjtBQUNIOztBQUp3QyIsImZpbGUiOiIuL3NyYy9zdHJ1Y3RzL21ldGFlcnJvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGFFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBcIk1ldGFFcnJvclwiO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/metaerror.js\n");
/***/ }),
/***/ "./src/structs/psconnection.js":
/*!*************************************!*\
!*** ./src/structs/psconnection.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServersConnection; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst SortedGuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getSortedGuilds\");\nconst AvatarDefaults = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\nconst InviteActions = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"acceptInvite\");\n\nconst BrowserWindow = __webpack_require__(/*! electron */ \"electron\").remote.BrowserWindow;\n\nclass PublicServersConnection {\n static get endPoint() {\n return \"https://search.discordservers.com\";\n }\n\n static get joinEndPoint() {\n return \"https://j.discordservers.com\";\n }\n\n static get connectEndPoint() {\n return \"https://auth.discordservers.com/info\";\n }\n\n static getDefaultAvatar() {\n return AvatarDefaults.DEFAULT_AVATARS[Math.floor(Math.random() * 5)];\n }\n\n static hasJoined(id) {\n return SortedGuildStore.getFlattenedGuildIds().includes(id);\n }\n\n static search({\n term = \"\",\n category = \"\",\n from = 0\n } = {}) {\n return new Promise(resolve => {\n const queries = [];\n if (category) queries.push(`category=${category.replace(/ /g, \"%20\")}`);\n if (term) queries.push(`term=${term.replace(/ /g, \"%20\")}`);\n if (from) queries.push(`from=${from}`);\n const query = `?${queries.join(\"&\")}`;\n $.ajax({\n method: \"GET\",\n url: `${this.endPoint}${query}`,\n success: data => {\n const next = data.size + data.from;\n resolve({\n servers: data.results,\n size: data.size,\n from: data.from,\n total: data.total,\n next: next >= data.total ? null : next\n });\n },\n error: () => resolve(null)\n });\n });\n }\n\n static join(id, native = false) {\n return new Promise(resolve => {\n if (native) return InviteActions.acceptInvite(id), resolve(true);\n $.ajax({\n method: \"GET\",\n url: `${this.joinEndPoint}/${id}`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\",\n \"x-discord-token\": this._accessToken\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: () => resolve(true),\n error: () => resolve(false)\n });\n });\n }\n\n static checkConnection() {\n return new Promise(resolve => {\n try {\n $.ajax({\n method: \"GET\",\n url: this.connectEndPoint,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\"\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: data => {\n this._accessToken = data.access_token;\n resolve(data);\n },\n error: () => resolve(false)\n });\n } catch (error) {\n resolve(false);\n }\n });\n }\n\n static connect() {\n return new Promise(resolve => {\n const joinWindow = new BrowserWindow(this.windowOptions);\n const url = `https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=${this.connectEndPoint}`;\n joinWindow.webContents.on(\"did-navigate\", (event, navUrl) => {\n if (navUrl != this.connectEndPoint) return;\n joinWindow.close();\n resolve();\n });\n joinWindow.loadURL(url);\n });\n }\n\n static get windowOptions() {\n return {\n width: 380,\n height: 450,\n backgroundColor: \"#282b30\",\n show: true,\n resizable: true,\n maximizable: false,\n minimizable: false,\n alwaysOnTop: true,\n frame: false,\n center: true,\n webPreferences: {\n nodeIntegration: false\n }\n };\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvcHNjb25uZWN0aW9uLmpzP2VmZjYiXSwibmFtZXMiOlsiU29ydGVkR3VpbGRTdG9yZSIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsIkF2YXRhckRlZmF1bHRzIiwiSW52aXRlQWN0aW9ucyIsIkJyb3dzZXJXaW5kb3ciLCJyZXF1aXJlIiwicmVtb3RlIiwiUHVibGljU2VydmVyc0Nvbm5lY3Rpb24iLCJlbmRQb2ludCIsImpvaW5FbmRQb2ludCIsImNvbm5lY3RFbmRQb2ludCIsImdldERlZmF1bHRBdmF0YXIiLCJERUZBVUxUX0FWQVRBUlMiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJoYXNKb2luZWQiLCJpZCIsImdldEZsYXR0ZW5lZEd1aWxkSWRzIiwiaW5jbHVkZXMiLCJzZWFyY2giLCJ0ZXJtIiwiY2F0ZWdvcnkiLCJmcm9tIiwiUHJvbWlzZSIsInJlc29sdmUiLCJxdWVyaWVzIiwicHVzaCIsInJlcGxhY2UiLCJxdWVyeSIsImpvaW4iLCIkIiwiYWpheCIsIm1ldGhvZCIsInVybCIsInN1Y2Nlc3MiLCJkYXRhIiwibmV4dCIsInNpemUiLCJzZXJ2ZXJzIiwicmVzdWx0cyIsInRvdGFsIiwiZXJyb3IiLCJuYXRpdmUiLCJhY2NlcHRJbnZpdGUiLCJoZWFkZXJzIiwiX2FjY2Vzc1Rva2VuIiwiY3Jvc3NEb21haW4iLCJ4aHJGaWVsZHMiLCJ3aXRoQ3JlZGVudGlhbHMiLCJjaGVja0Nvbm5lY3Rpb24iLCJhY2Nlc3NfdG9rZW4iLCJjb25uZWN0Iiwiam9pbldpbmRvdyIsIndpbmRvd09wdGlvbnMiLCJ3ZWJDb250ZW50cyIsIm9uIiwiZXZlbnQiLCJuYXZVcmwiLCJjbG9zZSIsImxvYWRVUkwiLCJ3aWR0aCIsImhlaWdodCIsImJhY2tncm91bmRDb2xvciIsInNob3ciLCJyZXNpemFibGUiLCJtYXhpbWl6YWJsZSIsIm1pbmltaXphYmxlIiwiYWx3YXlzT25Ub3AiLCJmcmFtZSIsImNl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QVA7QUFpQkgsT0FsQkQsQ0FtQkEsT0FBT2lCLEtBQVAsRUFBYztBQUNWakIsZUFBTyxDQUFDLEtBQUQsQ0FBUDtBQUNIO0FBQ0osS0F2Qk0sQ0FBUDtBQXdCSDs7QUFFRCxTQUFPMkIsT0FBUCxHQUFpQjtBQUNiLFdBQU8sSUFBSTVCLE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCLFlBQU00QixVQUFVLEdBQUcsSUFBSWpELGFBQUosQ0FBa0IsS0FBS2tELGFBQXZCLENBQW5CO0FBQ0EsWUFBTXBCLEdBQUcsR0FBSSwwRUFBeUUsS0FBS3hCLGVBQWdCLEVBQTNHO0FBQ0EyQyxnQkFBVSxDQUFDRSxXQUFYLENBQXVCQyxFQUF2QixDQUEwQixjQUExQixFQUEwQyxDQUFDQyxLQUFELEVBQVFDLE1BQVIsS0FBbUI7QUFDekQsWUFBSUEsTUFBTSxJQUFJLEtBQUtoRCxlQUFuQixFQUFvQztBQUNwQzJDLGtCQUFVLENBQUNNLEtBQVg7QUFDQWxDLGVBQU87QUFDVixPQUpEO0FBS0E0QixnQkFBVSxDQUFDTyxPQUFYLENBQW1CMUIsR0FBbkI7QUFDSCxLQVRNLENBQVA7QUFVSDs7QUFFRCxhQUFXb0IsYUFBWCxHQUEyQjtBQUN2QixXQUFPO0FBQ0hPLFdBQUssRUFBRSxHQURKO0FBRUhDLFlBQU0sRUFBRSxHQUZMO0FBR0hDLHFCQUFlLEVBQUUsU0FIZDtBQUlIQyxVQUFJLEVBQUUsSUFKSDtBQUtIQyxlQUFTLEVBQUUsSUFMUjtBQU1IQyxpQkFBVyxFQUFFLEtBTlY7QUFPSEMsaUJBQVcsRUFBRSxLQVBWO0FBUUhDLGlCQUFXLEVBQUUsSUFSVjtBQVNIQyxXQUFLLEVBQUUsS0FUSjtBQVVIQyxZQUFNLEVBQUUsSUFWTDtBQVdIQyxvQkFBYyxFQUFFO0FBQ1pDLHVCQUFlLEVBQUU7QUFETDtBQVhiLEtBQVA7QUFlSDs7QUFwSHdDIiwiZmlsZSI6Ii4vc3JjL3N0cnVjdHMvcHNjb25uZWN0aW9uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IFNvcnRlZEd1aWxkU3RvcmUgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U29ydGVkR3VpbGRzXCIpO1xyXG5jb25zdCBBdmF0YXJEZWZhdWx0cyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRVc2VyQXZhdGFyVVJMXCIsIFwiREVGQVVMVF9BVkFUQVJTXCIpO1xyXG5jb25zdCBJbnZpdGVBY3Rpb25zID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFjY2VwdEludml0ZVwiKTtcclxuXHJcbmNvbnN0IEJyb3dzZXJXaW5kb3cgPSByZXF1aXJlKFwiZWxlY3Ryb25cIikucmVtb3RlLkJyb3dzZXJXaW5kb3c7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHVibGljU2VydmVyc0Nvbm5lY3Rpb24ge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgZW5kUG9pbnQoKSB7cmV0dXJuIFwiaHR0cHM6Ly9zZWFyY2guZGlzY29yZHNlcnZlcnMuY29tXCI7fVxyXG4gICAgc3RhdGljIGdldCBqb2luRW5kUG9pbnQoKSB7cmV0dXJuIFwiaHR0cHM6Ly9qLmRpc2NvcmRzZXJ2ZXJzLmNvbVwiO31cclxuICAgIHN0YXRpYyBnZXQgY29ubmVjdEVuZFBvaW50KCkge3JldHVybiBcImh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vaW5mb1wiO31cclxuXHJcbiAgICBzdGF0aWMgZ2V0RGVmYXVsdEF2YXRhcigpIHtcclxuICAgICAgICByZXR1cm4gQXZhdGFyRGVmYXVsdHMuREVGQVVMVF9BVkFUQVJTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaGFzSm9pbmVkKGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIFNvcnRlZEd1aWxkU3RvcmUuZ2V0RmxhdHRlbmVkR3VpbGRJZHMoKS5pbmNsdWRlcyhpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNlYXJjaCh7dGVybSA9IFwiXCIsIGNhdGVnb3J5ID0gXCJcIiwgZnJvbSA9IDB9ID0ge30pIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJpZXMgPSBbXTtcclxuICAgICAgICAgICAgaWYgKGNhdGVnb3J5KSBxdWVyaWVzLnB1c2goYGNhdGVnb3J5PSR7Y2F0ZWdvcnkucmVwbGFjZSgvIC9nLCBcIiUyMFwiKX1gKTtcclxuICAgICAgICAgICAgaWYgKHRlcm0pIHF1ZXJpZXMucHVzaChgdGVybT0ke3Rlcm0ucmVwbGFjZSgvIC9nLCBcIiUyMFwiKX1gKTtcclxuICAgICAgICAgICAgaWYgKGZyb20pIHF1ZXJpZXMucHVzaChgZnJvbT0ke2Zyb219YCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gYD8ke3F1ZXJpZXMuam9pbihcIiZcIil9YDtcclxuICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5lbmRQb2ludH0ke3F1ZXJ5fWAsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gZGF0YS5zaXplICsgZGF0YS5mcm9tO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzOiBkYXRhLnJlc3VsdHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IGRhdGEuc2l6ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogZGF0YS5mcm9tLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbDogZGF0YS50b3RhbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogbmV4dCA+PSBkYXRhLnRvdGFsID8gbnVsbCA6IG5leHRcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4gcmVzb2x2ZShudWxsKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgam9pbihpZCwgbmF0aXZlID0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChuYXRpdmUpIHJldHVybiBJbnZpdGVBY3Rpb25zLmFjY2VwdEludml0ZShpZCksIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMuam9pbkVuZFBvaW50fS8ke2lkfWAsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvbjtcIiAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJ4LWRpc2NvcmQtdG9rZW5cIjogdGhpcy5fYWNjZXNzVG9rZW5cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjcm9zc0RvbWFpbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHhockZpZWxkczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHJlc29sdmUodHJ1ZSksXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4gcmVzb2x2ZShmYWxzZSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNoZWNrQ29ubmVjdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuY29ubmVjdEVuZFBvaW50LFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb247XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNyb3NzRG9tYWluOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHhockZpZWxkczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2Nlc3NUb2tlbiA9IGRhdGEuYWNjZXNzX3Rva2VuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHJlc29sdmUoZmFsc2UpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvbm5lY3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBqb2luV2luZG93ID0gbmV3IEJyb3dzZXJXaW5kb3codGhpcy53aW5kb3dPcHRpb25zKTtcclxuICAgICAgICAgICAgY29uc3QgdXJsID0gYGh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdD9zY29wZXM9Z3VpbGRzLmpvaW4mcHJldmlvdXNVcmw9JHt0aGlzLmNvbm5lY3RFbmRQb2ludH1gO1xyXG4gICAgICAgICAgICBqb2luV2luZG93LndlYkNvbnRlbnRzLm9uKFwiZGlkLW5hdmlnYXRlXCIsIChldmVudCwgbmF2VXJsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobmF2VXJsICE9IHRoaXMuY29ubmVjdEVuZFBvaW50KSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBqb2luV2luZG93LmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBqb2luV2luZG93LmxvYWRVUkwodXJsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0IHdpbmRvd09wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgd2lkdGg6IDM4MCxcclxuICAgICAgICAgICAgaGVpZ2h0OiA0NTAsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMjgyYjMwXCIsXHJcbiAgICAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgbWF4aW1pemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBtaW5pbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGFsd2F5c09uVG9wOiB0cnVlLFxyXG4gICAgICAgICAgICBmcmFtZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNlbnRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgd2ViUHJlZmVyZW5jZXM6IHtcclxuICAgICAgICAgICAgICAgIG5vZGVJbnRlZ3JhdGlvbjogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/structs/psconnection.js\n");
/***/ }),
/***/ "./src/structs/screen.js":
/*!*******************************!*\
!*** ./src/structs/screen.js ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Screen; });\nclass Screen {\n /** Document/window width */\n static get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n /** Document/window height */\n\n\n static get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvc2NyZWVuLmpzPzRiMjEiXSwibmFtZXMiOlsiU2NyZWVuIiwid2lkdGgiLCJNYXRoIiwibWF4IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRXaWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpbm5lckhlaWdodCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFlLE1BQU1BLE1BQU4sQ0FBYTtBQUN4QjtBQUNBLGFBQVdDLEtBQVgsR0FBbUI7QUFBRSxXQUFPQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxXQUFsQyxFQUErQ0MsTUFBTSxDQUFDQyxVQUFQLElBQXFCLENBQXBFLENBQVA7QUFBZ0Y7QUFDckc7OztBQUNBLGFBQVdDLE1BQVgsR0FBb0I7QUFBRSxXQUFPUCxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCSyxZQUFsQyxFQUFnREgsTUFBTSxDQUFDSSxXQUFQLElBQXNCLENBQXRFLENBQVA7QUFBa0Y7O0FBSmhGIiwiZmlsZSI6Ii4vc3JjL3N0cnVjdHMvc2NyZWVuLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NyZWVuIHtcclxuICAgIC8qKiBEb2N1bWVudC93aW5kb3cgd2lkdGggKi9cclxuICAgIHN0YXRpYyBnZXQgd2lkdGgoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApOyB9XHJcbiAgICAvKiogRG9jdW1lbnQvd2luZG93IGhlaWdodCAqL1xyXG4gICAgc3RhdGljIGdldCBoZWlnaHQoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7IH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/structs/screen.js\n");
/***/ }),
/***/ "./src/structs/string.js":
/*!*******************************!*\
!*** ./src/structs/string.js ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FormattableString; });\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/utilities */ \"./src/modules/utilities.js\");\n\nclass FormattableString extends String {\n format(values) {\n return _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].formatString(this, values);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvc3RyaW5nLmpzPzNhOGUiXSwibmFtZXMiOlsiRm9ybWF0dGFibGVTdHJpbmciLCJTdHJpbmciLCJmb3JtYXQiLCJ2YWx1ZXMiLCJVdGlsaXRpZXMiLCJmb3JtYXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsaUJBQU4sU0FBZ0NDLE1BQWhDLENBQXVDO0FBQ2xEQyxRQUFNLENBQUNDLE1BQUQsRUFBUztBQUNYLFdBQU9DLDBEQUFTLENBQUNDLFlBQVYsQ0FBdUIsSUFBdkIsRUFBNkJGLE1BQTdCLENBQVA7QUFDSDs7QUFIaUQiLCJmaWxlIjoiLi9zcmMvc3RydWN0cy9zdHJpbmcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuLi9tb2R1bGVzL3V0aWxpdGllc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9ybWF0dGFibGVTdHJpbmcgZXh0ZW5kcyBTdHJpbmcge1xyXG4gICAgZm9ybWF0KHZhbHVlcykge1xyXG4gICAgICAgIHJldHVybiBVdGlsaXRpZXMuZm9ybWF0U3RyaW5nKHRoaXMsIHZhbHVlcyk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/structs/string.js\n");
/***/ }),
/***/ "./src/ui/customcss/checkbox.jsx":
/*!***************************************!*\
!*** ./src/ui/customcss/checkbox.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Checkbox; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Checkbox extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.state = {\n checked: this.props.checked || false\n };\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-label label-JWQiNe da-label\"\n }, this.props.text), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-wrapper checkbox-3kaeSU da-checkbox checkbox-3EVISJ da-checkbox\",\n onClick: this.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-inner checkboxInner-3yjcPe da-checkboxInner\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n className: \"checkbox checkboxElement-1qV33p da-checkboxElement\",\n checked: this.state.checked,\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null)));\n }\n\n onClick() {\n this.props.onChange(!this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jaGVja2JveC5qc3g/MjJiNSJdLCJuYW1lcyI6WyJDaGVja2JveCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2xpY2siLCJiaW5kIiwic3RhdGUiLCJjaGVja2VkIiwicmVuZGVyIiwidGV4dCIsIm9uQ2hhbmdlIiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsUUFBTixTQUF1QkMsNkNBQUssQ0FBQ0MsU0FBN0IsQ0FBdUM7QUFDbERDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FBZjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUFDQyxhQUFPLEVBQUUsS0FBS0osS0FBTCxDQUFXSSxPQUFYLElBQXNCO0FBQWhDLEtBQWI7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBTztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0g7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUF1RCxLQUFLTCxLQUFMLENBQVdNLElBQWxFLENBREcsRUFFSDtBQUFLLGVBQVMsRUFBQywwRUFBZjtBQUEwRixhQUFPLEVBQUUsS0FBS0w7QUFBeEcsT0FDSTtBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBTyxlQUFTLEVBQUMsb0RBQWpCO0FBQXNFLGFBQU8sRUFBRSxLQUFLRSxLQUFMLENBQVdDLE9BQTFGO0FBQW1HLFVBQUksRUFBQztBQUF4RyxNQURKLEVBRUkseUVBRkosQ0FESixFQUtJLHlFQUxKLENBRkcsQ0FBUDtBQVVIOztBQUVESCxTQUFPLEdBQUc7QUFDTixTQUFLRCxLQUFMLENBQVdPLFFBQVgsQ0FBb0IsQ0FBQyxLQUFLSixLQUFMLENBQVdDLE9BQWhDO0FBQ0EsU0FBS0ksUUFBTCxDQUFjO0FBQUNKLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNIOztBQXZCaUQiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2NoZWNrYm94LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGVja2JveCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge2NoZWNrZWQ6IHRoaXMucHJvcHMuY2hlY2tlZCB8fCBmYWxzZX07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaGVja2JveC1sYWJlbCBsYWJlbC1KV1FpTmUgZGEtbGFiZWxcIj57dGhpcy5wcm9wcy50ZXh0fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LXdyYXBwZXIgY2hlY2tib3gtM2thZVNVIGRhLWNoZWNrYm94IGNoZWNrYm94LTNFVklTSiBkYS1jaGVja2JveFwiIG9uQ2xpY2s9e3RoaXMub25DbGlja30+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LWlubmVyIGNoZWNrYm94SW5uZXItM3lqY1BlIGRhLWNoZWNrYm94SW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPVwiY2hlY2tib3ggY2hlY2tib3hFbGVtZW50LTFxVjMzcCBkYS1jaGVja2JveEVsZW1lbnRcIiBjaGVja2VkPXt0aGlzLnN0YXRlLmNoZWNrZWR9IHR5cGU9XCJjaGVja2JveFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoIXRoaXMuc3RhdGUuY2hlY2tlZCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/customcss/checkbox.jsx\n");
/***/ }),
/***/ "./src/ui/customcss/csseditor.jsx":
/*!****************************************!*\
!*** ./src/ui/customcss/csseditor.jsx ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CssEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor */ \"./src/ui/customcss/editor.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/save */ \"./src/ui/icons/save.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_cog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/cog */ \"./src/ui/icons/cog.jsx\");\n/* harmony import */ var _icons_detach__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/detach */ \"./src/ui/icons/detach.jsx\");\n\n // import Checkbox from \"./checkbox\";\n\n\n\n\n\n\nclass CssEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.hasUnsavedChanges = false;\n this.onChange = this.onChange.bind(this);\n this.toggleLiveUpdate = this.toggleLiveUpdate.bind(this);\n this.updateCss = this.updateCss.bind(this);\n this.saveCss = this.saveCss.bind(this);\n this.openDetached = this.props.openDetached ? this.openDetached.bind(this) : null;\n this.openNative = this.openNative.bind(this);\n this.updateEditor = this.updateEditor.bind(this);\n this.controls = [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.update,\n onClick: this.updateCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_save__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.save,\n onClick: this.saveCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.openNative,\n onClick: this.openNative\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_cog__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.settings,\n onClick: \"showSettings\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Collections.settings.customcss.liveUpdate.name,\n type: \"checkbox\",\n onChange: this.toggleLiveUpdate,\n checked: modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\"),\n side: \"right\"\n }];\n if (this.openDetached) this.controls.push({\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_detach__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.openDetached,\n onClick: this.openDetached,\n side: \"right\"\n });\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"customcss-updated\", this.updateEditor);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(\"customcss-updated\", this.updateEditor);\n }\n\n updateEditor(newCSS) {\n if (!this.editor) return;\n this.editor.value = newCSS;\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n setEditorRef(editor) {\n this.editor = editor;\n if (this.props.editorRef && typeof this.props.editorRef.current !== \"undefined\") this.props.editorRef.current = editor;else if (this.props.editorRef) this.props.editorRef = editor;\n }\n\n onChange() {\n this.hasUnsavedChanges = true;\n if (this.props.onChange) this.props.onChange(...arguments);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_editor__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref: this.setEditorRef.bind(this),\n readOnly: this.props.readOnly,\n id: this.props.id || \"bd-customcss-editor\",\n onChange: this.onChange,\n controls: this.controls,\n value: this.props.css\n });\n }\n\n toggleLiveUpdate(checked) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].set(\"settings\", \"customcss\", \"liveUpdate\", checked);\n }\n\n updateCss(event, newCss) {\n if (this.props.update) this.props.update(newCss);\n }\n\n saveCss(event, newCss) {\n this.hasUnsavedChanges = false;\n if (this.props.save) this.props.save(newCss);\n }\n\n openDetached(event, currentCSS) {\n if (!this.props.openDetached) return;\n this.props.openDetached(currentCSS);\n }\n\n openNative() {\n if (this.props.openNative) this.props.openNative();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3IuanN4PzQyMzAiXSwibmFtZXMiOlsiQ3NzRWRpdG9yIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiaGFzVW5zYXZlZENoYW5nZXMiLCJvbkNoYW5nZSIsImJpbmQiLCJ0b2dnbGVMaXZlVXBkYXRlIiwidXBkYXRlQ3NzIiwic2F2ZUNzcyIsIm9wZW5EZXRhY2hlZCIsIm9wZW5OYXRpdmUiLCJ1cGRhdGVFZGl0b3IiLCJjb250cm9scyIsImxhYmVsIiwiY3JlYXRlRWxlbWVudCIsIlJlZnJlc2giLCJzaXplIiwidG9vbHRpcCIsIlN0cmluZ3MiLCJDdXN0b21DU1MiLCJ1cGRhdGUiLCJvbkNsaWNrIiwiU2F2ZSIsInNhdmUiLCJFZGl0IiwiQ29nIiwic2V0dGluZ3MiLCJDb2xsZWN0aW9ucyIsImN1c3RvbWNzcyIsImxpdmVVcGRhdGUiLCJuYW1lIiwidHlwZSIsImNoZWNrZWQiLCJTZXR0aW5ncyIsImdldCIsInNpZGUiLCJwdXNoIiwiRGV0YWNoIiwiY29tcG9uZW50RGlkTW91bnQiLCJFdmVudHMiLCJvbiIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwib2ZmIiwibmV3Q1NTIiwiZWRpdG9yIiwidmFsdWUiLCJzZXNzaW9uIiwiZ2V0VmFsdWUiLCJuZXdWYWx1ZSIsInNldFZhbHVlIiwic2hvd1NldHRpbmdzIiwia2V5QmluZGluZyIsIiRkZWZhdWx0SGFuZGxlciIsImNvbW1hbmRzIiwic2hvd1NldHRpbmdzTWVudSIsImV4ZWMiLCJyZXNpemUiLCJzZXRFZGl0b3JSZWYiLCJlZGl0b3JSZWYiLCJjdXJyZW50IiwiYXJndW1lbnRzIiwicmVuZGVyIiwicmVhZE9ubHkiLCJpZCIsImNzcyIsInNldCIsImV2ZW50IiwibmV3Q3NzIiwiY3VycmVudENTUyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFB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O0FBRUQxRCxjQUFZLENBQUN5RCxLQUFELEVBQVFFLFVBQVIsRUFBb0I7QUFDNUIsUUFBSSxDQUFDLEtBQUtsRSxLQUFMLENBQVdPLFlBQWhCLEVBQThCO0FBQzlCLFNBQUtQLEtBQUwsQ0FBV08sWUFBWCxDQUF3QjJELFVBQXhCO0FBQ0g7O0FBRUQxRCxZQUFVLEdBQUc7QUFDVCxRQUFJLEtBQUtSLEtBQUwsQ0FBV1EsVUFBZixFQUEyQixLQUFLUixLQUFMLENBQVdRLFVBQVg7QUFDOUI7O0FBakZrRCIsImZpbGUiOiIuL3NyYy91aS9jdXN0b21jc3MvY3NzZWRpdG9yLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFNldHRpbmdzLCBFdmVudHMsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRWRpdG9yIGZyb20gXCIuL2VkaXRvclwiO1xyXG4vLyBpbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4vY2hlY2tib3hcIjtcclxuaW1wb3J0IFJlZnJlc2ggZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5pbXBvcnQgU2F2ZSBmcm9tIFwiLi4vaWNvbnMvc2F2ZVwiO1xyXG5pbXBvcnQgRWRpdCBmcm9tIFwiLi4vaWNvbnMvZWRpdFwiO1xyXG5pbXBvcnQgQ29nIGZyb20gXCIuLi9pY29ucy9jb2dcIjtcclxuaW1wb3J0IERldGFjaCBmcm9tIFwiLi4vaWNvbnMvZGV0YWNoXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDc3NFZGl0b3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVMaXZlVXBkYXRlID0gdGhpcy50b2dnbGVMaXZlVXBkYXRlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDc3MgPSB0aGlzLnVwZGF0ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUNzcyA9IHRoaXMuc2F2ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub3BlbkRldGFjaGVkID0gdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQgPyB0aGlzLm9wZW5EZXRhY2hlZC5iaW5kKHRoaXMpIDogbnVsbDtcclxuICAgICAgICB0aGlzLm9wZW5OYXRpdmUgPSB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvciA9IHRoaXMudXBkYXRlRWRpdG9yLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29udHJvbHMgPSBbXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChSZWZyZXNoLCB7c2l6ZTogXCIxOHB4XCJ9KSwgdG9vbHRpcDogU3RyaW5ncy5DdXN0b21DU1MudXBkYXRlLCBvbkNsaWNrOiB0aGlzLnVwZGF0ZUNzc30sXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChTYXZlLCB7c2l6ZTogXCIxOHB4XCJ9KSwgdG9vbHRpcDogU3RyaW5ncy5DdXN0b21DU1Muc2F2ZSwgb25DbGljazogdGhpcy5zYXZlQ3NzfSxcclxuICAgICAgICAgICAge2xhYmVsOiBSZWFjdC5jcmVhdGVFbGVtZW50KEVkaXQsIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBTdHJpbmdzLkN1c3RvbUNTUy5vcGVuTmF0aXZlLCBvbkNsaWNrOiB0aGlzLm9wZW5OYXRpdmV9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29nLCB7c2l6ZTogXCIxOHB4XCJ9KSwgdG9vbHRpcDogU3RyaW5ncy5DdXN0b21DU1Muc2V0dGluZ3MsIG9uQ2xpY2s6IFwic2hvd1NldHRpbmdzXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQ29sbGVjdGlvbnMuc2V0dGluZ3MuY3VzdG9tY3NzLmxpdmVVcGRhdGUubmFtZSwgdHlwZTpcImNoZWNrYm94XCIsIG9uQ2hhbmdlOiB0aGlzLnRvZ2dsZUxpdmVVcGRhdGUsIGNoZWNrZWQ6IFNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY3VzdG9tY3NzXCIsIFwibGl2ZVVwZGF0ZVwiKSwgc2lkZTogXCJyaWdodFwifVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgaWYgKHRoaXMub3BlbkRldGFjaGVkKSB0aGlzLmNvbnRyb2xzLnB1c2goe2xhYmVsOiBSZWFjdC5jcmVhdGVFbGVtZW50KERldGFjaCwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFN0cmluZ3MuQ3VzdG9tQ1NTLm9wZW5EZXRhY2hlZCwgb25DbGljazogdGhpcy5vcGVuRGV0YWNoZWQsIHNpZGU6IFwicmlnaHRcIn0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIEV2ZW50cy5vbihcImN1c3RvbWNzcy11cGRhdGVkXCIsIHRoaXMudXBkYXRlRWRpdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKFwiY3VzdG9tY3NzLXVwZGF0ZWRcIiwgdGhpcy51cGRhdGVFZGl0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUVkaXRvcihuZXdDU1MpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5lZGl0b3IudmFsdWUgPSBuZXdDU1M7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbHVlKCkge3JldHVybiB0aGlzLmVkaXRvci5zZXNzaW9uLmdldFZhbHVlKCk7fVxyXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtyZXR1cm4gdGhpcy5lZGl0b3Iua2V5QmluZGluZy4kZGVmYXVsdEhhbmRsZXIuY29tbWFuZHMuc2hvd1NldHRpbmdzTWVudS5leGVjKHRoaXMuZWRpdG9yKTt9XHJcbiAgICByZXNpemUoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLnJlc2l6ZSgpO31cclxuXHJcbiAgICBzZXRFZGl0b3JSZWYoZWRpdG9yKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZWRpdG9yUmVmICYmIHR5cGVvZih0aGlzLnByb3BzLmVkaXRvclJlZi5jdXJyZW50KSAhPT0gXCJ1bmRlZmluZWRcIikgdGhpcy5wcm9wcy5lZGl0b3JSZWYuY3VycmVudCA9IGVkaXRvcjtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLnByb3BzLmVkaXRvclJlZikgdGhpcy5wcm9wcy5lZGl0b3JSZWYgPSBlZGl0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHRoaXMucHJvcHMub25DaGFuZ2UoLi4uYXJndW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxFZGl0b3IgcmVmPXt0aGlzLnNldEVkaXRvclJlZi5iaW5kKHRoaXMpfSByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX0gaWQ9e3RoaXMucHJvcHMuaWQgfHwgXCJiZC1jdXN0b21jc3MtZWRpdG9yXCJ9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfSBjb250cm9scz17dGhpcy5jb250cm9sc30gdmFsdWU9e3RoaXMucHJvcHMuY3NzfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVMaXZlVXBkYXRlKGNoZWNrZWQpIHtcclxuICAgICAgICBTZXR0aW5ncy5zZXQoXCJzZXR0aW5nc1wiLCBcImN1c3RvbWNzc1wiLCBcImxpdmVVcGRhdGVcIiwgY2hlY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlQ3NzKGV2ZW50LCBuZXdDc3MpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy51cGRhdGUpIHRoaXMucHJvcHMudXBkYXRlKG5ld0Nzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNzcyhldmVudCwgbmV3Q3NzKSB7XHJcbiAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNhdmUpIHRoaXMucHJvcHMuc2F2ZShuZXdDc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EZXRhY2hlZChldmVudCwgY3VycmVudENTUykge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLm9wZW5EZXRhY2hlZChjdXJyZW50Q1NTKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5OYXRpdmUpIHRoaXMucHJvcHMub3Blbk5hdGl2ZSgpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/customcss/csseditor.jsx\n");
/***/ }),
/***/ "./src/ui/customcss/editor.jsx":
/*!*************************************!*\
!*** ./src/ui/customcss/editor.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CodeEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkbox */ \"./src/ui/customcss/checkbox.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nconst languages = [\"abap\", \"abc\", \"actionscript\", \"ada\", \"apache_conf\", \"asciidoc\", \"assembly_x86\", \"autohotkey\", \"batchfile\", \"bro\", \"c_cpp\", \"c9search\", \"cirru\", \"clojure\", \"cobol\", \"coffee\", \"coldfusion\", \"csharp\", \"csound_document\", \"csound_orchestra\", \"csound_score\", \"css\", \"curly\", \"d\", \"dart\", \"diff\", \"dockerfile\", \"dot\", \"drools\", \"dummy\", \"dummysyntax\", \"eiffel\", \"ejs\", \"elixir\", \"elm\", \"erlang\", \"forth\", \"fortran\", \"ftl\", \"gcode\", \"gherkin\", \"gitignore\", \"glsl\", \"gobstones\", \"golang\", \"graphqlschema\", \"groovy\", \"haml\", \"handlebars\", \"haskell\", \"haskell_cabal\", \"haxe\", \"hjson\", \"html\", \"html_elixir\", \"html_ruby\", \"ini\", \"io\", \"jack\", \"jade\", \"java\", \"javascript\", \"json\", \"jsoniq\", \"jsp\", \"jssm\", \"jsx\", \"julia\", \"kotlin\", \"latex\", \"less\", \"liquid\", \"lisp\", \"livescript\", \"logiql\", \"lsl\", \"lua\", \"luapage\", \"lucene\", \"makefile\", \"markdown\", \"mask\", \"matlab\", \"maze\", \"mel\", \"mushcode\", \"mysql\", \"nix\", \"nsis\", \"objectivec\", \"ocaml\", \"pascal\", \"perl\", \"pgsql\", \"php\", \"pig\", \"powershell\", \"praat\", \"prolog\", \"properties\", \"protobuf\", \"python\", \"r\", \"razor\", \"rdoc\", \"red\", \"rhtml\", \"rst\", \"ruby\", \"rust\", \"sass\", \"scad\", \"scala\", \"scheme\", \"scss\", \"sh\", \"sjs\", \"smarty\", \"snippets\", \"soy_template\", \"space\", \"sql\", \"sqlserver\", \"stylus\", \"svg\", \"swift\", \"tcl\", \"tex\", \"text\", \"textile\", \"toml\", \"tsx\", \"twig\", \"typescript\", \"vala\", \"vbscript\", \"velocity\", \"verilog\", \"vhdl\", \"wollok\", \"xml\", \"xquery\", \"yaml\", \"django\"];\nconst themes = [\"chrome\", \"clouds\", \"crimson_editor\", \"dawn\", \"dreamweaver\", \"eclipse\", \"github\", \"iplastic\", \"solarized_light\", \"textmate\", \"tomorrow\", \"xcode\", \"kuroir\", \"katzenmilch\", \"sqlserver\", \"ambiance\", \"chaos\", \"clouds_midnight\", \"cobalt\", \"gruvbox\", \"gob\", \"idle_fingers\", \"kr_theme\", \"merbivore\", \"merbivore_soft\", \"mono_industrial\", \"monokai\", \"pastel_on_dark\", \"solarized_dark\", \"terminal\", \"tomorrow_night\", \"tomorrow_night_blue\", \"tomorrow_night_bright\", \"tomorrow_night_eighties\", \"twilight\", \"vibrant_ink\"];\nclass CodeEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n static get defaultId() {\n return \"bd-editor\";\n }\n\n constructor(props) {\n super(props);\n\n for (const control of this.props.controls) {\n if (control.type == \"checkbox\") continue;\n if (control.onClick == \"showSettings\") control.onClick = this.showSettings.bind(this);\n }\n\n this.props.theme = this.props.theme.toLowerCase().replace(/ /g, \"_\");\n if (!themes.includes(this.props.theme)) this.props.theme = CodeEditor.defaultProps.theme;\n this.props.language = this.props.language.toLowerCase().replace(/ /g, \"_\");\n if (!languages.includes(this.props.language)) this.props.language = CodeEditor.defaultProps.language;\n this.onChange = this.onChange.bind(this);\n }\n\n static get defaultProps() {\n return {\n controls: [],\n theme: \"bd-monokai\",\n language: \"css\",\n id: this.defaultId,\n fontSize: 14\n };\n }\n\n static get themes() {\n return themes;\n }\n\n componentDidMount() {\n this.editor = ace.edit(this.props.id); // Add id to the ace menu container\n\n const originalShow = this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec;\n\n this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec = function () {\n originalShow.apply(this, arguments);\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n if (node.parentElement !== document.body || !node.querySelector(\"#ace_settingsmenu\")) continue;\n node.id = \"ace_settingsmenu_container\";\n observer.disconnect();\n }\n });\n observer.observe(document.body, {\n childList: true\n });\n };\n\n const theme = this.props.theme == CodeEditor.defaultProps.theme ? this.props.theme.split(\"-\")[1] : this.props.theme;\n this.editor.setTheme(`ace/theme/${theme}`);\n this.editor.session.setMode(`ace/mode/${this.props.language}`);\n this.editor.setShowPrintMargin(false);\n this.editor.setFontSize(this.props.fontSize);\n this.editor.on(\"change\", this.onChange);\n }\n\n componentWillUnmount() {\n this.editor.destroy();\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n onChange() {\n if (this.props.onChange) this.props.onChange(this.value);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n buildControl(control) {\n if (control.type == \"checkbox\") return this.makeCheckbox(control);\n return this.makeButton(control);\n }\n\n makeCheckbox(checkbox) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_checkbox__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: checkbox.label,\n onChange: checkbox.onChange,\n checked: checkbox.checked\n });\n }\n\n makeButton(button) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: button.tooltip\n }, props => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", _extends({}, props, {\n className: \"btn btn-primary\",\n onClick: event => {\n button.onClick(event, this.value);\n }\n }), button.label);\n });\n }\n\n render() {\n if (this.editor && this.editor.resize) this.editor.resize();\n const controlsLeft = this.props.controls.filter(c => c.side != \"right\").map(this.buildControl.bind(this));\n const controlsRight = this.props.controls.filter(c => c.side == \"right\").map(this.buildControl.bind(this));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-panel\",\n className: this.props.theme\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-controls\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-left\"\n }, controlsLeft), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-right\"\n }, controlsRight)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"editor-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: \"editor \" + this.props.theme\n }, this.props.value)));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9lZGl0b3IuanN4P2ZmZTIiXSwibmFtZXMiOlsiVG9vbHRpcCIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlEaXNwbGF5TmFtZSIsImxhbmd1YWdlcyIsInRoZW1lcyIsIkNvZGVFZGl0b3IiLCJSZWFjdCIsIkNvbXBvbmVudCIsImRlZmF1bHRJZCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJjb250cm9sIiwiY29udHJvbHMiLCJ0eXBlIiwib25DbGljayIsInNob3dTZXR0aW5ncyIsImJpbmQiLCJ0aGVtZSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsImluY2x1ZGVzIiwiZGVmYXVsdFByb3BzIiwibGFuZ3VhZ2UiLCJvbkNoYW5nZSIsImlkIiwiZm9udFNpemUiLCJjb21wb25lbnREaWRNb3VudCIsImVkaXRvciIsImFjZSIsImVkaXQiLCJvcmlnaW5hbFNob3ciLCJrZXlCaW5kaW5nIiwiJGRlZmF1bHRIYW5kbGVyIiwiY29tbWFuZHMiLCJzaG93U2V0dGluZ3NNZW51IiwiZXhlYyIsImFwcGx5IiwiYXJndW1lbnRzIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJhZGRlZE5vZGVzIiwibGVuZ3RoIiwiRWxlbWVudCIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwicXVlcnlTZWxlY3RvciIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3BsaXQiLCJzZXRUaGVtZSIsInNlc3Npb24iLCJzZXRNb2RlIiwic2V0U2hvd1ByaW50TWFyZ2luIiwic2V0Rm9udFNpemUiLCJvbiIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGVzdHJveSIsInZhbHVlIiwiZ2V0VmFsdWUiLCJuZXdWYWx1ZSIsInNldFZhbHVlIiwicmVzaXplIiwiYnVpbGRDb250cm9sIiwibWFrZUNoZWNrYm94IiwibWFrZUJ1dHRvbiIsImNoZWNrYm94IiwibGFiZWwiLCJjaGVja2VkIiwiYnV0dG9uIiwidG9vbHRpcCIsImV2ZW50IiwicmVuZGVyIiwiY29udHJvbHNMZWZ0IiwiZmlsdGVyIiwiYyIsInNpZGUiLCJtYXAiLCJjb250cm9sc1JpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVBO0FBRUEsTUFBTUEsT0FBTyxHQUFHQyxzREFBYyxDQUFDQyxnQkFBZixDQUFnQyxTQUFoQyxDQUFoQjtBQUVBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLGNBQWhCLEVBQWdDLEtBQWhDLEVBQXVDLGFBQXZDLEVBQXNELFVBQXRELEVBQWtFLGNBQWxFLEVBQWtGLFlBQWxGLEVBQWdHLFdBQWhHLEVBQTZHLEtBQTdHLEVBQW9ILE9BQXBILEVBQTZILFVBQTdILEVBQXlJLE9BQXpJLEVBQWtKLFNBQWxKLEVBQTZKLE9BQTdKLEVBQXNLLFFBQXRLLEVBQWdMLFlBQWhMLEVBQThMLFFBQTlMLEVBQXdNLGlCQUF4TSxFQUEyTixrQkFBM04sRUFBK08sY0FBL08sRUFBK1AsS0FBL1AsRUFBc1EsT0FBdFEsRUFBK1EsR0FBL1EsRUFBb1IsTUFBcFIsRUFBNFIsTUFBNVIsRUFBb1MsWUFBcFMsRUFBa1QsS0FBbFQsRUFBeVQsUUFBelQsRUFBbVUsT0FBblUsRUFBNFUsYUFBNVUsRUFBMlYsUUFBM1YsRUFBcVcsS0FBclcsRUFBNFcsUUFBNVcsRUFBc1gsS0FBdFgsRUFBNlgsUUFBN1gsRUFBdVksT0FBdlksRUFBZ1osU0FBaFosRUFBMlosS0FBM1osRUFBa2EsT0FBbGEsRUFBMmEsU0FBM2EsRUFBc2IsV0FBdGIsRUFBbWMsTUFBbmMsRUFBMmMsV0FBM2MsRUFBd2QsUUFBeGQsRUFBa2UsZUFBbGUsRUFBbWYsUUFBbmYsRUFBNmYsTUFBN2YsRUFBcWdCLFlBQXJnQixFQUFtaEIsU0FBbmhCLEVBQThoQixlQUE5aEIsRUFBK2lCLE1BQS9pQixFQUF1akIsT0FBdmpCLEVBQWdrQixNQUFoa0IsRUFBd2tCLGFB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TUFBTCxJQUFlLEtBQUtBLE1BQUwsQ0FBWXVDLE1BQS9CLEVBQXVDLEtBQUt2QyxNQUFMLENBQVl1QyxNQUFaO0FBRXZDLFVBQU1XLFlBQVksR0FBRyxLQUFLbkUsS0FBTCxDQUFXRSxRQUFYLENBQW9Ca0UsTUFBcEIsQ0FBMkJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxJQUFGLElBQVUsT0FBMUMsRUFBbURDLEdBQW5ELENBQXVELEtBQUtkLFlBQUwsQ0FBa0JuRCxJQUFsQixDQUF1QixJQUF2QixDQUF2RCxDQUFyQjtBQUNBLFVBQU1rRSxhQUFhLEdBQUcsS0FBS3hFLEtBQUwsQ0FBV0UsUUFBWCxDQUFvQmtFLE1BQXBCLENBQTJCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFVLE9BQTFDLEVBQW1EQyxHQUFuRCxDQUF1RCxLQUFLZCxZQUFMLENBQWtCbkQsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBdkQsQ0FBdEI7QUFFQSxXQUFPO0FBQUssUUFBRSxFQUFDLGlCQUFSO0FBQTBCLGVBQVMsRUFBRSxLQUFLTixLQUFMLENBQVdPO0FBQWhELE9BQ0s7QUFBSyxRQUFFLEVBQUM7QUFBUixPQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDSzRELFlBREwsQ0FESixFQUlJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDS0ssYUFETCxDQUpKLENBREwsRUFTSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxRQUFFLEVBQUUsS0FBS3hFLEtBQUwsQ0FBV2MsRUFBcEI7QUFBd0IsZUFBUyxFQUFFLFlBQVksS0FBS2QsS0FBTCxDQUFXTztBQUExRCxPQUFrRSxLQUFLUCxLQUFMLENBQVdvRCxLQUE3RSxDQURKLENBVEwsQ0FBUDtBQWFIOztBQS9HbUQiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2VkaXRvci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBDaGVja2JveCBmcm9tIFwiLi9jaGVja2JveFwiO1xyXG5cclxuY29uc3QgVG9vbHRpcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuY29uc3QgbGFuZ3VhZ2VzID0gW1wiYWJhcFwiLCBcImFiY1wiLCBcImFjdGlvbnNjcmlwdFwiLCBcImFkYVwiLCBcImFwYWNoZV9jb25mXCIsIFwiYXNjaWlkb2NcIiwgXCJhc3NlbWJseV94ODZcIiwgXCJhdXRvaG90a2V5XCIsIFwiYmF0Y2hmaWxlXCIsIFwiYnJvXCIsIFwiY19jcHBcIiwgXCJjOXNlYXJjaFwiLCBcImNpcnJ1XCIsIFwiY2xvanVyZVwiLCBcImNvYm9sXCIsIFwiY29mZmVlXCIsIFwiY29sZGZ1c2lvblwiLCBcImNzaGFycFwiLCBcImNzb3VuZF9kb2N1bWVudFwiLCBcImNzb3VuZF9vcmNoZXN0cmFcIiwgXCJjc291bmRfc2NvcmVcIiwgXCJjc3NcIiwgXCJjdXJseVwiLCBcImRcIiwgXCJkYXJ0XCIsIFwiZGlmZlwiLCBcImRvY2tlcmZpbGVcIiwgXCJkb3RcIiwgXCJkcm9vbHNcIiwgXCJkdW1teVwiLCBcImR1bW15c3ludGF4XCIsIFwiZWlmZmVsXCIsIFwiZWpzXCIsIFwiZWxpeGlyXCIsIFwiZWxtXCIsIFwiZXJsYW5nXCIsIFwiZm9ydGhcIiwgXCJmb3J0cmFuXCIsIFwiZnRsXCIsIFwiZ2NvZGVcIiwgXCJnaGVya2luXCIsIFwiZ2l0aWdub3JlXCIsIFwiZ2xzbFwiLCBcImdvYnN0b25lc1wiLCBcImdvbGFuZ1wiLCBcImdyYXBocWxzY2hlbWFcIiwgXCJncm9vdnlcIiwgXCJoYW1sXCIsIFwiaGFuZGxlYmFyc1wiLCBcImhhc2tlbGxcIiwgXCJoYXNrZWxsX2NhYmFsXCIsIFwiaGF4ZVwiLCBcImhqc29uXCIsIFwiaHRtbFwiLCBcImh0bWxfZWxpeGlyXCIsIFwiaHRtbF9ydWJ5XCIsIFwiaW5pXCIsIFwiaW9cIiwgXCJqYWNrXCIsIFwiamFkZVwiLCBcImphdmFcIiwgXCJqYXZhc2NyaXB0XCIsIFwianNvblwiLCBcImpzb25pcVwiLCBcImpzcFwiLCBcImpzc21cIiwgXCJqc3hcIiwgXCJqdWxpYVwiLCBcImtvdGxpblwiLCBcImxhdGV4XCIsIFwibGVzc1wiLCBcImxpcXVpZFwiLCBcImxpc3BcIiwgXCJsaXZlc2NyaXB0XCIsIFwibG9naXFsXCIsIFwibHNsXCIsIFwibHVhXCIsIFwibHVhcGFnZVwiLCBcImx1Y2VuZVwiLCBcIm1ha2VmaWxlXCIsIFwibWFya2Rvd25cIiwgXCJtYXNrXCIsIFwibWF0bGFiXCIsIFwibWF6ZVwiLCBcIm1lbFwiLCBcIm11c2hjb2RlXCIsIFwibXlzcWxcIiwgXCJuaXhcIiwgXCJuc2lzXCIsIFwib2JqZWN0aXZlY1wiLCBcIm9jYW1sXCIsIFwicGFzY2FsXCIsIFwicGVybFwiLCBcInBnc3FsXCIsIFwicGhwXCIsIFwicGlnXCIsIFwicG93ZXJzaGVsbFwiLCBcInByYWF0XCIsIFwicHJvbG9nXCIsIFwicHJvcGVydGllc1wiLCBcInByb3RvYnVmXCIsIFwicHl0aG9uXCIsIFwiclwiLCBcInJhem9yXCIsIFwicmRvY1wiLCBcInJlZFwiLCBcInJodG1sXCIsIFwicnN0XCIsIFwicnVieVwiLCBcInJ1c3RcIiwgXCJzYXNzXCIsIFwic2NhZFwiLCBcInNjYWxhXCIsIFwic2NoZW1lXCIsIFwic2Nzc1wiLCBcInNoXCIsIFwic2pzXCIsIFwic21hcnR5XCIsIFwic25pcHBldHNcIiwgXCJzb3lfdGVtcGxhdGVcIiwgXCJzcGFjZVwiLCBcInNxbFwiLCBcInNxbHNlcnZlclwiLCBcInN0eWx1c1wiLCBcInN2Z1wiLCBcInN3aWZ0XCIsIFwidGNsXCIsIFwidGV4XCIsIFwidGV4dFwiLCBcInRleHRpbGVcIiwgXCJ0b21sXCIsIFwidHN4XCIsIFwidHdpZ1wiLCBcInR5cGVzY3JpcHRcIiwgXCJ2YWxhXCIsIFwidmJzY3JpcHRcIiwgXCJ2ZWxvY2l0eVwiLCBcInZlcmlsb2dcIiwgXCJ2aGRsXCIsIFwid29sbG9rXCIsIFwieG1sXCIsIFwieHF1ZXJ5XCIsIFwieWFtbFwiLCBcImRqYW5nb1wiXTtcclxuY29uc3QgdGhlbWVzID0gW1wiY2hyb21lXCIsIFwiY2xvdWRzXCIsIFwiY3JpbXNvbl9lZGl0b3JcIiwgXCJkYXduXCIsIFwiZHJlYW13ZWF2ZXJcIiwgXCJlY2xpcHNlXCIsIFwiZ2l0aHViXCIsIFwiaXBsYXN0aWNcIiwgXCJzb2xhcml6ZWRfbGlnaHRcIiwgXCJ0ZXh0bWF0ZVwiLCBcInRvbW9ycm93XCIsIFwieGNvZGVcIiwgXCJrdXJvaXJcIiwgXCJrYXR6ZW5taWxjaFwiLCBcInNxbHNlcnZlclwiLCBcImFtYmlhbmNlXCIsIFwiY2hhb3NcIiwgXCJjbG91ZHNfbWlkbmlnaHRcIiwgXCJjb2JhbHRcIiwgXCJncnV2Ym94XCIsIFwiZ29iXCIsIFwiaWRsZV9maW5nZXJzXCIsIFwia3JfdGhlbWVcIiwgXCJtZXJiaXZvcmVcIiwgXCJtZXJiaXZvcmVfc29mdFwiLCBcIm1vbm9faW5kdXN0cmlhbFwiLCBcIm1vbm9rYWlcIiwgXCJwYXN0ZWxfb25fZGFya1wiLCBcInNvbGFyaXplZF9kYXJrXCIsIFwidGVybWluYWxcIiwgXCJ0b21vcnJvd19uaWdodFwiLCBcInRvbW9ycm93X25pZ2h0X2JsdWVcIiwgXCJ0b21vcnJvd19uaWdodF9icmlnaHRcIiwgXCJ0b21vcnJvd19uaWdodF9laWdodGllc1wiLCBcInR3aWxpZ2h0XCIsIFwidmlicmFudF9pbmtcIl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlRWRpdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdElkKCkge3JldHVybiBcImJkLWVkaXRvclwiO31cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICBcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5wcm9wcy5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sLm9uQ2xpY2sgPT0gXCJzaG93U2V0dGluZ3NcIikgY29udHJvbC5vbkNsaWNrID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvcHMudGhlbWUgPSB0aGlzLnByb3BzLnRoZW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvIC9nLCBcIl9cIik7XHJcbiAgICAgICAgaWYgKCF0aGVtZXMuaW5jbHVkZXModGhpcy5wcm9wcy50aGVtZSkpIHRoaXMucHJvcHMudGhlbWUgPSBDb2RlRWRpdG9yLmRlZmF1bHRQcm9wcy50aGVtZTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IHRoaXMucHJvcHMubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csIFwiX1wiKTtcclxuICAgICAgICBpZiAoIWxhbmd1YWdlcy5pbmNsdWRlcyh0aGlzLnByb3BzLmxhbmd1YWdlKSkgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IENvZGVFZGl0b3IuZGVmYXVsdFByb3BzLmxhbmd1YWdlO1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdFByb3BzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvbnRyb2xzOiBbXSxcclxuICAgICAgICAgICAgdGhlbWU6IFwiYmQtbW9ub2thaVwiLFxyXG4gICAgICAgICAgICBsYW5ndWFnZTogXCJjc3NcIixcclxuICAgICAgICAgICAgaWQ6IHRoaXMuZGVmYXVsdElkLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogMTRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgdGhlbWVzKCkge3JldHVybiB0aGVtZXM7fVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gYWNlLmVkaXQodGhpcy5wcm9wcy5pZCk7XHJcblxyXG4gICAgICAgIC8vIEFkZCBpZCB0byB0aGUgYWNlIG1lbnUgY29udGFpbmVyXHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTaG93ID0gdGhpcy5lZGl0b3Iua2V5QmluZGluZy4kZGVmYXVsdEhhbmRsZXIuY29tbWFuZHMuc2hvd1NldHRpbmdzTWVudS5leGVjO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBvcmlnaW5hbFNob3cuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5wYXJlbnRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5IHx8ICFub2RlLnF1ZXJ5U2VsZWN0b3IoXCIjYWNlX3NldHRpbmdzbWVudVwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pZCA9IFwiYWNlX3NldHRpbmdzbWVudV9jb250YWluZXJcIjtcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0aGVtZSA9IHRoaXMucHJvcHMudGhlbWUgPT0gQ29kZUVkaXRvci5kZWZhdWx0UHJvcHMudGhlbWUgPyB0aGlzLnByb3BzLnRoZW1lLnNwbGl0KFwiLVwiKVsxXSA6IHRoaXMucHJvcHMudGhlbWU7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoZW1lfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNlc3Npb24uc2V0TW9kZShgYWNlL21vZGUvJHt0aGlzLnByb3BzLmxhbmd1YWdlfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFNob3dQcmludE1hcmdpbihmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Rm9udFNpemUodGhpcy5wcm9wcy5mb250U2l6ZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iub24oXCJjaGFuZ2VcIiwgdGhpcy5vbkNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpIHtyZXR1cm4gdGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpO31cclxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyh0aGlzLmVkaXRvcik7fVxyXG4gICAgcmVzaXplKCkge3JldHVybiB0aGlzLmVkaXRvci5yZXNpemUoKTt9XHJcblxyXG4gICAgYnVpbGRDb250cm9sKGNvbnRyb2wpIHtcclxuICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgcmV0dXJuIHRoaXMubWFrZUNoZWNrYm94KGNvbnRyb2wpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VCdXR0b24oY29udHJvbCk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUNoZWNrYm94KGNoZWNrYm94KSB7XHJcbiAgICAgICAgcmV0dXJuIDxDaGVja2JveCB0ZXh0PXtjaGVja2JveC5sYWJlbH0gb25DaGFuZ2U9e2NoZWNrYm94Lm9uQ2hhbmdlfSBjaGVja2VkPXtjaGVja2JveC5jaGVja2VkfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlQnV0dG9uKGJ1dHRvbikge1xyXG4gICAgICAgIHJldHVybiA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PXtidXR0b24udG9vbHRpcH0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxidXR0b24gey4uLnByb3BzfSBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIiBvbkNsaWNrPXsoZXZlbnQpID0+IHtidXR0b24ub25DbGljayhldmVudCwgdGhpcy52YWx1ZSk7fX0+e2J1dHRvbi5sYWJlbH08L2J1dHRvbj47XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD47XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLmVkaXRvci5yZXNpemUpIHRoaXMuZWRpdG9yLnJlc2l6ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cm9sc0xlZnQgPSB0aGlzLnByb3BzLmNvbnRyb2xzLmZpbHRlcihjID0+IGMuc2lkZSAhPSBcInJpZ2h0XCIpLm1hcCh0aGlzLmJ1aWxkQ29udHJvbC5iaW5kKHRoaXMpKTtcclxuICAgICAgICBjb25zdCBjb250cm9sc1JpZ2h0ID0gdGhpcy5wcm9wcy5jb250cm9scy5maWx0ZXIoYyA9PiBjLnNpZGUgPT0gXCJyaWdodFwiKS5tYXAodGhpcy5idWlsZENvbnRyb2wuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGlkPVwiYmQtZWRpdG9yLXBhbmVsXCIgY2xhc3NOYW1lPXt0aGlzLnByb3BzLnRoZW1lfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYmQtZWRpdG9yLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbHMtc2VjdGlvbiBjb250cm9scy1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNMZWZ0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9scy1zZWN0aW9uIGNvbnRyb2xzLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNSaWdodH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlZGl0b3Itd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXt0aGlzLnByb3BzLmlkfSBjbGFzc05hbWU9e1wiZWRpdG9yIFwiICsgdGhpcy5wcm9wcy50aGVtZX0+e3RoaXMucHJvcHMudmFsdWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/customcss/editor.jsx\n");
/***/ }),
/***/ "./src/ui/emote.js":
/*!*************************!*\
!*** ./src/ui/emote.js ***!
\*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDEmote; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst TooltipWrapper = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass BDEmote extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n shouldAnimate: !this.animateOnHover,\n isFavorite: this.props.isFavorite\n };\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onClick = this.onClick.bind(this);\n this.toggleFavorite = this.toggleFavorite.bind(this);\n }\n\n get animateOnHover() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"emotes\", \"general\", \"animateOnHover\");\n }\n\n get label() {\n return this.props.modifier ? `${this.props.name}:${this.props.modifier}` : this.props.name;\n }\n\n get modifierClass() {\n return this.props.modifier ? ` emote${this.props.modifier}` : \"\";\n }\n\n onMouseEnter() {\n if (!this.state.shouldAnimate && this.animateOnHover) this.setState({\n shouldAnimate: true\n }); // if (!this.state.isFavorite && EmoteMenu.favoriteEmotes[this.label]) this.setState({isFavorite: true});\n // else if (this.state.isFavorite && !EmoteMenu.favoriteEmotes[this.label]) this.setState({isFavorite: false});\n }\n\n onMouseLeave() {\n if (this.state.shouldAnimate && this.animateOnHover) this.setState({\n shouldAnimate: false\n });\n }\n\n onClick(e) {\n if (this.props.onClick) this.props.onClick(e);\n }\n\n toggleFavorite(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.state.isFavorite) modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].emit(\"emotes-favorite-removed\", this.label);else modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].emit(\"emotes-favorite-added\", this.label, this.props.url);\n this.setState({\n isFavorite: !this.state.isFavorite\n });\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(TooltipWrapper, {\n color: \"black\",\n position: \"top\",\n text: this.label,\n delay: 750\n }, childProps => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", Object.assign({\n className: \"emotewrapper\" + (this.props.jumboable ? \" jumboable\" : \"\"),\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n onClick: this.onClick\n }, childProps), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n draggable: false,\n className: \"emote\" + this.modifierClass + (this.props.jumboable ? \" jumboable\" : \"\") + (!this.state.shouldAnimate ? \" stop-animation\" : \"\"),\n dataModifier: this.props.modifier,\n alt: this.label,\n src: this.props.url\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n className: \"fav\" + (this.state.isFavorite ? \" active\" : \"\"),\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Emotes.favoriteAction,\n type: \"button\",\n onClick: this.toggleFavorite\n }));\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Vtb3RlLmpzPzZjY2IiXSwibmFtZXMiOlsiVG9vbHRpcFdyYXBwZXIiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5RGlzcGxheU5hbWUiLCJCREVtb3RlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJzaG91bGRBbmltYXRlIiwiYW5pbWF0ZU9uSG92ZXIiLCJpc0Zhdm9yaXRlIiwib25Nb3VzZUVudGVyIiwiYmluZCIsIm9uTW91c2VMZWF2ZSIsIm9uQ2xpY2siLCJ0b2dnbGVGYXZvcml0ZSIsIlNldHRpbmdzIiwiZ2V0IiwibGFiZWwiLCJtb2RpZmllciIsIm5hbWUiLCJtb2RpZmllckNsYXNzIiwic2V0U3RhdGUiLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJFdmVudHMiLCJlbWl0IiwidXJsIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNvbG9yIiwicG9zaXRpb24iLCJ0ZXh0IiwiZGVsYXkiLCJjaGlsZFByb3BzIiwiT2JqZWN0IiwiYXNzaWduIiwiY2xhc3NOYW1lIiwianVtYm9hYmxlIiwiZHJhZ2dhYmxlIiwiZGF0YU1vZGlmaWVyIiwiYWx0Iiwic3JjIiwidGl0bGUiLCJTdHJpbmdzIiwiRW1vdGVzIiwiZmF2b3JpdGVBY3Rpb24iLCJ0eXBlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLE1BQU1BLGNBQWMsR0FBR0Msc0RBQWMsQ0FBQ0MsZ0JBQWYsQ0FBZ0MsU0FBaEMsQ0FBdkI7QUFFZSxNQUFNQyxPQUFOLFNBQXNCQyw2Q0FBSyxDQUFDQyxTQUE1QixDQUFzQztBQUNqREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBRUEsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLG1CQUFhLEVBQUUsQ0FBQyxLQUFLQyxjQURaO0FBRVRDLGdCQUFVLEVBQUUsS0FBS0osS0FBTCxDQUFX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QUMyQixhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQ3ZCVSxpQkFBUyxFQUFFLEtBRFk7QUFFdkJGLGlCQUFTLEVBQUUsVUFBVSxLQUFLakIsYUFBZixJQUFnQyxLQUFLZixLQUFMLENBQVdpQyxTQUFYLEdBQXVCLFlBQXZCLEdBQXNDLEVBQXRFLEtBQTZFLENBQUMsS0FBS2hDLEtBQUwsQ0FBV0MsYUFBWixHQUE0QixpQkFBNUIsR0FBZ0QsRUFBN0gsQ0FGWTtBQUd2QmlDLG9CQUFZLEVBQUUsS0FBS25DLEtBQUwsQ0FBV2EsUUFIRjtBQUl2QnVCLFdBQUcsRUFBRSxLQUFLeEIsS0FKYTtBQUt2QnlCLFdBQUcsRUFBRSxLQUFLckMsS0FBTCxDQUFXc0I7QUFMTyxPQUEzQixDQU5HLEVBYUh6Qiw2Q0FBSyxDQUFDMkIsYUFBTixDQUFvQixPQUFwQixFQUE2QjtBQUN6QlEsaUJBQVMsRUFBRSxTQUFTLEtBQUsvQixLQUFMLENBQVdHLFVBQVgsR0FBd0IsU0FBeEIsR0FBb0MsRUFBN0MsQ0FEYztBQUV6QmtDLGFBQUssRUFBRUMsK0NBQU8sQ0FBQ0MsTUFBUixDQUFlQyxjQUZHO0FBR3pCQyxZQUFJLEVBQUUsUUFIbUI7QUFJekJsQyxlQUFPLEVBQUUsS0FBS0M7QUFKVyxPQUE3QixDQWJHLENBQVA7QUFvQkgsS0EzQkUsQ0FBUDtBQTRCSDs7QUE5RWdEIiwiZmlsZSI6Ii4vc3JjL3VpL2Vtb3RlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXR0aW5ncywgUmVhY3QsIFdlYnBhY2tNb2R1bGVzLCBFdmVudHMsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBUb29sdGlwV3JhcHBlciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkRFbW90ZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZTogIXRoaXMuYW5pbWF0ZU9uSG92ZXIsXHJcbiAgICAgICAgICAgIGlzRmF2b3JpdGU6IHRoaXMucHJvcHMuaXNGYXZvcml0ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMub25Nb3VzZUVudGVyID0gdGhpcy5vbk1vdXNlRW50ZXIuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uTW91c2VMZWF2ZSA9IHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVGYXZvcml0ZSA9IHRoaXMudG9nZ2xlRmF2b3JpdGUuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW5pbWF0ZU9uSG92ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFNldHRpbmdzLmdldChcImVtb3Rlc1wiLCBcImdlbmVyYWxcIiwgXCJhbmltYXRlT25Ib3ZlclwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFiZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMubW9kaWZpZXIgPyBgJHt0aGlzLnByb3BzLm5hbWV9OiR7dGhpcy5wcm9wcy5tb2RpZmllcn1gIDogdGhpcy5wcm9wcy5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RpZmllckNsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm1vZGlmaWVyID8gYCBlbW90ZSR7dGhpcy5wcm9wcy5tb2RpZmllcn1gIDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNlRW50ZXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnNob3VsZEFuaW1hdGUgJiYgdGhpcy5hbmltYXRlT25Ib3ZlcikgdGhpcy5zZXRTdGF0ZSh7c2hvdWxkQW5pbWF0ZTogdHJ1ZX0pO1xyXG4gICAgICAgIC8vIGlmICghdGhpcy5zdGF0ZS5pc0Zhdm9yaXRlICYmIEVtb3RlTWVudS5mYXZvcml0ZUVtb3Rlc1t0aGlzLmxhYmVsXSkgdGhpcy5zZXRTdGF0ZSh7aXNGYXZvcml0ZTogdHJ1ZX0pO1xyXG4gICAgICAgIC8vIGVsc2UgaWYgKHRoaXMuc3RhdGUuaXNGYXZvcml0ZSAmJiAhRW1vdGVNZW51LmZhdm9yaXRlRW1vdGVzW3RoaXMubGFiZWxdKSB0aGlzLnNldFN0YXRlKHtpc0Zhdm9yaXRlOiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG91bGRBbmltYXRlICYmIHRoaXMuYW5pbWF0ZU9uSG92ZXIpIHRoaXMuc2V0U3RhdGUoe3Nob3VsZEFuaW1hdGU6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljayhlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykgdGhpcy5wcm9wcy5vbkNsaWNrKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUZhdm9yaXRlKGUpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5pc0Zhdm9yaXRlKSBFdmVudHMuZW1pdChcImVtb3Rlcy1mYXZvcml0ZS1yZW1vdmVkXCIsIHRoaXMubGFiZWwpO1xyXG4gICAgICAgIGVsc2UgRXZlbnRzLmVtaXQoXCJlbW90ZXMtZmF2b3JpdGUtYWRkZWRcIiwgdGhpcy5sYWJlbCwgdGhpcy5wcm9wcy51cmwpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzRmF2b3JpdGU6ICF0aGlzLnN0YXRlLmlzRmF2b3JpdGV9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHRpcFdyYXBwZXIsIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBcImJsYWNrXCIsXHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJ0b3BcIixcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICBkZWxheTogNzUwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChjaGlsZFByb3BzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZW1vdGV3cmFwcGVyXCIgKyAodGhpcy5wcm9wcy5qdW1ib2FibGUgPyBcIiBqdW1ib2FibGVcIiA6IFwiXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogdGhpcy5vbk1vdXNlRW50ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiB0aGlzLm9uTW91c2VMZWF2ZSxcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQ2xpY2tcclxuICAgICAgICAgICAgICAgIH0sIGNoaWxkUHJvcHMpLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZW1vdGVcIiArIHRoaXMubW9kaWZpZXJDbGFzcyArICh0aGlzLnByb3BzLmp1bWJvYWJsZSA/IFwiIGp1bWJvYWJsZVwiIDogXCJcIikgKyAoIXRoaXMuc3RhdGUuc2hvdWxkQW5pbWF0ZSA/IFwiIHN0b3AtYW5pbWF0aW9uXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YU1vZGlmaWVyOiB0aGlzLnByb3BzLm1vZGlmaWVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ6IHRoaXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogdGhpcy5wcm9wcy51cmxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZmF2XCIgKyAodGhpcy5zdGF0ZS5pc0Zhdm9yaXRlID8gXCIgYWN0aXZlXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFN0cmluZ3MuRW1vdGVzLmZhdm9yaXRlQWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLnRvZ2dsZUZhdm9yaXRlXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/emote.js\n");
/***/ }),
/***/ "./src/ui/floating/container.jsx":
/*!***************************************!*\
!*** ./src/ui/floating/container.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./window */ \"./src/ui/floating/window.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\nclass FloatingWindowContainer extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n windows: []\n };\n }\n\n render() {\n return this.state.windows.map(window => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_window__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({}, window, {\n close: this.close.bind(this, window.id)\n }), window.children));\n }\n\n open(window) {\n this.setState({\n windows: [...this.state.windows, window]\n });\n }\n\n close(id) {\n this.setState({\n windows: this.state.windows.filter(w => {\n if (w.id == id && w.onClose) w.onClose();\n return w.id != id;\n })\n });\n }\n\n static get id() {\n return \"floating-windows\";\n }\n\n static get root() {\n if (this._root) return this._root;\n const container = document.createElement(\"div\");\n container.id = this.id;\n document.body.append(container);\n return this._root = container;\n }\n\n}\n\nconst containerRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef(); // const container = <FloatingWindowContainer ref={containerRef} />;\n// const App = Utilities.findInReactTree(Utilities.getReactInstance(document.querySelector(\".app-19_DXt\")), m => m && m.type && m.type.displayName && m.type.displayName == \"App\");\n// Patcher.after(\"FloatingContainer\", App.type.prototype, \"render\", (thisObject, args, returnValue) => {\n// const group = Utilities.findInRenderTree(returnValue, m => m && m[6] && m[6].type && m[6].type.displayName == \"LayerContainer\", {walkable: [\"children\", \"props\"]});\n// group.push(container);\n// });\n// App.stateNode.forceUpdate();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (containerRef.current);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3g/MTU2OSJdLCJuYW1lcyI6WyJGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwid2luZG93cyIsInJlbmRlciIsIm1hcCIsIndpbmRvdyIsImNsb3NlIiwiYmluZCIsImlkIiwiY2hpbGRyZW4iLCJvcGVuIiwic2V0U3RhdGUiLCJmaWx0ZXIiLCJ3Iiwib25DbG9zZSIsInJvb3QiLCJfcm9vdCIsImNvbnRhaW5lciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJvZHkiLCJhcHBlbmQiLCJjb250YWluZXJSZWYiLCJjcmVhdGVSZWYiLCJjdXJyZW50Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBRUE7O0FBRUEsTUFBTUEsdUJBQU4sU0FBc0NDLDZDQUFLLENBQUNDLFNBQTVDLENBQXNEO0FBRWxEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsYUFBTyxFQUFFO0FBQVYsS0FBYjtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxXQUFPLEtBQUtGLEtBQUwsQ0FBV0MsT0FBWCxDQUFtQkUsR0FBbkIsQ0FBdUJDLE1BQU0sSUFDaEMsNERBQUMsK0NBQUQsZUFBb0JBLE1BQXBCO0FBQTRCLFdBQUssRUFBRSxLQUFLQyxLQUFMLENBQVdDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JGLE1BQU0sQ0FBQ0csRUFBN0I7QUFBbkMsUUFDU0gsTUFBTSxDQUFDSSxRQURoQixDQURHLENBQVA7QUFLSDs7QUFFREMsTUFBSSxDQUFDTCxNQUFELEVBQVM7QUFDVCxTQUFLTSxRQUFMLENBQWM7QUFDVlQsYUFBTyxFQUFFLENBQUMsR0FBRyxLQUFLRCxLQUFMLENBQVdDLE9BQWYsRUFBd0JHLE1BQXhCO0FBREMsS0FBZDtBQUdIOztBQUVEQyxPQUFLLENBQUNFLEVBQUQsRUFBSztBQUNOLFNBQUtHLFFBQUwsQ0FBYztBQUNWVCxhQUFPLEVBQUUsS0FBS0QsS0FBTCxDQUFXQyxPQUFYLENBQW1CVSxNQUFuQixDQUEwQkMsQ0FBQyxJQUFJO0FBQ3BDLFlBQUlBLENBQUMsQ0FBQ0wsRUFBRixJQUFRQSxFQUFSLElBQWNLLENBQUMsQ0FBQ0MsT0FBcEIsRUFBNkJELENBQUMsQ0FBQ0MsT0FBRjtBQUM3QixlQUFPRCxDQUFDLENBQUNMLEVBQUYsSUFBUUEsRUFBZjtBQUNILE9BSFE7QUFEQyxLQUFkO0FBTUg7O0FBRUQsYUFBV0EsRUFBWCxHQUFnQjtBQUFDLFdBQU8sa0JBQVA7QUFBMkI7O0FBQzVDLGFBQVdPLElBQVgsR0FBa0I7QUFDZCxRQUFJLEtBQUtDLEtBQVQsRUFBZ0IsT0FBTyxLQUFLQSxLQUFaO0FBQ2hCLFVBQU1DLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWxCO0FBQ0FGLGFBQVMsQ0FBQ1QsRUFBVixHQUFlLEtBQUtBLEVBQXBCO0FBQ0FVLFlBQVEsQ0FBQ0UsSUFBVCxDQUFjQyxNQUFkLENBQXFCSixTQUFyQjtBQUNBLFdBQU8sS0FBS0QsS0FBTCxHQUFhQyxTQUFwQjtBQUNIOztBQXJDaUQ7O0FBd0N0RCxNQUFNSyxZQUFZLEdBQUd6Qiw2Q0FBSyxDQUFDMEIsU0FBTixFQUFyQixDLENBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ2VELDJFQUFZLENBQUNFLE9BQTVCIiwiZmlsZSI6Ii4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBVdGlsaXRpZXMsIFBhdGNoZXJ9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRmxvYXRpbmdXaW5kb3cgZnJvbSBcIi4vd2luZG93XCI7XHJcblxyXG5jbGFzcyBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt3aW5kb3dzOiBbXX07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLndpbmRvd3MubWFwKHdpbmRvdyA9PlxyXG4gICAgICAgICAgICA8RmxvYXRpbmdXaW5kb3cgey4uLndpbmRvd30gY2xvc2U9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB3aW5kb3cuaWQpfT5cclxuICAgICAgICAgICAgICAgICAgICB7d2luZG93LmNoaWxkcmVufVxyXG4gICAgICAgICAgICA8L0Zsb2F0aW5nV2luZG93PlxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbih3aW5kb3cpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgd2luZG93czogWy4uLnRoaXMuc3RhdGUud2luZG93cywgd2luZG93XVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKGlkKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHdpbmRvd3M6IHRoaXMuc3RhdGUud2luZG93cy5maWx0ZXIodyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAody5pZCA9PSBpZCAmJiB3Lm9uQ2xvc2UpIHcub25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHcuaWQgIT0gaWQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBpZCgpIHtyZXR1cm4gXCJmbG9hdGluZy13aW5kb3dzXCI7fVxyXG4gICAgc3RhdGljIGdldCByb290KCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9yb290KSByZXR1cm4gdGhpcy5fcm9vdDtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5pZCA9IHRoaXMuaWQ7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoY29udGFpbmVyKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdCA9IGNvbnRhaW5lcjtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgY29udGFpbmVyUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcbi8vIGNvbnN0IGNvbnRhaW5lciA9IDxGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciByZWY9e2NvbnRhaW5lclJlZn0gLz47XHJcbi8vIGNvbnN0IEFwcCA9IFV0aWxpdGllcy5maW5kSW5SZWFjdFRyZWUoVXRpbGl0aWVzLmdldFJlYWN0SW5zdGFuY2UoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAtMTlfRFh0XCIpKSwgbSA9PiBtICYmIG0udHlwZSAmJiBtLnR5cGUuZGlzcGxheU5hbWUgJiYgbS50eXBlLmRpc3BsYXlOYW1lID09IFwiQXBwXCIpO1xyXG4vLyBQYXRjaGVyLmFmdGVyKFwiRmxvYXRpbmdDb250YWluZXJcIiwgQXBwLnR5cGUucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCwgYXJncywgcmV0dXJuVmFsdWUpID0+IHtcclxuLy8gICAgIGNvbnN0IGdyb3VwID0gVXRpbGl0aWVzLmZpbmRJblJlbmRlclRyZWUocmV0dXJuVmFsdWUsIG0gPT4gbSAmJiBtWzZdICYmIG1bNl0udHlwZSAmJiBtWzZdLnR5cGUuZGlzcGxheU5hbWUgPT0gXCJMYXllckNvbnRhaW5lclwiLCB7d2Fsa2FibGU6IFtcImNoaWxkcmVuXCIsIFwicHJvcHNcIl19KTtcclxuLy8gICAgIGdyb3VwLnB1c2goY29udGFpbmVyKTtcclxuLy8gfSk7XHJcbi8vIEFwcC5zdGF0ZU5vZGUuZm9yY2VVcGRhdGUoKTtcclxuZXhwb3J0IGRlZmF1bHQgY29udGFpbmVyUmVmLmN1cnJlbnQ7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/floating/container.jsx\n");
/***/ }),
/***/ "./src/ui/floating/window.jsx":
/*!************************************!*\
!*** ./src/ui/floating/window.jsx ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FloatingWindow; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _structs_screen__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../structs/screen */ \"./src/structs/screen.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_fullscreen__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/fullscreen */ \"./src/ui/icons/fullscreen.jsx\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\n\n\n\n\n\nclass FloatingWindow extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n modalOpen: false\n };\n this.offX = 0;\n this.offY = 0;\n this.titlebar = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.window = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.close = this.close.bind(this);\n this.maximize = this.maximize.bind(this);\n this.onDrag = this.onDrag.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragStop = this.onDragStop.bind(this);\n this.onResizeStart = this.onResizeStart.bind(this);\n }\n\n componentDidMount() {\n this.window.current.addEventListener(\"mousedown\", this.onResizeStart, false);\n this.titlebar.current.addEventListener(\"mousedown\", this.onDragStart, false);\n document.addEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n onResizeStart() {\n this.currentWidth = this.window.current.style.width;\n this.currentHeight = this.window.current.style.height;\n }\n\n onDragStop() {\n document.removeEventListener(\"mousemove\", this.onDrag, true);\n\n if (this.props.onResize) {\n const width = this.window.current.style.width;\n const height = this.window.current.style.height;\n if (width != this.currentWidth || height != this.currentHeight) this.props.onResize();\n this.currentWidth = width;\n this.currentHeight = height;\n }\n }\n\n onDragStart(e) {\n const div = this.window.current;\n this.offY = e.clientY - parseInt(div.offsetTop);\n this.offX = e.clientX - parseInt(div.offsetLeft);\n document.addEventListener(\"mousemove\", this.onDrag, true);\n }\n\n onDrag(e) {\n const div = this.window.current;\n div.style.top = e.clientY - this.offY + \"px\";\n div.style.left = e.clientX - this.offX + \"px\";\n }\n\n componentWillUnmount() {\n this.titlebar.current.removeEventListener(\"mousedown\", this.onDragStart, false);\n document.removeEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n render() {\n const top = this.props.center ? _structs_screen__WEBPACK_IMPORTED_MODULE_1__[\"default\"].height / 2 - this.props.height / 2 : this.props.top;\n const left = this.props.center ? _structs_screen__WEBPACK_IMPORTED_MODULE_1__[\"default\"].width / 2 - this.props.width / 2 : this.props.left; // console.log(top, left);\n\n const className = `floating-window${` ${this.props.className}` || \"\"}${this.props.resizable ? \" resizable\" : \"\"}${this.state.modalOpen ? \" modal-open\" : \"\"}`;\n const styles = {\n height: this.props.height,\n width: this.props.width,\n left: left || 0,\n top: top || 0\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: className,\n ref: this.window,\n style: styles\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-titlebar\",\n ref: this.titlebar\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"title\"\n }, this.props.title), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-buttons\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"button maximize-button\",\n onClick: this.maximize\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_fullscreen__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n size: \"18px\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"button close-button\",\n onClick: this.close\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null)))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-content\"\n }, this.props.children));\n }\n\n async close() {\n let shouldClose = true;\n const confirmClose = typeof this.props.confirmClose == \"function\" ? this.props.confirmClose() : this.props.confirmClose;\n\n if (confirmClose) {\n this.setState({\n modalOpen: true\n });\n shouldClose = await this.confirmClose();\n this.setState({\n modalOpen: false\n });\n }\n\n if (this.props.close && shouldClose) this.props.close();\n }\n\n maximize() {\n this.window.current.style.width = \"100%\";\n this.window.current.style.height = \"100%\";\n this.window.current.style.top = \"20px\";\n this.window.current.style.left = \"0px\";\n if (this.props.onResize) this.props.onResize();\n }\n\n confirmClose() {\n return new Promise(resolve => {\n _modals__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showConfirmationModal(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.confirmAction, this.props.confirmationText, {\n danger: true,\n confirmText: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.close,\n onConfirm: () => {\n resolve(true);\n },\n onCancel: () => {\n resolve(false);\n }\n });\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL3dpbmRvdy5qc3g/Y2YzZCJdLCJuYW1lcyI6WyJGbG9hdGluZ1dpbmRvdyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwibW9kYWxPcGVuIiwib2ZmWCIsIm9mZlkiLCJ0aXRsZWJhciIsImNyZWF0ZVJlZiIsIndpbmRvdyIsImNsb3NlIiwiYmluZCIsIm1heGltaXplIiwib25EcmFnIiwib25EcmFnU3RhcnQiLCJvbkRyYWdTdG9wIiwib25SZXNpemVTdGFydCIsImNvbXBvbmVudERpZE1vdW50IiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJkb2N1bWVudCIsImN1cnJlbnRXaWR0aCIsInN0eWxlIiwid2lkdGgiLCJjdXJyZW50SGVpZ2h0IiwiaGVpZ2h0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uUmVzaXplIiwiZSIsImRpdiIsImNsaWVudFkiLCJwYXJzZUludCIsIm9mZnNldFRvcCIsImNsaWVudFgiLCJvZmZzZXRMZWZ0IiwidG9wIiwibGVmdCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVuZGVyIiwiY2VudGVyIiwiU2NyZWVuIiwiY2xhc3NOYW1lIiwicmVzaXphYmxlIiwic3R5bGVzIiwiaWQiLCJ0aXRsZSIsImNoaWxkcmVuIiwic2hvdWxkQ2xvc2UiLCJjb25maXJtQ2xvc2UiLCJzZXRTdGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiTW9kYWxzIiwic2hvd0NvbmZpcm1hdGlvbk1vZGFsIiwiU3RyaW5ncyIsImNvbmZpcm1BY3Rpb24iLCJjb25maXJtYXRpb25UZXh0IiwiZGFuZ2VyIiwiY29uZmlybVRleHQiLCJvbkNvbmZpcm0iLCJvbkNhbmNlbCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsY0FBTixTQUE2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O0FBSXBGUyxnQkFBUSxFQUFFLE1BQU07QUFBQ1QsaUJBQU8sQ0FBQyxLQUFELENBQVA7QUFBZ0I7QUFKbUQsT0FBeEY7QUFNSCxLQVBNLENBQVA7QUFRSDs7QUFqSHVEIiwiZmlsZSI6Ii4vc3JjL3VpL2Zsb2F0aW5nL3dpbmRvdy5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBTdHJpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFNjcmVlbiBmcm9tIFwiLi4vLi4vc3RydWN0cy9zY3JlZW5cIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG5pbXBvcnQgTWF4aW1pemVJY29uIGZyb20gXCIuLi9pY29ucy9mdWxsc2NyZWVuXCI7XHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL21vZGFsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxvYXRpbmdXaW5kb3cgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICB0aGlzLnN0YXRlID0ge21vZGFsT3BlbjogZmFsc2V9O1xyXG5cclxuICAgICAgICB0aGlzLm9mZlggPSAwO1xyXG4gICAgICAgIHRoaXMub2ZmWSA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMudGl0bGViYXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICB0aGlzLndpbmRvdyA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMubWF4aW1pemUgPSB0aGlzLm1heGltaXplLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkRyYWcgPSB0aGlzLm9uRHJhZy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25EcmFnU3RhcnQgPSB0aGlzLm9uRHJhZ1N0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkRyYWdTdG9wID0gdGhpcy5vbkRyYWdTdG9wLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vblJlc2l6ZVN0YXJ0ID0gdGhpcy5vblJlc2l6ZVN0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy53aW5kb3cuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25SZXNpemVTdGFydCwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMudGl0bGViYXIuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25EcmFnU3RhcnQsIGZhbHNlKTtcclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCB0aGlzLm9uRHJhZ1N0b3AsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlc2l6ZVN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFdpZHRoID0gdGhpcy53aW5kb3cuY3VycmVudC5zdHlsZS53aWR0aDtcclxuICAgICAgICB0aGlzLmN1cnJlbnRIZWlnaHQgPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBvbkRyYWdTdG9wKCkge1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbkRyYWcsIHRydWUpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aW5kb3cuY3VycmVudC5zdHlsZS53aWR0aDtcclxuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy53aW5kb3cuY3VycmVudC5zdHlsZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmICh3aWR0aCAhPSB0aGlzLmN1cnJlbnRXaWR0aCB8fCBoZWlnaHQgIT0gdGhpcy5jdXJyZW50SGVpZ2h0KSB0aGlzLnByb3BzLm9uUmVzaXplKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25EcmFnU3RhcnQoZSkge1xyXG4gICAgICAgIGNvbnN0IGRpdiA9IHRoaXMud2luZG93LmN1cnJlbnQ7XHJcbiAgICAgICAgdGhpcy5vZmZZID0gZS5jbGllbnRZIC0gcGFyc2VJbnQoZGl2Lm9mZnNldFRvcCk7XHJcbiAgICAgICAgdGhpcy5vZmZYID0gZS5jbGllbnRYIC0gcGFyc2VJbnQoZGl2Lm9mZnNldExlZnQpO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbkRyYWcsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZyhlKSB7XHJcbiAgICAgICAgY29uc3QgZGl2ID0gdGhpcy53aW5kb3cuY3VycmVudDtcclxuICAgICAgICBkaXYuc3R5bGUudG9wID0gKGUuY2xpZW50WSAtIHRoaXMub2ZmWSkgKyBcInB4XCI7XHJcbiAgICAgICAgZGl2LnN0eWxlLmxlZnQgPSAoZS5jbGllbnRYIC0gdGhpcy5vZmZYKSArIFwicHhcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICB0aGlzLnRpdGxlYmFyLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLm9uRHJhZ1N0YXJ0LCBmYWxzZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5vbkRyYWdTdG9wLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi5oZWlnaHQgLyAyKSAtICh0aGlzLnByb3BzLmhlaWdodCAvIDIpIDogdGhpcy5wcm9wcy50b3A7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi53aWR0aCAvIDIpIC0gKHRoaXMucHJvcHMud2lkdGggLyAyKSA6IHRoaXMucHJvcHMubGVmdCA7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codG9wLCBsZWZ0KTtcclxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBgZmxvYXRpbmctd2luZG93JHtgICR7dGhpcy5wcm9wcy5jbGFzc05hbWV9YCB8fCBcIlwifSR7dGhpcy5wcm9wcy5yZXNpemFibGUgPyBcIiByZXNpemFibGVcIiA6IFwiXCJ9JHt0aGlzLnN0YXRlLm1vZGFsT3BlbiA/IFwiIG1vZGFsLW9wZW5cIiA6IFwiXCJ9YDtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSB7aGVpZ2h0OiB0aGlzLnByb3BzLmhlaWdodCwgd2lkdGg6IHRoaXMucHJvcHMud2lkdGgsIGxlZnQ6IGxlZnQgfHwgMCwgdG9wOiB0b3AgfHwgMH07XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSByZWY9e3RoaXMud2luZG93fSBzdHlsZT17c3R5bGVzfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy10aXRsZWJhclwiIHJlZj17dGhpcy50aXRsZWJhcn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpdGxlXCI+e3RoaXMucHJvcHMudGl0bGV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbiBtYXhpbWl6ZS1idXR0b25cIiBvbkNsaWNrPXt0aGlzLm1heGltaXplfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWF4aW1pemVJY29uIHNpemU9XCIxOHB4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24gY2xvc2UtYnV0dG9uXCIgb25DbGljaz17dGhpcy5jbG9zZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENsb3NlQnV0dG9uIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbG9hdGluZy13aW5kb3ctY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjbG9zZSgpIHtcclxuICAgICAgICBsZXQgc2hvdWxkQ2xvc2UgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpcm1DbG9zZSA9IHR5cGVvZih0aGlzLnByb3BzLmNvbmZpcm1DbG9zZSkgPT0gXCJmdW5jdGlvblwiID8gdGhpcy5wcm9wcy5jb25maXJtQ2xvc2UoKSA6IHRoaXMucHJvcHMuY29uZmlybUNsb3NlO1xyXG4gICAgICAgIGlmIChjb25maXJtQ2xvc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kYWxPcGVuOiB0cnVlfSk7XHJcbiAgICAgICAgICAgIHNob3VsZENsb3NlID0gYXdhaXQgdGhpcy5jb25maXJtQ2xvc2UoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kYWxPcGVuOiBmYWxzZX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jbG9zZSAmJiBzaG91bGRDbG9zZSkgdGhpcy5wcm9wcy5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG1heGltaXplKCkge1xyXG4gICAgICAgIHRoaXMud2luZG93LmN1cnJlbnQuc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcclxuICAgICAgICB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLmhlaWdodCA9IFwiMTAwJVwiO1xyXG4gICAgICAgIHRoaXMud2luZG93LmN1cnJlbnQuc3R5bGUudG9wID0gXCIyMHB4XCI7XHJcbiAgICAgICAgdGhpcy53aW5kb3cuY3VycmVudC5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlc2l6ZSkgdGhpcy5wcm9wcy5vblJlc2l6ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpcm1DbG9zZSgpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIE1vZGFscy5zaG93Q29uZmlybWF0aW9uTW9kYWwoU3RyaW5ncy5Nb2RhbHMuY29uZmlybUFjdGlvbiwgdGhpcy5wcm9wcy5jb25maXJtYXRpb25UZXh0LCB7XHJcbiAgICAgICAgICAgICAgICBkYW5nZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtVGV4dDogU3RyaW5ncy5Nb2RhbHMuY2xvc2UsXHJcbiAgICAgICAgICAgICAgICBvbkNvbmZpcm06ICgpID0+IHtyZXNvbHZlKHRydWUpO30sXHJcbiAgICAgICAgICAgICAgICBvbkNhbmNlbDogKCkgPT4ge3Jlc29sdmUoZmFsc2UpO31cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/floating/window.jsx\n");
/***/ }),
/***/ "./src/ui/icons/bdlogo.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/bdlogo.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDLogo; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass BDLogo extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: \"bd-logo \" + this.props.className,\n height: \"100%\",\n width: this.props.size || \"16px\",\n viewBox: \"0 0 2000 2000\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"metadata\", null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"defs\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow1\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"20\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(0,0,0,0.35)\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow2\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"15\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(255,255,255,0.15)\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow3\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"10\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(0,0,0,0.35)\"\n }))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"g\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow3)\"\n },\n fill: \"#171717\",\n opacity: \"1\",\n d: \"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow2)\"\n },\n fill: \"#3E82E5\",\n opacity: \"1\",\n d: \"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow1)\"\n },\n fill: \"#FFFFFF\",\n opacity: \"1\",\n d: \"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z\"\n })));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2JkbG9nby5qc3g/YmQ4OSJdLCJuYW1lcyI6WyJCRExvZ28iLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInByb3BzIiwiY2xhc3NOYW1lIiwic2l6ZSIsImZpbGxSdWxlIiwiY2xpcFJ1bGUiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJmaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsTUFBTixTQUFxQkMsNkNBQUssQ0FBQ0MsU0FBM0IsQ0FBcUM7QUFDaERDLFFBQU0sR0FBRztBQUNMLFdBQU87QUFBSyxlQUFTLEVBQUUsYUFBYSxLQUFLQyxLQUFMLENBQVdDLFNBQXhDO0FBQW1ELFlBQU0sRUFBQyxNQUExRDtBQUFpRSxXQUFLLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxJQUFYLElBQW1CLE1BQTNGO0FBQW1HLGFBQU8sRUFBQyxlQUEzRztBQUEySCxXQUFLLEVBQUU7QUFBQ0MsZ0JBQVEsRUFBRSxTQUFYO0FBQXNCQyxnQkFBUSxFQUFFLFNBQWhDO0FBQTJDQyxxQkFBYSxFQUFFLE9BQTFEO0FBQW1FQyxzQkFBYyxFQUFFO0FBQW5GO0FBQWxJLE9BQ0gsNkVBREcsRUFFSCwwRUFDSTtBQUFRLFFBQUUsRUFBQztBQUFYLE9BQXFCO0FBQWMsUUFBRSxFQUFDLElBQWpCO0FBQXNCLFFBQUUsRUFBQyxHQUF6QjtBQUE2QixrQkFBWSxFQUFDLElBQTFDO0FBQStDLGdCQUFVLEVBQUM7QUFBMUQsTUFBckIsQ0FESixFQUVJO0FBQVEsUUFBRSxFQUFDO0FBQVgsT0FBcUI7QUFBYyxRQUFFLEVBQUMsSUFBakI7QUFBc0IsUUFBRSxFQUFDLEdBQXpCO0FBQTZCLGtCQUFZLEVBQUMsSUFBMUM7QUFBK0MsZ0JBQVUsRUFBQztBQUExRCxNQUFyQixDQUZKLEVBR0k7QUFBUSxRQUFFLEVBQUM7QUFBWCxPQUFxQjtBQUFjLFFBQUUsRUFBQyxJQUFqQjtBQUFzQixRQUFFLEVBQUMsR0FBekI7QUFBNkIsa0JBQVksRUFBQyxJQUExQztBQUErQyxnQkFBVSxFQUFDO0FBQTFELE1BQXJCLENBSEosQ0FGRyxFQU9ILHVFQUNJO0FBQU0sV0FBSyxFQUFFO0FBQUNDLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFESixFQUVJO0FBQU0sV0FBSyxFQUFFO0FBQUNBLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFGSixFQUdJO0FBQU0sV0FBSyxFQUFFO0FBQUNBLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFISixDQVBHLENBQVA7QUFhSDs7QUFmK0MiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvYmRsb2dvLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCRExvZ28gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8c3ZnIGNsYXNzTmFtZT17XCJiZC1sb2dvIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWV9IGhlaWdodD1cIjEwMCVcIiB3aWR0aD17dGhpcy5wcm9wcy5zaXplIHx8IFwiMTZweFwifSB2aWV3Qm94PVwiMCAwIDIwMDAgMjAwMFwiIHN0eWxlPXt7ZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLCBjbGlwUnVsZTogXCJldmVub2RkXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIn19PlxyXG4gICAgICAgICAgICA8bWV0YWRhdGEgLz5cclxuICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwic2hhZG93MVwiPjxmZURyb3BTaGFkb3cgZHg9XCIyMFwiIGR5PVwiMFwiIHN0ZERldmlhdGlvbj1cIjIwXCIgZmxvb2RDb2xvcj1cInJnYmEoMCwwLDAsMC4zNSlcIiAvPjwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cInNoYWRvdzJcIj48ZmVEcm9wU2hhZG93IGR4PVwiMTVcIiBkeT1cIjBcIiBzdGREZXZpYXRpb249XCIyMFwiIGZsb29kQ29sb3I9XCJyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpXCIgLz48L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJzaGFkb3czXCI+PGZlRHJvcFNoYWRvdyBkeD1cIjEwXCIgZHk9XCIwXCIgc3RkRGV2aWF0aW9uPVwiMjBcIiBmbG9vZENvbG9yPVwicmdiYSgwLDAsMCwwLjM1KVwiIC8+PC9maWx0ZXI+XHJcbiAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT17e2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzMpXCJ9fSBmaWxsPVwiIzE3MTcxN1wiIG9wYWNpdHk9XCIxXCIgZD1cIk0xMTk1LjQ0KzEzNS40NDJMMTE5NS40NCsxMzUuNDQyTDk5Ny42KzEzNi40NDJDMTAyNC4yKzE0OS43NDIrMTE3MC4zNCsxNjMuNTQyKzExOTMuNjQrMTc5Ljc0MkMxMjY0LjM0KzIyOC44NDIrMTMxOS43NCsyOTEuMjQyKzEzNTguMjQrMzY1LjA0MkMxMzk4LjE0KzQ0MS42NDIrMTQxOS43NCs1MzAuNjQyKzE0MjIuNTQrNjI5LjY0MkwxNDIyLjU0KzYzMC44NDJMMTQyMi41NCs2MzIuMDQyQzE0MjIuNTQrNzczLjE0MisxNDIyLjU0KzEyMjguMTQrMTQyMi41NCsxMzY5LjE0TDE0MjIuNTQrMTM3MC4zNEwxNDIyLjU0KzEzNzEuNTRDMTQxOS44NCsxNDcwLjU0KzEzOTguMjQrMTU1OS41NCsxMzU4LjI0KzE2MzYuMTRDMTMxOS43NCsxNzA5Ljk0KzEyNjQuNDQrMTc3Mi4zNCsxMTkzLjY0KzE4MjEuNDRDMTE3MS4wNCsxODM3LjE0KzEwMjUuNysxODUwLjU0KzEwMDArMTg2My41NEwxMTkzLjU0KzE4NjQuNTRDMTUzOS43NCsxODY2LjQ0KzE4NjQuNTQrMTY5My4zNCsxODY0LjU0KzEyOTYuNjRMMTg2NC41NCs3MTYuOTQyQzE4NjYuNDQrMzEyLjQ0MisxNTQxLjY0KzEzNS40NDIrMTE5NS40NCsxMzUuNDQyWlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT17e2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzIpXCJ9fSBmaWxsPVwiIzNFODJFNVwiIG9wYWNpdHk9XCIxXCIgZD1cIk0xNjk1LjU0KzYzMS40NDJDMTY4NS44NCsyNzguMDQyKzE0MDkuMzQrMTM1LjQ0MisxMDUyLjk0KzEzNS40NDJMMzYxLjc0KzEzNi40NDJMODAzLjc0KzQ5MC40NDJMMTA2MC43NCs0OTAuNDQyQzEzMzUuMjQrNDkwLjQ0MisxMzM1LjI0KzgzNS4zNDIrMTA2MC43NCs4MzUuMzQyTDEwNjAuNzQrMTE2NC44NEMxMTUwLjIyKzExNjQuODQrMTIxMC41MysxMjAxLjQ4KzEyNDEuNjgrMTI1MC44N0MxMzA2LjA3KzEzNTMrMTI0NS43NisxNTA5LjY0KzEwNjAuNzQrMTUwOS42NEwzNjEuNzQrMTg2My41NEwxMDUyLjk0KzE4NjQuNTRDMTQwOS4yNCsxODY0LjU0KzE2ODUuNzQrMTcyMS45NCsxNjk1LjU0KzEzNjguNTRDMTY5NS41NCsxMjA1Ljk0KzE2NTEuMDQrMTA4NC40NCsxNTcyLjY0Kzk5OS45NDJDMTY1MS4wNCs5MTUuNTQyKzE2OTUuNTQrNzk0LjA0MisxNjk1LjU0KzYzMS40NDJaXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPXt7ZmlsdGVyOiBcInVybCgjc2hhZG93MSlcIn19IGZpbGw9XCIjRkZGRkZGXCIgb3BhY2l0eT1cIjFcIiBkPVwiTTE0NjkuMjUrNjMxLjQ0MkMxNDU5LjU1KzI3OC4wNDIrMTE4My4wNSsxMzUuNDQyKzgyNi42NSsxMzUuNDQyTDEzNS40NSsxMzUuNDQyTDEzNS40NSsxMDA0QzEzNS40NSsxMDA0KzEzNS40MjcrMTI1NS4yMSszNTUuNjI2KzEyNTUuMjFDNTc1LjgyNSsxMjU1LjIxKzU3NS44NDgrMTAwNCs1NzUuODQ4KzEwMDRMNTc3LjQ1KzQ5MC40NDJMODM0LjQ1KzQ5MC40NDJDMTEwOC45NSs0OTAuNDQyKzExMDguOTUrODM1LjM0Mis4MzQuNDUrODM1LjM0Mkw2NjQuNjUrODM1LjM0Mkw2NjQuNjUrMTE2NC44NEw4MzQuNDUrMTE2NC44NEM5MjMuOTMyKzExNjQuODQrOTg0LjI0NCsxMjAxLjQ4KzEwMTUuMzkrMTI1MC44N0MxMDc5Ljc4KzEzNTMrMTAxOS40NysxNTA5LjY0KzgzNC40NSsxNTA5LjY0TDEzNS40NSsxNTA5LjY0TDEzNS40NSsxODY0LjU0TDgyNi42NSsxODY0LjU0QzExODIuOTUrMTg2NC41NCsxNDU5LjQ1KzE3MjEuOTQrMTQ2OS4yNSsxMzY4LjU0QzE0NjkuMjUrMTIwNS45NCsxNDI0Ljc1KzEwODQuNDQrMTM0Ni4zNSs5OTkuOTQyQzE0MjQuNzUrOTE1LjU0MisxNDY5LjI1Kzc5NC4wNDIrMTQ2OS4yNSs2MzEuNDQyWlwiIC8+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/bdlogo.jsx\n");
/***/ }),
/***/ "./src/ui/icons/close.jsx":
/*!********************************!*\
!*** ./src/ui/icons/close.jsx ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CloseButton; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass CloseButton extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 12 12\",\n style: {\n width: \"18px\",\n height: \"18px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"g\", {\n className: \"background\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h12v12H0\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n className: \"fill\",\n fill: \"#dcddde\",\n d: \"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6\"\n })));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2Nsb3NlLmpzeD9iY2UxIl0sIm5hbWVzIjpbIkNsb3NlQnV0dG9uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUNyREMsUUFBTSxHQUFHO0FBQ0wsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUUsTUFBUjtBQUFnQkMsY0FBTSxFQUFFO0FBQXhCO0FBQWhDLE9BQ0g7QUFBRyxlQUFTLEVBQUMsWUFBYjtBQUEwQixVQUFJLEVBQUMsTUFBL0I7QUFBc0MsY0FBUSxFQUFDO0FBQS9DLE9BQ0k7QUFBTSxPQUFDLEVBQUM7QUFBUixNQURKLEVBRUk7QUFBTSxlQUFTLEVBQUMsTUFBaEI7QUFBdUIsVUFBSSxFQUFDLFNBQTVCO0FBQXNDLE9BQUMsRUFBQztBQUF4QyxNQUZKLENBREcsQ0FBUDtBQU1IOztBQVJvRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9jbG9zZS5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xvc2VCdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8c3ZnIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBzdHlsZT17e3dpZHRoOiBcIjE4cHhcIiwgaGVpZ2h0OiBcIjE4cHhcIn19PlxyXG4gICAgICAgICAgICA8ZyBjbGFzc05hbWU9XCJiYWNrZ3JvdW5kXCIgZmlsbD1cIm5vbmVcIiBmaWxsUnVsZT1cImV2ZW5vZGRcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDEydjEySDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3NOYW1lPVwiZmlsbFwiIGZpbGw9XCIjZGNkZGRlXCIgZD1cIk05LjUgMy4yMDVMOC43OTUgMi41IDYgNS4yOTUgMy4yMDUgMi41bC0uNzA1LjcwNUw1LjI5NSA2IDIuNSA4Ljc5NWwuNzA1LjcwNUw2IDYuNzA1IDguNzk1IDkuNWwuNzA1LS43MDVMNi43MDUgNlwiIC8+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/close.jsx\n");
/***/ }),
/***/ "./src/ui/icons/cog.jsx":
/*!******************************!*\
!*** ./src/ui/icons/cog.jsx ***!
\******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Cog; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Cog extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"20px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 20 20\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2NvZy5qc3g/MGFiZCJdLCJuYW1lcyI6WyJDb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLEdBQU4sU0FBa0JDLDZDQUFLLENBQUNDLFNBQXhCLENBQWtDO0FBQzdDQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVA0QyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9jb2cuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjIwcHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDIwdjIwSDBWMHpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS45NSAxMC43OGMuMDMtLjI1LjA1LS41MS4wNS0uNzhzLS4wMi0uNTMtLjA2LS43OGwxLjY5LTEuMzJjLjE1LS4xMi4xOS0uMzQuMS0uNTFsLTEuNi0yLjc3Yy0uMS0uMTgtLjMxLS4yNC0uNDktLjE4bC0xLjk5LjhjLS40Mi0uMzItLjg2LS41OC0xLjM1LS43OEwxMiAyLjM0Yy0uMDMtLjItLjItLjM0LS40LS4zNEg4LjRjLS4yIDAtLjM2LjE0LS4zOS4zNGwtLjMgMi4xMmMtLjQ5LjItLjk0LjQ3LTEuMzUuNzhsLTEuOTktLjhjLS4xOC0uMDctLjM5IDAtLjQ5LjE4bC0xLjYgMi43N2MtLjEuMTgtLjA2LjM5LjEuNTFsMS42OSAxLjMyYy0uMDQuMjUtLjA3LjUyLS4wNy43OHMuMDIuNTMuMDYuNzhMMi4zNyAxMi4xYy0uMTUuMTItLjE5LjM0LS4xLjUxbDEuNiAyLjc3Yy4xLjE4LjMxLjI0LjQ5LjE4bDEuOTktLjhjLjQyLjMyLjg2LjU4IDEuMzUuNzhsLjMgMi4xMmMuMDQuMi4yLjM0LjQuMzRoMy4yYy4yIDAgLjM3LS4xNC4zOS0uMzRsLjMtMi4xMmMuNDktLjIuOTQtLjQ3IDEuMzUtLjc4bDEuOTkuOGMuMTguMDcuMzkgMCAuNDktLjE4bDEuNi0yLjc3Yy4xLS4xOC4wNi0uMzktLjEtLjUxbC0xLjY3LTEuMzJ6TTEwIDEzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/cog.jsx\n");
/***/ }),
/***/ "./src/ui/icons/delete.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/delete.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Delete; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Delete extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n fill: \"#FFFFFF\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n },\n onClick: this.props.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2RlbGV0ZS5qc3g/NWIwYiJdLCJuYW1lcyI6WyJEZWxldGUiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsImNsYXNzTmFtZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25DbGljayJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsUUFBTSxHQUFHO0FBQ0wsVUFBTUMsSUFBSSxHQUFHLEtBQUtDLEtBQUwsQ0FBV0QsSUFBWCxJQUFtQixNQUFoQztBQUNBLFdBQU87QUFBSyxlQUFTLEVBQUUsS0FBS0MsS0FBTCxDQUFXQyxTQUFYLElBQXdCLEVBQXhDO0FBQTRDLFVBQUksRUFBQyxTQUFqRDtBQUEyRCxhQUFPLEVBQUMsV0FBbkU7QUFBK0UsV0FBSyxFQUFFO0FBQUNDLGFBQUssRUFBRUgsSUFBUjtBQUFjSSxjQUFNLEVBQUVKO0FBQXRCLE9BQXRGO0FBQW1ILGFBQU8sRUFBRSxLQUFLQyxLQUFMLENBQVdJO0FBQXZJLE9BQ0s7QUFBTSxVQUFJLEVBQUMsTUFBWDtBQUFrQixPQUFDLEVBQUM7QUFBcEIsTUFETCxFQUM0QztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRDVDLEVBRUs7QUFBTSxVQUFJLEVBQUMsTUFBWDtBQUFrQixPQUFDLEVBQUM7QUFBcEIsTUFGTCxDQUFQO0FBSUg7O0FBUCtDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL2RlbGV0ZS5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5wcm9wcy5zaXplIHx8IFwiMjRweFwiO1xyXG4gICAgICAgIHJldHVybiA8c3ZnIGNsYXNzTmFtZT17dGhpcy5wcm9wcy5jbGFzc05hbWUgfHwgXCJcIn0gZmlsbD1cIiNGRkZGRkZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0gb25DbGljaz17dGhpcy5wcm9wcy5vbkNsaWNrfT5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDI0djI0SDBWMHpcIi8+PHBhdGggZD1cIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/delete.jsx\n");
/***/ }),
/***/ "./src/ui/icons/detach.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/detach.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Detach; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Detach extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2RldGFjaC5qc3g/M2NlYSJdLCJuYW1lcyI6WyJEZXRhY2giLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sT0FBQyxFQUFDLGVBQVI7QUFBd0IsVUFBSSxFQUFDO0FBQTdCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVArQyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9kZXRhY2guanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERldGFjaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6XCIgLz5cclxuICAgICAgICAgICAgICAgPC9zdmc+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/icons/detach.jsx\n");
/***/ }),
/***/ "./src/ui/icons/downarrow.jsx":
/*!************************************!*\
!*** ./src/ui/icons/downarrow.jsx ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DownArrow; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass DownArrow extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"16px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n fill: \"#FFFFFF\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2Rvd25hcnJvdy5qc3g/MjFmNSJdLCJuYW1lcyI6WyJEb3duQXJyb3ciLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsImNsYXNzTmFtZSIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBQ25EQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGVBQVMsRUFBRSxLQUFLQyxLQUFMLENBQVdDLFNBQVgsSUFBd0IsRUFBeEM7QUFBNEMsVUFBSSxFQUFDLFNBQWpEO0FBQTJELGFBQU8sRUFBQyxXQUFuRTtBQUErRSxXQUFLLEVBQUU7QUFBQ0MsYUFBSyxFQUFFSCxJQUFSO0FBQWNJLGNBQU0sRUFBRUo7QUFBdEI7QUFBdEYsT0FDSztBQUFNLE9BQUMsRUFBQztBQUFSLE1BREwsQ0FBUDtBQUdIOztBQU5rRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9kb3duYXJyb3cuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERvd25BcnJvdyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjE2cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyBjbGFzc05hbWU9e3RoaXMucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCJ9IGZpbGw9XCIjRkZGRkZGXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4xMiA5LjI5TDEyIDEzLjE3bDMuODgtMy44OGMuMzktLjM5IDEuMDItLjM5IDEuNDEgMCAuMzkuMzkuMzkgMS4wMiAwIDEuNDFsLTQuNTkgNC41OWMtLjM5LjM5LTEuMDIuMzktMS40MSAwTDYuNyAxMC43Yy0uMzktLjM5LS4zOS0xLjAyIDAtMS40MS4zOS0uMzggMS4wMy0uMzkgMS40MiAwelwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/downarrow.jsx\n");
/***/ }),
/***/ "./src/ui/icons/edit.jsx":
/*!*******************************!*\
!*** ./src/ui/icons/edit.jsx ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Edit; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Edit extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n fill: \"#FFFFFF\",\n style: {\n width: size,\n height: size\n },\n onClick: this.props.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2VkaXQuanN4PzQ2ZTMiXSwibmFtZXMiOlsiRWRpdCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiLCJvbkNsaWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLElBQU4sU0FBbUJDLDZDQUFLLENBQUNDLFNBQXpCLENBQW1DO0FBQzlDQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFVBQUksRUFBQyxTQUE5QjtBQUF3QyxXQUFLLEVBQUU7QUFBQ0UsYUFBSyxFQUFFRixJQUFSO0FBQWNHLGNBQU0sRUFBRUg7QUFBdEIsT0FBL0M7QUFBNEUsYUFBTyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0c7QUFBaEcsT0FDQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQyxlQUFSO0FBQXdCLFVBQUksRUFBQztBQUE3QixNQUZELENBQVA7QUFJSDs7QUFQNkMiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvZWRpdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRpdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIiNGRkZGRkZcIiBzdHlsZT17e3dpZHRoOiBzaXplLCBoZWlnaHQ6IHNpemV9fSBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2t9PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/edit.jsx\n");
/***/ }),
/***/ "./src/ui/icons/fullscreen.jsx":
/*!*************************************!*\
!*** ./src/ui/icons/fullscreen.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FullScreen; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass FullScreen extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n fill: \"#FFFFFF\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n },\n onClick: this.props.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2Z1bGxzY3JlZW4uanN4P2Y1MzEiXSwibmFtZXMiOlsiRnVsbFNjcmVlbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwiY2xhc3NOYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJvbkNsaWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFVBQU4sU0FBeUJDLDZDQUFLLENBQUNDLFNBQS9CLENBQXlDO0FBQ3BEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGVBQVMsRUFBRSxLQUFLQyxLQUFMLENBQVdDLFNBQVgsSUFBd0IsRUFBeEM7QUFBNEMsVUFBSSxFQUFDLFNBQWpEO0FBQTJELGFBQU8sRUFBQyxXQUFuRTtBQUErRSxXQUFLLEVBQUU7QUFBQ0MsYUFBSyxFQUFFSCxJQUFSO0FBQWNJLGNBQU0sRUFBRUo7QUFBdEIsT0FBdEY7QUFBbUgsYUFBTyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0k7QUFBdkksT0FDSztBQUFNLFVBQUksRUFBQyxNQUFYO0FBQWtCLE9BQUMsRUFBQztBQUFwQixNQURMLEVBRUs7QUFBTSxPQUFDLEVBQUM7QUFBUixNQUZMLENBQVA7QUFJSDs7QUFQbUQiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvZnVsbHNjcmVlbi5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnVsbFNjcmVlbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyBjbGFzc05hbWU9e3RoaXMucHJvcHMuY2xhc3NOYW1lIHx8IFwiXCJ9IGZpbGw9XCIjRkZGRkZGXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19IG9uQ2xpY2s9e3RoaXMucHJvcHMub25DbGlja30+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwVjB6XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXpcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/fullscreen.jsx\n");
/***/ }),
/***/ "./src/ui/icons/reload.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/reload.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ReloadIcon; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ReloadIcon extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n onClick: this.props.onClick,\n fill: \"#dcddde\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3JlbG9hZC5qc3g/MzhiMiJdLCJuYW1lcyI6WyJSZWxvYWRJY29uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJzaXplIiwicHJvcHMiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsVUFBTixTQUF5QkMsNkNBQUssQ0FBQ0MsU0FBL0IsQ0FBeUM7QUFDcERDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssZUFBUyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsU0FBWCxJQUF3QixFQUF4QztBQUE0QyxhQUFPLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxPQUFoRTtBQUF5RSxVQUFJLEVBQUMsU0FBOUU7QUFBd0YsYUFBTyxFQUFDLFdBQWhHO0FBQTRHLFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUVKLElBQVI7QUFBY0ssY0FBTSxFQUFFTDtBQUF0QjtBQUFuSCxPQUNIO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFERyxFQUVIO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BRkcsQ0FBUDtBQUlIOztBQVBtRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9yZWxvYWQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbG9hZEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwifSBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2t9IGZpbGw9XCIjZGNkZGRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/reload.jsx\n");
/***/ }),
/***/ "./src/ui/icons/save.jsx":
/*!*******************************!*\
!*** ./src/ui/icons/save.jsx ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Save; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Save extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3NhdmUuanN4PzU4MGYiXSwibmFtZXMiOlsiU2F2ZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsSUFBTixTQUFtQkMsNkNBQUssQ0FBQ0MsU0FBekIsQ0FBbUM7QUFDOUNDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssYUFBTyxFQUFDLFdBQWI7QUFBeUIsV0FBSyxFQUFFO0FBQUNFLGFBQUssRUFBRUYsSUFBUjtBQUFjRyxjQUFNLEVBQUVIO0FBQXRCO0FBQWhDLE9BQ0M7QUFBTSxVQUFJLEVBQUMsTUFBWDtBQUFrQixPQUFDLEVBQUM7QUFBcEIsTUFERCxFQUVDO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFGRCxDQUFQO0FBSUg7O0FBUDZDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL3NhdmUuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNhdmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwVjB6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2wtNC00em0yIDE2SDVWNWgxMS4xN0wxOSA3LjgzVjE5em0tNy03Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pNNiA2aDl2NEg2elwiIC8+XHJcbiAgICAgICAgICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/save.jsx\n");
/***/ }),
/***/ "./src/ui/icons/search.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/search.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Search; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Search extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"16px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n fill: \"#FFFFFF\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3NlYXJjaC5qc3g/ODA5ZiJdLCJuYW1lcyI6WyJTZWFyY2giLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsImNsYXNzTmFtZSIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGVBQVMsRUFBRSxLQUFLQyxLQUFMLENBQVdDLFNBQVgsSUFBd0IsRUFBeEM7QUFBNEMsVUFBSSxFQUFDLFNBQWpEO0FBQTJELGFBQU8sRUFBQyxXQUFuRTtBQUErRSxXQUFLLEVBQUU7QUFBQ0MsYUFBSyxFQUFFSCxJQUFSO0FBQWNJLGNBQU0sRUFBRUo7QUFBdEI7QUFBdEYsT0FDSztBQUFNLFVBQUksRUFBQyxNQUFYO0FBQWtCLE9BQUMsRUFBQztBQUFwQixNQURMLEVBRUs7QUFBTSxPQUFDLEVBQUM7QUFBUixNQUZMLENBQVA7QUFJSDs7QUFQK0MiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvc2VhcmNoLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWFyY2ggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIxNnB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwifSBmaWxsPVwiI0ZGRkZGRlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHlsZT17e3dpZHRoOiBzaXplLCBoZWlnaHQ6IHNpemV9fT5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDI0djI0SDBWMHpcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/search.jsx\n");
/***/ }),
/***/ "./src/ui/misc/addoneditor.jsx":
/*!*************************************!*\
!*** ./src/ui/misc/addoneditor.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _customcss_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../customcss/editor */ \"./src/ui/customcss/editor.jsx\");\n/* harmony import */ var _icons_save__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/save */ \"./src/ui/icons/save.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_cog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/cog */ \"./src/ui/icons/cog.jsx\");\n\n\n\n\n\nclass AddonEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.hasUnsavedChanges = false;\n this.onChange = this.onChange.bind(this);\n this.save = this.save.bind(this);\n this.openNative = this.openNative.bind(this);\n this.update = this.update.bind(this);\n this.controls = [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_save__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.save,\n onClick: this.save\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.openNative,\n onClick: this.openNative\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_cog__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].CustomCSS.settings,\n onClick: \"showSettings\"\n }];\n }\n\n update() {\n this.forceUpdate();\n }\n\n updateEditor(newCSS) {\n if (!this.editor) return;\n this.editor.value = newCSS;\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n setEditorRef(editor) {\n this.editor = editor;\n if (this.props.editorRef && typeof this.props.editorRef.current !== \"undefined\") this.props.editorRef.current = editor;else if (this.props.editorRef) this.props.editorRef = editor;\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_customcss_editor__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref: this.setEditorRef.bind(this),\n language: this.props.language,\n id: this.props.id || \"bd-addon-editor\",\n controls: this.controls,\n value: this.props.content,\n onChange: this.onChange\n });\n }\n\n onChange() {\n this.hasUnsavedChanges = true;\n }\n\n save(event, content) {\n this.hasUnsavedChanges = false;\n if (this.props.save) this.props.save(content);\n }\n\n openNative() {\n if (this.props.openNative) this.props.openNative();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL21pc2MvYWRkb25lZGl0b3IuanN4P2ViOWMiXSwibmFtZXMiOlsiQWRkb25FZGl0b3IiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJoYXNVbnNhdmVkQ2hhbmdlcyIsIm9uQ2hhbmdlIiwiYmluZCIsInNhdmUiLCJvcGVuTmF0aXZlIiwidXBkYXRlIiwiY29udHJvbHMiLCJsYWJlbCIsImNyZWF0ZUVsZW1lbnQiLCJTYXZlIiwic2l6ZSIsInRvb2x0aXAiLCJTdHJpbmdzIiwiQ3VzdG9tQ1NTIiwib25DbGljayIsIkVkaXQiLCJDb2ciLCJzZXR0aW5ncyIsImZvcmNlVXBkYXRlIiwidXBkYXRlRWRpdG9yIiwibmV3Q1NTIiwiZWRpdG9yIiwidmFsdWUiLCJzZXNzaW9uIiwiZ2V0VmFsdWUiLCJuZXdWYWx1ZSIsInNldFZhbHVlIiwic2hvd1NldHRpbmdzIiwia2V5QmluZGluZyIsIiRkZWZhdWx0SGFuZGxlciIsImNvbW1hbmRzIiwic2hvd1NldHRpbmdzTWVudSIsImV4ZWMiLCJyZXNpemUiLCJzZXRFZGl0b3JSZWYiLCJlZGl0b3JSZWYiLCJjdXJyZW50IiwicmVuZGVyIiwibGFuZ3VhZ2UiLCJpZCIsImNvbnRlbnQiLCJldmVudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUVBLFNBQUtDLGlCQUFMLEdBQXlCLEtBQXpCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDQSxTQUFLQyxJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVRCxJQUFWLENBQWUsSUFB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LEdBQXlCLElBQXpCO0FBQ0g7O0FBRURHLE1BQUksQ0FBQ3NDLEtBQUQsRUFBUUQsT0FBUixFQUFpQjtBQUNqQixTQUFLeEMsaUJBQUwsR0FBeUIsS0FBekI7QUFDQSxRQUFJLEtBQUtELEtBQUwsQ0FBV0ksSUFBZixFQUFxQixLQUFLSixLQUFMLENBQVdJLElBQVgsQ0FBZ0JxQyxPQUFoQjtBQUN4Qjs7QUFFRHBDLFlBQVUsR0FBRztBQUNULFFBQUksS0FBS0wsS0FBTCxDQUFXSyxVQUFmLEVBQTJCLEtBQUtMLEtBQUwsQ0FBV0ssVUFBWDtBQUM5Qjs7QUF4RG9EIiwiZmlsZSI6Ii4vc3JjL3VpL21pc2MvYWRkb25lZGl0b3IuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBFZGl0b3IgZnJvbSBcIi4uL2N1c3RvbWNzcy9lZGl0b3JcIjtcclxuaW1wb3J0IFNhdmUgZnJvbSBcIi4uL2ljb25zL3NhdmVcIjtcclxuaW1wb3J0IEVkaXQgZnJvbSBcIi4uL2ljb25zL2VkaXRcIjtcclxuaW1wb3J0IENvZyBmcm9tIFwiLi4vaWNvbnMvY29nXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGRvbkVkaXRvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2F2ZSA9IHRoaXMuc2F2ZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub3Blbk5hdGl2ZSA9IHRoaXMub3Blbk5hdGl2ZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250cm9scyA9IFtcclxuICAgICAgICAgICAge2xhYmVsOiBSZWFjdC5jcmVhdGVFbGVtZW50KFNhdmUsIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBTdHJpbmdzLkN1c3RvbUNTUy5zYXZlLCBvbkNsaWNrOiB0aGlzLnNhdmV9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRWRpdCwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFN0cmluZ3MuQ3VzdG9tQ1NTLm9wZW5OYXRpdmUsIG9uQ2xpY2s6IHRoaXMub3Blbk5hdGl2ZX0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChDb2csIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBTdHJpbmdzLkN1c3RvbUNTUy5zZXR0aW5ncywgb25DbGljazogXCJzaG93U2V0dGluZ3NcIn1cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRWRpdG9yKG5ld0NTUykge1xyXG4gICAgICAgIGlmICghdGhpcy5lZGl0b3IpIHJldHVybjtcclxuICAgICAgICB0aGlzLmVkaXRvci52YWx1ZSA9IG5ld0NTUztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLnNlc3Npb24uZ2V0VmFsdWUoKTt9XHJcbiAgICBzZXQgdmFsdWUobmV3VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmVkaXRvci5zZXRWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1NldHRpbmdzKCkge3JldHVybiB0aGlzLmVkaXRvci5rZXlCaW5kaW5nLiRkZWZhdWx0SGFuZGxlci5jb21tYW5kcy5zaG93U2V0dGluZ3NNZW51LmV4ZWModGhpcy5lZGl0b3IpO31cclxuICAgIHJlc2l6ZSgpIHtyZXR1cm4gdGhpcy5lZGl0b3IucmVzaXplKCk7fVxyXG5cclxuICAgIHNldEVkaXRvclJlZihlZGl0b3IpIHtcclxuICAgICAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lZGl0b3JSZWYgJiYgdHlwZW9mKHRoaXMucHJvcHMuZWRpdG9yUmVmLmN1cnJlbnQpICE9PSBcInVuZGVmaW5lZFwiKSB0aGlzLnByb3BzLmVkaXRvclJlZi5jdXJyZW50ID0gZWRpdG9yO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucHJvcHMuZWRpdG9yUmVmKSB0aGlzLnByb3BzLmVkaXRvclJlZiA9IGVkaXRvcjtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxFZGl0b3IgcmVmPXt0aGlzLnNldEVkaXRvclJlZi5iaW5kKHRoaXMpfSBsYW5ndWFnZT17dGhpcy5wcm9wcy5sYW5ndWFnZX0gaWQ9e3RoaXMucHJvcHMuaWQgfHwgXCJiZC1hZGRvbi1lZGl0b3JcIn0gY29udHJvbHM9e3RoaXMuY29udHJvbHN9IHZhbHVlPXt0aGlzLnByb3BzLmNvbnRlbnR9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKGV2ZW50LCBjb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNhdmUpIHRoaXMucHJvcHMuc2F2ZShjb250ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5OYXRpdmUpIHRoaXMucHJvcHMub3Blbk5hdGl2ZSgpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/misc/addoneditor.jsx\n");
/***/ }),
/***/ "./src/ui/modals.js":
/*!**************************!*\
!*** ./src/ui/modals.js ***!
\**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Modals; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nclass Modals {\n static get shouldShowAddonErrors() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(\"settings\", \"addons\", \"addonErrors\");\n }\n\n static get ModalStack() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n }\n\n static get AlertModal() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByPrototypes(\"handleCancel\", \"handleSubmit\", \"handleMinorConfirm\");\n }\n\n static get TextElement() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Sizes\", \"Weights\");\n }\n\n static get ConfirmationModal() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.defaultProps && m.key && m.key() == \"confirm-modal\");\n }\n\n static default(title, content) {\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"backdrop-1wrmKb\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].parseHTML(`<div class=\"bd-modal-wrapper theme-dark\">\n <div class=\"bd-backdrop ${backdrop.backdrop}\"></div>\n <div class=\"bd-modal ${baseModalClasses.modal}\">\n <div class=\"bd-modal-inner ${baseModalClasses.inner}\">\n <div class=\"header header-1R_AjF\">\n <div class=\"title\">${title}</div>\n </div>\n <div class=\"bd-modal-body\">\n <div class=\"scroller-wrap fade\">\n <div class=\"scroller\">\n ${content}\n </div>\n </div>\n </div>\n <div class=\"footer ${modalClasses.footer}\">\n <button type=\"button\" class=\"bd-button\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.okay}</button>\n </div>\n </div>\n </div>\n </div>`);\n modal.querySelector(\".footer button\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.querySelector(\".bd-backdrop\").addEventListener(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n document.querySelector(\"#app-mount\").append(modal);\n }\n\n static alert(title, content) {\n if (this.ModalStack && this.AlertModal) return this.default(title, content);\n this.ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(this.AlertModal, Object.assign({\n title: title,\n body: content\n }, props));\n });\n }\n /**\r\n * Shows a generic but very customizable confirmation modal with optional confirm and cancel callbacks.\r\n * @param {string} title - title of the modal\r\n * @param {(string|ReactElement|Array<string|ReactElement>)} children - a single or mixed array of react elements and strings. Everything is wrapped in Discord's `TextElement` component so strings will show and render properly.\r\n * @param {object} [options] - options to modify the modal\r\n * @param {boolean} [options.danger=false] - whether the main button should be red or not\r\n * @param {string} [options.confirmText=Okay] - text for the confirmation/submit button\r\n * @param {string} [options.cancelText=Cancel] - text for the cancel button\r\n * @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button\r\n * @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button\r\n */\n\n\n static showConfirmationModal(title, content, options = {}) {\n const TextElement = this.TextElement;\n const ConfirmationModal = this.ConfirmationModal;\n const ModalStack = this.ModalStack;\n if (!this.ModalStack || !this.ConfirmationModal || !this.TextElement) return this.alert(title, content);\n const {\n onConfirm,\n onCancel,\n confirmText,\n cancelText,\n danger = false\n } = options;\n if (typeof content == \"string\") content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: [content]\n });else if (Array.isArray(content)) content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: content\n });\n content = [content];\n\n const emptyFunction = () => {};\n\n ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(ConfirmationModal, Object.assign({\n header: title,\n children: content,\n red: danger,\n confirmText: confirmText ? confirmText : modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.okay,\n cancelText: cancelText ? cancelText : modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.cancel,\n onConfirm: onConfirm ? onConfirm : emptyFunction,\n onCancel: onCancel ? onCancel : emptyFunction\n }, props));\n });\n }\n\n static showAddonErrors({\n plugins: pluginErrors = [],\n themes: themeErrors = []\n }) {\n if (!pluginErrors || !themeErrors || !this.shouldShowAddonErrors) return;\n if (!pluginErrors.length && !themeErrors.length) return;\n const backdrop = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"backdrop\") || {\n backdrop: \"backdrop-1wrmKb\"\n };\n const baseModalClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.modal && m.inner && !m.sizeMedium) || {\n modal: \"modal-36zFtW\",\n inner: \"inner-2VEzy9\"\n };\n const modalClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"sizeMedium\") || {\n modal: \"modal-3v8ziU\",\n sizeMedium: \"sizeMedium-ctncE5\",\n content: \"content-2KoCOZ\",\n header: \"header-2nhbou\",\n footer: \"footer-30ewN8\",\n close: \"close-hhyjWJ\",\n inner: \"inner-2Z5QZX\"\n };\n const modal = $(`<div class=\"bd-modal-wrapper theme-dark\">\n <div class=\"bd-backdrop ${backdrop.backdrop}\"></div>\n <div class=\"bd-modal bd-content-modal ${baseModalClasses.modal}\">\n <div class=\"bd-modal-inner ${baseModalClasses.inner}\">\n <div class=\"header ${modalClasses.header}\"><div class=\"title\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.addonErrors}</div></div>\n <div class=\"bd-modal-body\">\n <div class=\"tab-bar-container\">\n <div class=\"tab-bar TOP\">\n <div class=\"tab-bar-item\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Panels.plugins}</div>\n <div class=\"tab-bar-item\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Panels.themes}</div>\n </div>\n </div>\n <div class=\"table-header\">\n <div class=\"table-column column-name\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.name}</div>\n <div class=\"table-column column-message\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.message}</div>\n <div class=\"table-column column-error\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.error}</div>\n </div>\n <div class=\"scroller-wrap fade ${modalClasses.content}\">\n <div class=\"scroller\">\n\n </div>\n </div>\n </div>\n <div class=\"footer ${modalClasses.footer}\">\n <button type=\"button\" class=\"bd-button\">${modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Modals.okay}</button>\n </div>\n </div>\n </div>\n </div>`);\n\n const generateTab = function (errors) {\n const container = $(`<div class=\"errors\">`);\n\n for (const err of errors) {\n const error = $(`<div class=\"error\">\n <div class=\"table-column column-name\">${err.name ? err.name : err.file}</div>\n <div class=\"table-column column-message\">${err.message}</div>\n <div class=\"table-column column-error\"><a class=\"error-link\" href=\"\">${err.error ? err.error.message : \"\"}</a></div>\n </div>`);\n container.append(error);\n\n if (err.error) {\n error.find(\"a\").on(\"click\", e => {\n e.preventDefault();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Logger\"].stacktrace(\"AddonError\", `Error details for ${err.name ? err.name : err.file}.`, err.error);\n });\n }\n }\n\n return container;\n };\n\n const tabs = [generateTab(pluginErrors), generateTab(themeErrors)];\n modal.find(\".tab-bar-item\").on(\"click\", e => {\n e.preventDefault();\n modal.find(\".tab-bar-item\").removeClass(\"selected\");\n $(e.target).addClass(\"selected\");\n modal.find(\".scroller\").empty().append(tabs[$(e.target).index()]);\n });\n modal.find(\".footer button\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.find(\".bd-backdrop\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.appendTo(\"#app-mount\");\n if (pluginErrors.length) modal.find(\".tab-bar-item\")[0].click();else modal.find(\".tab-bar-item\")[1].click();\n }\n\n showChangelogModal(options = {}) {\n const ModalStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n const ChangelogClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"fixed\", \"improved\");\n const TextElement = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Sizes\", \"Weights\");\n const FlexChild = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Child\");\n const Titles = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"Tags\", \"default\");\n const Changelog = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.selectable == false);\n const MarkdownParser = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"defaultRules\", \"parse\");\n if (!Changelog || !ModalStack || !ChangelogClasses || !TextElement || !FlexChild || !Titles || !MarkdownParser) return;\n const {\n image = \"https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5\",\n description = \"\",\n changes = [],\n title = \"BandagedBD\",\n subtitle = `v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion}`,\n footer\n } = options;\n const ce = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement;\n const changelogItems = [ce(\"img\", {\n src: image\n })];\n if (description) changelogItems.push(ce(\"p\", null, MarkdownParser.parse(description)));\n\n for (let c = 0; c < changes.length; c++) {\n const entry = changes[c];\n const type = ChangelogClasses[entry.type] ? ChangelogClasses[entry.type] : ChangelogClasses.added;\n const margin = c == 0 ? ChangelogClasses.marginTop : \"\";\n changelogItems.push(ce(\"h1\", {\n className: `${type} ${margin}`\n }, entry.title));\n const list = ce(\"ul\", null, entry.items.map(i => ce(\"li\", null, MarkdownParser.parse(i))));\n changelogItems.push(list);\n }\n\n const renderHeader = function () {\n return ce(FlexChild.Child, {\n grow: 1,\n shrink: 1\n }, ce(Titles.default, {\n tag: Titles.Tags.H4\n }, title), ce(TextElement, {\n size: TextElement.Sizes.SMALL,\n color: TextElement.Colors.PRIMARY,\n className: ChangelogClasses.date\n }, subtitle));\n };\n\n const renderFooter = () => {\n const Anchor = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.displayName == \"Anchor\");\n const AnchorClasses = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"anchorUnderlineOnHover\") || {\n anchor: \"anchor-3Z-8Bb\",\n anchorUnderlineOnHover: \"anchorUnderlineOnHover-2ESHQB\"\n };\n\n const joinSupportServer = click => {\n click.preventDefault();\n click.stopPropagation();\n ModalStack.pop();\n BDV2.joinBD2();\n };\n\n const supportLink = Anchor ? ce(Anchor, {\n onClick: joinSupportServer\n }, \"Join our Discord Server.\") : ce(\"a\", {\n className: `${AnchorClasses.anchor} ${AnchorClasses.anchorUnderlineOnHover}`,\n onClick: joinSupportServer\n }, \"Join our Discord Server.\");\n const defaultFooter = ce(TextElement, {\n size: TextElement.Sizes.SMALL,\n color: TextElement.Colors.PRIMARY\n }, \"Need support? \", supportLink);\n return ce(FlexChild.Child, {\n grow: 1,\n shrink: 1\n }, footer ? footer : defaultFooter);\n };\n\n ModalStack.push(function (props) {\n return ce(Changelog, Object.assign({\n className: ChangelogClasses.container,\n selectable: true,\n onScroll: _ => _,\n onClose: _ => _,\n renderHeader: renderHeader,\n renderFooter: renderFooter,\n children: changelogItems\n }, props));\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL21vZGFscy5qcz8zYWIyIl0sIm5hbWVzIjpbIk1vZGFscyIsInNob3VsZFNob3dBZGRvbkVycm9ycyIsIlNldHRpbmdzIiwiZ2V0IiwiTW9kYWxTdGFjayIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsIkFsZXJ0TW9kYWwiLCJnZXRCeVByb3RvdHlwZXMiLCJUZXh0RWxlbWVudCIsIkNvbmZpcm1hdGlvbk1vZGFsIiwiZ2V0TW9kdWxlIiwibSIsImRlZmF1bHRQcm9wcyIsImtleSIsImRlZmF1bHQiLCJ0aXRsZSIsImNvbnRlbnQiLCJiYWNrZHJvcCIsImJhc2VNb2RhbENsYXNzZXMiLCJtb2RhbCIsImlubmVyIiwic2l6ZU1lZGl1bSIsIm1vZGFsQ2xhc3NlcyIsImhlYWRlciIsImZvb3RlciIsImNsb3NlIiwiVXRpbGl0aWVzIiwicGFyc2VIVE1MIiwiU3RyaW5ncyIsIm9rYXkiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImFkZENsYXNzIiwic2V0VGltZW91dCIsInJlbW92ZSIsImRvY3VtZW50IiwiYXBwZW5kIiwiYWxlcnQiLCJwdXNoIiwicHJvcHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5Iiwic2hvd0NvbmZpcm1hdGlvbk1vZGFsIiwib3B0aW9ucyIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwiY29uZmlybVRleHQiLCJjYW5jZWxUZXh0IiwiZGFuZ2VyIiwiY29sb3IiLCJDb2xvcnMiLCJQUklNQVJZIiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJlbXB0eUZ1bmN0aW9uIiwicmVkIiwiY2FuY2VsIiwic2hvd0FkZG9uRXJyb3JzIiwicGx1Z2lucyIsInBsdWdpbkVycm9ycyIsInRoZW1lcyIsInRoZW1lRXJyb3JzIiwibGVuZ3RoIiwiJCIsImFkZG9uRXJyb3JzIiwiUGFuZWxzIiwibmFtZSIsIm1lc3NhZ2UiLCJlcnJvciIsImdlbmVyYXRlVGFiIiwiZXJyb3JzIiwiY29udGFpbmVyIiwiZXJyIiwiZmlsZSIsImZpbmQiLCJvbiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIkxvZ2dlciIsInN0YWNrdHJhY2UiLCJ0YWJzIiwicmVtb3ZlQ2xhc3MiLCJ0YXJnZXQiLCJlbXB0eSIsImluZGV4IiwiYXBwZW5kVG8iLCJjbGljayIsInNob3dDaGFuZ2Vsb2dNb2RhbCIsIkNoYW5nZWxvZ0NsYXNzZXMiLCJGbGV4Q2hpbGQiLCJUaXRsZXMiLCJDaGFuZ2Vsb2ciLCJzZWxlY3RhYmxlIiwiTWFya2Rvd25QYXJzZXIiLCJpbWFnZSIsImRlc2NyaXB0aW9uIiwiY2hhbmdlcyIsInN1YnRpdGxlIiwiQ29uZmlnIiwiYmJkVmVyc2lvbiIsImNlIiwiY2hhbmdlbG9nSXRlbXMiLCJzcmMiLCJwYXJzZSIsImMiLCJlbnRyeSIsInR5cGUiLCJhZGRlZCIsIm1hcmdpbiIsIm1hcmdpblRvcCIsImNsYXNzTmFtZSIsImxpc3QiLCJpdGVtcyIsIm1hcCIsImkiLCJyZW5kZXJIZWFkZXIiLCJDaGlsZCIsImdyb3ciLCJzaHJpbmsiLCJ0YWciLCJUYWdzIiwiSDQiLCJzaXplIiwiU2l6ZXMiLCJTTUFMTCIsImRhdGUiLCJyZW5kZXJGb290ZXIiLCJBbmNob3IiLCJkaXNwbGF5TmFtZSIsIkFuY2hvckNsYXNzZXMiLCJhbmNob3IiLCJhbmNob3JVbmRlcmxpbmVPbkhvdmVyIiwiam9pblN1cHBvcnRTZXJ2ZXIiLCJzdG9wUHJvcGFnYXRpb24iLCJwb3AiLCJCRFYyIiwiam9pbkJEMiIsInN1cHBvcnRMaW5rIiwib25DbGljayIsImRlZmF1bHRGb290ZXIiLCJvblNjcm9sbCIsIl8iLCJvbkNsb3NlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxNQUFOLENBQWE7QUFFeEIsYUFBV0MscUJBQVgsR0FBbUM7QUFBQyxXQUFPQyxnREFBUSxDQUFDQyxHQUFULENBQWEsVUFBYixFQUF5QixRQUF6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LENBQVosQ0FBVDtBQVNILEtBVkQ7QUFXSDs7QUE3TnVCIiwiZmlsZSI6Ii4vc3JjL3VpL21vZGFscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge0xvZ2dlciwgV2VicGFja01vZHVsZXMsIFV0aWxpdGllcywgUmVhY3QsIFNldHRpbmdzLCBTdHJpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kYWxzIHtcclxuXHJcbiAgICBzdGF0aWMgZ2V0IHNob3VsZFNob3dBZGRvbkVycm9ycygpIHtyZXR1cm4gU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhZGRvbkVycm9yc1wiKTt9XHJcblxyXG4gICAgc3RhdGljIGdldCBNb2RhbFN0YWNrKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicHVzaFwiLCBcInVwZGF0ZVwiLCBcInBvcFwiLCBcInBvcFdpdGhLZXlcIik7fVxyXG4gICAgc3RhdGljIGdldCBBbGVydE1vZGFsKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3RvdHlwZXMoXCJoYW5kbGVDYW5jZWxcIiwgXCJoYW5kbGVTdWJtaXRcIiwgXCJoYW5kbGVNaW5vckNvbmZpcm1cIik7fVxyXG4gICAgc3RhdGljIGdldCBUZXh0RWxlbWVudCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIlNpemVzXCIsIFwiV2VpZ2h0c1wiKTt9XHJcbiAgICBzdGF0aWMgZ2V0IENvbmZpcm1hdGlvbk1vZGFsKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLmRlZmF1bHRQcm9wcyAmJiBtLmtleSAmJiBtLmtleSgpID09IFwiY29uZmlybS1tb2RhbFwiKTt9XHJcblxyXG4gICAgc3RhdGljIGRlZmF1bHQodGl0bGUsIGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBiYWNrZHJvcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJiYWNrZHJvcFwiKSB8fCB7YmFja2Ryb3A6IFwiYmFja2Ryb3AtMXdybUtiXCJ9O1xyXG4gICAgICAgIGNvbnN0IGJhc2VNb2RhbENsYXNzZXMgPSBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLm1vZGFsICYmIG0uaW5uZXIgJiYgIW0uc2l6ZU1lZGl1bSkgfHwge21vZGFsOiBcIm1vZGFsLTM2ekZ0V1wiLCBpbm5lcjogXCJpbm5lci0yVkV6eTlcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInNpemVNZWRpdW1cIikgfHwge21vZGFsOiBcImJhY2tkcm9wLTF3cm1LYlwiLCBzaXplTWVkaXVtOiBcInNpemVNZWRpdW0tY3RuY0U1XCIsIGNvbnRlbnQ6IFwiY29udGVudC0yS29DT1pcIiwgaGVhZGVyOiBcImhlYWRlci0ybmhib3VcIiwgZm9vdGVyOiBcImZvb3Rlci0zMGV3TjhcIiwgY2xvc2U6IFwiY2xvc2UtaGh5aldKXCIsIGlubmVyOiBcImlubmVyLTJaNVFaWFwifTtcclxuICAgICAgICBjb25zdCBtb2RhbCA9IFV0aWxpdGllcy5wYXJzZUhUTUwoYDxkaXYgY2xhc3M9XCJiZC1tb2RhbC13cmFwcGVyIHRoZW1lLWRhcmtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCAke2JhY2tkcm9wLmJhY2tkcm9wfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsICR7YmFzZU1vZGFsQ2xhc3Nlcy5tb2RhbH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtaW5uZXIgJHtiYXNlTW9kYWxDbGFzc2VzLmlubmVyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGhlYWRlci0xUl9BakZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7dGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyLXdyYXAgZmFkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXIgJHttb2RhbENsYXNzZXMuZm9vdGVyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiZC1idXR0b25cIj4ke1N0cmluZ3MuTW9kYWxzLm9rYXl9PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PmApO1xyXG4gICAgICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoXCIuZm9vdGVyIGJ1dHRvblwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBtb2RhbC5hZGRDbGFzcyhcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5xdWVyeVNlbGVjdG9yKFwiLmJkLWJhY2tkcm9wXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjYXBwLW1vdW50XCIpLmFwcGVuZChtb2RhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFsZXJ0KHRpdGxlLCBjb250ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuTW9kYWxTdGFjayAmJiB0aGlzLkFsZXJ0TW9kYWwpIHJldHVybiB0aGlzLmRlZmF1bHQodGl0bGUsIGNvbnRlbnQpO1xyXG4gICAgICAgIHRoaXMuTW9kYWxTdGFjay5wdXNoKGZ1bmN0aW9uKHByb3BzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KHRoaXMuQWxlcnRNb2RhbCwgT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBib2R5OiBjb250ZW50LFxyXG4gICAgICAgICAgICB9LCBwcm9wcykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgYSBnZW5lcmljIGJ1dCB2ZXJ5IGN1c3RvbWl6YWJsZSBjb25maXJtYXRpb24gbW9kYWwgd2l0aCBvcHRpb25hbCBjb25maXJtIGFuZCBjYW5jZWwgY2FsbGJhY2tzLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIC0gdGl0bGUgb2YgdGhlIG1vZGFsXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8UmVhY3RFbGVtZW50fEFycmF5PHN0cmluZ3xSZWFjdEVsZW1lbnQ+KX0gY2hpbGRyZW4gLSBhIHNpbmdsZSBvciBtaXhlZCBhcnJheSBvZiByZWFjdCBlbGVtZW50cyBhbmQgc3RyaW5ncy4gRXZlcnl0aGluZyBpcyB3cmFwcGVkIGluIERpc2NvcmQncyBgVGV4dEVsZW1lbnRgIGNvbXBvbmVudCBzbyBzdHJpbmdzIHdpbGwgc2hvdyBhbmQgcmVuZGVyIHByb3Blcmx5LlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIG9wdGlvbnMgdG8gbW9kaWZ5IHRoZSBtb2RhbFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kYW5nZXI9ZmFsc2VdIC0gd2hldGhlciB0aGUgbWFpbiBidXR0b24gc2hvdWxkIGJlIHJlZCBvciBub3RcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jb25maXJtVGV4dD1Pa2F5XSAtIHRleHQgZm9yIHRoZSBjb25maXJtYXRpb24vc3VibWl0IGJ1dHRvblxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmNhbmNlbFRleHQ9Q2FuY2VsXSAtIHRleHQgZm9yIHRoZSBjYW5jZWwgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0ge2NhbGxhYmxlfSBbb3B0aW9ucy5vbkNvbmZpcm09Tk9PUF0gLSBjYWxsYmFjayB0byBvY2N1ciB3aGVuIGNsaWNraW5nIHRoZSBzdWJtaXQgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0ge2NhbGxhYmxlfSBbb3B0aW9ucy5vbkNhbmNlbD1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIGNhbmNlbCBidXR0b25cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHNob3dDb25maXJtYXRpb25Nb2RhbCh0aXRsZSwgY29udGVudCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgVGV4dEVsZW1lbnQgPSB0aGlzLlRleHRFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IENvbmZpcm1hdGlvbk1vZGFsID0gdGhpcy5Db25maXJtYXRpb25Nb2RhbDtcclxuICAgICAgICBjb25zdCBNb2RhbFN0YWNrID0gdGhpcy5Nb2RhbFN0YWNrO1xyXG4gICAgICAgIGlmICghdGhpcy5Nb2RhbFN0YWNrIHx8ICF0aGlzLkNvbmZpcm1hdGlvbk1vZGFsIHx8ICF0aGlzLlRleHRFbGVtZW50KSByZXR1cm4gdGhpcy5hbGVydCh0aXRsZSwgY29udGVudCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHtvbkNvbmZpcm0sIG9uQ2FuY2VsLCBjb25maXJtVGV4dCwgY2FuY2VsVGV4dCwgZGFuZ2VyID0gZmFsc2V9ID0gb3B0aW9ucztcclxuICAgICAgICBpZiAodHlwZW9mKGNvbnRlbnQpID09IFwic3RyaW5nXCIpIGNvbnRlbnQgPSBUZXh0RWxlbWVudC5kZWZhdWx0KHtjb2xvcjogVGV4dEVsZW1lbnQuQ29sb3JzLlBSSU1BUlksIGNoaWxkcmVuOiBbY29udGVudF19KTtcclxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnQpKSBjb250ZW50ID0gVGV4dEVsZW1lbnQuZGVmYXVsdCh7Y29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5QUklNQVJZLCBjaGlsZHJlbjogY29udGVudH0pO1xyXG4gICAgICAgIGNvbnRlbnQgPSBbY29udGVudF07XHJcblxyXG4gICAgICAgIGNvbnN0IGVtcHR5RnVuY3Rpb24gPSAoKSA9PiB7fTtcclxuICAgICAgICBNb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29uZmlybWF0aW9uTW9kYWwsIE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBjb250ZW50LFxyXG4gICAgICAgICAgICAgICAgcmVkOiBkYW5nZXIsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtVGV4dDogY29uZmlybVRleHQgPyBjb25maXJtVGV4dCA6IFN0cmluZ3MuTW9kYWxzLm9rYXksXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxUZXh0OiBjYW5jZWxUZXh0ID8gY2FuY2VsVGV4dCA6IFN0cmluZ3MuTW9kYWxzLmNhbmNlbCxcclxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogb25Db25maXJtID8gb25Db25maXJtIDogZW1wdHlGdW5jdGlvbixcclxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiBvbkNhbmNlbCA/IG9uQ2FuY2VsIDogZW1wdHlGdW5jdGlvblxyXG4gICAgICAgICAgICB9LCBwcm9wcykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzaG93QWRkb25FcnJvcnMoe3BsdWdpbnM6IHBsdWdpbkVycm9ycyA9IFtdLCB0aGVtZXM6IHRoZW1lRXJyb3JzID0gW119KSB7XHJcbiAgICAgICAgaWYgKCFwbHVnaW5FcnJvcnMgfHwgIXRoZW1lRXJyb3JzIHx8ICF0aGlzLnNob3VsZFNob3dBZGRvbkVycm9ycykgcmV0dXJuO1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzLmxlbmd0aCAmJiAhdGhlbWVFcnJvcnMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYmFja2Ryb3AgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmFja2Ryb3BcIikgfHwge2JhY2tkcm9wOiBcImJhY2tkcm9wLTF3cm1LYlwifTtcclxuICAgICAgICBjb25zdCBiYXNlTW9kYWxDbGFzc2VzID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5tb2RhbCAmJiBtLmlubmVyICYmICFtLnNpemVNZWRpdW0pIHx8IHttb2RhbDogXCJtb2RhbC0zNnpGdFdcIiwgaW5uZXI6IFwiaW5uZXItMlZFenk5XCJ9O1xyXG4gICAgICAgIGNvbnN0IG1vZGFsQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaXplTWVkaXVtXCIpIHx8IHttb2RhbDogXCJtb2RhbC0zdjh6aVVcIiwgc2l6ZU1lZGl1bTogXCJzaXplTWVkaXVtLWN0bmNFNVwiLCBjb250ZW50OiBcImNvbnRlbnQtMktvQ09aXCIsIGhlYWRlcjogXCJoZWFkZXItMm5oYm91XCIsIGZvb3RlcjogXCJmb290ZXItMzBld044XCIsIGNsb3NlOiBcImNsb3NlLWhoeWpXSlwiLCBpbm5lcjogXCJpbm5lci0yWjVRWlhcIn07XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCAke2JhY2tkcm9wLmJhY2tkcm9wfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgYmQtY29udGVudC1tb2RhbCAke2Jhc2VNb2RhbENsYXNzZXMubW9kYWx9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtaW5uZXIgJHtiYXNlTW9kYWxDbGFzc2VzLmlubmVyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgJHttb2RhbENsYXNzZXMuaGVhZGVyfVwiPjxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7U3RyaW5ncy5Nb2RhbHMuYWRkb25FcnJvcnN9PC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhciBUT1BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+JHtTdHJpbmdzLlBhbmVscy5wbHVnaW5zfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWl0ZW1cIj4ke1N0cmluZ3MuUGFuZWxzLnRoZW1lc308L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPiR7U3RyaW5ncy5Nb2RhbHMubmFtZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW1lc3NhZ2VcIj4ke1N0cmluZ3MuTW9kYWxzLm1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1lcnJvclwiPiR7U3RyaW5ncy5Nb2RhbHMuZXJyb3J9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXItd3JhcCBmYWRlICR7bW9kYWxDbGFzc2VzLmNvbnRlbnR9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlciAke21vZGFsQ2xhc3Nlcy5mb290ZXJ9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmQtYnV0dG9uXCI+JHtTdHJpbmdzLk1vZGFscy5va2F5fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG5cclxuICAgICAgICBjb25zdCBnZW5lcmF0ZVRhYiA9IGZ1bmN0aW9uKGVycm9ycykge1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+YCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ycykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPiR7ZXJyLm5hbWUgPyBlcnIubmFtZSA6IGVyci5maWxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1tZXNzYWdlXCI+JHtlcnIubWVzc2FnZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tZXJyb3JcIj48YSBjbGFzcz1cImVycm9yLWxpbmtcIiBocmVmPVwiXCI+JHtlcnIuZXJyb3IgPyBlcnIuZXJyb3IubWVzc2FnZSA6IFwiXCJ9PC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuZmluZChcImFcIikub24oXCJjbGlja1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExvZ2dlci5zdGFja3RyYWNlKFwiQWRkb25FcnJvclwiLCBgRXJyb3IgZGV0YWlscyBmb3IgJHtlcnIubmFtZSA/IGVyci5uYW1lIDogZXJyLmZpbGV9LmAsIGVyci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0YWJzID0gW2dlbmVyYXRlVGFiKHBsdWdpbkVycm9ycyksIGdlbmVyYXRlVGFiKHRoZW1lRXJyb3JzKV07XHJcblxyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpLm9uKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICAkKGUudGFyZ2V0KS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnNjcm9sbGVyXCIpLmVtcHR5KCkuYXBwZW5kKHRhYnNbJChlLnRhcmdldCkuaW5kZXgoKV0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBtb2RhbC5maW5kKFwiLmZvb3RlciBidXR0b25cIikub24oXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIuYmQtYmFja2Ryb3BcIikub24oXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IG1vZGFsLnJlbW92ZSgpOyB9LCAzMDApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsLmFwcGVuZFRvKFwiI2FwcC1tb3VudFwiKTtcclxuICAgICAgICBpZiAocGx1Z2luRXJyb3JzLmxlbmd0aCkgbW9kYWwuZmluZChcIi50YWItYmFyLWl0ZW1cIilbMF0uY2xpY2soKTtcclxuICAgICAgICBlbHNlIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpWzFdLmNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0NoYW5nZWxvZ01vZGFsKG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IE1vZGFsU3RhY2sgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicHVzaFwiLCBcInVwZGF0ZVwiLCBcInBvcFwiLCBcInBvcFdpdGhLZXlcIik7XHJcbiAgICAgICAgY29uc3QgQ2hhbmdlbG9nQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmaXhlZFwiLCBcImltcHJvdmVkXCIpO1xyXG4gICAgICAgIGNvbnN0IFRleHRFbGVtZW50ID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIlNpemVzXCIsIFwiV2VpZ2h0c1wiKTtcclxuICAgICAgICBjb25zdCBGbGV4Q2hpbGQgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiQ2hpbGRcIik7XHJcbiAgICAgICAgY29uc3QgVGl0bGVzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIlRhZ3NcIiwgXCJkZWZhdWx0XCIpO1xyXG4gICAgICAgIGNvbnN0IENoYW5nZWxvZyA9IFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uZGVmYXVsdFByb3BzICYmIG0uZGVmYXVsdFByb3BzLnNlbGVjdGFibGUgPT0gZmFsc2UpO1xyXG4gICAgICAgIGNvbnN0IE1hcmtkb3duUGFyc2VyID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImRlZmF1bHRSdWxlc1wiLCBcInBhcnNlXCIpO1xyXG4gICAgICAgIGlmICghQ2hhbmdlbG9nIHx8ICFNb2RhbFN0YWNrIHx8ICFDaGFuZ2Vsb2dDbGFzc2VzIHx8ICFUZXh0RWxlbWVudCB8fCAhRmxleENoaWxkIHx8ICFUaXRsZXMgfHwgIU1hcmtkb3duUGFyc2VyKSByZXR1cm47XHJcbiAgICBcclxuICAgICAgICBjb25zdCB7aW1hZ2UgPSBcImh0dHBzOi8vcmVwb3NpdG9yeS1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzEwNTQ3MzUzNy85NTdiNTQ4MC03YzI2LTExZTktODQwMS01MGZhODIwY2JhZTVcIiwgZGVzY3JpcHRpb24gPSBcIlwiLCBjaGFuZ2VzID0gW10sIHRpdGxlID0gXCJCYW5kYWdlZEJEXCIsIHN1YnRpdGxlID0gYHYke0NvbmZpZy5iYmRWZXJzaW9ufWAsIGZvb3Rlcn0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGNlID0gUmVhY3QuY3JlYXRlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBjaGFuZ2Vsb2dJdGVtcyA9IFtjZShcImltZ1wiLCB7c3JjOiBpbWFnZX0pXTtcclxuICAgICAgICBpZiAoZGVzY3JpcHRpb24pIGNoYW5nZWxvZ0l0ZW1zLnB1c2goY2UoXCJwXCIsIG51bGwsIE1hcmtkb3duUGFyc2VyLnBhcnNlKGRlc2NyaXB0aW9uKSkpO1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgY2hhbmdlcy5sZW5ndGg7IGMrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IGNoYW5nZXNbY107XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBDaGFuZ2Vsb2dDbGFzc2VzW2VudHJ5LnR5cGVdID8gQ2hhbmdlbG9nQ2xhc3Nlc1tlbnRyeS50eXBlXSA6IENoYW5nZWxvZ0NsYXNzZXMuYWRkZWQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IGMgPT0gMCA/IENoYW5nZWxvZ0NsYXNzZXMubWFyZ2luVG9wIDogXCJcIjtcclxuICAgICAgICAgICAgY2hhbmdlbG9nSXRlbXMucHVzaChjZShcImgxXCIsIHtjbGFzc05hbWU6IGAke3R5cGV9ICR7bWFyZ2lufWAsfSwgZW50cnkudGl0bGUpKTtcclxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IGNlKFwidWxcIiwgbnVsbCwgZW50cnkuaXRlbXMubWFwKGkgPT4gY2UoXCJsaVwiLCBudWxsLCBNYXJrZG93blBhcnNlci5wYXJzZShpKSkpKTtcclxuICAgICAgICAgICAgY2hhbmdlbG9nSXRlbXMucHVzaChsaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVuZGVySGVhZGVyID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjZShGbGV4Q2hpbGQuQ2hpbGQsIHtncm93OiAxLCBzaHJpbms6IDF9LFxyXG4gICAgICAgICAgICAgICAgY2UoVGl0bGVzLmRlZmF1bHQsIHt0YWc6IFRpdGxlcy5UYWdzLkg0fSwgdGl0bGUpLFxyXG4gICAgICAgICAgICAgICAgY2UoVGV4dEVsZW1lbnQse3NpemU6IFRleHRFbGVtZW50LlNpemVzLlNNQUxMLCBjb2xvcjogVGV4dEVsZW1lbnQuQ29sb3JzLlBSSU1BUlksIGNsYXNzTmFtZTogQ2hhbmdlbG9nQ2xhc3Nlcy5kYXRlfSwgc3VidGl0bGUpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgIFxyXG4gICAgICAgIGNvbnN0IHJlbmRlckZvb3RlciA9ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgQW5jaG9yID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIkFuY2hvclwiKTtcclxuICAgICAgICAgICAgY29uc3QgQW5jaG9yQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJhbmNob3JVbmRlcmxpbmVPbkhvdmVyXCIpIHx8IHthbmNob3I6IFwiYW5jaG9yLTNaLThCYlwiLCBhbmNob3JVbmRlcmxpbmVPbkhvdmVyOiBcImFuY2hvclVuZGVybGluZU9uSG92ZXItMkVTSFFCXCJ9O1xyXG4gICAgICAgICAgICBjb25zdCBqb2luU3VwcG9ydFNlcnZlciA9IChjbGljaykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xpY2sucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGNsaWNrLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgTW9kYWxTdGFjay5wb3AoKTtcclxuICAgICAgICAgICAgICAgIEJEVjIuam9pbkJEMigpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBzdXBwb3J0TGluayA9IEFuY2hvciA/IGNlKEFuY2hvciwge29uQ2xpY2s6IGpvaW5TdXBwb3J0U2VydmVyfSwgXCJKb2luIG91ciBEaXNjb3JkIFNlcnZlci5cIikgOiBjZShcImFcIiwge2NsYXNzTmFtZTogYCR7QW5jaG9yQ2xhc3Nlcy5hbmNob3J9ICR7QW5jaG9yQ2xhc3Nlcy5hbmNob3JVbmRlcmxpbmVPbkhvdmVyfWAsIG9uQ2xpY2s6IGpvaW5TdXBwb3J0U2VydmVyfSwgXCJKb2luIG91ciBEaXNjb3JkIFNlcnZlci5cIik7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRGb290ZXIgPSBjZShUZXh0RWxlbWVudCx7c2l6ZTogVGV4dEVsZW1lbnQuU2l6ZXMuU01BTEwsIGNvbG9yOiBUZXh0RWxlbWVudC5Db2xvcnMuUFJJTUFSWX0sIFwiTmVlZCBzdXBwb3J0PyBcIiwgc3VwcG9ydExpbmspO1xyXG4gICAgICAgICAgICByZXR1cm4gY2UoRmxleENoaWxkLkNoaWxkLCB7Z3JvdzogMSwgc2hyaW5rOiAxfSwgZm9vdGVyID8gZm9vdGVyIDogZGVmYXVsdEZvb3Rlcik7XHJcbiAgICAgICAgfTtcclxuICAgIFxyXG4gICAgICAgIE1vZGFsU3RhY2sucHVzaChmdW5jdGlvbihwcm9wcykge1xyXG4gICAgICAgICAgICByZXR1cm4gY2UoQ2hhbmdlbG9nLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogQ2hhbmdlbG9nQ2xhc3Nlcy5jb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgb25TY3JvbGw6IF8gPT4gXyxcclxuICAgICAgICAgICAgICAgIG9uQ2xvc2U6IF8gPT4gXyxcclxuICAgICAgICAgICAgICAgIHJlbmRlckhlYWRlcjogcmVuZGVySGVhZGVyLFxyXG4gICAgICAgICAgICAgICAgcmVuZGVyRm9vdGVyOiByZW5kZXJGb290ZXIsXHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY2hhbmdlbG9nSXRlbXNcclxuICAgICAgICAgICAgfSwgcHJvcHMpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/modals.js\n");
/***/ }),
/***/ "./src/ui/publicservers/card.jsx":
/*!***************************************!*\
!*** ./src/ui/publicservers/card.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ServerCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ServerCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n if (!this.props.server.iconUrl) this.props.server.iconUrl = this.props.defaultAvatar();\n this.state = {\n imageError: false,\n joined: this.props.joined\n };\n this.join = this.join.bind(this);\n this.handleError = this.handleError.bind(this);\n }\n\n render() {\n const {\n server\n } = this.props;\n const buttonText = typeof this.state.joined == \"string\" ? `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joining}...` : this.state.joined ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.joined : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.join;\n const buttonClass = `bd-button${this.state.joined == true ? \" bd-button-success\" : \"\"}`;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-server-card${server.pinned ? \" bd-server-card-pinned\" : \"\"}`\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n className: \"bd-server-image\",\n src: server.iconUrl,\n onError: this.handleError\n }), \",\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-content\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-name\"\n }, server.name), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"bd-server-member-count\"\n }, server.members, \" Members\")), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller-wrap bd-server-description-container\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-scroller bd-server-description\"\n }, server.description)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-server-tags\"\n }, server.categories.join(\", \")), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: buttonClass,\n onClick: this.join\n }, buttonText))));\n }\n\n handleError() {\n this.props.server.iconUrl = this.props.defaultAvatar();\n this.setState({\n imageError: true\n });\n }\n\n async join() {\n if (this.state.joined) return;\n this.setState({\n joined: \"joining\"\n });\n const didJoin = await this.props.join(this.props.server.identifier, this.props.server.nativejoin);\n this.setState({\n joined: didJoin\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvY2FyZC5qc3g/NzYwMiJdLCJuYW1lcyI6WyJTZXJ2ZXJDYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2VydmVyIiwiaWNvblVybCIsImRlZmF1bHRBdmF0YXIiLCJzdGF0ZSIsImltYWdlRXJyb3IiLCJqb2luZWQiLCJqb2luIiwiYmluZCIsImhhbmRsZUVycm9yIiwicmVuZGVyIiwiYnV0dG9uVGV4dCIsIlN0cmluZ3MiLCJQdWJsaWNTZXJ2ZXJzIiwiam9pbmluZyIsImJ1dHRvbkNsYXNzIiwicGlubmVkIiwibmFtZSIsIm1lbWJlcnMiLCJkZXNjcmlwdGlvbiIsImNhdGVnb3JpZXMiLCJzZXRTdGF0ZSIsImRpZEpvaW4iLCJpZGVudGlmaWVyIiwibmF0aXZlam9pbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxVQUFOLFNBQXlCQyw2Q0FBSyxDQUFDQyxTQUEvQixDQUF5QztBQUNwREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsUUFBSSxDQUFDLEtBQUtBLEtBQUwsQ0FBV0MsTUFBWCxDQUFrQkMsT0FBdkIsRUFBZ0MsS0FBS0YsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUFsQixHQUE0QixLQUFLRixLQUFMLENBQVdHLGFBQVgsRUFBNUI7QUFDaEMsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGdCQUFVLEVBQUUsS0FESDtBQUVUQyxZQUFNLEVBQUUsS0FBS04sS0FBTCxDQUFXTTtBQUZWLEtBQWI7QUFJQSxTQUFLQyxJQUFMLEdBQVksS0FBS0EsSUFBTCxDQUFVQyxJQUFWLENBQWUsSUFBZixDQUFaO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixLQUFLQSxXQUFMLENBQWlCRCxJQUFqQixDQUFzQixJQUF0QixDQUFuQjtBQUNIOztBQUVERSxRQUFNLEdBQUc7QUFDTCxVQUFNO0FBQUNUO0FBQUQsUUFBVyxLQUFLRCxLQUF0QjtBQUNBLFVBQU1XLFVBQVUsR0FBRyxPQUFPLEtBQUtQLEtBQUwsQ0FBV0UsTUFBbEIsSUFBNkIsUUFBN0IsR0FBeUMsR0FBRU0sK0NBQU8sQ0FBQ0MsYUFBUixDQUFzQkMsT0FBUSxLQUF6RSxHQUFnRixLQUFLVixLQUFMLENBQVdFLE1BQVgsR0FBb0JNLCtDQUFPLENBQUNDLGFBQVIsQ0FBc0JQLE1BQTFDLEdBQW1ETSwrQ0FBTyxDQUFDQyxhQUFSLENBQXNCTixJQUE1SztBQUNBLFVBQU1RLFdBQVcsR0FBSSxZQUFXLEtBQUtYLEtBQUwsQ0FBV0UsTUFBWCxJQUFxQixJQUFyQixHQUE0QixvQkFBNUIsR0FBbUQsRUFBRyxFQUF0RjtBQUNBLFdBQU87QUFBSyxlQUFTLEVBQUcsaUJBQWdCTCxNQUFNLENBQUNlLE1BQVAsR0FBZ0Isd0JBQWhCLEdBQTJDLEVBQUc7QUFBL0UsT0FDQztBQUFLLGVBQVMsRUFBQyxpQkFBZjtBQUFpQyxTQUFHLEVBQUVmLE1BQU0sQ0FBQ0MsT0FBN0M7QUFBc0QsYUFBTyxFQUFFLEtBQUtPO0FBQXBFLE1BREQsT0FFQztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUNJO0FBQUksZUFBUyxFQUFDO0FBQWQsT0FBZ0NSLE1BQU0sQ0FBQ2dCLElBQXZDLENBREosRUFFSTtBQUFJLGVBQVMsRUFBQztBQUFkLE9BQXdDaEIsTUFBTSxDQUFDaUIsT0FBL0MsYUFGSixDQURKLEVBS0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FBb0RqQixNQUFNLENBQUNrQixXQUEzRCxDQURKLENBTEosRUFRSTtBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFpQ2xCLE1BQU0sQ0FBQ21CLFVBQVAsQ0FBa0JiLElBQWxCLENBQXVCLElBQXZCLENBQWpDLENBREosRUFFSTtBQUFRLFVBQUksRUFBQyxRQUFiO0FBQXNCLGVBQVMsRUFBRVEsV0FBakM7QUFBOEMsYUFBTyxFQUFFLEtBQUtSO0FBQTVELE9BQW1FSSxVQUFuRSxDQUZKLENBUkosQ0FGRCxDQUFQO0FBZ0JIOztBQUVERixhQUFXLEdBQUc7QUFDVixTQUFLVCxLQUFMLENBQVdDLE1BQVgsQ0FBa0JDLE9BQWxCLEdBQTRCLEtBQUtGLEtBQUwsQ0FBV0csYUFBWCxFQUE1QjtBQUNBLFNBQUtrQixRQUFMLENBQWM7QUFBQ2hCLGdCQUFVLEVBQUU7QUFBYixLQUFkO0FBQ0g7O0FBRUQsUUFBTUUsSUFBTixHQUFhO0FBQ1QsUUFBSSxLQUFLSCxLQUFMLENBQVdFLE1BQWYsRUFBdUI7QUFDdkIsU0FBS2UsUUFBTCxDQUFjO0FBQUNmLFlBQU0sRUFBRTtBQUFULEtBQWQ7QUFDQSxVQUFNZ0IsT0FBTyxHQUFHLE1BQU0sS0FBS3RCLEtBQUwsQ0FBV08sSUFBWCxDQUFnQixLQUFLUCxLQUFMLENBQVdDLE1BQVgsQ0FBa0JzQixVQUFsQyxFQUE4QyxLQUFLdkIsS0FBTCxDQUFXQyxNQUFYLENBQWtCdUIsVUFBaEUsQ0FBdEI7QUFDQSxTQUFLSCxRQUFMLENBQWM7QUFBQ2YsWUFBTSxFQUFFZ0I7QUFBVCxLQUFkO0FBQ0g7O0FBNUNtRCIsImZpbGUiOiIuL3NyYy91aS9wdWJsaWNzZXJ2ZXJzL2NhcmQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU3RyaW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlckNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsKSB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5kZWZhdWx0QXZhdGFyKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgaW1hZ2VFcnJvcjogZmFsc2UsXHJcbiAgICAgICAgICAgIGpvaW5lZDogdGhpcy5wcm9wcy5qb2luZWRcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuam9pbiA9IHRoaXMuam9pbi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IgPSB0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtzZXJ2ZXJ9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBidXR0b25UZXh0ID0gdHlwZW9mKHRoaXMuc3RhdGUuam9pbmVkKSA9PSBcInN0cmluZ1wiID8gYCR7U3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmpvaW5pbmd9Li4uYCA6IHRoaXMuc3RhdGUuam9pbmVkID8gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmpvaW5lZCA6IFN0cmluZ3MuUHVibGljU2VydmVycy5qb2luO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbkNsYXNzID0gYGJkLWJ1dHRvbiR7dGhpcy5zdGF0ZS5qb2luZWQgPT0gdHJ1ZSA/IFwiIGJkLWJ1dHRvbi1zdWNjZXNzXCIgOiBcIlwifWA7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXtgYmQtc2VydmVyLWNhcmQke3NlcnZlci5waW5uZWQgPyBcIiBiZC1zZXJ2ZXItY2FyZC1waW5uZWRcIiA6IFwiXCJ9YH0+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImJkLXNlcnZlci1pbWFnZVwiIHNyYz17c2VydmVyLmljb25Vcmx9IG9uRXJyb3I9e3RoaXMuaGFuZGxlRXJyb3J9IC8+LFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3NOYW1lPVwiYmQtc2VydmVyLW5hbWVcIj57c2VydmVyLm5hbWV9PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzTmFtZT1cImJkLXNlcnZlci1tZW1iZXItY291bnRcIj57c2VydmVyLm1lbWJlcnN9IE1lbWJlcnM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNjcm9sbGVyLXdyYXAgYmQtc2VydmVyLWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNjcm9sbGVyIGJkLXNlcnZlci1kZXNjcmlwdGlvblwiPntzZXJ2ZXIuZGVzY3JpcHRpb259PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXJ2ZXItZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VydmVyLXRhZ3NcIj57c2VydmVyLmNhdGVnb3JpZXMuam9pbihcIiwgXCIpfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9e2J1dHRvbkNsYXNzfSBvbkNsaWNrPXt0aGlzLmpvaW59PntidXR0b25UZXh0fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFcnJvcigpIHtcclxuICAgICAgICB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5kZWZhdWx0QXZhdGFyKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aW1hZ2VFcnJvcjogdHJ1ZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGpvaW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuam9pbmVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7am9pbmVkOiBcImpvaW5pbmdcIn0pO1xyXG4gICAgICAgIGNvbnN0IGRpZEpvaW4gPSBhd2FpdCB0aGlzLnByb3BzLmpvaW4odGhpcy5wcm9wcy5zZXJ2ZXIuaWRlbnRpZmllciwgdGhpcy5wcm9wcy5zZXJ2ZXIubmF0aXZlam9pbik7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7am9pbmVkOiBkaWRKb2lufSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/card.jsx\n");
/***/ }),
/***/ "./src/ui/publicservers/menu.js":
/*!**************************************!*\
!*** ./src/ui/publicservers/menu.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.jsx\");\n/* harmony import */ var _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../structs/psconnection */ \"./src/structs/psconnection.js\");\n/* harmony import */ var _settings_components_search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../settings/components/search */ \"./src/ui/settings/components/search.jsx\");\n\n\n\n\n\nconst SettingsView = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"SettingsView\");\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n constructor(props) {\n super(props);\n this.state = {\n category: \"All\",\n query: \"\",\n loading: true,\n user: null,\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n };\n this.changeCategory = this.changeCategory.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.connect = this.connect.bind(this);\n this.loadNextPage = this.loadNextPage.bind(this);\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n async checkConnection() {\n const userData = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].checkConnection();\n\n if (!userData) {\n return this.setState({\n loading: true,\n user: null\n });\n }\n\n this.setState({\n user: userData\n });\n this.search();\n }\n\n async connect() {\n await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].connect();\n this.checkConnection();\n }\n\n searchKeyDown(e) {\n if (this.state.loading || e.which !== 13) return;\n this.search(e.target.value);\n }\n\n async search(term = \"\", from = 0) {\n this.setState({\n query: term,\n loading: true\n });\n const results = await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].search({\n term,\n category: this.state.category == \"All\" ? \"\" : this.state.category,\n from\n });\n\n if (!results) {\n return this.setState({\n results: {\n servers: [],\n size: 0,\n from: 0,\n total: 0,\n next: null\n }\n });\n }\n\n this.setState({\n loading: false,\n results\n });\n }\n\n async changeCategory(id) {\n if (this.state.loading) return;\n await new Promise(resolve => this.setState({\n category: id\n }, resolve));\n this.search();\n }\n\n loadNextPage() {\n if (this.state.loading) return;\n this.search(this.state.query, this.state.results.next);\n }\n\n async join(id, native = false) {\n return await _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].join(id, native);\n }\n\n get searchBox() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_components_search__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n onKeyDown: this.searchKeyDown,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search}...`\n });\n }\n\n get title() {\n if (!this.state.user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.notConnected;\n if (this.state.loading) return `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading}...`;\n const start = this.state.results.from + 1;\n const total = this.state.results.total;\n const end = this.state.results.next ? this.state.results.next : total;\n let title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.results.format({\n start,\n end,\n total,\n category: this.state.category\n });\n if (this.state.query) title += \" \" + modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.query.format({\n query: this.state.query\n });\n return title;\n }\n\n get content() {\n const connectButton = this.state.user ? null : {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connect,\n onClick: this.connect\n };\n const pinned = this.state.category == \"All\" || !this.state.user ? this.bdServer : null;\n const servers = this.state.results.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: server.identifier,\n server: server,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n });\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title,\n button: connectButton\n }), pinned, servers, this.state.results.next ? this.nextButton : null, this.state.results.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.title\n })];\n }\n\n get nextButton() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-next\",\n onClick: this.loadNextPage\n }, this.state.loading ? modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loading : modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.loadMore);\n }\n\n get connection() {\n const {\n user\n } = this.state;\n if (!user) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n });\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-connection\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footnote\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.connection.format(user)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"bd-button bd-button-reconnect\",\n onClick: this.connect\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.reconnect));\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for plugins, themes, support, etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n server: server,\n pinned: true,\n joined: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].hasJoined(server.identifier),\n defaultAvatar: _structs_psconnection__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getDefaultAvatar\n });\n }\n\n render() {\n const categories = this.categoryButtons.map(name => ({\n section: name,\n label: name,\n element: () => this.content\n }));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(SettingsView, {\n onClose: this.props.close,\n onSetSection: this.changeCategory,\n section: this.state.category,\n sections: [{\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.search\n }, {\n section: \"CUSTOM\",\n element: () => this.searchBox\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].PublicServers.categories\n }, ...categories, {\n section: \"DIVIDER\"\n }, {\n section: \"HEADER\",\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"DiscordServers.com\")\n }, {\n section: \"DIVIDER\"\n }, {\n section: \"CUSTOM\",\n element: () => this.connection\n }],\n theme: \"dark\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcz85YWNkIl0sIm5hbWVzIjpbIlNldHRpbmdzVmlldyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlEaXNwbGF5TmFtZSIsIlB1YmxpY1NlcnZlcnMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNhdGVnb3J5QnV0dG9ucyIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImNhdGVnb3J5IiwicXVlcnkiLCJsb2FkaW5nIiwidXNlciIsInJlc3VsdHMiLCJzZXJ2ZXJzIiwic2l6ZSIsImZyb20iLCJ0b3RhbCIsIm5leHQiLCJjaGFuZ2VDYXRlZ29yeSIsImJpbmQiLCJzZWFyY2hLZXlEb3duIiwiY29ubmVjdCIsImxvYWROZXh0UGFnZSIsImNvbXBvbmVudERpZE1vdW50IiwiY2hlY2tDb25uZWN0aW9uIiwidXNlckRhdGEiLCJDb25uZWN0aW9uIiwic2V0U3RhdGUiLCJzZWFyY2giLCJlIiwid2hpY2giLCJ0YXJnZXQiLCJ2YWx1ZSIsInRlcm0iLCJpZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiam9pbiIsIm5hdGl2ZSIsInNlYXJjaEJveCIsIlN0cmluZ3MiLCJ0aXRsZSIsIm5vdENvbm5lY3RlZCIsInN0YXJ0IiwiZW5kIiwiZm9ybWF0IiwiY29udGVudCIsImNvbm5lY3RCdXR0b24iLCJvbkNsaWNrIiwicGlubmVkIiwiYmRTZXJ2ZXIiLCJtYXAiLCJzZXJ2ZXIiLCJjcmVhdGVFbGVtZW50IiwiU2VydmVyQ2FyZCIsImtleSIsImlkZW50aWZpZXIiLCJqb2luZWQiLCJoYXNKb2luZWQiLCJkZWZhdWx0QXZhdGFyIiwiZ2V0RGVmYXVsdEF2YXRhciIsIlNldHRpbmdzVGl0bGUiLCJ0ZXh0IiwiYnV0dG9uIiwibmV4dEJ1dHRvbiIsImxlbmd0aCIsInR5cGUiLCJjbGFzc05hbWUiLCJsb2FkTW9yZSIsImNvbm5lY3Rpb24iLCJyZWNvbm5lY3QiLCJuYW1lIiwib25saW5lIiwibWVtYmVycyIsImNhdGVnb3JpZXMiLCJkZXNjcmlwdGlvbiIsImljb25VcmwiLCJuYXRpdmVqb2luIiwiaW52aXRlX2NvZGUiLCJyZW5kZXIiLCJzZWN0aW9uIiwibGFiZWwiLCJlbGVtZW50Iiwib25DbG9zZSIsImNsb3NlIiwib25TZXRTZWN0aW9uIiwic2VjdGlvbnMiLCJocmVmIiwidGhlbWUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFlBQVksR0FBR0Msc0RBQWMsQ0FBQ0MsZ0JBQWYsQ0FBZ0MsY0FBaEMsQ0FBckI7QUFFZSxNQUFNQyxhQUFOLFNBQTRCQyw2Q0FBSyxDQUFDQyxTQUFsQyxDQUE0QztBQUV2RCxNQUFJQyxlQUFKLEdBQXNCO0FBQ2xCLFdBQU8sQ0FBQyxLQUFELEVBQVEsV0FBUixFQUFxQixXQUFyQixFQUFrQyxnQkFBbEMsRUFBb0QsWUFBcEQsRUFBa0UsV0FBbEUsRUFBK0UsZ0JBQS9FLEVBQWlHLGVBQWpHLEVBQWtILGtCQUFsSCxFQUFzSSxPQUF0SSxFQUErSSxXQUEvSSxFQUE0SixVQUE1SixFQUF3SyxhQUF4SyxFQUF1TCxPQUF2TCxDQUFQO0FBQ0g7O0FBRURDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxjQUFRLEVBQUUsS0FERDtBQUVUQyxXQUFLLEVBQUUsRUFGRTtBQUdUQyxhQUFPLEVBQUUsSUFIQTtBQUlUQyxVQUFJLEVBQUUsSUFKRztBQUtUQyxhQUFPLEVBQUU7QUFDTEMsZUFBTyxFQUFFLEVBREo7QUFFTEMsWUFBSSxFQUFFLENBRkQ7QUFHTEMsWUFBSSxFQUFFLENBSEQ7QUFJTEMsYUFBSyxFQUFFLENBSkY7QUFLTEMsWUFBSSxFQUFFO0FBTEQ7QUFMQSxLQUFiO0FBY0EsU0FBS0MsY0FBTCxHQUFzQixLQUFLQSxjQUFMLENBQW9CQyxJQUFwQixDQUF5QixJQUF6QixDQUF0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QUFFLEtBQUt6RSxLQUFMLENBQVdDLFFBSGlCO0FBSXJDOEUsY0FBUSxFQUFFLENBQ047QUFBQ04sZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRXpDLCtDQUFPLENBQUN2QyxhQUFSLENBQXNCMkI7QUFBakQsT0FETSxFQUVOO0FBQUNvRCxlQUFPLEVBQUUsUUFBVjtBQUFvQkUsZUFBTyxFQUFFLE1BQU0sS0FBSzNDO0FBQXhDLE9BRk0sRUFHTjtBQUFDeUMsZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRXpDLCtDQUFPLENBQUN2QyxhQUFSLENBQXNCeUU7QUFBakQsT0FITSxFQUlOLEdBQUdBLFVBSkcsRUFLTjtBQUFDTSxlQUFPLEVBQUU7QUFBVixPQUxNLEVBTU47QUFBQ0EsZUFBTyxFQUFFLFFBQVY7QUFBb0JDLGFBQUssRUFBRS9FLDZDQUFLLENBQUNtRCxhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNrQyxjQUFJLEVBQUUsNEJBQVA7QUFBcUN4RCxnQkFBTSxFQUFFO0FBQTdDLFNBQXpCLEVBQWlGLG9CQUFqRjtBQUEzQixPQU5NLEVBT047QUFBQ2lELGVBQU8sRUFBRTtBQUFWLE9BUE0sRUFRTjtBQUFDQSxlQUFPLEVBQUUsUUFBVjtBQUFvQkUsZUFBTyxFQUFFLE1BQU0sS0FBS2I7QUFBeEMsT0FSTSxDQUoyQjtBQWNyQ21CLFdBQUssRUFBRTtBQWQ4QixLQUFsQyxDQUFQO0FBZ0JIOztBQWpLc0QiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9tZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgV2VicGFja01vZHVsZXMsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuLi9zZXR0aW5ncy90aXRsZVwiO1xyXG5pbXBvcnQgU2VydmVyQ2FyZCBmcm9tIFwiLi9jYXJkXCI7XHJcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gXCIuLi8uLi9zdHJ1Y3RzL3BzY29ubmVjdGlvblwiO1xyXG5pbXBvcnQgU2VhcmNoIGZyb20gXCIuLi9zZXR0aW5ncy9jb21wb25lbnRzL3NlYXJjaFwiO1xyXG5cclxuY29uc3QgU2V0dGluZ3NWaWV3ID0gV2VicGFja01vZHVsZXMuZ2V0QnlEaXNwbGF5TmFtZShcIlNldHRpbmdzVmlld1wiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGdldCBjYXRlZ29yeUJ1dHRvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcIkFsbFwiLCBcIkZQUyBHYW1lc1wiLCBcIk1NTyBHYW1lc1wiLCBcIlN0cmF0ZWd5IEdhbWVzXCIsIFwiTU9CQSBHYW1lc1wiLCBcIlJQRyBHYW1lc1wiLCBcIlRhYmxldG9wIEdhbWVzXCIsIFwiU2FuZGJveCBHYW1lc1wiLCBcIlNpbXVsYXRpb24gR2FtZXNcIiwgXCJNdXNpY1wiLCBcIkNvbW11bml0eVwiLCBcIkxhbmd1YWdlXCIsIFwiUHJvZ3JhbW1pbmdcIiwgXCJPdGhlclwiXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjYXRlZ29yeTogXCJBbGxcIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIHVzZXI6IG51bGwsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IHtcclxuICAgICAgICAgICAgICAgIHNlcnZlcnM6IFtdLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogMCxcclxuICAgICAgICAgICAgICAgIGZyb206IDAsXHJcbiAgICAgICAgICAgICAgICB0b3RhbDogMCxcclxuICAgICAgICAgICAgICAgIG5leHQ6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2F0ZWdvcnkgPSB0aGlzLmNoYW5nZUNhdGVnb3J5LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hLZXlEb3duID0gdGhpcy5zZWFyY2hLZXlEb3duLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ID0gdGhpcy5jb25uZWN0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5sb2FkTmV4dFBhZ2UgPSB0aGlzLmxvYWROZXh0UGFnZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hlY2tDb25uZWN0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IHVzZXJEYXRhID0gYXdhaXQgQ29ubmVjdGlvbi5jaGVja0Nvbm5lY3Rpb24oKTtcclxuICAgICAgICBpZiAoIXVzZXJEYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldFN0YXRlKHtsb2FkaW5nOiB0cnVlLCB1c2VyOiBudWxsfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3VzZXI6IHVzZXJEYXRhfSk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCkge1xyXG4gICAgICAgIGF3YWl0IENvbm5lY3Rpb24uY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoS2V5RG93bihlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZyB8fCBlLndoaWNoICE9PSAxMykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKGUudGFyZ2V0LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzZWFyY2godGVybSA9IFwiXCIsIGZyb20gPSAwKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cXVlcnk6IHRlcm0sIGxvYWRpbmc6IHRydWV9KTtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgQ29ubmVjdGlvbi5zZWFyY2goe3Rlcm0sIGNhdGVnb3J5OiB0aGlzLnN0YXRlLmNhdGVnb3J5ID09IFwiQWxsXCIgPyBcIlwiIDogdGhpcy5zdGF0ZS5jYXRlZ29yeSwgZnJvbX0pO1xyXG4gICAgICAgIGlmICghcmVzdWx0cykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRTdGF0ZSh7cmVzdWx0czoge1xyXG4gICAgICAgICAgICAgICAgc2VydmVyczogW10sXHJcbiAgICAgICAgICAgICAgICBzaXplOiAwLFxyXG4gICAgICAgICAgICAgICAgZnJvbTogMCxcclxuICAgICAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICAgICAgbmV4dDogbnVsbFxyXG4gICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2xvYWRpbmc6IGZhbHNlLCByZXN1bHRzfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hhbmdlQ2F0ZWdvcnkoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSByZXR1cm47XHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0aGlzLnNldFN0YXRlKHtjYXRlZ29yeTogaWR9LCByZXNvbHZlKSk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV4dFBhZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoKHRoaXMuc3RhdGUucXVlcnksIHRoaXMuc3RhdGUucmVzdWx0cy5uZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBqb2luKGlkLCBuYXRpdmUgPSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBDb25uZWN0aW9uLmpvaW4oaWQsIG5hdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlYXJjaEJveCgpIHtcclxuICAgICAgICByZXR1cm4gPFNlYXJjaCBvbktleURvd249e3RoaXMuc2VhcmNoS2V5RG93bn0gcGxhY2Vob2xkZXI9e2Ake1N0cmluZ3MuUHVibGljU2VydmVycy5zZWFyY2h9Li4uYH0gLz47XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRpdGxlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS51c2VyKSByZXR1cm4gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLm5vdENvbm5lY3RlZDtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSByZXR1cm4gYCR7U3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmxvYWRpbmd9Li4uYDtcclxuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuc3RhdGUucmVzdWx0cy5mcm9tICsgMTtcclxuICAgICAgICBjb25zdCB0b3RhbCA9IHRoaXMuc3RhdGUucmVzdWx0cy50b3RhbDtcclxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCA/IHRoaXMuc3RhdGUucmVzdWx0cy5uZXh0IDogdG90YWw7XHJcbiAgICAgICAgbGV0IHRpdGxlID0gU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLnJlc3VsdHMuZm9ybWF0KHtzdGFydCwgZW5kLCB0b3RhbCwgY2F0ZWdvcnk6IHRoaXMuc3RhdGUuY2F0ZWdvcnl9KTtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5xdWVyeSkgdGl0bGUgKz0gXCIgXCIgKyBTdHJpbmdzLlB1YmxpY1NlcnZlcnMucXVlcnkuZm9ybWF0KHtxdWVyeTogdGhpcy5zdGF0ZS5xdWVyeX0pO1xyXG4gICAgICAgIHJldHVybiB0aXRsZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0QnV0dG9uID0gdGhpcy5zdGF0ZS51c2VyID8gbnVsbCA6IHt0aXRsZTogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmNvbm5lY3QsIG9uQ2xpY2s6IHRoaXMuY29ubmVjdH07XHJcbiAgICAgICAgY29uc3QgcGlubmVkID0gdGhpcy5zdGF0ZS5jYXRlZ29yeSA9PSBcIkFsbFwiIHx8ICF0aGlzLnN0YXRlLnVzZXIgPyB0aGlzLmJkU2VydmVyIDogbnVsbDtcclxuICAgICAgICBjb25zdCBzZXJ2ZXJzID0gdGhpcy5zdGF0ZS5yZXN1bHRzLnNlcnZlcnMubWFwKChzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge2tleTogc2VydmVyLmlkZW50aWZpZXIsIHNlcnZlcjogc2VydmVyLCBqb2luZWQ6IENvbm5lY3Rpb24uaGFzSm9pbmVkKHNlcnZlci5pZGVudGlmaWVyKSwgZGVmYXVsdEF2YXRhcjogQ29ubmVjdGlvbi5nZXREZWZhdWx0QXZhdGFyfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aGlzLnRpdGxlLCBidXR0b246IGNvbm5lY3RCdXR0b259KSxcclxuICAgICAgICAgICAgcGlubmVkLFxyXG4gICAgICAgICAgICBzZXJ2ZXJzLFxyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdHMubmV4dCA/IHRoaXMubmV4dEJ1dHRvbiA6IG51bGwsXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0cy5zZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGhpcy50aXRsZX0pXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbmV4dEJ1dHRvbigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJkLWJ1dHRvbiBiZC1idXR0b24tbmV4dFwiLCBvbkNsaWNrOiB0aGlzLmxvYWROZXh0UGFnZX0sIHRoaXMuc3RhdGUubG9hZGluZyA/IFN0cmluZ3MuUHVibGljU2VydmVycy5sb2FkaW5nIDogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmxvYWRNb3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCB7dXNlcn0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGlmICghdXNlcikgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2lkOiBcImJkLWNvbm5lY3Rpb25cIn0pO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtpZDogXCJiZC1jb25uZWN0aW9uXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmQtZm9vdG5vdGVcIn0sIFN0cmluZ3MuUHVibGljU2VydmVycy5jb25uZWN0aW9uLmZvcm1hdCh1c2VyKSksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge3R5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJiZC1idXR0b24gYmQtYnV0dG9uLXJlY29ubmVjdFwiLCBvbkNsaWNrOiB0aGlzLmNvbm5lY3R9LCBTdHJpbmdzLlB1YmxpY1NlcnZlcnMucmVjb25uZWN0KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJkU2VydmVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlcnZlciA9IHtcclxuICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJEaXNjb3JkXCIsXHJcbiAgICAgICAgICAgIG9ubGluZTogXCI3NTAwK1wiLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBcIjIwMDAwK1wiLFxyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBbXCJjb21tdW5pdHlcIiwgXCJwcm9ncmFtbWluZ1wiLCBcInN1cHBvcnRcIl0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZmljaWFsIEJldHRlckRpc2NvcmQgc2VydmVyIGZvciBwbHVnaW5zLCB0aGVtZXMsIHN1cHBvcnQsIGV0Y1wiLFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIjg2MDA0NzQ0OTY2OTE0MDQ4XCIsXHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vaWNvbnMvODYwMDQ3NDQ5NjY5MTQwNDgvMjkyZTdmNmJmZmYyYjcxZGZkMTNlNTA4YTg1OWFlZGQud2VicFwiLFxyXG4gICAgICAgICAgICBuYXRpdmVqb2luOiB0cnVlLFxyXG4gICAgICAgICAgICBpbnZpdGVfY29kZTogXCIwVG1mbzVaYk9SQ1JxYkFkXCIsXHJcbiAgICAgICAgICAgIHBpbm5lZDogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge3NlcnZlcjogc2VydmVyLCBwaW5uZWQ6IHRydWUsIGpvaW5lZDogQ29ubmVjdGlvbi5oYXNKb2luZWQoc2VydmVyLmlkZW50aWZpZXIpLCBkZWZhdWx0QXZhdGFyOiBDb25uZWN0aW9uLmdldERlZmF1bHRBdmF0YXJ9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcnlCdXR0b25zLm1hcChuYW1lID0+ICh7XHJcbiAgICAgICAgICAgICAgICBzZWN0aW9uOiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50OiAoKSA9PiB0aGlzLmNvbnRlbnRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVmlldywge1xyXG4gICAgICAgICAgICBvbkNsb3NlOiB0aGlzLnByb3BzLmNsb3NlLFxyXG4gICAgICAgICAgICBvblNldFNlY3Rpb246IHRoaXMuY2hhbmdlQ2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlY3Rpb246IHRoaXMuc3RhdGUuY2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFN0cmluZ3MuUHVibGljU2VydmVycy5zZWFyY2h9LFxyXG4gICAgICAgICAgICAgICAge3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6ICgpID0+IHRoaXMuc2VhcmNoQm94fSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogU3RyaW5ncy5QdWJsaWNTZXJ2ZXJzLmNhdGVnb3JpZXN9LFxyXG4gICAgICAgICAgICAgICAgLi4uY2F0ZWdvcmllcyxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkRJVklERVJcIn0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtocmVmOiBcImh0dHBzOi8vZGlzY29yZHNlcnZlcnMuY29tXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiRGlzY29yZFNlcnZlcnMuY29tXCIpfSxcclxuICAgICAgICAgICAgICAgIHtzZWN0aW9uOiBcIkRJVklERVJcIn0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJDVVNUT01cIiwgZWxlbWVudDogKCkgPT4gdGhpcy5jb25uZWN0aW9ufVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB0aGVtZTogXCJkYXJrXCJcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n");
/***/ }),
/***/ "./src/ui/settings.js":
/*!****************************!*\
!*** ./src/ui/settings.js ***!
\****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _settings_addonlist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settings/addonlist */ \"./src/ui/settings/addonlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _settings_attribution__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settings/attribution */ \"./src/ui/settings/attribution.jsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsRenderer {\n constructor() {\n this.patchSections();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"strings-updated\", this.forceUpdate);\n }\n\n onChange(onChange) {\n return (collection, category, id) => {\n const before = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n onChange(collection, category, id);\n const after = modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections.length + modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.length;\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n };\n }\n\n buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, this.onChange(onChange), button);\n }\n\n getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n }\n\n getAddonPanel(title, addonList, addonState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_addonlist__WEBPACK_IMPORTED_MODULE_1__[\"default\"], Object.assign({}, {\n title: title,\n addonList: addonList,\n addonState: addonState\n }, options));\n }\n\n async patchSections() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactComponents\"].get(\"FluxContainer(GuildSettings)\", m => m.displayName == \"FluxContainer(GuildSettings)\").then(c => console.log(\"COMPONENT\", c)); // const GuildSettings = await ReactComponents.get(\"FluxContainer(GuildSettings)\", m => m.displayName == \"FluxContainer(GuildSettings)\");\n // Patcher.after(\"SettingsManager\", GuildSettings.prototype, \"render\", (thisObject) => {\n // thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = \"guild-settings\";\n // });\n\n const UserSettings = await modules__WEBPACK_IMPORTED_MODULE_0__[\"ReactComponents\"].get(\"UserSettings\", m => m.prototype && m.prototype.generateSections);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"render\", thisObject => {\n thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n });\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Patcher\"].after(\"SettingsManager\", UserSettings.prototype, \"generateSections\", (thisObject, args, returnValue) => {\n let location = returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => this.buildSettingsPanel(collection.name, collection.settings, modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].state[collection.id], modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].onSettingChange.bind(modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"], collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(thisObject, event, returnValue);\n insert(panel);\n }\n\n insert({\n section: \"CUSTOM\",\n element: _settings_attribution__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n });\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n if (!node) return;\n const stateNode = modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].findInReactTree(modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].getReactInstance(node), m => m && m.generateSections, {\n walkable: [\"return\", \"stateNode\"]\n });\n if (stateNode) stateNode.forceUpdate();\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzLmpzPzc2YmUiXSwibmFtZXMiOlsiU2V0dGluZ3NSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwicGF0Y2hTZWN0aW9ucyIsIkV2ZW50cyIsIm9uIiwiZm9yY2VVcGRhdGUiLCJvbkNoYW5nZSIsImNvbGxlY3Rpb24iLCJjYXRlZ29yeSIsImlkIiwiYmVmb3JlIiwiU2V0dGluZ3MiLCJjb2xsZWN0aW9ucyIsImxlbmd0aCIsInBhbmVscyIsImFmdGVyIiwic2V0VGltZW91dCIsImJpbmQiLCJidWlsZFNldHRpbmdzUGFuZWwiLCJ0aXRsZSIsImNvbmZpZyIsInN0YXRlIiwiYnV0dG9uIiwiZm9yRWFjaCIsInNlY3Rpb24iLCJzZXR0aW5ncyIsIml0ZW0iLCJ2YWx1ZSIsImdldFNldHRpbmdzUGFuZWwiLCJncm91cHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJTZXR0aW5nc1RpdGxlIiwidGV4dCIsIm1hcCIsIlNldHRpbmdzR3JvdXAiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXRBZGRvblBhbmVsIiwiYWRkb25MaXN0IiwiYWRkb25TdGF0ZSIsIm9wdGlvbnMiLCJBZGRvbkxpc3QiLCJSZWFjdENvbXBvbmVudHMiLCJnZXQiLCJtIiwiZGlzcGxheU5hbWUiLCJ0aGVuIiwiYyIsImNvbnNvbGUiLCJsb2ciLCJVc2VyU2V0dGluZ3MiLCJwcm90b3R5cGUiLCJnZW5lcmF0ZVNlY3Rpb25zIiwiUGF0Y2hlciIsInRoaXNPYmplY3QiLCJfcmVhY3RJbnRlcm5hbEZpYmVyIiwicmV0dXJuIiwibWVtb2l6ZWRQcm9wcyIsImFyZ3MiLCJyZXR1cm5WYWx1ZSIsImxvY2F0aW9uIiwiZmluZEluZGV4IiwicyIsInRvTG93ZXJDYXNlIiwiaW5zZXJ0Iiwic3BsaWNlIiwibGFiZWwiLCJkaXNhYmxlZCIsIm5hbWUiLCJlbGVtZW50Iiwib25TZXR0aW5nQ2hhbmdlIiwicGFuZWwiLCJzb3J0IiwiYSIsImIiLCJvcmRlciIsImNsaWNrTGlzdGVuZXIiLCJvbkNsaWNrIiwiZXZlbnQiLCJBdHRyaWJ1dGlvbiIsInZpZXdDbGFzcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsInN0YW5kYXJkU2lkZWJhclZpZXciLCJzcGxpdCIsIm5vZGUiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzdGF0ZU5vZGUiLCJVdGlsaXRpZXMiLCJmaW5kSW5SZWFjdFRyZWUiLCJnZXRSZWFjdEluc3RhbmNlIiwid2Fsa2FibGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxtRUFBSSxNQUFNQSxnQkFBTixDQUF1QjtBQUV0Q0MsYUFBVyxHQUFHO0FBQ1YsU0FBS0MsYUFBTDtBQUNBQyxrREFBTSxDQUFDQyxFQUFQLENBQVUsaUJBQVYsRUFBNkIsS0FBS0MsV0FBbEM7QUFDSDs7QUFFREMsVUFBUSxDQUFDQSxRQUFELEVBQVc7QUFDZixXQUFPLENBQUNDLFVBQUQsRUFBYUMsUUFBYixFQUF1QkMsRUFBdkIsS0FBOEI7QUFDakMsWUFBTUMsTUFBTSxHQUFHQyxnREFBUSxDQUFDQyxXQUFULENBQXFCQyxNQUFyQixHQUE4QkYsZ0RBQVEsQ0FBQ0csTUFBVCxDQUFnQkQsTUFBN0Q7QUFDQVAsY0FBUSxDQUFDQyxVQUFELEVBQWFDLFFBQWIsRUFBdUJDLEVBQXZCLENBQVI7QUFDQSxZQUFNTSxLQUFLLEdBQUdKLGdEQUFRLENBQUNDLFdBQVQsQ0FBcUJDLE1BQXJCLEdBQThCRixnREFBUSxDQUFDRyxNQUFULENBQWdCRCxNQUE1RDtBQUNBLFVBQUlILE1BQU0sSUFBSUssS0FBZCxFQUFxQkMsVUFBVSxDQUFDLEtBQUtYLFdBQUwsQ0FBaUJZLElBQWpCLENBQXNCLElBQXRCLENBQUQsRUFBOEIsRUFBOUIsQ0FBVjtBQUN4QixLQUxEO0FBTUg7O0FBRURDLG9CQUFrQixDQUFDQyxLQUFELEVBQVFDLE1BQVIsRUFBZ0JDLEtBQWhCLEVBQXVCZixR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LENBQUNLLGFBQVYsRUFBeUJMLEtBQUssQ0FBQ00sT0FBTixHQUFpQkMsS0FBRCxJQUFXUCxLQUFLLENBQUNLLGFBQU4sQ0FBb0J0QixVQUFwQixFQUFnQ3dCLEtBQWhDLEVBQXVDbkIsV0FBdkMsQ0FBM0I7QUFDekJLLGNBQU0sQ0FBQ08sS0FBRCxDQUFOO0FBQ0g7O0FBQ0RQLFlBQU0sQ0FBQztBQUFDekMsZUFBTyxFQUFFLFFBQVY7QUFBb0I4QyxlQUFPLEVBQUVVLDZEQUFXQTtBQUF4QyxPQUFELENBQU47QUFDSCxLQXJCRDtBQXNCQSxTQUFLM0UsV0FBTDtBQUNIOztBQUVEQSxhQUFXLEdBQUc7QUFDVixVQUFNNEUsU0FBUyxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLHFCQUExQixFQUFpREMsbUJBQWpELENBQXFFQyxLQUFyRSxDQUEyRSxHQUEzRSxFQUFnRixDQUFoRixDQUFsQjtBQUNBLFVBQU1DLElBQUksR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXdCLElBQUdQLFNBQVUsRUFBckMsQ0FBYjtBQUNBLFFBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1gsVUFBTUcsU0FBUyxHQUFHQyxpREFBUyxDQUFDQyxlQUFWLENBQTBCRCxpREFBUyxDQUFDRSxnQkFBVixDQUEyQk4sSUFBM0IsQ0FBMUIsRUFBNER6QyxDQUFDLElBQUlBLENBQUMsSUFBSUEsQ0FBQyxDQUFDUSxnQkFBeEUsRUFBMEY7QUFBQ3dDLGNBQVEsRUFBRSxDQUFDLFFBQUQsRUFBVyxXQUFYO0FBQVgsS0FBMUYsQ0FBbEI7QUFDQSxRQUFJSixTQUFKLEVBQWVBLFNBQVMsQ0FBQ3BGLFdBQVY7QUFDbEI7O0FBOUVxQyxDQUEzQixFQUFmIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgV2VicGFja01vZHVsZXMsIFBhdGNoZXIsIFJlYWN0Q29tcG9uZW50cywgVXRpbGl0aWVzLCBTZXR0aW5ncywgRXZlbnRzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IEFkZG9uTGlzdCBmcm9tIFwiLi9zZXR0aW5ncy9hZGRvbmxpc3RcIjtcclxuaW1wb3J0IFNldHRpbmdzR3JvdXAgZnJvbSBcIi4vc2V0dGluZ3MvZ3JvdXBcIjtcclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vc2V0dGluZ3MvdGl0bGVcIjtcclxuaW1wb3J0IEF0dHJpYnV0aW9uIGZyb20gXCIuL3NldHRpbmdzL2F0dHJpYnV0aW9uXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgU2V0dGluZ3NSZW5kZXJlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5wYXRjaFNlY3Rpb25zKCk7XHJcbiAgICAgICAgRXZlbnRzLm9uKFwic3RyaW5ncy11cGRhdGVkXCIsIHRoaXMuZm9yY2VVcGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKG9uQ2hhbmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gU2V0dGluZ3MuY29sbGVjdGlvbnMubGVuZ3RoICsgU2V0dGluZ3MucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICAgICAgb25DaGFuZ2UoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBTZXR0aW5ncy5jb2xsZWN0aW9ucy5sZW5ndGggKyBTZXR0aW5ncy5wYW5lbHMubGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAoYmVmb3JlICE9IGFmdGVyKSBzZXRUaW1lb3V0KHRoaXMuZm9yY2VVcGRhdGUuYmluZCh0aGlzKSwgNTApO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRTZXR0aW5nc1BhbmVsKHRpdGxlLCBjb25maWcsIHN0YXRlLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGNvbmZpZy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICBzZWN0aW9uLnNldHRpbmdzLmZvckVhY2goaXRlbSA9PiBpdGVtLnZhbHVlID0gc3RhdGVbc2VjdGlvbi5pZF1baXRlbS5pZF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNldHRpbmdzUGFuZWwodGl0bGUsIGNvbmZpZywgdGhpcy5vbkNoYW5nZShvbkNoYW5nZSksIGJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZ3NQYW5lbCh0aXRsZSwgZ3JvdXBzLCBvbkNoYW5nZSwgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGl0bGUsIGJ1dHRvbjogYnV0dG9ufSksIGdyb3Vwcy5tYXAoc2VjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzR3JvdXAsIE9iamVjdC5hc3NpZ24oe30sIHNlY3Rpb24sIHtvbkNoYW5nZX0pKTtcclxuICAgICAgICB9KV07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWRkb25QYW5lbCh0aXRsZSwgYWRkb25MaXN0LCBhZGRvblN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChBZGRvbkxpc3QsIE9iamVjdC5hc3NpZ24oe30sIHtcclxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICBhZGRvbkxpc3Q6IGFkZG9uTGlzdCxcclxuICAgICAgICAgICAgYWRkb25TdGF0ZTogYWRkb25TdGF0ZVxyXG4gICAgICAgIH0sIG9wdGlvbnMpKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwYXRjaFNlY3Rpb25zKCkge1xyXG4gICAgICAgIFJlYWN0Q29tcG9uZW50cy5nZXQoXCJGbHV4Q29udGFpbmVyKEd1aWxkU2V0dGluZ3MpXCIsIG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIkZsdXhDb250YWluZXIoR3VpbGRTZXR0aW5ncylcIikudGhlbihjID0+IGNvbnNvbGUubG9nKFwiQ09NUE9ORU5UXCIsIGMpKTtcclxuICAgICAgICAvLyBjb25zdCBHdWlsZFNldHRpbmdzID0gYXdhaXQgUmVhY3RDb21wb25lbnRzLmdldChcIkZsdXhDb250YWluZXIoR3VpbGRTZXR0aW5ncylcIiwgbSA9PiBtLmRpc3BsYXlOYW1lID09IFwiRmx1eENvbnRhaW5lcihHdWlsZFNldHRpbmdzKVwiKTtcclxuICAgICAgICAvLyBQYXRjaGVyLmFmdGVyKFwiU2V0dGluZ3NNYW5hZ2VyXCIsIEd1aWxkU2V0dGluZ3MucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgIC8vICAgICB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ubWVtb2l6ZWRQcm9wcy5pZCA9IFwiZ3VpbGQtc2V0dGluZ3NcIjtcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgICBjb25zdCBVc2VyU2V0dGluZ3MgPSBhd2FpdCBSZWFjdENvbXBvbmVudHMuZ2V0KFwiVXNlclNldHRpbmdzXCIsIG0gPT4gbS5wcm90b3R5cGUgJiYgbS5wcm90b3R5cGUuZ2VuZXJhdGVTZWN0aW9ucyk7XHJcbiAgICAgICAgUGF0Y2hlci5hZnRlcihcIlNldHRpbmdzTWFuYWdlclwiLCBVc2VyU2V0dGluZ3MucHJvdG90eXBlLCBcInJlbmRlclwiLCAodGhpc09iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLm1lbW9pemVkUHJvcHMuaWQgPSBcInVzZXItc2V0dGluZ3NcIjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBQYXRjaGVyLmFmdGVyKFwiU2V0dGluZ3NNYW5hZ2VyXCIsIFVzZXJTZXR0aW5ncy5wcm90b3R5cGUsIFwiZ2VuZXJhdGVTZWN0aW9uc1wiLCAodGhpc09iamVjdCwgYXJncywgcmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gcmV0dXJuVmFsdWUuZmluZEluZGV4KHMgPT4gcy5zZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT0gXCJsaW51eFwiKSArIDE7XHJcbiAgICAgICAgICAgIGNvbnN0IGluc2VydCA9IChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZS5zcGxpY2UobG9jYXRpb24sIDAsIHNlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgbG9jYXRpb24rKztcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkRJVklERVJcIn0pO1xyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiSEVBREVSXCIsIGxhYmVsOiBcIkJhbmRhZ2VkQkRcIn0pO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgU2V0dGluZ3MuY29sbGVjdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmRpc2FibGVkKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGluc2VydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gdGhpcy5idWlsZFNldHRpbmdzUGFuZWwoY29sbGVjdGlvbi5uYW1lLCBjb2xsZWN0aW9uLnNldHRpbmdzLCBTZXR0aW5ncy5zdGF0ZVtjb2xsZWN0aW9uLmlkXSwgU2V0dGluZ3Mub25TZXR0aW5nQ2hhbmdlLmJpbmQoU2V0dGluZ3MsIGNvbGxlY3Rpb24uaWQpLCBjb2xsZWN0aW9uLmJ1dHRvbiA/IGNvbGxlY3Rpb24uYnV0dG9uIDogbnVsbClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFuZWwgb2YgU2V0dGluZ3MucGFuZWxzLnNvcnQoKGEsYikgPT4gYS5vcmRlciA+IGIub3JkZXIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFuZWwuY2xpY2tMaXN0ZW5lcikgcGFuZWwub25DbGljayA9IChldmVudCkgPT4gcGFuZWwuY2xpY2tMaXN0ZW5lcih0aGlzT2JqZWN0LCBldmVudCwgcmV0dXJuVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHBhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6IEF0dHJpYnV0aW9ufSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmNlVXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXdDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzdGFuZGFyZFNpZGViYXJWaWV3XCIpLnN0YW5kYXJkU2lkZWJhclZpZXcuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt2aWV3Q2xhc3N9YCk7XHJcbiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgc3RhdGVOb2RlID0gVXRpbGl0aWVzLmZpbmRJblJlYWN0VHJlZShVdGlsaXRpZXMuZ2V0UmVhY3RJbnN0YW5jZShub2RlKSwgbSA9PiBtICYmIG0uZ2VuZXJhdGVTZWN0aW9ucywge3dhbGthYmxlOiBbXCJyZXR1cm5cIiwgXCJzdGF0ZU5vZGVcIl19KTtcclxuICAgICAgICBpZiAoc3RhdGVOb2RlKSBzdGF0ZU5vZGUuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings.js\n");
/***/ }),
/***/ "./src/ui/settings/addoncard.jsx":
/*!***************************************!*\
!*** ./src/ui/settings/addoncard.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_delete__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/delete */ \"./src/ui/icons/delete.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nclass AddonCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n settingsOpen: false\n };\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.closeSettings = this.closeSettings.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.addon = this.props.reload(this.props.addon.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (!this.state.settingsOpen) return;\n if (this.settingsPanel instanceof Node) this.panelRef.current.appendChild(this.settingsPanel); // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\n const isHidden = (container, element) => {\n const cTop = container.scrollTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n return eTop < cTop || eBottom > cBottom;\n };\n\n const panel = $(this.panelRef.current);\n const container = panel.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], panel[0])) return;\n container.animate({\n scrollTop: panel.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n onChange() {\n this.props.onChange && this.props.onChange(this.props.addon.id);\n this.props.enabled = !this.props.enabled;\n }\n\n showSettings() {\n if (!this.props.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n closeSettings() {\n this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-author\"\n }, author);\n return title.flat();\n }\n\n get settingsComponent() {\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n\n try {\n this.settingsPanel = this.props.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Logger\"].stacktrace(\"Addon Settings\", \"Unable to get settings panel for \" + name + \".\", err);\n }\n\n const props = {\n id: `${name}-settings`,\n className: \"addon-settings\",\n ref: this.panelRef\n };\n if (typeof settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-card settings-open bd-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-close\",\n onClick: this.closeSettings\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n buildLink(which) {\n const url = this.props.addon[which];\n\n if (which == \"invite\") {\n const onClick = () => {\n const tester = /\\.gg\\/(.*)$/;\n let code = url;\n if (tester.test(code)) code = code.match(tester)[1];\n BDV2.LayerStack.popLayer();\n BDV2.InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n };\n }\n\n if (!url) return null;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bd-link bd-link-website\",\n href: url,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons[which]);\n }\n\n get footer() {\n const links = [\"website\", \"source\", \"invite\", \"donate\", \"patreon\"];\n if (!links.some(l => this.props.addon[l]) && !this.props.hasSettings) return null;\n const linkComponents = links.map(this.buildLink.bind(this)).filter(c => c);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-links\"\n }, linkComponents.map((comp, i) => i < linkComponents.length - 1 ? [comp, \" | \"] : [comp]).flat()), this.props.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bd-button-addon-settings\",\n disabled: !this.props.enabled\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.addonSettings));\n }\n\n makeButton(title, children, action) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: title\n }, props => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", _extends({}, props, {\n className: \"bd-addon-button\",\n onClick: action\n }), children);\n });\n }\n\n render() {\n if (this.state.settingsOpen) return this.settingsComponent;\n const addon = this.props.addon;\n const name = this.getString(addon.name);\n const author = this.getString(addon.author);\n const description = this.getString(addon.description);\n const version = this.getString(addon.version);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: `${addon.id}-card`,\n className: \"bd-addon-card settings-closed\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bd-title\"\n }, this.buildTitle(name, version, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls\"\n }, this.props.editAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.editAddon, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null), this.props.editAddon), this.props.deleteAddon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_delete__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null), this.props.deleteAddon), this.props.showReloadIcon && this.makeButton(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.reload, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\"\n }), this.reload), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n checked: this.props.enabled,\n onChange: this.onChange\n }))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-description scroller\"\n }, description)), this.footer);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2FkZG9uY2FyZC5qc3g/NjM3MyJdLCJuYW1lcyI6WyJUb29sdGlwIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwiQWRkb25DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJzZXR0aW5nc09wZW4iLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJvbkNoYW5nZSIsImJpbmQiLCJyZWxvYWQiLCJzaG93U2V0dGluZ3MiLCJjbG9zZVNldHRpbmdzIiwiYWRkb24iLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJwYW5lbCIsIiQiLCJwYXJlbnRzIiwiYW5pbWF0ZSIsIm9mZnNldCIsInRvcCIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJlbmFibGVkIiwiaGFzU2V0dGluZ3MiLCJzZXRTdGF0ZSIsImlubmVySFRNTCIsImJ1aWxkVGl0bGUiLCJuYW1lIiwidmVyc2lvbiIsImF1dGhvciIsInRpdGxlIiwiU3RyaW5ncyIsIkFkZG9ucyIsInNwbGl0IiwibmFtZUluZGV4IiwiZmluZEluZGV4IiwicyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ2ZXJzaW9uSW5kZXgiLCJhdXRob3JJbmRleCIsImZsYXQiLCJzZXR0aW5nc0NvbXBvbmVudCIsImdldFNldHRpbmdzUGFuZWwiLCJlcnIiLCJMb2dnZXIiLCJzdGFja3RyYWNlIiwicmVmIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJidWlsZExpbmsiLCJ3aGljaCIsInVybCIsIm9uQ2xpY2siLCJ0ZXN0ZXIiLCJjb2RlIiwidGVzdCIsIm1hdGNoIiwiQkRWMiIsIkxheWVyU3RhY2siLCJwb3BMYXllciIsIkludml0ZUFjdGlvbnMiLCJhY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsIiwiZm9vdGVyIiwibGlua3MiLCJzb21lIiwibCIsImxpbmtDb21wb25lbnRzIiwibWFwIiwiZmlsdGVyIiwiYyIsImNvbXAiLCJpIiwibGVuZ3RoIiwiYWRkb25TZXR0aW5ncyIsIm1ha2VCdXR0b24iLCJjaGlsZHJlbiIsImFjdGlvbiIsInJlbmRlciIsImRlc2NyaXB0aW9uIiwiZWRpdEFkZG9uIiwiZGVsZXRlQWRkb24iLCJzaG93UmVsb2FkSWNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLE9BQU8sR0FBR0Msc0RBQWMsQ0FBQ0MsZ0JBQWYsQ0FBZ0MsU0FBaEMsQ0FBaEI7QUFFZSxNQUFNQyxTQUFOLFNBQXdCQyw2Q0FBSyxDQUFDQyxTQUE5QixDQUF3QztBQUVuREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGtCQUFZLEVBQUU7QUFETCxLQUFiO0FBSUEsU0FBS0MsYUFBTCxHQUFxQixFQUFyQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JQLDZDQUFLLENBQUNRLFNBQU4sRUFBaEI7QUFFQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQVlELElBQVosQ0FBaUIsSUFBakIsQ0FBZDtBQUNBLFNBQUtFLFlBQUwsR0FBb0IsS0FBS0EsWUFBTCxDQUFrQkYsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBcEI7QUFDQSxTQUFLRyxhQUFMLEdBQXFCLEtBQUtBLGFBQUwsQ0FBbUJILElBQW5CLENBQXdC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QUF3QixLQUFLTCxVQUFMLENBQWdCM0MsK0NBQU8sQ0FBQ0MsTUFBUixDQUFlK0MsU0FBL0IsRUFBMEMsNERBQUMsbURBQUQsT0FBMUMsRUFBd0QsS0FBSzlGLEtBQUwsQ0FBVzhGLFNBQW5FLENBRDdCLEVBRUssS0FBSzlGLEtBQUwsQ0FBVytGLFdBQVgsSUFBMEIsS0FBS04sVUFBTCxDQUFnQjNDLCtDQUFPLENBQUNDLE1BQVIsQ0FBZWdELFdBQS9CLEVBQTRDLDREQUFDLHFEQUFELE9BQTVDLEVBQTRELEtBQUsvRixLQUFMLENBQVcrRixXQUF2RSxDQUYvQixFQUdLLEtBQUsvRixLQUFMLENBQVdnRyxjQUFYLElBQTZCLEtBQUtQLFVBQUwsQ0FBZ0IzQywrQ0FBTyxDQUFDQyxNQUFSLENBQWV2QyxNQUEvQixFQUF1Qyw0REFBQyxxREFBRDtBQUFZLGVBQVMsRUFBQztBQUF0QixNQUF2QyxFQUE0RixLQUFLQSxNQUFqRyxDQUhsQyxFQUlJLDREQUFDLDBEQUFEO0FBQVEsYUFBTyxFQUFFLEtBQUtSLEtBQUwsQ0FBV3FDLE9BQTVCO0FBQXFDLGNBQVEsRUFBRSxLQUFLL0I7QUFBcEQsTUFKSixDQUZSLENBREwsRUFVSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQXdEO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FBMEN1RixXQUExQyxDQUF4RCxDQVZMLEVBV00sS0FBS2hCLE1BWFgsQ0FBUDtBQWFIOztBQTlJa0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvYWRkb25jYXJkLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIExvZ2dlciwgU3RyaW5ncywgV2VicGFja01vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBDbG9zZUJ1dHRvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2VcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5pbXBvcnQgRWRpdEljb24gZnJvbSBcIi4uL2ljb25zL2VkaXRcIjtcclxuaW1wb3J0IERlbGV0ZUljb24gZnJvbSBcIi4uL2ljb25zL2RlbGV0ZVwiO1xyXG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL2NvbXBvbmVudHMvc3dpdGNoXCI7XHJcblxyXG5jb25zdCBUb29sdGlwID0gV2VicGFja01vZHVsZXMuZ2V0QnlEaXNwbGF5TmFtZShcIlRvb2x0aXBcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGRvbkNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnNldHRpbmdzUGFuZWwgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMucGFuZWxSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zaG93U2V0dGluZ3MgPSB0aGlzLnNob3dTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTZXR0aW5ncyA9IHRoaXMuY2xvc2VTZXR0aW5ncy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5hZGRvbiA9IHRoaXMucHJvcHMucmVsb2FkKHRoaXMucHJvcHMuYWRkb24uaWQpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnNldHRpbmdzT3BlbikgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBOb2RlKSB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1BhbmVsKTtcclxuXHJcbiAgICAgICAgLy8gaWYgKCFTZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtM1wiXSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGlzSGlkZGVuID0gKGNvbnRhaW5lciwgZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgY29uc3QgY0JvdHRvbSA9IGNUb3AgKyBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICBjb25zdCBlVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgIGNvbnN0IGVCb3R0b20gPSBlVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgIHJldHVybiAgKGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBwYW5lbCA9ICQodGhpcy5wYW5lbFJlZi5jdXJyZW50KTtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBwYW5lbC5wYXJlbnRzKFwiLnNjcm9sbGVyLTJGS0ZQR1wiKTtcclxuICAgICAgICBpZiAoIWlzSGlkZGVuKGNvbnRhaW5lclswXSwgcGFuZWxbMF0pKSByZXR1cm47XHJcbiAgICAgICAgY29udGFpbmVyLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICBzY3JvbGxUb3A6IHBhbmVsLm9mZnNldCgpLnRvcCAtIGNvbnRhaW5lci5vZmZzZXQoKS50b3AgKyBjb250YWluZXIuc2Nyb2xsVG9wKCkgLSAzMFxyXG4gICAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHZhbHVlKSB7cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiID8gdmFsdWUgOiB2YWx1ZS50b1N0cmluZygpO31cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlICYmIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5hZGRvbi5pZCk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5lbmFibGVkID0gIXRoaXMucHJvcHMuZW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmhhc1NldHRpbmdzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c2V0dGluZ3NPcGVuOiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VTZXR0aW5ncygpIHtcclxuICAgICAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IFN0cmluZ3MuQWRkb25zLnRpdGxlLnNwbGl0KC8oe3tbQS1aYS16XSt9fSkvKTtcclxuICAgICAgICBjb25zdCBuYW1lSW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3tuYW1lfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbbmFtZUluZGV4XSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmQtbmFtZVwifSwgbmFtZSk7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbkluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7dmVyc2lvbn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW3ZlcnNpb25JbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkLXZlcnNpb25cIn0sIHZlcnNpb24pO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvckluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7YXV0aG9yfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbYXV0aG9ySW5kZXhdID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZC1hdXRob3JcIn0sIGF1dGhvcik7XHJcbiAgICAgICAgcmV0dXJuIHRpdGxlLmZsYXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2V0dGluZ3NDb21wb25lbnQoKSB7XHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLnByb3BzLmFkZG9uO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5uYW1lKTtcclxuICAgICAgICB0cnkgeyB0aGlzLnNldHRpbmdzUGFuZWwgPSB0aGlzLnByb3BzLmdldFNldHRpbmdzUGFuZWwoKTsgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHsgTG9nZ2VyLnN0YWNrdHJhY2UoXCJBZGRvbiBTZXR0aW5nc1wiLCBcIlVuYWJsZSB0byBnZXQgc2V0dGluZ3MgcGFuZWwgZm9yIFwiICsgbmFtZSArIFwiLlwiLCBlcnIpOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3BzID0ge2lkOiBgJHtuYW1lfS1zZXR0aW5nc2AsIGNsYXNzTmFtZTogXCJhZGRvbi1zZXR0aW5nc1wiLCByZWY6IHRoaXMucGFuZWxSZWZ9O1xyXG4gICAgICAgIGlmICh0eXBlb2Yoc2V0dGluZ3NQYW5lbCkgPT0gXCJzdHJpbmdcIikgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB0aGlzLnNldHRpbmdzUGFuZWw7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImJkLWFkZG9uLWNhcmQgc2V0dGluZ3Mtb3BlbiBiZC1zd2l0Y2gtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY2xvc2VcIiBvbkNsaWNrPXt0aGlzLmNsb3NlU2V0dGluZ3N9PjxDbG9zZUJ1dHRvbiAvPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgey4uLnByb3BzfT57dGhpcy5zZXR0aW5nc1BhbmVsIGluc3RhbmNlb2YgUmVhY3QuQ29tcG9uZW50ID8gdGhpcy5zZXR0aW5nc1BhbmVsIDogbnVsbH08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZExpbmsod2hpY2gpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnByb3BzLmFkZG9uW3doaWNoXTtcclxuICAgICAgICBpZiAod2hpY2ggPT0gXCJpbnZpdGVcIikge1xyXG4gICAgICAgICAgICBjb25zdCBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGVzdGVyID0gL1xcLmdnXFwvKC4qKSQvO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvZGUgPSB1cmw7XHJcbiAgICAgICAgICAgICAgICBpZiAodGVzdGVyLnRlc3QoY29kZSkpIGNvZGUgPSBjb2RlLm1hdGNoKHRlc3RlcilbMV07XHJcbiAgICAgICAgICAgICAgICBCRFYyLkxheWVyU3RhY2sucG9wTGF5ZXIoKTtcclxuICAgICAgICAgICAgICAgIEJEVjIuSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsKGNvZGUpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIDxhIGNsYXNzTmFtZT1cImJkLWxpbmsgYmQtbGluay13ZWJzaXRlXCIgaHJlZj17dXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+e1N0cmluZ3MuQWRkb25zW3doaWNoXX08L2E+O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb290ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgbGlua3MgPSBbXCJ3ZWJzaXRlXCIsIFwic291cmNlXCIsIFwiaW52aXRlXCIsIFwiZG9uYXRlXCIsIFwicGF0cmVvblwiXTtcclxuICAgICAgICBpZiAoIWxpbmtzLnNvbWUobCA9PiB0aGlzLnByb3BzLmFkZG9uW2xdKSAmJiAhdGhpcy5wcm9wcy5oYXNTZXR0aW5ncykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY29uc3QgbGlua0NvbXBvbmVudHMgPSBsaW5rcy5tYXAodGhpcy5idWlsZExpbmsuYmluZCh0aGlzKSkuZmlsdGVyKGMgPT4gYyk7XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYmQtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmQtbGlua3NcIj57bGlua0NvbXBvbmVudHMubWFwKChjb21wLCBpKSA9PiBpIDwgbGlua0NvbXBvbmVudHMubGVuZ3RoIC0gMSA/IFtjb21wLCBcIiB8IFwiXSA6IFtjb21wXSkuZmxhdCgpfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5oYXNTZXR0aW5ncyAmJiA8YnV0dG9uIG9uQ2xpY2s9e3RoaXMuc2hvd1NldHRpbmdzfSBjbGFzc05hbWU9XCJiZC1idXR0b24gYmQtYnV0dG9uLWFkZG9uLXNldHRpbmdzXCIgZGlzYWJsZWQ9eyF0aGlzLnByb3BzLmVuYWJsZWR9PntTdHJpbmdzLkFkZG9ucy5hZGRvblNldHRpbmdzfTwvYnV0dG9uPn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlQnV0dG9uKHRpdGxlLCBjaGlsZHJlbiwgYWN0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuICA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PXt0aXRsZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgeyhwcm9wcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT1cImJkLWFkZG9uLWJ1dHRvblwiIG9uQ2xpY2s9e2FjdGlvbn0+e2NoaWxkcmVufTwvZGl2PjtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPjtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSByZXR1cm4gdGhpcy5zZXR0aW5nc0NvbXBvbmVudDtcclxuXHJcbiAgICAgICAgY29uc3QgYWRkb24gPSB0aGlzLnByb3BzLmFkZG9uO1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5uYW1lKTtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSB0aGlzLmdldFN0cmluZyhhZGRvbi5hdXRob3IpO1xyXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5nZXRTdHJpbmcoYWRkb24uZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZyhhZGRvbi52ZXJzaW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e2Ake2FkZG9uLmlkfS1jYXJkYH0gY2xhc3NOYW1lPVwiYmQtYWRkb24tY2FyZCBzZXR0aW5ncy1jbG9zZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWFkZG9uLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmQtdGl0bGVcIj57dGhpcy5idWlsZFRpdGxlKG5hbWUsIHZlcnNpb24sIGF1dGhvcil9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmVkaXRBZGRvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMuZWRpdEFkZG9uLCA8RWRpdEljb24gLz4sIHRoaXMucHJvcHMuZWRpdEFkZG9uKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5kZWxldGVBZGRvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMuZGVsZXRlQWRkb24sIDxEZWxldGVJY29uIC8+LCB0aGlzLnByb3BzLmRlbGV0ZUFkZG9uKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93UmVsb2FkSWNvbiAmJiB0aGlzLm1ha2VCdXR0b24oU3RyaW5ncy5BZGRvbnMucmVsb2FkLCA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWQgYmQtcmVsb2FkLWNhcmRcIiAvPiwgdGhpcy5yZWxvYWQpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2ggY2hlY2tlZD17dGhpcy5wcm9wcy5lbmFibGVkfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIj48ZGl2IGNsYXNzTmFtZT1cImJkLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCI+e2Rlc2NyaXB0aW9ufTwvZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLmZvb3Rlcn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/addoncard.jsx\n");
/***/ }),
/***/ "./src/ui/settings/addonlist.jsx":
/*!***************************************!*\
!*** ./src/ui/settings/addonlist.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AddonList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _addoncard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./addoncard */ \"./src/ui/settings/addoncard.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_search__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/search */ \"./src/ui/settings/components/search.jsx\");\n\n\n\n\n\n\n\nclass AddonList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n sort: \"name\",\n ascending: true,\n query: \"\"\n };\n this.sort = this.sort.bind(this);\n this.reverse = this.reverse.bind(this);\n this.search = this.search.bind(this);\n this.update = this.update.bind(this);\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(`${this.props.prefix}-unloaded`, this.update);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-loaded`, this.update);\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(`${this.props.prefix}-unloaded`, this.update);\n }\n\n update() {\n this.forceUpdate();\n }\n\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n reverse(value) {\n this.setState({\n ascending: value\n });\n }\n\n sort(value) {\n this.setState({\n sort: value\n });\n }\n\n search(event) {\n this.setState({\n query: event.target.value.toLocaleLowerCase()\n });\n }\n\n get sortOptions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.name,\n value: \"name\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.author,\n value: \"author\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.version,\n value: \"version\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.added,\n value: \"added\"\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.modified,\n value: \"modified\"\n }];\n }\n\n get directions() {\n return [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.ascending,\n value: true\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.descending,\n value: false\n }];\n }\n\n render() {\n const {\n title,\n folder,\n addonList,\n addonState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n const sortedAddons = addonList.sort((a, b) => {\n const first = a[this.state.sort];\n const second = b[this.state.sort];\n if (typeof first == \"string\") return first.toLocaleLowerCase().localeCompare(second.toLocaleLowerCase());\n if (first > second) return 1;\n if (second > first) return -1;\n return 0;\n });\n if (!this.state.ascending) sortedAddons.reverse();\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-controls bd-addon-controls\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_search__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n onChange: this.search,\n placeholder: `${modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.search.format({\n type: this.props.title\n })}...`\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-addon-dropdowns\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.sortBy, \":\"), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.sortOptions,\n onChange: this.sort,\n style: \"transparent\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"bd-label\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Sorting.order, \":\"), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n options: this.directions,\n onChange: this.reverse,\n style: \"transparent\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n key: \"addonList\",\n className: \"bd-addon-list\"\n }, sortedAddons.map(addon => {\n if (this.state.query) {\n let matches = addon.name.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.author.toLocaleLowerCase().includes(this.state.query);\n matches = matches || addon.description.toLocaleLowerCase().includes(this.state.query);\n if (!matches) return null;\n }\n\n const hasSettings = addon.type && typeof addon.plugin.getSettingsPanel === \"function\";\n const getSettings = hasSettings && addon.plugin.getSettingsPanel.bind(addon.plugin);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_addoncard__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n editAddon: this.editAddon.bind(this, addon.id),\n deleteAddon: this.deleteAddon.bind(this, addon.id),\n showReloadIcon: showReloadIcon,\n key: addon.id,\n enabled: addonState[addon.id],\n addon: addon,\n onChange: onChange,\n reload: reload,\n hasSettings: hasSettings,\n getSettingsPanel: getSettings\n });\n }))];\n }\n\n editAddon(id) {\n if (this.props.editAddon) this.props.editAddon(id);\n }\n\n async deleteAddon(id) {\n const addon = this.props.addonList.find(a => a.id == id);\n const shouldDelete = await this.confirmDelete(addon);\n if (!shouldDelete) return;\n if (this.props.deleteAddon) this.props.deleteAddon(addon);\n }\n\n confirmDelete(addon) {\n return new Promise(resolve => {\n _modals__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showConfirmationModal(modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Modals.confirmAction, modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.confirmDelete.format({\n name: addon.name\n }), {\n danger: true,\n confirmText: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.deleteAddon,\n onConfirm: () => {\n resolve(true);\n },\n onCancel: () => {\n resolve(false);\n }\n });\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2FkZG9ubGlzdC5qc3g/NjRkMiJdLCJuYW1lcyI6WyJBZGRvbkxpc3QiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsInNvcnQiLCJhc2NlbmRpbmciLCJxdWVyeSIsImJpbmQiLCJyZXZlcnNlIiwic2VhcmNoIiwidXBkYXRlIiwiY29tcG9uZW50RGlkTW91bnQiLCJFdmVudHMiLCJvbiIsInByZWZpeCIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwib2ZmIiwiZm9yY2VVcGRhdGUiLCJyZWxvYWQiLCJyZWZyZXNoTGlzdCIsInZhbHVlIiwic2V0U3RhdGUiLCJldmVudCIsInRhcmdldCIsInRvTG9jYWxlTG93ZXJDYXNlIiwic29ydE9wdGlvbnMiLCJsYWJlbCIsIlN0cmluZ3MiLCJBZGRvbnMiLCJuYW1lIiwiYXV0aG9yIiwidmVyc2lvbiIsImFkZGVkIiwibW9kaWZpZWQiLCJkaXJlY3Rpb25zIiwiU29ydGluZyIsImRlc2NlbmRpbmciLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImFkZG9uTGlzdCIsImFkZG9uU3RhdGUiLCJvbkNoYW5nZSIsInNob3dSZWxvYWRJY29uIiwiU2V0dGluZ3MiLCJnZXQiLCJidXR0b24iLCJvcGVuRm9sZGVyIiwiZm9ybWF0IiwidHlwZSIsIm9uQ2xpY2siLCJyZXF1aXJlIiwic2hlbGwiLCJvcGVuSXRlbSIsInNvcnRlZEFkZG9ucyIsImEiLCJiIiwiZmlyc3QiLCJzZWNvbmQiLCJsb2NhbGVDb21wYXJlIiwic29ydEJ5Iiwib3JkZXIiLCJtYXAiLCJhZGRvbiIsIm1hdGNoZXMiLCJpbmNsdWRlcyIsImRlc2NyaXB0aW9uIiwiaGFzU2V0dGluZ3MiLCJwbHVnaW4iLCJnZXRTZXR0aW5nc1BhbmVsIiwiZ2V0U2V0dGluZ3MiLCJlZGl0QWRkb24iLCJpZCIsImRlbGV0ZUFkZG9uIiwiZmluZCIsInNob3VsZERlbGV0ZSIsImNvbmZpcm1EZWxldGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsIk1vZGFscyIsInNob3dDb25maXJtYXRpb25Nb2RhbCIsImNvbmZpcm1BY3Rpb24iLCJkYW5nZXIiLCJjb25maXJtVGV4dCIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsVUFBSSxFQUFFLE1BQVA7QUFBZUMsZUFBUyxFQUFFLElBQTFCO0FBQWdDQyxXQUFLLEVBQUU7QUFBdkMsS0FBYjtBQUNBLFNBQUtGLElBQUwsR0FBWSxLQUFLQSxJQUFMLENBQVVHLElBQVYsQ0FBZSxJQUFmLENBQVo7QUFDQSxTQUFLQyxPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhRCxJQUFiLENBQWtCLElBQWxCLENBQWY7QUFDQSxTQUFLRSxNQUFMLEdBQWMsS0FBS0EsTUFBTCxDQUFZRixJQUFaLENBQWlCLElBQWpCLENBQWQ7QUFDQSxTQUFLRyxNQUFMLEdBQWMsS0FBS0EsTUFBTCxDQUFZSCxJQUFaLENBQWlCLElBQWpCLENBQWQ7QUFDSDs7QUFFREksbUJBQWlCLEdBQUc7QUFDaEJDLGtEQUFNLENBQUNDLEVBQVAsQ0FBVyxHQUFFLEtBQUtYLEtBQUwsQ0FBV1ksTUFBTyxTQUEvQixFQUF5QyxLQUFLSixNQUE5QztBQUNBRSxrREFBTSxDQUFDQyxFQUFQLENBQVcsR0FBRSxLQUFLWCxLQUFMLENBQVdZLE1BQU8sV0FBL0IsRUFBMkMsS0FBS0osTUFBaEQ7QUFDSDs7QUFFREssc0JBQW9CLEdBQUc7QUFDbkJILGtEQUFNLENBQUNJLEdBQVAsQ0FBWSxHQUFFLEtBQUtkLEtBQUws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TCxFQUFtQjtBQUNuQixRQUFJLEtBQUt6RSxLQUFMLENBQVd1RSxXQUFmLEVBQTRCLEtBQUt2RSxLQUFMLENBQVd1RSxXQUFYLENBQXVCVixLQUF2QjtBQUMvQjs7QUFFRGEsZUFBYSxDQUFDYixLQUFELEVBQVE7QUFDakIsV0FBTyxJQUFJYyxPQUFKLENBQVlDLE9BQU8sSUFBSTtBQUMxQkMscURBQU0sQ0FBQ0MscUJBQVAsQ0FBNkJyRCwrQ0FBTyxDQUFDb0QsTUFBUixDQUFlRSxhQUE1QyxFQUEyRHRELCtDQUFPLENBQUNDLE1BQVIsQ0FBZWdELGFBQWYsQ0FBNkI1QixNQUE3QixDQUFvQztBQUFDbkIsWUFBSSxFQUFFa0MsS0FBSyxDQUFDbEM7QUFBYixPQUFwQyxDQUEzRCxFQUFvSDtBQUNoSHFELGNBQU0sRUFBRSxJQUR3RztBQUVoSEMsbUJBQVcsRUFBRXhELCtDQUFPLENBQUNDLE1BQVIsQ0FBZTZDLFdBRm9GO0FBR2hIVyxpQkFBUyxFQUFFLE1BQU07QUFBQ04saUJBQU8sQ0FBQyxJQUFELENBQVA7QUFBZSxTQUgrRTtBQUloSE8sZ0JBQVEsRUFBRSxNQUFNO0FBQUNQLGlCQUFPLENBQUMsS0FBRCxDQUFQO0FBQWdCO0FBSitFLE9BQXBIO0FBTUgsS0FQTSxDQUFQO0FBUUg7O0FBNUhrRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9hZGRvbmxpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3MsIEV2ZW50c30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL21vZGFsc1wiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcbmltcG9ydCBBZGRvbkNhcmQgZnJvbSBcIi4vYWRkb25jYXJkXCI7XHJcbmltcG9ydCBEcm9wZG93biBmcm9tIFwiLi9jb21wb25lbnRzL2Ryb3Bkb3duXCI7XHJcbmltcG9ydCBTZWFyY2ggZnJvbSBcIi4vY29tcG9uZW50cy9zZWFyY2hcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkZG9uTGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtzb3J0OiBcIm5hbWVcIiwgYXNjZW5kaW5nOiB0cnVlLCBxdWVyeTogXCJcIn07XHJcbiAgICAgICAgdGhpcy5zb3J0ID0gdGhpcy5zb3J0LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZXZlcnNlID0gdGhpcy5yZXZlcnNlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAgICAgRXZlbnRzLm9uKGAke3RoaXMucHJvcHMucHJlZml4fS1sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICAgICAgRXZlbnRzLm9uKGAke3RoaXMucHJvcHMucHJlZml4fS11bmxvYWRlZGAsIHRoaXMudXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKGAke3RoaXMucHJvcHMucHJlZml4fS1sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICAgICAgRXZlbnRzLm9mZihgJHt0aGlzLnByb3BzLnByZWZpeH0tdW5sb2FkZWRgLCB0aGlzLnVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKCkge1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVmcmVzaExpc3QpIHRoaXMucHJvcHMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2ZXJzZSh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2FzY2VuZGluZzogdmFsdWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0KHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7c29ydDogdmFsdWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2goZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtxdWVyeTogZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCl9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc29ydE9wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLkFkZG9ucy5uYW1lLCB2YWx1ZTogXCJuYW1lXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLmF1dGhvciwgdmFsdWU6IFwiYXV0aG9yXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLnZlcnNpb24sIHZhbHVlOiBcInZlcnNpb25cIn0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5BZGRvbnMuYWRkZWQsIHZhbHVlOiBcImFkZGVkXCJ9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFN0cmluZ3MuQWRkb25zLm1vZGlmaWVkLCB2YWx1ZTogXCJtb2RpZmllZFwifVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpcmVjdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge2xhYmVsOiBTdHJpbmdzLlNvcnRpbmcuYXNjZW5kaW5nLCB2YWx1ZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogU3RyaW5ncy5Tb3J0aW5nLmRlc2NlbmRpbmcsIHZhbHVlOiBmYWxzZX1cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIGZvbGRlciwgYWRkb25MaXN0LCBhZGRvblN0YXRlLCBvbkNoYW5nZSwgcmVsb2FkfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qgc2hvd1JlbG9hZEljb24gPSAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogU3RyaW5ncy5BZGRvbnMub3BlbkZvbGRlci5mb3JtYXQoe3R5cGU6IHRpdGxlfSksIG9uQ2xpY2s6ICgpID0+IHtyZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTt9fSA6IG51bGw7XHJcbiAgICAgICAgY29uc3Qgc29ydGVkQWRkb25zID0gYWRkb25MaXN0LnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBhW3RoaXMuc3RhdGUuc29ydF07XHJcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZCA9IGJbdGhpcy5zdGF0ZS5zb3J0XTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihmaXJzdCkgPT0gXCJzdHJpbmdcIikgcmV0dXJuIGZpcnN0LnRvTG9jYWxlTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShzZWNvbmQudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGlmIChmaXJzdCA+IHNlY29uZCkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChzZWNvbmQgPiBmaXJzdCkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuYXNjZW5kaW5nKSBzb3J0ZWRBZGRvbnMucmV2ZXJzZSgpO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIDxTZXR0aW5nc1RpdGxlIGtleT1cInRpdGxlXCIgdGV4dD17dGl0bGV9IGJ1dHRvbj17YnV0dG9ufSBvdGhlckNoaWxkcmVuPXtzaG93UmVsb2FkSWNvbiAmJiA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWRcIiBvbkNsaWNrPXt0aGlzLnJlbG9hZC5iaW5kKHRoaXMpfSAvPn0gLz4sXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtY29udHJvbHMgYmQtYWRkb24tY29udHJvbHNcIj5cclxuICAgICAgICAgICAgICAgIDxTZWFyY2ggb25DaGFuZ2U9e3RoaXMuc2VhcmNofSBwbGFjZWhvbGRlcj17YCR7U3RyaW5ncy5BZGRvbnMuc2VhcmNoLmZvcm1hdCh7dHlwZTogdGhpcy5wcm9wcy50aXRsZX0pfS4uLmB9IC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLWFkZG9uLWRyb3Bkb3duc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJkLWxhYmVsXCI+e1N0cmluZ3MuU29ydGluZy5zb3J0Qnl9OjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93biBvcHRpb25zPXt0aGlzLnNvcnRPcHRpb25zfSBvbkNoYW5nZT17dGhpcy5zb3J0fSBzdHlsZT1cInRyYW5zcGFyZW50XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlbGVjdC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJiZC1sYWJlbFwiPntTdHJpbmdzLlNvcnRpbmcub3JkZXJ9OjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93biBvcHRpb25zPXt0aGlzLmRpcmVjdGlvbnN9IG9uQ2hhbmdlPXt0aGlzLnJldmVyc2V9IHN0eWxlPVwidHJhbnNwYXJlbnRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PixcclxuICAgICAgICAgICAgPGRpdiBrZXk9XCJhZGRvbkxpc3RcIiBjbGFzc05hbWU9e1wiYmQtYWRkb24tbGlzdFwifT5cclxuICAgICAgICAgICAge3NvcnRlZEFkZG9ucy5tYXAoYWRkb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucXVlcnkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF0Y2hlcyA9IGFkZG9uLm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnN0YXRlLnF1ZXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hlcyB8fCBhZGRvbi5hdXRob3IudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnN0YXRlLnF1ZXJ5KTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hlcyB8fCBhZGRvbi5kZXNjcmlwdGlvbi50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc3RhdGUucXVlcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2hlcykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNTZXR0aW5ncyA9IGFkZG9uLnR5cGUgJiYgdHlwZW9mKGFkZG9uLnBsdWdpbi5nZXRTZXR0aW5nc1BhbmVsKSA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0U2V0dGluZ3MgPSBoYXNTZXR0aW5ncyAmJiBhZGRvbi5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbC5iaW5kKGFkZG9uLnBsdWdpbik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPEFkZG9uQ2FyZCBlZGl0QWRkb249e3RoaXMuZWRpdEFkZG9uLmJpbmQodGhpcywgYWRkb24uaWQpfSBkZWxldGVBZGRvbj17dGhpcy5kZWxldGVBZGRvbi5iaW5kKHRoaXMsIGFkZG9uLmlkKX0gc2hvd1JlbG9hZEljb249e3Nob3dSZWxvYWRJY29ufSBrZXk9e2FkZG9uLmlkfSBlbmFibGVkPXthZGRvblN0YXRlW2FkZG9uLmlkXX0gYWRkb249e2FkZG9ufSBvbkNoYW5nZT17b25DaGFuZ2V9IHJlbG9hZD17cmVsb2FkfSBoYXNTZXR0aW5ncz17aGFzU2V0dGluZ3N9IGdldFNldHRpbmdzUGFuZWw9e2dldFNldHRpbmdzfSAvPjtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdEFkZG9uKGlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZWRpdEFkZG9uKSB0aGlzLnByb3BzLmVkaXRBZGRvbihpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlQWRkb24oaWQpIHtcclxuICAgICAgICBjb25zdCBhZGRvbiA9IHRoaXMucHJvcHMuYWRkb25MaXN0LmZpbmQoYSA9PiBhLmlkID09IGlkKTtcclxuICAgICAgICBjb25zdCBzaG91bGREZWxldGUgPSBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoYWRkb24pO1xyXG4gICAgICAgIGlmICghc2hvdWxkRGVsZXRlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVsZXRlQWRkb24pIHRoaXMucHJvcHMuZGVsZXRlQWRkb24oYWRkb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpcm1EZWxldGUoYWRkb24pIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIE1vZGFscy5zaG93Q29uZmlybWF0aW9uTW9kYWwoU3RyaW5ncy5Nb2RhbHMuY29uZmlybUFjdGlvbiwgU3RyaW5ncy5BZGRvbnMuY29uZmlybURlbGV0ZS5mb3JtYXQoe25hbWU6IGFkZG9uLm5hbWV9KSwge1xyXG4gICAgICAgICAgICAgICAgZGFuZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IFN0cmluZ3MuQWRkb25zLmRlbGV0ZUFkZG9uLFxyXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiAoKSA9PiB7cmVzb2x2ZSh0cnVlKTt9LFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6ICgpID0+IHtyZXNvbHZlKGZhbHNlKTt9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/addonlist.jsx\n");
/***/ }),
/***/ "./src/ui/settings/attribution.jsx":
/*!*****************************************!*\
!*** ./src/ui/settings/attribution.jsx ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BBDAttribution; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nclass BBDAttribution extends modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].Component {\n buildTitle(name, version, author) {\n const title = modules__WEBPACK_IMPORTED_MODULE_1__[\"Strings\"].Addons.title.split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = name;\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = version;\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n if (nameIndex) title[authorIndex] = author;\n return title.flat();\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n id: \"bbd-version\"\n }, this.buildTitle(\"BBD\", data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \"Zerebos\")));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2F0dHJpYnV0aW9uLmpzeD8xNzg0Il0sIm5hbWVzIjpbIkJCREF0dHJpYnV0aW9uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJidWlsZFRpdGxlIiwibmFtZSIsInZlcnNpb24iLCJhdXRob3IiLCJ0aXRsZSIsIlN0cmluZ3MiLCJBZGRvbnMiLCJzcGxpdCIsIm5hbWVJbmRleCIsImZpbmRJbmRleCIsInMiLCJ2ZXJzaW9uSW5kZXgiLCJhdXRob3JJbmRleCIsImZsYXQiLCJyZW5kZXIiLCJDb25maWciLCJiYmRWZXJzaW9uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxjQUFOLFNBQTZCQyw2Q0FBSyxDQUFDQyxTQUFuQyxDQUE2QztBQUV4REMsWUFBVSxDQUFDQyxJQUFELEVBQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEVBQXdCO0FBQzlCLFVBQU1DLEtBQUssR0FBR0MsK0NBQU8sQ0FBQ0MsTUFBUixDQUFlRixLQUFmLENBQXFCRyxLQUFyQixDQUEyQixpQkFBM0IsQ0FBZDtBQUNBLFVBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxTQUFOLENBQWdCQyxDQUFDLElBQUlBLENBQUMsSUFBSSxVQUExQixDQUFsQjtBQUNBLFFBQUlGLFNBQUosRUFBZUosS0FBSyxDQUFDSSxTQUFELENBQUwsR0FBbUJQLElBQW5CO0FBQ2YsVUFBTVUsWUFBWSxHQUFHUCxLQUFLLENBQUNLLFNBQU4sQ0FBZ0JDLENBQUMsSUFBSUEsQ0FBQyxJQUFJLGFBQTFCLENBQXJCO0FBQ0EsUUFBSUYsU0FBSixFQUFlSixLQUFLLENBQUNPLFlBQUQsQ0FBTCxHQUFzQlQsT0FBdEI7QUFDZixVQUFNVSxXQUFXLEdBQUdSLEtBQUssQ0FBQ0ssU0FBTixDQUFnQkMsQ0FBQyxJQUFJQSxDQUFDLElBQUksWUFBMUIsQ0FBcEI7QUFDQSxRQUFJRixTQUFKLEVBQWVKLEtBQUssQ0FBQ1EsV0FBRCxDQUFMLEdBQXFCVCxNQUFyQjtBQUNmLFdBQU9DLEtBQUssQ0FBQ1MsSUFBTixFQUFQO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU87QUFBSyxRQUFFLEVBQUM7QUFBUixPQUNGLEtBQUtkLFVBQUwsQ0FBZ0IsS0FBaEIsRUFBdUJlLDJDQUFNLENBQUNDLFVBQTlCLEVBQTBDO0FBQUcsVUFBSSxFQUFDLDRCQUFSO0FBQXFDLFlBQU0sRUFBQyxRQUE1QztBQUFxRCxTQUFHLEVBQUM7QUFBekQsaUJBQTFDLENBREUsQ0FBUDtBQUdIOztBQWpCdUQiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvYXR0cmlidXRpb24uanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7UmVhY3QsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCQkRBdHRyaWJ1dGlvbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IFN0cmluZ3MuQWRkb25zLnRpdGxlLnNwbGl0KC8oe3tbQS1aYS16XSt9fSkvKTtcclxuICAgICAgICBjb25zdCBuYW1lSW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3tuYW1lfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbbmFtZUluZGV4XSA9IG5hbWU7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbkluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7dmVyc2lvbn19XCIpO1xyXG4gICAgICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW3ZlcnNpb25JbmRleF0gPSB2ZXJzaW9uO1xyXG4gICAgICAgIGNvbnN0IGF1dGhvckluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7YXV0aG9yfX1cIik7XHJcbiAgICAgICAgaWYgKG5hbWVJbmRleCkgdGl0bGVbYXV0aG9ySW5kZXhdID0gYXV0aG9yO1xyXG4gICAgICAgIHJldHVybiB0aXRsZS5mbGF0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGlkPVwiYmJkLXZlcnNpb25cIj5cclxuICAgICAgICAgICAge3RoaXMuYnVpbGRUaXRsZShcIkJCRFwiLCBDb25maWcuYmJkVmVyc2lvbiwgPGEgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlplcmVib3M8L2E+KX1cclxuICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/attribution.jsx\n");
/***/ }),
/***/ "./src/ui/settings/components/dropdown.jsx":
/*!*************************************************!*\
!*** ./src/ui/settings/components/dropdown.jsx ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Select; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_downarrow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/downarrow */ \"./src/ui/icons/downarrow.jsx\");\n\n\nclass Select extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n open: false,\n value: this.props.value || this.props.options[0].value\n };\n this.dropdown = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.onChange = this.onChange.bind(this);\n this.showMenu = this.showMenu.bind(this);\n this.hideMenu = this.hideMenu.bind(this);\n }\n\n showMenu(event) {\n event.preventDefault();\n this.setState({\n open: true\n }, () => {\n document.addEventListener(\"click\", this.hideMenu);\n });\n }\n\n hideMenu() {\n this.setState({\n open: false\n }, () => {\n document.removeEventListener(\"click\", this.hideMenu);\n });\n }\n\n onChange(value) {\n this.setState({\n value\n });\n if (this.props.onChange) this.props.onChange(value);\n }\n\n get selected() {\n return this.props.options.find(o => o.value == this.state.value);\n }\n\n get options() {\n const selected = this.selected;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-options\"\n }, this.props.options.map(opt => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select-option${selected.value == opt.value ? \" selected\" : \"\"}`,\n onClick: this.onChange.bind(this, opt.value)\n }, opt.label)));\n }\n\n render() {\n const style = this.props.style == \"transparent\" ? \" bd-select-transparent\" : \"\";\n const isOpen = this.state.open ? \" menu-open\" : \"\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-select${style}${isOpen}`,\n onClick: this.showMenu,\n ref: this.dropdown\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-select-value\"\n }, this.selected.label), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_downarrow__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-select-arrow\"\n }), this.state.open && this.options);\n }\n\n} // return <div className=\"bd-select-wrap\">\n// <label className=\"bd-label\">{this.props.label}</label>\n// <div className={`bd-select${style}${isOpen}`} onClick={this.showMenu} ref={this.dropdown}>\n// <div className=\"bd-select-controls\">\n// <div className=\"bd-select-value\">{this.selected.label}</div>\n// <Arrow className=\"bd-select-arrow\" />\n// </div>\n// </div>\n// {this.state.open && this.options}\n// </div>;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvZHJvcGRvd24uanN4PzRhOWMiXSwibmFtZXMiOlsiU2VsZWN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic3RhdGUiLCJvcGVuIiwidmFsdWUiLCJvcHRpb25zIiwiZHJvcGRvd24iLCJjcmVhdGVSZWYiLCJvbkNoYW5nZSIsImJpbmQiLCJzaG93TWVudSIsImhpZGVNZW51IiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInNldFN0YXRlIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNlbGVjdGVkIiwiZmluZCIsIm8iLCJtYXAiLCJvcHQiLCJsYWJlbCIsInJlbmRlciIsInN0eWxlIiwiaXNPcGVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLFVBQUksRUFBRSxLQUFQO0FBQWNDLFdBQUssRUFBRSxLQUFLSCxLQUFMLENBQVdHLEtBQVgsSUFBb0IsS0FBS0gsS0FBTCxDQUFXSSxPQUFYLENBQW1CLENBQW5CLEVBQXNCRDtBQUEvRCxLQUFiO0FBQ0EsU0FBS0UsUUFBTCxHQUFnQlIsNkNBQUssQ0FBQ1MsU0FBTixFQUFoQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNELElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDQSxTQUFLRSxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0YsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNIOztBQUVEQyxVQUFRLENBQUNFLEtBQUQsRUFBUTtBQUNaQSxTQUFLLENBQUNDLGNBQU47QUFDQSxTQUFLQyxRQUFMLENBQWM7QUFBQ1gsVUFBSSxFQUFFO0FBQVAsS0FBZCxFQUE0QixNQUFNO0FBQzlCWSxjQUFRLENBQUNDLGdCQUFULENBQTBCLE9BQTFCLEVBQW1DLEtBQUtMLFFBQXhDO0FBQ0gsS0FGRDtBQUdIOztBQUVEQSxVQUFRLEdBQUc7QUFDUCxTQUFLRyxRQUFMLENBQWM7QUFBQ1gsVUFBSSxFQUFFO0FBQVAsS0FBZCxFQUE2QixNQUFNO0FBQy9CWSxjQUFRLENBQUNFLG1CQUFULENBQTZCLE9BQTdCLEVBQXNDLEtBQUtOLFFBQTNDO0FBQ0gsS0FGRDtBQUdIOztBQUVESCxVQUFRLENBQUNKLEtBQUQsRUFBUTtBQUNaLFNBQUtVLFFBQUwsQ0FBYztBQUFDVjtBQUFELEtBQWQ7QUFDQSxRQUFJLEtBQUtILEtBQUwsQ0FBV08sUUFBZixFQUF5QixLQUFLUCxLQUFMLENBQVdPLFFBQVgsQ0FBb0JKLEtBQXBCO0FBQzVCOztBQUVELE1BQUljLFFBQUosR0FBZTtBQUFDLFdBQU8sS0FBS2pCLEtBQUwsQ0FBV0ksT0FBWCxDQUFtQmMsSUFBbkIsQ0FBd0JDLENBQUMsSUFBSUEsQ0FBQyxDQUFDaEIsS0FBRixJQUFXLEtBQUtGLEtBQUwsQ0FBV0UsS0FBbkQsQ0FBUDtBQUFrRTs7QUFFbEYsTUFBSUMsT0FBSixHQUFjO0FBQ1YsVUFBTWEsUUFBUSxHQUFHLEtBQUtBLFFBQXRCO0FBQ0EsV0FBTztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0YsS0FBS2pCLEtBQUwsQ0FBV0ksT0FBWCxDQUFtQmdCLEdBQW5CLENBQXVCQyxHQUFHLElBQ3ZCO0FBQUssZUFBUyxFQUFHLG1CQUFrQkosUUFBUSxDQUFDZCxLQUFULElBQWtCa0IsR0FBRyxDQUFDbEIsS0FBdEIsR0FBOEIsV0FBOUIsR0FBNEMsRUFBRyxFQUFsRjtBQUFxRixhQUFPLEVBQUUsS0FBS0ksUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLEVBQXlCYSxHQUFHLENBQUNsQixLQUE3QjtBQUE5RixPQUFvSWtCLEdBQUcsQ0FBQ0MsS0FBeEksQ0FESCxDQURFLENBQVA7QUFLSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTUMsS0FBSyxHQUFHLEtBQUt4QixLQUFMLENBQVd3QixLQUFYLElBQW9CLGFBQXBCLEdBQW9DLHdCQUFwQyxHQUErRCxFQUE3RTtBQUNBLFVBQU1DLE1BQU0sR0FBRyxLQUFLeEIsS0FBTCxDQUFXQyxJQUFYLEdBQWtCLFlBQWxCLEdBQWlDLEVBQWhEO0FBQ0EsV0FBUTtBQUFLLGVBQVMsRUFBRyxZQUFXc0IsS0FBTSxHQUFFQyxNQUFPLEVBQTNDO0FBQThDLGFBQU8sRUFBRSxLQUFLaEIsUUFBNUQ7QUFBc0UsU0FBRyxFQUFFLEtBQUtKO0FBQWhGLE9BQ0k7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUFrQyxLQUFLWSxRQUFMLENBQWNLLEtBQWhELENBREosRUFFSSw0REFBQyx3REFBRDtBQUFPLGVBQVMsRUFBQztBQUFqQixNQUZKLEVBR0ssS0FBS3JCLEtBQUwsQ0FBV0MsSUFBWCxJQUFtQixLQUFLRSxPQUg3QixDQUFSO0FBS0g7O0FBL0MrQyxDLENBa0RwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL2Ryb3Bkb3duLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBBcnJvdyBmcm9tIFwiLi4vLi4vaWNvbnMvZG93bmFycm93XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtvcGVuOiBmYWxzZSwgdmFsdWU6IHRoaXMucHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5vcHRpb25zWzBdLnZhbHVlfTtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNob3dNZW51ID0gdGhpcy5zaG93TWVudS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuaGlkZU1lbnUgPSB0aGlzLmhpZGVNZW51LmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd01lbnUoZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe29wZW46IHRydWV9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmhpZGVNZW51KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlTWVudSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtvcGVuOiBmYWxzZX0sICgpID0+IHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuaGlkZU1lbnUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7dmFsdWV9KTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlbGVjdGVkKCkge3JldHVybiB0aGlzLnByb3BzLm9wdGlvbnMuZmluZChvID0+IG8udmFsdWUgPT0gdGhpcy5zdGF0ZS52YWx1ZSk7fVxyXG5cclxuICAgIGdldCBvcHRpb25zKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZDtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5vcHRpb25zLm1hcChvcHQgPT4gXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdC1vcHRpb24ke3NlbGVjdGVkLnZhbHVlID09IG9wdC52YWx1ZSA/IFwiIHNlbGVjdGVkXCIgOiBcIlwifWB9IG9uQ2xpY2s9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzLCBvcHQudmFsdWUpfT57b3B0LmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlID09IFwidHJhbnNwYXJlbnRcIiA/IFwiIGJkLXNlbGVjdC10cmFuc3BhcmVudFwiIDogXCJcIjtcclxuICAgICAgICBjb25zdCBpc09wZW4gPSB0aGlzLnN0YXRlLm9wZW4gPyBcIiBtZW51LW9wZW5cIiA6IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuICA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdCR7c3R5bGV9JHtpc09wZW59YH0gb25DbGljaz17dGhpcy5zaG93TWVudX0gcmVmPXt0aGlzLmRyb3Bkb3dufT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlbGVjdC12YWx1ZVwiPnt0aGlzLnNlbGVjdGVkLmxhYmVsfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxBcnJvdyBjbGFzc05hbWU9XCJiZC1zZWxlY3QtYXJyb3dcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLm9wZW4gJiYgdGhpcy5vcHRpb25zfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3Qtd3JhcFwiPlxyXG4vLyA8bGFiZWwgY2xhc3NOYW1lPVwiYmQtbGFiZWxcIj57dGhpcy5wcm9wcy5sYWJlbH08L2xhYmVsPlxyXG4vLyA8ZGl2IGNsYXNzTmFtZT17YGJkLXNlbGVjdCR7c3R5bGV9JHtpc09wZW59YH0gb25DbGljaz17dGhpcy5zaG93TWVudX0gcmVmPXt0aGlzLmRyb3Bkb3dufT5cclxuLy8gICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LWNvbnRyb2xzXCI+XHJcbi8vICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZWxlY3QtdmFsdWVcIj57dGhpcy5zZWxlY3RlZC5sYWJlbH08L2Rpdj5cclxuLy8gICAgICAgICA8QXJyb3cgY2xhc3NOYW1lPVwiYmQtc2VsZWN0LWFycm93XCIgLz5cclxuLy8gICAgIDwvZGl2PlxyXG4vLyA8L2Rpdj5cclxuLy8ge3RoaXMuc3RhdGUub3BlbiAmJiB0aGlzLm9wdGlvbnN9XHJcbi8vIDwvZGl2PjsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/components/dropdown.jsx\n");
/***/ }),
/***/ "./src/ui/settings/components/item.jsx":
/*!*********************************************!*\
!*** ./src/ui/settings/components/item.jsx ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SettingItem; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass SettingItem extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n htmlFor: this.props.id,\n className: \"bd-setting-title\"\n }, this.props.name), this.props.children), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-note\"\n }, this.props.note), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-setting-divider\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvaXRlbS5qc3g/NzY1NyJdLCJuYW1lcyI6WyJTZXR0aW5nSXRlbSIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwicHJvcHMiLCJpZCIsIm5hbWUiLCJjaGlsZHJlbiIsIm5vdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFDckRDLFFBQU0sR0FBRztBQUNMLFdBQU87QUFBSyxlQUFTLEVBQUU7QUFBaEIsT0FDSztBQUFLLGVBQVMsRUFBRTtBQUFoQixPQUNJO0FBQU8sYUFBTyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsRUFBM0I7QUFBK0IsZUFBUyxFQUFFO0FBQTFDLE9BQStELEtBQUtELEtBQUwsQ0FBV0UsSUFBMUUsQ0FESixFQUVLLEtBQUtGLEtBQUwsQ0FBV0csUUFGaEIsQ0FETCxFQUtLO0FBQUssZUFBUyxFQUFFO0FBQWhCLE9BQW9DLEtBQUtILEtBQUwsQ0FBV0ksSUFBL0MsQ0FMTCxFQU1LO0FBQUssZUFBUyxFQUFFO0FBQWhCLE1BTkwsQ0FBUDtBQVFIOztBQVZvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL2l0ZW0uanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e1wiYmQtc2V0dGluZy1pdGVtXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImJkLXNldHRpbmctaGVhZGVyXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17dGhpcy5wcm9wcy5pZH0gY2xhc3NOYW1lPXtcImJkLXNldHRpbmctdGl0bGVcIn0+e3RoaXMucHJvcHMubmFtZX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJiZC1zZXR0aW5nLW5vdGVcIn0+e3RoaXMucHJvcHMubm90ZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJiZC1zZXR0aW5nLWRpdmlkZXJcIn0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/components/item.jsx\n");
/***/ }),
/***/ "./src/ui/settings/components/search.jsx":
/*!***********************************************!*\
!*** ./src/ui/settings/components/search.jsx ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Search; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../icons/search */ \"./src/ui/icons/search.jsx\");\n\n\nclass Search extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-search-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n onChange: this.props.onChange,\n onKeyDown: this.props.onKeyDown,\n type: \"text\",\n className: \"bd-search\",\n placeholder: this.props.placeholder,\n maxLength: \"50\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_search__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc2VhcmNoLmpzeD82NzI0Il0sIm5hbWVzIjpbIlNlYXJjaCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwicHJvcHMiLCJvbkNoYW5nZSIsIm9uS2V5RG93biIsInBsYWNlaG9sZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsUUFBTSxHQUFHO0FBQ0wsV0FBTztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0s7QUFBTyxjQUFRLEVBQUUsS0FBS0MsS0FBTCxDQUFXQyxRQUE1QjtBQUFzQyxlQUFTLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxTQUE1RDtBQUF1RSxVQUFJLEVBQUMsTUFBNUU7QUFBbUYsZUFBUyxFQUFDLFdBQTdGO0FBQXlHLGlCQUFXLEVBQUUsS0FBS0YsS0FBTCxDQUFXRyxXQUFqSTtBQUE4SSxlQUFTLEVBQUM7QUFBeEosTUFETCxFQUVLLDREQUFDLHFEQUFELE9BRkwsQ0FBUDtBQUlIOztBQU4rQyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb21wb25lbnRzL3NlYXJjaC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiLi4vLi4vaWNvbnMvc2VhcmNoXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWFyY2ggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImJkLXNlYXJjaC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG9uQ2hhbmdlPXt0aGlzLnByb3BzLm9uQ2hhbmdlfSBvbktleURvd249e3RoaXMucHJvcHMub25LZXlEb3dufSB0eXBlPVwidGV4dFwiIGNsYXNzTmFtZT1cImJkLXNlYXJjaFwiIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfSBtYXhMZW5ndGg9XCI1MFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/components/search.jsx\n");
/***/ }),
/***/ "./src/ui/settings/components/switch.jsx":
/*!***********************************************!*\
!*** ./src/ui/settings/components/switch.jsx ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Switch; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Switch extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.checked\n };\n this.onChange = this.onChange.bind(this);\n }\n\n onChange() {\n if (this.props.disabled) return;\n this.props.onChange(!this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n render() {\n const enabledClass = this.props.disabled ? \" bd-switch-disabled\" : \"\";\n const checkedClass = this.state.checked ? \" bd-switch-checked\" : \"\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `bd-switch` + enabledClass + checkedClass\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n type: \"checkbox\",\n id: this.props.id,\n className: `bd-checkbox`,\n disabled: this.props.disabled,\n checked: this.state.checked,\n onChange: this.onChange\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbXBvbmVudHMvc3dpdGNoLmpzeD82MWQyIl0sIm5hbWVzIjpbIlN3aXRjaCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwiYmluZCIsImRpc2FibGVkIiwic2V0U3RhdGUiLCJyZW5kZXIiLCJlbmFibGVkQ2xhc3MiLCJjaGVja2VkQ2xhc3MiLCJpZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxNQUFOLFNBQXFCQyw2Q0FBSyxDQUFDQyxTQUEzQixDQUFxQztBQUNoREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQUNDLGFBQU8sRUFBRSxLQUFLRixLQUFMLENBQVdFO0FBQXJCLEtBQWI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtBLFFBQUwsQ0FBY0MsSUFBZCxDQUFtQixJQUFuQixDQUFoQjtBQUNIOztBQUVERCxVQUFRLEdBQUc7QUFDUCxRQUFJLEtBQUtILEtBQUwsQ0FBV0ssUUFBZixFQUF5QjtBQUN6QixTQUFLTCxLQUFMLENBQVdHLFFBQVgsQ0FBb0IsQ0FBQyxLQUFLRixLQUFMLENBQVdDLE9BQWhDO0FBQ0EsU0FBS0ksUUFBTCxDQUFjO0FBQUNKLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNIOztBQUVESyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxZQUFZLEdBQUcsS0FBS1IsS0FBTCxDQUFXSyxRQUFYLEdBQXNCLHFCQUF0QixHQUE4QyxFQUFuRTtBQUNBLFVBQU1JLFlBQVksR0FBRyxLQUFLUixLQUFMLENBQVdDLE9BQVgsR0FBcUIsb0JBQXJCLEdBQTRDLEVBQWpFO0FBQ0EsV0FBUTtBQUFLLGVBQVMsRUFBRyxXQUFELEdBQWNNLFlBQWQsR0FBNkJDO0FBQTdDLE9BQ0k7QUFBTyxVQUFJLEVBQUMsVUFBWjtBQUF1QixRQUFFLEVBQUUsS0FBS1QsS0FBTCxDQUFXVSxFQUF0QztBQUEwQyxlQUFTLEVBQUcsYUFBdEQ7QUFBb0UsY0FBUSxFQUFFLEtBQUtWLEtBQUwsQ0FBV0ssUUFBekY7QUFBbUcsYUFBTyxFQUFFLEtBQUtKLEtBQUwsQ0FBV0MsT0FBdkg7QUFBZ0ksY0FBUSxFQUFFLEtBQUtDO0FBQS9JLE1BREosQ0FBUjtBQUdIOztBQW5CK0MiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvY29tcG9uZW50cy9zd2l0Y2guanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN3aXRjaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge2NoZWNrZWQ6IHRoaXMucHJvcHMuY2hlY2tlZH07XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoIXRoaXMuc3RhdGUuY2hlY2tlZCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBlbmFibGVkQ2xhc3MgPSB0aGlzLnByb3BzLmRpc2FibGVkID8gXCIgYmQtc3dpdGNoLWRpc2FibGVkXCIgOiBcIlwiO1xyXG4gICAgICAgIGNvbnN0IGNoZWNrZWRDbGFzcyA9IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwiIGJkLXN3aXRjaC1jaGVja2VkXCIgOiBcIlwiO1xyXG4gICAgICAgIHJldHVybiAgPGRpdiBjbGFzc05hbWU9e2BiZC1zd2l0Y2hgICsgZW5hYmxlZENsYXNzICsgY2hlY2tlZENsYXNzfT5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17YGJkLWNoZWNrYm94YH0gZGlzYWJsZWQ9e3RoaXMucHJvcHMuZGlzYWJsZWR9IGNoZWNrZWQ9e3RoaXMuc3RhdGUuY2hlY2tlZH0gb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/components/switch.jsx\n");
/***/ }),
/***/ "./src/ui/settings/divider.jsx":
/*!*************************************!*\
!*** ./src/ui/settings/divider.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Divider; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Divider extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2RpdmlkZXIuanN4P2M4Y2MiXSwibmFtZXMiOlsiRGl2aWRlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE9BQU4sU0FBc0JDLDZDQUFLLENBQUNDLFNBQTVCLENBQXNDO0FBQ2pEQyxRQUFNLEdBQUc7QUFDTCxXQUFPO0FBQUssZUFBUyxFQUFDO0FBQWYsTUFBUDtBQUNIOztBQUhnRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9kaXZpZGVyLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1kaXZpZGVyIGRpdmlkZXItMzU3M29PIG1hcmdpblRvcDgtMURMWjFuIG1hcmdpbkJvdHRvbTQwLTJ2SXdUdlwiIC8+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/divider.jsx\n");
/***/ }),
/***/ "./src/ui/settings/group.jsx":
/*!***********************************!*\
!*** ./src/ui/settings/group.jsx ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Group; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _divider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./divider */ \"./src/ui/settings/divider.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/settings/components/switch.jsx\");\n/* harmony import */ var _components_dropdown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/dropdown */ \"./src/ui/settings/components/dropdown.jsx\");\n/* harmony import */ var _components_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/item */ \"./src/ui/settings/components/item.jsx\");\n\n\n\n\n\n\nconst baseClassName = \"bd-settings-group\";\nclass Group extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n\n if (this.props.button && this.props.collapsible) {\n const original = this.props.button.onClick;\n\n this.props.button.onClick = event => {\n event.stopPropagation();\n original(...arguments);\n };\n }\n\n if (!this.props.hasOwnProperty(\"shown\")) this.props.shown = true;\n this.container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.state = {\n collapsed: this.props.collapsible && !this.props.shown\n };\n this.onChange = this.onChange.bind(this);\n this.toggleCollapse = this.toggleCollapse.bind(this);\n }\n\n toggleCollapse() {\n const container = this.container.current;\n const timeout = this.state.collapsed ? 300 : 1;\n container.style.setProperty(\"height\", container.scrollHeight + \"px\");\n container.classList.add(\"animating\");\n this.setState({\n collapsed: !this.state.collapsed\n }, () => setTimeout(() => {\n container.style.setProperty(\"height\", \"\");\n container.classList.remove(\"animating\");\n }, timeout));\n }\n\n onChange(id, value) {\n if (!this.props.onChange) return;\n if (this.props.id) this.props.onChange(this.props.id, id, value);else this.props.onChange(id, value);\n this.forceUpdate();\n }\n\n render() {\n const {\n settings\n } = this.props;\n const collapseClass = this.props.collapsible ? `collapsible ${this.state.collapsed ? \"collapsed\" : \"expanded\"}` : \"\";\n const groupClass = `${baseClassName} ${collapseClass}`;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: groupClass\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.props.name,\n collapsible: this.props.collapsible,\n onClick: this.toggleCollapse,\n button: this.props.button,\n isGroup: true\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-settings-container\",\n ref: this.container\n }, settings.filter(s => !s.hidden).map(setting => {\n let component = null;\n if (setting.type == \"dropdown\") component = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_dropdown__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n options: setting.options,\n value: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (setting.type == \"switch\") component = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n checked: setting.value,\n onChange: this.onChange.bind(this, setting.id)\n });\n if (!component) return null;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_components_item__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n id: setting.id,\n key: setting.id,\n name: setting.name,\n note: setting.note\n }, component);\n })), this.props.showDivider && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_divider__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2dyb3VwLmpzeD8xYjcyIl0sIm5hbWVzIjpbImJhc2VDbGFzc05hbWUiLCJHcm91cCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImJ1dHRvbiIsImNvbGxhcHNpYmxlIiwib3JpZ2luYWwiLCJvbkNsaWNrIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJhcmd1bWVudHMiLCJoYXNPd25Qcm9wZXJ0eSIsInNob3duIiwiY29udGFpbmVyIiwiY3JlYXRlUmVmIiwic3RhdGUiLCJjb2xsYXBzZWQiLCJvbkNoYW5nZSIsImJpbmQiLCJ0b2dnbGVDb2xsYXBzZSIsImN1cnJlbnQiLCJ0aW1lb3V0Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsInNjcm9sbEhlaWdodCIsImNsYXNzTGlzdCIsImFkZCIsInNldFN0YXRlIiwic2V0VGltZW91dCIsInJlbW92ZSIsImlkIiwidmFsdWUiLCJmb3JjZVVwZGF0ZSIsInJlbmRlciIsInNldHRpbmdzIiwiY29sbGFwc2VDbGFzcyIsImdyb3VwQ2xhc3MiLCJuYW1lIiwiZmlsdGVyIiwicyIsImhpZGRlbiIsIm1hcCIsInNldHRpbmciLCJjb21wb25lbnQiLCJ0eXBlIiwiZGlzYWJsZWQiLCJvcHRpb25zIiwibm90ZSIsInNob3dEaXZpZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsYUFBYSxHQUFHLG1CQUF0QjtBQUVlLE1BQU1DLEtBQU4sU0FBb0JDLDZDQUFLLENBQUNDLFNBQTFCLENBQW9DO0FBQy9DQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47O0FBRUEsUUFBSSxLQUFLQSxLQUFMLENBQVdDLE1BQVgsSUFBcUIsS0FBS0QsS0FBTCxDQUFXRSxXQUFwQyxFQUFpRDtBQUM3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O0FBQXpFLFNBQWdGSixTQUFoRixDQUFQO0FBQ0gsS0FOQSxDQURMLENBRkwsRUFXTSxLQUFLeEMsS0FBTCxDQUFXNkMsV0FBWCxJQUEwQiw0REFBQyxnREFBRCxPQVhoQyxDQUFQO0FBYUg7O0FBM0Q4QyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9ncm91cC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IERpdmlkZXIgZnJvbSBcIi4vZGl2aWRlclwiO1xyXG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL2NvbXBvbmVudHMvc3dpdGNoXCI7XHJcbmltcG9ydCBEcm9wZG93biBmcm9tIFwiLi9jb21wb25lbnRzL2Ryb3Bkb3duXCI7XHJcbmltcG9ydCBJdGVtIGZyb20gXCIuL2NvbXBvbmVudHMvaXRlbVwiO1xyXG5cclxuY29uc3QgYmFzZUNsYXNzTmFtZSA9IFwiYmQtc2V0dGluZ3MtZ3JvdXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyb3VwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5idXR0b24gJiYgdGhpcy5wcm9wcy5jb2xsYXBzaWJsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2s7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5oYXNPd25Qcm9wZXJ0eShcInNob3duXCIpKSB0aGlzLnByb3BzLnNob3duID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjb2xsYXBzZWQ6IHRoaXMucHJvcHMuY29sbGFwc2libGUgJiYgIXRoaXMucHJvcHMuc2hvd25cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UgPSB0aGlzLnRvZ2dsZUNvbGxhcHNlLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlQ29sbGFwc2UoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY3VycmVudDtcclxuICAgICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5zdGF0ZS5jb2xsYXBzZWQgPyAzMDAgOiAxO1xyXG4gICAgICAgIGNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eShcImhlaWdodFwiLCBjb250YWluZXIuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiKTtcclxuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChcImFuaW1hdGluZ1wiKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb2xsYXBzZWQ6ICF0aGlzLnN0YXRlLmNvbGxhcHNlZH0sICgpID0+IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJoZWlnaHRcIiwgXCJcIik7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0aW5nXCIpO1xyXG4gICAgICAgIH0sIHRpbWVvdXQpKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZShpZCwgdmFsdWUpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMub25DaGFuZ2UpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5pZCkgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmlkLCBpZCwgdmFsdWUpO1xyXG4gICAgICAgIGVsc2UgdGhpcy5wcm9wcy5vbkNoYW5nZShpZCwgdmFsdWUpO1xyXG4gICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge3NldHRpbmdzfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgY29sbGFwc2VDbGFzcyA9IHRoaXMucHJvcHMuY29sbGFwc2libGUgPyBgY29sbGFwc2libGUgJHt0aGlzLnN0YXRlLmNvbGxhcHNlZCA/IFwiY29sbGFwc2VkXCIgOiBcImV4cGFuZGVkXCJ9YCA6IFwiXCI7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBDbGFzcyA9IGAke2Jhc2VDbGFzc05hbWV9ICR7Y29sbGFwc2VDbGFzc31gO1xyXG5cclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2dyb3VwQ2xhc3N9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxUaXRsZSB0ZXh0PXt0aGlzLnByb3BzLm5hbWV9IGNvbGxhcHNpYmxlPXt0aGlzLnByb3BzLmNvbGxhcHNpYmxlfSBvbkNsaWNrPXt0aGlzLnRvZ2dsZUNvbGxhcHNlfSBidXR0b249e3RoaXMucHJvcHMuYnV0dG9ufSBpc0dyb3VwPXt0cnVlfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmQtc2V0dGluZ3MtY29udGFpbmVyXCIgcmVmPXt0aGlzLmNvbnRhaW5lcn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtzZXR0aW5ncy5maWx0ZXIocyA9PiAhcy5oaWRkZW4pLm1hcCgoc2V0dGluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy50eXBlID09IFwiZHJvcGRvd25cIikgY29tcG9uZW50ID0gPERyb3Bkb3duIGRpc2FibGVkPXtzZXR0aW5nLmRpc2FibGVkfSBpZD17c2V0dGluZy5pZH0gb3B0aW9ucz17c2V0dGluZy5vcHRpb25zfSB2YWx1ZT17c2V0dGluZy52YWx1ZX0gb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzLCBzZXR0aW5nLmlkKX0gLz47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy50eXBlID09IFwic3dpdGNoXCIpIGNvbXBvbmVudCA9IDxTd2l0Y2ggZGlzYWJsZWQ9e3NldHRpbmcuZGlzYWJsZWR9IGlkPXtzZXR0aW5nLmlkfSBjaGVja2VkPXtzZXR0aW5nLnZhbHVlfSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMsIHNldHRpbmcuaWQpfSAvPjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29tcG9uZW50KSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8SXRlbSBpZD17c2V0dGluZy5pZH0ga2V5PXtzZXR0aW5nLmlkfSBuYW1lPXtzZXR0aW5nLm5hbWV9IG5vdGU9e3NldHRpbmcubm90ZX0+e2NvbXBvbmVudH08L0l0ZW0+O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zaG93RGl2aWRlciAmJiA8RGl2aWRlciAvPn1cclxuICAgICAgICAgICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/group.jsx\n");
/***/ }),
/***/ "./src/ui/settings/title.jsx":
/*!***********************************!*\
!*** ./src/ui/settings/title.jsx ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SettingsTitle; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst className = \"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7\";\nconst className2 = \"bd-settings-title bd-settings-group-title h5-18_1nd title-3sZWYQ size12-3R0845 height16-2Lv3qA weightSemiBold-NJexzi da-h5 da-title da-size12 da-height16 da-weightSemiBold marginBottom4-2qk4Hy da-marginBottom4 marginTop8-1DLZ1n da-marginTop8\";\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n } //h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi da-h2 da-title da-size16 da-height20 da-weightSemiBold defaultColor-1_ajX0 da-defaultColor marginTop60-3PGbtK da-marginTop60 marginBottom20-32qID7 da-marginBottom20\n\n\n render() {\n const baseClass = this.props.isGroup ? className2 : className;\n const titleClass = this.props.className ? `${baseClass} ${this.props.className}` : baseClass;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: titleClass,\n onClick: () => {\n this.props.onClick && this.props.onClick();\n }\n }, this.props.text, this.props.button && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-button bd-button-title\",\n onClick: this.props.button.onClick\n }, this.props.button.title), this.props.otherChildren);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeD9iNTliIl0sIm5hbWVzIjpbImNsYXNzTmFtZSIsImNsYXNzTmFtZTIiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiYmFzZUNsYXNzIiwiaXNHcm91cCIsInRpdGxlQ2xhc3MiLCJvbkNsaWNrIiwidGV4dCIsImJ1dHRvbiIsInRpdGxlIiwib3RoZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxNQUFNQSxTQUFTLEdBQUcsK0pBQWxCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLG1QQUFuQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBQ3ZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSCxHQUhzRCxDQUkzRDs7O0FBQ0lDLFFBQU0sR0FBRztBQUNMLFVBQU1DLFNBQVMsR0FBRyxLQUFLRixLQUFMLENBQVdHLE9BQVgsR0FBcUJSLFVBQXJCLEdBQWtDRCxTQUFwRDtBQUNBLFVBQU1VLFVBQVUsR0FBRyxLQUFLSixLQUFMLENBQVdOLFNBQVgsR0FBd0IsR0FBRVEsU0FBVSxJQUFHLEtBQUtGLEtBQUwsQ0FBV04sU0FBVSxFQUE1RCxHQUFnRVEsU0FBbkY7QUFDQSxXQUFPO0FBQUksZUFBUyxFQUFFRSxVQUFmO0FBQTJCLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS0osS0FBTCxDQUFXSyxPQUFYLElBQXNCLEtBQUtMLEtBQUwsQ0FBV0ssT0FBWCxFQUF0QjtBQUE0QztBQUF2RixPQUNFLEtBQUtMLEtBQUwsQ0FBV00sSUFEYixFQUVFLEtBQUtOLEtBQUwsQ0FBV08sTUFBWCxJQUFxQjtBQUFRLGVBQVMsRUFBQywyQkFBbEI7QUFBOEMsYUFBTyxFQUFFLEtBQUtQLEtBQUwsQ0FBV08sTUFBWCxDQUFrQkY7QUFBekUsT0FBbUYsS0FBS0wsS0FBTCxDQUFXTyxNQUFYLENBQWtCQyxLQUFyRyxDQUZ2QixFQUdFLEtBQUtSLEtBQUwsQ0FBV1MsYUFIYixDQUFQO0FBS0g7O0FBYnNEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBjbGFzc05hbWUgPSBcImJkLXNldHRpbmdzLXRpdGxlIGgyLTJnV0UtbyB0aXRsZS0zc1pXWVEgc2l6ZTE2LTE0Y0d6NSBoZWlnaHQyMC1tTzJlSU4gd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRlZmF1bHRDb2xvci0xX2FqWDAgZGVmYXVsdE1hcmdpbmgyLTJMVGFVTCBtYXJnaW5Cb3R0b20yMC0zMnFJRDdcIjtcclxuY29uc3QgY2xhc3NOYW1lMiA9IFwiYmQtc2V0dGluZ3MtdGl0bGUgYmQtc2V0dGluZ3MtZ3JvdXAtdGl0bGUgaDUtMThfMW5kIHRpdGxlLTNzWldZUSBzaXplMTItM1IwODQ1IGhlaWdodDE2LTJMdjNxQSB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGEtaDUgZGEtdGl0bGUgZGEtc2l6ZTEyIGRhLWhlaWdodDE2IGRhLXdlaWdodFNlbWlCb2xkIG1hcmdpbkJvdHRvbTQtMnFrNEh5IGRhLW1hcmdpbkJvdHRvbTQgbWFyZ2luVG9wOC0xRExaMW4gZGEtbWFyZ2luVG9wOFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ3NUaXRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuLy9oMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oMiBkYS10aXRsZSBkYS1zaXplMTYgZGEtaGVpZ2h0MjAgZGEtd2VpZ2h0U2VtaUJvbGQgZGVmYXVsdENvbG9yLTFfYWpYMCBkYS1kZWZhdWx0Q29sb3IgbWFyZ2luVG9wNjAtM1BHYnRLIGRhLW1hcmdpblRvcDYwIG1hcmdpbkJvdHRvbTIwLTMycUlENyBkYS1tYXJnaW5Cb3R0b20yMFxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGJhc2VDbGFzcyA9IHRoaXMucHJvcHMuaXNHcm91cCA/IGNsYXNzTmFtZTIgOiBjbGFzc05hbWU7XHJcbiAgICAgICAgY29uc3QgdGl0bGVDbGFzcyA9IHRoaXMucHJvcHMuY2xhc3NOYW1lID8gYCR7YmFzZUNsYXNzfSAke3RoaXMucHJvcHMuY2xhc3NOYW1lfWAgOiBiYXNlQ2xhc3M7XHJcbiAgICAgICAgcmV0dXJuIDxoMiBjbGFzc05hbWU9e3RpdGxlQ2xhc3N9IG9uQ2xpY2s9eygpID0+IHt0aGlzLnByb3BzLm9uQ2xpY2sgJiYgdGhpcy5wcm9wcy5vbkNsaWNrKCk7fX0+XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy50ZXh0fVxyXG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuYnV0dG9uICYmIDxidXR0b24gY2xhc3NOYW1lPVwiYmQtYnV0dG9uIGJkLWJ1dHRvbi10aXRsZVwiIG9uQ2xpY2s9e3RoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2t9Pnt0aGlzLnByb3BzLmJ1dHRvbi50aXRsZX08L2J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5vdGhlckNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgPC9oMj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/title.jsx\n");
/***/ }),
/***/ "./src/ui/toasts.js":
/*!**************************!*\
!*** ./src/ui/toasts.js ***!
\**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Toasts; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst channelsClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"sidebar\", \"hasNotice\").sidebar.split(\" \")[0];\nconst membersWrapClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"membersWrap\").membersWrap.split(\" \")[0];\nclass Toasts {\n static get shouldShowToasts() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"general\", \"showToasts\");\n }\n /** Shorthand for `type = \"success\"` for {@link module:Toasts.show} */\n\n\n static async success(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"success\"\n }));\n }\n /** Shorthand for `type = \"info\"` for {@link module:Toasts.show} */\n\n\n static async info(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"info\"\n }));\n }\n /** Shorthand for `type = \"warning\"` for {@link module:Toasts.show} */\n\n\n static async warning(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"warning\"\n }));\n }\n /** Shorthand for `type = \"error\"` for {@link module:Toasts.show} */\n\n\n static async error(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"error\"\n }));\n }\n /** Shorthand for `type = \"default\"` for {@link module:Toasts.show} */\n\n\n static async default(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"\"\n }));\n }\n /**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\n static show(content, options = {}) {\n const {\n type = \"\",\n icon = true,\n timeout = 3000,\n forceShow = false\n } = options;\n if (!this.shouldShowToasts && !forceShow) return;\n this.ensureContainer();\n const toastElem = document.createElement(\"div\");\n toastElem.classList.add(\"bd-toast\");\n if (type) toastElem.classList.add(\"toast-\" + type);\n if (type && icon) toastElem.classList.add(\"icon\");\n toastElem.innerText = content;\n document.querySelector(\".bd-toasts\").appendChild(toastElem);\n setTimeout(() => {\n toastElem.classList.add(\"closing\");\n setTimeout(() => {\n toastElem.remove();\n if (!document.querySelectorAll(\".bd-toasts .bd-toast\").length) document.querySelector(\".bd-toasts\").remove();\n }, 300);\n }, timeout);\n }\n\n static ensureContainer() {\n if (document.querySelector(\".bd-toasts\")) return;\n const container = document.querySelector(`.${channelsClass} + div`);\n const memberlist = container.querySelector(`.${membersWrapClass}`);\n const form = container ? container.querySelector(\"form\") : null;\n const left = container ? container.getBoundingClientRect().left : 310;\n const right = memberlist ? memberlist.getBoundingClientRect().left : 0;\n const width = right ? right - container.getBoundingClientRect().left : container.offsetWidth;\n const bottom = form ? form.offsetHeight : 80;\n const toastWrapper = document.createElement(\"div\");\n toastWrapper.classList.add(\"bd-toasts\");\n toastWrapper.style.setProperty(\"left\", left + \"px\");\n toastWrapper.style.setProperty(\"width\", width + \"px\");\n toastWrapper.style.setProperty(\"bottom\", bottom + \"px\");\n document.querySelector(\"#app-mount\").appendChild(toastWrapper);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3RvYXN0cy5qcz9jZmU1Il0sIm5hbWVzIjpbImNoYW5uZWxzQ2xhc3MiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5UHJvcHMiLCJzaWRlYmFyIiwic3BsaXQiLCJtZW1iZXJzV3JhcENsYXNzIiwibWVtYmVyc1dyYXAiLCJUb2FzdHMiLCJzaG91bGRTaG93VG9hc3RzIiwiU2V0dGluZ3MiLCJnZXQiLCJzdWNjZXNzIiwiY29udGVudCIsIm9wdGlvbnMiLCJzaG93IiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJkZWZhdWx0IiwiaWNvbiIsInRpbWVvdXQiLCJmb3JjZVNob3ciLCJlbnN1cmVDb250YWluZXIiLCJ0b2FzdEVsZW0iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJpbm5lclRleHQiLCJxdWVyeVNlbGVjdG9yIiwiYXBwZW5kQ2hpbGQiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImNvbnRhaW5lciIsIm1lbWJlcmxpc3QiLCJmb3JtIiwibGVmdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0Iiwid2lkdGgiLCJvZmZzZXRXaWR0aCIsImJvdHRvbSIsIm9mZnNldEhlaWdodCIsInRvYXN0V3JhcHBlciIsInN0eWxlIiwic2V0UHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsTUFBTUEsYUFBYSxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLFNBQTFCLEVBQXFDLFdBQXJDLEVBQWtEQyxPQUFsRCxDQUEwREMsS0FBMUQsQ0FBZ0UsR0FBaEUsRUFBcUUsQ0FBckUsQ0FBdEI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBR0osc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixhQUExQixFQUF5Q0ksV0FBekMsQ0FBcURGLEtBQXJELENBQTJE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QUFHLElBQTlDO0FBQ0FPLGdCQUFZLENBQUNDLEtBQWIsQ0FBbUJDLFdBQW5CLENBQStCLE9BQS9CLEVBQXdDTixLQUFLLEdBQUcsSUFBaEQ7QUFDQUksZ0JBQVksQ0FBQ0MsS0FBYixDQUFtQkMsV0FBbkIsQ0FBK0IsUUFBL0IsRUFBeUNKLE1BQU0sR0FBRyxJQUFsRDtBQUNBbkIsWUFBUSxDQUFDSyxhQUFULENBQXVCLFlBQXZCLEVBQXFDQyxXQUFyQyxDQUFpRGUsWUFBakQ7QUFDSDs7QUEvRHVCIiwiZmlsZSI6Ii4vc3JjL3VpL3RvYXN0cy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7V2VicGFja01vZHVsZXMsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY29uc3QgY2hhbm5lbHNDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaWRlYmFyXCIsIFwiaGFzTm90aWNlXCIpLnNpZGViYXIuc3BsaXQoXCIgXCIpWzBdO1xyXG5jb25zdCBtZW1iZXJzV3JhcENsYXNzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIm1lbWJlcnNXcmFwXCIpLm1lbWJlcnNXcmFwLnNwbGl0KFwiIFwiKVswXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRvYXN0cyB7XHJcblxyXG4gICAgc3RhdGljIGdldCBzaG91bGRTaG93VG9hc3RzKCkge3JldHVybiBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImdlbmVyYWxcIiwgXCJzaG93VG9hc3RzXCIpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwic3VjY2Vzc1wiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyBzdWNjZXNzKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJzdWNjZXNzXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJpbmZvXCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGluZm8oY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcImluZm9cIn0pKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcIndhcm5pbmdcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgd2FybmluZyhjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwid2FybmluZ1wifSkpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwiZXJyb3JcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZXJyb3IoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcImVycm9yXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJkZWZhdWx0XCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGRlZmF1bHQoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcIlwifSkpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc2hvd3MgYSB0b2FzdCBzaW1pbGFyIHRvIGFuZHJvaWQgdG93YXJkcyB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgVGhlIHN0cmluZyB0byBzaG93IGluIHRoZSB0b2FzdC5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIE9wdGlvbnMgb2JqZWN0LiBPcHRpb25hbCBwYXJhbWV0ZXIuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudHlwZT1cIlwiXSBDaGFuZ2VzIHRoZSB0eXBlIG9mIHRoZSB0b2FzdCBzdHlsaXN0aWNhbGx5IGFuZCBzZW1hbnRpY2FsbHkuIENob2ljZXM6IFwiXCIsIFwiaW5mb1wiLCBcInN1Y2Nlc3NcIiwgXCJkYW5nZXJcIi9cImVycm9yXCIsIFwid2FybmluZ1wiL1wid2FyblwiLiBEZWZhdWx0OiBcIlwiXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmljb249dHJ1ZV0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBpY29uIHNob3VsZCBzaG93IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUuIEEgdG9hc3Qgd2l0aG91dCB0eXBlIHdpbGwgYWx3YXlzIGhhdmUgbm8gaWNvbi4gRGVmYXVsdDogdHJ1ZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnRpbWVvdXQ9MzAwMF0gQWRqdXN0cyB0aGUgdGltZSAoaW4gbXMpIHRoZSB0b2FzdCBzaG91bGQgYmUgc2hvd24gZm9yIGJlZm9yZSBkaXNhcHBlYXJpbmcgYXV0b21hdGljYWxseS4gRGVmYXVsdDogMzAwMFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5mb3JjZVNob3c9ZmFsc2VdIFdoZXRoZXIgdG8gZm9yY2Ugc2hvd2luZyB0aGUgdG9hc3QgYW5kIGlnbm9yZSB0aGUgYmQgc2V0dGluZ1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgc2hvdyhjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBjb25zdCB7dHlwZSA9IFwiXCIsIGljb24gPSB0cnVlLCB0aW1lb3V0ID0gMzAwMCwgZm9yY2VTaG93ID0gZmFsc2V9ID0gb3B0aW9ucztcclxuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkU2hvd1RvYXN0cyAmJiAhZm9yY2VTaG93KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDb250YWluZXIoKTtcclxuICAgICAgICBjb25zdCB0b2FzdEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwiYmQtdG9hc3RcIik7XHJcbiAgICAgICAgaWYgKHR5cGUpIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwidG9hc3QtXCIgKyB0eXBlKTtcclxuICAgICAgICBpZiAodHlwZSAmJiBpY29uKSB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcImljb25cIik7XHJcbiAgICAgICAgdG9hc3RFbGVtLmlubmVyVGV4dCA9IGNvbnRlbnQ7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikuYXBwZW5kQ2hpbGQodG9hc3RFbGVtKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRvYXN0RWxlbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5iZC10b2FzdHMgLmJkLXRvYXN0XCIpLmxlbmd0aCkgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGVuc3VyZUNvbnRhaW5lcigpIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikpIHJldHVybjtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFubmVsc0NsYXNzfSArIGRpdmApO1xyXG4gICAgICAgIGNvbnN0IG1lbWJlcmxpc3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihgLiR7bWVtYmVyc1dyYXBDbGFzc31gKTtcclxuICAgICAgICBjb25zdCBmb3JtID0gY29udGFpbmVyID8gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCJmb3JtXCIpIDogbnVsbDtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gY29udGFpbmVyID8gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgOiAzMTA7XHJcbiAgICAgICAgY29uc3QgcmlnaHQgPSBtZW1iZXJsaXN0ID8gbWVtYmVybGlzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IDogMDtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IHJpZ2h0ID8gcmlnaHQgLSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA6IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICBjb25zdCBib3R0b20gPSBmb3JtID8gZm9ybS5vZmZzZXRIZWlnaHQgOiA4MDtcclxuICAgICAgICBjb25zdCB0b2FzdFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiYmQtdG9hc3RzXCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcImxlZnRcIiwgbGVmdCArIFwicHhcIik7XHJcbiAgICAgICAgdG9hc3RXcmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwid2lkdGhcIiwgd2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcImJvdHRvbVwiLCBib3R0b20gKyBcInB4XCIpO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjYXBwLW1vdW50XCIpLmFwcGVuZENoaWxkKHRvYXN0V3JhcHBlcik7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/toasts.js\n");
/***/ }),
/***/ "electron":
/*!****************************************!*\
!*** external "require(\"electron\")" ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZWxlY3Ryb25cXFwiKVwiP2ZhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZWxlY3Ryb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///electron\n");
/***/ }),
/***/ "events":
/*!**************************************!*\
!*** external "require(\"events\")" ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZXZlbnRzXFxcIilcIj85NjE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImV2ZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImV2ZW50c1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///events\n");
/***/ }),
/***/ "fs":
/*!**********************************!*\
!*** external "require(\"fs\")" ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZnNcXFwiKVwiP2QzMGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJmc1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fs\n");
/***/ }),
/***/ "module":
/*!*************************!*\
!*** external "module" ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwibW9kdWxlXCI/N2M0OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJtb2R1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJtb2R1bGVcIik7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///module\n");
/***/ }),
/***/ "path":
/*!************************************!*\
!*** external "require(\"path\")" ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicGF0aFxcXCIpXCI/MmYzNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJwYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicGF0aFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///path\n");
/***/ }),
/***/ "request":
/*!***************************************!*\
!*** external "require(\"request\")" ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicmVxdWVzdFxcXCIpXCI/MmM1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJyZXF1ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///request\n");
/***/ })
/******/ })["default"];