diff --git a/js/main.js b/js/main.js index f6c59d0c..3985b187 100644 --- a/js/main.js +++ b/js/main.js @@ -95,7 +95,7 @@ var Core = /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minSupportedVersion\", function() { return minSupportedVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdVersion\", function() { return bbdVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdChangelog\", function() { return bbdChangelog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return settings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultCookie\", function() { return defaultCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settingsCookie\", function() { return settingsCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdpluginErrors\", function() { return bdpluginErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemeErrors\", function() { return bdthemeErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdConfig\", function() { return bdConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bemotes\", function() { return bemotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesFfz\", function() { return emotesFfz; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV\", function() { return emotesBTTV; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV2\", function() { return emotesBTTV2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesTwitch\", function() { return emotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subEmotesTwitch\", function() { return subEmotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmotes\", function() { return bdEmotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmoteSettingIDs\", function() { return bdEmoteSettingIDs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemes\", function() { return bdthemes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdplugins\", function() { return bdplugins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluginCookie\", function() { return pluginCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"themeCookie\", function() { return themeCookie; });\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode, pluginModule, themeModule, dMode, publicServersModule, mainCore, BDV2;\nconst minSupportedVersion = \"0.3.0\";\nconst bbdVersion = \"0.2.24\";\nconst bbdChangelog = {\n description: \"Mostly behind the scenes changes here.\",\n changes: [{\n title: \"What's New?\",\n items: [\"**Dark Mode is back!** Or rather... it's toggleable again and no longer forced on.\", \"**Changes for developers!** Plugin and theme developers will now have more options to customize their plugin cards in their METAs and also a new META structure.\"]\n }, {\n title: \"Fixes\",\n type: \"fixed\",\n items: [\"**Emote Menu** should now show both Twich Global emotes and your favorites, you should even be able to click on them again!\"]\n }, {\n title: \"Minor Stuff\",\n type: \"improved\",\n items: [\"**Clean Code.** Well not really. But BD's code is starting to be cleaned up to make it easier to maintain and better performing.\"]\n }]\n};\nconst settings = {\n \"Custom css live update\": {\n id: \"bda-css-0\",\n info: \"\",\n implemented: true,\n hidden: true,\n cat: \"core\"\n },\n \"Custom css auto udpate\": {\n id: \"bda-css-1\",\n info: \"\",\n implemented: true,\n hidden: true,\n cat: \"core\"\n },\n \"BetterDiscord Blue\": {\n id: \"bda-gs-b\",\n info: \"Replace Discord blue with BD Blue\",\n implemented: false,\n hidden: false,\n cat: \"core\"\n },\n\n /* Core */\n\n /* ====== */\n \"Public Servers\": {\n id: \"bda-gs-1\",\n info: \"Display public servers button\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Minimal Mode\": {\n id: \"bda-gs-2\",\n info: \"Hide elements and reduce the size of elements.\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Voice Mode\": {\n id: \"bda-gs-4\",\n info: \"Only show voice chat\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Hide Channels\": {\n id: \"bda-gs-3\",\n info: \"Hide channels in minimal mode\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Dark Mode\": {\n id: \"bda-gs-5\",\n info: \"Make certain elements dark by default(wip)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Voice Disconnect\": {\n id: \"bda-dc-0\",\n info: \"Disconnect from voice server when closing Discord\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"24 Hour Timestamps\": {\n id: \"bda-gs-6\",\n info: \"Replace 12hr timestamps with proper ones\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Colored Text\": {\n id: \"bda-gs-7\",\n info: \"Make text color the same as role color\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Normalize Classes\": {\n id: \"fork-ps-4\",\n info: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n\n /* Content */\n \"Content Error Modal\": {\n id: \"fork-ps-1\",\n info: \"Shows a modal with plugin/theme errors\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Show Toasts\": {\n id: \"fork-ps-2\",\n info: \"Shows a small notification for important information\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Scroll To Settings\": {\n id: \"fork-ps-3\",\n info: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Automatic Loading\": {\n id: \"fork-ps-5\",\n info: \"Automatically loads, reloads, and unloads plugins and themes\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n\n /* Developer */\n \"Developer Mode\": {\n id: \"bda-gs-8\",\n info: \"Developer Mode\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"developer settings\"\n },\n \"Copy Selector\": {\n id: \"fork-dm-1\",\n info: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"developer settings\"\n },\n\n /* Window Prefs */\n \"Enable Transparency\": {\n id: \"fork-wp-1\",\n info: \"Enables the main window to be see-through (requires restart)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"window preferences\"\n },\n \"Window Frame\": {\n id: \"fork-wp-2\",\n info: \"Adds the native os window frame to the main window\",\n implemented: false,\n hidden: true,\n cat: \"core\",\n category: \"window preferences\"\n },\n\n /* Emotes */\n\n /* ====== */\n \"Download Emotes\": {\n id: \"fork-es-3\",\n info: \"Download emotes when the cache is expired\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Twitch Emotes\": {\n id: \"bda-es-7\",\n info: \"Show Twitch emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"FrankerFaceZ Emotes\": {\n id: \"bda-es-1\",\n info: \"Show FrankerFaceZ Emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"BetterTTV Emotes\": {\n id: \"bda-es-2\",\n info: \"Show BetterTTV Emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emote Menu\": {\n id: \"bda-es-0\",\n info: \"Show Twitch/Favourite emotes in emote menu\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emoji Menu\": {\n id: \"bda-es-9\",\n info: \"Show Discord emoji menu\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emote Auto Capitalization\": {\n id: \"bda-es-4\",\n info: \"Autocapitalize emote commands\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Show Names\": {\n id: \"bda-es-6\",\n info: \"Show emote names on hover\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Show emote modifiers\": {\n id: \"bda-es-8\",\n info: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Animate On Hover\": {\n id: \"fork-es-2\",\n info: \"Only animate the emote modifiers on hover\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n }\n};\nconst defaultCookie = {\n \"bda-gs-1\": true,\n \"bda-gs-2\": false,\n \"bda-gs-3\": false,\n \"bda-gs-4\": false,\n \"bda-gs-5\": true,\n \"bda-gs-6\": false,\n \"bda-gs-7\": false,\n \"bda-gs-8\": false,\n \"bda-es-0\": true,\n \"bda-es-1\": true,\n \"bda-es-2\": true,\n \"bda-es-4\": false,\n \"bda-es-6\": true,\n \"bda-es-7\": true,\n \"bda-gs-b\": false,\n \"bda-es-8\": true,\n \"bda-dc-0\": false,\n \"bda-css-0\": false,\n \"bda-css-1\": false,\n \"bda-es-9\": true,\n \"fork-dm-1\": false,\n \"fork-ps-1\": true,\n \"fork-ps-2\": true,\n \"fork-ps-3\": true,\n \"fork-ps-4\": true,\n \"fork-ps-5\": true,\n \"fork-es-2\": false,\n \"fork-es-3\": true,\n \"fork-wp-1\": false,\n \"fork-wp-2\": false\n};\nconst settingsCookie = {};\nconst bdpluginErrors = [];\nconst bdthemeErrors = []; // define for backwards compatibility\n\nconst bdConfig = {};\nconst bemotes = [];\nconst emotesFfz = {};\nconst emotesBTTV = {};\nconst emotesBTTV2 = {};\nconst emotesTwitch = {};\nconst subEmotesTwitch = {};\nconst bdEmotes = {\n TwitchGlobal: {},\n TwitchSubscriber: {},\n BTTV: {},\n FrankerFaceZ: {},\n BTTV2: {}\n};\nconst bdEmoteSettingIDs = {\n TwitchGlobal: \"bda-es-7\",\n TwitchSubscriber: \"bda-es-7\",\n BTTV: \"bda-es-2\",\n FrankerFaceZ: \"bda-es-1\",\n BTTV2: \"bda-es-2\"\n};\nconst bdthemes = {};\nconst bdplugins = {};\nconst pluginCookie = {};\nconst themeCookie = {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvMGdsb2JhbHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjLzBnbG9iYWxzLmpzPzAwZDIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdmFyIHNldHRpbmdzUGFuZWwsIGVtb3RlTW9kdWxlLCBxdWlja0Vtb3RlTWVudSwgdm9pY2VNb2RlLCBwbHVnaW5Nb2R1bGUsIHRoZW1lTW9kdWxlLCBkTW9kZSwgcHVibGljU2VydmVyc01vZHVsZSwgbWFpbkNvcmUsIEJEVjI7XG5leHBvcnQgY29uc3QgbWluU3VwcG9ydGVkVmVyc2lvbiA9IFwiMC4zLjBcIjtcbmV4cG9ydCBjb25zdCBiYmRWZXJzaW9uID0gXCIwLjIuMjRcIjtcbmV4cG9ydCBjb25zdCBiYmRDaGFuZ2Vsb2cgPSB7XG4gIGRlc2NyaXB0aW9uOiBcIk1vc3RseSBiZWhpbmQgdGhlIHNjZW5lcyBjaGFuZ2VzIGhlcmUuXCIsXG4gIGNoYW5nZXM6IFt7XG4gICAgdGl0bGU6IFwiV2hhdCdzIE5ldz9cIixcbiAgICBpdGVtczogW1wiKipEYXJrIE1vZGUgaXMgYmFjayEqKiBPciByYXRoZXIuLi4gaXQncyB0b2dnbGVhYmxlIGFnYWluIGFuZCBubyBsb25nZXIgZm9yY2VkIG9uLlwiLCBcIioqQ2hhbmdlcyBmb3IgZGV2ZWxvcGVycyEqKiBQbHVnaW4gYW5kIHRoZW1lIGRldmVsb3BlcnMgd2lsbCBub3cgaGF2ZSBtb3JlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZWlyIHBsdWdpbiBjYXJkcyBpbiB0aGVpciBNRVRBcyBhbmQgYWxzbyBhIG5ldyBNRVRBIHN0cnVjdHVyZS5cIl1cbiAgfSwge1xuICAgIHRpdGxlOiBcIkZpeGVzXCIsXG4gICAgdHlwZTogXCJmaXhlZFwiLFxuICAgIGl0ZW1zOiBbXCIqKkVtb3RlIE1lbnUqKiBzaG91bGQgbm93IHNob3cgYm90aCBUd2ljaCBHbG9iYWwgZW1vdGVzIGFuZCB5b3VyIGZhdm9yaXRlcywgeW91IHNob3VsZCBldmVuIGJlIGFibGUgdG8gY2xpY2sgb24gdGhlbSBhZ2FpbiFcIl1cbiAgfSwge1xuICAgIHRpdGxlOiBcIk1pbm9yIFN0dWZmXCIsXG4gICAgdHlwZTogXCJpbXByb3ZlZFwiLFxuICAgIGl0ZW1zOiBbXCIqKkNsZWFuIENvZGUuKiogV2VsbCBub3QgcmVhbGx5LiBCdXQgQkQncyBjb2RlIGlzIHN0YXJ0aW5nIHRvIGJlIGNsZWFuZWQgdXAgdG8gbWFrZSBpdCBlYXNpZXIgdG8gbWFpbnRhaW4gYW5kIGJldHRlciBwZXJmb3JtaW5nLlwiXVxuICB9XVxufTtcbmV4cG9ydCBjb25zdCBzZXR0aW5ncyA9IHtcbiAgXCJDdXN0b20gY3NzIGxpdmUgdXBkYXRlXCI6IHtcbiAgICBpZDogXCJiZGEtY3NzLTBcIixcbiAgICBpbmZvOiBcIlwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogdHJ1ZSxcbiAgICBjYXQ6IFwiY29yZVwiXG4gIH0sXG4gIFwiQ3VzdG9tIGNzcyBhdXRvIHVkcGF0ZVwiOiB7XG4gICAgaWQ6IFwiYmRhLWNzcy0xXCIsXG4gICAgaW5mbzogXCJcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IHRydWUsXG4gICAgY2F0OiBcImNvcmVcIlxuICB9LFxuICBcIkJldHRlckRpc2NvcmQgQmx1ZVwiOiB7XG4gICAgaWQ6IFwiYmRhLWdzLWJcIixcbiAgICBpbmZvOiBcIlJlcGxhY2UgRGlzY29yZCBibHVlIHdpdGggQkQgQmx1ZVwiLFxuICAgIGltcGxlbWVudGVkOiBmYWxzZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCJcbiAgfSxcblxuICAvKiBDb3JlICovXG5cbiAgLyogPT09PT09ICovXG4gIFwiUHVibGljIFNlcnZlcnNcIjoge1xuICAgIGlkOiBcImJkYS1ncy0xXCIsXG4gICAgaW5mbzogXCJEaXNwbGF5IHB1YmxpYyBzZXJ2ZXJzIGJ1dHRvblwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJtb2R1bGVzXCJcbiAgfSxcbiAgXCJNaW5pbWFsIE1vZGVcIjoge1xuICAgIGlkOiBcImJkYS1ncy0yXCIsXG4gICAgaW5mbzogXCJIaWRlIGVsZW1lbnRzIGFuZCByZWR1Y2UgdGhlIHNpemUgb2YgZWxlbWVudHMuXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIlZvaWNlIE1vZGVcIjoge1xuICAgIGlkOiBcImJkYS1ncy00XCIsXG4gICAgaW5mbzogXCJPbmx5IHNob3cgdm9pY2UgY2hhdFwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJtb2R1bGVzXCJcbiAgfSxcbiAgXCJIaWRlIENoYW5uZWxzXCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtM1wiLFxuICAgIGluZm86IFwiSGlkZSBjaGFubmVscyBpbiBtaW5pbWFsIG1vZGVcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiRGFyayBNb2RlXCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtNVwiLFxuICAgIGluZm86IFwiTWFrZSBjZXJ0YWluIGVsZW1lbnRzIGRhcmsgYnkgZGVmYXVsdCh3aXApXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIlZvaWNlIERpc2Nvbm5lY3RcIjoge1xuICAgIGlkOiBcImJkYS1kYy0wXCIsXG4gICAgaW5mbzogXCJEaXNjb25uZWN0IGZyb20gdm9pY2Ugc2VydmVyIHdoZW4gY2xvc2luZyBEaXNjb3JkXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIjI0IEhvdXIgVGltZXN0YW1wc1wiOiB7XG4gICAgaWQ6IFwiYmRhLWdzLTZcIixcbiAgICBpbmZvOiBcIlJlcGxhY2UgMTJociB0aW1lc3RhbXBzIHdpdGggcHJvcGVyIG9uZXNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiQ29sb3JlZCBUZXh0XCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtN1wiLFxuICAgIGluZm86IFwiTWFrZSB0ZXh0IGNvbG9yIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiTm9ybWFsaXplIENsYXNzZXNcIjoge1xuICAgIGlkOiBcImZvcmstcHMtNFwiLFxuICAgIGluZm86IFwiQWRkcyBzdGFibGUgY2xhc3NlcyB0byBlbGVtZW50cyB0byBoZWxwIHRoZW1lcy4gKGUuZy4gYWRkcyAuZGEtY2hhbm5lbHMgdG8gLmNoYW5uZWxzLUllMmw2QSlcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG5cbiAgLyogQ29udGVudCAqL1xuICBcIkNvbnRlbnQgRXJyb3IgTW9kYWxcIjoge1xuICAgIGlkOiBcImZvcmstcHMtMVwiLFxuICAgIGluZm86IFwiU2hvd3MgYSBtb2RhbCB3aXRoIHBsdWdpbi90aGVtZSBlcnJvcnNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwiY29udGVudCBtYW5hZ2VyXCJcbiAgfSxcbiAgXCJTaG93IFRvYXN0c1wiOiB7XG4gICAgaWQ6IFwiZm9yay1wcy0yXCIsXG4gICAgaW5mbzogXCJTaG93cyBhIHNtYWxsIG5vdGlmaWNhdGlvbiBmb3IgaW1wb3J0YW50IGluZm9ybWF0aW9uXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcImNvbnRlbnQgbWFuYWdlclwiXG4gIH0sXG4gIFwiU2Nyb2xsIFRvIFNldHRpbmdzXCI6IHtcbiAgICBpZDogXCJmb3JrLXBzLTNcIixcbiAgICBpbmZvOiBcIkF1dG8tc2Nyb2xscyB0byBhIHBsdWdpbidzIHNldHRpbmdzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIChvbmx5IGlmIG91dCBvZiB2aWV3KVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIlxuICB9LFxuICBcIkF1dG9tYXRpYyBMb2FkaW5nXCI6IHtcbiAgICBpZDogXCJmb3JrLXBzLTVcIixcbiAgICBpbmZvOiBcIkF1dG9tYXRpY2FsbHkgbG9hZHMsIHJlbG9hZHMsIGFuZCB1bmxvYWRzIHBsdWdpbnMgYW5kIHRoZW1lc1wiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIlxuICB9LFxuXG4gIC8qIERldmVsb3BlciAqL1xuICBcIkRldmVsb3BlciBNb2RlXCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtOFwiLFxuICAgIGluZm86IFwiRGV2ZWxvcGVyIE1vZGVcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwiZGV2ZWxvcGVyIHNldHRpbmdzXCJcbiAgfSxcbiAgXCJDb3B5IFNlbGVjdG9yXCI6IHtcbiAgICBpZDogXCJmb3JrLWRtLTFcIixcbiAgICBpbmZvOiBcIkFkZHMgYSBcXFwiQ29weSBTZWxlY3RvclxcXCIgb3B0aW9uIHRvIGNvbnRleHQgbWVudXMgd2hlbiBkZXZlbG9wZXIgbW9kZSBpcyBhY3RpdmVcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwiZGV2ZWxvcGVyIHNldHRpbmdzXCJcbiAgfSxcblxuICAvKiBXaW5kb3cgUHJlZnMgKi9cbiAgXCJFbmFibGUgVHJhbnNwYXJlbmN5XCI6IHtcbiAgICBpZDogXCJmb3JrLXdwLTFcIixcbiAgICBpbmZvOiBcIkVuYWJsZXMgdGhlIG1haW4gd2luZG93IHRvIGJlIHNlZS10aHJvdWdoIChyZXF1aXJlcyByZXN0YXJ0KVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJ3aW5kb3cgcHJlZmVyZW5jZXNcIlxuICB9LFxuICBcIldpbmRvdyBGcmFtZVwiOiB7XG4gICAgaWQ6IFwiZm9yay13cC0yXCIsXG4gICAgaW5mbzogXCJBZGRzIHRoZSBuYXRpdmUgb3Mgd2luZG93IGZyYW1lIHRvIHRoZSBtYWluIHdpbmRvd1wiLFxuICAgIGltcGxlbWVudGVkOiBmYWxzZSxcbiAgICBoaWRkZW46IHRydWUsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJ3aW5kb3cgcHJlZmVyZW5jZXNcIlxuICB9LFxuXG4gIC8qIEVtb3RlcyAqL1xuXG4gIC8qID09PT09PSAqL1xuICBcIkRvd25sb2FkIEVtb3Rlc1wiOiB7XG4gICAgaWQ6IFwiZm9yay1lcy0zXCIsXG4gICAgaW5mbzogXCJEb3dubG9hZCBlbW90ZXMgd2hlbiB0aGUgY2FjaGUgaXMgZXhwaXJlZFwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJUd2l0Y2ggRW1vdGVzXCI6IHtcbiAgICBpZDogXCJiZGEtZXMtN1wiLFxuICAgIGluZm86IFwiU2hvdyBUd2l0Y2ggZW1vdGVzXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9LFxuICBcIkZyYW5rZXJGYWNlWiBFbW90ZXNcIjoge1xuICAgIGlkOiBcImJkYS1lcy0xXCIsXG4gICAgaW5mbzogXCJTaG93IEZyYW5rZXJGYWNlWiBFbW90ZXNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiQmV0dGVyVFRWIEVtb3Rlc1wiOiB7XG4gICAgaWQ6IFwiYmRhLWVzLTJcIixcbiAgICBpbmZvOiBcIlNob3cgQmV0dGVyVFRWIEVtb3Rlc1wiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJFbW90ZSBNZW51XCI6IHtcbiAgICBpZDogXCJiZGEtZXMtMFwiLFxuICAgIGluZm86IFwiU2hvdyBUd2l0Y2gvRmF2b3VyaXRlIGVtb3RlcyBpbiBlbW90ZSBtZW51XCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9LFxuICBcIkVtb2ppIE1lbnVcIjoge1xuICAgIGlkOiBcImJkYS1lcy05XCIsXG4gICAgaW5mbzogXCJTaG93IERpc2NvcmQgZW1vamkgbWVudVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJFbW90ZSBBdXRvIENhcGl0YWxpemF0aW9uXCI6IHtcbiAgICBpZDogXCJiZGEtZXMtNFwiLFxuICAgIGluZm86IFwiQXV0b2NhcGl0YWxpemUgZW1vdGUgY29tbWFuZHNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiU2hvdyBOYW1lc1wiOiB7XG4gICAgaWQ6IFwiYmRhLWVzLTZcIixcbiAgICBpbmZvOiBcIlNob3cgZW1vdGUgbmFtZXMgb24gaG92ZXJcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiU2hvdyBlbW90ZSBtb2RpZmllcnNcIjoge1xuICAgIGlkOiBcImJkYS1lcy04XCIsXG4gICAgaW5mbzogXCJFbmFibGUgZW1vdGUgbW9kcyAoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJBbmltYXRlIE9uIEhvdmVyXCI6IHtcbiAgICBpZDogXCJmb3JrLWVzLTJcIixcbiAgICBpbmZvOiBcIk9ubHkgYW5pbWF0ZSB0aGUgZW1vdGUgbW9kaWZpZXJzIG9uIGhvdmVyXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9XG59O1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb29raWUgPSB7XG4gIFwiYmRhLWdzLTFcIjogdHJ1ZSxcbiAgXCJiZGEtZ3MtMlwiOiBmYWxzZSxcbiAgXCJiZGEtZ3MtM1wiOiBmYWxzZSxcbiAgXCJiZGEtZ3MtNFwiOiBmYWxzZSxcbiAgXCJiZGEtZ3MtNVwiOiB0cnVlLFxuICBcImJkYS1ncy02XCI6IGZhbHNlLFxuICBcImJkYS1ncy03XCI6IGZhbHNlLFxuICBcImJkYS1ncy04XCI6IGZhbHNlLFxuICBcImJkYS1lcy0wXCI6IHRydWUsXG4gIFwiYmRhLWVzLTFcIjogdHJ1ZSxcbiAgXCJiZGEtZXMtMlwiOiB0cnVlLFxuICBcImJkYS1lcy00XCI6IGZhbHNlLFxuICBcImJkYS1lcy02XCI6IHRydWUsXG4gIFwiYmRhLWVzLTdcIjogdHJ1ZSxcbiAgXCJiZGEtZ3MtYlwiOiBmYWxzZSxcbiAgXCJiZGEtZXMtOFwiOiB0cnVlLFxuICBcImJkYS1kYy0wXCI6IGZhbHNlLFxuICBcImJkYS1jc3MtMFwiOiBmYWxzZSxcbiAgXCJiZGEtY3NzLTFcIjogZmFsc2UsXG4gIFwiYmRhLWVzLTlcIjogdHJ1ZSxcbiAgXCJmb3JrLWRtLTFcIjogZmFsc2UsXG4gIFwiZm9yay1wcy0xXCI6IHRydWUsXG4gIFwiZm9yay1wcy0yXCI6IHRydWUsXG4gIFwiZm9yay1wcy0zXCI6IHRydWUsXG4gIFwiZm9yay1wcy00XCI6IHRydWUsXG4gIFwiZm9yay1wcy01XCI6IHRydWUsXG4gIFwiZm9yay1lcy0yXCI6IGZhbHNlLFxuICBcImZvcmstZXMtM1wiOiB0cnVlLFxuICBcImZvcmstd3AtMVwiOiBmYWxzZSxcbiAgXCJmb3JrLXdwLTJcIjogZmFsc2Vcbn07XG5leHBvcnQgY29uc3Qgc2V0dGluZ3NDb29raWUgPSB7fTtcbmV4cG9ydCBjb25zdCBiZHBsdWdpbkVycm9ycyA9IFtdO1xuZXhwb3J0IGNvbnN0IGJkdGhlbWVFcnJvcnMgPSBbXTsgLy8gZGVmaW5lIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuXG5leHBvcnQgY29uc3QgYmRDb25maWcgPSB7fTtcbmV4cG9ydCBjb25zdCBiZW1vdGVzID0gW107XG5leHBvcnQgY29uc3QgZW1vdGVzRmZ6ID0ge307XG5leHBvcnQgY29uc3QgZW1vdGVzQlRUViA9IHt9O1xuZXhwb3J0IGNvbnN0IGVtb3Rlc0JUVFYyID0ge307XG5leHBvcnQgY29uc3QgZW1vdGVzVHdpdGNoID0ge307XG5leHBvcnQgY29uc3Qgc3ViRW1vdGVzVHdpdGNoID0ge307XG5leHBvcnQgY29uc3QgYmRFbW90ZXMgPSB7XG4gIFR3aXRjaEdsb2JhbDoge30sXG4gIFR3aXRjaFN1YnNjcmliZXI6IHt9LFxuICBCVFRWOiB7fSxcbiAgRnJhbmtlckZhY2VaOiB7fSxcbiAgQlRUVjI6IHt9XG59O1xuZXhwb3J0IGNvbnN0IGJkRW1vdGVTZXR0aW5nSURzID0ge1xuICBUd2l0Y2hHbG9iYWw6IFwiYmRhLWVzLTdcIixcbiAgVHdpdGNoU3Vic2NyaWJlcjogXCJiZGEtZXMtN1wiLFxuICBCVFRWOiBcImJkYS1lcy0yXCIsXG4gIEZyYW5rZXJGYWNlWjogXCJiZGEtZXMtMVwiLFxuICBCVFRWMjogXCJiZGEtZXMtMlwiXG59O1xuZXhwb3J0IGNvbnN0IGJkdGhlbWVzID0ge307XG5leHBvcnQgY29uc3QgYmRwbHVnaW5zID0ge307XG5leHBvcnQgY29uc3QgcGx1Z2luQ29va2llID0ge307XG5leHBvcnQgY29uc3QgdGhlbWVDb29raWUgPSB7fTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/0globals.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minSupportedVersion\", function() { return minSupportedVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdVersion\", function() { return bbdVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdChangelog\", function() { return bbdChangelog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return settings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultCookie\", function() { return defaultCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settingsCookie\", function() { return settingsCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdpluginErrors\", function() { return bdpluginErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemeErrors\", function() { return bdthemeErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdConfig\", function() { return bdConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bemotes\", function() { return bemotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesFfz\", function() { return emotesFfz; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV\", function() { return emotesBTTV; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV2\", function() { return emotesBTTV2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesTwitch\", function() { return emotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subEmotesTwitch\", function() { return subEmotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmotes\", function() { return bdEmotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmoteSettingIDs\", function() { return bdEmoteSettingIDs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemes\", function() { return bdthemes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdplugins\", function() { return bdplugins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluginCookie\", function() { return pluginCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"themeCookie\", function() { return themeCookie; });\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode, pluginModule, themeModule, dMode, publicServersModule, mainCore, BDV2;\nconst minSupportedVersion = \"0.3.0\";\nconst bbdVersion = \"0.2.24\";\nconst bbdChangelog = {\n description: \"Mostly behind the scenes changes here.\",\n changes: [{\n title: \"What's New?\",\n items: [\"**Dark Mode is back!** Or rather... it's toggleable again and no longer forced on.\", \"**Changes for developers!** Plugin and theme developers will now have more options to customize their plugin cards in their METAs and also a new META structure.\"]\n }, {\n title: \"Fixes\",\n type: \"fixed\",\n items: [\"**Emote Menu** should now show both Twich Global emotes and your favorites, you should even be able to click on them again!\"]\n }, {\n title: \"Minor Stuff\",\n type: \"improved\",\n items: [\"**Clean Code.** Well not really. But BD's code is starting to be cleaned up to make it easier to maintain and better performing.\"]\n }]\n};\nconst settings = {\n \"Custom css live update\": {\n id: \"bda-css-0\",\n info: \"\",\n implemented: true,\n hidden: true,\n cat: \"core\"\n },\n \"Custom css auto udpate\": {\n id: \"bda-css-1\",\n info: \"\",\n implemented: true,\n hidden: true,\n cat: \"core\"\n },\n \"BetterDiscord Blue\": {\n id: \"bda-gs-b\",\n info: \"Replace Discord blue with BD Blue\",\n implemented: false,\n hidden: false,\n cat: \"core\"\n },\n\n /* Core */\n\n /* ====== */\n \"Public Servers\": {\n id: \"bda-gs-1\",\n info: \"Display public servers button\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Minimal Mode\": {\n id: \"bda-gs-2\",\n info: \"Hide elements and reduce the size of elements.\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Voice Mode\": {\n id: \"bda-gs-4\",\n info: \"Only show voice chat\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Hide Channels\": {\n id: \"bda-gs-3\",\n info: \"Hide channels in minimal mode\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Dark Mode\": {\n id: \"bda-gs-5\",\n info: \"Make certain elements dark by default(wip)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Voice Disconnect\": {\n id: \"bda-dc-0\",\n info: \"Disconnect from voice server when closing Discord\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"24 Hour Timestamps\": {\n id: \"bda-gs-6\",\n info: \"Replace 12hr timestamps with proper ones\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Colored Text\": {\n id: \"bda-gs-7\",\n info: \"Make text color the same as role color\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n \"Normalize Classes\": {\n id: \"fork-ps-4\",\n info: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"modules\"\n },\n\n /* Content */\n \"Content Error Modal\": {\n id: \"fork-ps-1\",\n info: \"Shows a modal with plugin/theme errors\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Show Toasts\": {\n id: \"fork-ps-2\",\n info: \"Shows a small notification for important information\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Scroll To Settings\": {\n id: \"fork-ps-3\",\n info: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n \"Automatic Loading\": {\n id: \"fork-ps-5\",\n info: \"Automatically loads, reloads, and unloads plugins and themes\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"content manager\"\n },\n\n /* Donors */\n \"BBD Beta\": {\n id: \"fork-beta\",\n info: \"Gives access to BBD beta. (Requires full restart after changing.)\",\n implemented: true,\n hidden: true,\n cat: \"core\",\n category: \"donors\"\n },\n\n /* Developer */\n \"Developer Mode\": {\n id: \"bda-gs-8\",\n info: \"Developer Mode\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"developer settings\"\n },\n \"Copy Selector\": {\n id: \"fork-dm-1\",\n info: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"developer settings\"\n },\n\n /* Window Prefs */\n \"Enable Transparency\": {\n id: \"fork-wp-1\",\n info: \"Enables the main window to be see-through (requires restart)\",\n implemented: true,\n hidden: false,\n cat: \"core\",\n category: \"window preferences\"\n },\n \"Window Frame\": {\n id: \"fork-wp-2\",\n info: \"Adds the native os window frame to the main window\",\n implemented: false,\n hidden: true,\n cat: \"core\",\n category: \"window preferences\"\n },\n\n /* Emotes */\n\n /* ====== */\n \"Download Emotes\": {\n id: \"fork-es-3\",\n info: \"Download emotes when the cache is expired\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Twitch Emotes\": {\n id: \"bda-es-7\",\n info: \"Show Twitch emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"FrankerFaceZ Emotes\": {\n id: \"bda-es-1\",\n info: \"Show FrankerFaceZ Emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"BetterTTV Emotes\": {\n id: \"bda-es-2\",\n info: \"Show BetterTTV Emotes\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emote Menu\": {\n id: \"bda-es-0\",\n info: \"Show Twitch/Favourite emotes in emote menu\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emoji Menu\": {\n id: \"bda-es-9\",\n info: \"Show Discord emoji menu\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Emote Auto Capitalization\": {\n id: \"bda-es-4\",\n info: \"Autocapitalize emote commands\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Show Names\": {\n id: \"bda-es-6\",\n info: \"Show emote names on hover\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Show emote modifiers\": {\n id: \"bda-es-8\",\n info: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n },\n \"Animate On Hover\": {\n id: \"fork-es-2\",\n info: \"Only animate the emote modifiers on hover\",\n implemented: true,\n hidden: false,\n cat: \"emote\"\n }\n};\nconst defaultCookie = {\n \"bda-gs-1\": true,\n \"bda-gs-2\": false,\n \"bda-gs-3\": false,\n \"bda-gs-4\": false,\n \"bda-gs-5\": true,\n \"bda-gs-6\": false,\n \"bda-gs-7\": false,\n \"bda-gs-8\": false,\n \"bda-es-0\": true,\n \"bda-es-1\": true,\n \"bda-es-2\": true,\n \"bda-es-4\": false,\n \"bda-es-6\": true,\n \"bda-es-7\": true,\n \"bda-gs-b\": false,\n \"bda-es-8\": true,\n \"bda-dc-0\": false,\n \"bda-css-0\": false,\n \"bda-css-1\": false,\n \"bda-es-9\": true,\n \"fork-dm-1\": false,\n \"fork-ps-1\": true,\n \"fork-ps-2\": true,\n \"fork-ps-3\": true,\n \"fork-ps-4\": true,\n \"fork-ps-5\": true,\n \"fork-es-2\": false,\n \"fork-es-3\": true,\n \"fork-wp-1\": false,\n \"fork-wp-2\": false,\n \"fork-beta\": true\n};\nconst settingsCookie = {};\nconst bdpluginErrors = [];\nconst bdthemeErrors = []; // define for backwards compatibility\n\nconst bdConfig = {};\nconst bemotes = [];\nconst emotesFfz = {};\nconst emotesBTTV = {};\nconst emotesBTTV2 = {};\nconst emotesTwitch = {};\nconst subEmotesTwitch = {};\nconst bdEmotes = {\n TwitchGlobal: {},\n TwitchSubscriber: {},\n BTTV: {},\n FrankerFaceZ: {},\n BTTV2: {}\n};\nconst bdEmoteSettingIDs = {\n TwitchGlobal: \"bda-es-7\",\n TwitchSubscriber: \"bda-es-7\",\n BTTV: \"bda-es-2\",\n FrankerFaceZ: \"bda-es-1\",\n BTTV2: \"bda-es-2\"\n};\nconst bdthemes = {};\nconst bdplugins = {};\nconst pluginCookie = {};\nconst themeCookie = {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvMGdsb2JhbHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjLzBnbG9iYWxzLmpzPzAwZDIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdmFyIHNldHRpbmdzUGFuZWwsIGVtb3RlTW9kdWxlLCBxdWlja0Vtb3RlTWVudSwgdm9pY2VNb2RlLCBwbHVnaW5Nb2R1bGUsIHRoZW1lTW9kdWxlLCBkTW9kZSwgcHVibGljU2VydmVyc01vZHVsZSwgbWFpbkNvcmUsIEJEVjI7XG5leHBvcnQgY29uc3QgbWluU3VwcG9ydGVkVmVyc2lvbiA9IFwiMC4zLjBcIjtcbmV4cG9ydCBjb25zdCBiYmRWZXJzaW9uID0gXCIwLjIuMjRcIjtcbmV4cG9ydCBjb25zdCBiYmRDaGFuZ2Vsb2cgPSB7XG4gIGRlc2NyaXB0aW9uOiBcIk1vc3RseSBiZWhpbmQgdGhlIHNjZW5lcyBjaGFuZ2VzIGhlcmUuXCIsXG4gIGNoYW5nZXM6IFt7XG4gICAgdGl0bGU6IFwiV2hhdCdzIE5ldz9cIixcbiAgICBpdGVtczogW1wiKipEYXJrIE1vZGUgaXMgYmFjayEqKiBPciByYXRoZXIuLi4gaXQncyB0b2dnbGVhYmxlIGFnYWluIGFuZCBubyBsb25nZXIgZm9yY2VkIG9uLlwiLCBcIioqQ2hhbmdlcyBmb3IgZGV2ZWxvcGVycyEqKiBQbHVnaW4gYW5kIHRoZW1lIGRldmVsb3BlcnMgd2lsbCBub3cgaGF2ZSBtb3JlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZWlyIHBsdWdpbiBjYXJkcyBpbiB0aGVpciBNRVRBcyBhbmQgYWxzbyBhIG5ldyBNRVRBIHN0cnVjdHVyZS5cIl1cbiAgfSwge1xuICAgIHRpdGxlOiBcIkZpeGVzXCIsXG4gICAgdHlwZTogXCJmaXhlZFwiLFxuICAgIGl0ZW1zOiBbXCIqKkVtb3RlIE1lbnUqKiBzaG91bGQgbm93IHNob3cgYm90aCBUd2ljaCBHbG9iYWwgZW1vdGVzIGFuZCB5b3VyIGZhdm9yaXRlcywgeW91IHNob3VsZCBldmVuIGJlIGFibGUgdG8gY2xpY2sgb24gdGhlbSBhZ2FpbiFcIl1cbiAgfSwge1xuICAgIHRpdGxlOiBcIk1pbm9yIFN0dWZmXCIsXG4gICAgdHlwZTogXCJpbXByb3ZlZFwiLFxuICAgIGl0ZW1zOiBbXCIqKkNsZWFuIENvZGUuKiogV2VsbCBub3QgcmVhbGx5LiBCdXQgQkQncyBjb2RlIGlzIHN0YXJ0aW5nIHRvIGJlIGNsZWFuZWQgdXAgdG8gbWFrZSBpdCBlYXNpZXIgdG8gbWFpbnRhaW4gYW5kIGJldHRlciBwZXJmb3JtaW5nLlwiXVxuICB9XVxufTtcbmV4cG9ydCBjb25zdCBzZXR0aW5ncyA9IHtcbiAgXCJDdXN0b20gY3NzIGxpdmUgdXBkYXRlXCI6IHtcbiAgICBpZDogXCJiZGEtY3NzLTBcIixcbiAgICBpbmZvOiBcIlwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogdHJ1ZSxcbiAgICBjYXQ6IFwiY29yZVwiXG4gIH0sXG4gIFwiQ3VzdG9tIGNzcyBhdXRvIHVkcGF0ZVwiOiB7XG4gICAgaWQ6IFwiYmRhLWNzcy0xXCIsXG4gICAgaW5mbzogXCJcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IHRydWUsXG4gICAgY2F0OiBcImNvcmVcIlxuICB9LFxuICBcIkJldHRlckRpc2NvcmQgQmx1ZVwiOiB7XG4gICAgaWQ6IFwiYmRhLWdzLWJcIixcbiAgICBpbmZvOiBcIlJlcGxhY2UgRGlzY29yZCBibHVlIHdpdGggQkQgQmx1ZVwiLFxuICAgIGltcGxlbWVudGVkOiBmYWxzZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCJcbiAgfSxcblxuICAvKiBDb3JlICovXG5cbiAgLyogPT09PT09ICovXG4gIFwiUHVibGljIFNlcnZlcnNcIjoge1xuICAgIGlkOiBcImJkYS1ncy0xXCIsXG4gICAgaW5mbzogXCJEaXNwbGF5IHB1YmxpYyBzZXJ2ZXJzIGJ1dHRvblwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJtb2R1bGVzXCJcbiAgfSxcbiAgXCJNaW5pbWFsIE1vZGVcIjoge1xuICAgIGlkOiBcImJkYS1ncy0yXCIsXG4gICAgaW5mbzogXCJIaWRlIGVsZW1lbnRzIGFuZCByZWR1Y2UgdGhlIHNpemUgb2YgZWxlbWVudHMuXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIlZvaWNlIE1vZGVcIjoge1xuICAgIGlkOiBcImJkYS1ncy00XCIsXG4gICAgaW5mbzogXCJPbmx5IHNob3cgdm9pY2UgY2hhdFwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJtb2R1bGVzXCJcbiAgfSxcbiAgXCJIaWRlIENoYW5uZWxzXCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtM1wiLFxuICAgIGluZm86IFwiSGlkZSBjaGFubmVscyBpbiBtaW5pbWFsIG1vZGVcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiRGFyayBNb2RlXCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtNVwiLFxuICAgIGluZm86IFwiTWFrZSBjZXJ0YWluIGVsZW1lbnRzIGRhcmsgYnkgZGVmYXVsdCh3aXApXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIlZvaWNlIERpc2Nvbm5lY3RcIjoge1xuICAgIGlkOiBcImJkYS1kYy0wXCIsXG4gICAgaW5mbzogXCJEaXNjb25uZWN0IGZyb20gdm9pY2Ugc2VydmVyIHdoZW4gY2xvc2luZyBEaXNjb3JkXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcIm1vZHVsZXNcIlxuICB9LFxuICBcIjI0IEhvdXIgVGltZXN0YW1wc1wiOiB7XG4gICAgaWQ6IFwiYmRhLWdzLTZcIixcbiAgICBpbmZvOiBcIlJlcGxhY2UgMTJociB0aW1lc3RhbXBzIHdpdGggcHJvcGVyIG9uZXNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiQ29sb3JlZCBUZXh0XCI6IHtcbiAgICBpZDogXCJiZGEtZ3MtN1wiLFxuICAgIGluZm86IFwiTWFrZSB0ZXh0IGNvbG9yIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG4gIFwiTm9ybWFsaXplIENsYXNzZXNcIjoge1xuICAgIGlkOiBcImZvcmstcHMtNFwiLFxuICAgIGluZm86IFwiQWRkcyBzdGFibGUgY2xhc3NlcyB0byBlbGVtZW50cyB0byBoZWxwIHRoZW1lcy4gKGUuZy4gYWRkcyAuZGEtY2hhbm5lbHMgdG8gLmNoYW5uZWxzLUllMmw2QSlcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwibW9kdWxlc1wiXG4gIH0sXG5cbiAgLyogQ29udGVudCAqL1xuICBcIkNvbnRlbnQgRXJyb3IgTW9kYWxcIjoge1xuICAgIGlkOiBcImZvcmstcHMtMVwiLFxuICAgIGluZm86IFwiU2hvd3MgYSBtb2RhbCB3aXRoIHBsdWdpbi90aGVtZSBlcnJvcnNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwiY29udGVudCBtYW5hZ2VyXCJcbiAgfSxcbiAgXCJTaG93IFRvYXN0c1wiOiB7XG4gICAgaWQ6IFwiZm9yay1wcy0yXCIsXG4gICAgaW5mbzogXCJTaG93cyBhIHNtYWxsIG5vdGlmaWNhdGlvbiBmb3IgaW1wb3J0YW50IGluZm9ybWF0aW9uXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcImNvbnRlbnQgbWFuYWdlclwiXG4gIH0sXG4gIFwiU2Nyb2xsIFRvIFNldHRpbmdzXCI6IHtcbiAgICBpZDogXCJmb3JrLXBzLTNcIixcbiAgICBpbmZvOiBcIkF1dG8tc2Nyb2xscyB0byBhIHBsdWdpbidzIHNldHRpbmdzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIChvbmx5IGlmIG91dCBvZiB2aWV3KVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIlxuICB9LFxuICBcIkF1dG9tYXRpYyBMb2FkaW5nXCI6IHtcbiAgICBpZDogXCJmb3JrLXBzLTVcIixcbiAgICBpbmZvOiBcIkF1dG9tYXRpY2FsbHkgbG9hZHMsIHJlbG9hZHMsIGFuZCB1bmxvYWRzIHBsdWdpbnMgYW5kIHRoZW1lc1wiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImNvcmVcIixcbiAgICBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIlxuICB9LFxuXG4gIC8qIERvbm9ycyAqL1xuICBcIkJCRCBCZXRhXCI6IHtcbiAgICBpZDogXCJmb3JrLWJldGFcIixcbiAgICBpbmZvOiBcIkdpdmVzIGFjY2VzcyB0byBCQkQgYmV0YS4gKFJlcXVpcmVzIGZ1bGwgcmVzdGFydCBhZnRlciBjaGFuZ2luZy4pXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiB0cnVlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwiZG9ub3JzXCJcbiAgfSxcblxuICAvKiBEZXZlbG9wZXIgKi9cbiAgXCJEZXZlbG9wZXIgTW9kZVwiOiB7XG4gICAgaWQ6IFwiYmRhLWdzLThcIixcbiAgICBpbmZvOiBcIkRldmVsb3BlciBNb2RlXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcImRldmVsb3BlciBzZXR0aW5nc1wiXG4gIH0sXG4gIFwiQ29weSBTZWxlY3RvclwiOiB7XG4gICAgaWQ6IFwiZm9yay1kbS0xXCIsXG4gICAgaW5mbzogXCJBZGRzIGEgXFxcIkNvcHkgU2VsZWN0b3JcXFwiIG9wdGlvbiB0byBjb250ZXh0IG1lbnVzIHdoZW4gZGV2ZWxvcGVyIG1vZGUgaXMgYWN0aXZlXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiY29yZVwiLFxuICAgIGNhdGVnb3J5OiBcImRldmVsb3BlciBzZXR0aW5nc1wiXG4gIH0sXG5cbiAgLyogV2luZG93IFByZWZzICovXG4gIFwiRW5hYmxlIFRyYW5zcGFyZW5jeVwiOiB7XG4gICAgaWQ6IFwiZm9yay13cC0xXCIsXG4gICAgaW5mbzogXCJFbmFibGVzIHRoZSBtYWluIHdpbmRvdyB0byBiZSBzZWUtdGhyb3VnaCAocmVxdWlyZXMgcmVzdGFydClcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwid2luZG93IHByZWZlcmVuY2VzXCJcbiAgfSxcbiAgXCJXaW5kb3cgRnJhbWVcIjoge1xuICAgIGlkOiBcImZvcmstd3AtMlwiLFxuICAgIGluZm86IFwiQWRkcyB0aGUgbmF0aXZlIG9zIHdpbmRvdyBmcmFtZSB0byB0aGUgbWFpbiB3aW5kb3dcIixcbiAgICBpbXBsZW1lbnRlZDogZmFsc2UsXG4gICAgaGlkZGVuOiB0cnVlLFxuICAgIGNhdDogXCJjb3JlXCIsXG4gICAgY2F0ZWdvcnk6IFwid2luZG93IHByZWZlcmVuY2VzXCJcbiAgfSxcblxuICAvKiBFbW90ZXMgKi9cblxuICAvKiA9PT09PT0gKi9cbiAgXCJEb3dubG9hZCBFbW90ZXNcIjoge1xuICAgIGlkOiBcImZvcmstZXMtM1wiLFxuICAgIGluZm86IFwiRG93bmxvYWQgZW1vdGVzIHdoZW4gdGhlIGNhY2hlIGlzIGV4cGlyZWRcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiVHdpdGNoIEVtb3Rlc1wiOiB7XG4gICAgaWQ6IFwiYmRhLWVzLTdcIixcbiAgICBpbmZvOiBcIlNob3cgVHdpdGNoIGVtb3Rlc1wiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJGcmFua2VyRmFjZVogRW1vdGVzXCI6IHtcbiAgICBpZDogXCJiZGEtZXMtMVwiLFxuICAgIGluZm86IFwiU2hvdyBGcmFua2VyRmFjZVogRW1vdGVzXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9LFxuICBcIkJldHRlclRUViBFbW90ZXNcIjoge1xuICAgIGlkOiBcImJkYS1lcy0yXCIsXG4gICAgaW5mbzogXCJTaG93IEJldHRlclRUViBFbW90ZXNcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiRW1vdGUgTWVudVwiOiB7XG4gICAgaWQ6IFwiYmRhLWVzLTBcIixcbiAgICBpbmZvOiBcIlNob3cgVHdpdGNoL0Zhdm91cml0ZSBlbW90ZXMgaW4gZW1vdGUgbWVudVwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfSxcbiAgXCJFbW9qaSBNZW51XCI6IHtcbiAgICBpZDogXCJiZGEtZXMtOVwiLFxuICAgIGluZm86IFwiU2hvdyBEaXNjb3JkIGVtb2ppIG1lbnVcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiRW1vdGUgQXV0byBDYXBpdGFsaXphdGlvblwiOiB7XG4gICAgaWQ6IFwiYmRhLWVzLTRcIixcbiAgICBpbmZvOiBcIkF1dG9jYXBpdGFsaXplIGVtb3RlIGNvbW1hbmRzXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9LFxuICBcIlNob3cgTmFtZXNcIjoge1xuICAgIGlkOiBcImJkYS1lcy02XCIsXG4gICAgaW5mbzogXCJTaG93IGVtb3RlIG5hbWVzIG9uIGhvdmVyXCIsXG4gICAgaW1wbGVtZW50ZWQ6IHRydWUsXG4gICAgaGlkZGVuOiBmYWxzZSxcbiAgICBjYXQ6IFwiZW1vdGVcIlxuICB9LFxuICBcIlNob3cgZW1vdGUgbW9kaWZpZXJzXCI6IHtcbiAgICBpZDogXCJiZGEtZXMtOFwiLFxuICAgIGluZm86IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIixcbiAgICBpbXBsZW1lbnRlZDogdHJ1ZSxcbiAgICBoaWRkZW46IGZhbHNlLFxuICAgIGNhdDogXCJlbW90ZVwiXG4gIH0sXG4gIFwiQW5pbWF0ZSBPbiBIb3ZlclwiOiB7XG4gICAgaWQ6IFwiZm9yay1lcy0yXCIsXG4gICAgaW5mbzogXCJPbmx5IGFuaW1hdGUgdGhlIGVtb3RlIG1vZGlmaWVycyBvbiBob3ZlclwiLFxuICAgIGltcGxlbWVudGVkOiB0cnVlLFxuICAgIGhpZGRlbjogZmFsc2UsXG4gICAgY2F0OiBcImVtb3RlXCJcbiAgfVxufTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29va2llID0ge1xuICBcImJkYS1ncy0xXCI6IHRydWUsXG4gIFwiYmRhLWdzLTJcIjogZmFsc2UsXG4gIFwiYmRhLWdzLTNcIjogZmFsc2UsXG4gIFwiYmRhLWdzLTRcIjogZmFsc2UsXG4gIFwiYmRhLWdzLTVcIjogdHJ1ZSxcbiAgXCJiZGEtZ3MtNlwiOiBmYWxzZSxcbiAgXCJiZGEtZ3MtN1wiOiBmYWxzZSxcbiAgXCJiZGEtZ3MtOFwiOiBmYWxzZSxcbiAgXCJiZGEtZXMtMFwiOiB0cnVlLFxuICBcImJkYS1lcy0xXCI6IHRydWUsXG4gIFwiYmRhLWVzLTJcIjogdHJ1ZSxcbiAgXCJiZGEtZXMtNFwiOiBmYWxzZSxcbiAgXCJiZGEtZXMtNlwiOiB0cnVlLFxuICBcImJkYS1lcy03XCI6IHRydWUsXG4gIFwiYmRhLWdzLWJcIjogZmFsc2UsXG4gIFwiYmRhLWVzLThcIjogdHJ1ZSxcbiAgXCJiZGEtZGMtMFwiOiBmYWxzZSxcbiAgXCJiZGEtY3NzLTBcIjogZmFsc2UsXG4gIFwiYmRhLWNzcy0xXCI6IGZhbHNlLFxuICBcImJkYS1lcy05XCI6IHRydWUsXG4gIFwiZm9yay1kbS0xXCI6IGZhbHNlLFxuICBcImZvcmstcHMtMVwiOiB0cnVlLFxuICBcImZvcmstcHMtMlwiOiB0cnVlLFxuICBcImZvcmstcHMtM1wiOiB0cnVlLFxuICBcImZvcmstcHMtNFwiOiB0cnVlLFxuICBcImZvcmstcHMtNVwiOiB0cnVlLFxuICBcImZvcmstZXMtMlwiOiBmYWxzZSxcbiAgXCJmb3JrLWVzLTNcIjogdHJ1ZSxcbiAgXCJmb3JrLXdwLTFcIjogZmFsc2UsXG4gIFwiZm9yay13cC0yXCI6IGZhbHNlLFxuICBcImZvcmstYmV0YVwiOiB0cnVlXG59O1xuZXhwb3J0IGNvbnN0IHNldHRpbmdzQ29va2llID0ge307XG5leHBvcnQgY29uc3QgYmRwbHVnaW5FcnJvcnMgPSBbXTtcbmV4cG9ydCBjb25zdCBiZHRoZW1lRXJyb3JzID0gW107IC8vIGRlZmluZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblxuZXhwb3J0IGNvbnN0IGJkQ29uZmlnID0ge307XG5leHBvcnQgY29uc3QgYmVtb3RlcyA9IFtdO1xuZXhwb3J0IGNvbnN0IGVtb3Rlc0ZmeiA9IHt9O1xuZXhwb3J0IGNvbnN0IGVtb3Rlc0JUVFYgPSB7fTtcbmV4cG9ydCBjb25zdCBlbW90ZXNCVFRWMiA9IHt9O1xuZXhwb3J0IGNvbnN0IGVtb3Rlc1R3aXRjaCA9IHt9O1xuZXhwb3J0IGNvbnN0IHN1YkVtb3Rlc1R3aXRjaCA9IHt9O1xuZXhwb3J0IGNvbnN0IGJkRW1vdGVzID0ge1xuICBUd2l0Y2hHbG9iYWw6IHt9LFxuICBUd2l0Y2hTdWJzY3JpYmVyOiB7fSxcbiAgQlRUVjoge30sXG4gIEZyYW5rZXJGYWNlWjoge30sXG4gIEJUVFYyOiB7fVxufTtcbmV4cG9ydCBjb25zdCBiZEVtb3RlU2V0dGluZ0lEcyA9IHtcbiAgVHdpdGNoR2xvYmFsOiBcImJkYS1lcy03XCIsXG4gIFR3aXRjaFN1YnNjcmliZXI6IFwiYmRhLWVzLTdcIixcbiAgQlRUVjogXCJiZGEtZXMtMlwiLFxuICBGcmFua2VyRmFjZVo6IFwiYmRhLWVzLTFcIixcbiAgQlRUVjI6IFwiYmRhLWVzLTJcIlxufTtcbmV4cG9ydCBjb25zdCBiZHRoZW1lcyA9IHt9O1xuZXhwb3J0IGNvbnN0IGJkcGx1Z2lucyA9IHt9O1xuZXhwb3J0IGNvbnN0IHBsdWdpbkNvb2tpZSA9IHt9O1xuZXhwb3J0IGNvbnN0IHRoZW1lQ29va2llID0ge307Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/0globals.js\n"); /***/ }), @@ -227,7 +227,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0gl /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _localStorageFix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localStorageFix */ \"./src/localStorageFix.js\");\n/* harmony import */ var _loadingIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loadingIcon */ \"./src/loadingIcon.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ \"./src/core.js\");\n/* harmony import */ var _bdApi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bdApi */ \"./src/bdApi.js\");\n\n\nObject(_localStorageFix__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\nObject(_loadingIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\n\nwindow.BdApi = _bdApi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // DataStore\n// BDEvents\n// settingsPanel\n// emoteModule\n// quickEmoteMenu\n// voiceMode\n// pluginModule\n// themeModule\n// dMode\n// publicServersModule\n// minSupportedVersion\n// bbdVersion\n// bbdChangelog\n// mainCore\n// settings\n// defaultCookie\n// settingsCookie\n// bdpluginErrors\n// bdthemeErrors\n// bdConfig\n// bemotes\n// Utils\n// ContentManager\n// pluginCookie\n// themeCookie\n// devMode\n// ClassNormalizer\n// BDV2\n// localStorage\n// bdEmotes\n// bdEmoteSettingIDs\n// bdthemes\n// bdplugins\n// emotePromise\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"]); // function patchModuleLoad() {\n// const namespace = \"betterdiscord\";\n// const prefix = `${namespace}/`;\n// const Module = require(\"module\");\n// const load = Module._load;\n// // const resolveFilename = Module._resolveFilename;\n// Module._load = function(request) {\n// if (request === namespace || request.startsWith(prefix)) {\n// const requested = request.substr(prefix.length);\n// if (requested == \"api\") return BdApi;\n// }\n// return load.apply(this, arguments);\n// };\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// return function() {\n// Module._load = load;\n// };\n// }\n// patchModuleLoad();\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2JmNDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvY2FsU3RvcmFnZUZpeCBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VGaXhcIjtcbmltcG9ydCBsb2FkaW5nSWNvbiBmcm9tIFwiLi9sb2FkaW5nSWNvblwiO1xubG9jYWxTdG9yYWdlRml4KCk7XG5sb2FkaW5nSWNvbigpO1xuaW1wb3J0IENvcmUgZnJvbSBcIi4vY29yZVwiO1xuaW1wb3J0IEJkQXBpIGZyb20gXCIuL2JkQXBpXCI7XG53aW5kb3cuQmRBcGkgPSBCZEFwaTsgLy8gRGF0YVN0b3JlXG4vLyBCREV2ZW50c1xuLy8gc2V0dGluZ3NQYW5lbFxuLy8gZW1vdGVNb2R1bGVcbi8vIHF1aWNrRW1vdGVNZW51XG4vLyB2b2ljZU1vZGVcbi8vIHBsdWdpbk1vZHVsZVxuLy8gdGhlbWVNb2R1bGVcbi8vIGRNb2RlXG4vLyBwdWJsaWNTZXJ2ZXJzTW9kdWxlXG4vLyBtaW5TdXBwb3J0ZWRWZXJzaW9uXG4vLyBiYmRWZXJzaW9uXG4vLyBiYmRDaGFuZ2Vsb2dcbi8vIG1haW5Db3JlXG4vLyBzZXR0aW5nc1xuLy8gZGVmYXVsdENvb2tpZVxuLy8gc2V0dGluZ3NDb29raWVcbi8vIGJkcGx1Z2luRXJyb3JzXG4vLyBiZHRoZW1lRXJyb3JzXG4vLyBiZENvbmZpZ1xuLy8gYmVtb3Rlc1xuLy8gVXRpbHNcbi8vIENvbnRlbnRNYW5hZ2VyXG4vLyBwbHVnaW5Db29raWVcbi8vIHRoZW1lQ29va2llXG4vLyBkZXZNb2RlXG4vLyBDbGFzc05vcm1hbGl6ZXJcbi8vIEJEVjJcbi8vIGxvY2FsU3RvcmFnZVxuLy8gYmRFbW90ZXNcbi8vIGJkRW1vdGVTZXR0aW5nSURzXG4vLyBiZHRoZW1lc1xuLy8gYmRwbHVnaW5zXG4vLyBlbW90ZVByb21pc2VcblxuZXhwb3J0IGRlZmF1bHQgQ29yZTsgLy8gZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xuLy8gICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xuLy8gICAgIGNvbnN0IHByZWZpeCA9IGAke25hbWVzcGFjZX0vYDtcbi8vICAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xuLy8gICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XG4vLyAgICAgLy8gY29uc3QgcmVzb2x2ZUZpbGVuYW1lID0gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWU7XG4vLyAgICAgTW9kdWxlLl9sb2FkID0gZnVuY3Rpb24ocmVxdWVzdCkge1xuLy8gICAgICAgICBpZiAocmVxdWVzdCA9PT0gbmFtZXNwYWNlIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4vLyAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcbi8vICAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIHJldHVybiBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4vLyAgICAgfTtcbi8vICAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xuLy8gICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcbi8vICAgICAvLyAgICAgICAgIGNvbnN0IGNvbnRlbnRQYXRoID0gUGx1Z2luTWFuYWdlci5nZXRQbHVnaW5QYXRoQnlNb2R1bGUocGFyZW50KTtcbi8vICAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XG4vLyAgICAgLy8gICAgIH1cbi8vICAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuLy8gICAgIC8vIH07XG4vLyAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuLy8gICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xuLy8gICAgIH07XG4vLyB9XG4vLyBwYXRjaE1vZHVsZUxvYWQoKTtcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xuLy8gdmFyIGJkQ29uZmlnID0gbnVsbDsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/index.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _localStorageFix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localStorageFix */ \"./src/localStorageFix.js\");\n/* harmony import */ var _loadingIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loadingIcon */ \"./src/loadingIcon.js\");\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _bdApi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bdApi */ \"./src/bdApi.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _settingsPanel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./settingsPanel */ \"./src/settingsPanel.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _classNormalizer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./classNormalizer */ \"./src/classNormalizer.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core */ \"./src/core.js\");\n\n\nObject(_localStorageFix__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\nObject(_loadingIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\nconst deprecateGlobal = (key, value) => {\n Object.defineProperty(window, key, {\n get() {\n _utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].warn(\"Deprecation Notice\", `\"${key}\" may be removed in future versions. Please only use BdApi.`);\n return value;\n }\n\n });\n};\n\n\nconst globalKeys = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_2__);\n\nfor (const key of globalKeys) deprecateGlobal(key, _0globals__WEBPACK_IMPORTED_MODULE_2__[key]);\n\n\n\n\n\n\n\n\n\n\n\n\ndeprecateGlobal(\"BDV2\", _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\ndeprecateGlobal(\"pluginModule\", _pluginModule__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\ndeprecateGlobal(\"themeModule\", _themeModule__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\ndeprecateGlobal(\"Utils\", _utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\ndeprecateGlobal(\"BDEvents\", _bdEvents__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\ndeprecateGlobal(\"settingsPanel\", _settingsPanel__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\ndeprecateGlobal(\"DataStore\", _dataStore__WEBPACK_IMPORTED_MODULE_10__[\"default\"]);\ndeprecateGlobal(\"emoteModule\", _emoteModule__WEBPACK_IMPORTED_MODULE_11__[\"default\"]);\ndeprecateGlobal(\"ContentManager\", _contentManager__WEBPACK_IMPORTED_MODULE_12__[\"default\"]);\ndeprecateGlobal(\"ClassNormalizer\", _classNormalizer__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\nwindow.BdApi = _bdApi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // DataStore\n// emoteModule\n// ContentManager\n// ClassNormalizer\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_core__WEBPACK_IMPORTED_MODULE_14__[\"default\"]); // function patchModuleLoad() {\n// const namespace = \"betterdiscord\";\n// const prefix = `${namespace}/`;\n// const Module = require(\"module\");\n// const load = Module._load;\n// // const resolveFilename = Module._resolveFilename;\n// Module._load = function(request) {\n// if (request === namespace || request.startsWith(prefix)) {\n// const requested = request.substr(prefix.length);\n// if (requested == \"api\") return BdApi;\n// }\n// return load.apply(this, arguments);\n// };\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// return function() {\n// Module._load = load;\n// };\n// }\n// patchModuleLoad();\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2JmNDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvY2FsU3RvcmFnZUZpeCBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VGaXhcIjtcbmltcG9ydCBsb2FkaW5nSWNvbiBmcm9tIFwiLi9sb2FkaW5nSWNvblwiO1xubG9jYWxTdG9yYWdlRml4KCk7XG5sb2FkaW5nSWNvbigpO1xuXG5jb25zdCBkZXByZWNhdGVHbG9iYWwgPSAoa2V5LCB2YWx1ZSkgPT4ge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCBrZXksIHtcbiAgICBnZXQoKSB7XG4gICAgICBVdGlscy53YXJuKFwiRGVwcmVjYXRpb24gTm90aWNlXCIsIGBcIiR7a2V5fVwiIG1heSBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4gUGxlYXNlIG9ubHkgdXNlIEJkQXBpLmApO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICB9KTtcbn07XG5cbmltcG9ydCAqIGFzIEdsb2JhbHMgZnJvbSBcIi4vMGdsb2JhbHNcIjtcbmNvbnN0IGdsb2JhbEtleXMgPSBPYmplY3Qua2V5cyhHbG9iYWxzKTtcblxuZm9yIChjb25zdCBrZXkgb2YgZ2xvYmFsS2V5cykgZGVwcmVjYXRlR2xvYmFsKGtleSwgR2xvYmFsc1trZXldKTtcblxuaW1wb3J0IEJkQXBpIGZyb20gXCIuL2JkQXBpXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xuaW1wb3J0IHBsdWdpbk1vZHVsZSBmcm9tIFwiLi9wbHVnaW5Nb2R1bGVcIjtcbmltcG9ydCB0aGVtZU1vZHVsZSBmcm9tIFwiLi90aGVtZU1vZHVsZVwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgQkRFdmVudHMgZnJvbSBcIi4vYmRFdmVudHNcIjtcbmltcG9ydCBzZXR0aW5nc1BhbmVsIGZyb20gXCIuL3NldHRpbmdzUGFuZWxcIjtcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YVN0b3JlXCI7XG5pbXBvcnQgZW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVNb2R1bGVcIjtcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50TWFuYWdlclwiO1xuaW1wb3J0IENsYXNzTm9ybWFsaXplciBmcm9tIFwiLi9jbGFzc05vcm1hbGl6ZXJcIjtcbmRlcHJlY2F0ZUdsb2JhbChcIkJEVjJcIiwgQkRWMik7XG5kZXByZWNhdGVHbG9iYWwoXCJwbHVnaW5Nb2R1bGVcIiwgcGx1Z2luTW9kdWxlKTtcbmRlcHJlY2F0ZUdsb2JhbChcInRoZW1lTW9kdWxlXCIsIHRoZW1lTW9kdWxlKTtcbmRlcHJlY2F0ZUdsb2JhbChcIlV0aWxzXCIsIFV0aWxzKTtcbmRlcHJlY2F0ZUdsb2JhbChcIkJERXZlbnRzXCIsIEJERXZlbnRzKTtcbmRlcHJlY2F0ZUdsb2JhbChcInNldHRpbmdzUGFuZWxcIiwgc2V0dGluZ3NQYW5lbCk7XG5kZXByZWNhdGVHbG9iYWwoXCJEYXRhU3RvcmVcIiwgRGF0YVN0b3JlKTtcbmRlcHJlY2F0ZUdsb2JhbChcImVtb3RlTW9kdWxlXCIsIGVtb3RlTW9kdWxlKTtcbmRlcHJlY2F0ZUdsb2JhbChcIkNvbnRlbnRNYW5hZ2VyXCIsIENvbnRlbnRNYW5hZ2VyKTtcbmRlcHJlY2F0ZUdsb2JhbChcIkNsYXNzTm9ybWFsaXplclwiLCBDbGFzc05vcm1hbGl6ZXIpO1xud2luZG93LkJkQXBpID0gQmRBcGk7IC8vIERhdGFTdG9yZVxuLy8gZW1vdGVNb2R1bGVcbi8vIENvbnRlbnRNYW5hZ2VyXG4vLyBDbGFzc05vcm1hbGl6ZXJcblxuaW1wb3J0IENvcmUgZnJvbSBcIi4vY29yZVwiO1xuZXhwb3J0IGRlZmF1bHQgQ29yZTsgLy8gZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xuLy8gICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xuLy8gICAgIGNvbnN0IHByZWZpeCA9IGAke25hbWVzcGFjZX0vYDtcbi8vICAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xuLy8gICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XG4vLyAgICAgLy8gY29uc3QgcmVzb2x2ZUZpbGVuYW1lID0gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWU7XG4vLyAgICAgTW9kdWxlLl9sb2FkID0gZnVuY3Rpb24ocmVxdWVzdCkge1xuLy8gICAgICAgICBpZiAocmVxdWVzdCA9PT0gbmFtZXNwYWNlIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4vLyAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcbi8vICAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIHJldHVybiBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4vLyAgICAgfTtcbi8vICAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xuLy8gICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcbi8vICAgICAvLyAgICAgICAgIGNvbnN0IGNvbnRlbnRQYXRoID0gUGx1Z2luTWFuYWdlci5nZXRQbHVnaW5QYXRoQnlNb2R1bGUocGFyZW50KTtcbi8vICAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XG4vLyAgICAgLy8gICAgIH1cbi8vICAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuLy8gICAgIC8vIH07XG4vLyAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuLy8gICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xuLy8gICAgIH07XG4vLyB9XG4vLyBwYXRjaE1vZHVsZUxvYWQoKTtcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xuLy8gdmFyIGJkQ29uZmlnID0gbnVsbDsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/index.js\n"); /***/ }), @@ -623,7 +623,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsPanelSidebar */ \"./src/settingsPanelSidebar.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _coloredText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./coloredText */ \"./src/coloredText.js\");\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./24hour */ \"./src/24hour.js\");\n/* harmony import */ var _publicServers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./publicServers */ \"./src/publicServers.js\");\n/* harmony import */ var _voiceMode__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./voiceMode */ \"./src/voiceMode.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _classNormalizer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./classNormalizer */ \"./src/classNormalizer.js\");\n/* harmony import */ var _devMode__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./devMode */ \"./src/devMode.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _react_tools__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./react/tools */ \"./src/react/tools.js\");\n/* harmony import */ var _react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./react/reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./react/tooltipWrap */ \"./src/react/tooltipWrap.js\");\n/* harmony import */ var _react_scroller__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./react/scroller */ \"./src/react/scroller.js\");\n/* harmony import */ var _react_list__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./react/list */ \"./src/react/list.js\");\n/* harmony import */ var _react_pluginCard__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./react/pluginCard */ \"./src/react/pluginCard.js\");\n/* harmony import */ var _react_themeCard__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./react/themeCard */ \"./src/react/themeCard.js\");\n/* harmony import */ var _react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./react/sectionedSettingsPanel */ \"./src/react/sectionedSettingsPanel.js\");\n/* harmony import */ var _react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./react/settingsPanel */ \"./src/react/settingsPanel.js\");\n/* harmony import */ var _react_cssEditor__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./react/cssEditor */ \"./src/react/cssEditor.js\");\n/* harmony import */ var _react_contentColumn__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./react/contentColumn */ \"./src/react/contentColumn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2_SettingsPanel {\n constructor() {\n const self = this;\n self.sideBarOnClick = self.sideBarOnClick.bind(self);\n self.onChange = self.onChange.bind(self);\n self.updateSettings = this.updateSettings.bind(self);\n self.sidebar = new _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__[\"default\"](self.sideBarOnClick);\n }\n\n get root() {\n const _root = $(\"#bd-settingspane-container\");\n\n if (!_root.length) {\n if (!this.injectRoot()) return null;\n return this.root;\n }\n\n return _root[0];\n }\n\n injectRoot() {\n if (!$(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").length) return false;\n const root = $(\"
\", {\n \"class\": \"contentRegion-3nDuYy content-region\",\n \"id\": \"bd-settingspane-container\"\n });\n $(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").append(root);\n _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].onRemoved(root[0], () => {\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(root[0]);\n });\n return true;\n }\n\n get coreSettings() {\n const settings = this.getSettings(\"core\");\n const categories = [...new Set(settings.map(s => s.category))];\n const sections = categories.map(c => {\n return {\n title: c,\n settings: settings.filter(s => s.category == c)\n };\n });\n return sections;\n }\n\n get emoteSettings() {\n return this.getSettings(\"emote\");\n }\n\n getSettings(category) {\n return Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"]).reduce((arr, key) => {\n const setting = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][key];\n\n if (setting.cat === category && setting.implemented && !setting.hidden) {\n setting.text = key;\n arr.push(setting);\n }\n\n return arr;\n }, []);\n }\n\n sideBarOnClick(id) {\n const self = this;\n $(\".contentRegion-3nDuYy, .content-region\").first().hide();\n $(self.root).show();\n\n switch (id) {\n case \"core\":\n self.renderCoreSettings();\n break;\n\n case \"emotes\":\n self.renderEmoteSettings();\n break;\n\n case \"customcss\":\n self.renderCustomCssEditor();\n break;\n\n case \"plugins\":\n self.renderPluginPane();\n break;\n\n case \"themes\":\n self.renderThemePane();\n break;\n }\n }\n\n onClick() {}\n\n onChange(id, checked) {\n this.updateSettings(id, checked);\n }\n\n updateSettings(id, enabled) {\n _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][id] = enabled; // if (id == \"bda-gs-b\") {\n // if (enabled) $(\"body\").addClass(\"bd-blue\");\n // else $(\"body\").removeClass(\"bd-blue\");\n // }\n\n if (id == \"bda-gs-2\") {\n if (enabled) $(\"body\").addClass(\"bd-minimal\");else $(\"body\").removeClass(\"bd-minimal\");\n }\n\n if (id == \"bda-gs-3\") {\n if (enabled) $(\"body\").addClass(\"bd-minimal-chan\");else $(\"body\").removeClass(\"bd-minimal-chan\");\n }\n\n if (id == \"bda-gs-1\") {\n if (enabled) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();else _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].removeButton();\n }\n\n if (id == \"bda-gs-4\") {\n if (enabled) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();else _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].disable();\n }\n\n if (id == \"bda-gs-5\") {\n if (enabled) $(\"#app-mount\").addClass(\"bda-dark\");else $(\"#app-mount\").removeClass(\"bda-dark\");\n }\n\n if (enabled && id == \"bda-gs-6\") _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n\n if (id == \"bda-gs-7\") {\n if (enabled) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();else _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].removeColoredText();\n }\n\n if (id == \"bda-es-4\") {\n if (enabled) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();else _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].disableAutoCapitalize();\n }\n\n if (id == \"fork-ps-4\") {\n if (enabled) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();else _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].stop();\n }\n\n if (id == \"fork-ps-5\") {\n if (enabled) {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n } else {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"theme\");\n }\n }\n\n if (id == \"fork-wp-1\") {} // BdApi.setWindowPreference(\"transparent\", enabled);\n // if (enabled) BdApi.setWindowPreference(\"backgroundColor\", null);\n // else BdApi.setWindowPreference(\"backgroundColor\", \"#2f3136\");\n\n /*if (_c[\"fork-wp-2\"]) {\r\n const current = BdApi.getWindowPreference(\"frame\");\r\n if (current != _c[\"fork-wp-2\"]) BdApi.setWindowPreference(\"frame\", _c[\"fork-wp-2\"]);\r\n }*/\n\n\n if (id == \"bda-gs-8\") {\n if (enabled) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);else _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].disable();\n }\n\n if (id == \"fork-dm-1\") {\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(enabled);\n }\n\n this.saveSettings();\n }\n\n async initializeSettings() {\n // if (settingsCookie[\"bda-gs-b\"]) $(\"body\").addClass(\"bd-blue\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-2\"]) $(\"body\").addClass(\"bd-minimal\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-3\"]) $(\"body\").addClass(\"bd-minimal-chan\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-1\"]) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-4\"]) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-5\"]) $(\"#app-mount\").addClass(\"bda-dark\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-6\"]) _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-7\"]) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-4\"]) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-4\"]) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"]) {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n }\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);\n this.saveSettings();\n }\n\n saveSettings() {\n _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setSettingGroup(\"settings\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"]);\n }\n\n loadSettings() {\n Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"], _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSettingGroup(\"settings\"));\n }\n\n renderSidebar() {\n const self = this;\n $(\"[class*='side-'] > [class*='item-']\").off(\"click.v2settingspanel\").on(\"click.v2settingspanel\", () => {\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(self.root);\n $(self.root).hide();\n $(\".contentRegion-3nDuYy, .content-region\").first().show();\n });\n self.sidebar.render();\n }\n\n get coreComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: \"cspanel\",\n onChange: this.onChange,\n sections: this.coreSettings\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get emoteComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n key: \"espanel\",\n title: \"Emote Settings\",\n onChange: this.onChange,\n settings: this.emoteSettings,\n button: {\n title: \"Clear Emote Cache\",\n onClick: () => {\n _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].clearEmoteData();\n _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].init();\n _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__[\"default\"].init();\n }\n }\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get customCssComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_cssEditor__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n key: \"csseditor\"\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n contentComponent(type) {\n const componentElement = type == \"plugins\" ? this.pluginsComponent : this.themesComponent;\n const prefix = type.replace(\"s\", \"\");\n const settingsList = this;\n\n class ContentList extends _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n }\n\n componentDidMount() {\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-reloaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-loaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-unloaded`, this.onChange);\n }\n\n componentWillUnmount() {\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-reloaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-loaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-unloaded`, this.onChange);\n }\n\n onChange() {\n settingsList.sideBarOnClick(type);\n }\n\n render() {\n return componentElement;\n }\n\n }\n\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(ContentList);\n }\n\n get pluginsComponent() {\n const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_pluginCard__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n key: key,\n plugin: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][key].plugin\n }));\n return arr;\n }, []);\n const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n key: \"plugin-list\",\n className: \"bda-slist\",\n children: plugins\n });\n const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n color: \"black\",\n side: \"top\",\n text: \"Reload Plugin List\"\n }), {\n className: \"bd-reload-header\",\n size: \"18px\",\n onClick: async () => {\n _pluginModule__WEBPACK_IMPORTED_MODULE_7__[\"default\"].updatePluginList();\n this.sideBarOnClick(\"plugins\");\n }\n });\n const pfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n key: \"folder-button\",\n className: \"bd-pfbtn\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].pluginsFolder);\n }\n }, \"Open Plugin Folder\");\n const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n key: \"pcolumn\",\n title: \"Plugins\",\n children: [refreshIcon, pfBtn, list]\n });\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get themesComponent() {\n const themes = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_themeCard__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: key,\n theme: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][key]\n }));\n return arr;\n }, []);\n const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n key: \"theme-list\",\n className: \"bda-slist\",\n children: themes\n });\n const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n color: \"black\",\n side: \"top\",\n text: \"Reload Theme List\"\n }), {\n className: \"bd-reload-header\",\n size: \"18px\",\n onClick: async () => {\n _themeModule__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateThemeList();\n this.sideBarOnClick(\"themes\");\n }\n });\n const tfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n key: \"folder-button\",\n className: \"bd-pfbtn\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].themesFolder);\n }\n }, \"Open Theme Folder\");\n const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n key: \"tcolumn\",\n title: \"Themes\",\n children: [refreshIcon, tfBtn, list]\n });\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n renderCoreSettings() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.coreComponent, root);\n }\n\n renderEmoteSettings() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.emoteComponent, root);\n }\n\n renderCustomCssEditor() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.customCssComponent, root);\n }\n\n renderPluginPane() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"plugins\"), root);\n }\n\n renderThemePane() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"themes\"), root);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2V0dGluZ3NQYW5lbC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvc2V0dGluZ3NQYW5lbC5qcz8wOWIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldHRpbmdzLCBzZXR0aW5nc0Nvb2tpZSwgYmRwbHVnaW5zLCBiZHRoZW1lcyB9IGZyb20gXCIuLzBnbG9iYWxzXCI7XG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFTdG9yZVwiO1xuaW1wb3J0IFYyX1NldHRpbmdzUGFuZWxfU2lkZWJhciBmcm9tIFwiLi9zZXR0aW5nc1BhbmVsU2lkZWJhclwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xuaW1wb3J0IENvbnRlbnRNYW5hZ2VyIGZyb20gXCIuL2NvbnRlbnRNYW5hZ2VyXCI7XG5pbXBvcnQgQkRFdmVudHMgZnJvbSBcIi4vYmRFdmVudHNcIjtcbmltcG9ydCBwbHVnaW5Nb2R1bGUgZnJvbSBcIi4vcGx1Z2luTW9kdWxlXCI7XG5pbXBvcnQgdGhlbWVNb2R1bGUgZnJvbSBcIi4vdGhlbWVNb2R1bGVcIjtcbmltcG9ydCBjb2xvcmVkVGV4dCBmcm9tIFwiLi9jb2xvcmVkVGV4dFwiO1xuaW1wb3J0IHRmSG91ciBmcm9tIFwiLi8yNGhvdXJcIjtcbmltcG9ydCBwdWJsaWNTZXJ2ZXJzTW9kdWxlIGZyb20gXCIuL3B1YmxpY1NlcnZlcnNcIjtcbmltcG9ydCB2b2ljZU1vZGUgZnJvbSBcIi4vdm9pY2VNb2RlXCI7XG5pbXBvcnQgZW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVNb2R1bGVcIjtcbmltcG9ydCBDbGFzc05vcm1hbGl6ZXIgZnJvbSBcIi4vY2xhc3NOb3JtYWxpemVyXCI7XG5pbXBvcnQgZE1vZGUgZnJvbSBcIi4vZGV2TW9kZVwiO1xuaW1wb3J0IHF1aWNrRW1vdGVNZW51IGZyb20gXCIuL3F1aWNrRW1vdGVNZW51XCI7XG5pbXBvcnQgVG9vbHMgZnJvbSBcIi4vcmVhY3QvdG9vbHNcIjtcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuL3JlYWN0L3JlbG9hZEljb25cIjtcbmltcG9ydCBUb29sdGlwV3JhcCBmcm9tIFwiLi9yZWFjdC90b29sdGlwV3JhcFwiO1xuaW1wb3J0IFNjcm9sbGVyIGZyb20gXCIuL3JlYWN0L3Njcm9sbGVyXCI7XG5pbXBvcnQgTGlzdCBmcm9tIFwiLi9yZWFjdC9saXN0XCI7XG5pbXBvcnQgUGx1Z2luQ2FyZCBmcm9tIFwiLi9yZWFjdC9wbHVnaW5DYXJkXCI7XG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3JlYWN0L3RoZW1lQ2FyZFwiO1xuaW1wb3J0IFNlY3Rpb25lZFNldHRpbmdzUGFuZWwgZnJvbSBcIi4vcmVhY3Qvc2VjdGlvbmVkU2V0dGluZ3NQYW5lbFwiO1xuaW1wb3J0IFNldHRpbmdzUGFuZWwgZnJvbSBcIi4vcmVhY3Qvc2V0dGluZ3NQYW5lbFwiO1xuaW1wb3J0IENzc0VkaXRvciBmcm9tIFwiLi9yZWFjdC9jc3NFZGl0b3JcIjtcbmltcG9ydCBDb250ZW50Q29sdW1uIGZyb20gXCIuL3JlYWN0L2NvbnRlbnRDb2x1bW5cIjtcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBWMl9TZXR0aW5nc1BhbmVsIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5zaWRlQmFyT25DbGljayA9IHNlbGYuc2lkZUJhck9uQ2xpY2suYmluZChzZWxmKTtcbiAgICBzZWxmLm9uQ2hhbmdlID0gc2VsZi5vbkNoYW5nZS5iaW5kKHNlbGYpO1xuICAgIHNlbGYudXBkYXRlU2V0dGluZ3MgPSB0aGlzLnVwZGF0ZVNldHRpbmdzLmJpbmQoc2VsZik7XG4gICAgc2VsZi5zaWRlYmFyID0gbmV3IFYyX1NldHRpbmdzUGFuZWxfU2lkZWJhcihzZWxmLnNpZGVCYXJPbkNsaWNrKTtcbiAgfVxuXG4gIGdldCByb290KCkge1xuICAgIGNvbnN0IF9yb290ID0gJChcIiNiZC1zZXR0aW5nc3BhbmUtY29udGFpbmVyXCIpO1xuXG4gICAgaWYgKCFfcm9vdC5sZW5ndGgpIHtcbiAgICAgIGlmICghdGhpcy5pbmplY3RSb290KCkpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMucm9vdDtcbiAgICB9XG5cbiAgICByZXR1cm4gX3Jvb3RbMF07XG4gIH1cblxuICBpbmplY3RSb290KCkge1xuICAgIGlmICghJChcIi5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpLCAubGF5ZXItM1FyVWVHIC51aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3Qgcm9vdCA9ICQoXCI8ZGl2Lz5cIiwge1xuICAgICAgXCJjbGFzc1wiOiBcImNvbnRlbnRSZWdpb24tM25EdVl5IGNvbnRlbnQtcmVnaW9uXCIsXG4gICAgICBcImlkXCI6IFwiYmQtc2V0dGluZ3NwYW5lLWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgJChcIi5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpLCAubGF5ZXItM1FyVWVHIC51aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIikuYXBwZW5kKHJvb3QpO1xuICAgIFV0aWxzLm9uUmVtb3ZlZChyb290WzBdLCAoKSA9PiB7XG4gICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUocm9vdFswXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgY29yZVNldHRpbmdzKCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5nZXRTZXR0aW5ncyhcImNvcmVcIik7XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IFsuLi5uZXcgU2V0KHNldHRpbmdzLm1hcChzID0+IHMuY2F0ZWdvcnkpKV07XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBjYXRlZ29yaWVzLm1hcChjID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBjLFxuICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MuZmlsdGVyKHMgPT4gcy5jYXRlZ29yeSA9PSBjKVxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2VjdGlvbnM7XG4gIH1cblxuICBnZXQgZW1vdGVTZXR0aW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTZXR0aW5ncyhcImVtb3RlXCIpO1xuICB9XG5cbiAgZ2V0U2V0dGluZ3MoY2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2V0dGluZ3MpLnJlZHVjZSgoYXJyLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1trZXldO1xuXG4gICAgICBpZiAoc2V0dGluZy5jYXQgPT09IGNhdGVnb3J5ICYmIHNldHRpbmcuaW1wbGVtZW50ZWQgJiYgIXNldHRpbmcuaGlkZGVuKSB7XG4gICAgICAgIHNldHRpbmcudGV4dCA9IGtleTtcbiAgICAgICAgYXJyLnB1c2goc2V0dGluZyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgc2lkZUJhck9uQ2xpY2soaWQpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAkKFwiLmNvbnRlbnRSZWdpb24tM25EdVl5LCAuY29udGVudC1yZWdpb25cIikuZmlyc3QoKS5oaWRlKCk7XG4gICAgJChzZWxmLnJvb3QpLnNob3coKTtcblxuICAgIHN3aXRjaCAoaWQpIHtcbiAgICAgIGNhc2UgXCJjb3JlXCI6XG4gICAgICAgIHNlbGYucmVuZGVyQ29yZVNldHRpbmdzKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiZW1vdGVzXCI6XG4gICAgICAgIHNlbGYucmVuZGVyRW1vdGVTZXR0aW5ncygpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcImN1c3RvbWNzc1wiOlxuICAgICAgICBzZWxmLnJlbmRlckN1c3RvbUNzc0VkaXRvcigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInBsdWdpbnNcIjpcbiAgICAgICAgc2VsZi5yZW5kZXJQbHVnaW5QYW5lKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwidGhlbWVzXCI6XG4gICAgICAgIHNlbGYucmVuZGVyVGhlbWVQYW5lKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soKSB7fVxuXG4gIG9uQ2hhbmdlKGlkLCBjaGVja2VkKSB7XG4gICAgdGhpcy51cGRhdGVTZXR0aW5ncyhpZCwgY2hlY2tlZCk7XG4gIH1cblxuICB1cGRhdGVTZXR0aW5ncyhpZCwgZW5hYmxlZCkge1xuICAgIHNldHRpbmdzQ29va2llW2lkXSA9IGVuYWJsZWQ7IC8vIGlmIChpZCA9PSBcImJkYS1ncy1iXCIpIHtcbiAgICAvLyAgICAgaWYgKGVuYWJsZWQpICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtYmx1ZVwiKTtcbiAgICAvLyAgICAgZWxzZSAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLWJsdWVcIik7XG4gICAgLy8gfVxuXG4gICAgaWYgKGlkID09IFwiYmRhLWdzLTJcIikge1xuICAgICAgaWYgKGVuYWJsZWQpICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtbWluaW1hbFwiKTtlbHNlICQoXCJib2R5XCIpLnJlbW92ZUNsYXNzKFwiYmQtbWluaW1hbFwiKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtM1wiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsLWNoYW5cIik7ZWxzZSAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtMVwiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgcHVibGljU2VydmVyc01vZHVsZS5hZGRCdXR0b24oKTtlbHNlIHB1YmxpY1NlcnZlcnNNb2R1bGUucmVtb3ZlQnV0dG9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiYmRhLWdzLTRcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIHZvaWNlTW9kZS5lbmFibGUoKTtlbHNlIHZvaWNlTW9kZS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiYmRhLWdzLTVcIikge1xuICAgICAgaWYgKGVuYWJsZWQpICQoXCIjYXBwLW1vdW50XCIpLmFkZENsYXNzKFwiYmRhLWRhcmtcIik7ZWxzZSAkKFwiI2FwcC1tb3VudFwiKS5yZW1vdmVDbGFzcyhcImJkYS1kYXJrXCIpO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVkICYmIGlkID09IFwiYmRhLWdzLTZcIikgdGZIb3VyLmluamVjdDI0SG91cigpO1xuXG4gICAgaWYgKGlkID09IFwiYmRhLWdzLTdcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIGNvbG9yZWRUZXh0LmluamVjdENvbG9yZWRUZXh0KCk7ZWxzZSBjb2xvcmVkVGV4dC5yZW1vdmVDb2xvcmVkVGV4dCgpO1xuICAgIH1cblxuICAgIGlmIChpZCA9PSBcImJkYS1lcy00XCIpIHtcbiAgICAgIGlmIChlbmFibGVkKSBlbW90ZU1vZHVsZS5hdXRvQ2FwaXRhbGl6ZSgpO2Vsc2UgZW1vdGVNb2R1bGUuZGlzYWJsZUF1dG9DYXBpdGFsaXplKCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiZm9yay1wcy00XCIpIHtcbiAgICAgIGlmIChlbmFibGVkKSBDbGFzc05vcm1hbGl6ZXIuc3RhcnQoKTtlbHNlIENsYXNzTm9ybWFsaXplci5zdG9wKCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiZm9yay1wcy01XCIpIHtcbiAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgIENvbnRlbnRNYW5hZ2VyLndhdGNoQ29udGVudChcInBsdWdpblwiKTtcbiAgICAgICAgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwidGhlbWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBDb250ZW50TWFuYWdlci51bndhdGNoQ29udGVudChcInBsdWdpblwiKTtcbiAgICAgICAgQ29udGVudE1hbmFnZXIudW53YXRjaENvbnRlbnQoXCJ0aGVtZVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJmb3JrLXdwLTFcIikge30gLy8gQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZShcInRyYW5zcGFyZW50XCIsIGVuYWJsZWQpO1xuICAgIC8vIGlmIChlbmFibGVkKSBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIG51bGwpO1xuICAgIC8vIGVsc2UgQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZShcImJhY2tncm91bmRDb2xvclwiLCBcIiMyZjMxMzZcIik7XG5cbiAgICAvKmlmIChfY1tcImZvcmstd3AtMlwiXSkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBCZEFwaS5nZXRXaW5kb3dQcmVmZXJlbmNlKFwiZnJhbWVcIik7XHJcbiAgICAgICAgaWYgKGN1cnJlbnQgIT0gX2NbXCJmb3JrLXdwLTJcIl0pIEJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJmcmFtZVwiLCBfY1tcImZvcmstd3AtMlwiXSk7XHJcbiAgICB9Ki9cblxuXG4gICAgaWYgKGlkID09IFwiYmRhLWdzLThcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIGRNb2RlLmVuYWJsZShzZXR0aW5nc0Nvb2tpZVtcImZvcmstZG0tMVwiXSk7ZWxzZSBkTW9kZS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiZm9yay1kbS0xXCIpIHtcbiAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy04XCJdKSBkTW9kZS5lbmFibGUoZW5hYmxlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemVTZXR0aW5ncygpIHtcbiAgICAvLyBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtYlwiXSkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1ibHVlXCIpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy0yXCJdKSAkKFwiYm9keVwiKS5hZGRDbGFzcyhcImJkLW1pbmltYWxcIik7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTNcIl0pICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtbWluaW1hbC1jaGFuXCIpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy0xXCJdKSBwdWJsaWNTZXJ2ZXJzTW9kdWxlLmFkZEJ1dHRvbigpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy00XCJdKSB2b2ljZU1vZGUuZW5hYmxlKCk7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTVcIl0pICQoXCIjYXBwLW1vdW50XCIpLmFkZENsYXNzKFwiYmRhLWRhcmtcIik7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTZcIl0pIHRmSG91ci5pbmplY3QyNEhvdXIoKTtcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtN1wiXSkgY29sb3JlZFRleHQuaW5qZWN0Q29sb3JlZFRleHQoKTtcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZXMtNFwiXSkgZW1vdGVNb2R1bGUuYXV0b0NhcGl0YWxpemUoKTtcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTRcIl0pIENsYXNzTm9ybWFsaXplci5zdGFydCgpO1xuXG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy01XCJdKSB7XG4gICAgICBDb250ZW50TWFuYWdlci53YXRjaENvbnRlbnQoXCJwbHVnaW5cIik7XG4gICAgICBDb250ZW50TWFuYWdlci53YXRjaENvbnRlbnQoXCJ0aGVtZVwiKTtcbiAgICB9XG5cbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtOFwiXSkgZE1vZGUuZW5hYmxlKHNldHRpbmdzQ29va2llW1wiZm9yay1kbS0xXCJdKTtcbiAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xuICB9XG5cbiAgc2F2ZVNldHRpbmdzKCkge1xuICAgIERhdGFTdG9yZS5zZXRTZXR0aW5nR3JvdXAoXCJzZXR0aW5nc1wiLCBzZXR0aW5nc0Nvb2tpZSk7XG4gIH1cblxuICBsb2FkU2V0dGluZ3MoKSB7XG4gICAgT2JqZWN0LmFzc2lnbihzZXR0aW5nc0Nvb2tpZSwgRGF0YVN0b3JlLmdldFNldHRpbmdHcm91cChcInNldHRpbmdzXCIpKTtcbiAgfVxuXG4gIHJlbmRlclNpZGViYXIoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgJChcIltjbGFzcyo9J3NpZGUtJ10gPiBbY2xhc3MqPSdpdGVtLSddXCIpLm9mZihcImNsaWNrLnYyc2V0dGluZ3NwYW5lbFwiKS5vbihcImNsaWNrLnYyc2V0dGluZ3NwYW5lbFwiLCAoKSA9PiB7XG4gICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUoc2VsZi5yb290KTtcbiAgICAgICQoc2VsZi5yb290KS5oaWRlKCk7XG4gICAgICAkKFwiLmNvbnRlbnRSZWdpb24tM25EdVl5LCAuY29udGVudC1yZWdpb25cIikuZmlyc3QoKS5zaG93KCk7XG4gICAgfSk7XG4gICAgc2VsZi5zaWRlYmFyLnJlbmRlcigpO1xuICB9XG5cbiAgZ2V0IGNvcmVDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge1xuICAgICAgY29udGVudENvbHVtbjogdHJ1ZSxcbiAgICAgIGZhZGU6IHRydWUsXG4gICAgICBkYXJrOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IFtCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VjdGlvbmVkU2V0dGluZ3NQYW5lbCwge1xuICAgICAgICBrZXk6IFwiY3NwYW5lbFwiLFxuICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSxcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuY29yZVNldHRpbmdzXG4gICAgICB9KSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7XG4gICAgICAgIGtleTogXCJ0b29sc1wiXG4gICAgICB9KV1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBlbW90ZUNvbXBvbmVudCgpIHtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbGVyLCB7XG4gICAgICBjb250ZW50Q29sdW1uOiB0cnVlLFxuICAgICAgZmFkZTogdHJ1ZSxcbiAgICAgIGRhcms6IHRydWUsXG4gICAgICBjaGlsZHJlbjogW0JEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1BhbmVsLCB7XG4gICAgICAgIGtleTogXCJlc3BhbmVsXCIsXG4gICAgICAgIHRpdGxlOiBcIkVtb3RlIFNldHRpbmdzXCIsXG4gICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLFxuICAgICAgICBzZXR0aW5nczogdGhpcy5lbW90ZVNldHRpbmdzLFxuICAgICAgICBidXR0b246IHtcbiAgICAgICAgICB0aXRsZTogXCJDbGVhciBFbW90ZSBDYWNoZVwiLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIGVtb3RlTW9kdWxlLmNsZWFyRW1vdGVEYXRhKCk7XG4gICAgICAgICAgICBlbW90ZU1vZHVsZS5pbml0KCk7XG4gICAgICAgICAgICBxdWlja0Vtb3RlTWVudS5pbml0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7XG4gICAgICAgIGtleTogXCJ0b29sc1wiXG4gICAgICB9KV1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjdXN0b21Dc3NDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge1xuICAgICAgY29udGVudENvbHVtbjogdHJ1ZSxcbiAgICAgIGZhZGU6IHRydWUsXG4gICAgICBkYXJrOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IFtCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ3NzRWRpdG9yLCB7XG4gICAgICAgIGtleTogXCJjc3NlZGl0b3JcIlxuICAgICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge1xuICAgICAgICBrZXk6IFwidG9vbHNcIlxuICAgICAgfSldXG4gICAgfSk7XG4gIH1cblxuICBjb250ZW50Q29tcG9uZW50KHR5cGUpIHtcbiAgICBjb25zdCBjb21wb25lbnRFbGVtZW50ID0gdHlwZSA9PSBcInBsdWdpbnNcIiA/IHRoaXMucGx1Z2luc0NvbXBvbmVudCA6IHRoaXMudGhlbWVzQ29tcG9uZW50O1xuICAgIGNvbnN0IHByZWZpeCA9IHR5cGUucmVwbGFjZShcInNcIiwgXCJcIik7XG4gICAgY29uc3Qgc2V0dGluZ3NMaXN0ID0gdGhpcztcblxuICAgIGNsYXNzIENvbnRlbnRMaXN0IGV4dGVuZHMgQkRWMi5yZWFjdC5Db21wb25lbnQge1xuICAgICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgQkRFdmVudHMub24oYCR7cHJlZml4fS1yZWxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xuICAgICAgICBCREV2ZW50cy5vbihgJHtwcmVmaXh9LWxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xuICAgICAgICBCREV2ZW50cy5vbihgJHtwcmVmaXh9LXVubG9hZGVkYCwgdGhpcy5vbkNoYW5nZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBCREV2ZW50cy5vZmYoYCR7cHJlZml4fS1yZWxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xuICAgICAgICBCREV2ZW50cy5vZmYoYCR7cHJlZml4fS1sb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcbiAgICAgICAgQkRFdmVudHMub2ZmKGAke3ByZWZpeH0tdW5sb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcbiAgICAgIH1cblxuICAgICAgb25DaGFuZ2UoKSB7XG4gICAgICAgIHNldHRpbmdzTGlzdC5zaWRlQmFyT25DbGljayh0eXBlKTtcbiAgICAgIH1cblxuICAgICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gY29tcG9uZW50RWxlbWVudDtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudExpc3QpO1xuICB9XG5cbiAgZ2V0IHBsdWdpbnNDb21wb25lbnQoKSB7XG4gICAgY29uc3QgcGx1Z2lucyA9IE9iamVjdC5rZXlzKGJkcGx1Z2lucykuc29ydCgoYSwgYikgPT4gYS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi50b0xvd2VyQ2FzZSgpKSkucmVkdWNlKChhcnIsIGtleSkgPT4ge1xuICAgICAgYXJyLnB1c2goQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFBsdWdpbkNhcmQsIHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHBsdWdpbjogYmRwbHVnaW5zW2tleV0ucGx1Z2luXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBsaXN0ID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KExpc3QsIHtcbiAgICAgIGtleTogXCJwbHVnaW4tbGlzdFwiLFxuICAgICAgY2xhc3NOYW1lOiBcImJkYS1zbGlzdFwiLFxuICAgICAgY2hpbGRyZW46IHBsdWdpbnNcbiAgICB9KTtcbiAgICBjb25zdCByZWZyZXNoSWNvbiA9ICFzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHRpcFdyYXAoUmVsb2FkSWNvbiwge1xuICAgICAgY29sb3I6IFwiYmxhY2tcIixcbiAgICAgIHNpZGU6IFwidG9wXCIsXG4gICAgICB0ZXh0OiBcIlJlbG9hZCBQbHVnaW4gTGlzdFwiXG4gICAgfSksIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1yZWxvYWQtaGVhZGVyXCIsXG4gICAgICBzaXplOiBcIjE4cHhcIixcbiAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcbiAgICAgICAgcGx1Z2luTW9kdWxlLnVwZGF0ZVBsdWdpbkxpc3QoKTtcbiAgICAgICAgdGhpcy5zaWRlQmFyT25DbGljayhcInBsdWdpbnNcIik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcGZCdG4gPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAga2V5OiBcImZvbGRlci1idXR0b25cIixcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1wZmJ0blwiLFxuICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oQ29udGVudE1hbmFnZXIucGx1Z2luc0ZvbGRlcik7XG4gICAgICB9XG4gICAgfSwgXCJPcGVuIFBsdWdpbiBGb2xkZXJcIik7XG4gICAgY29uc3QgY29udGVudENvbHVtbiA9IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50Q29sdW1uLCB7XG4gICAgICBrZXk6IFwicGNvbHVtblwiLFxuICAgICAgdGl0bGU6IFwiUGx1Z2luc1wiLFxuICAgICAgY2hpbGRyZW46IFtyZWZyZXNoSWNvbiwgcGZCdG4sIGxpc3RdXG4gICAgfSk7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge1xuICAgICAgY29udGVudENvbHVtbjogdHJ1ZSxcbiAgICAgIGZhZGU6IHRydWUsXG4gICAgICBkYXJrOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IFtjb250ZW50Q29sdW1uLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHMsIHtcbiAgICAgICAga2V5OiBcInRvb2xzXCJcbiAgICAgIH0pXVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHRoZW1lc0NvbXBvbmVudCgpIHtcbiAgICBjb25zdCB0aGVtZXMgPSBPYmplY3Qua2V5cyhiZHRoZW1lcykuc29ydCgoYSwgYikgPT4gYS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi50b0xvd2VyQ2FzZSgpKSkucmVkdWNlKChhcnIsIGtleSkgPT4ge1xuICAgICAgYXJyLnB1c2goQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRoZW1lQ2FyZCwge1xuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgdGhlbWU6IGJkdGhlbWVzW2tleV1cbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGxpc3QgPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoTGlzdCwge1xuICAgICAga2V5OiBcInRoZW1lLWxpc3RcIixcbiAgICAgIGNsYXNzTmFtZTogXCJiZGEtc2xpc3RcIixcbiAgICAgIGNoaWxkcmVuOiB0aGVtZXNcbiAgICB9KTtcbiAgICBjb25zdCByZWZyZXNoSWNvbiA9ICFzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHRpcFdyYXAoUmVsb2FkSWNvbiwge1xuICAgICAgY29sb3I6IFwiYmxhY2tcIixcbiAgICAgIHNpZGU6IFwidG9wXCIsXG4gICAgICB0ZXh0OiBcIlJlbG9hZCBUaGVtZSBMaXN0XCJcbiAgICB9KSwge1xuICAgICAgY2xhc3NOYW1lOiBcImJkLXJlbG9hZC1oZWFkZXJcIixcbiAgICAgIHNpemU6IFwiMThweFwiLFxuICAgICAgb25DbGljazogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0aGVtZU1vZHVsZS51cGRhdGVUaGVtZUxpc3QoKTtcbiAgICAgICAgdGhpcy5zaWRlQmFyT25DbGljayhcInRoZW1lc1wiKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB0ZkJ0biA9IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7XG4gICAgICBrZXk6IFwiZm9sZGVyLWJ1dHRvblwiLFxuICAgICAgY2xhc3NOYW1lOiBcImJkLXBmYnRuXCIsXG4gICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgIHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShDb250ZW50TWFuYWdlci50aGVtZXNGb2xkZXIpO1xuICAgICAgfVxuICAgIH0sIFwiT3BlbiBUaGVtZSBGb2xkZXJcIik7XG4gICAgY29uc3QgY29udGVudENvbHVtbiA9IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50Q29sdW1uLCB7XG4gICAgICBrZXk6IFwidGNvbHVtblwiLFxuICAgICAgdGl0bGU6IFwiVGhlbWVzXCIsXG4gICAgICBjaGlsZHJlbjogW3JlZnJlc2hJY29uLCB0ZkJ0biwgbGlzdF1cbiAgICB9KTtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbGVyLCB7XG4gICAgICBjb250ZW50Q29sdW1uOiB0cnVlLFxuICAgICAgZmFkZTogdHJ1ZSxcbiAgICAgIGRhcms6IHRydWUsXG4gICAgICBjaGlsZHJlbjogW2NvbnRlbnRDb2x1bW4sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge1xuICAgICAgICBrZXk6IFwidG9vbHNcIlxuICAgICAgfSldXG4gICAgfSk7XG4gIH1cblxuICByZW5kZXJDb3JlU2V0dGluZ3MoKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY29yZUNvbXBvbmVudCwgcm9vdCk7XG4gIH1cblxuICByZW5kZXJFbW90ZVNldHRpbmdzKCkge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XG5cbiAgICBpZiAoIXJvb3QpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiAubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmVtb3RlQ29tcG9uZW50LCByb290KTtcbiAgfVxuXG4gIHJlbmRlckN1c3RvbUNzc0VkaXRvcigpIHtcbiAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xuXG4gICAgaWYgKCFyb290KSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyLTNRclVlRyAuc3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2lcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgQkRWMi5yZWFjdERvbS5yZW5kZXIodGhpcy5jdXN0b21Dc3NDb21wb25lbnQsIHJvb3QpO1xuICB9XG5cbiAgcmVuZGVyUGx1Z2luUGFuZSgpIHtcbiAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xuXG4gICAgaWYgKCFyb290KSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyLTNRclVlRyAuc3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2lcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgQkRWMi5yZWFjdERvbS5yZW5kZXIodGhpcy5jb250ZW50Q29tcG9uZW50KFwicGx1Z2luc1wiKSwgcm9vdCk7XG4gIH1cblxuICByZW5kZXJUaGVtZVBhbmUoKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY29udGVudENvbXBvbmVudChcInRoZW1lc1wiKSwgcm9vdCk7XG4gIH1cblxufSgpOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/settingsPanel.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsPanelSidebar */ \"./src/settingsPanelSidebar.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _coloredText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./coloredText */ \"./src/coloredText.js\");\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./24hour */ \"./src/24hour.js\");\n/* harmony import */ var _publicServers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./publicServers */ \"./src/publicServers.js\");\n/* harmony import */ var _voiceMode__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./voiceMode */ \"./src/voiceMode.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _classNormalizer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./classNormalizer */ \"./src/classNormalizer.js\");\n/* harmony import */ var _devMode__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./devMode */ \"./src/devMode.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _react_tools__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./react/tools */ \"./src/react/tools.js\");\n/* harmony import */ var _react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./react/reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./react/tooltipWrap */ \"./src/react/tooltipWrap.js\");\n/* harmony import */ var _react_scroller__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./react/scroller */ \"./src/react/scroller.js\");\n/* harmony import */ var _react_list__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./react/list */ \"./src/react/list.js\");\n/* harmony import */ var _react_pluginCard__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./react/pluginCard */ \"./src/react/pluginCard.js\");\n/* harmony import */ var _react_themeCard__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./react/themeCard */ \"./src/react/themeCard.js\");\n/* harmony import */ var _react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./react/sectionedSettingsPanel */ \"./src/react/sectionedSettingsPanel.js\");\n/* harmony import */ var _react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./react/settingsPanel */ \"./src/react/settingsPanel.js\");\n/* harmony import */ var _react_cssEditor__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./react/cssEditor */ \"./src/react/cssEditor.js\");\n/* harmony import */ var _react_contentColumn__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./react/contentColumn */ \"./src/react/contentColumn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2_SettingsPanel {\n constructor() {\n const self = this;\n self.sideBarOnClick = self.sideBarOnClick.bind(self);\n self.onChange = self.onChange.bind(self);\n self.updateSettings = this.updateSettings.bind(self);\n self.sidebar = new _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__[\"default\"](self.sideBarOnClick);\n }\n\n get root() {\n const _root = $(\"#bd-settingspane-container\");\n\n if (!_root.length) {\n if (!this.injectRoot()) return null;\n return this.root;\n }\n\n return _root[0];\n }\n\n injectRoot() {\n if (!$(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").length) return false;\n const root = $(\"
\", {\n \"class\": \"contentRegion-3nDuYy content-region\",\n \"id\": \"bd-settingspane-container\"\n });\n $(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").append(root);\n _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].onRemoved(root[0], () => {\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(root[0]);\n });\n return true;\n }\n\n get coreSettings() {\n const settings = this.getSettings(\"core\");\n const categories = [...new Set(settings.map(s => s.category))];\n const sections = categories.map(c => {\n return {\n title: c,\n settings: settings.filter(s => s.category == c)\n };\n });\n return sections;\n }\n\n get emoteSettings() {\n return this.getSettings(\"emote\");\n }\n\n getSettings(category) {\n return Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"]).reduce((arr, key) => {\n const setting = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][key];\n\n if (setting.cat === category && setting.implemented && !setting.hidden) {\n setting.text = key;\n arr.push(setting);\n }\n\n return arr;\n }, []);\n }\n\n sideBarOnClick(id) {\n const self = this;\n $(\".contentRegion-3nDuYy, .content-region\").first().hide();\n $(self.root).show();\n\n switch (id) {\n case \"core\":\n self.renderCoreSettings();\n break;\n\n case \"emotes\":\n self.renderEmoteSettings();\n break;\n\n case \"customcss\":\n self.renderCustomCssEditor();\n break;\n\n case \"plugins\":\n self.renderPluginPane();\n break;\n\n case \"themes\":\n self.renderThemePane();\n break;\n }\n }\n\n onClick() {}\n\n onChange(id, checked) {\n this.updateSettings(id, checked);\n }\n\n updateSettings(id, enabled) {\n _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][id] = enabled; // if (id == \"bda-gs-b\") {\n // if (enabled) $(\"body\").addClass(\"bd-blue\");\n // else $(\"body\").removeClass(\"bd-blue\");\n // }\n\n if (id == \"fork-beta\") {\n try {\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const path = __webpack_require__(/*! path */ \"path\");\n\n const configPath = path.join(DiscordNative.process.remote.resourcesPath, \"app\", \"betterdiscord\", \"config.json\");\n\n const config = require(configPath);\n\n if (enabled) config.branch = \"modularize\";else config.branch = \"master\";\n fs.writeFileSync(configPath, JSON.stringify(config, null, 4));\n } catch (err) {\n console.error(err);\n }\n }\n\n if (id == \"bda-gs-2\") {\n if (enabled) $(\"body\").addClass(\"bd-minimal\");else $(\"body\").removeClass(\"bd-minimal\");\n }\n\n if (id == \"bda-gs-3\") {\n if (enabled) $(\"body\").addClass(\"bd-minimal-chan\");else $(\"body\").removeClass(\"bd-minimal-chan\");\n }\n\n if (id == \"bda-gs-1\") {\n if (enabled) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();else _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].removeButton();\n }\n\n if (id == \"bda-gs-4\") {\n if (enabled) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();else _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].disable();\n }\n\n if (id == \"bda-gs-5\") {\n if (enabled) $(\"#app-mount\").addClass(\"bda-dark\");else $(\"#app-mount\").removeClass(\"bda-dark\");\n }\n\n if (enabled && id == \"bda-gs-6\") _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n\n if (id == \"bda-gs-7\") {\n if (enabled) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();else _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].removeColoredText();\n }\n\n if (id == \"bda-es-4\") {\n if (enabled) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();else _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].disableAutoCapitalize();\n }\n\n if (id == \"fork-ps-4\") {\n if (enabled) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();else _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].stop();\n }\n\n if (id == \"fork-ps-5\") {\n if (enabled) {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n } else {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"theme\");\n }\n }\n\n if (id == \"fork-wp-1\") {} // BdApi.setWindowPreference(\"transparent\", enabled);\n // if (enabled) BdApi.setWindowPreference(\"backgroundColor\", null);\n // else BdApi.setWindowPreference(\"backgroundColor\", \"#2f3136\");\n\n /*if (_c[\"fork-wp-2\"]) {\r\n const current = BdApi.getWindowPreference(\"frame\");\r\n if (current != _c[\"fork-wp-2\"]) BdApi.setWindowPreference(\"frame\", _c[\"fork-wp-2\"]);\r\n }*/\n\n\n if (id == \"bda-gs-8\") {\n if (enabled) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);else _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].disable();\n }\n\n if (id == \"fork-dm-1\") {\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(enabled);\n }\n\n this.saveSettings();\n }\n\n async initializeSettings() {\n const checkForBetaAccess = async () => {\n const SortedGuildStore = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].WebpackModules.findByUniqueProperties([\"getSortedGuilds\"]);\n const GuildMemberStore = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].WebpackModules.findByUniqueProperties([\"getMember\"]);\n const inServer = SortedGuildStore.getFlattenedGuildIds().includes(\"292141134614888448\");\n const userId = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].UserStore.getCurrentUser().id;\n const member = GuildMemberStore.getMember(\"292141134614888448\", userId);\n const hasRole = inServer && member ? member.roles.includes(\"452687773678436354\") : false;\n if (hasRole) _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][\"BBD Beta\"].hidden = false;\n }; // if (settingsCookie[\"bda-gs-b\"]) $(\"body\").addClass(\"bd-blue\");\n\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-2\"]) $(\"body\").addClass(\"bd-minimal\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-3\"]) $(\"body\").addClass(\"bd-minimal-chan\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-1\"]) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-4\"]) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-5\"]) $(\"#app-mount\").addClass(\"bda-dark\");\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-6\"]) _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-7\"]) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-4\"]) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-4\"]) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"]) {\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n }\n\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);\n checkForBetaAccess();\n this.saveSettings();\n }\n\n saveSettings() {\n _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setSettingGroup(\"settings\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"]);\n }\n\n loadSettings() {\n Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"], _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSettingGroup(\"settings\"));\n }\n\n renderSidebar() {\n const self = this;\n $(\"[class*='side-'] > [class*='item-']\").off(\"click.v2settingspanel\").on(\"click.v2settingspanel\", () => {\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(self.root);\n $(self.root).hide();\n $(\".contentRegion-3nDuYy, .content-region\").first().show();\n });\n self.sidebar.render();\n }\n\n get coreComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n key: \"cspanel\",\n onChange: this.onChange,\n sections: this.coreSettings\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get emoteComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n key: \"espanel\",\n title: \"Emote Settings\",\n onChange: this.onChange,\n settings: this.emoteSettings,\n button: {\n title: \"Clear Emote Cache\",\n onClick: () => {\n _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].clearEmoteData();\n _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].init();\n _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__[\"default\"].init();\n }\n }\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get customCssComponent() {\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_cssEditor__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n key: \"csseditor\"\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n contentComponent(type) {\n const componentElement = type == \"plugins\" ? this.pluginsComponent : this.themesComponent;\n const prefix = type.replace(\"s\", \"\");\n const settingsList = this;\n\n class ContentList extends _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n }\n\n componentDidMount() {\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-reloaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-loaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-unloaded`, this.onChange);\n }\n\n componentWillUnmount() {\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-reloaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-loaded`, this.onChange);\n _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-unloaded`, this.onChange);\n }\n\n onChange() {\n settingsList.sideBarOnClick(type);\n }\n\n render() {\n return componentElement;\n }\n\n }\n\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(ContentList);\n }\n\n get pluginsComponent() {\n const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_pluginCard__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n key: key,\n plugin: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][key].plugin\n }));\n return arr;\n }, []);\n const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n key: \"plugin-list\",\n className: \"bda-slist\",\n children: plugins\n });\n const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n color: \"black\",\n side: \"top\",\n text: \"Reload Plugin List\"\n }), {\n className: \"bd-reload-header\",\n size: \"18px\",\n onClick: async () => {\n _pluginModule__WEBPACK_IMPORTED_MODULE_7__[\"default\"].updatePluginList();\n this.sideBarOnClick(\"plugins\");\n }\n });\n const pfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n key: \"folder-button\",\n className: \"bd-pfbtn\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].pluginsFolder);\n }\n }, \"Open Plugin Folder\");\n const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n key: \"pcolumn\",\n title: \"Plugins\",\n children: [refreshIcon, pfBtn, list]\n });\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n get themesComponent() {\n const themes = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_themeCard__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n key: key,\n theme: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][key]\n }));\n return arr;\n }, []);\n const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n key: \"theme-list\",\n className: \"bda-slist\",\n children: themes\n });\n const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n color: \"black\",\n side: \"top\",\n text: \"Reload Theme List\"\n }), {\n className: \"bd-reload-header\",\n size: \"18px\",\n onClick: async () => {\n _themeModule__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateThemeList();\n this.sideBarOnClick(\"themes\");\n }\n });\n const tfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n key: \"folder-button\",\n className: \"bd-pfbtn\",\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].themesFolder);\n }\n }, \"Open Theme Folder\");\n const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n key: \"tcolumn\",\n title: \"Themes\",\n children: [refreshIcon, tfBtn, list]\n });\n return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n contentColumn: true,\n fade: true,\n dark: true,\n children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n key: \"tools\"\n })]\n });\n }\n\n renderCoreSettings() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.coreComponent, root);\n }\n\n renderEmoteSettings() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.emoteComponent, root);\n }\n\n renderCustomCssEditor() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.customCssComponent, root);\n }\n\n renderPluginPane() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"plugins\"), root);\n }\n\n renderThemePane() {\n const root = this.root;\n\n if (!root) {\n console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n return;\n }\n\n _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"themes\"), root);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2V0dGluZ3NQYW5lbC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvc2V0dGluZ3NQYW5lbC5qcz8wOWIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldHRpbmdzLCBzZXR0aW5nc0Nvb2tpZSwgYmRwbHVnaW5zLCBiZHRoZW1lcyB9IGZyb20gXCIuLzBnbG9iYWxzXCI7XG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFTdG9yZVwiO1xuaW1wb3J0IFYyX1NldHRpbmdzUGFuZWxfU2lkZWJhciBmcm9tIFwiLi9zZXR0aW5nc1BhbmVsU2lkZWJhclwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xuaW1wb3J0IENvbnRlbnRNYW5hZ2VyIGZyb20gXCIuL2NvbnRlbnRNYW5hZ2VyXCI7XG5pbXBvcnQgQkRFdmVudHMgZnJvbSBcIi4vYmRFdmVudHNcIjtcbmltcG9ydCBwbHVnaW5Nb2R1bGUgZnJvbSBcIi4vcGx1Z2luTW9kdWxlXCI7XG5pbXBvcnQgdGhlbWVNb2R1bGUgZnJvbSBcIi4vdGhlbWVNb2R1bGVcIjtcbmltcG9ydCBjb2xvcmVkVGV4dCBmcm9tIFwiLi9jb2xvcmVkVGV4dFwiO1xuaW1wb3J0IHRmSG91ciBmcm9tIFwiLi8yNGhvdXJcIjtcbmltcG9ydCBwdWJsaWNTZXJ2ZXJzTW9kdWxlIGZyb20gXCIuL3B1YmxpY1NlcnZlcnNcIjtcbmltcG9ydCB2b2ljZU1vZGUgZnJvbSBcIi4vdm9pY2VNb2RlXCI7XG5pbXBvcnQgZW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVNb2R1bGVcIjtcbmltcG9ydCBDbGFzc05vcm1hbGl6ZXIgZnJvbSBcIi4vY2xhc3NOb3JtYWxpemVyXCI7XG5pbXBvcnQgZE1vZGUgZnJvbSBcIi4vZGV2TW9kZVwiO1xuaW1wb3J0IHF1aWNrRW1vdGVNZW51IGZyb20gXCIuL3F1aWNrRW1vdGVNZW51XCI7XG5pbXBvcnQgVG9vbHMgZnJvbSBcIi4vcmVhY3QvdG9vbHNcIjtcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuL3JlYWN0L3JlbG9hZEljb25cIjtcbmltcG9ydCBUb29sdGlwV3JhcCBmcm9tIFwiLi9yZWFjdC90b29sdGlwV3JhcFwiO1xuaW1wb3J0IFNjcm9sbGVyIGZyb20gXCIuL3JlYWN0L3Njcm9sbGVyXCI7XG5pbXBvcnQgTGlzdCBmcm9tIFwiLi9yZWFjdC9saXN0XCI7XG5pbXBvcnQgUGx1Z2luQ2FyZCBmcm9tIFwiLi9yZWFjdC9wbHVnaW5DYXJkXCI7XG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3JlYWN0L3RoZW1lQ2FyZFwiO1xuaW1wb3J0IFNlY3Rpb25lZFNldHRpbmdzUGFuZWwgZnJvbSBcIi4vcmVhY3Qvc2VjdGlvbmVkU2V0dGluZ3NQYW5lbFwiO1xuaW1wb3J0IFNldHRpbmdzUGFuZWwgZnJvbSBcIi4vcmVhY3Qvc2V0dGluZ3NQYW5lbFwiO1xuaW1wb3J0IENzc0VkaXRvciBmcm9tIFwiLi9yZWFjdC9jc3NFZGl0b3JcIjtcbmltcG9ydCBDb250ZW50Q29sdW1uIGZyb20gXCIuL3JlYWN0L2NvbnRlbnRDb2x1bW5cIjtcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBWMl9TZXR0aW5nc1BhbmVsIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5zaWRlQmFyT25DbGljayA9IHNlbGYuc2lkZUJhck9uQ2xpY2suYmluZChzZWxmKTtcbiAgICBzZWxmLm9uQ2hhbmdlID0gc2VsZi5vbkNoYW5nZS5iaW5kKHNlbGYpO1xuICAgIHNlbGYudXBkYXRlU2V0dGluZ3MgPSB0aGlzLnVwZGF0ZVNldHRpbmdzLmJpbmQoc2VsZik7XG4gICAgc2VsZi5zaWRlYmFyID0gbmV3IFYyX1NldHRpbmdzUGFuZWxfU2lkZWJhcihzZWxmLnNpZGVCYXJPbkNsaWNrKTtcbiAgfVxuXG4gIGdldCByb290KCkge1xuICAgIGNvbnN0IF9yb290ID0gJChcIiNiZC1zZXR0aW5nc3BhbmUtY29udGFpbmVyXCIpO1xuXG4gICAgaWYgKCFfcm9vdC5sZW5ndGgpIHtcbiAgICAgIGlmICghdGhpcy5pbmplY3RSb290KCkpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMucm9vdDtcbiAgICB9XG5cbiAgICByZXR1cm4gX3Jvb3RbMF07XG4gIH1cblxuICBpbmplY3RSb290KCkge1xuICAgIGlmICghJChcIi5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpLCAubGF5ZXItM1FyVWVHIC51aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3Qgcm9vdCA9ICQoXCI8ZGl2Lz5cIiwge1xuICAgICAgXCJjbGFzc1wiOiBcImNvbnRlbnRSZWdpb24tM25EdVl5IGNvbnRlbnQtcmVnaW9uXCIsXG4gICAgICBcImlkXCI6IFwiYmQtc2V0dGluZ3NwYW5lLWNvbnRhaW5lclwiXG4gICAgfSk7XG4gICAgJChcIi5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpLCAubGF5ZXItM1FyVWVHIC51aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIikuYXBwZW5kKHJvb3QpO1xuICAgIFV0aWxzLm9uUmVtb3ZlZChyb290WzBdLCAoKSA9PiB7XG4gICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUocm9vdFswXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgY29yZVNldHRpbmdzKCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5nZXRTZXR0aW5ncyhcImNvcmVcIik7XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IFsuLi5uZXcgU2V0KHNldHRpbmdzLm1hcChzID0+IHMuY2F0ZWdvcnkpKV07XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBjYXRlZ29yaWVzLm1hcChjID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBjLFxuICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MuZmlsdGVyKHMgPT4gcy5jYXRlZ29yeSA9PSBjKVxuICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2VjdGlvbnM7XG4gIH1cblxuICBnZXQgZW1vdGVTZXR0aW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTZXR0aW5ncyhcImVtb3RlXCIpO1xuICB9XG5cbiAgZ2V0U2V0dGluZ3MoY2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2V0dGluZ3MpLnJlZHVjZSgoYXJyLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1trZXldO1xuXG4gICAgICBpZiAoc2V0dGluZy5jYXQgPT09IGNhdGVnb3J5ICYmIHNldHRpbmcuaW1wbGVtZW50ZWQgJiYgIXNldHRpbmcuaGlkZGVuKSB7XG4gICAgICAgIHNldHRpbmcudGV4dCA9IGtleTtcbiAgICAgICAgYXJyLnB1c2goc2V0dGluZyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgc2lkZUJhck9uQ2xpY2soaWQpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAkKFwiLmNvbnRlbnRSZWdpb24tM25EdVl5LCAuY29udGVudC1yZWdpb25cIikuZmlyc3QoKS5oaWRlKCk7XG4gICAgJChzZWxmLnJvb3QpLnNob3coKTtcblxuICAgIHN3aXRjaCAoaWQpIHtcbiAgICAgIGNhc2UgXCJjb3JlXCI6XG4gICAgICAgIHNlbGYucmVuZGVyQ29yZVNldHRpbmdzKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwiZW1vdGVzXCI6XG4gICAgICAgIHNlbGYucmVuZGVyRW1vdGVTZXR0aW5ncygpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcImN1c3RvbWNzc1wiOlxuICAgICAgICBzZWxmLnJlbmRlckN1c3RvbUNzc0VkaXRvcigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInBsdWdpbnNcIjpcbiAgICAgICAgc2VsZi5yZW5kZXJQbHVnaW5QYW5lKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwidGhlbWVzXCI6XG4gICAgICAgIHNlbGYucmVuZGVyVGhlbWVQYW5lKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soKSB7fVxuXG4gIG9uQ2hhbmdlKGlkLCBjaGVja2VkKSB7XG4gICAgdGhpcy51cGRhdGVTZXR0aW5ncyhpZCwgY2hlY2tlZCk7XG4gIH1cblxuICB1cGRhdGVTZXR0aW5ncyhpZCwgZW5hYmxlZCkge1xuICAgIHNldHRpbmdzQ29va2llW2lkXSA9IGVuYWJsZWQ7IC8vIGlmIChpZCA9PSBcImJkYS1ncy1iXCIpIHtcbiAgICAvLyAgICAgaWYgKGVuYWJsZWQpICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtYmx1ZVwiKTtcbiAgICAvLyAgICAgZWxzZSAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLWJsdWVcIik7XG4gICAgLy8gfVxuXG4gICAgaWYgKGlkID09IFwiZm9yay1iZXRhXCIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xuXG4gICAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcblxuICAgICAgICBjb25zdCBjb25maWdQYXRoID0gcGF0aC5qb2luKERpc2NvcmROYXRpdmUucHJvY2Vzcy5yZW1vdGUucmVzb3VyY2VzUGF0aCwgXCJhcHBcIiwgXCJiZXR0ZXJkaXNjb3JkXCIsIFwiY29uZmlnLmpzb25cIik7XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gX19ub25fd2VicGFja19yZXF1aXJlX18oY29uZmlnUGF0aCk7XG5cbiAgICAgICAgaWYgKGVuYWJsZWQpIGNvbmZpZy5icmFuY2ggPSBcIm1vZHVsYXJpemVcIjtlbHNlIGNvbmZpZy5icmFuY2ggPSBcIm1hc3RlclwiO1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGNvbmZpZ1BhdGgsIEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgNCkpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtMlwiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsXCIpO2Vsc2UgJChcImJvZHlcIikucmVtb3ZlQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xuICAgIH1cblxuICAgIGlmIChpZCA9PSBcImJkYS1ncy0zXCIpIHtcbiAgICAgIGlmIChlbmFibGVkKSAkKFwiYm9keVwiKS5hZGRDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtlbHNlICQoXCJib2R5XCIpLnJlbW92ZUNsYXNzKFwiYmQtbWluaW1hbC1jaGFuXCIpO1xuICAgIH1cblxuICAgIGlmIChpZCA9PSBcImJkYS1ncy0xXCIpIHtcbiAgICAgIGlmIChlbmFibGVkKSBwdWJsaWNTZXJ2ZXJzTW9kdWxlLmFkZEJ1dHRvbigpO2Vsc2UgcHVibGljU2VydmVyc01vZHVsZS5yZW1vdmVCdXR0b24oKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtNFwiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgdm9pY2VNb2RlLmVuYWJsZSgpO2Vsc2Ugdm9pY2VNb2RlLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtNVwiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgJChcIiNhcHAtbW91bnRcIikuYWRkQ2xhc3MoXCJiZGEtZGFya1wiKTtlbHNlICQoXCIjYXBwLW1vdW50XCIpLnJlbW92ZUNsYXNzKFwiYmRhLWRhcmtcIik7XG4gICAgfVxuXG4gICAgaWYgKGVuYWJsZWQgJiYgaWQgPT0gXCJiZGEtZ3MtNlwiKSB0ZkhvdXIuaW5qZWN0MjRIb3VyKCk7XG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtN1wiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgY29sb3JlZFRleHQuaW5qZWN0Q29sb3JlZFRleHQoKTtlbHNlIGNvbG9yZWRUZXh0LnJlbW92ZUNvbG9yZWRUZXh0KCk7XG4gICAgfVxuXG4gICAgaWYgKGlkID09IFwiYmRhLWVzLTRcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIGVtb3RlTW9kdWxlLmF1dG9DYXBpdGFsaXplKCk7ZWxzZSBlbW90ZU1vZHVsZS5kaXNhYmxlQXV0b0NhcGl0YWxpemUoKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJmb3JrLXBzLTRcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIENsYXNzTm9ybWFsaXplci5zdGFydCgpO2Vsc2UgQ2xhc3NOb3JtYWxpemVyLnN0b3AoKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJmb3JrLXBzLTVcIikge1xuICAgICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgICAgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwicGx1Z2luXCIpO1xuICAgICAgICBDb250ZW50TWFuYWdlci53YXRjaENvbnRlbnQoXCJ0aGVtZVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIENvbnRlbnRNYW5hZ2VyLnVud2F0Y2hDb250ZW50KFwicGx1Z2luXCIpO1xuICAgICAgICBDb250ZW50TWFuYWdlci51bndhdGNoQ29udGVudChcInRoZW1lXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpZCA9PSBcImZvcmstd3AtMVwiKSB7fSAvLyBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwidHJhbnNwYXJlbnRcIiwgZW5hYmxlZCk7XG4gICAgLy8gaWYgKGVuYWJsZWQpIEJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJiYWNrZ3JvdW5kQ29sb3JcIiwgbnVsbCk7XG4gICAgLy8gZWxzZSBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIFwiIzJmMzEzNlwiKTtcblxuICAgIC8qaWYgKF9jW1wiZm9yay13cC0yXCJdKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudCA9IEJkQXBpLmdldFdpbmRvd1ByZWZlcmVuY2UoXCJmcmFtZVwiKTtcclxuICAgICAgICBpZiAoY3VycmVudCAhPSBfY1tcImZvcmstd3AtMlwiXSkgQmRBcGkuc2V0V2luZG93UHJlZmVyZW5jZShcImZyYW1lXCIsIF9jW1wiZm9yay13cC0yXCJdKTtcclxuICAgIH0qL1xuXG5cbiAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtOFwiKSB7XG4gICAgICBpZiAoZW5hYmxlZCkgZE1vZGUuZW5hYmxlKHNldHRpbmdzQ29va2llW1wiZm9yay1kbS0xXCJdKTtlbHNlIGRNb2RlLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBpZiAoaWQgPT0gXCJmb3JrLWRtLTFcIikge1xuICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLThcIl0pIGRNb2RlLmVuYWJsZShlbmFibGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZVNldHRpbmdzKCkge1xuICAgIGNvbnN0IGNoZWNrRm9yQmV0YUFjY2VzcyA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IFNvcnRlZEd1aWxkU3RvcmUgPSBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wiZ2V0U29ydGVkR3VpbGRzXCJdKTtcbiAgICAgIGNvbnN0IEd1aWxkTWVtYmVyU3RvcmUgPSBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wiZ2V0TWVtYmVyXCJdKTtcbiAgICAgIGNvbnN0IGluU2VydmVyID0gU29ydGVkR3VpbGRTdG9yZS5nZXRGbGF0dGVuZWRHdWlsZElkcygpLmluY2x1ZGVzKFwiMjkyMTQxMTM0NjE0ODg4NDQ4XCIpO1xuICAgICAgY29uc3QgdXNlcklkID0gQkRWMi5Vc2VyU3RvcmUuZ2V0Q3VycmVudFVzZXIoKS5pZDtcbiAgICAgIGNvbnN0IG1lbWJlciA9IEd1aWxkTWVtYmVyU3RvcmUuZ2V0TWVtYmVyKFwiMjkyMTQxMTM0NjE0ODg4NDQ4XCIsIHVzZXJJZCk7XG4gICAgICBjb25zdCBoYXNSb2xlID0gaW5TZXJ2ZXIgJiYgbWVtYmVyID8gbWVtYmVyLnJvbGVzLmluY2x1ZGVzKFwiNDUyNjg3NzczNjc4NDM2MzU0XCIpIDogZmFsc2U7XG4gICAgICBpZiAoaGFzUm9sZSkgc2V0dGluZ3NbXCJCQkQgQmV0YVwiXS5oaWRkZW4gPSBmYWxzZTtcbiAgICB9OyAvLyBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtYlwiXSkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1ibHVlXCIpO1xuXG5cbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtMlwiXSkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy0zXCJdKSAkKFwiYm9keVwiKS5hZGRDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtMVwiXSkgcHVibGljU2VydmVyc01vZHVsZS5hZGRCdXR0b24oKTtcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtNFwiXSkgdm9pY2VNb2RlLmVuYWJsZSgpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy01XCJdKSAkKFwiI2FwcC1tb3VudFwiKS5hZGRDbGFzcyhcImJkYS1kYXJrXCIpO1xuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy02XCJdKSB0ZkhvdXIuaW5qZWN0MjRIb3VyKCk7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTdcIl0pIGNvbG9yZWRUZXh0LmluamVjdENvbG9yZWRUZXh0KCk7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWVzLTRcIl0pIGVtb3RlTW9kdWxlLmF1dG9DYXBpdGFsaXplKCk7XG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy00XCJdKSBDbGFzc05vcm1hbGl6ZXIuc3RhcnQoKTtcblxuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSkge1xuICAgICAgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwicGx1Z2luXCIpO1xuICAgICAgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwidGhlbWVcIik7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLThcIl0pIGRNb2RlLmVuYWJsZShzZXR0aW5nc0Nvb2tpZVtcImZvcmstZG0tMVwiXSk7XG4gICAgY2hlY2tGb3JCZXRhQWNjZXNzKCk7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIHNhdmVTZXR0aW5ncygpIHtcbiAgICBEYXRhU3RvcmUuc2V0U2V0dGluZ0dyb3VwKFwic2V0dGluZ3NcIiwgc2V0dGluZ3NDb29raWUpO1xuICB9XG5cbiAgbG9hZFNldHRpbmdzKCkge1xuICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZ3NDb29raWUsIERhdGFTdG9yZS5nZXRTZXR0aW5nR3JvdXAoXCJzZXR0aW5nc1wiKSk7XG4gIH1cblxuICByZW5kZXJTaWRlYmFyKCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICQoXCJbY2xhc3MqPSdzaWRlLSddID4gW2NsYXNzKj0naXRlbS0nXVwiKS5vZmYoXCJjbGljay52MnNldHRpbmdzcGFuZWxcIikub24oXCJjbGljay52MnNldHRpbmdzcGFuZWxcIiwgKCkgPT4ge1xuICAgICAgQkRWMi5yZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKHNlbGYucm9vdCk7XG4gICAgICAkKHNlbGYucm9vdCkuaGlkZSgpO1xuICAgICAgJChcIi5jb250ZW50UmVnaW9uLTNuRHVZeSwgLmNvbnRlbnQtcmVnaW9uXCIpLmZpcnN0KCkuc2hvdygpO1xuICAgIH0pO1xuICAgIHNlbGYuc2lkZWJhci5yZW5kZXIoKTtcbiAgfVxuXG4gIGdldCBjb3JlQ29tcG9uZW50KCkge1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtcbiAgICAgIGNvbnRlbnRDb2x1bW46IHRydWUsXG4gICAgICBmYWRlOiB0cnVlLFxuICAgICAgZGFyazogdHJ1ZSxcbiAgICAgIGNoaWxkcmVuOiBbQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNlY3Rpb25lZFNldHRpbmdzUGFuZWwsIHtcbiAgICAgICAga2V5OiBcImNzcGFuZWxcIixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsXG4gICAgICAgIHNlY3Rpb25zOiB0aGlzLmNvcmVTZXR0aW5nc1xuICAgICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge1xuICAgICAgICBrZXk6IFwidG9vbHNcIlxuICAgICAgfSldXG4gICAgfSk7XG4gIH1cblxuICBnZXQgZW1vdGVDb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge1xuICAgICAgY29udGVudENvbHVtbjogdHJ1ZSxcbiAgICAgIGZhZGU6IHRydWUsXG4gICAgICBkYXJrOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IFtCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NQYW5lbCwge1xuICAgICAgICBrZXk6IFwiZXNwYW5lbFwiLFxuICAgICAgICB0aXRsZTogXCJFbW90ZSBTZXR0aW5nc1wiLFxuICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSxcbiAgICAgICAgc2V0dGluZ3M6IHRoaXMuZW1vdGVTZXR0aW5ncyxcbiAgICAgICAgYnV0dG9uOiB7XG4gICAgICAgICAgdGl0bGU6IFwiQ2xlYXIgRW1vdGUgQ2FjaGVcIixcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBlbW90ZU1vZHVsZS5jbGVhckVtb3RlRGF0YSgpO1xuICAgICAgICAgICAgZW1vdGVNb2R1bGUuaW5pdCgpO1xuICAgICAgICAgICAgcXVpY2tFbW90ZU1lbnUuaW5pdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge1xuICAgICAgICBrZXk6IFwidG9vbHNcIlxuICAgICAgfSldXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY3VzdG9tQ3NzQ29tcG9uZW50KCkge1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtcbiAgICAgIGNvbnRlbnRDb2x1bW46IHRydWUsXG4gICAgICBmYWRlOiB0cnVlLFxuICAgICAgZGFyazogdHJ1ZSxcbiAgICAgIGNoaWxkcmVuOiBbQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KENzc0VkaXRvciwge1xuICAgICAgICBrZXk6IFwiY3NzZWRpdG9yXCJcbiAgICAgIH0pLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHMsIHtcbiAgICAgICAga2V5OiBcInRvb2xzXCJcbiAgICAgIH0pXVxuICAgIH0pO1xuICB9XG5cbiAgY29udGVudENvbXBvbmVudCh0eXBlKSB7XG4gICAgY29uc3QgY29tcG9uZW50RWxlbWVudCA9IHR5cGUgPT0gXCJwbHVnaW5zXCIgPyB0aGlzLnBsdWdpbnNDb21wb25lbnQgOiB0aGlzLnRoZW1lc0NvbXBvbmVudDtcbiAgICBjb25zdCBwcmVmaXggPSB0eXBlLnJlcGxhY2UoXCJzXCIsIFwiXCIpO1xuICAgIGNvbnN0IHNldHRpbmdzTGlzdCA9IHRoaXM7XG5cbiAgICBjbGFzcyBDb250ZW50TGlzdCBleHRlbmRzIEJEVjIucmVhY3QuQ29tcG9uZW50IHtcbiAgICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcbiAgICAgIH1cblxuICAgICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIEJERXZlbnRzLm9uKGAke3ByZWZpeH0tcmVsb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcbiAgICAgICAgQkRFdmVudHMub24oYCR7cHJlZml4fS1sb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcbiAgICAgICAgQkRFdmVudHMub24oYCR7cHJlZml4fS11bmxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgQkRFdmVudHMub2ZmKGAke3ByZWZpeH0tcmVsb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcbiAgICAgICAgQkRFdmVudHMub2ZmKGAke3ByZWZpeH0tbG9hZGVkYCwgdGhpcy5vbkNoYW5nZSk7XG4gICAgICAgIEJERXZlbnRzLm9mZihgJHtwcmVmaXh9LXVubG9hZGVkYCwgdGhpcy5vbkNoYW5nZSk7XG4gICAgICB9XG5cbiAgICAgIG9uQ2hhbmdlKCkge1xuICAgICAgICBzZXR0aW5nc0xpc3Quc2lkZUJhck9uQ2xpY2sodHlwZSk7XG4gICAgICB9XG5cbiAgICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KENvbnRlbnRMaXN0KTtcbiAgfVxuXG4gIGdldCBwbHVnaW5zQ29tcG9uZW50KCkge1xuICAgIGNvbnN0IHBsdWdpbnMgPSBPYmplY3Qua2V5cyhiZHBsdWdpbnMpLnNvcnQoKGEsIGIpID0+IGEudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIudG9Mb3dlckNhc2UoKSkpLnJlZHVjZSgoYXJyLCBrZXkpID0+IHtcbiAgICAgIGFyci5wdXNoKEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChQbHVnaW5DYXJkLCB7XG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBwbHVnaW46IGJkcGx1Z2luc1trZXldLnBsdWdpblxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgbGlzdCA9IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChMaXN0LCB7XG4gICAgICBrZXk6IFwicGx1Z2luLWxpc3RcIixcbiAgICAgIGNsYXNzTmFtZTogXCJiZGEtc2xpc3RcIixcbiAgICAgIGNoaWxkcmVuOiBwbHVnaW5zXG4gICAgfSk7XG4gICAgY29uc3QgcmVmcmVzaEljb24gPSAhc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTVcIl0gJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2x0aXBXcmFwKFJlbG9hZEljb24sIHtcbiAgICAgIGNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBzaWRlOiBcInRvcFwiLFxuICAgICAgdGV4dDogXCJSZWxvYWQgUGx1Z2luIExpc3RcIlxuICAgIH0pLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtcmVsb2FkLWhlYWRlclwiLFxuICAgICAgc2l6ZTogXCIxOHB4XCIsXG4gICAgICBvbkNsaWNrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIHBsdWdpbk1vZHVsZS51cGRhdGVQbHVnaW5MaXN0KCk7XG4gICAgICAgIHRoaXMuc2lkZUJhck9uQ2xpY2soXCJwbHVnaW5zXCIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHBmQnRuID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgIGtleTogXCJmb2xkZXItYnV0dG9uXCIsXG4gICAgICBjbGFzc05hbWU6IFwiYmQtcGZidG5cIixcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgcmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKENvbnRlbnRNYW5hZ2VyLnBsdWdpbnNGb2xkZXIpO1xuICAgICAgfVxuICAgIH0sIFwiT3BlbiBQbHVnaW4gRm9sZGVyXCIpO1xuICAgIGNvbnN0IGNvbnRlbnRDb2x1bW4gPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudENvbHVtbiwge1xuICAgICAga2V5OiBcInBjb2x1bW5cIixcbiAgICAgIHRpdGxlOiBcIlBsdWdpbnNcIixcbiAgICAgIGNoaWxkcmVuOiBbcmVmcmVzaEljb24sIHBmQnRuLCBsaXN0XVxuICAgIH0pO1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtcbiAgICAgIGNvbnRlbnRDb2x1bW46IHRydWUsXG4gICAgICBmYWRlOiB0cnVlLFxuICAgICAgZGFyazogdHJ1ZSxcbiAgICAgIGNoaWxkcmVuOiBbY29udGVudENvbHVtbiwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7XG4gICAgICAgIGtleTogXCJ0b29sc1wiXG4gICAgICB9KV1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCB0aGVtZXNDb21wb25lbnQoKSB7XG4gICAgY29uc3QgdGhlbWVzID0gT2JqZWN0LmtleXMoYmR0aGVtZXMpLnNvcnQoKGEsIGIpID0+IGEudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIudG9Mb3dlckNhc2UoKSkpLnJlZHVjZSgoYXJyLCBrZXkpID0+IHtcbiAgICAgIGFyci5wdXNoKEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUaGVtZUNhcmQsIHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHRoZW1lOiBiZHRoZW1lc1trZXldXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBsaXN0ID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KExpc3QsIHtcbiAgICAgIGtleTogXCJ0aGVtZS1saXN0XCIsXG4gICAgICBjbGFzc05hbWU6IFwiYmRhLXNsaXN0XCIsXG4gICAgICBjaGlsZHJlbjogdGhlbWVzXG4gICAgfSk7XG4gICAgY29uc3QgcmVmcmVzaEljb24gPSAhc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTVcIl0gJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2x0aXBXcmFwKFJlbG9hZEljb24sIHtcbiAgICAgIGNvbG9yOiBcImJsYWNrXCIsXG4gICAgICBzaWRlOiBcInRvcFwiLFxuICAgICAgdGV4dDogXCJSZWxvYWQgVGhlbWUgTGlzdFwiXG4gICAgfSksIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1yZWxvYWQtaGVhZGVyXCIsXG4gICAgICBzaXplOiBcIjE4cHhcIixcbiAgICAgIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhlbWVNb2R1bGUudXBkYXRlVGhlbWVMaXN0KCk7XG4gICAgICAgIHRoaXMuc2lkZUJhck9uQ2xpY2soXCJ0aGVtZXNcIik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdGZCdG4gPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAga2V5OiBcImZvbGRlci1idXR0b25cIixcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1wZmJ0blwiLFxuICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oQ29udGVudE1hbmFnZXIudGhlbWVzRm9sZGVyKTtcbiAgICAgIH1cbiAgICB9LCBcIk9wZW4gVGhlbWUgRm9sZGVyXCIpO1xuICAgIGNvbnN0IGNvbnRlbnRDb2x1bW4gPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudENvbHVtbiwge1xuICAgICAga2V5OiBcInRjb2x1bW5cIixcbiAgICAgIHRpdGxlOiBcIlRoZW1lc1wiLFxuICAgICAgY2hpbGRyZW46IFtyZWZyZXNoSWNvbiwgdGZCdG4sIGxpc3RdXG4gICAgfSk7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge1xuICAgICAgY29udGVudENvbHVtbjogdHJ1ZSxcbiAgICAgIGZhZGU6IHRydWUsXG4gICAgICBkYXJrOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IFtjb250ZW50Q29sdW1uLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHMsIHtcbiAgICAgICAga2V5OiBcInRvb2xzXCJcbiAgICAgIH0pXVxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyQ29yZVNldHRpbmdzKCkge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XG5cbiAgICBpZiAoIXJvb3QpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiAubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmNvcmVDb21wb25lbnQsIHJvb3QpO1xuICB9XG5cbiAgcmVuZGVyRW1vdGVTZXR0aW5ncygpIHtcbiAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xuXG4gICAgaWYgKCFyb290KSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyLTNRclVlRyAuc3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2lcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgQkRWMi5yZWFjdERvbS5yZW5kZXIodGhpcy5lbW90ZUNvbXBvbmVudCwgcm9vdCk7XG4gIH1cblxuICByZW5kZXJDdXN0b21Dc3NFZGl0b3IoKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY3VzdG9tQ3NzQ29tcG9uZW50LCByb290KTtcbiAgfVxuXG4gIHJlbmRlclBsdWdpblBhbmUoKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY29udGVudENvbXBvbmVudChcInBsdWdpbnNcIiksIHJvb3QpO1xuICB9XG5cbiAgcmVuZGVyVGhlbWVQYW5lKCkge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XG5cbiAgICBpZiAoIXJvb3QpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiAubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmNvbnRlbnRDb21wb25lbnQoXCJ0aGVtZXNcIiksIHJvb3QpO1xuICB9XG5cbn0oKTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/settingsPanel.js\n"); /***/ }), diff --git a/js/main.min.js b/js/main.min.js index 298d4f66..29f00189 100644 --- a/js/main.min.js +++ b/js/main.min.js @@ -1,55 +1 @@ -(function(){const e=window.require("fs"),t=window.require("process"),a=t.platform,n=("win32"===a?t.env.APPDATA:"darwin"===a?t.env.HOME+"/Library/Preferences":process.env.HOME+"/.config")+"/BetterDiscord/",o="localStorage.json";let s={};if(e.existsSync(`${n}${o}`))try{s=JSON.parse(e.readFileSync(`${n}${o}`))}catch(e){console.log(e)}else if(e.existsSync(o))try{s=JSON.parse(e.readFileSync(o))}catch(e){console.log(e)}const r=s;r.setItem=function(e,t){r[e]=t,this.save()},r.getItem=function(e){return r[e]||null},r.save=function(){e.writeFileSync(`${n}${o}`,JSON.stringify(this),null,4)};const i=new Proxy(r,{set:function(e,t,a){r[t]=a,r.save()},get:function(e,t){return r[t]||null}});window.localStorage=i})(),(()=>{const e=document.createElement("div");e.className="bd-loaderv2",e.title="BandagedBD is loading...",document.body.appendChild(e)})();var DataStore=(()=>{const e=require("fs"),t=require("path"),a=DiscordNative.globals.releaseChannel;return new class{constructor(){this.data={settings:{stable:{},canary:{},ptb:{}}},this.pluginData={}}initialize(){try{e.existsSync(this.BDFile)||e.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4));const t=require(this.BDFile);if(t.hasOwnProperty("settings")&&(this.data=t),!e.existsSync(this.settingsFile))return;let n=require(this.settingsFile);e.unlinkSync(this.settingsFile),n=n.hasOwnProperty("settings")?Object.assign({stable:{},canary:{},ptb:{}},{[a]:n}):Object.assign({stable:{},canary:{},ptb:{}},n),this.setBDData("settings",n)}catch(e){BdApi.alert("Corrupt Storage","The bd storage has somehow become corrupt. You may either try to salvage the file or delete it then reload.")}}get BDFile(){return this._BDFile||(this._BDFile=t.resolve(bdConfig.dataPath,"bdstorage.json"))}get settingsFile(){return this._settingsFile||(this._settingsFile=t.resolve(bdConfig.dataPath,"bdsettings.json"))}getPluginFile(e){return t.resolve(ContentManager.pluginsFolder,e+".config.json")}getSettingGroup(e){return this.data.settings[a][e]||null}setSettingGroup(t,n){this.data.settings[a][t]=n,e.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4))}getBDData(e){return this.data[e]||""}setBDData(t,a){this.data[t]=a,e.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4))}getPluginData(t,a){return void 0===this.pluginData[t]?e.existsSync(this.getPluginFile(t))?(this.pluginData[t]=JSON.parse(e.readFileSync(this.getPluginFile(t))),this.pluginData[t][a]||void 0):void 0:this.pluginData[t][a]||void 0}setPluginData(t,a,n){void 0===n||(this.pluginData[t]===void 0&&(this.pluginData[t]={}),this.pluginData[t][a]=n,e.writeFileSync(this.getPluginFile(t),JSON.stringify(this.pluginData[t],null,4)))}deletePluginData(t,a){this.pluginData[t]===void 0&&(this.pluginData[t]={}),delete this.pluginData[t][a],e.writeFileSync(this.getPluginFile(t),JSON.stringify(this.pluginData[t],null,4))}}})(),BDEvents=(()=>{const e=require("events");return new class extends e{dispatch(e,...t){this.emit(e,...t)}off(e,t){this.removeListener(e,t)}}})();window.bdStorage=class{static get(e){return Utils.warn("Deprecation Notice","Please use BdApi.getBDData(). bdStorage may be removed in future versions."),DataStore.getBDData(e)}static set(e,t){Utils.warn("Deprecation Notice","Please use BdApi.setBDData(). bdStorage may be removed in future versions."),DataStore.setBDData(e,t)}},window.bdPluginStorage=class{static get(e,t){return Utils.warn("Deprecation Notice",`${e}, please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`),DataStore.getPluginData(e,t)||null}static set(e,t,a){return Utils.warn("Deprecation Notice",`${e}, please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions.`),"undefined"==typeof a?Utils.warn("Deprecation Notice","Trying to set undefined value in plugin "+e):void DataStore.setPluginData(e,t,a)}static delete(e,t){Utils.warn("Deprecation Notice",`${e}, please use BdApi.deleteData(). bdPluginStorage may be removed in future versions.`),DataStore.deletePluginData(e,t)}};var settingsPanel,emoteModule,quickEmoteMenu,voiceMode,pluginModule,themeModule,dMode,publicServersModule,mainCore,minSupportedVersion="0.3.0",bbdVersion="0.2.24",bbdChangelog={description:"Mostly behind the scenes changes here.",changes:[{title:"What's New?",items:["**Dark Mode is back!** Or rather... it's toggleable again and no longer forced on.","**Changes for developers!** Plugin and theme developers will now have more options to customize their plugin cards in their METAs and also a new META structure."]},{title:"Fixes",type:"fixed",items:["**Emote Menu** should now show both Twich Global emotes and your favorites, you should even be able to click on them again!"]},{title:"Minor Stuff",type:"improved",items:["**Clean Code.** Well not really. But BD's code is starting to be cleaned up to make it easier to maintain and better performing."]}]},settings={"Custom css live update":{id:"bda-css-0",info:"",implemented:!0,hidden:!0,cat:"core"},"Custom css auto udpate":{id:"bda-css-1",info:"",implemented:!0,hidden:!0,cat:"core"},"BetterDiscord Blue":{id:"bda-gs-b",info:"Replace Discord blue with BD Blue",implemented:!1,hidden:!1,cat:"core"},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Dark Mode":{id:"bda-gs-5",info:"Make certain elements dark by default(wip)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Voice Disconnect":{id:"bda-dc-0",info:"Disconnect from voice server when closing Discord",implemented:!0,hidden:!1,cat:"core",category:"modules"},"24 Hour Timestamps":{id:"bda-gs-6",info:"Replace 12hr timestamps with proper ones",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Colored Text":{id:"bda-gs-7",info:"Make text color the same as role color",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Normalize Classes":{id:"fork-ps-4",info:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",implemented:!0,hidden:!1,cat:"core",category:"modules"},"Content Error Modal":{id:"fork-ps-1",info:"Shows a modal with plugin/theme errors",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Show Toasts":{id:"fork-ps-2",info:"Shows a small notification for important information",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Scroll To Settings":{id:"fork-ps-3",info:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Automatic Loading":{id:"fork-ps-5",info:"Automatically loads, reloads, and unloads plugins and themes",implemented:!0,hidden:!1,cat:"core",category:"content manager"},"Developer Mode":{id:"bda-gs-8",info:"Developer Mode",implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"Copy Selector":{id:"fork-dm-1",info:"Adds a \"Copy Selector\" option to context menus when developer mode is active",implemented:!0,hidden:!1,cat:"core",category:"developer settings"},"Enable Transparency":{id:"fork-wp-1",info:"Enables the main window to be see-through (requires restart)",implemented:!0,hidden:!1,cat:"core",category:"window preferences"},"Window Frame":{id:"fork-wp-2",info:"Adds the native os window frame to the main window",implemented:!1,hidden:!0,cat:"core",category:"window preferences"},"Download Emotes":{id:"fork-es-3",info:"Download emotes when the cache is expired",implemented:!0,hidden:!1,cat:"emote"},"Twitch Emotes":{id:"bda-es-7",info:"Show Twitch emotes",implemented:!0,hidden:!1,cat:"emote"},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0,hidden:!1,cat:"emote"},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0,hidden:!1,cat:"emote"},"Emote Menu":{id:"bda-es-0",info:"Show Twitch/Favourite emotes in emote menu",implemented:!0,hidden:!1,cat:"emote"},"Emoji Menu":{id:"bda-es-9",info:"Show Discord emoji menu",implemented:!0,hidden:!1,cat:"emote"},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0,hidden:!1,cat:"emote"},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0,hidden:!1,cat:"emote"},"Show emote modifiers":{id:"bda-es-8",info:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)",implemented:!0,hidden:!1,cat:"emote"},"Animate On Hover":{id:"fork-es-2",info:"Only animate the emote modifiers on hover",implemented:!0,hidden:!1,cat:"emote"}},defaultCookie={"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-gs-5":!0,"bda-gs-6":!1,"bda-gs-7":!1,"bda-gs-8":!1,"bda-es-0":!0,"bda-es-1":!0,"bda-es-2":!0,"bda-es-4":!1,"bda-es-6":!0,"bda-es-7":!0,"bda-gs-b":!1,"bda-es-8":!0,"bda-dc-0":!1,"bda-css-0":!1,"bda-css-1":!1,"bda-es-9":!0,"fork-dm-1":!1,"fork-ps-1":!0,"fork-ps-2":!0,"fork-ps-3":!0,"fork-ps-4":!0,"fork-ps-5":!0,"fork-es-2":!1,"fork-es-3":!0,"fork-wp-1":!1,"fork-wp-2":!1},settingsCookie={},bdpluginErrors=[],bdthemeErrors=[],bdConfig=null;function Core(e){window.bdConfig=e}Core.prototype.init=async function(){if(bdConfig.version
Please download the latest version from GitHub");if(window.ED)return void this.alert("Not Supported","BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.");if(window.WebSocket&&window.WebSocket.name&&window.WebSocket.name.includes("Patched"))return void this.alert("Not Supported","BandagedBD does not work with Powercord. Please uninstall one of them.");const e=bdConfig.updater?bdConfig.updater.LatestVersion:bdConfig.latestVersion;e>bdConfig.version&&this.alert("Update Available",` - An update for BandagedBD is available (${e})! Please Reinstall!

