Greasy Fork

Greasy Fork is available in English.

Enhanced Twitter post hider

Allows finer control over what words you want to hide from the platform

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Enhanced Twitter post hider
// @namespace    victorique.moe
// @version      1.5.5
// @description  Allows finer control over what words you want to hide from the platform
// @grant        GM.xmlHttpRequest
// @grant        GM.getValue
// @grant        GM.listValues
// @grant        GM.setValue
// @author       Victoria
// @match        https://x.com/*
// @match        https://twitter.com/*
// @run-at       document-idle
// @icon         https://i.imgur.com/nx5ejHb.png
// @license      MIT
// ==/UserScript==

(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory();
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else if(typeof exports === 'object')
		exports["twitter-enhanced-muted-words"] = factory();
	else
		root["twitter-enhanced-muted-words"] = factory();
})(this, () => {
return /******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ 944:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.remove-button {
    color: red;
}

.hidden {
    display: none;
}

#currentBlockedWordsTable {
    border-collapse: collapse;
    width: 100%;
}

#currentBlockedWordsTable td, #currentBlockedWordsTable th {
    border: 1px solid #ddd;
    padding: 8px;
}

#currentBlockedWordsTable td:last-of-type {
    border: none;
    width: 20px;
}

#currentBlockedWordsTable tr:hover {
    background-color: #073d1e;
}

#currentBlockedWordsTable th {
    padding-top: 12px;
    padding-bottom: 12px;
    text-align: left;
    background-color: #04AA6D;
    color: white;
}

.overlay {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 1.0);
    z-index: 2;
    cursor: pointer;
}

.overlay .text {
    position: absolute;
    top: 50%;
    left: 50%;
    color: white;
    transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    font-family: TwitterChirp, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

#EH_settings {
    margin-top: 10px;
}

#yourUserId {
    margin-left: 10px;
}

#yourUserId:focus {
    outline: none;
    border-color: rgb(29, 155, 240);
    box-shadow: 0 0 10px rgb(29, 155, 240);
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 108:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.Modal {
    display: none;
    position: fixed;
    z-index: 9999;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0, 0, 0);
    background-color: rgba(0, 0, 0, 0.4);
    font-family: TwitterChirp, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.FSmodalContent {
    position: relative;
    background-color: #141414;
    color: #ffffff !important;
    margin: auto;
    padding: 0;
    border: 1px solid #888;
    width: 900px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    -webkit-animation-name: animatetop;
    -webkit-animation-duration: 0.4s;
    animation-name: animatetop;
    animation-duration: 0.4s
}


.button {
    background-color: #4CAF50; /* Green */
    border: none;
    color: white;
    padding: 7px 21px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    -webkit-transition-duration: 0.4s; /* Safari */
    transition-duration: 0.4s;
    cursor: pointer;
}

.blackButton {
    background-color: #141414;
    color: white;
    border: 2px solid #555555;
}

.blackButton:hover {
    background-color: #555555;
    color: white;
}

/* Add Animation */
@-webkit-keyframes animatetop {
    from {
        top: -300px;
        opacity: 0
    }
    to {
        top: 0;
        opacity: 1
    }
}

@keyframes animatetop {
    from {
        top: -300px;
        opacity: 0
    }
    to {
        top: 0;
        opacity: 1
    }
}

/* The Close Button */
.FSclose {
    float: right;
    font-size: 28px;
    font-weight: bold;
    margin-bottom: 1rem;
}

.FSclose:hover,
.FSclose:focus {
    color: #8f412c6e;
    text-decoration: none;
    cursor: pointer;
}

.FSmodalHeader {
    padding: 0.5rem;
}

.FSModalBody {
    padding: 1rem;
}

.FSModalFooter {
    color: white;
    display: flex;
    flex-wrap:wrap;
    justify-content: space-between;
    padding: 0.5rem;
    border-top: 1px solid #333232;

}

.FSmodalTitle {
    margin-left: 1rem;
}

.awesomplete > ul {
    color: #ff0000;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 107:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `* {
    --switch-height: 18px;
    --switch-padding: 8px;
    --switch-width: calc((var(--switch-height) * 2) - var(--switch-padding));
    --slider-height: calc(var(--switch-height) - var(--switch-padding));
    --slider-on: calc(var(--switch-height) - var(--switch-padding));
}

.switch {
    position: relative;
    display: inline-block;
    width: var(--switch-width);
    height: var(--switch-height);
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    -webkit-transition: .4s;
    transition: .4s;
}

.slider:before {
    content: "";
    position: absolute;
    height: var(--slider-height);
    width: var(--slider-height);
    left: calc(var(--switch-padding) / 2);
    bottom: calc(var(--switch-padding) / 2);
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
}

input:checked+.slider {
    background-color: #2196F3;
}

input:focus+.slider {
    box-shadow: 0 0 1px #2196F3;
}

input:checked+.slider:before {
    transform: translateX(var(--slider-on));
}

.slider.round {
    border-radius: var(--slider-height);
}

.slider.round:before {
    border-radius: 50%;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 314:
/***/ ((module) => {



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

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

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

/***/ }),

/***/ 601:
/***/ ((module) => {



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

/***/ }),

/***/ 977:
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {

/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(825);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(659);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(540);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(113);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_main_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(944);

      
      
      
      
      
      
      
      
      

var options = {};

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

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




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


/***/ }),

/***/ 839:
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {

/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(825);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(659);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(540);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(113);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_modal_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(108);

      
      
      
      
      
      
      
      
      

var options = {};

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

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




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


/***/ }),

/***/ 206:
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {

/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(825);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(659);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(540);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(113);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_switch_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(107);

      
      
      
      
      
      
      
      
      

var options = {};

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

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




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


/***/ }),

/***/ 72:
/***/ ((module) => {



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

/***/ }),

/***/ 659:
/***/ ((module) => {



var memo = {};

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

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

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

/***/ }),

/***/ 540:
/***/ ((module) => {



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

/***/ }),

/***/ 56:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {



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

/***/ }),

/***/ 825:
/***/ ((module) => {



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

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

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

/***/ }),

/***/ 113:
/***/ ((module) => {



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

/***/ }),

/***/ 279:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TwitterPostObserver: () => (/* binding */ TwitterPostObserver)
/* harmony export */ });
/* harmony import */ var _UiBuilder_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(361);
/* harmony import */ var _managers_LocalStoreManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(146);
/* harmony import */ var _decorators_PostObserver_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(967);
/* harmony import */ var _PageInterceptor_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(678);
/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41);
/* harmony import */ var _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
/* harmony import */ var _css_modal_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(839);
/* harmony import */ var _css_switch_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(206);
/* harmony import */ var _css_main_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(977);
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_decorators_PostObserver_js__WEBPACK_IMPORTED_MODULE_2__, _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_3__]);
([_decorators_PostObserver_js__WEBPACK_IMPORTED_MODULE_2__, _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var TwitterPostObserver_1;









let TwitterPostObserver = class TwitterPostObserver {
    static { TwitterPostObserver_1 = this; }
    constructor() {
        this.uiBuilder = _UiBuilder_js__WEBPACK_IMPORTED_MODULE_0__/* .UiBuilder */ .i.getInstance();
        this.localStoreManager = _managers_LocalStoreManager_js__WEBPACK_IMPORTED_MODULE_1__/* .LocalStoreManager */ .g.getInstance();
        this.regexPhraseCache = new Map();
    }
    static async getInstance() {
        if (!TwitterPostObserver_1.instance) {
            TwitterPostObserver_1.instance = new TwitterPostObserver_1();
            await TwitterPostObserver_1.instance.init();
            TwitterPostObserver_1.instance.twitterMutator = await _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_3__/* .TwitterMutator */ .q.getInstance();
        }
        return TwitterPostObserver_1.instance;
    }
    removeElm(blockedWordEntry, elms) {
        for (const elm of elms) {
            const e = elm;
            if (blockedWordEntry.options.useOverlay) {
                this.uiBuilder.injectOverlay(e, blockedWordEntry.phrase);
            }
            else {
                e.style.display = "none";
            }
            e.dataset.thidden = "true";
        }
    }
    async processMuteMap(muteMap) {
        const pArr = [];
        for (const [entry, elements] of muteMap) {
            this.removeElm(entry, elements);
            pArr.push(this.localStoreManager.incrementBlockedWordAudit(entry.phrase));
        }
        await Promise.all(pArr);
    }
    findMatchingBlockPhrase(tweetText, allBlockedWords, testId) {
        for (const blockedWord of allBlockedWords) {
            const { phrase, options } = blockedWord;
            const { useRegex, filterUsername } = options;
            if (testId === "User-Name" && !filterUsername) {
                return null;
            }
            if (useRegex) {
                let regExp = this.regexPhraseCache.get(phrase);
                if (!regExp) {
                    regExp = new RegExp(phrase, "mi");
                    this.regexPhraseCache.set(phrase, regExp);
                }
                if (regExp.test(tweetText)) {
                    return blockedWord;
                }
            }
            else if (tweetText.includes(phrase)) {
                return blockedWord;
            }
        }
        return null;
    }
    shouldRemove(el, allBlockedWords, globalOpts) {
        if (!allBlockedWords || allBlockedWords.length === 0) {
            return [false, null];
        }
        const tweetTexts = el.querySelectorAll("[data-testid='tweetText']");
        const username = el.querySelectorAll("[data-testid='User-Name']");
        if (el.dataset.thidden) {
            return [false, null]; // already hidden
        }
        // we want to check the username first, so it needs to be this order
        const elements = Array.from(username).concat(Array.from(tweetTexts));
        for (const tweet of elements) {
            let content;
            if (tweet.dataset.testid === "User-Name") {
                content = tweet.querySelector("a")?.href?.split("/")?.pop() ?? null;
                if (globalOpts.username) {
                    // content at this point is the user handle
                    if (content === globalOpts.username) {
                        return [false, null];
                    }
                }
            }
            else {
                content = tweet.textContent;
            }
            if (content) {
                const dataset = tweet.dataset;
                const matchedPhrase = this.findMatchingBlockPhrase(content, allBlockedWords, dataset.testid);
                if (matchedPhrase) {
                    return [true, matchedPhrase];
                }
            }
        }
        return [false, null];
    }
    async observe(mutationList, observer) {
        const allBlockedWords = await this.localStoreManager.getAllStoredWords();
        const globalOptions = await this.localStoreManager.getAllGlobalOpts();
        // collection of how many elements a phrase muted
        const muteMap = new Map();
        for (const mutationRecord of mutationList) {
            for (let i = 0; i < mutationRecord.addedNodes.length; i++) {
                const removedNode = mutationRecord.addedNodes[i];
                this.populateMuteMap(removedNode, allBlockedWords, muteMap, globalOptions);
            }
        }
        await this.processMuteMap(muteMap);
    }
    populateMuteMap(removedNode, allBlockedWords, muteMap, globalOpts) {
        const [shouldRemove, entry] = this.shouldRemove(removedNode, allBlockedWords, globalOpts);
        if (shouldRemove) {
            if (muteMap.has(entry)) {
                muteMap.get(entry)?.push(removedNode);
            }
            else {
                muteMap.set(entry, [removedNode]);
            }
        }
    }
    async init() {
        const pageInterceptor = _PageInterceptor_js__WEBPACK_IMPORTED_MODULE_7__/* .PageInterceptor */ .L.getInstance();
        pageInterceptor.addAction(async () => {
            const allBlockedWords = await this.localStoreManager.getAllStoredWords();
            if (allBlockedWords.length === 0) {
                this.twitterMutator.closeMutators();
                return;
            }
            await this.twitterMutator.init();
            await this.loadPage();
        });
        await this.loadPage();
        pageInterceptor.addAction(async () => {
            const page = window.location.pathname.split("/").pop();
            if (page !== "mute_and_block") {
                return;
            }
            const anchor = this.uiBuilder.buildOption();
            if (!anchor) {
                return;
            }
            const insertAfter = await (0,_Utils_js__WEBPACK_IMPORTED_MODULE_8__/* .waitForElm */ .ZO)("a[href='/settings/muted_keywords']");
            if (!insertAfter) {
                return;
            }
            insertAfter.after(anchor);
            const modal = await this.buildModal();
            anchor.addEventListener("click", () => {
                _Utils_js__WEBPACK_IMPORTED_MODULE_8__/* .DomUtil */ .bQ.openModal(modal);
            });
        });
    }
    async buildModal() {
        const [modal, exists] = await this.uiBuilder.getEditor(blockedWords => {
            // no point listening for mutation events if there are no words to block
            if (blockedWords.length === 0) {
                this.twitterMutator.closeMutators();
            }
        });
        if (!exists) {
            const el = document.body;
            el.insertAdjacentElement("beforeend", modal);
        }
        return modal;
    }
    async loadPage() {
        const allBlockedWords = await this.localStoreManager.getAllStoredWords();
        if (allBlockedWords.length === 0) {
            return;
        }
        const allGlobalOpts = await this.localStoreManager.getAllGlobalOpts();
        const selectorToLoad = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_8__/* .getSelectorForPage */ .c4)();
        const timelineContainer = await (0,_Utils_js__WEBPACK_IMPORTED_MODULE_8__/* .waitForElm */ .ZO)(selectorToLoad);
        if (!timelineContainer) {
            return;
        }
        if (!timelineContainer.children) {
            return;
        }
        const muteMap = new Map();
        for (let i = 0; i < timelineContainer.children.length; i++) {
            const chatItem = timelineContainer.children[i];
            this.populateMuteMap(chatItem, allBlockedWords, muteMap, allGlobalOpts);
        }
        await this.processMuteMap(muteMap);
    }
};
TwitterPostObserver = TwitterPostObserver_1 = __decorate([
    _decorators_PostObserver_js__WEBPACK_IMPORTED_MODULE_2__/* .PostObserver */ .z,
    __metadata("design:paramtypes", [])
], TwitterPostObserver);

await TwitterPostObserver.getInstance();

__webpack_async_result__();
} catch(e) { __webpack_async_result__(e); } }, 1);