- Download Installer - `),Utils.log("Startup","Initializing Settings"),this.initSettings(),emoteModule=new EmoteModule,quickEmoteMenu=new QuickEmoteMenu,Utils.log("Startup","Initializing EmoteModule"),window.emotePromise=emoteModule.init().then(()=>{emoteModule.initialized=!0,Utils.log("Startup","Initializing QuickEmoteMenu"),quickEmoteMenu.init()}),publicServersModule=new V2_PublicServers,voiceMode=new VoiceMode,dMode=new devMode,this.injectExternals(),await this.checkForGuilds(),BDV2.initialize(),Utils.log("Startup","Updating Settings"),settingsPanel=new V2_SettingsPanel,settingsPanel.initializeSettings(),Utils.log("Startup","Loading Plugins"),pluginModule=new PluginModule,pluginModule.loadPlugins(),Utils.log("Startup","Loading Themes"),themeModule=new ThemeModule,themeModule.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",function(){settingsCookie["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()}),emoteModule.autoCapitalize(),Utils.log("Startup","Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2")[0].remove(),Utils.log("Startup","Initializing Main Observer"),this.initObserver(),settingsCookie["fork-ps-1"]&&(Utils.log("Startup","Collecting Startup Errors"),this.showContentErrors({plugins:bdpluginErrors,themes:bdthemeErrors}));const t=DataStore.getBDData("version");bbdVersion>t&&(bbdChangelog&&this.showChangelogModal(bbdChangelog),DataStore.setBDData("version",bbdVersion))},Core.prototype.checkForGuilds=function(){let e=0;return new Promise(t=>{const a=function(){const n=BDV2.guildClasses.wrapper.split(" ")[0];0").text(atob(DataStore.getBDData("bdcustomcss"))).appendTo(document.head),defaultCookie)null==settingsCookie[e]&&(settingsCookie[e]=defaultCookie[e],this.saveSettings())},Core.prototype.saveSettings=function(){DataStore.setSettingGroup("settings",settingsCookie)},Core.prototype.loadSettings=function(){settingsCookie=DataStore.getSettingGroup("settings")},Core.prototype.initObserver=function(){const e=new MutationObserver(e=>{for(let t,a=0,n=e.length;a{if(settingsCookie["bda-gs-6"]){const a=t.returnValue.match(e);return a&&4===a.length?"AM"===a[3]?t.returnValue=t.returnValue.replace(a[0],`${"12"===a[1]?"00":a[1].padStart(2,"0")}:${a[2]}`):t.returnValue=t.returnValue.replace(a[0],`${"12"===a[1]?"12":parseInt(a[1])+12}:${a[2]}`):void 0}},a=Utils.monkeyPatch(BDV2.TimeFormatter,"calendarFormat",{after:t}),n=Utils.monkeyPatch(BDV2.TimeFormatter,"dateFormat",{after:t});this.cancel24Hour=()=>{a(),n()}},Core.prototype.injectColoredText=function(){this.cancelColoredText||!BDV2.MessageComponent||(this.cancelColoredText=Utils.monkeyPatch(BDV2.MessageComponent,"default",{before:e=>{const t=e.methodArguments[0];if(!t||!t.childrenMessageContent)return;const a=t.childrenMessageContent;if(!a.type||!a.type.type||"MessageContent"!=a.type.type.displayName)return;const n=a.type.type;n.__originalMethod||(a.type.type=function(e){const t=n(e),a=settingsCookie["bda-gs-7"]?e.message.colorString||"":"";return t.props.style={color:a},t},a.type.type.__originalMethod=n,Object.assign(a.type.type,n))}}))},Core.prototype.removeColoredText=function(){document.querySelectorAll(".markup-2BOw-j").forEach(e=>{e.style.setProperty("color","")})},Core.prototype.alert=function(e,t){let a=$(`
-
- -
`);a.find(".footer button").on("click",()=>{a.addClass("closing"),setTimeout(()=>{a.remove()},300)}),a.find(".bd-backdrop").on("click",()=>{a.addClass("closing"),setTimeout(()=>{a.remove()},300)}),a.appendTo("#app-mount")},Core.prototype.showContentErrors=function({plugins:e=[],themes:t=[]}){function a(e){let t=$(`
`);for(let a of e){let e=$(`
-
${a.name?a.name:a.file}
-
${a.message}
- -
`);t.append(e),a.error&&e.find("a").on("click",t=>{t.preventDefault(),Utils.err("ContentManager",`Error details for ${a.name?a.name:a.file}.`,a.error)})}return t}if(!e||!t)return;if(!e.length&&!t.length)return;let n=$(`
-
- -
`),o=[a(e),a(t)];n.find(".tab-bar-item").on("click",t=>{t.preventDefault(),n.find(".tab-bar-item").removeClass("selected"),$(t.target).addClass("selected"),n.find(".scroller").empty().append(o[$(t.target).index()])}),n.find(".footer button").on("click",()=>{n.addClass("closing"),setTimeout(()=>{n.remove()},300)}),n.find(".bd-backdrop").on("click",()=>{n.addClass("closing"),setTimeout(()=>{n.remove()},300)}),n.appendTo("#app-mount"),e.length?n.find(".tab-bar-item")[0].click():n.find(".tab-bar-item")[1].click()},Core.prototype.showToast=function(e,t={}){if(!bdConfig.deferLoaded)return;if(!document.querySelector(".bd-toasts")){let e=document.createElement("div");e.classList.add("bd-toasts");let t=document.querySelector(".chat-3bRxxu form, #friends, .noChannel-Z1DQK7, .activityFeed-28jde9");e.style.setProperty("left",t?t.getBoundingClientRect().left+"px":"0px"),e.style.setProperty("width",t?t.offsetWidth+"px":"100%"),e.style.setProperty("bottom",(document.querySelector(".chat-3bRxxu form")?document.querySelector(".chat-3bRxxu form").offsetHeight:80)+"px"),document.querySelector(".app, .app-2rEoOp").appendChild(e)}const{type:a="",icon:n=!0,timeout:o=3e3}=t;let s=document.createElement("div");s.classList.add("bd-toast"),a&&s.classList.add("toast-"+a),a&&n&&s.classList.add("icon"),s.innerText=e,document.querySelector(".bd-toasts").appendChild(s),setTimeout(()=>{s.classList.add("closing"),setTimeout(()=>{s.remove(),document.querySelectorAll(".bd-toasts .bd-toast").length||document.querySelector(".bd-toasts").remove()},300)},o)},Core.prototype.showChangelogModal=function(e={}){const t=BdApi.findModuleByProps("push","update","pop","popWithKey"),a=BdApi.findModuleByProps("fixed","improved"),n=BdApi.findModuleByProps("Sizes","Weights"),o=BdApi.findModuleByProps("Child"),s=BdApi.findModuleByProps("Tags","default"),r=BdApi.findModule(e=>e.defaultProps&&!1==e.defaultProps.selectable),l=BdApi.findModuleByProps("defaultRules","parse");if(!r||!t||!a||!n||!o||!s||!l)return;const{image:c="https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5",description:p="",changes:m=[],title:u="BandagedBD",subtitle:h=`v${bbdVersion}`,footer:d}=e,g=BdApi.React.createElement,i=[g("img",{src:c})];p&&i.push(g("p",null,l.parse(p)));for(let t=0;tg("li",null,l.parse(e))));i.push(s)}const f=function(){return g(o.Child,{grow:1,shrink:1},g(s.default,{tag:s.Tags.H4},u),g(n,{size:n.Sizes.SMALL,color:n.Colors.PRIMARY,className:a.date},h))},b=()=>{const e=BdApi.findModule(e=>"Anchor"==e.displayName),a=BdApi.findModuleByProps("anchorUnderlineOnHover")||{anchor:"anchor-3Z-8Bb",anchorUnderlineOnHover:"anchorUnderlineOnHover-2ESHQB"},s=e=>{e.preventDefault(),e.stopPropagation(),t.pop(),BDV2.joinBD2()},r=e?g(e,{onClick:s},"Join our Discord Server."):g("a",{className:`${a.anchor} ${a.anchorUnderlineOnHover}`,onClick:s},"Join our Discord Server."),i=g(n,{size:n.Sizes.SMALL,color:n.Colors.PRIMARY},"Need support? ",r);return g(o.Child,{grow:1,shrink:1},d?d:i)};t.push(function(e){return g(r,Object.assign({className:a.container,selectable:!0,onScroll:e=>e,onClose:e=>e,renderHeader:f,renderFooter:b,children:i},e))})},window.emotesFfz={},window.emotesBTTV={},window.emotesBTTV2={},window.emotesTwitch={},window.subEmotesTwitch={},window.bdEmotes={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{},BTTV2:{}},window.bdEmoteSettingIDs={TwitchGlobal:"bda-es-7",TwitchSubscriber:"bda-es-7",BTTV:"bda-es-2",FrankerFaceZ:"bda-es-1",BTTV2:"bda-es-2"};function EmoteModule(){Object.defineProperty(this,"categories",{get:function(){const e=[];for(const t in window.bdEmoteSettingIDs)settingsCookie[window.bdEmoteSettingIDs[t]]&&e.push(t);return e}})}EmoteModule.prototype.init=async function(){this.modifiers=["flip","spin","pulse","spin2","spin3","1spin","2spin","3spin","tr","bl","br","shake","shake2","shake3","flap"],this.overrides=["twitch","bttv","ffz"];let e={TwitchGlobal:{url:`https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_global.json`,variable:"TwitchGlobal",oldVariable:"emotesTwitch",getEmoteURL:t=>`https://static-cdn.jtvnw.net/emoticons/v1/${t}/1.0`},TwitchSubscriber:{url:`https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json`,variable:"TwitchSubscriber",oldVariable:"subEmotesTwitch",getEmoteURL:t=>`https://static-cdn.jtvnw.net/emoticons/v1/${t}/1.0`},FrankerFaceZ:{url:`https://rauenzi.github.io/BetterDiscordApp/data/emotedata_ffz.json`,variable:"FrankerFaceZ",oldVariable:"emotesFfz",getEmoteURL:t=>`https://cdn.frankerfacez.com/emoticon/${t}/1`},BTTV:{url:`https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv.json`,variable:"BTTV",oldVariable:"emotesBTTV",getEmoteURL:t=>`https://cdn.betterttv.net/emote/${t}/1x`},BTTV2:{url:`https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv2.json`,variable:"BTTV2",oldVariable:"emotesBTTV2",getEmoteURL:t=>`https://cdn.betterttv.net/emote/${t}/1x`}};for(await this.getBlacklist(),await this.loadEmoteData(e);!BDV2.MessageComponent;)await new Promise(e=>setTimeout(e,100));this.cancelEmoteRender||(this.cancelEmoteRender=Utils.monkeyPatch(BDV2.MessageComponent,"default",{before:({methodArguments:e})=>{const t=e[0].childrenMessageContent.props.content;if(t&&t.length){for(let e=0;ei.length||bemotes.includes(i))continue;this.modifiers.includes(l)&&settingsCookie["bda-es-8"]||(l=""),this.overrides.includes(d)?l=d:d="";let c=this.categories[a];if("twitch"===d?window.bdEmotes.TwitchGlobal[i]?c="TwitchGlobal":window.bdEmotes.TwitchSubscriber[i]&&(c="TwitchSubscriber"):"bttv"===d?window.bdEmotes.BTTV[i]?c="BTTV":window.bdEmotes.BTTV2[i]&&(c="BTTV2"):"ffz"===d&&window.bdEmotes.FrankerFaceZ[i]&&(c="FrankerFaceZ"),!window.bdEmotes[c][i]||!settingsCookie[window.bdEmoteSettingIDs[c]])continue;const p=t[e].match(new RegExp(`([\\s]|^)${Utils.escape(l?i+":"+l:i)}([\\s]|$)`));if(!p)continue;const m=t[e].substring(0,p.index+p[1].length),u=t[e].substring(p.index+p[0].length-p[2].length);t[e]=m;const h=BDV2.react.createElement(BDEmote,{name:i,url:window.bdEmotes[c][i],modifier:l});t.splice(e+1,0,u),t.splice(e+1,0,h)}}const e=t.every(e=>"string"==typeof e&&""==e.replace(/\s*/,"")||!!(e.type&&"BDEmote"==e.type.name)||!!(e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName));if(e)for(let e of t)"object"==typeof e&&("BDEmote"==e.type.name?e.props.jumboable=!0:e.props&&e.props.children&&e.props.children.props&&e.props.children.props.emojiName&&(e.props.children.props.jumboable=!0))}}}))},EmoteModule.prototype.disable=function(){this.disableAutoCapitalize();this.cancelEmoteRender||(this.cancelEmoteRender(),this.cancelEmoteRender=null)},EmoteModule.prototype.clearEmoteData=async function(){let e=require("fs"),t=bdConfig.dataPath+"emote_data.json",a=e.existsSync(t);a&&e.unlinkSync(t),DataStore.setBDData("emoteCacheDate",new Date().toJSON()),window.bdEmotes={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{},BTTV2:{}}},EmoteModule.prototype.isCacheValid=function(){const e=DataStore.getBDData("emoteCacheDays")||DataStore.setBDData("emoteCacheDays",7)||7,t=new Date(DataStore.getBDData("emoteCacheDate")||null),a=new Date,n=Math.round(Math.abs((a.getTime()-t.getTime())/86400000));return!(n>e)||(DataStore.setBDData("emoteCacheDate",a.toJSON()),!1)},EmoteModule.prototype.loadEmoteData=async function(t){const a=require("fs"),e=bdConfig.dataPath+"emote_data.json",n=await new Promise(t=>a.exists(e,t));if(n&&this.isCacheValid()){settingsCookie["fork-ps-2"]&&mainCore.showToast("Loading emotes from cache.",{type:"info"}),Utils.log("Emotes","Loading emotes from local cache.");const n=await new Promise(t=>{a.readFile(e,"utf8",(e,a)=>{Utils.log("Emotes","Emote file read."),e&&(a={}),t(a)})}),o=Utils.testJSON(n);let s=!!o;for(const a in s&&(window.bdEmotes=o),t)s=0a.unlink(e,t))}if(settingsCookie["fork-es-3"]){for(let a in settingsCookie["fork-ps-2"]&&mainCore.showToast("Downloading emotes in the background do not reload.",{type:"info"}),t){await new Promise(e=>setTimeout(e,1e3));let e=await this.downloadEmotes(t[a]);window.bdEmotes[t[a].variable]=e}settingsCookie["fork-ps-2"]&&mainCore.showToast("All emotes successfully downloaded.",{type:"success"});try{await new Promise(t=>a.writeFile(e,JSON.stringify(window.bdEmotes),"utf8",t))}catch(e){Utils.err("Emotes","Could not save emote data.",e)}}},EmoteModule.prototype.downloadEmotes=function(e){let t=require("request"),a={url:e.url,timeout:e.timeout?e.timeout:5e3,json:!0};return Utils.log("Emotes",`Downloading: ${e.variable} (${e.url})`),new Promise((n,o)=>{t(a,(t,a,s)=>{if(t)return Utils.err("Emotes","Could not download "+e.variable,t),e.backup?(e.url=e.backup,e.backup=null,e.backupParser&&(e.parser=e.backupParser),n(this.downloadEmotes(e))):o({});for(let n in"function"==typeof e.parser&&(s=e.parser(s)),s){if(4>n.length||bemotes.includes(n)){delete s[n];continue}s[n]=e.getEmoteURL(s[n])}n(s),Utils.log("Emotes","Downloaded: "+e.variable)})})},EmoteModule.prototype.getBlacklist=function(){return new Promise(e=>{$.getJSON(`https://rauenzi.github.io/BetterDiscordApp/data/emotefilter.json`,function(t){e(bemotes=t.blacklist)})})};var bemotes=[];EmoteModule.prototype.autoCapitalize=function(){!settingsCookie["bda-es-4"]||this.autoCapitalizeActive||($("body").on("keyup.bdac change.bdac paste.bdac",$(".channelTextArea-rNsIhG textarea:first"),()=>{var e=$(".channelTextArea-rNsIhG textarea:first").val();if(null!=e){var t=e.split(" ").pop();if(3",t+=" ",t+=" ",t+="
",this.qmeHeader=t;var a="";a+="
",a+="
",a+="
",a+="
";var n="";for(let e in window.bdEmotes.TwitchGlobal)window.bdEmotes.TwitchGlobal.hasOwnProperty(e)&&(n=window.bdEmotes.TwitchGlobal[e],a+="
",a+=" \"\"",a+=" ",a+="
");a+="
",a+="
",a+="
",a+="
",this.teContainer=a;var o="";for(let e in o+="
",o+="
",o+="
",o+="
",this.favoriteEmotes)n=this.favoriteEmotes[e],o+="
",o+=" \"\"",o+=" ",o+="
";o+="
",o+="
",o+="
",o+="
",this.faContainer=o},QuickEmoteMenu.prototype.favContext=function(t,e){t.stopPropagation();var a=$("
",{id:"removemenu","data-emoteid":$(e).prop("title"),text:"Remove",class:"bd-context-menu context-menu theme-dark"});return a.css({top:t.pageY-$("#bda-qem-favourite-container").offset().top,left:t.pageX-$("#bda-qem-favourite-container").offset().left}),$(e).parent().append(a),a.on("click",function(t){return t.preventDefault(),t.stopPropagation(),$(this).remove(),delete quickEmoteMenu.favoriteEmotes[$(this).data("emoteid")],quickEmoteMenu.updateFavorites(),!1}),!1},QuickEmoteMenu.prototype.switchHandler=function(t){this.switchQem($(t).attr("id"))},QuickEmoteMenu.prototype.switchQem=function(e){var t=$("#bda-qem-twitch"),a=$("#bda-qem-favourite"),n=$("#bda-qem-emojis");t.removeClass("active"),a.removeClass("active"),n.removeClass("active"),$(".emojiPicker-3m1S-j").hide(),$("#bda-qem-favourite-container").hide(),$("#bda-qem-twitch-container").hide();"bda-qem-twitch"===e?(t.addClass("active"),$("#bda-qem-twitch-container").show()):"bda-qem-favourite"===e?(a.addClass("active"),$("#bda-qem-favourite-container").show()):"bda-qem-emojis"===e?(n.addClass("active"),$(".emojiPicker-3m1S-j").show(),$(".emojiPicker-3m1S-j input").focus()):void 0;this.lastTab=e;var o=$(".emote-icon");o.off(),o.on("click",function(){var e=$(this).attr("title");const t=document.querySelector(`.${BDV2.slateEditorClasses.slateTextArea.split(" ")[0]}`);if(t){const a=BdApi.getInternalInstance(t),n=Utils.getNestedProp(a,"memoizedProps.children.props.editor.insertText");n&&n(` ${e} `)}else{var a=Utils.getTextArea();Utils.insertText(a[0]," "==a.val().slice(-1)?a.val()+e:a.val()+" "+e)}})},QuickEmoteMenu.prototype.obsCallback=function(t){if(this.initialized){var a=$(t);settingsCookie["bda-es-9"]?a.removeClass("bda-qme-hidden"):a.addClass("bda-qme-hidden"),settingsCookie["bda-es-0"]&&(a.prepend(this.qmeHeader),a.append(this.teContainer),a.append(this.faContainer),null==this.lastTab&&(this.lastTab="bda-qem-emojis"),this.switchQem(this.lastTab))}},QuickEmoteMenu.prototype.favorite=function(e,t){this.favoriteEmotes.hasOwnProperty(e)||(this.favoriteEmotes[e]=t),this.updateFavorites()},QuickEmoteMenu.prototype.updateFavorites=function(){var e="";for(var t in e+="
",e+="
",e+="
",e+="
",this.favoriteEmotes){var a=this.favoriteEmotes[t];e+="
",e+=" \"\"",e+=" ",e+="
"}e+="
",e+="
",e+="
",e+="
",this.faContainer=e,$("#bda-qem-favourite-container").replaceWith(e),DataStore.setBDData("bdfavemotes",btoa(JSON.stringify(this.favoriteEmotes)))};var Utils=class{static get screenWidth(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)}static get screenHeight(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)}static stripBOM(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}static getTextArea(){return $(".channelTextArea-rNsIhG textarea")}static insertText(e,t){e.focus(),e.selectionStart=0,e.selectionEnd=e.value.length,document.execCommand("insertText",!1,t)}static injectCss(e){$("",{type:"text/css",rel:"stylesheet",href:e}).appendTo($("head"))}static injectJs(e){return new Promise(t=>{$("