/***/ }),

/***/ 678:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   L: () => (/* binding */ PageInterceptor)
/* harmony export */ });
class PageInterceptor {
    constructor() {
        this.actions = [];
    }
    static getInstance() {
        if (!PageInterceptor.instance) {
            PageInterceptor.instance = new PageInterceptor();
            PageInterceptor.instance.init();
        }
        return PageInterceptor.instance;
    }
    init() {
        window.addEventListener("load", () => {
            let oldHref = document.location.href;
            const body = document.querySelector("body");
            if (!body) {
                return;
            }
            const observer = new MutationObserver(() => {
                if (oldHref !== document.location.href) {
                    oldHref = document.location.href;
                    for (const action of this.actions) {
                        action();
                    }
                }
            });
            observer.observe(body, { childList: true, subtree: true });
        }, true);
    }
    addAction(action) {
        this.actions.push(action);
    }
}


/***/ }),

/***/ 57:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   q: () => (/* binding */ TwitterMutator)
/* harmony export */ });
/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
/* harmony import */ var _Main_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(279);
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Main_js__WEBPACK_IMPORTED_MODULE_0__]);
_Main_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];


class TwitterMutator {
    constructor() {
        this.timelineObserverProxy = null;
        this.observerList = [];
        this.instanceMap = new Map();
    }
    static async getInstance() {
        if (!TwitterMutator.instance) {
            TwitterMutator.instance = new TwitterMutator();
            await TwitterMutator.instance.init();
        }
        return TwitterMutator.instance;
    }
    async init() {
        await this.onTweet();
    }
    addObserver(context) {
        this.observerList.push(context);
    }
    async getObserver(context) {
        let instance = this.instanceMap.get(context) ?? null;
        if (instance) {
            return instance;
        }
        if (context === _Main_js__WEBPACK_IMPORTED_MODULE_0__.TwitterPostObserver) {
            instance = await _Main_js__WEBPACK_IMPORTED_MODULE_0__.TwitterPostObserver.getInstance();
            this.instanceMap.set(context, instance);
            return instance;
        }
        return null;
    }
    async onTweet() {
        const homePageSelector = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__/* .getSelectorForPage */ .c4)();
        const elm = await (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__/* .waitForElm */ .ZO)(homePageSelector);
        if (!elm) {
            return;
        }
        const parentSection = elm.closest("section");
        if (!parentSection) {
            return;
        }
        const sectionWrapper = parentSection.parentElement;
        if (!sectionWrapper) {
            return;
        }
        if (this.timelineObserverProxy) {
            this.timelineObserverProxy.disconnect();
        }
        this.timelineObserverProxy = new MutationObserver(async (mutations, observer) => {
            const observers = (await Promise.all(this.observerList.map(observer => this.getObserver(observer)))).filter(observer => !!observer);
            observers.map(instanceObserver => {
                instanceObserver.observe(mutations, observer);
            });
        });
        this.timelineObserverProxy.observe(sectionWrapper, {
            childList: true,
            subtree: true,
        });
    }
    closeMutators() {
        this.timelineObserverProxy?.disconnect();
    }
    async openMutators() {
        await this.init();
    }
}

__webpack_async_result__();
} catch(e) { __webpack_async_result__(e); } });

/***/ }),

/***/ 361:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   i: () => (/* binding */ UiBuilder)
/* harmony export */ });
/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
/* harmony import */ var _typings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872);
/* harmony import */ var _managers_LocalStoreManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(146);



class UiBuilder {
    constructor() {
        this.localStoreManager = _managers_LocalStoreManager_js__WEBPACK_IMPORTED_MODULE_1__/* .LocalStoreManager */ .g.getInstance();
    }
    static getInstance() {
        if (!UiBuilder.instance) {
            UiBuilder.instance = new UiBuilder();
        }
        return UiBuilder.instance;
    }
    buildOption() {
        const hasEl = document.querySelector("#enhanced_muted_words") !== null;
        if (hasEl) {
            return null;
        }
        const a = document.createElement("a");
        a.className = "css-175oi2r r-1wtj0ep r-16x9es5 r-1f1sjgu r-o7ynqc r-6416eg r-1ny4l3l r-1loqt21";
        a.id = "enhanced_muted_words";
        a.setAttribute("style", "padding-right: 16px; padding-left: 16px;");
        a.innerHTML = `<div class="css-175oi2r r-1awozwy r-18u37iz r-16y2uox"><div class="css-175oi2r r-16y2uox r-1wbh5a2"><div dir="ltr" class="css-1rynq56 r-bcqeeo r-qvutc0 r-37j5jr r-a023e6 r-rjixqe r-16dba41" style="text-overflow: unset; color: rgb(231, 233, 234);"><span class="css-1qaijid r-bcqeeo r-qvutc0 r-poiln3" style="text-overflow: unset;">Enhanced muted words</span></div></div><svg viewBox="0 0 24 24" aria-hidden="true" class="r-4qtqp9 r-yyyyoo r-1xvli5t r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-1bwzh9t r-1q142lx r-f727ji"><g><path d="M14.586 12L7.543 4.96l1.414-1.42L17.414 12l-8.457 8.46-1.414-1.42L14.586 12z"></path></g></svg></div>`;
        a.addEventListener("mouseenter", evt => {
            evt.target.classList.add("r-g2wdr4");
        });
        a.addEventListener("mouseleave", evt => {
            evt.target.classList.remove("r-g2wdr4");
        });
        return a;
    }
    injectOverlay(e, phrase) {
        const overlay = document.createElement("div");
        const text = document.createElement("span");
        const innerContent = e.firstChild;
        innerContent.style.display = "none";
        e.style.height = "121px";
        text.className = "text";
        text.textContent = `Content hidden due to rule ${phrase} - click to show`;
        overlay.append(text);
        overlay.className = "overlay";
        overlay.onclick = () => {
            overlay.style.display = "none";
            innerContent.style.removeProperty("display");
            e.style.removeProperty("height");
            delete e.dataset.thidden;
        };
        e.append(overlay);
    }
    async getEditor(onSave) {
        function createTableBodyRows(allBlockedWords) {
            let tableBodyRows = "";
            for (const blockedWord of allBlockedWords) {
                const useOverlay = blockedWord.options.useOverlay ?? false;
                const filterUsername = blockedWord.options.useOverlay ?? false;
                tableBodyRows += `
                <tr>
                    <td contenteditable="true">${blockedWord.phrase}</td>
                    <td>
                        <select>
                            <option value="true" ${blockedWord.options.useRegex ? "selected" : ""}>true</option>
                            <option value="false" ${blockedWord.options.useRegex ? "" : "selected"}>false</option>
                        </select>
                    </td>
                    <td>
                        <label class="switch">
                          <input type="checkbox" class="useOverlayCheck" ${useOverlay ? "" : "checked"}>
                          <span class="slider round"></span>
                        </label>                    
                    </td>
                    <td>
                        <label class="switch">
                          <input type="checkbox" class="includeUsernameCheck" ${filterUsername ? "checked" : ""}>
                          <span class="slider round"></span>
                        </label>                    
                    </td>
                    <td>${blockedWord.count}</td>
                    <td>
                        <button data-id="removeRow">Remove</button>
                    </td>
                </tr>
            `;
            }
            return tableBodyRows;
        }
        function createHtml(allBlockedWords, settings) {
            return `
                <div id='currentBlockedWordsTableWrapper'>
                    <table id='currentBlockedWordsTable'>
                        <thead>
                            <tr>
                                <th scope="col">Phrase</th>
                                <th scope="col">Regex</th>
                                <th scope="col"><span title="If toggled on, this will remove the post completely instead of using an overlay">Remove posts</span></th>
                                <th scope="col"><span title="If on, it will also include user handles (@) in the filter">Include username</span></th>
                                <th scope="col">Mute count</th>
                            </tr>
                        </thead>
                    <tbody id="currentBlockedWordsTableBody">
                        ${createTableBodyRows(allBlockedWords)}
                    </tbody>
                    </table>
                    <div id='EH_settings'>
                         <label for="yourUserId">Your Username:</label>
                         <input id="yourUserId" placeholder="Example: @VictoriqueM" value="${settings.username ?? ""}" data-type="${_typings_js__WEBPACK_IMPORTED_MODULE_0__/* .SETTING */ .H.USERNAME}" style="margin-left: 10px;"/>
                    </div>
                </div>
            `;
        }
        function bindRemoveButtons() {
            modal.querySelectorAll("button[data-id='removeRow']").forEach(e => {
                _Utils_js__WEBPACK_IMPORTED_MODULE_2__/* .DomUtil */ .bQ.offOn(e, "click", e => {
                    const target = e.target;
                    target.closest("tr")?.remove();
                });
            });
        }
        const existingModel = document.getElementById("#enhancedMutedWordsDialog");
        if (existingModel) {
            return [existingModel, true];
        }
        const allBlockedWords = await this.localStoreManager.getAllStoredWords();
        const muteCount = await this.localStoreManager.getAuditEntries();
        const merged = allBlockedWords.map(value => {
            const auditEntry = muteCount[value.phrase] ?? 0;
            return { ...value, count: auditEntry };
        });
        const globalOpts = await this.localStoreManager.getAllGlobalOpts();
        const modal = await _Utils_js__WEBPACK_IMPORTED_MODULE_2__/* .DomUtil */ .bQ.createModal({
            id: "enhancedMutedWordsDialog",
            body: () => createHtml(merged, globalOpts),
            title: "Enhanced Muted words",
            modalBodyStyle: {
                height: "auto",
                overflow: "auto",
            },
            footer: `
                <button id="AddRowButton" class="button blackButton">Add row</button>
                <button id="applyEnhancedMutedWords" class="button blackButton apply">Save</button>
            `,
        });
        modal.querySelector("#applyEnhancedMutedWords")?.addEventListener("click", async () => {
            const table = modal.querySelector("#currentBlockedWordsTable");
            const tableRows = Array.from(table.querySelectorAll("#currentBlockedWordsTableBody tr"));
            const muteCount = await this.localStoreManager.getAuditEntries();
            const blockedWords = [];
            for (const row of tableRows) {
                const tableTextContent = row.querySelector("td:first-child")?.textContent;
                if (!tableTextContent) {
                    alert("Unable to set blank phrase");
                    return;
                }
                const phrase = tableTextContent;
                const useRegex = row.querySelector("select").value === "true";
                if (useRegex) {
                    try {
                        new RegExp(phrase);
                    }
                    catch (e) {
                        alert(`Regex ${phrase} is not valid: ${e.message}`);
                        return;
                    }
                }
                const hidePost = row.querySelector("input.useOverlayCheck").checked;
                const filterUsername = row.querySelector("input.includeUsernameCheck").checked;
                const auditEntry = muteCount[phrase] ?? 0;
                blockedWords.push({
                    phrase,
                    options: {
                        useRegex,
                        useOverlay: !hidePost,
                        filterUsername,
                    },
                    count: auditEntry,
                });
            }
            await this.localStoreManager.setBlockedWords(blockedWords);
            const globalOptsToSet = {};
            const globalOpts = modal.querySelector("#EH_settings");
            globalOpts?.querySelectorAll("input").forEach(e => {
                const type = e.dataset.type;
                let value = e.value;
                if (type === _typings_js__WEBPACK_IMPORTED_MODULE_0__/* .SETTING */ .H.USERNAME) {
                    if (value.startsWith("@")) {
                        // we don't want @ in the input
                        value = value.slice(1);
                    }
                }
                globalOptsToSet[type] = value;
            });
            await this.localStoreManager.setAllGlobalOpts(globalOptsToSet);
            if (onSave) {
                await onSave(blockedWords);
            }
            alert("Saved successfully.");
        });
        bindRemoveButtons();
        modal.querySelector("#AddRowButton")?.addEventListener("click", () => {
            const table = modal.querySelector("#currentBlockedWordsTable");
            const newRow = document.createElement("tr");
            newRow.innerHTML = `
                <td contenteditable="true"></td>
                <td>
                    <select>
                        <option value="true">true</option>
                        <option value="false">false</option>
                    </select>
                </td>
                <td>
                    <label class=" switch">
                      <input type="checkbox" class="useOverlayCheck">
                      <span class="slider round"></span>
                    </label>                    
                </td>
                 <td>
                    <label class=" switch">
                      <input type="checkbox" class="includeUsernameCheck">
                      <span class="slider round"></span>
                    </label>                    
                </td>
                <td>0</td>
                <td>
                    <button data-id="removeRow">Remove</button>
                </td>
            `;
            table.querySelector("#currentBlockedWordsTableBody")?.appendChild(newRow);
            bindRemoveButtons();
        });
        return [modal, false];
    }
}


/***/ }),

/***/ 41:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ZO: () => (/* binding */ waitForElm),
/* harmony export */   bQ: () => (/* binding */ DomUtil),
/* harmony export */   c4: () => (/* binding */ getSelectorForPage)
/* harmony export */ });
/* unused harmony export toggleHide */
function waitForElm(selector, node) {
    return new Promise((resolve, reject) => {
        const e = node ?? document;
        if (e.querySelector(selector)) {
            return resolve(e.querySelector(selector));
        }
        const timeout = setTimeout(() => {
            resolve(null);
            observer.disconnect();
        }, 10000);
        const observer = new MutationObserver(() => {
            if (e.querySelector(selector)) {
                resolve(e.querySelector(selector));
                observer.disconnect();
                clearTimeout(timeout);
            }
        });
        observer.observe(e, {
            childList: true,
            subtree: true,
        });
    });
}
class DomUtil {
    static guid() {
        function s4() {
            return Math.floor((1 + Math.random()) * 0x10000)
                .toString(16)
                .substring(1);
        }
        return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;
    }
    /**
     * Create a modal with the given options
     * @param options
     */
    static async createModal(options) {
        function getStyle(styleObj) {
            let styleStr = "";
            if (styleObj) {
                for (const key in styleObj) {
                    styleStr += `${key}: ${styleObj[key]}; `;
                }
            }
            return styleStr;
        }
        let id;
        if (options.id) {
            id = options.id;
        }
        else {
            id = this.guid();
        }
        const bodyStyle = getStyle(options.modalContentStyle);
        const styleStr = getStyle(options.modalBodyStyle);
        const body = await options.body();
        let html = `<div class="Modal" id="${id}"> 
                        <div class="FSmodalContent" style="${bodyStyle}"> 
                            <div class="FSmodalHeader"> 
                                <span class="FSclose">&times;</span> 
                                <h5 class="FSmodalTitle">${options.title}</h5> 
                            </div> 
                            <div class="FSModalBody" style="${styleStr}">${body}</div>`;
        if (options.footer) {
            html += ` <div class="FSModalFooter"> 
                         ${options.footer} 
                       </div>`;
        }
        html += `</div></div>`;
        const modal = DomUtil.createElementFromHTML(html);
        window.onclick = (event) => {
            if (event.target == modal) {
                DomUtil.closeModal(modal);
            }
        };
        DomUtil.offOn(DomUtil.bySelector(".FSclose", modal), "click", e => {
            DomUtil.closeModal(modal);
        });
        return modal;
    }
    static bySelector(selector, el) {
        if (el) {
            return el.querySelector(selector);
        }
        return document.querySelector(selector);
    }
    static offOn(el, event, callBack, fireImmediately = false) {
        if (!el) {
            return;
        }
        let toTrigger;
        if (el instanceof Element) {
            toTrigger = el;
        }
        else {
            toTrigger = document.querySelector(el);
        }
        if (!toTrigger) {
            return;
        }
        toTrigger = DomUtil.off(toTrigger);
        DomUtil.on(toTrigger, event, callBack, fireImmediately);
    }
    static off(el) {
        if (!el) {
            return;
        }
        const newEl = el.cloneNode(false);
        while (el.hasChildNodes()) {
            if (el.firstChild) {
                newEl.appendChild(el.firstChild);
            }
        }
        el?.parentNode?.replaceChild(newEl, el);
        return newEl;
    }
    static on(el, event, callBack, fireImmediately = false) {
        if (!el) {
            return;
        }
        let toTrigger;
        if (el instanceof Element) {
            toTrigger = el;
        }
        else {
            toTrigger = document.querySelector(el);
        }
        if (!toTrigger) {
            return;
        }
        toTrigger.addEventListener(event, callBack);
        if (fireImmediately) {
            toTrigger.dispatchEvent(new Event(event));
        }
    }
    static openModal(modal) {
        modal.style.display = "block";
    }
    static createElementFromHTML(htmlString) {
        const div = document.createElement("div");
        div.innerHTML = htmlString.trim();
        return div.firstChild;
    }
    static closeModal(modal) {
        modal.style.display = "none";
    }
}
function getSelectorForPage() {
    const path = window.location.pathname;
    const page = path.split("/").pop();
    if (page === "mute_and_block") {
        return "a[href='/settings/muted_keywords']";
    }
    return "[aria-label*='Timeline'] > div[style^='position: relative']";
}
function toggleHide(hide, element) {
    hide ? element.classList.add("hidden") : element.classList.remove("hidden");
}


/***/ }),

/***/ 967:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   z: () => (/* binding */ PostObserver)
/* harmony export */ });
/* harmony import */ var _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_TwitterMutator_js__WEBPACK_IMPORTED_MODULE_0__]);
_TwitterMutator_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];

function PostObserver(target) {
    _TwitterMutator_js__WEBPACK_IMPORTED_MODULE_0__/* .TwitterMutator */ .q.getInstance().then(mutatorProxy => {
        mutatorProxy.addObserver(target);
    });
}

__webpack_async_result__();
} catch(e) { __webpack_async_result__(e); } });

/***/ }),

/***/ 146:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   g: () => (/* binding */ LocalStoreManager)
/* harmony export */ });
/* harmony import */ var _typings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(872);

class LocalStoreManager {
    constructor() {
        this.KEY = "TWITTER_POST_HIDER_MANAGER";
    }
    static getInstance() {
        if (!LocalStoreManager.instance) {
            LocalStoreManager.instance = new LocalStoreManager();
        }
        return LocalStoreManager.instance;
    }
    async addBlockedWord(entry) {
        const storedWords = await this.getAllStoredWords();
        const idx = storedWords.findIndex(value => value.phrase === entry.phrase);
        if (idx > -1) {
            storedWords[idx] = entry;
        }
        else {
            storedWords.push(entry);
        }
        await this.setBlockedWords(storedWords);
    }
    async getBlockedWord(phrase) {
        const allWords = await this.getAllStoredWords();
        if (allWords) {
            return allWords.find(value => value.phrase === phrase) ?? null;
        }
        return null;
    }
    async hasBlockedWord(word) {
        const allWords = await this.getAllStoredWords();
        if (allWords) {
            return !!allWords.find(value => value.phrase === word);
        }
        return false;
    }
    async getAllStoredWords() {
        const itmJson = await GM.getValue(this.KEY, `{"blockedWords": []}`);
        const json = JSON.parse(itmJson);
        return json.blockedWords;
    }
    async getAllGlobalOpts() {
        const itmJson = (await GM.getValue(this.KEY, `{}`));
        const gmJson = JSON.parse(itmJson);
        return gmJson.globalSettings ?? {};
    }
    async setAllGlobalOpts(options) {
        const itmJson = (await GM.getValue(this.KEY, `{}`));
        const gmJson = JSON.parse(itmJson);
        gmJson.globalSettings = options;
        await GM.setValue(this.KEY, JSON.stringify(gmJson));
    }
    async setGlobalOpts(opt) {
        const itmJson = (await GM.getValue(this.KEY, `{}`));
        const gmJson = JSON.parse(itmJson);
        const globalOpts = gmJson.globalSettings ?? {};
        switch (opt) {
            case _typings_js__WEBPACK_IMPORTED_MODULE_0__/* .SETTING */ .H.USERNAME:
                globalOpts.username = opt;
                break;
        }
        gmJson.globalSettings = globalOpts;
        await GM.setValue(this.KEY, JSON.stringify(gmJson));
    }
    async getGlobalOption(opt) {
        const itmJson = (await GM.getValue(this.KEY, `{}`));
        const gmJson = JSON.parse(itmJson);
        const globalOpts = gmJson.globalSettings ?? {};
        switch (opt) {
            case _typings_js__WEBPACK_IMPORTED_MODULE_0__/* .SETTING */ .H.USERNAME:
                return globalOpts?.username ?? null;
        }
    }
    async setBlockedWords(blockedWordEntries) {
        const itmJson = (await GM.getValue(this.KEY, `{"blockedWords": []}`));
        const gmJson = JSON.parse(itmJson);
        gmJson.blockedWords = blockedWordEntries;
        await GM.setValue(this.KEY, JSON.stringify(gmJson));
    }
    async incrementBlockedWordAudit(key) {
        const itmJson = (await GM.getValue(this.KEY, `{"audit": {}}`));
        const gmJson = JSON.parse(itmJson);
        const auditEntries = gmJson.audit ?? {};
        auditEntries[key] = auditEntries[key] ? auditEntries[key] + 1 : 1;
        gmJson.audit = auditEntries;
        await GM.setValue(this.KEY, JSON.stringify(gmJson));
    }
    async getAuditEntries() {
        const itmJson = (await GM.getValue(this.KEY, `{"audit": []}`));
        const json = JSON.parse(itmJson);
        return json.audit;
    }
}


/***/ }),

/***/ 872:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   H: () => (/* binding */ SETTING)
/* harmony export */ });
var SETTING;
(function (SETTING) {
    SETTING["USERNAME"] = "username";
})(SETTING || (SETTING = {}));


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/async module */
/******/ 	(() => {
/******/ 		var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__";
/******/ 		var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__";
/******/ 		var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";
/******/ 		var resolveQueue = (queue) => {
/******/ 			if(queue && queue.d < 1) {
/******/ 				queue.d = 1;
/******/ 				queue.forEach((fn) => (fn.r--));
/******/ 				queue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));
/******/ 			}
/******/ 		}
/******/ 		var wrapDeps = (deps) => (deps.map((dep) => {
/******/ 			if(dep !== null && typeof dep === "object") {
/******/ 				if(dep[webpackQueues]) return dep;
/******/ 				if(dep.then) {
/******/ 					var queue = [];
/******/ 					queue.d = 0;
/******/ 					dep.then((r) => {
/******/ 						obj[webpackExports] = r;
/******/ 						resolveQueue(queue);
/******/ 					}, (e) => {
/******/ 						obj[webpackError] = e;
/******/ 						resolveQueue(queue);
/******/ 					});
/******/ 					var obj = {};
/******/ 					obj[webpackQueues] = (fn) => (fn(queue));
/******/ 					return obj;
/******/ 				}
/******/ 			}
/******/ 			var ret = {};
/******/ 			ret[webpackQueues] = x => {};
/******/ 			ret[webpackExports] = dep;
/******/ 			return ret;
/******/ 		}));
/******/ 		__webpack_require__.a = (module, body, hasAwait) => {
/******/ 			var queue;
/******/ 			hasAwait && ((queue = []).d = -1);
/******/ 			var depQueues = new Set();
/******/ 			var exports = module.exports;
/******/ 			var currentDeps;
/******/ 			var outerResolve;
/******/ 			var reject;
/******/ 			var promise = new Promise((resolve, rej) => {
/******/ 				reject = rej;
/******/ 				outerResolve = resolve;
/******/ 			});
/******/ 			promise[webpackExports] = exports;
/******/ 			promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {}));
/******/ 			module.exports = promise;
/******/ 			body((deps) => {
/******/ 				currentDeps = wrapDeps(deps);
/******/ 				var fn;
/******/ 				var getResult = () => (currentDeps.map((d) => {
/******/ 					if(d[webpackError]) throw d[webpackError];
/******/ 					return d[webpackExports];
/******/ 				}))
/******/ 				var promise = new Promise((resolve) => {
/******/ 					fn = () => (resolve(getResult));
/******/ 					fn.r = 0;
/******/ 					var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));
/******/ 					currentDeps.map((dep) => (dep[webpackQueues](fnQueue)));
/******/ 				});
/******/ 				return fn.r ? promise : getResult();
/******/ 			}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));
/******/ 			queue && queue.d < 0 && (queue.d = 0);
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module is referenced by other modules so it can't be inlined
/******/ 	var __webpack_exports__ = __webpack_require__(279);
/******/ 	
/******/ 	return __webpack_exports__;
/******/ })()
;
});