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

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

(function webpackUniversalModuleDefinition(root, factory) {
	if(true)
		module.exports = factory();
	else { var i, a; }
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __nested_webpack_require_538__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_538__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__nested_webpack_require_538__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__nested_webpack_require_538__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__nested_webpack_require_538__.d = function(exports, name, getter) {
/******/ 		if(!__nested_webpack_require_538__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__nested_webpack_require_538__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__nested_webpack_require_538__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __nested_webpack_require_538__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__nested_webpack_require_538__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_538__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__nested_webpack_require_538__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__nested_webpack_require_538__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__nested_webpack_require_538__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__nested_webpack_require_538__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __nested_webpack_require_538__(__nested_webpack_require_538__.s = 78);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (useSourceMap) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = cssWithMappingToString(item, useSourceMap);

      if (item[2]) {
        return "@media ".concat(item[2], " {").concat(content, "}");
      }

      return content;
    }).join('');
  }; // import a list of modules into the list
  // eslint-disable-next-line func-names


  list.i = function (modules, mediaQuery, dedupe) {
    if (typeof modules === 'string') {
      // eslint-disable-next-line no-param-reassign
      modules = [[null, modules, '']];
    }

    var alreadyImportedModules = {};

    if (dedupe) {
      for (var i = 0; i < this.length; i++) {
        // eslint-disable-next-line prefer-destructuring
        var id = this[i][0];

        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }

    for (var _i = 0; _i < modules.length; _i++) {
      var item = [].concat(modules[_i]);

      if (dedupe && alreadyImportedModules[item[0]]) {
        // eslint-disable-next-line no-continue
        continue;
      }

      if (mediaQuery) {
        if (!item[2]) {
          item[2] = mediaQuery;
        } else {
          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
        }
      }

      list.push(item);
    }
  };

  return list;
};

function cssWithMappingToString(item, useSourceMap) {
  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring

  var cssMapping = item[3];

  if (!cssMapping) {
    return content;
  }

  if (useSourceMap && typeof btoa === 'function') {
    var sourceMapping = toComment(cssMapping);
    var sourceURLs = cssMapping.sources.map(function (source) {
      return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */");
    });
    return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  }

  return [content].join('\n');
} // Adapted from convert-source-map (MIT)


function toComment(sourceMap) {
  // eslint-disable-next-line no-undef
  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
  return "/*# ".concat(data, " */");
}

/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function (url, options) {
  if (!options) {
    // eslint-disable-next-line no-param-reassign
    options = {};
  } // eslint-disable-next-line no-underscore-dangle, no-param-reassign


  url = url && url.__esModule ? url.default : url;

  if (typeof url !== 'string') {
    return url;
  } // If url is already wrapped in quotes, remove them


  if (/^['"].*['"]$/.test(url)) {
    // eslint-disable-next-line no-param-reassign
    url = url.slice(1, -1);
  }

  if (options.hash) {
    // eslint-disable-next-line no-param-reassign
    url += options.hash;
  } // Should url be wrapped?
  // See https://drafts.csswg.org/css-values-3/#urls


  if (/["'() \t\n]/.test(url) || options.needQuotes) {
    return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, '\\n'), "\"");
  }

  return url;
};

/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_7518__) {

"use strict";
__nested_webpack_require_7518__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogICAgPGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIwIiB4MT0iNSIgeTE9IjUiIHgyPSI5NSIgeTI9Ijk1Ii8+CiAgICA8bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMjAiIHgxPSI5NSIgeTE9IjUiIHgyPSI1IiB5Mj0iOTUiLz4KPC9zdmc+Cg==");

/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_8162__) {

"use strict";
__nested_webpack_require_8162__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogICAgPGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZWVlIiBzdHJva2Utd2lkdGg9IjIwIiB4MT0iNSIgeTE9IjUiIHgyPSI5NSIgeTI9Ijk1Ii8+CiAgICA8bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiNlZWUiIHN0cm9rZS13aWR0aD0iMjAiIHgxPSI5NSIgeTE9IjUiIHgyPSI1IiB5Mj0iOTUiLz4KPC9zdmc+Cg==");

/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_8798__) {

"use strict";
__nested_webpack_require_8798__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMzUgMzYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTY0LjAwMDAwMCwgLTIxOS4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDAuMDAwMDAwLCAxOTAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNC41MDAwMDAsIDI5LjQxNDA2MikiPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC40NTM2NTYsIDAuMjI2ODI4KSI+CiAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMTYuNzE1NzQ5MiwwIEMxMS40OTA5MTk1LDAgNS4xODg0Njg3NywxLjI2NTU4MzUxIDUuMTI2MjAxMTRlLTA2LDQuMDUxMjIyMzkgQzUuMTI2MjAxMTRlLTA2LDEwLjA2NzQ0OTUgLTAuMDcxNjEzNjMyNCwyNS4wNTU2OTI1IDE2LjcxNTc0OTIsMzUuMjk2Njc5OCBDMzMuNTAzNDgzLDI1LjA1NTY5MjUgMzMuNDMyMjM1NCwxMC4wNjc0NDk1IDMzLjQzMjIzNTQsNC4wNTEyMjIzOSBDMjguMjQzNDAwNiwxLjI2NTU4MzUxIDIxLjk0MDk0OTksMCAxNi43MTU3NDkyLDAgTDE2LjcxNTc0OTIsMCBaIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJQYXRoIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IiM2OEJDNzEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi42OTg2NzQzLDM1LjI4NjI1ODIgQy0wLjA3MTU2NTA2MDUsMjUuMDQ1NTI2OCA1LjEyNjIwMTEzZS0wNiwxMC4wNjU0MDkxIDUuMTI2MjAxMTNlLTA2LDQuMDUxMjIyMzkgQzUuMTgyODE4MDIsMS4yNjg2MTczNCAxMS40NzcxOTI5LDAuMDAyNzU4NDkxMjQgMTYuNjk4Njc0Myw0LjUwMzc4MzExZS0wNiBMMTYuNjk4Njc0MywzNS4yODYyNjE3IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgZmlsbD0iIzY3QjI3OSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMTYuMTA2MDI0NywyMy41NTEwOTQgTDI2LjIxNDMxNTUsOS41MTgwMTg2OSBDMjUuNDczNjAwNSw4LjkwNjQ3MjQ5IDI0LjgyMzg4NzYsOS4zMzgwODkxNiAyNC40NjYyMjgxLDkuNjcyMjQ0IEwyNC40NTMxNzc0LDkuNjczMzE1MDEgTDE2LjAyNDg5ODcsMTguNzA0NDIwOCBMMTIuODQ5MzQ3NywxNC43NjgxMDUzIEMxMS4zMzQ0MDkxLDEyLjk2NTI0IDkuMjc0ODY4NjYsMTQuMzQwNDE1NyA4Ljc5Mzc1NjYyLDE0LjcwMzg0NDggTDE2LjEwNjAyNDcsMjMuNTUxMDk0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IkZpbGwtMTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K");

/***/ }),
/* 5 */
/***/ (function(module) {

module.exports = JSON.parse("[{\"project_id\":\"adguard-assistant\",\"base_locale\":\"en\",\"languages\":{\"en\":\"English\",\"ar\":\"Arabic\",\"be\":\"Belarusian\",\"cs\":\"Czech\",\"da\":\"Danish\",\"de\":\"German\",\"es\":\"Spanish\",\"fa\":\"Persian\",\"fi\":\"Finnish\",\"fr\":\"French\",\"he\":\"Hebrew\",\"id\":\"Indonesian\",\"it\":\"Italian\",\"ja\":\"Japanese\",\"ko\":\"Korean\",\"lt\":\"Lithuanian\",\"no\":\"Norwegian\",\"pl\":\"Polish\",\"pt-BR\":\"Portuguese (Brazil)\",\"pt-PT\":\"Portuguese\",\"ru\":\"Russian\",\"sk\":\"Slovak\",\"sl\":\"Slovenian\",\"sr\":\"Serbian (latin)\",\"sv\":\"Swedish\",\"tr\":\"Turkish\",\"uk\":\"Ukrainian\",\"zh-CN\":\"Chinese Simplified (mainland China)\",\"zh-TW\":\"Chinese Traditional (Taiwan)\",\"hi\":\"Hindi\",\"hr\":\"Croatian\"},\"localizable_files\":[\"locales/en/messages.json\",\"locales/en/messages.meta.json\"]}]");

/***/ }),
/* 6 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"adguard-alert adguard-assistant-button-fixed adguard-assistant-button-main-logo\"></div> ";
// Exports
module.exports = code;

/***/ }),
/* 7 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main\"> <div class=\"close\"></div> <div class=\"menu-head\"> <div class=\"menu-head_title\"> <span class=\"menu-head_name\"></span> <div class=\"confidence-indication wot-hide\"> <a class=\"wot-indicator wot-hide\" target=\"_blank\" href=\"http://adguard.com/wot-scorecard.html?domain=habrahabr.ru\"> <i id=\"WotIndication\" class=\"adg-wot tooltip\" data-title=\"Site reputation indicator\"></i> </a> <i id=\"ConfidenceIndication\" class=\"adg-wot-confidence tooltip\" data-title=\"Reputation Confidence Level\"></i> </div> </div> <div class=\"menu-head_text wot-hide\" id=\"WotDescriptionText\"></div> </div> <div class=\"menu-filter\"> <div i18n=\"menu_filtration_status\" class=\"menu-filter_lbl\"> </div> <div class=\"menu-filter_val\"> <input type=\"checkbox\" class=\"menu-filter_input\" id=\"is-filter\"> <label for=\"is-filter\" class=\"menu-filter_label\"></label> </div> </div> <div class=\"menu\"> <div id=\"do-not-block-30-sec\" class=\"menu__btn menu__btn--clock\" i18n=\"menu_do_not_filter_30_sec\"></div> <div id=\"block-ad\" class=\"menu__btn menu__btn--landscape\" i18n=\"menu_block_ad_on_site\"></div> <div id=\"report-abuse\" class=\"menu__btn menu__btn--report\" i18n=\"menu_report_abuse\"></div> <div id=\"site-report\" class=\"menu__btn menu__btn--security\" i18n=\"menu_site_report\"></div> <div id=\"assistant-settings\" class=\"menu__btn menu__btn--settings\" i18n=\"menu_settings\"></div> </div> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 8 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main adguard_sg_ignore\"> <div class=\"close adg-close\" id=\"close-button\"></div> <div class=\"head\" id=\"drag-handle\"> <div i18n=\"assistant_select_element\" class=\"head_title\"></div> <div i18n=\"assistant_select_element_ext\" class=\"head_text\"></div> </div> <div class=\"foot\"> <button i18n=\"assistant_select_element_cancel\" type=\"button\" class=\"btn btn-default\" id=\"cancel-select-mode\"></button> </div> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 9 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main\"> <div class=\"close\"></div> <div class=\"head\"> <div i18n=\"assistant_settings\" class=\"head_title\"></div> <div i18n=\"settings_choose_size_and_position\" class=\"head_text head_text--mobile-h\"></div> </div> <div class=\"content\"> <div class=\"settings settings__horizontal\"> <div class=\"settings_fieldset\"> <div i18n=\"settings_position_save\" class=\"settings_fieldset_lbl\"></div> <div class=\"settings_fieldset_val\"> <div class=\"position-save\"> <div class=\"position-save_group\"> <div class=\"position-save_field\"> <input class=\"form-ui-control\" id=\"all-site\" type=\"radio\" name=\"position-save\"> <label class=\"form-ui\" for=\"all-site\"> <span i18n=\"settings_position_save_all\" class=\"form-ui-txt\"></span> </label> </div> <div class=\"position-save_field\"> <input class=\"form-ui-control\" id=\"this-site\" type=\"radio\" name=\"position-save\"> <label class=\"form-ui\" for=\"this-site\"> <span i18n=\"settings_position_save_this\" class=\"form-ui-txt\"></span> </label> </div> </div> </div> </div> </div> <div class=\"settings_fieldset\"> <div i18n=\"settings_icon_size\" class=\"settings_fieldset_lbl\"></div> <div class=\"settings_fieldset_val\"> <div class=\"choice-size\"> <div class=\"choice-size_group\"> <div class=\"choice-size_field\"> <input class=\"choice-size_input form-ui-control\" id=\"size-small\" type=\"radio\" name=\"radio\"> <label class=\"form-ui\" for=\"size-small\"> <span i18n=\"settings_small\" class=\"form-ui-txt\"></span> </label> <div class=\"adguard-assistant-button-main-logo choice-size_logo logo__small\"></div> </div> <div class=\"choice-size_field\"> <input class=\"choice-size_input form-ui-control\" id=\"size-big\" type=\"radio\" name=\"radio\"> <label class=\"form-ui\" for=\"size-big\"> <span i18n=\"settings_big\" class=\"form-ui-txt\"></span> </label> <div class=\"adguard-assistant-button-main-logo choice-size_logo\"></div> </div> </div> </div> </div> </div> <div class=\"settings_fieldset\"> <div i18n=\"settings_position\" class=\"settings_fieldset_lbl settings_fieldset_lbl__pos\"></div> <div class=\"settings_fieldset_val\"> <div class=\"change-position\"> <div class=\"change-position_i\"> <input type=\"radio\" name=\"position\" class=\"change-position_input\" id=\"position-top-left\"> <label class=\"change-position_label\" for=\"position-top-left\"> <span class=\"s-position-arr-top-left\"></span> </label> <div i18n=\"settings_left_top\" class=\"change-position_val\"></div> </div> <div class=\"change-position_i\"> <input type=\"radio\" name=\"position\" class=\"change-position_input\" id=\"position-top-right\"> <label class=\"change-position_label\" for=\"position-top-right\"> <span class=\"s-position-arr-top-right\"></span> </label> <div i18n=\"settings_right_top\" class=\"change-position_val\"></div> </div> <div class=\"change-position_i\"> <input type=\"radio\" name=\"position\" class=\"change-position_input\" id=\"position-bottom-left\"> <label class=\"change-position_label\" for=\"position-bottom-left\"> <span class=\"s-position-arr-bottom-left\"></span> </label> <div i18n=\"settings_left_bottom\" class=\"change-position_val\"></div> </div> <div class=\"change-position_i\"> <input type=\"radio\" name=\"position\" class=\"change-position_input\" id=\"position-bottom-right\"> <label class=\"change-position_label\" for=\"position-bottom-right\"> <span class=\"s-position-arr-bottom-right\"></span> </label> <div i18n=\"settings_right_bottom\" class=\"change-position_val\"></div> </div> </div> </div> </div> </div> </div> <div class=\"foot\"> <div class=\"foot_action\"> <div class=\"foot_action_btn\"> <button i18n=\"settings_cancel\" class=\"btn btn-default\" type=\"button\" id=\"cancel\"></button> <button i18n=\"settings_save\" class=\"btn btn-primary\" type=\"button\" id=\"save-settings\"></button> </div> </div> <div class=\"cf\"></div> </div> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 10 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main\"> <div class=\"close adg-close\"></div> <div class=\"head head--slider\"> <div class=\"head_in head_in--slider\"> <div i18n=\"assistant_block_element\" class=\"head_title head_title--slider\" id=\"head_title\"></div> <div class=\"element-rule_more element-rule_more--mobile\"> <span class=\"element-rule_expand-link\" id=\"ExtendedSettingsText\"></span> <button i18n=\"assistant_block\" type=\"button\" class=\"btn btn-cancel\" id=\"adg-accept\"></button> <button i18n=\"assistant_another_element\" type=\"button\" class=\"btn btn-default\" id=\"adg-cancel\"></button> </div> </div> <div class=\"adg-slide-btns\"> <div class=\"adg-slide-btn adg-slide-btn--minus\"></div> <div class=\"adg-slide-btn adg-slide-btn--plus\"></div> </div> <div i18n=\"assistant_block_element_explain\" class=\"head_text head_text--mobile-h\" id=\"head_text\"></div> </div> <div class=\"content\" id=\"slider-area\"> <div class=\"element-rule element-rule--slider\"> <div i18n=\"assistant_slider_explain\" class=\"element-rule_text element-rule_text--slider\"></div> <div class=\"element-rule_slider\"> <div class=\"adg-slide\" id=\"slider\"> <div class=\"adg-slide-clue-max\">MAX</div> <div class=\"adg-slide-clue-min\">MIN</div> </div> </div> <div class=\"element-rule_more\"> <span class=\"element-rule_expand-link\" id=\"ExtendedSettingsText\"> <span i18n=\"assistant_extended_settings\" class=\"element-rule_expand-link_txt\"></span> <span class=\"element-rule_expand-link_arr\"></span> </span> </div> <div class=\"element-rule_form\" id=\"advanced-settings\"> <div class=\"element-rule_form-cont\"> <div class=\"element-rule_fieldset\" id=\"one-domain-checkbox-block\"> <input class=\"form-ui-control\" id=\"one-domain-checkbox\" type=\"checkbox\"/> <label for=\"one-domain-checkbox\" class=\"form-ui\"> <span i18n=\"assistant_apply_rule_to_all_sites\" class=\"form-ui-txt\"></span> </label> </div> <div style=\"display:none\" class=\"element-rule_fieldset\" id=\"block-by-url-checkbox-block\"> <input class=\"form-ui-control\" id=\"block-by-url-checkbox\" type=\"checkbox\"/> <label for=\"block-by-url-checkbox\" class=\"form-ui\"> <span i18n=\"assistant_block_by_reference\" class=\"form-ui-txt\"></span> </label> </div> <div style=\"display:none\" class=\"element-rule_fieldset\" id=\"block-similar-checkbox-block\"> <input class=\"form-ui-control\" id=\"block-similar-checkbox\" type=\"checkbox\"/> <label for=\"block-similar-checkbox\" class=\"form-ui\"> <span i18n=\"assistant_block_similar\" class=\"form-ui-txt\"></span> </label> </div> <div class=\"element-rule_fieldset\"> <input class=\"form-control\" id=\"filter-rule\" type=\"text\"/> </div> </div> </div> </div> </div> <div class=\"foot foot--slider\"> <button i18n=\"assistant_another_element\" type=\"button\" class=\"btn btn-default btn-another-el\" id=\"adg-cancel\"></button> <div class=\"foot_action\"> <div class=\"foot_action_btn\"> <button i18n=\"assistant_preview\" type=\"button\" class=\"btn btn-primary\" id=\"adg-preview\"></button> <button i18n=\"assistant_block\" type=\"button\" class=\"btn btn-cancel\" id=\"adg-accept\"></button> </div> </div> </div> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 11 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main\"> <div class=\"close\"></div> <div class=\"head\"> <div i18n=\"assistant_preview_header\" class=\"head_title\"> </div> <div i18n=\"assistant_preview_header_info\" class=\"head_text\"> </div> </div> <div class=\"foot\"> <button i18n=\"assistant_another_element\" class=\"btn btn-default\" id=\"select-another-element\" type=\"button\"></button> <div class=\"foot_action\"> <div class=\"foot_action_btn\"> <button i18n=\"assistant_preview_end\" class=\"btn btn-primary\" id=\"end-preview\" type=\"button\"></button> <button i18n=\"assistant_block\" class=\"btn btn-cancel\" id=\"block-element\" type=\"button\"></button> </div> </div> </div> </div>";
// Exports
module.exports = code;

/***/ }),
/* 12 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main mobile main-popup\"> <div class=\"main-popup__logo adguard-assistant-button-main-logo\"></div> <h2 class=\"mobile-title main-popup__title\" i18n=\"assistant_select_element\"></h2> <div class=\"content main-popup__content\" i18n=\"assistant_select_element_text\"></div> <div class=\"footer\"> <button i18n=\"assistant_select_element_start\" class=\"btn btn-active start-select-mode main-popup__btn main-popup__btn--green\"></button> <button i18n=\"assistant_select_element_cancel\" class=\"btn cancel-select-mode main-popup__btn\"></button> </div> <i class=\"main-version\" id=\"appVersion\"></i> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 13 */
/***/ (function(module, exports) {

// Module
var code = "<div class=\"main mobile main-menu\"> <button i18n-title=\"close\" class=\"adg-close main-menu__btn main-menu__btn--close\">close</button> <button i18n-title=\"minus\" class=\"adg-minus main-menu__btn main-menu__btn--minus\">minus</button> <button i18n-title=\"plus\" class=\"adg-plus main-menu__btn main-menu__btn--plus\">plus</button> <button i18n-title=\"assistant_preview\" class=\"adg-preview main-menu__btn main-menu__btn--preview\">preview</button> <button i18n-title=\"assistant_block\" class=\"adg-accept main-menu__btn main-menu__btn--accept\">accept</button> </div> ";
// Exports
module.exports = code;

/***/ }),
/* 14 */
/***/ (function(module, exports, __nested_webpack_require_24127__) {


        var result = __nested_webpack_require_24127__(20);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 15 */
/***/ (function(module, exports, __nested_webpack_require_24411__) {


        var result = __nested_webpack_require_24411__(21);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 16 */
/***/ (function(module, exports, __nested_webpack_require_24695__) {


        var result = __nested_webpack_require_24695__(22);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 17 */
/***/ (function(module, exports, __nested_webpack_require_24979__) {


        var result = __nested_webpack_require_24979__(37);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 18 */
/***/ (function(module, exports, __nested_webpack_require_25263__) {


        var result = __nested_webpack_require_25263__(38);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 19 */
/***/ (function(module) {

module.exports = JSON.parse("{\"a\":\"4.3.61\"}");

/***/ }),
/* 20 */
/***/ (function(module, exports, __nested_webpack_require_25645__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __nested_webpack_require_25645__(0);
var ___CSS_LOADER_GET_URL_IMPORT___ = __nested_webpack_require_25645__(1);
var ___CSS_LOADER_URL_IMPORT_0___ = __nested_webpack_require_25645__(2);
var ___CSS_LOADER_URL_IMPORT_1___ = __nested_webpack_require_25645__(3);
exports = ___CSS_LOADER_API_IMPORT___(false);
var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);
// Module
exports.push([module.i, "/*! normalize.css v3.0.1 | MIT License | git.io/normalize */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\nhtml {\n  font-family: sans-serif;\n  /* 1 */\n  -ms-text-size-adjust: 100%;\n  /* 2 */\n  -webkit-text-size-adjust: 100%;\n  /* 2 */\n}\n/**\n * Remove default margin.\n */\nbody {\n  margin: 0;\n}\n/* HTML5 display definitions\n========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  /* 1 */\n  vertical-align: baseline;\n  /* 2 */\n}\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n  display: none;\n}\n/* Links\n========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n  background: transparent;\n}\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\na:active,\na:hover {\n  outline: 0;\n}\n/* Text-level semantics\n========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n  font-weight: bold;\n}\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n  font-style: italic;\n}\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n  background: #ff0;\n  color: #000;\n}\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n  font-size: 80%;\n}\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\n/* Embedded content\n========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n  border: 0;\n}\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n  overflow: hidden;\n}\n/* Grouping content\n========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n  margin: 1em 40px;\n}\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n/**\n * Contain overflow in all browsers.\n */\npre {\n  overflow: auto;\n}\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n/* Forms\n========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  /* 1 */\n  font: inherit;\n  /* 2 */\n  margin: 0;\n  /* 3 */\n}\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n  overflow: visible;\n}\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n  text-transform: none;\n}\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  /* 2 */\n  cursor: pointer;\n  /* 3 */\n}\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n  line-height: normal;\n}\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n *    (include `-moz` to future-proof).\n */\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  /* 1 */\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box;\n  /* 2 */\n  box-sizing: content-box;\n}\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n  border: 0;\n  /* 1 */\n  padding: 0;\n  /* 2 */\n}\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n  overflow: auto;\n}\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n  font-weight: bold;\n}\n/* Tables\n========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\ntd,\nth {\n  padding: 0;\n}\n* {\n  box-sizing: border-box;\n}\n*:after,\n*:before {\n  box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  position: relative;\n  font-size: 1.3rem;\n  line-height: 1.42857143;\n  background-color: #e6e6e6;\n  font-family: \"Open Sans\", Arial, sans-serif;\n  font-weight: 400;\n  overflow-y: hidden;\n}\nbutton,\ninput,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n  outline: none;\n  border-radius: 0;\n  box-shadow: none;\n}\na {\n  color: #36ba53;\n  text-decoration: underline;\n  outline: 0;\n}\na:hover {\n  color: #257f39;\n  text-decoration: underline;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n  max-width: 100%;\n}\nform {\n  margin: 0;\n}\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 1.57142857;\n  font-size: 21px;\n  line-height: inherit;\n  border: 0;\n}\nlabel {\n  display: inline-block;\n}\ninput[type=\"search\"] {\n  box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  display: none;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 40px;\n  padding: 6px 15px 4px;\n  font-size: 14px;\n  line-height: 22px;\n  box-shadow: inset 0 3px 3px rgba(0, 0, 0, 0.04);\n}\n.form-control:focus {\n  border-color: #8c8c8c;\n  outline: 0;\n}\n.form-control::-moz-placeholder {\n  color: #777777;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #777777;\n}\n.form-control::-webkit-input-placeholder {\n  color: #777777;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n  background-color: #fff;\n  opacity: 1;\n}\ntextarea.form-control {\n  height: auto;\n}\n/*\n.fieldset.error{\n    .form-control{\n        border-color: @state-danger-text;\n        .placeholder(@state-danger-text);\n    }\n}\n*/\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  line-height: 22px;\n}\n.form-group {\n  margin: 23px 0 0;\n}\n.form-group:first-child {\n  margin-top: 0;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n@font-face {\n    font-family: 'Open Sans';\n    src: url('data:application/font-woff;base64, ') format('woff');\n    font-weight: normal;\n    font-style: normal;\n}\n\n@font-face {\n    font-family: 'Open Sans';\n    src: url('data:application/font-woff;base64, ') format('woff');\n    font-weight: 600;\n    font-style: normal;\n}\n\n@font-face {\n    font-family: 'Open Sans';\n    src: url('data:application/font-woff;base64, ') format('woff');\n    font-weight: bold;\n    font-style: normal;\n}\n\n.weight-regular {\n  font-family: \"Open Sans\", Arial, sans-serif;\n  font-weight: 400;\n}\n.weight-medium {\n  font-family: \"Open Sans\", Arial, sans-serif;\n  font-weight: 600;\n}\n.weight-bold {\n  font-family: \"Open Sans\", Arial, sans-serif;\n  font-weight: 700;\n}\n.form-ui {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  margin: 0;\n  line-height: 20px;\n  font-weight: 400;\n  cursor: pointer;\n}\n.form-ui-control {\n  position: absolute;\n  top: -9999px;\n  left: -9999px;\n  width: 0;\n  height: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  outline: 0 none;\n}\n.form-ui-txt {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  padding: 2px 0 0 30px;\n}\n.form-ui-txt:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 22px;\n  height: 22px;\n}\n.form-ui-txt:after {\n  content: '';\n  position: absolute;\n}\ninput[type=\"radio\"] + .form-ui .form-ui-txt:before {\n  border: 1px solid #cfcfcf;\n  border-radius: 50%;\n}\ninput[type=\"radio\"] + .form-ui .form-ui-txt:after {\n  top: 7px;\n  left: 7px;\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n}\ninput[type=\"radio\"]:disabled + .form-ui .form-ui-txt:before {\n  background: #f2f2f2;\n  opacity: 0.6;\n}\ninput[type=\"radio\"]:disabled + .form-ui .form-ui-txt:after {\n  opacity: 0.6;\n}\ninput[type=\"checkbox\"] + .form-ui .form-ui-txt:after {\n  top: 7px;\n  left: 5px;\n  width: 13px;\n  height: 6px;\n  border-bottom: 2px solid transparent;\n  border-left: 2px solid transparent;\n  transform: rotate(-45deg);\n}\ninput[type=\"checkbox\"]:disabled + .form-ui .form-ui-txt:before {\n  opacity: 0.6;\n}\ninput[type=\"checkbox\"]:disabled + .form-ui .form-ui-txt:after {\n  opacity: 0.6;\n}\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  padding: 10px 20px;\n  font-size: 13px;\n  line-height: 18px;\n  text-align: center;\n  text-decoration: none;\n  vertical-align: middle;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  user-select: none;\n}\n.btn:hover {\n  color: #000;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  outline: none;\n}\n.btn:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 1px #fff;\n}\n.btn[disabled],\n.btn.disabled {\n  cursor: default;\n  box-shadow: none;\n  opacity: 0.5;\n  pointer-events: none;\n}\n.btn-default {\n  border-color: #58595b;\n  background: #58595b;\n  color: #fff;\n}\n.btn-default:hover {\n  border-color: #717275;\n  background: #717275;\n  color: #fff;\n}\n.btn-default.active,\n.btn-default:active {\n  border-color: #717275;\n  background: #717275;\n}\n.btn-default.disabled,\n.btn-default[disabled] {\n  border-color: #58595b;\n  background: #58595b;\n}\n@media (max-width: 320px) {\n  .btn-another-el {\n    font-size: 9px;\n    padding-left: 0;\n    padding-right: 0;\n    background-color: transparent;\n    border: 0;\n    color: #000;\n  }\n  .btn-another-el:hover {\n    border-color: transparent;\n    background: transparent;\n    color: #000;\n  }\n}\n.btn-lg {\n  font-size: 20px;\n  padding: 14px 24px 12px;\n}\n.btn-sm {\n  font-size: 16px;\n  padding-top: 14px;\n  padding-bottom: 14px;\n}\n.btn-xs {\n  font-size: 14px;\n  padding-top: 12px;\n  padding-bottom: 12px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-left: 0;\n  padding-right: 0;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.btn-upload {\n  position: relative;\n  overflow: hidden;\n}\n.btn-upload input[type=file] {\n  position: absolute;\n  top: 0;\n  right: 0;\n  margin: 0;\n  font-size: 600%;\n  line-height: 600%;\n  width: auto;\n  height: auto;\n  opacity: 0;\n  cursor: pointer;\n}\n@media (prefers-color-scheme: light) {\n  body {\n    color: #282828;\n  }\n  .main {\n    background: #ffffff;\n  }\n  .main-popup__btn {\n    background: #ffffff;\n    border: 1px solid #cfcfcf;\n  }\n  .main-popup__btn:hover {\n    background-color: #efefef;\n  }\n  .main-menu__btn {\n    background-color: #ffffff;\n  }\n  .main-menu__btn:hover {\n    background-color: #efefef;\n  }\n  .main-menu__btn:active,\n  .main-menu__btn.active {\n    background-color: #f3f3f3;\n  }\n  .main-version {\n    color: #dfdfdf;\n  }\n  .head_title {\n    color: #343434;\n  }\n  .head_text {\n    color: #343434;\n  }\n  .element-rule_expand-link_txt {\n    color: #36ba53;\n    border-bottom: 1px solid #36ba53;\n  }\n  .element-rule_expand-link:hover .element-rule_expand-link_txt {\n    color: #36ba53;\n    border-bottom-color: #36ba53;\n  }\n  .element-rule_form-cont {\n    border-top: 1px solid #e0dfdb;\n    background: #f4f4ef;\n  }\n  .tick {\n    border: 20px solid #ffffff;\n    border-left: 1px solid #ffffff;\n    border-right: 1px solid #ffffff;\n  }\n  .close {\n    background: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") no-repeat 0 0 / cover;\n    opacity: 0.6;\n  }\n  .close:hover {\n    opacity: 0.8;\n  }\n  .form-control {\n    color: #343434;\n    background: #ffffff;\n    border: 1px solid #cfcfcf;\n  }\n  input[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n    border: 1px solid #cfcfcf;\n    background: #ffffff;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n    border: 1px solid #36ba53;\n    background: #36ba53;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n    border-bottom-color: #ffffff;\n    border-left-color: #ffffff;\n  }\n  .menu,\n  .menu-filter,\n  .content,\n  .foot {\n    border-top: 1px solid #e0dfdb;\n  }\n  .settings_fieldset {\n    border-top: 1px solid #e0dfdb;\n  }\n  .btn-primary {\n    border-color: #36ba53;\n    background: #36ba53;\n    color: #fff;\n  }\n  .btn-primary:hover {\n    border-color: #30a64a;\n    background: #30a64a;\n    color: #fff;\n  }\n  .btn-primary.active,\n  .btn-primary:active {\n    border-color: #30a64a;\n    background: #30a64a;\n  }\n  .btn-primary.disabled,\n  .btn-primary[disabled] {\n    border-color: #30a64a;\n    background: #30a64a;\n  }\n  .btn-cancel {\n    border-color: #f3523d;\n    background: #f3523d;\n    color: #fff;\n  }\n  .btn-cancel:hover {\n    border-color: #ee290f;\n    background: #ee290f;\n    color: #fff;\n  }\n  .btn-cancel.active,\n  .btn-cancel:active {\n    border-color: #ee290f;\n    background: #ee290f;\n  }\n  .btn-cancel.disabled,\n  .btn-cancel[disabled] {\n    border-color: #ee290f;\n    background: #ee290f;\n  }\n  .ui-slider-handle:after {\n    background: #36ba53;\n  }\n  .change-position_input:checked + .change-position_label {\n    border-color: #36ba53;\n    background: #36ba53;\n  }\n  input[type=\"radio\"] + .form-ui .form-ui-txt:before {\n    background: #ffffff;\n  }\n  input[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n    background: #36ba53;\n  }\n  .menu-head_title {\n    color: #343434;\n  }\n  .menu-head_text {\n    color: #343434;\n  }\n  .menu-filter_handle {\n    background: #ffffff;\n  }\n}\n@media (prefers-color-scheme: dark) {\n  body {\n    color: #ddd;\n  }\n  .main {\n    background: #323232;\n  }\n  .main-popup__btn {\n    background: #323232;\n    border: 1px solid #666;\n  }\n  .main-popup__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn {\n    background-color: #323232;\n  }\n  .main-menu__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn:active,\n  .main-menu__btn.active {\n    background-color: #4d4d4d;\n  }\n  .main-version {\n    color: #444;\n  }\n  .head_title {\n    color: #ccc;\n  }\n  .head_text {\n    color: #ccc;\n  }\n  .element-rule_expand-link_txt {\n    color: #67B279;\n    border-bottom: 1px solid #67B279;\n  }\n  .element-rule_expand-link:hover .element-rule_expand-link_txt {\n    color: #4D995F;\n    border-bottom-color: #4D995F;\n  }\n  .element-rule_form-cont {\n    border-top: 1px solid #444;\n    background: #555;\n  }\n  .tick {\n    border: 20px solid #323232;\n    border-left: 1px solid #323232;\n    border-right: 1px solid #323232;\n  }\n  .close {\n    background: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") no-repeat 0 0 / cover;\n    opacity: 0.7;\n  }\n  .close:hover {\n    opacity: 1;\n  }\n  .form-control {\n    color: #ccc;\n    background: #323232;\n    border: 1px solid #666;\n  }\n  input[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n    border: 1px solid #666;\n    background: #323232;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n    border: 1px solid #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n    border-bottom-color: #323232;\n    border-left-color: #323232;\n  }\n  .menu,\n  .menu-filter,\n  .content,\n  .foot {\n    border-top: 1px solid #444;\n  }\n  .settings_fieldset {\n    border-top: 1px solid #444;\n  }\n  .btn-primary {\n    border-color: #4D995F;\n    background: #4D995F;\n    color: #fff;\n  }\n  .btn-primary:hover {\n    border-color: #39774C;\n    background: #39774C;\n    color: #fff;\n  }\n  .btn-primary.active,\n  .btn-primary:active {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-primary.disabled,\n  .btn-primary[disabled] {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-cancel {\n    border-color: #8E2C13;\n    background: #8E2C13;\n    color: #fff;\n  }\n  .btn-cancel:hover {\n    border-color: #732613;\n    background: #732613;\n    color: #fff;\n  }\n  .btn-cancel.active,\n  .btn-cancel:active {\n    border-color: #732613;\n    background: #732613;\n  }\n  .btn-cancel.disabled,\n  .btn-cancel[disabled] {\n    border-color: #732613;\n    background: #732613;\n  }\n  .ui-slider-handle:after {\n    background: #4D995F;\n  }\n  .change-position_input:checked + .change-position_label {\n    border-color: #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"radio\"] + .form-ui .form-ui-txt:before {\n    background: #323232;\n  }\n  input[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n    background: #4D995F;\n  }\n  .menu-head_title {\n    color: #ccc;\n  }\n  .menu-head_text {\n    color: #ccc;\n  }\n  .menu-filter_handle {\n    background: #323232;\n  }\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),
/* 21 */
/***/ (function(module, exports, __nested_webpack_require_244874__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __nested_webpack_require_244874__(0);
var ___CSS_LOADER_GET_URL_IMPORT___ = __nested_webpack_require_244874__(1);
var ___CSS_LOADER_URL_IMPORT_0___ = __nested_webpack_require_244874__(4);
exports = ___CSS_LOADER_API_IMPORT___(false);
var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
// Module
exports.push([module.i, ":host {\n  display: block!important;\n  position: relative!important;\n  width: 0!important;\n  height: 0!important;\n  margin: 0!important;\n  padding: 0!important;\n  z-index: 2147483647!important;\n}\n:host ::after,\n:host ::before {\n  display: none!important;\n}\n.adguard-assistant-button-main-logo {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") !important;\n}\n.adguard-alert {\n  cursor: pointer;\n  left: 0;\n  top: 0;\n  position: fixed !important;\n  z-index: 2147483647 !important;\n  width: 40px !important;\n  height: 40px !important;\n  zoom: 1 !important;\n  display: inline-block !important;\n  margin: 0 !important;\n  border: 0 !important;\n  padding: 0 !important;\n  will-change: transform;\n  opacity: 1;\n  touch-action: none;\n  -ms-touch-action: none;\n  visibility: visible !important;\n  min-height: auto !important;\n  max-height: auto !important;\n  min-width: auto !important;\n  max-width: auto !important;\n  background-size: 21px!important;\n  background-position: center center!important;\n  background-repeat: no-repeat !important;\n  background-color: #fff !important;\n  border: none !important;\n  box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3) !important;\n  border-radius: 100% !important;\n  transition: background-color 0.3s ease;\n}\n.adguard-alert.sg_hide_element {\n  display: none!important;\n}\n.adguard-alert.logo-small {\n  width: 24px !important;\n  height: 24px !important;\n  background-position: 50% 6px!important;\n  background-size: 14px!important;\n}\n.adguard-alert:hover {\n  background-color: #ccf0d4 !important;\n}\n@media print {\n  .adguard-alert {\n    display: none!important;\n  }\n}\n.adguard-assistant-button-right {\n  left: auto;\n  right: 0;\n}\n.adguard-assistant-button-left {\n  left: 0;\n  right: auto;\n}\n.adguard-assistant-button-top {\n  top: 0;\n  bottom: auto;\n}\n.adguard-assistant-button-bottom {\n  top: auto;\n  bottom: 0;\n}\n.adguard-assistant-button-top.adguard-assistant-button-left {\n  left: 0;\n  right: auto;\n  transform: translate3d(10px, 10px, 0);\n}\n.adguard-assistant-button-top.adguard-assistant-button-right {\n  left: auto;\n  right: 0;\n  transform: translate3d(-10px, 10px, 0);\n}\n.adguard-assistant-button-bottom.adguard-assistant-button-left {\n  left: 0;\n  right: auto;\n  transform: translate3d(10px, -10px, 0);\n}\n.adguard-assistant-button-bottom.adguard-assistant-button-right {\n  left: auto;\n  right: 0;\n  transform: translate3d(-10px, -10px, 0);\n}\n.adguard-assistant-button-bottom.adguard-assistant-button-respect-vk {\n  transform: translate3d(-70px, -5px, 0);\n}\n.adguard-assistant-button-bottom.adguard-assistant-button-respect-fb {\n  transform: translate3d(-5px, -40px, 0);\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),
/* 22 */
/***/ (function(module, exports, __nested_webpack_require_248106__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __nested_webpack_require_248106__(0);
var ___CSS_LOADER_GET_URL_IMPORT___ = __nested_webpack_require_248106__(1);
var ___CSS_LOADER_URL_IMPORT_0___ = __nested_webpack_require_248106__(23);
var ___CSS_LOADER_URL_IMPORT_1___ = __nested_webpack_require_248106__(24);
var ___CSS_LOADER_URL_IMPORT_2___ = __nested_webpack_require_248106__(25);
var ___CSS_LOADER_URL_IMPORT_3___ = __nested_webpack_require_248106__(26);
var ___CSS_LOADER_URL_IMPORT_4___ = __nested_webpack_require_248106__(27);
var ___CSS_LOADER_URL_IMPORT_5___ = __nested_webpack_require_248106__(28);
var ___CSS_LOADER_URL_IMPORT_6___ = __nested_webpack_require_248106__(29);
var ___CSS_LOADER_URL_IMPORT_7___ = __nested_webpack_require_248106__(30);
var ___CSS_LOADER_URL_IMPORT_8___ = __nested_webpack_require_248106__(31);
var ___CSS_LOADER_URL_IMPORT_9___ = __nested_webpack_require_248106__(32);
var ___CSS_LOADER_URL_IMPORT_10___ = __nested_webpack_require_248106__(33);
var ___CSS_LOADER_URL_IMPORT_11___ = __nested_webpack_require_248106__(34);
var ___CSS_LOADER_URL_IMPORT_12___ = __nested_webpack_require_248106__(35);
var ___CSS_LOADER_URL_IMPORT_13___ = __nested_webpack_require_248106__(36);
var ___CSS_LOADER_URL_IMPORT_14___ = __nested_webpack_require_248106__(2);
var ___CSS_LOADER_URL_IMPORT_15___ = __nested_webpack_require_248106__(3);
exports = ___CSS_LOADER_API_IMPORT___(false);
var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);
var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);
var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);
var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);
var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);
var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);
var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);
var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);
var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);
var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);
var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);
var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);
var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);
var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);
var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);
// Module
exports.push([module.i, ".close {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  display: inline-block;\n  vertical-align: top;\n  width: 1em;\n  font-size: 12px;\n  line-height: 1;\n  cursor: pointer;\n  transition: opacity 0.3s ease;\n}\n.close:before {\n  content: \"\\00a0\";\n}\n@media (max-width: 320px) {\n  .close {\n    font-size: 15px;\n    top: 18px;\n    right: 14px;\n  }\n}\n.a-logo {\n  display: inline-block;\n  vertical-align: top;\n  width: 40px;\n  height: 40px;\n  padding: 10px 0 0;\n  font-size: 20px;\n  text-align: center;\n  border: 1px solid #cdcdcd;\n  border-radius: 50%;\n  background: #fff;\n}\n.a-logo__small {\n  width: 24px;\n  height: 24px;\n  font-size: 12px;\n  padding: 6px 0 0;\n}\n.tooltip {\n  position: relative;\n}\n.tooltip:before {\n  display: none;\n  content: attr(data-title);\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  width: 170px;\n  margin: 7px 0 0 -85px;\n  padding: 6px 0 5px;\n  font-size: 10px;\n  font-style: normal;\n  font-weight: 500;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  border-radius: 4px;\n  background: rgba(0, 0, 0, 0.8);\n}\n.tooltip:after {\n  display: none;\n  content: '';\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  margin: 3px 0 0 -4px;\n  border-bottom: 4px solid rgba(0, 0, 0, 0.8);\n  border-left: 4px solid transparent;\n  border-right: 4px solid transparent;\n}\n.tooltip:hover:before,\n.tooltip:hover:after {\n  display: block;\n}\n.main {\n  position: relative;\n}\n.head {\n  padding: 18px 20px;\n  cursor: move;\n}\n.head_title {\n  font-size: 16px;\n  font-weight: 700;\n}\n.head_text {\n  margin: 4px 0 0;\n  font-size: 12px;\n}\n.foot {\n  padding: 20px;\n}\n.foot_action {\n  float: right;\n}\n.foot_action_btn {\n  font-size: 0;\n}\n.foot_action_btn .btn + .btn {\n  margin-left: 10px;\n}\n.foot .cf {\n  clear: right;\n}\n.element-rule {\n  padding: 20px;\n}\n.element-rule_slider {\n  margin: 5px 0 7px;\n  user-select: none;\n}\n@media (max-width: 320px) {\n  .element-rule_slider {\n    display: none;\n  }\n}\n.element-rule_expand-link {\n  font-size: 12px;\n  line-height: 15px;\n  font-weight: 500;\n  cursor: pointer;\n}\n.element-rule_expand-link_txt {\n  display: inline-block;\n  vertical-align: top;\n}\n.element-rule_expand-link_arr {\n  display: inline-block;\n  vertical-align: top;\n  width: 5px;\n  height: 5px;\n  margin: 3px 0 0 3px;\n  border-bottom: 1px solid #91a795;\n  border-left: 1px solid #91a795;\n  transform: rotate(-45deg);\n  transition: 0.2s;\n}\n.element-rule_expand-link.active .element-rule_expand-link_arr {\n  margin-top: 5px;\n  transform: rotate(-225deg);\n}\n.element-rule_form {\n  height: 0;\n  margin: 0 -20px;\n  overflow: hidden;\n}\n.element-rule_form.open {\n  height: auto;\n  margin-bottom: -20px;\n}\n@media (max-width: 320px) {\n  .element-rule_form.open {\n    padding: 20px;\n    padding-top: 0;\n  }\n}\n.element-rule_form-cont {\n  margin: 4px 0 0;\n  padding: 20px;\n}\n@media (max-width: 320px) {\n  .element-rule_form-cont {\n    margin-top: 0;\n  }\n}\n.element-rule_fieldset {\n  margin: 10px 0 0;\n}\n.element-rule_fieldset:first-child {\n  margin: 0;\n}\n.element-rule_more--mobile {\n  display: none;\n}\n@media (max-width: 320px) {\n  .element-rule_more--mobile {\n    display: block;\n  }\n  .element-rule_more--mobile .element-rule_expand-link {\n    display: none;\n  }\n  .element-rule_more--mobile #adg-cancel {\n    width: 106px;\n    padding: 10px 7px;\n  }\n  .element-rule_more--mobile #adg-accept {\n    padding: 10px 6px;\n  }\n}\n.adg-slide {\n  position: relative;\n  width: 500px;\n  height: 44px;\n  margin: auto;\n  transform: translate3d(0, 0, 0);\n}\n.adg-slide-clue-min,\n.adg-slide-clue-max {\n  position: absolute;\n  top: 14px;\n  left: -40px;\n  width: 30px;\n  font-size: 12px;\n  font-weight: 500;\n  color: #8f9b92;\n  cursor: pointer;\n}\n.adg-slide-clue-min {\n  left: auto;\n  right: -40px;\n  text-align: right;\n}\n.adg-slide-btns {\n  display: none;\n}\n.adg-slide-btn {\n  position: relative;\n  width: 36px;\n  height: 36px;\n  border: 2px solid #e2e2e2;\n  border-radius: 2px;\n}\n.adg-slide-btn:after {\n  content: \"\";\n  position: absolute;\n  left: 8px;\n  top: 15.3px;\n  width: 18px;\n  height: 2px;\n  background-color: #4e4e4e;\n  border-radius: 2px;\n}\n.adg-slide-btn--plus {\n  margin-left: 9px;\n}\n.adg-slide-btn--plus:before {\n  content: \"\";\n  position: absolute;\n  left: 16px;\n  top: 8px;\n  height: 17px;\n  width: 2px;\n  background-color: #4e4e4e;\n  border-radius: 2px;\n}\n.ui-slider-handle {\n  position: absolute;\n  top: 22px;\n  z-index: 2;\n  cursor: pointer;\n}\n.ui-slider-handle:before {\n  content: '';\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 30px;\n  height: 30px;\n  margin: -15px 0 0 -15px;\n  background: rgba(0, 0, 0, 0.1);\n  border-radius: 50%;\n  transition: 0.2s;\n}\n.ui-slider-handle:after {\n  content: '';\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 20px;\n  height: 20px;\n  margin: -10px 0 0 -10px;\n  border-radius: 50%;\n}\n.ui-slider-handle:hover:active,\n.ui-slider-handle:hover:before {\n  background: rgba(0, 0, 0, 0.15);\n}\n.tick {\n  position: absolute;\n  height: 44px;\n}\n.settings_fieldset {\n  padding: 20px;\n}\n.settings_fieldset:first-child {\n  border: 0;\n}\n.settings_fieldset_lbl {\n  float: left;\n  width: 126px;\n  margin: 1px 0 0;\n  font-weight: 500;\n}\n.settings_fieldset_lbl__pos {\n  margin-top: 21px;\n}\n.settings_fieldset_val {\n  margin: 0 0 0 126px;\n}\n.choice-size {\n  position: relative;\n  font-size: 14px;\n}\n.choice-size_field {\n  margin: 10px 0 0;\n}\n.choice-size_field:first-child {\n  margin: 0;\n}\n.choice-size_logo {\n  display: none;\n  position: absolute;\n  top: 10px;\n  right: 15px;\n  width: 40px;\n  height: 40px;\n  background-size: 21px;\n  background-position: 50% 11px;\n  background-repeat: no-repeat;\n  background-color: #fff;\n  border: none ;\n  box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3);\n  border-radius: 100% ;\n}\n.choice-size_logo.logo__small {\n  top: 15px;\n  right: 20px;\n  width: 24px;\n  height: 24px;\n  background-position: 50% 6px;\n  background-size: 14px;\n}\n.choice-size_input:checked ~ .choice-size_logo {\n  display: block;\n}\n[class^=\"s-position-arr-\"] {\n  display: block;\n  width: 11px;\n  height: 11px;\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") no-repeat;\n  background-size: 44px 22px;\n}\n.s-position-arr-top-left {\n  background-position: 0 0;\n}\n.s-position-arr-top-right {\n  background-position: -11px 0;\n}\n.s-position-arr-bottom-left {\n  background-position: 0 -11px;\n}\n.s-position-arr-bottom-right {\n  background-position: -11px -11px;\n}\n.change-position {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  width: 70px;\n  margin: -3px 0 0 -3px;\n}\n.change-position_i {\n  float: left;\n  margin: 3px 0 0 3px;\n}\n.change-position_input:checked + .change-position_label .s-position-arr-top-left {\n  background-position: -22px 0;\n}\n.change-position_input:checked + .change-position_label .s-position-arr-top-right {\n  background-position: -33px 0;\n}\n.change-position_input:checked + .change-position_label .s-position-arr-bottom-left {\n  background-position: -22px -11px;\n}\n.change-position_input:checked + .change-position_label .s-position-arr-bottom-right {\n  background-position: -33px -11px;\n}\n.change-position_input:checked ~ .change-position_val {\n  display: block;\n}\n.change-position_label {\n  display: block;\n  width: 32px;\n  height: 32px;\n  margin: 0;\n  padding: 9px 0 0 9px;\n  border: 1px solid #dfdedb;\n  cursor: pointer;\n}\n.change-position_val {\n  display: none;\n  position: absolute;\n  top: 27px;\n  left: 82px;\n  font-size: 12px;\n  white-space: nowrap;\n}\n.position-save .position-save_field {\n  margin-bottom: 10px;\n}\n.wot-indicator {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 5px;\n}\n#WotDescriptionText {\n  white-space: pre-line;\n}\n#WotDescriptionText #WotLogo {\n  cursor: pointer;\n}\n.adg-wot {\n  width: 18px;\n  height: 18px;\n  display: block;\n  border: 5px solid #000;\n  border-radius: 50%;\n}\n.adg-wot-unknown {\n  border-color: #ccc;\n}\n.adg-wot-red {\n  border-color: #b60000;\n}\n.adg-wot-lightRed {\n  border-color: #f21800;\n}\n.adg-wot-yellow {\n  border-color: #fac000;\n}\n.adg-wot-lightGreen {\n  border-color: #69d225;\n}\n.adg-wot-green {\n  border-color: #00ae17;\n}\n.adg-wot-confidence {\n  width: 52px;\n  height: 18px;\n  display: inline-block;\n  vertical-align: middle;\n}\n.adg-wot-confidence-0 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ");\n}\n.adg-wot-confidence-1 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");\n}\n.adg-wot-confidence-2 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ");\n}\n.adg-wot-confidence-3 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ");\n}\n.adg-wot-confidence-4 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_5___ + ");\n}\n.adg-wot-confidence-5 {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_6___ + ");\n}\n.confidence-indication,\n.wot-indicator {\n  text-decoration: none;\n  vertical-align: middle;\n}\n.confidence-indication:hover,\n.wot-indicator:hover {\n  text-decoration: none;\n}\n.confidence-indication {\n  display: inline-block;\n  margin-right: 10px;\n}\n.wot-logo {\n  display: inline-block;\n  vertical-align: top;\n  width: 31px;\n  height: 12px;\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ") no-repeat 0 0 / cover;\n  margin-top: 3px;\n}\n.wot-hide {\n  display: none;\n}\niframe#adguard-assistant-dialog {\n  position: fixed;\n  clip: auto;\n  border-radius: 3px;\n  box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3);\n  z-index: 2147483647;\n  display: block!important;\n}\n.sg_hide_element {\n  display: none!important;\n}\nimg.adguard_sg_selected {\n  border: 5px solid #0F0 !important;\n}\n#_sg_div.sg_top {\n  top: 5px !important;\n}\n#_sg_div.sg_bottom {\n  bottom: 5px !important;\n}\n#_sg_div input {\n  margin-right: 10px !important;\n  font-size: 15px !important;\n}\n#_sg_path_field {\n  width: 400px !important;\n}\n#_sg_div .sg_new_line {\n  clear: both !important;\n}\n#_sg_div .sg_option {\n  float: left !important;\n}\n#_sg_div .adguard_sg_selected_option {\n  text-decoration: underline;\n}\n.adguard-placeholder {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OUM5OUE4MEZEQzUxMUUyOTAzM0EyODQyRjc5QjI2QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OUM5OUE4MUZEQzUxMUUyOTAzM0EyODQyRjc5QjI2QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5Qzk5QTdFRkRDNTExRTI5MDMzQTI4NDJGNzlCMjZDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5Qzk5QTdGRkRDNTExRTI5MDMzQTI4NDJGNzlCMjZDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9rJm9wAAAAZQTFRF2+7g1OfZ+LX/EgAAACtJREFUeNpiYIQABhhA5TIyoHIhfCS1DKhcEB/FJAZG7AYzoNlLLy5AgAEAMigAar6TcqkAAAAASUVORK5CYII=);\n}\n.adguard-placeholder-icon {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAwCAYAAAB9sggoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENkNBQTNGMkZEQzUxMUUyQjVFMkZEMUFFRjlGOEQyMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENkNBQTNGM0ZEQzUxMUUyQjVFMkZEMUFFRjlGOEQyMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ2Q0FBM0YwRkRDNTExRTJCNUUyRkQxQUVGOUY4RDIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ2Q0FBM0YxRkRDNTExRTJCNUUyRkQxQUVGOUY4RDIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+49sbDwAAAl9JREFUeNrMmE0o5VEYxq9vJmpI2SBZjCSNKKGwkDE0m8mg2QwzEtkNCeUjGyVhYTbTUIZEMWmkbCVlw9QkG4mammbK5zAWuLqek3ch3W7v+Z8P/7d+u/cczz3neM7zP0Htg12eR6wUkA+eg2yQDOLAYegjiIkEr0AjyAPRfnp8toW9Be20QoHKa0tYEhgCVdwBNoQVgCmQKjPItLAKMAtiZAeaFFYM5sATJ4ODDYl6BuadijIlLAJMgHiFOWJMbGUfmaZsHYN98Bvs6haWA1olx2yCMfAd/DF1+Psl5rwGPWAYXJn8r3wNXjB7L0ENrZLRwy/m6ZDorw8kSqewUpDL7P0Epm3YRRBoYfbugW5bPpZDK8apTnBqS9h7WjWOLXyz5fxPQSWjz0dWcmPrEhdJNIEprIlW198Z7aUV1SasQWJnAp3Dzw+FqWxlOmV2HeXVecbegHBTYS5YYVy1yejrVJhIpxluFPaB6V1WhSWQTXjcJqyKjFVnhagabBhFFk7tgnPmlp+oChNbmMXM70XgL3Nen6qwj8y+xfv53fQZKweFzN5xW4c/Cgwwe9fAui1hIuBlMntHZOKNirAyiQ+NLbBkw8fEE9IM2QSnBv19I+oWVguWQSxzrnX6EVrqoV2I15kS0AxeSszjo+326hQm3hoSQRqR6mCeL2BV5x0VSjYQojDHNmgzcYn/Uxj/H9SBM7fkMQ951Tuw4aageEMpY8FUHnPy+XZECXbRTUFxhezEqCiZFfsFRnXdg1xhgcT9BF/BJG2htRKiDjx376EX9Md36HoR/NDp5jJ1K8AAcQBmooZhTgQAAAAASUVORK5CYII=);\n  background-position: center center;\n  background-repeat: no-repeat;\n  height: 100%;\n}\n.adguard-placeholder-domain {\n  background: #778b7c;\n  color: #ffffff;\n  left: 0;\n  top: 0;\n  padding: 2px 4px;\n  position: relative;\n}\n@media print {\n  .adguard-alert,\n  #adguard-assistant-dialog {\n    display: none!important;\n    opacity: 0!important;\n    visibility: hidden!important;\n  }\n}\n.menu-head {\n  padding: 18px 20px;\n  cursor: move;\n  touch-action: none;\n  -ms-touch-action: none;\n}\n.menu-head_title {\n  font-size: 16px;\n  font-weight: 700;\n}\n.menu-head_name {\n  display: inline-block;\n  vertical-align: top;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n  max-width: 260px;\n  line-height: 26px;\n  margin: 0 10px 5px 0;\n}\n.menu-head_text {\n  margin: 4px 10px 0 0;\n  font-size: 12px;\n}\n.menu-filter {\n  width: 100%;\n  display: table;\n  padding: 20px;\n}\n.menu-filter_lbl {\n  display: table-cell;\n  vertical-align: middle;\n}\n.menu-filter_val {\n  display: table-cell;\n  vertical-align: middle;\n}\n.menu-filter_label {\n  position: relative;\n  width: 30px;\n  height: 12px;\n  border-radius: 25px;\n  background-color: #ed7865;\n  cursor: pointer;\n  transition: all 0.3s ease;\n  float: right;\n}\n.menu-filter_label:after {\n  content: \"\";\n  cursor: pointer;\n  border-radius: 100%;\n  position: absolute;\n  left: -3px;\n  top: -4px;\n  box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3);\n  width: 20px;\n  height: 20px;\n  background-color: #e85037;\n  transition: all 0.3s ease;\n}\n.menu-filter_handle {\n  position: absolute;\n  width: 20px;\n  height: 20px;\n  top: 1px;\n  left: 1px;\n  border-radius: 4px;\n}\n.menu-filter_input:checked + .menu-filter_label {\n  background-color: #bde5c1;\n}\n.menu-filter_input:checked + .menu-filter_label:after {\n  left: 12px;\n  background-color: #68bc72;\n}\n.menu__btn {\n  position: relative;\n  cursor: pointer;\n  line-height: 45px;\n  height: 45px;\n  background-repeat: no-repeat;\n  background-position: 20px 50%;\n  transition: 0.3s ease;\n  padding: 0 20px 0 60px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.menu__btn:hover {\n  background-color: rgba(104, 188, 113, 0.2);\n}\n.menu__btn--clock {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ");\n  background-size: 16px 19px;\n}\n.menu__btn--landscape {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_9___ + ");\n  background-size: 19px 17px;\n}\n.menu__btn--report {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_10___ + ");\n  background-size: 16px 17px;\n}\n.menu__btn--security {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_11___ + ");\n  background-size: 15px 16px;\n}\n.menu__btn--extensions {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_12___ + ");\n  background-size: 18px;\n}\n.menu__btn--settings {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_13___ + ");\n  background-size: 19px;\n}\n.menu__btn.hidden {\n  display: none;\n}\nbody {\n  color: #282828;\n}\n.main {\n  background: #ffffff;\n}\n.main-popup__btn {\n  background: #ffffff;\n  border: 1px solid #cfcfcf;\n}\n.main-popup__btn:hover {\n  background-color: #efefef;\n}\n.main-menu__btn {\n  background-color: #ffffff;\n}\n.main-menu__btn:hover {\n  background-color: #efefef;\n}\n.main-menu__btn:active,\n.main-menu__btn.active {\n  background-color: #f3f3f3;\n}\n.main-version {\n  color: #dfdfdf;\n}\n.head_title {\n  color: #343434;\n}\n.head_text {\n  color: #343434;\n}\n.element-rule_expand-link_txt {\n  color: #36ba53;\n  border-bottom: 1px solid #36ba53;\n}\n.element-rule_expand-link:hover .element-rule_expand-link_txt {\n  color: #36ba53;\n  border-bottom-color: #36ba53;\n}\n.element-rule_form-cont {\n  border-top: 1px solid #e0dfdb;\n  background: #f4f4ef;\n}\n.tick {\n  border: 20px solid #ffffff;\n  border-left: 1px solid #ffffff;\n  border-right: 1px solid #ffffff;\n}\n.close {\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_14___ + ") no-repeat 0 0 / cover;\n  opacity: 0.6;\n}\n.close:hover {\n  opacity: 0.8;\n}\n.form-control {\n  color: #343434;\n  background: #ffffff;\n  border: 1px solid #cfcfcf;\n}\ninput[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n  border: 1px solid #cfcfcf;\n  background: #ffffff;\n}\ninput[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n  border: 1px solid #36ba53;\n  background: #36ba53;\n}\ninput[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n  border-bottom-color: #ffffff;\n  border-left-color: #ffffff;\n}\n.menu,\n.menu-filter,\n.content,\n.foot {\n  border-top: 1px solid #e0dfdb;\n}\n.settings_fieldset {\n  border-top: 1px solid #e0dfdb;\n}\n.btn-primary {\n  border-color: #36ba53;\n  background: #36ba53;\n  color: #fff;\n}\n.btn-primary:hover {\n  border-color: #30a64a;\n  background: #30a64a;\n  color: #fff;\n}\n.btn-primary.active,\n.btn-primary:active {\n  border-color: #30a64a;\n  background: #30a64a;\n}\n.btn-primary.disabled,\n.btn-primary[disabled] {\n  border-color: #30a64a;\n  background: #30a64a;\n}\n.btn-cancel {\n  border-color: #f3523d;\n  background: #f3523d;\n  color: #fff;\n}\n.btn-cancel:hover {\n  border-color: #ee290f;\n  background: #ee290f;\n  color: #fff;\n}\n.btn-cancel.active,\n.btn-cancel:active {\n  border-color: #ee290f;\n  background: #ee290f;\n}\n.btn-cancel.disabled,\n.btn-cancel[disabled] {\n  border-color: #ee290f;\n  background: #ee290f;\n}\n.ui-slider-handle:after {\n  background: #36ba53;\n}\n.change-position_input:checked + .change-position_label {\n  border-color: #36ba53;\n  background: #36ba53;\n}\ninput[type=\"radio\"] + .form-ui .form-ui-txt:before {\n  background: #ffffff;\n}\ninput[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n  background: #36ba53;\n}\n.menu-head_title {\n  color: #343434;\n}\n.menu-head_text {\n  color: #343434;\n}\n.menu-filter_handle {\n  background: #ffffff;\n}\n@media (prefers-color-scheme: dark) {\n  body {\n    color: #ddd;\n  }\n  .main {\n    background: #323232;\n  }\n  .main-popup__btn {\n    background: #323232;\n    border: 1px solid #666;\n  }\n  .main-popup__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn {\n    background-color: #323232;\n  }\n  .main-menu__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn:active,\n  .main-menu__btn.active {\n    background-color: #4d4d4d;\n  }\n  .main-version {\n    color: #444;\n  }\n  .head_title {\n    color: #ccc;\n  }\n  .head_text {\n    color: #ccc;\n  }\n  .element-rule_expand-link_txt {\n    color: #67B279;\n    border-bottom: 1px solid #67B279;\n  }\n  .element-rule_expand-link:hover .element-rule_expand-link_txt {\n    color: #4D995F;\n    border-bottom-color: #4D995F;\n  }\n  .element-rule_form-cont {\n    border-top: 1px solid #444;\n    background: #555;\n  }\n  .tick {\n    border: 20px solid #323232;\n    border-left: 1px solid #323232;\n    border-right: 1px solid #323232;\n  }\n  .close {\n    background: url(" + ___CSS_LOADER_URL_REPLACEMENT_15___ + ") no-repeat 0 0 / cover;\n    opacity: 0.7;\n  }\n  .close:hover {\n    opacity: 1;\n  }\n  .form-control {\n    color: #ccc;\n    background: #323232;\n    border: 1px solid #666;\n  }\n  input[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n    border: 1px solid #666;\n    background: #323232;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n    border: 1px solid #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n    border-bottom-color: #323232;\n    border-left-color: #323232;\n  }\n  .menu,\n  .menu-filter,\n  .content,\n  .foot {\n    border-top: 1px solid #444;\n  }\n  .settings_fieldset {\n    border-top: 1px solid #444;\n  }\n  .btn-primary {\n    border-color: #4D995F;\n    background: #4D995F;\n    color: #fff;\n  }\n  .btn-primary:hover {\n    border-color: #39774C;\n    background: #39774C;\n    color: #fff;\n  }\n  .btn-primary.active,\n  .btn-primary:active {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-primary.disabled,\n  .btn-primary[disabled] {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-cancel {\n    border-color: #8E2C13;\n    background: #8E2C13;\n    color: #fff;\n  }\n  .btn-cancel:hover {\n    border-color: #732613;\n    background: #732613;\n    color: #fff;\n  }\n  .btn-cancel.active,\n  .btn-cancel:active {\n    border-color: #732613;\n    background: #732613;\n  }\n  .btn-cancel.disabled,\n  .btn-cancel[disabled] {\n    border-color: #732613;\n    background: #732613;\n  }\n  .ui-slider-handle:after {\n    background: #4D995F;\n  }\n  .change-position_input:checked + .change-position_label {\n    border-color: #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"radio\"] + .form-ui .form-ui-txt:before {\n    background: #323232;\n  }\n  input[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n    background: #4D995F;\n  }\n  .menu-head_title {\n    color: #ccc;\n  }\n  .menu-head_text {\n    color: #ccc;\n  }\n  .menu-filter_handle {\n    background: #323232;\n  }\n}\n:host {\n  display: block!important;\n  position: relative!important;\n  width: 0!important;\n  height: 0!important;\n  margin: 0!important;\n  padding: 0!important;\n  z-index: 2147483647!important;\n}\n:host ::after,\n:host ::before {\n  display: none!important;\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),
/* 23 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_274383__) {

"use strict";
__nested_webpack_require_274383__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgd2lkdGg9IjQwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAgMCA0MDAgMjAwIj4KICAgIDxkZWZzPgogICAgICAgIDxnIGlkPSJhcnIiPgogICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE4LjgsODQuNSAxOC44LDMyIDg2LjcsMTAwIDEwMCw4Ni43IDMyLDE4LjggODQuNSwxOC44IDg0LjUsMCAxOC44LDAgMCwwIDAsMTguOAogICAgICAgICAgICAgICAgMCw4NC41IAkiLz4KICAgICAgICA8L2c+CiAgICA8L2RlZnM+CgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjYWJhYmFiIi8+CiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNhYmFiYWIiIHRyYW5zZm9ybT0icm90YXRlKDkwIDEwMCAxMDApIi8+CiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNhYmFiYWIiIHRyYW5zZm9ybT0icm90YXRlKDE4MCAxMDAgMTAwKSIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjYWJhYmFiIiB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgMTAwIDEwMCkiLz4KCiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNmZmYiIHg9IjIwMCIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjZmZmIiB5PSItMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAxMDAgMTAwKSIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjZmZmIiB4PSItMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTAwIDEwMCkiLz4KICAgIDx1c2UgeGxpbms6aHJlZj0iI2FyciIgZmlsbD0iI2ZmZiIgeT0iMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgMTAwIDEwMCkiLz4KPC9zdmc+Cg==");

/***/ }),
/* 24 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_275900__) {

"use strict";
__nested_webpack_require_275900__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K");

/***/ }),
/* 25 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_279281__) {

"use strict";
__nested_webpack_require_279281__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K");

/***/ }),
/* 26 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_282662__) {

"use strict";
__nested_webpack_require_282662__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K");

/***/ }),
/* 27 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_286043__) {

"use strict";
__nested_webpack_require_286043__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K");

/***/ }),
/* 28 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_289424__) {

"use strict";
__nested_webpack_require_289424__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjNzE3MTcxIi8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K");

/***/ }),
/* 29 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_292805__) {

"use strict";
__nested_webpack_require_292805__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjNzE3MTcxIi8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgo8L3N2Zz4K");

/***/ }),
/* 30 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_296186__) {

"use strict";
__nested_webpack_require_296186__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDE1Ij4KICAgIDxwYXRoIGQ9Ik0yMS45MSwxLjA4MyBDMTguMDA4LDEuMDgzIDE0Ljg0Niw0LjA3IDE0Ljg0Niw3Ljc1OCBDMTQuODQ2LDExLjQ0NSAxOC4wMDgsMTQuNDMyIDIxLjkxLDE0LjQzMiBDMjUuODEzLDE0LjQzMiAyOC45NzcsMTEuNDQ1IDI4Ljk3Nyw3Ljc1OCBDMjguOTc4LDQuMDcgMjUuODEzLDEuMDgzIDIxLjkxLDEuMDgzIHogTTIxLjc3MSwxMS45IEMxOS41LDExLjkgMTcuNjU3LDEwLjA1NiAxNy42NTcsNy43ODMgQzE3LjY1Nyw1LjUwOCAxOS41MDEsMy42NjQgMjEuNzcxLDMuNjY0IEMyNC4wNDUsMy42NjQgMjUuODg2LDUuNTA4IDI1Ljg4Niw3Ljc4MyBDMjUuODg2LDEwLjA1NyAyNC4wNDUsMTEuOSAyMS43NzEsMTEuOSB6IiBmaWxsPSIjNzRCMDNFIi8+CiAgICA8cGF0aCBkPSJNMTYuNzUxLDAuNjQyIEwxNy4wMzEsMCBMMTQuMDYzLDAgTDExLjI3LDggTDguNjQ4LDAgTDguMjcyLDAgTDUuNjUsOCBMMywwIEwwLjAzMSwwIEw0LjksMTMuNDg2IEM0LjksMTMuNDg2IDUuMDc4LDEzLjg2IDUuMjc1LDEzLjg2IEM1LjQ1MSwxMy44NiA1LjY0OSwxMy40ODYgNS42NDksMTMuNDg2IEw4LjQ0NSw2LjQwNiBMMTEuMjY5LDEzLjQ4NiBDMTEuMjY5LDEzLjQ4NiAxMS40NTUsMTMuODYgMTEuNjQzLDEzLjg2IEMxMS44MjksMTMuODYgMTIuMDE4LDEzLjQ4NiAxMi4wMTgsMTMuNDg2IEwxMy42MTQsOS4wNjcgQzEzLjQ0NSw4LjQzMyAxMy4zNDUsNy43NzMgMTMuMzQ1LDcuMDg5IEMxMy4zNDYsNC40NTMgMTQuNjg2LDIuMTE4IDE2Ljc1MSwwLjY0MiB6IiBmaWxsPSIjRUUzNDI4Ii8+CiAgICA8cGF0aCBkPSJNMjcuMDMxLDAgTDI3LjAzMSwwLjYxMyBDMjcuOTQ0LDEuMjU4IDI4LjcxNSwyLjA2NyAyOS4yOTUsMyBMMzEuMDMxLDMgTDMxLjAzMSwxNCBMMzQuMDMxLDE0IEwzNC4wMzEsMyBMMzguMDMxLDMgTDM4LjAzMSwwIEwyNy4wMzEsMCB6IiBmaWxsPSIjRjA4NjE1Ii8+Cjwvc3ZnPgo=");

/***/ }),
/* 31 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_297859__) {

"use strict";
__nested_webpack_require_297859__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTcgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBpZD0iQXJ0Ym9hcmQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMi4wMDAwMDAsIC0xNDQuMDAwMDAwKSI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzLjAwMDAwMCwgMTQxLjAwMDAwMCkiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1Ij4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3g9IjcuODcwMzYxMzMiIGN5PSIxMS4yNzU5NzY2IiByPSI3LjM3ODg1NzQyIj48L2NpcmNsZT4KICAgICAgICAgICAgPHBvbHlsaW5lIGlkPSJMaW5lLTIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHBvaW50cz0iNy43Njc5Njg3NSA3LjQ2MzI4MTI1IDcuNzY3OTY4NzUgMTEuOTYzMjgxMiAxMS4zNjc5Njg3IDExLjk2MzI4MTIiPjwvcG9seWxpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K");

/***/ }),
/* 32 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_298976__) {

"use strict";
__nested_webpack_require_298976__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZGVmcz4KICAgICAgICA8cmVjdCBpZD0icGF0aC0xIiB4PSIwLjc2Nzk2ODc1IiB5PSIwLjk4MDY2NDA2MyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE1Ljg4MDUxNzYiIHJ4PSIxLjgiPjwvcmVjdD4KICAgIDwvZGVmcz4KICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC4wMDAwMDAsIC0xODQuMDAwMDAwKSI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjAwMDAwMCwgMTg0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0iUmVjdGFuZ2xlIj4KICAgICAgICAgICAgICAgIDx1c2UgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgIDxyZWN0IHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1IiB4PSIxLjQ0Mjk2ODc1IiB5PSIxLjY1NTY2NDA2IiB3aWR0aD0iMTYuNjUiIGhlaWdodD0iMTQuNTMwNTE3NiIgcng9IjEuOCI+PC9yZWN0PgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxwb2x5bGluZSBpZD0iTGluZS0zIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS13aWR0aD0iMS4zNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgcG9pbnRzPSIxLjYyNjY2MDE2IDEzLjA3MTMzNzkgNS4yMjY2NjAxNiA5LjQ3MTMzNzg5IDguMTc0MDcyMjcgMTIuMTE1NTI3MyAxMi45Mjk4MzQgNi43MjgyNzE0OCAxNy44Njc5Njg3IDEyLjMzMzA1NjYiPjwvcG9seWxpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K");

/***/ }),
/* 33 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_300529__) {

"use strict";
__nested_webpack_require_300529__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTcgMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIuMDAwMDAwLCAtMjI0LjAwMDAwMCkiPgogICAgICAgIDxwYXRoIGQ9Ik0yMi44MTc1NzgxLDIzNC40MTc0NTUgTDIyLjgxNzU3ODEsMjQwLjU1OTc0NyBMMzYuODk2MDY2LDIzMi43MjMwODkgTDIyLjgxNzU3ODEsMjI1LjY5OTEyMSBMMjIuODE3NTc4MSwyMzEuMDgwNTcyIEwyNS45Nzg4MzYzLDIzMi42NTc3NzEgTDIyLjgxNzU3ODEsMjM0LjQxNzQ1NSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1Ij48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPgo=");

/***/ }),
/* 34 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_301486__) {

"use strict";
__nested_webpack_require_301486__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEuMDAwMDAwLCAtMjYzLjAwMDAwMCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zMC4wMjM1ODk1LDI4MC4xMTkwMjQgQzI5Ljk3MTAwMTYsMjgwLjExOTAyNCAyOS45MTgzNjI1LDI4MC4xMTA4OTggMjkuODY3NjY1NSwyODAuMDk0NjQ3IEMyOC4xNjM1OTE1LDI3OS41NDg3ODUgMjYuNzEyNzk4MSwyNzguNTAxNzc5IDI1LjU1NTUwNTcsMjc2Ljk4Mjc1OSBDMjQuNjQ0MzkwMywyNzUuNzg2ODMxIDIzLjkxNDg1NCwyNzQuMjk4MzczIDIzLjM4NzI4ODEsMjcyLjU1ODcyOSBDMjIuNDk3MzMwNSwyNjkuNjI0NDg1IDIyLjQ4NzEwOTQsMjY3LjAxMDUyMiAyMi40ODcxMDk0LDI2Ni45MDA2OTYgQzIyLjQ4NzEwOTQsMjY2LjYzNzUwMSAyMi42ODcwMzU1LDI2Ni40MTcyODYgMjIuOTQ5MDU1MywyNjYuMzkxOTg4IEMyMi45ODg1MDksMjY2LjM4ODE1NSAyNi45NTc2OTc0LDI2NS45ODA2ODggMjkuNzIzMjkxNCwyNjMuOTcyMjc5IEMyOS45MDIzNjY0LDI2My44NDIxNjMgMzAuMTQ0ODYzNywyNjMuODQyMzE2IDMwLjMyMzkzODcsMjYzLjk3MjMzIEMzMy4wODg3NjYyLDI2NS45ODA2ODggMzcuMDU4NDY1NiwyNjYuMzg4MTU1IDM3LjA5ODIyNTksMjY2LjM5MjAzOSBDMzcuMzYwMDQxMywyNjYuNDE3NTkyIDM3LjU1OTkxNjMsMjY2LjYzNzcwNSAzNy41NTk5MTYzLDI2Ni45MDA2OTYgQzM3LjU1OTkxNjMsMjY3LjAxMDUyMiAzNy41NDk2OTUyLDI2OS42MjQ0ODUgMzYuNjU5Nzg4NywyNzIuNTU4NzggQzM2LjEzMjE3MTcsMjc0LjI5ODQyNCAzNS40MDI2ODY1LDI3NS43ODY4ODIgMzQuNDkxNTcxMSwyNzYuOTgyODExIEMzMy4zMzQzMjk5LDI3OC41MDE4MyAzMS44ODM1MzY1LDI3OS41NDg4MzYgMzAuMTc5NDYyNCwyODAuMDk0Njk4IEMzMC4xMjg3NjU0LDI4MC4xMTA4OTggMzAuMDc2MTc3NSwyODAuMTE5MDI0IDMwLjAyMzU4OTUsMjgwLjExOTAyNCBMMzAuMDIzNTg5NSwyODAuMTE5MDI0IFoiIGlkPSJQYXRoIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS13aWR0aD0iMS4zNSI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K");

/***/ }),
/* 35 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_303431__) {

"use strict";
__nested_webpack_require_303431__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aAogICAgICAgICAgICBkPSJNMjcuNjE1NjkzMSwzMjIuMjg4MDg2IEwyMC43Njc5Njg3LDMyMi4yODgwODYgTDIwLjc2Nzk2ODcsMzE1LjQxNjAyNiBMMjEuOTU5OTMxNCwzMTUuNDE2MDI2IEMyMi41MTAyOTA4LDMxNS40MTYwMjYgMjIuOTU2NDQ1MywzMTQuOTY5ODcxIDIyLjk1NjQ0NTMsMzE0LjQxOTUxMiBDMjIuOTU2NDQ1MywzMTMuODY5MTUzIDIyLjUxMDI5MDgsMzEzLjQyMjk5OCAyMS45NTk5MzE0LDMxMy40MjI5OTggTDIwLjc2Nzk2ODcsMzEzLjQyMjk5OCBMMjAuNzY3OTY4NywzMDYuOTE3MTEgTDI1LjkzOTg5MjYsMzA2LjkxNzExIEwyNS45Mzk4OTI2LDMwNi44MTYzNjggQzI1LjkzOTg5MjYsMzA1LjMyNTE5OSAyNy4xNDg3MjM4LDMwNC4xMTYzNjggMjguNjM5ODkyNiwzMDQuMTE2MzY4IEMzMC4xMzEwNjE0LDMwNC4xMTYzNjggMzEuMzM5ODkyNiwzMDUuMzI1MTk5IDMxLjMzOTg5MjYsMzA2LjgxNjM2OCBMMzEuMzM5ODkyNiwzMDYuOTE3MTEgTDM2LjEzODk0NDUsMzA2LjkxNzExIEwzNi4xMzg5NDQ1LDMxMS45MDI1OTggTDM2LjMzMjA4MDEsMzExLjkwMjU5OCBDMzcuODIzMjQ4OSwzMTEuOTAyNTk4IDM5LjAzMjA4MDEsMzEzLjExMTQyOSAzOS4wMzIwODAxLDMxNC42MDI1OTggQzM5LjAzMjA4MDEsMzE2LjA5Mzc2NyAzNy44MjMyNDg5LDMxNy4zMDI1OTggMzYuMzMyMDgwMSwzMTcuMzAyNTk4IEwzNi4xMzg5NDQ1LDMxNy4zMDI1OTggTDM2LjEzODk0NDUsMzIyLjI4ODA4NiBMMjkuNjA4NzIwOSwzMjIuMjg4MDg2IEwyOS42MDg3MjA5LDMyMC41NzE2OSBDMjkuNjA4NzIwOSwzMjAuMDIxMzMgMjkuMTYyNTY2NSwzMTkuNTc1MTc2IDI4LjYxMjIwNywzMTkuNTc1MTc2IEMyOC4wNjE4NDc2LDMxOS41NzUxNzYgMjcuNjE1NjkzMSwzMjAuMDIxMzMgMjcuNjE1NjkzMSwzMjAuNTcxNjkgTDI3LjYxNTY5MzEsMzIyLjI4ODA4NiBaIgogICAgICAgICAgICBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDAwMDAwLCAtMzA0LjAwMDAwMCkiPgogICAgICAgIDxnPgogICAgICAgICAgICA8dXNlIGZpbGwtcnVsZT0iZXZlbm9kZCIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICBzdHJva2U9IiM5Nzk3OTciCiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9IjEuMzUiCiAgICAgICAgICAgICAgICBkPSJNMjYuOTQwNjkzMSwzMjEuNjEzMDg2IEwyNi45NDA2OTMxLDMyMC41NzE2OSBDMjYuOTQwNjkzMSwzMTkuNjQ4NTM4IDI3LjY4OTA1NTQsMzE4LjkwMDE3NiAyOC42MTIyMDcsMzE4LjkwMDE3NiBDMjkuNTM1MzU4NywzMTguOTAwMTc2IDMwLjI4MzcyMDksMzE5LjY0ODUzOCAzMC4yODM3MjA5LDMyMC41NzE2OSBMMzAuMjgzNzIwOSwzMjEuNjEzMDg2IEwzNS40NjM5NDQ1LDMyMS42MTMwODYgTDM1LjQ2Mzk0NDUsMzE2LjYyNzU5OCBMMzYuMzMyMDgwMSwzMTYuNjI3NTk4IEMzNy40NTA0NTY3LDMxNi42Mjc1OTggMzguMzU3MDgwMSwzMTUuNzIwOTc1IDM4LjM1NzA4MDEsMzE0LjYwMjU5OCBDMzguMzU3MDgwMSwzMTMuNDg0MjIxIDM3LjQ1MDQ1NjcsMzEyLjU3NzU5OCAzNi4zMzIwODAxLDMxMi41Nzc1OTggTDM1LjQ2Mzk0NDUsMzEyLjU3NzU5OCBMMzUuNDYzOTQ0NSwzMDcuNTkyMTEgTDMwLjY2NDg5MjYsMzA3LjU5MjExIEwzMC42NjQ4OTI2LDMwNi44MTYzNjggQzMwLjY2NDg5MjYsMzA1LjY5Nzk5MSAyOS43NTgyNjkyLDMwNC43OTEzNjggMjguNjM5ODkyNiwzMDQuNzkxMzY4IEMyNy41MjE1MTYsMzA0Ljc5MTM2OCAyNi42MTQ4OTI2LDMwNS42OTc5OTEgMjYuNjE0ODkyNiwzMDYuODE2MzY4IEwyNi42MTQ4OTI2LDMwNy41OTIxMSBMMjEuNDQyOTY4NywzMDcuNTkyMTEgTDIxLjQ0Mjk2ODcsMzEyLjc0Nzk5OCBMMjEuOTU5OTMxNCwzMTIuNzQ3OTk4IEMyMi44ODMwODMxLDMxMi43NDc5OTggMjMuNjMxNDQ1MywzMTMuNDk2MzYgMjMuNjMxNDQ1MywzMTQuNDE5NTEyIEMyMy42MzE0NDUzLDMxNS4zNDI2NjQgMjIuODgzMDgzMSwzMTYuMDkxMDI2IDIxLjk1OTkzMTQsMzE2LjA5MTAyNiBMMjEuNDQyOTY4NywzMTYuMDkxMDI2IEwyMS40NDI5Njg3LDMyMS42MTMwODYgTDI2Ljk0MDY5MzEsMzIxLjYxMzA4NiBaIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K");

/***/ }),
/* 36 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_306900__) {

"use strict";
__nested_webpack_require_306900__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64, ");

/***/ }),
/* 37 */
/***/ (function(module, exports, __nested_webpack_require_311265__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __nested_webpack_require_311265__(0);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "iframe#adguard-assistant-dialog {\n  position: fixed;\n  clip: auto;\n  border-radius: 3px;\n  box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3);\n  z-index: 2147483647;\n  display: block!important;\n}\n.sg_hide_element {\n  display: none!important;\n}\nimg.adguard_sg_selected {\n  border: 5px solid #0F0 !important;\n}\n#_sg_div.sg_top {\n  top: 5px !important;\n}\n#_sg_div.sg_bottom {\n  bottom: 5px !important;\n}\n#_sg_div input {\n  margin-right: 10px !important;\n  font-size: 15px !important;\n}\n#_sg_path_field {\n  width: 400px !important;\n}\n#_sg_div .sg_new_line {\n  clear: both !important;\n}\n#_sg_div .sg_option {\n  float: left !important;\n}\n#_sg_div .adguard_sg_selected_option {\n  text-decoration: underline;\n}\n.adguard-placeholder {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OUM5OUE4MEZEQzUxMUUyOTAzM0EyODQyRjc5QjI2QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OUM5OUE4MUZEQzUxMUUyOTAzM0EyODQyRjc5QjI2QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5Qzk5QTdFRkRDNTExRTI5MDMzQTI4NDJGNzlCMjZDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5Qzk5QTdGRkRDNTExRTI5MDMzQTI4NDJGNzlCMjZDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9rJm9wAAAAZQTFRF2+7g1OfZ+LX/EgAAACtJREFUeNpiYIQABhhA5TIyoHIhfCS1DKhcEB/FJAZG7AYzoNlLLy5AgAEAMigAar6TcqkAAAAASUVORK5CYII=);\n}\n.adguard-placeholder-icon {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAwCAYAAAB9sggoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENkNBQTNGMkZEQzUxMUUyQjVFMkZEMUFFRjlGOEQyMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENkNBQTNGM0ZEQzUxMUUyQjVFMkZEMUFFRjlGOEQyMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ2Q0FBM0YwRkRDNTExRTJCNUUyRkQxQUVGOUY4RDIzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ2Q0FBM0YxRkRDNTExRTJCNUUyRkQxQUVGOUY4RDIzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+49sbDwAAAl9JREFUeNrMmE0o5VEYxq9vJmpI2SBZjCSNKKGwkDE0m8mg2QwzEtkNCeUjGyVhYTbTUIZEMWmkbCVlw9QkG4mammbK5zAWuLqek3ch3W7v+Z8P/7d+u/cczz3neM7zP0Htg12eR6wUkA+eg2yQDOLAYegjiIkEr0AjyAPRfnp8toW9Be20QoHKa0tYEhgCVdwBNoQVgCmQKjPItLAKMAtiZAeaFFYM5sATJ4ODDYl6BuadijIlLAJMgHiFOWJMbGUfmaZsHYN98Bvs6haWA1olx2yCMfAd/DF1+Psl5rwGPWAYXJn8r3wNXjB7L0ENrZLRwy/m6ZDorw8kSqewUpDL7P0Epm3YRRBoYfbugW5bPpZDK8apTnBqS9h7WjWOLXyz5fxPQSWjz0dWcmPrEhdJNIEprIlW198Z7aUV1SasQWJnAp3Dzw+FqWxlOmV2HeXVecbegHBTYS5YYVy1yejrVJhIpxluFPaB6V1WhSWQTXjcJqyKjFVnhagabBhFFk7tgnPmlp+oChNbmMXM70XgL3Nen6qwj8y+xfv53fQZKweFzN5xW4c/Cgwwe9fAui1hIuBlMntHZOKNirAyiQ+NLbBkw8fEE9IM2QSnBv19I+oWVguWQSxzrnX6EVrqoV2I15kS0AxeSszjo+326hQm3hoSQRqR6mCeL2BV5x0VSjYQojDHNmgzcYn/Uxj/H9SBM7fkMQ951Tuw4aageEMpY8FUHnPy+XZECXbRTUFxhezEqCiZFfsFRnXdg1xhgcT9BF/BJG2htRKiDjx376EX9Md36HoR/NDp5jJ1K8AAcQBmooZhTgQAAAAASUVORK5CYII=);\n  background-position: center center;\n  background-repeat: no-repeat;\n  height: 100%;\n}\n.adguard-placeholder-domain {\n  background: #778b7c;\n  color: #ffffff;\n  left: 0;\n  top: 0;\n  padding: 2px 4px;\n  position: relative;\n}\n@media print {\n  .adguard-alert,\n  #adguard-assistant-dialog {\n    display: none!important;\n    opacity: 0!important;\n    visibility: hidden!important;\n  }\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),
/* 38 */
/***/ (function(module, exports, __nested_webpack_require_316147__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __nested_webpack_require_316147__(0);
var ___CSS_LOADER_GET_URL_IMPORT___ = __nested_webpack_require_316147__(1);
var ___CSS_LOADER_URL_IMPORT_0___ = __nested_webpack_require_316147__(2);
var ___CSS_LOADER_URL_IMPORT_1___ = __nested_webpack_require_316147__(3);
var ___CSS_LOADER_URL_IMPORT_2___ = __nested_webpack_require_316147__(4);
var ___CSS_LOADER_URL_IMPORT_3___ = __nested_webpack_require_316147__(39);
var ___CSS_LOADER_URL_IMPORT_4___ = __nested_webpack_require_316147__(40);
var ___CSS_LOADER_URL_IMPORT_5___ = __nested_webpack_require_316147__(41);
var ___CSS_LOADER_URL_IMPORT_6___ = __nested_webpack_require_316147__(42);
var ___CSS_LOADER_URL_IMPORT_7___ = __nested_webpack_require_316147__(43);
var ___CSS_LOADER_URL_IMPORT_8___ = __nested_webpack_require_316147__(44);
exports = ___CSS_LOADER_API_IMPORT___(false);
var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);
var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);
var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);
var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);
var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);
var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);
var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);
var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);
var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);
// Module
exports.push([module.i, ":host {\n  display: block!important;\n  position: relative!important;\n  width: 0!important;\n  height: 0!important;\n  margin: 0!important;\n  padding: 0!important;\n  z-index: 2147483647!important;\n}\n:host ::after,\n:host ::before {\n  display: none!important;\n}\nbody {\n  color: #282828;\n}\n.main {\n  background: #ffffff;\n}\n.main-popup__btn {\n  background: #ffffff;\n  border: 1px solid #cfcfcf;\n}\n.main-popup__btn:hover {\n  background-color: #efefef;\n}\n.main-menu__btn {\n  background-color: #ffffff;\n}\n.main-menu__btn:hover {\n  background-color: #efefef;\n}\n.main-menu__btn:active,\n.main-menu__btn.active {\n  background-color: #f3f3f3;\n}\n.main-version {\n  color: #dfdfdf;\n}\n.head_title {\n  color: #343434;\n}\n.head_text {\n  color: #343434;\n}\n.element-rule_expand-link_txt {\n  color: #36ba53;\n  border-bottom: 1px solid #36ba53;\n}\n.element-rule_expand-link:hover .element-rule_expand-link_txt {\n  color: #36ba53;\n  border-bottom-color: #36ba53;\n}\n.element-rule_form-cont {\n  border-top: 1px solid #e0dfdb;\n  background: #f4f4ef;\n}\n.tick {\n  border: 20px solid #ffffff;\n  border-left: 1px solid #ffffff;\n  border-right: 1px solid #ffffff;\n}\n.close {\n  background: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ") no-repeat 0 0 / cover;\n  opacity: 0.6;\n}\n.close:hover {\n  opacity: 0.8;\n}\n.form-control {\n  color: #343434;\n  background: #ffffff;\n  border: 1px solid #cfcfcf;\n}\ninput[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n  border: 1px solid #cfcfcf;\n  background: #ffffff;\n}\ninput[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n  border: 1px solid #36ba53;\n  background: #36ba53;\n}\ninput[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n  border-bottom-color: #ffffff;\n  border-left-color: #ffffff;\n}\n.menu,\n.menu-filter,\n.content,\n.foot {\n  border-top: 1px solid #e0dfdb;\n}\n.settings_fieldset {\n  border-top: 1px solid #e0dfdb;\n}\n.btn-primary {\n  border-color: #36ba53;\n  background: #36ba53;\n  color: #fff;\n}\n.btn-primary:hover {\n  border-color: #30a64a;\n  background: #30a64a;\n  color: #fff;\n}\n.btn-primary.active,\n.btn-primary:active {\n  border-color: #30a64a;\n  background: #30a64a;\n}\n.btn-primary.disabled,\n.btn-primary[disabled] {\n  border-color: #30a64a;\n  background: #30a64a;\n}\n.btn-cancel {\n  border-color: #f3523d;\n  background: #f3523d;\n  color: #fff;\n}\n.btn-cancel:hover {\n  border-color: #ee290f;\n  background: #ee290f;\n  color: #fff;\n}\n.btn-cancel.active,\n.btn-cancel:active {\n  border-color: #ee290f;\n  background: #ee290f;\n}\n.btn-cancel.disabled,\n.btn-cancel[disabled] {\n  border-color: #ee290f;\n  background: #ee290f;\n}\n.ui-slider-handle:after {\n  background: #36ba53;\n}\n.change-position_input:checked + .change-position_label {\n  border-color: #36ba53;\n  background: #36ba53;\n}\ninput[type=\"radio\"] + .form-ui .form-ui-txt:before {\n  background: #ffffff;\n}\ninput[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n  background: #36ba53;\n}\n.menu-head_title {\n  color: #343434;\n}\n.menu-head_text {\n  color: #343434;\n}\n.menu-filter_handle {\n  background: #ffffff;\n}\n@media (prefers-color-scheme: dark) {\n  body {\n    color: #ddd;\n  }\n  .main {\n    background: #323232;\n  }\n  .main-popup__btn {\n    background: #323232;\n    border: 1px solid #666;\n  }\n  .main-popup__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn {\n    background-color: #323232;\n  }\n  .main-menu__btn:hover {\n    background-color: #555555;\n  }\n  .main-menu__btn:active,\n  .main-menu__btn.active {\n    background-color: #4d4d4d;\n  }\n  .main-version {\n    color: #444;\n  }\n  .head_title {\n    color: #ccc;\n  }\n  .head_text {\n    color: #ccc;\n  }\n  .element-rule_expand-link_txt {\n    color: #67B279;\n    border-bottom: 1px solid #67B279;\n  }\n  .element-rule_expand-link:hover .element-rule_expand-link_txt {\n    color: #4D995F;\n    border-bottom-color: #4D995F;\n  }\n  .element-rule_form-cont {\n    border-top: 1px solid #444;\n    background: #555;\n  }\n  .tick {\n    border: 20px solid #323232;\n    border-left: 1px solid #323232;\n    border-right: 1px solid #323232;\n  }\n  .close {\n    background: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") no-repeat 0 0 / cover;\n    opacity: 0.7;\n  }\n  .close:hover {\n    opacity: 1;\n  }\n  .form-control {\n    color: #ccc;\n    background: #323232;\n    border: 1px solid #666;\n  }\n  input[type=\"checkbox\"] + .form-ui .form-ui-txt:before {\n    border: 1px solid #666;\n    background: #323232;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:before {\n    border: 1px solid #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"checkbox\"]:checked + .form-ui .form-ui-txt:after {\n    border-bottom-color: #323232;\n    border-left-color: #323232;\n  }\n  .menu,\n  .menu-filter,\n  .content,\n  .foot {\n    border-top: 1px solid #444;\n  }\n  .settings_fieldset {\n    border-top: 1px solid #444;\n  }\n  .btn-primary {\n    border-color: #4D995F;\n    background: #4D995F;\n    color: #fff;\n  }\n  .btn-primary:hover {\n    border-color: #39774C;\n    background: #39774C;\n    color: #fff;\n  }\n  .btn-primary.active,\n  .btn-primary:active {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-primary.disabled,\n  .btn-primary[disabled] {\n    border-color: #39774C;\n    background: #39774C;\n  }\n  .btn-cancel {\n    border-color: #8E2C13;\n    background: #8E2C13;\n    color: #fff;\n  }\n  .btn-cancel:hover {\n    border-color: #732613;\n    background: #732613;\n    color: #fff;\n  }\n  .btn-cancel.active,\n  .btn-cancel:active {\n    border-color: #732613;\n    background: #732613;\n  }\n  .btn-cancel.disabled,\n  .btn-cancel[disabled] {\n    border-color: #732613;\n    background: #732613;\n  }\n  .ui-slider-handle:after {\n    background: #4D995F;\n  }\n  .change-position_input:checked + .change-position_label {\n    border-color: #4D995F;\n    background: #4D995F;\n  }\n  input[type=\"radio\"] + .form-ui .form-ui-txt:before {\n    background: #323232;\n  }\n  input[type=\"radio\"]:checked + .form-ui .form-ui-txt:after {\n    background: #4D995F;\n  }\n  .menu-head_title {\n    color: #ccc;\n  }\n  .menu-head_text {\n    color: #ccc;\n  }\n  .menu-filter_handle {\n    background: #323232;\n  }\n}\nbody {\n  padding: 1vw;\n  background: transparent;\n}\n.main {\n  position: relative;\n  padding: 8vw 3vw;\n}\n.main .footer {\n  letter-spacing: 3vw;\n}\n.main-version {\n  position: absolute;\n  bottom: 0;\n  right: 7px;\n  font-size: 5vw;\n}\n.main-popup {\n  text-align: center;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  margin: 5vw;\n  box-shadow: 0 0px 5vw 0 rgba(0, 0, 0, 0.2);\n}\n.main-popup__logo {\n  width: 11vw;\n  height: 11vw;\n}\n.main-popup__logo.adguard-assistant-button-main-logo {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ");\n  background-repeat: no-repeat;\n}\n.main-popup__title {\n  font-size: 6vw;\n  margin: 3vw 0;\n}\n.main-popup__content {\n  font-size: 5vw;\n  padding: 0 3vw;\n  margin-bottom: 5vw;\n  border-top: none;\n}\n.main-popup__btn {\n  font-size: 5vw;\n  padding: 2vh 8vw;\n  border-radius: 3px;\n  letter-spacing: normal;\n}\n.main-popup__btn--green {\n  color: #ffffff;\n  border: 1px solid #66B574;\n  background-color: #66B574;\n  box-shadow: none;\n}\n.main-popup__btn--green:hover {\n  background-color: #5ea76b;\n  color: #fff;\n}\n.main-popup__btn:focus {\n  box-shadow: none;\n}\n.main-menu {\n  margin: 4vw;\n  padding: 4vw;\n  display: flex;\n  justify-content: space-between;\n  border-radius: 4vw;\n  box-shadow: 0 0 4vw -2px rgba(0, 0, 0, 0.3);\n}\n.main-menu__info {\n  width: 100%;\n  text-align: center;\n}\n.main-menu__btn {\n  border: 0;\n  font-size: 0;\n  width: 12vw;\n  height: 12vw;\n  border-radius: 2vw;\n  background-repeat: no-repeat;\n  background-position: 50%;\n  background-size: 100%;\n  position: relative;\n}\n.main-menu__btn:disabled {\n  opacity: 0.5;\n  pointer-events: none;\n}\n.main-menu__btn--accept {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ");\n}\n.main-menu__btn--preview {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ");\n}\n.main-menu__btn--preview:active,\n.main-menu__btn--preview.active {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_5___ + ");\n}\n.main-menu__btn--plus {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_6___ + ");\n}\n.main-menu__btn--minus {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_7___ + ");\n}\n.main-menu__btn--close {\n  background-image: url(" + ___CSS_LOADER_URL_REPLACEMENT_8___ + ");\n}\n", ""]);
// Exports
module.exports = exports;


/***/ }),
/* 39 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_326692__) {

"use strict";
__nested_webpack_require_326692__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUgMTEuNzY2NUwxMC41ODc4IDE3TDE5IDgiIHN0cm9rZT0iIzY3QjI3OSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K");

/***/ }),
/* 40 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_327233__) {

"use strict";
__nested_webpack_require_327233__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDExLjc3MkM2LjY2NjY3IDguNTkwNjUgOS4zMzMzMyA3IDEyIDdDMTQuNjY2NyA3IDE3LjMzMzMgOC41OTA2NSAyMCAxMS43NzJDMjAgMTEuNzcyIDE2IDE2Ljc3MiAxMiAxNi43NzJDOCAxNi43NzIgNCAxMS43NzIgNCAxMS43NzJaIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAxMEMxMy4xMDQ2IDEwIDE0IDEwLjg5NTQgMTQgMTJDMTQgMTMuMTA0NiAxMy4xMDQ2IDE0IDEyIDE0QzEwLjg5NTQgMTQgMTAgMTMuMTA0NiAxMCAxMkMxMCAxMC44OTU0IDEwLjg5NTQgMTAgMTIgMTBaIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjwvc3ZnPgo=");

/***/ }),
/* 41 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_328250__) {

"use strict";
__nested_webpack_require_328250__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQgMTBDNCAxMCA4IDE0Ljc3MiAxMiAxNC43NzJDMTYgMTQuNzcyIDIwIDEwIDIwIDEwIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTEyIDE1VjE3IiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTE4IDEzVjE1IiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTYgMTNWMTUiIHN0cm9rZT0iIzY3QjI3OSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K");

/***/ }),
/* 42 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_329115__) {

"use strict";
__nested_webpack_require_329115__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYgMTBWNkgxME02IDE0VjE4SDEwTTE4IDEwVjZIMTRNMTggMTRWMThIMTQiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K");

/***/ }),
/* 43 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_329680__) {

"use strict";
__nested_webpack_require_329680__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwIDZWMTBINiIgc3Ryb2tlPSIjQTRBNEE0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMCAxOFYxNEg2IiBzdHJva2U9IiNBNEE0QTQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE0IDZWMTBIMTgiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTQgMThWMTRIMTgiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K");

/***/ }),
/* 44 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_330629__) {

"use strict";
__nested_webpack_require_330629__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNDI4NTcgNi40Mjg1N0wxNy42MDQzIDE3LjYwNDMiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNi40Mjc3MyAxNy41NzE0TDE3LjYwMzUgNi4zOTU2MyIgc3Ryb2tlPSIjQTRBNEE0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=");

/***/ }),
/* 45 */
/***/ (function(module, exports, __nested_webpack_require_331274__) {

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

var _require = __nested_webpack_require_331274__(5),
    _require2 = _slicedToArray(_require, 1),
    _require2$ = _require2[0],
    BASE_LOCALE = _require2$.base_locale,
    PROJECT_ID = _require2$.project_id,
    LANGUAGES = _require2$.languages,
    LOCALIZABLE_FILES = _require2$.localizable_files;
/**
 * Users locale may be defined with only two chars (language code)
 * Here we provide a map of equivalent translation for such locales
 */


var LOCALES_EQUIVALENTS_MAP = {
  'pt-BR': 'pt',
  'zh-CN': 'zh'
};
module.exports = {
  LOCALES_EQUIVALENTS_MAP: LOCALES_EQUIVALENTS_MAP,
  BASE_LOCALE: BASE_LOCALE,
  PROJECT_ID: PROJECT_ID,
  LANGUAGES: LANGUAGES,
  LOCALIZABLE_FILES: LOCALIZABLE_FILES
};

/***/ }),
/* 46 */
/***/ (function(module, exports, __nested_webpack_require_333564__) {

var map = {
	"./ar/messages.json": 47,
	"./be/messages.json": 48,
	"./cs/messages.json": 49,
	"./da/messages.json": 50,
	"./de/messages.json": 51,
	"./en/messages.json": 52,
	"./es/messages.json": 53,
	"./fa/messages.json": 54,
	"./fi/messages.json": 55,
	"./fr/messages.json": 56,
	"./he/messages.json": 57,
	"./hi/messages.json": 58,
	"./hr/messages.json": 59,
	"./id/messages.json": 60,
	"./it/messages.json": 61,
	"./ja/messages.json": 62,
	"./ko/messages.json": 63,
	"./lt/messages.json": 64,
	"./no/messages.json": 65,
	"./pl/messages.json": 66,
	"./pt-PT/messages.json": 67,
	"./pt/messages.json": 68,
	"./ru/messages.json": 69,
	"./sk/messages.json": 70,
	"./sl/messages.json": 71,
	"./sr/messages.json": 72,
	"./sv/messages.json": 73,
	"./tr/messages.json": 74,
	"./uk/messages.json": 75,
	"./zh-TW/messages.json": 76,
	"./zh/messages.json": 77
};


function webpackContext(req) {
	var id = webpackContextResolve(req);
	return __nested_webpack_require_333564__(id);
}
function webpackContextResolve(req) {
	if(!__nested_webpack_require_333564__.o(map, req)) {
		var e = new Error("Cannot find module '" + req + "'");
		e.code = 'MODULE_NOT_FOUND';
		throw e;
	}
	return map[req];
}
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 46;

/***/ }),
/* 47 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"مواقع الويب\",\"settings_position_save_all\":\"كافة مواقع الويب\",\"settings_position_save_this\":\"هذا الموقع\",\"assistant_select_element_start\":\"بدء\",\"assistant_select_element_text\":\"اختر عنصرا في الصفحة للحظرقم بتحديث الصفحة لالغاء وضع حظر العنصر\",\"menu_filtration_status\":{\"message\":\"تفعيل الفلترةعلى هذا الموقع\"},\"menu_do_not_filter_30_sec\":{\"message\":\"عدم الفلترة لمده 30 ثانيه\"},\"menu_block_ad_on_site\":{\"message\":\"منع الإعلان على هذا الموقع\"},\"menu_report_abuse\":{\"message\":\"الإبلاغ عن هذا الموقع\"},\"menu_site_report\":{\"message\":\"تقرير أمن الموقع\"},\"menu_settings\":{\"message\":\"إعدادات المساعد\"},\"menu_wot_reputation_indicator\":{\"message\":\"مؤشر سمعة الموقع\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"مستوى الثقة في السمعة\"},\"assistant_select_element\":{\"message\":\"حظر العنصر\"},\"assistant_select_element_ext\":{\"message\":\"اختر عنصرا في الصفحة للحظر\"},\"assistant_select_element_cancel\":{\"message\":\"الغاء\"},\"assistant_block_element\":{\"message\":\"حظر العنصر\"},\"assistant_block_element_explain\":{\"message\":\"ضبط قاعدة حظر العنصر\"},\"assistant_slider_explain\":{\"message\":\"حرك شريط التمرير لتغيير حجم الإطار الذي ستعمل عليه القاعدة الجديدة:\"},\"assistant_extended_settings\":{\"message\":\"إعدادات متقدمة\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"تطبيق القاعدة علي كافة مواقع الويب\"},\"assistant_block_by_reference\":{\"message\":\"حظر حسب الارتباط المرجعي\"},\"assistant_block_similar\":{\"message\":\"حظر عنصر مما ثل\"},\"assistant_another_element\":{\"message\":\"حدد عنصرًا مختلفًا\"},\"assistant_preview\":{\"message\":\"المعاينه\"},\"assistant_block\":{\"message\":\"حظر\"},\"assistant_settings\":{\"message\":\"إعدادات المساعد\"},\"assistant_preview_header\":{\"message\":\"حجب عنصر--معاينه\"},\"assistant_preview_header_info\":{\"message\":\"تاكد من حظر هذا العنصر كما هو مقصود\"},\"assistant_preview_end\":{\"message\":\"إنهاء المعاينة\"},\"wot_unknown_description\":{\"message\":\"$1 لم يتم تعريف سمعه هذا الموقع من قبل\"},\"wot_bad_description\":{\"message\":\"$1هذا الموقع لديه سمعة سيئة للغاية \\nوفقاً لـ\"},\"wot_poor_description\":{\"message\":\"$1 هذا الموقع له سمعة سيئة \\nوفقا لـ\"},\"wot_unsatisfactory_description\":{\"message\":\"$1هذا الموقع له سمعة سيئة\\nوفقا لـ\"},\"wot_good_description\":{\"message\":\"$1يتمتع هذا الموقع بسمعة طيبة\\nوفقا لـ\"},\"wot_excellent_description\":{\"message\":\"هذا الموقع يتمتع بسمعة ممتازة\\nوفقاً لـ $1\"},\"settings_choose_size_and_position\":{\"message\":\"وموضعه AdGuard ضبط حجم مساعد\"},\"settings_icon_size\":{\"message\":\":حجم الرمز\"},\"settings_small\":{\"message\":\"صغير\"},\"settings_big\":{\"message\":\"كبير\"},\"settings_position\":{\"message\":\"وضع\"},\"settings_left_top\":{\"message\":\"اعلي اليسار\"},\"settings_right_top\":{\"message\":\"اعلي اليمين\"},\"settings_left_bottom\":{\"message\":\"أسفل لليسار\"},\"settings_right_bottom\":{\"message\":\"أسفل لليمين\"},\"settings_cancel\":{\"message\":\"الغاء\"},\"settings_save\":{\"message\":\"حفظ التغييرات\"}}");

/***/ }),
/* 48 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Сайты\",\"settings_position_save_all\":\"На ўсіх\",\"settings_position_save_this\":\"Толькі на гэтым\",\"assistant_select_element_start\":\"Пачаць\",\"assistant_select_element_text\":\"Абярыце на старонцы элемент для блакавання. Абнавіце старонку, каб скасаваць рэжым блакавання элементаў.\",\"menu_filtration_status\":{\"message\":\"Фільтрацыя на гэтым сайце\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Не фільтраваць 30 секундаў\"},\"menu_block_ad_on_site\":{\"message\":\"Заблакаваць рэкламу на сайце\"},\"menu_report_abuse\":{\"message\":\"Паскардзіцца на сайт\"},\"menu_site_report\":{\"message\":\"Справаздача пра бяспеку сайта\"},\"menu_settings\":{\"message\":\"Наладзіць памочнік\"},\"menu_wot_reputation_indicator\":{\"message\":\"Індыкатар рэпутацыі сайта\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Узровень верагоднасці рэпутацыі\"},\"assistant_select_element\":{\"message\":\"Блакаванне элемента\"},\"assistant_select_element_ext\":{\"message\":\"Абярыце на старонцы элемент, які трэба заблакаваць\"},\"assistant_select_element_cancel\":{\"message\":\"Скасаванне\"},\"assistant_block_element\":{\"message\":\"Блакаванне элемента\"},\"assistant_block_element_explain\":{\"message\":\"Наладзьце правіла блакавання элемента\"},\"assistant_slider_explain\":{\"message\":\"Перасоўвайце бегунок, каб змяніць памер блока, для якога будзе дзейнічаць правіла:\"},\"assistant_extended_settings\":{\"message\":\"Пашыраныя налады\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Ужыць правіла для ўсіх сайтаў\"},\"assistant_block_by_reference\":{\"message\":\"Блакаваць па спасылцы\"},\"assistant_block_similar\":{\"message\":\"Блакаваць падобныя\"},\"assistant_another_element\":{\"message\":\"Абраць іншы элемент\"},\"assistant_preview\":{\"message\":\"Перадпрагляд\"},\"assistant_block\":{\"message\":\"Заблакаваць\"},\"assistant_settings\":{\"message\":\"Налада памочніка\"},\"assistant_preview_header\":{\"message\":\"Блакаванне элемента - перадпрагляд\"},\"assistant_preview_header_info\":{\"message\":\"Пераканаецеся, што элемент заблакаваны як задумана\"},\"assistant_preview_end\":{\"message\":\"Скончыць перадпрагляд\"},\"wot_unknown_description\":{\"message\":\"Рэпутацыя не вызначана\"},\"wot_bad_description\":{\"message\":\"У сайта вельмі дрэнная рэпутацыя па дадзеных $1\"},\"wot_poor_description\":{\"message\":\"У сайта дрэнная рэпутацыя па дадзеных $1\"},\"wot_unsatisfactory_description\":{\"message\":\"У сайта нездавальняльная рэпутацыя па дадзеных $1\"},\"wot_good_description\":{\"message\":\"У сайта добрая рэпутацыя па дадзеных $1\"},\"wot_excellent_description\":{\"message\":\"У сайта выдатная рэпутацыя па дадзеных $1\"},\"settings_choose_size_and_position\":{\"message\":\"Наладзьце памер і становішча памочніка AdGuard\"},\"settings_icon_size\":{\"message\":\"Памер іконкі:\"},\"settings_small\":{\"message\":\"Маленькая\"},\"settings_big\":{\"message\":\"Вялікая\"},\"settings_position\":{\"message\":\"Месцаванне:\"},\"settings_left_top\":{\"message\":\"Уверсе злева\"},\"settings_right_top\":{\"message\":\"Уверсе справа\"},\"settings_left_bottom\":{\"message\":\"Унізе злева\"},\"settings_right_bottom\":{\"message\":\"Унізе справа\"},\"settings_cancel\":{\"message\":\"Скасаваць\"},\"settings_save\":{\"message\":\"Захаваць налады\"}}");

/***/ }),
/* 49 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Webové stránky\",\"settings_position_save_all\":\"Všechny webové stránky\",\"settings_position_save_this\":\"Tato webová stránka\",\"assistant_select_element_start\":\"Spustit\",\"assistant_select_element_text\":\"Vyberte prvek na stránce, který chcete zablokovat. Obnovte stránku pro zrušení režimu blokování prvků.\",\"menu_filtration_status\":{\"message\":\"Filtrování na těchto webových stránkách\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Nefiltrovat po dobu 30 sekund\"},\"menu_block_ad_on_site\":{\"message\":\"Blokovat reklamy na této webové stránce\"},\"menu_report_abuse\":{\"message\":\"Nahlásit webovou stránku\"},\"menu_site_report\":{\"message\":\"Zpráva o bezpečnosti webové stránky\"},\"menu_settings\":{\"message\":\"Nastavení asistenta\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indikátor reputace webu\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Úroveň důvěryhodnosti reputace\"},\"assistant_select_element\":{\"message\":\"Blokování prvku\"},\"assistant_select_element_ext\":{\"message\":\"Vyberte prvek na stránce, který chcete zablokovat\"},\"assistant_select_element_cancel\":{\"message\":\"Zrušit\"},\"assistant_block_element\":{\"message\":\"Blokování prvku\"},\"assistant_block_element_explain\":{\"message\":\"Upravit pravidlo blokování prvku\"},\"assistant_slider_explain\":{\"message\":\"Přesunutím posuvníku změňte velikost rámce, pro který bude nové pravidlo fungovat:\"},\"assistant_extended_settings\":{\"message\":\"Pokročilá nastavení\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Použít pravidlo pro všechny webové stránky\"},\"assistant_block_by_reference\":{\"message\":\"Blokovat referenčním odkazem\"},\"assistant_block_similar\":{\"message\":\"Blokovat podobné\"},\"assistant_another_element\":{\"message\":\"Vyber jiný prvek\"},\"assistant_preview\":{\"message\":\"Náhled\"},\"assistant_block\":{\"message\":\"Blokovat\"},\"assistant_settings\":{\"message\":\"Nastavení asistenta\"},\"assistant_preview_header\":{\"message\":\"Blokování prvku - náhled\"},\"assistant_preview_header_info\":{\"message\":\"Ujistěte se, že je prvek zablokován podle určení\"},\"assistant_preview_end\":{\"message\":\"Ukončit náhled\"},\"wot_unknown_description\":{\"message\":\"Pověst této webové stránky není definována podle $1\"},\"wot_bad_description\":{\"message\":\"Tato webová stránka má velmi špatnou pověst \\npodle $1\"},\"wot_poor_description\":{\"message\":\"Tato webová stránka má špatnou pověst \\npodle $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Tato webová stránka má špatnou pověst \\npodle $1\"},\"wot_good_description\":{\"message\":\"Tato webová stránka má dobrou pověst \\npodle $1\"},\"wot_excellent_description\":{\"message\":\"Tato webová stránka má výbornou pověst \\npodle $1\"},\"settings_choose_size_and_position\":{\"message\":\"Upravit velikost a pozici AdGuard Asistenta\"},\"settings_icon_size\":{\"message\":\"Velikost ikony:\"},\"settings_small\":{\"message\":\"Malá\"},\"settings_big\":{\"message\":\"Velká\"},\"settings_position\":{\"message\":\"Pozice:\"},\"settings_left_top\":{\"message\":\"Vlevo nahoře\"},\"settings_right_top\":{\"message\":\"Vpravo nahoře\"},\"settings_left_bottom\":{\"message\":\"Vlevo dole\"},\"settings_right_bottom\":{\"message\":\"Vpravo dole\"},\"settings_cancel\":{\"message\":\"Zrušit\"},\"settings_save\":{\"message\":\"Uložit změny\"}}");

/***/ }),
/* 50 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Websteder\",\"settings_position_save_all\":\"Alle websteder\",\"settings_position_save_this\":\"Dette websted\",\"assistant_select_element_start\":\"Start\",\"assistant_select_element_text\":\"Vælg et element på denne side, der skal blokeres. Opfrisk siden for at afbryde elementblokeringstilstanden.\",\"menu_filtration_status\":{\"message\":\"Filtrering på dette websted\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Filtrér ikke i 30 sekunder\"},\"menu_block_ad_on_site\":{\"message\":\"Blokér annoncer på dette websted\"},\"menu_report_abuse\":{\"message\":\"Anmeld dette websted\"},\"menu_site_report\":{\"message\":\"Webstedssikkerhedsrapport\"},\"menu_settings\":{\"message\":\"Assistent-indstillinger\"},\"menu_wot_reputation_indicator\":{\"message\":\"Webstedsomdømmeindikator\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Omdømmetillidsniveau\"},\"assistant_select_element\":{\"message\":\"Elementblokering\"},\"assistant_select_element_ext\":{\"message\":\"Vælg et element på siden, der skal blokeres\"},\"assistant_select_element_cancel\":{\"message\":\"Afbryd\"},\"assistant_block_element\":{\"message\":\"Elementblokering\"},\"assistant_block_element_explain\":{\"message\":\"Justér regel for elementblokering\"},\"assistant_slider_explain\":{\"message\":\"Flyt skyderen for at ændre størrelsen på den ramme, den nye regel vil fungere for:\"},\"assistant_extended_settings\":{\"message\":\"Avancerede indstillinger\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Anvend reglen på alle websteder\"},\"assistant_block_by_reference\":{\"message\":\"Blokér efter referencelink\"},\"assistant_block_similar\":{\"message\":\"Blokér lignende\"},\"assistant_another_element\":{\"message\":\"Vælg et andet element\"},\"assistant_preview\":{\"message\":\"Forhåndsvisning\"},\"assistant_block\":{\"message\":\"Blokér\"},\"assistant_settings\":{\"message\":\"Assistent-indstillinger\"},\"assistant_preview_header\":{\"message\":\"Elementblokering - forhåndsvisning\"},\"assistant_preview_header_info\":{\"message\":\"Sørg for, at elementet er blokeret som tilsigtet\"},\"assistant_preview_end\":{\"message\":\"Afslut forhåndsvisning\"},\"wot_unknown_description\":{\"message\":\"Dette websteds omdømme er ikke defineret af $1\"},\"wot_bad_description\":{\"message\":\"Dette websted har et meget dårligt omdømme jf. $1\"},\"wot_poor_description\":{\"message\":\"Dette websted har et dårligt omdømme jf. $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Dette websted har et ringe omdømme jf. $1\"},\"wot_good_description\":{\"message\":\"Dette websted har et godt omdømme jf. $1\"},\"wot_excellent_description\":{\"message\":\"Dette websted har et fremragende omdømme \\njf. $1\"},\"settings_choose_size_and_position\":{\"message\":\"Justér størrelse og position for AdGuard Assistent\"},\"settings_icon_size\":{\"message\":\"Ikonstørrelse:\"},\"settings_small\":{\"message\":\"Lille\"},\"settings_big\":{\"message\":\"Stor\"},\"settings_position\":{\"message\":\"Position:\"},\"settings_left_top\":{\"message\":\"Øverst til venstre\"},\"settings_right_top\":{\"message\":\"Øverst til højre\"},\"settings_left_bottom\":{\"message\":\"Nederst til venstre\"},\"settings_right_bottom\":{\"message\":\"Nederst til højre\"},\"settings_cancel\":{\"message\":\"Afbryd\"},\"settings_save\":{\"message\":\"Gem ændringer\"}}");

/***/ }),
/* 51 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Webseiten\",\"settings_position_save_all\":\"Alle Webseiten\",\"settings_position_save_this\":\"Diese Webseite\",\"assistant_select_element_start\":\"Starten\",\"assistant_select_element_text\":\"Wählen Sie ein zu sperrenden Element auf der Seite aus. Laden Sie die Seite neu, um den Sperrmodus zu verlassen.\",\"menu_filtration_status\":{\"message\":\"Diese Webseite filtern\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Schutz für 30 Sekunden deaktivieren\"},\"menu_block_ad_on_site\":{\"message\":\"Werbung auf dieser Seite sperren\"},\"menu_report_abuse\":{\"message\":\"Diese Webseite melden\"},\"menu_site_report\":{\"message\":\"Sicherheitsbericht dieser Webseite\"},\"menu_settings\":{\"message\":\"Assistent-Einstellungen\"},\"menu_wot_reputation_indicator\":{\"message\":\"Website-Reputations-Indikator\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Reputationsvertrauensgrad\"},\"assistant_select_element\":{\"message\":\"Element sperren\"},\"assistant_select_element_ext\":{\"message\":\"Zu sperrendes Element auf der Seite auswählen\"},\"assistant_select_element_cancel\":{\"message\":\"Abbrechen\"},\"assistant_block_element\":{\"message\":\"Element sperren\"},\"assistant_block_element_explain\":{\"message\":\"Regel zum Sperren von Elementen anpassen\"},\"assistant_slider_explain\":{\"message\":\"Bewegen Sie den Schieberegler, um die Ausmaßgröße der neuen Regeln zu ändern:\"},\"assistant_extended_settings\":{\"message\":\"Erweiterte Einstellungen\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Regel auf alle Webseiten anwenden\"},\"assistant_block_by_reference\":{\"message\":\"Durch Referenzlink sperren\"},\"assistant_block_similar\":{\"message\":\"Ähnliche Elemente sperren\"},\"assistant_another_element\":{\"message\":\"Ein anderes Element wählen\"},\"assistant_preview\":{\"message\":\"Vorschau\"},\"assistant_block\":{\"message\":\"Sperren\"},\"assistant_settings\":{\"message\":\"Assistent-Einstellungen\"},\"assistant_preview_header\":{\"message\":\"Vorschau der zu sperrenden Elemente\"},\"assistant_preview_header_info\":{\"message\":\"Prüfen Sie, ob das Element blockiert ist\"},\"assistant_preview_end\":{\"message\":\"Vorschau beenden\"},\"wot_unknown_description\":{\"message\":\"Der Ruf dieser Webseite wird nicht durch $1 festgelegt\"},\"wot_bad_description\":{\"message\":\"Diese Webseite hat einen sehr schlechten Ruf laut $1\"},\"wot_poor_description\":{\"message\":\"Diese Webseite hat einen schlechten Ruf laut $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Diese Webseite hat einen schlechten Ruf laut $1\"},\"wot_good_description\":{\"message\":\"Diese Webseite hat einen guten Ruf laut $1\"},\"wot_excellent_description\":{\"message\":\"Diese Webseite hat einen exzellenten Ruf laut $1\"},\"settings_choose_size_and_position\":{\"message\":\"Anpassen der Größe und Position des AdGuard-Assistent\"},\"settings_icon_size\":{\"message\":\"Symbol-Größe:\"},\"settings_small\":{\"message\":\"Klein\"},\"settings_big\":{\"message\":\"Groß\"},\"settings_position\":{\"message\":\"Position:\"},\"settings_left_top\":{\"message\":\"Oben links\"},\"settings_right_top\":{\"message\":\"Oben rechts\"},\"settings_left_bottom\":{\"message\":\"Unten links\"},\"settings_right_bottom\":{\"message\":\"Unten rechts\"},\"settings_cancel\":{\"message\":\"Abbrechen\"},\"settings_save\":{\"message\":\"Änderungen speichern\"}}");

/***/ }),
/* 52 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Websites\",\"settings_position_save_all\":\"All websites\",\"settings_position_save_this\":\"This website\",\"assistant_select_element_start\":\"Start\",\"assistant_select_element_text\":\"Choose an element on the page to block. Refresh the page to cancel the element blocking mode.\",\"menu_filtration_status\":{\"message\":\"Filtering on this website\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Do not filter for 30 seconds\"},\"menu_block_ad_on_site\":{\"message\":\"Block ad on this website\"},\"menu_report_abuse\":{\"message\":\"Report the website\"},\"menu_site_report\":{\"message\":\"Website security report\"},\"menu_settings\":{\"message\":\"Assistant settings\"},\"menu_wot_reputation_indicator\":{\"message\":\"Site reputation indicator\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Reputation Confidence Level\"},\"assistant_select_element\":{\"message\":\"Element blocking\"},\"assistant_select_element_ext\":{\"message\":\"Choose an element on the page to block\"},\"assistant_select_element_cancel\":{\"message\":\"Cancel\"},\"assistant_block_element\":{\"message\":\"Element blocking\"},\"assistant_block_element_explain\":{\"message\":\"Adjust element blocking rule\"},\"assistant_slider_explain\":{\"message\":\"Move the slider to change the size of the frame the new rule will work for:\"},\"assistant_extended_settings\":{\"message\":\"Advanced settings\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Apply the rule to all websites\"},\"assistant_block_by_reference\":{\"message\":\"Block by reference link\"},\"assistant_block_similar\":{\"message\":\"Block similar\"},\"assistant_another_element\":{\"message\":\"Select a different element\"},\"assistant_preview\":{\"message\":\"Preview\"},\"assistant_block\":{\"message\":\"Block\"},\"assistant_settings\":{\"message\":\"Assistant settings\"},\"assistant_preview_header\":{\"message\":\"Element blocking - preview\"},\"assistant_preview_header_info\":{\"message\":\"Make sure that element is blocked as intended\"},\"assistant_preview_end\":{\"message\":\"Exit preview\"},\"wot_unknown_description\":{\"message\":\"This website's reputation is not defined by $1\"},\"wot_bad_description\":{\"message\":\"This website has a very bad reputation\\naccording to $1\"},\"wot_poor_description\":{\"message\":\"This website has a bad reputation \\naccording to $1\"},\"wot_unsatisfactory_description\":{\"message\":\"This website has a poor reputation\\naccording to $1\"},\"wot_good_description\":{\"message\":\"This website has a good reputation\\naccording to $1\"},\"wot_excellent_description\":{\"message\":\"This website has an excellent reputation\\naccording to $1\"},\"settings_choose_size_and_position\":{\"message\":\"Adjust AdGuard Assistant size and position\"},\"settings_icon_size\":{\"message\":\"Icon size:\"},\"settings_small\":{\"message\":\"Small\"},\"settings_big\":{\"message\":\"Large\"},\"settings_position\":{\"message\":\"Position:\"},\"settings_left_top\":{\"message\":\"Top left\"},\"settings_right_top\":{\"message\":\"Top right\"},\"settings_left_bottom\":{\"message\":\"Bottom left\"},\"settings_right_bottom\":{\"message\":\"Bottom right\"},\"settings_cancel\":{\"message\":\"Cancel\"},\"settings_save\":{\"message\":\"Save changes\"}}");

/***/ }),
/* 53 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Sitios web\",\"settings_position_save_all\":\"Todos los sitios web\",\"settings_position_save_this\":\"Este sitio web\",\"assistant_select_element_start\":\"Comenzar\",\"assistant_select_element_text\":\"Elige un elemento en la página para bloquear. Actualiza la página para cancelar el bloqueo de elementos.\",\"menu_filtration_status\":{\"message\":\"Filtrado en este sitio web\"},\"menu_do_not_filter_30_sec\":{\"message\":\"No filtrar durante 30 segundos\"},\"menu_block_ad_on_site\":{\"message\":\"Bloquear anuncios en este sitio web\"},\"menu_report_abuse\":{\"message\":\"Reportar el sitio web\"},\"menu_site_report\":{\"message\":\"Informe de seguridad del sitio web\"},\"menu_settings\":{\"message\":\"Configuración del asistente\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indicador de reputación del sitio\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Nivel de confianza de reputación\"},\"assistant_select_element\":{\"message\":\"Bloqueo de elementos\"},\"assistant_select_element_ext\":{\"message\":\"Elige un elemento en la página para bloquear\"},\"assistant_select_element_cancel\":{\"message\":\"Cancelar\"},\"assistant_block_element\":{\"message\":\"Bloqueo de elementos\"},\"assistant_block_element_explain\":{\"message\":\"Ajustar la regla de bloqueo del elemento\"},\"assistant_slider_explain\":{\"message\":\"Mueve el control deslizante para cambiar el tamaño del marco para el que funcionará la nueva regla:\"},\"assistant_extended_settings\":{\"message\":\"Configuración avanzada\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Aplicar la regla a todos los sitios web\"},\"assistant_block_by_reference\":{\"message\":\"Bloquear por enlace de referencia\"},\"assistant_block_similar\":{\"message\":\"Bloquear elemento similar\"},\"assistant_another_element\":{\"message\":\"Seleccionar otro elemento\"},\"assistant_preview\":{\"message\":\"Vista previa\"},\"assistant_block\":{\"message\":\"Bloquear\"},\"assistant_settings\":{\"message\":\"Configuración del asistente\"},\"assistant_preview_header\":{\"message\":\"Bloqueo de elementos - vista previa\"},\"assistant_preview_header_info\":{\"message\":\"Asegúrate de que el elemento esté bloqueado como se deseaba\"},\"assistant_preview_end\":{\"message\":\"Salir de vista previa\"},\"wot_unknown_description\":{\"message\":\"La reputación de este sitio web no está definida por $1\"},\"wot_bad_description\":{\"message\":\"Este sitio web tiene muy mala reputación\\nde acuerdo a $1\"},\"wot_poor_description\":{\"message\":\"Este sitio web tiene mala reputación\\nde acuerdo a $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Este sitio web tiene pobre reputación\\nde acuerdo a $1\"},\"wot_good_description\":{\"message\":\"Este sitio web tiene buena reputación\\nde acuerdo a $1\"},\"wot_excellent_description\":{\"message\":\"Este sitio web tiene excelente reputación\\nde acuerdo a $1\"},\"settings_choose_size_and_position\":{\"message\":\"Ajustar el tamaño y la posición del Asistente de AdGuard\"},\"settings_icon_size\":{\"message\":\"Tamaño del icono:\"},\"settings_small\":{\"message\":\"Pequeño\"},\"settings_big\":{\"message\":\"Grande\"},\"settings_position\":{\"message\":\"Posición:\"},\"settings_left_top\":{\"message\":\"Arriba a la izquierda\"},\"settings_right_top\":{\"message\":\"Arriba a la derecha\"},\"settings_left_bottom\":{\"message\":\"Abajo a la izquierda\"},\"settings_right_bottom\":{\"message\":\"Abajo a la derecha\"},\"settings_cancel\":{\"message\":\"Cancelar\"},\"settings_save\":{\"message\":\"Guardar cambios\"}}");

/***/ }),
/* 54 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"وبسایت\",\"settings_position_save_all\":\"همه وبسایت ها\",\"settings_position_save_this\":\"این وبسایت\",\"assistant_select_element_start\":\"شروع\",\"assistant_select_element_text\":\"عنصری در صفحه برای مسدودسازی انتخاب کنید. برای لغو،صفحه را رفرش کنید.\",\"menu_filtration_status\":{\"message\":\"فیلترینگ در این وبسایت\"},\"menu_do_not_filter_30_sec\":{\"message\":\"به مدت 30 ثانیه فیلتر نکن\"},\"menu_block_ad_on_site\":{\"message\":\"مسدودسازی تبلیغ در این وبسایت\"},\"menu_report_abuse\":{\"message\":\"گزارش وبسایت\"},\"menu_site_report\":{\"message\":\"گزارش امنیتی وبسایت\"},\"menu_settings\":{\"message\":\"تنظیمات دستیار\"},\"menu_wot_reputation_indicator\":{\"message\":\"نشانگر اعتبار سایت\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"سطح اعتبار\"},\"assistant_select_element\":{\"message\":\"مسدودسازی عنصر\"},\"assistant_select_element_ext\":{\"message\":\"عنصری در صفحه برای مسدودسازی انتخاب کنید\"},\"assistant_select_element_cancel\":{\"message\":\"لغو\"},\"assistant_block_element\":{\"message\":\"مسدودسازی عنصر\"},\"assistant_block_element_explain\":{\"message\":\"تنظیم دستور مسدودسازی عنصر\"},\"assistant_slider_explain\":{\"message\":\"جابجایی لغزنده برای تغییر اندازه فریم که دستور جدیدی کار خواهد کرد:\"},\"assistant_extended_settings\":{\"message\":\"تنظیمات پیشرفته\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"اِعمال دستور در همه وبسایت ها\"},\"assistant_block_by_reference\":{\"message\":\"مسدودسازی با لینک مرجع\"},\"assistant_block_similar\":{\"message\":\"مسدودسازی مشابه\"},\"assistant_another_element\":{\"message\":\"عنصر دیگری انتخاب کنید\"},\"assistant_preview\":{\"message\":\"پیشنمایش\"},\"assistant_block\":{\"message\":\"مسدود\"},\"assistant_settings\":{\"message\":\"تنظیمات دستیار\"},\"assistant_preview_header\":{\"message\":\"مسدودسازی عنصر - پیشنمایش\"},\"assistant_preview_header_info\":{\"message\":\"مطمئن شوید عنصر به شکل دلخواه مسدود شود\"},\"assistant_preview_end\":{\"message\":\"خروج از پیشنمایش\"},\"wot_unknown_description\":{\"message\":\"اعتبار تعریف نشده است\"},\"wot_bad_description\":{\"message\":\"این وبسایت اعتبار خیلی بدی دارد\\nبر طبق \"},\"wot_poor_description\":{\"message\":\"این وبسایت اعتبار بدی دارد\\nبر طبق \"},\"wot_unsatisfactory_description\":{\"message\":\"این وبسایت اعتبار کمی دارد\\nبر طبق \"},\"wot_good_description\":{\"message\":\"این وبسایت اعتبار خوبی دارد\\nبر طبق \"},\"wot_excellent_description\":{\"message\":\"این وبسایت اعتبار عالی دارد\\nبر طبق \"},\"settings_choose_size_and_position\":{\"message\":\"تنظیم اندازه و موقعیت دستیار AdGuard\"},\"settings_icon_size\":{\"message\":\"اندازه آیکون:\"},\"settings_small\":{\"message\":\"کوچک\"},\"settings_big\":{\"message\":\"بزرگ\"},\"settings_position\":{\"message\":\"موقعیت:\"},\"settings_left_top\":{\"message\":\"بالا سمت چپ\"},\"settings_right_top\":{\"message\":\"بالا سمت راست\"},\"settings_left_bottom\":{\"message\":\"پایین سمت چپ\"},\"settings_right_bottom\":{\"message\":\"پایین سمت راست\"},\"settings_cancel\":{\"message\":\"لغو\"},\"settings_save\":{\"message\":\"ذخیره تغییرات\"}}");

/***/ }),
/* 55 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Verkkosivustot\",\"settings_position_save_all\":\"Kaikki sivustot\",\"settings_position_save_this\":\"Tämä sivusto\",\"assistant_select_element_start\":\"Aloita\",\"assistant_select_element_text\":\"Valitse sivulta estettävä elementti. Päivitä sivu poistuaksesi elementtien estotilasta.\",\"menu_filtration_status\":{\"message\":\"Tämän sivuston suodatus\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Pysäytä suodatus 30 sekunnin ajaksi\"},\"menu_block_ad_on_site\":{\"message\":\"Estä mainos tältä sivustolta\"},\"menu_report_abuse\":{\"message\":\"Ilmoita ongelmasta\"},\"menu_site_report\":{\"message\":\"Sivuston suojausraportti\"},\"menu_settings\":{\"message\":\"Apurin asetukset\"},\"menu_wot_reputation_indicator\":{\"message\":\"Sivuston maine\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Mainearvion luotettavuus\"},\"assistant_select_element\":{\"message\":\"Elementin esto\"},\"assistant_select_element_ext\":{\"message\":\"Valitse sivulta estettävä elementti\"},\"assistant_select_element_cancel\":{\"message\":\"Peruuta\"},\"assistant_block_element\":{\"message\":\"Elementin esto\"},\"assistant_block_element_explain\":{\"message\":\"Muokkaa elementin estosääntöä\"},\"assistant_slider_explain\":{\"message\":\"Siirrä liukukytkintä muuttaaksesi sen kehyksen kokoa, johon tämä sääntö vaikuttaa:\"},\"assistant_extended_settings\":{\"message\":\"Lisäasetukset\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Käytä sääntöä kaikilla sivustoilla\"},\"assistant_block_by_reference\":{\"message\":\"Estä viitelinkillä\"},\"assistant_block_similar\":{\"message\":\"Estä samankaltaiset\"},\"assistant_another_element\":{\"message\":\"Valitse eri elementti\"},\"assistant_preview\":{\"message\":\"Esikatsele\"},\"assistant_block\":{\"message\":\"Estä\"},\"assistant_settings\":{\"message\":\"Apurin asetukset\"},\"assistant_preview_header\":{\"message\":\"Elementin estosäännön esikatselu\"},\"assistant_preview_header_info\":{\"message\":\"Varmista, että elementti estetään tarkoituksenmukaisesti\"},\"assistant_preview_end\":{\"message\":\"Sulje esikatselu\"},\"wot_unknown_description\":{\"message\":\"$1 ei tarjoa sivustolle mainearviointia\"},\"wot_bad_description\":{\"message\":\"$1 arvioinnin mukaan sivustolla on erittäin huono maine\"},\"wot_poor_description\":{\"message\":\"$1 arvioinnin mukaan sivustolla on huono maine\"},\"wot_unsatisfactory_description\":{\"message\":\"$1 arvioinnin mukaan sivustolla on heikko maine\"},\"wot_good_description\":{\"message\":\"$1 arvioinnin mukaan sivustolla on hyvä maine\"},\"wot_excellent_description\":{\"message\":\"$1 arvioinnin mukaan sivustolla on erinomainen maine\"},\"settings_choose_size_and_position\":{\"message\":\"Säädä AdGuard Avustajan kokoa ja sijaintia\"},\"settings_icon_size\":{\"message\":\"Kuvakkeen koko:\"},\"settings_small\":{\"message\":\"Pieni\"},\"settings_big\":{\"message\":\"Suuri\"},\"settings_position\":{\"message\":\"Sijainti:\"},\"settings_left_top\":{\"message\":\"Ylhäällä vasemmalla\"},\"settings_right_top\":{\"message\":\"Ylhäällä oikealla\"},\"settings_left_bottom\":{\"message\":\"Alhaalla vasemmalla\"},\"settings_right_bottom\":{\"message\":\"Alhaalla oikealla\"},\"settings_cancel\":{\"message\":\"Peruuta\"},\"settings_save\":{\"message\":\"Tallenna muutokset\"}}");

/***/ }),
/* 56 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Sites web\",\"settings_position_save_all\":\"Tous les sites web\",\"settings_position_save_this\":\"Ce site web\",\"assistant_select_element_start\":\"Démarrer\",\"assistant_select_element_text\":\"Choisissez un élément de la page à bloquer. Pour afficher l'élément de nouveau, rafraîchissez la page.\",\"menu_filtration_status\":{\"message\":\"Filtrages sur ce site\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Ne pas filtrer pendant 30 secondes \"},\"menu_block_ad_on_site\":{\"message\":\"Blocage des annonces sur ce site \"},\"menu_report_abuse\":{\"message\":\"Signaler le site\"},\"menu_site_report\":{\"message\":\"Rapport de sécurité du site\"},\"menu_settings\":{\"message\":\"Réglages de l'Assistant AdGuard\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indice de réputation du site\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Niveau de confiance\"},\"assistant_select_element\":{\"message\":\"Blocage d'éléments \"},\"assistant_select_element_ext\":{\"message\":\"Choisir un élément de la page à bloquer \"},\"assistant_select_element_cancel\":{\"message\":\"Annuler\"},\"assistant_block_element\":{\"message\":\"Blocage d'éléments \"},\"assistant_block_element_explain\":{\"message\":\"Affiner la règle de blocage d'elements\"},\"assistant_slider_explain\":{\"message\":\"Déplacez le curseur pour modifier la taille du cadre de travail de la nouvelle règle\"},\"assistant_extended_settings\":{\"message\":\"Paramétrages avancés \"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Appliquer la règle à tous les sites\"},\"assistant_block_by_reference\":{\"message\":\"Blocage par liens de reference\"},\"assistant_block_similar\":{\"message\":\"Blocage des objets similaires \"},\"assistant_another_element\":{\"message\":\"Sélectionner un élément différent\"},\"assistant_preview\":{\"message\":\"Previsualisation \"},\"assistant_block\":{\"message\":\"Blocage \"},\"assistant_settings\":{\"message\":\"Réglages de l'Assistant AdGuard\"},\"assistant_preview_header\":{\"message\":\"Blocage d'éléments - Previsualisation \"},\"assistant_preview_header_info\":{\"message\":\"Assurez-vous que l'élément est bloqué comme prévu\"},\"assistant_preview_end\":{\"message\":\"Sortir de la previsualisation \"},\"wot_unknown_description\":{\"message\":\"La définition de la réputation de ce site web n'est pas définie par $1\"},\"wot_bad_description\":{\"message\":\"Ce site web a très mauvaise réputation selon $1\"},\"wot_poor_description\":{\"message\":\"Ce site web a mauvaise réputation selon $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Ce site web a une reputation médiocre selon $1\"},\"wot_good_description\":{\"message\":\"Ce site a bonne réputation selon $1\"},\"wot_excellent_description\":{\"message\":\"Ce site a une réputation excellente selon $1\"},\"settings_choose_size_and_position\":{\"message\":\"Affiner la taille et la position de l'assistant AdGuard \"},\"settings_icon_size\":{\"message\":\"Taille de l'icone\"},\"settings_small\":{\"message\":\"Petite\"},\"settings_big\":{\"message\":\"Grande\"},\"settings_position\":{\"message\":\"Positionnement\"},\"settings_left_top\":{\"message\":\"En haut à gauche\"},\"settings_right_top\":{\"message\":\"En haut à droite\"},\"settings_left_bottom\":{\"message\":\"En bas à gauche\"},\"settings_right_bottom\":{\"message\":\"En bas à droite \"},\"settings_cancel\":{\"message\":\"Annuler\"},\"settings_save\":{\"message\":\"Sauvegarder les modifications \"}}");

/***/ }),
/* 57 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"אתרים\",\"settings_position_save_all\":\"כל האתרים\",\"settings_position_save_this\":\"האתר הזה\",\"assistant_select_element_start\":\"התחל\",\"assistant_select_element_text\":\".בחר אלמנט בדף לחסימה .רענן את הדף כדי לבטל את מצב חסימת האלמנטים\",\"menu_filtration_status\":{\"message\":\"סינון באתר זה\"},\"menu_do_not_filter_30_sec\":{\"message\":\"אל תסנן למשך 30 שניות\"},\"menu_block_ad_on_site\":{\"message\":\"חסום פרסומת באתר זה\"},\"menu_report_abuse\":{\"message\":\"דווח על האתר\"},\"menu_site_report\":{\"message\":\"דוח אבטחת אתר\"},\"menu_settings\":{\"message\":\"הגדרות המסייע\"},\"menu_wot_reputation_indicator\":{\"message\":\"מד של מוניטין אתרים\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"רמת אמון מוניטין\"},\"assistant_select_element\":{\"message\":\"חסימת אלמנט\"},\"assistant_select_element_ext\":{\"message\":\"בחר אלמנט בדף לחסימה\"},\"assistant_select_element_cancel\":{\"message\":\"בטל\"},\"assistant_block_element\":{\"message\":\"חסימת אלמנט\"},\"assistant_block_element_explain\":{\"message\":\"התאם כלל של חסימת אלמנט\"},\"assistant_slider_explain\":{\"message\":\"הזז את המַחְלֵק כדי לשנות את גודל המסגרת שבה הכלל החדש יעבוד:\"},\"assistant_extended_settings\":{\"message\":\"הגדרות מתקדמות\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"החל את הכלל בכל האתרים\"},\"assistant_block_by_reference\":{\"message\":\"חסום לפי קישור הפניה\"},\"assistant_block_similar\":{\"message\":\"חסום דומה\"},\"assistant_another_element\":{\"message\":\"בחר אלמנט אחר\"},\"assistant_preview\":{\"message\":\"הצג מראש\"},\"assistant_block\":{\"message\":\"חסום\"},\"assistant_settings\":{\"message\":\"הגדרות המסייע\"},\"assistant_preview_header\":{\"message\":\"חסימת אלמנט - תצוגה מקדימה\"},\"assistant_preview_header_info\":{\"message\":\"ודא כי אלמנט זה חסום כמתוכנן\"},\"assistant_preview_end\":{\"message\":\"צא מתצוגה מקדימה\"},\"wot_unknown_description\":{\"message\":\"המוניטין של אתר זה אינו מוגדר על ידי $1\"},\"wot_bad_description\":{\"message\":\"לאתר זה יש מוניטין רע מאוד\\nעל פי $1\"},\"wot_poor_description\":{\"message\":\"לאתר זה יש מוניטין רע \\nעל פי $1\"},\"wot_unsatisfactory_description\":{\"message\":\"לאתר זה יש מוניטין ירוד\\nעל פי $1\"},\"wot_good_description\":{\"message\":\"לאתר זה יש מוניטין טוב\\nעל פי $1\"},\"wot_excellent_description\":{\"message\":\"לאתר זה יש מוניטין מצויין\\nעל פי $1\"},\"settings_choose_size_and_position\":{\"message\":\"התאם גודל ומיקום של מסייע AdGuard\"},\"settings_icon_size\":{\"message\":\"גודל איקון:\"},\"settings_small\":{\"message\":\"קטן\"},\"settings_big\":{\"message\":\"גדול\"},\"settings_position\":{\"message\":\"מיקום:\"},\"settings_left_top\":{\"message\":\"בחלק העליון משמאל\"},\"settings_right_top\":{\"message\":\"בחלק העליון מימין\"},\"settings_left_bottom\":{\"message\":\"צד שמאל למטה\"},\"settings_right_bottom\":{\"message\":\"צד ימין למטה\"},\"settings_cancel\":{\"message\":\"בטל\"},\"settings_save\":{\"message\":\"שמור שינויים\"}}");

/***/ }),
/* 58 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_icon_size\":{\"message\":\"आइकन का आकार:\"},\"settings_small\":{\"message\":\"छोटा\"},\"settings_big\":{\"message\":\"बड़ा\"}}");

/***/ }),
/* 59 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Web stranice\",\"settings_position_save_all\":\"Sve web stranice\",\"settings_position_save_this\":\"Ova web stranica\",\"assistant_select_element_start\":\"Započni\",\"assistant_select_element_text\":\"Odaberite element na stranici za blokiranje. Osvježite stranicu za izlazak iz načina blokade elemenata.\",\"menu_filtration_status\":{\"message\":\"Filtriranje na ovoj web stranici\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Ne filtriraj idućih 30 sekundi\"},\"menu_block_ad_on_site\":{\"message\":\"Blokiraj oglas na ovoj web stranici\"},\"menu_report_abuse\":{\"message\":\"Prijavi ovu stranicu\"},\"menu_site_report\":{\"message\":\"Sigurnosni izvještaj stranice\"},\"menu_settings\":{\"message\":\"Postavke pomoćnika\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indikator reputacije stranice\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Razina povjerenja reputacije\"},\"assistant_select_element\":{\"message\":\"Blokiranje elementa\"},\"assistant_select_element_ext\":{\"message\":\"Odaberite element na stranici za blokiranje\"},\"assistant_select_element_cancel\":{\"message\":\"Poništi\"},\"assistant_block_element\":{\"message\":\"Blokiranje elementa\"},\"assistant_block_element_explain\":{\"message\":\"Prilagodite pravilo blokiranja elemenata\"},\"assistant_slider_explain\":{\"message\":\"Pomaknite klizač da biste promijenili veličinu okvira na koji će se primijeniti novo pravilo:\"},\"assistant_extended_settings\":{\"message\":\"Napredne postavke\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Primjeni pravilo na sve web stranice\"},\"assistant_block_by_reference\":{\"message\":\"Blokiraj referentnom vezom\"},\"assistant_block_similar\":{\"message\":\"Blokiraj slične\"},\"assistant_another_element\":{\"message\":\"Odaberite drugi element\"},\"assistant_preview\":{\"message\":\"Pregled\"},\"assistant_block\":{\"message\":\"Blokiraj\"},\"assistant_settings\":{\"message\":\"Postavke pomoćnika\"},\"assistant_preview_header\":{\"message\":\"Pregled blokiranja elementa\"},\"assistant_preview_header_info\":{\"message\":\"Provjerite da je li element blokiran kako ste željeli\"},\"assistant_preview_end\":{\"message\":\"Izlaz iz pregleda\"},\"wot_unknown_description\":{\"message\":\"Reputaciju stranice nije odredio $1\"},\"wot_bad_description\":{\"message\":\"Web stranica ima jako lošu reputaciju \\nprema $1\"},\"wot_poor_description\":{\"message\":\"Web stranica ima lošu reputaciju \\nprema $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Web stranica ima lošu reputaciju \\nprema $1\"},\"wot_good_description\":{\"message\":\"Web stranica ima dobru reputaciju \\nprema $1\"},\"wot_excellent_description\":{\"message\":\"Web stranica ima odličnu reputaciju \\nprema $1\"},\"settings_choose_size_and_position\":{\"message\":\"Podesite veličinu i poziciju AdGuard Pomoćnika\"},\"settings_icon_size\":{\"message\":\"Veličina ikone:\"},\"settings_small\":{\"message\":\"Malo\"},\"settings_big\":{\"message\":\"Veliko\"},\"settings_position\":{\"message\":\"Pozicija:\"},\"settings_left_top\":{\"message\":\"Gore lijevo\"},\"settings_right_top\":{\"message\":\"Gore desno\"},\"settings_left_bottom\":{\"message\":\"Dolje lijevo\"},\"settings_right_bottom\":{\"message\":\"Dolje desno\"},\"settings_cancel\":{\"message\":\"Poništi\"},\"settings_save\":{\"message\":\"Spremi promjene\"}}");

/***/ }),
/* 60 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Situs\",\"settings_position_save_all\":\"Semua situs\",\"settings_position_save_this\":\"Situs ini\",\"assistant_select_element_start\":\"Mulai\",\"assistant_select_element_text\":\"Pilih elemen di halaman untuk diblokir. Segarkan halaman untuk membatalkan mode pemblokiran elemen.\",\"menu_filtration_status\":{\"message\":\"Penyaringan di situs ini\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Nonaktifkan penyaring untuk 30 detik\"},\"menu_block_ad_on_site\":{\"message\":\"Blokir iklan di situs ini\"},\"menu_report_abuse\":{\"message\":\"Laporkan situs\"},\"menu_site_report\":{\"message\":\"Laporan keamanan situs\"},\"menu_settings\":{\"message\":\"Pengaturan Asisten\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indikator reputasi situs\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Tingkat Keyakinan Reputasi\"},\"assistant_select_element\":{\"message\":\"Blok Elemen\"},\"assistant_select_element_ext\":{\"message\":\"Pilih elemen di halaman untuk diblok\"},\"assistant_select_element_cancel\":{\"message\":\"Batalkan\"},\"assistant_block_element\":{\"message\":\"Blok Elemen\"},\"assistant_block_element_explain\":{\"message\":\"Atur aturan blokir elemen\"},\"assistant_slider_explain\":{\"message\":\"Pindahkan slider untuk mengatur ukuran frame dimana aturan baru akan aktif:\"},\"assistant_extended_settings\":{\"message\":\"Pengaturan lanjutan\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Aktifkan aturan untuk seluruh situs\"},\"assistant_block_by_reference\":{\"message\":\"Blok berdasarkan referensi situs\"},\"assistant_block_similar\":{\"message\":\"Blok semacamnya\"},\"assistant_another_element\":{\"message\":\"Pilih elemen lainnya\"},\"assistant_preview\":{\"message\":\"Pratinjau\"},\"assistant_block\":{\"message\":\"Blok\"},\"assistant_settings\":{\"message\":\"Pengaturan Asisten\"},\"assistant_preview_header\":{\"message\":\"Blok elemen - pratinjau\"},\"assistant_preview_header_info\":{\"message\":\"Harap pastikan bahwa elemen diblok sesuai kemauan Anda\"},\"assistant_preview_end\":{\"message\":\"Keluar pratinjau\"},\"wot_unknown_description\":{\"message\":\"Reputasi tidak terdefinisi\"},\"wot_bad_description\":{\"message\":\"Situs ini mempunyai reputasi sangat buruk\\nberdasarkan $1\"},\"wot_poor_description\":{\"message\":\"Situs ini mempunyai reputasi buruk\\nberdasarkan $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Situs ini mempunyai reputasi biasa \\nberdasarkan $1\"},\"wot_good_description\":{\"message\":\"Situs ini mempunyai reputasi baik \\nberdasarkan $1\"},\"wot_excellent_description\":{\"message\":\"Situs ini mempunyai reputasi sempurna \\nberdasarkan $1\"},\"settings_choose_size_and_position\":{\"message\":\"Atur ukuran dan posisi AdGuard Assistant\"},\"settings_icon_size\":{\"message\":\"Ukuran ikon:\"},\"settings_small\":{\"message\":\"Kecil\"},\"settings_big\":{\"message\":\"Besar\"},\"settings_position\":{\"message\":\"Posisi:\"},\"settings_left_top\":{\"message\":\"Atas kiri\"},\"settings_right_top\":{\"message\":\"Atas kanan\"},\"settings_left_bottom\":{\"message\":\"Bawah kiri\"},\"settings_right_bottom\":{\"message\":\"Bawah kanan\"},\"settings_cancel\":{\"message\":\"Batal\"},\"settings_save\":{\"message\":\"Simpan perubahan\"}}");

/***/ }),
/* 61 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Siti\",\"settings_position_save_all\":\"Tutti i siti\",\"settings_position_save_this\":\"Questo sito web\",\"assistant_select_element_start\":\"Inizio\",\"assistant_select_element_text\":\"Seleziona un elemento nella pagina per bloccarlo. Ricarica la pagina per cancellare la modalità che blocca un elemento.\",\"menu_filtration_status\":{\"message\":\"Filtraggio su questo sito web\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Non filtrare per 30 secondi\"},\"menu_block_ad_on_site\":{\"message\":\"Blocca annunci su questo sito web\"},\"menu_report_abuse\":{\"message\":\"Segnala il sito\"},\"menu_site_report\":{\"message\":\"Rapporto di sicurezza del sito\"},\"menu_settings\":{\"message\":\"Impostazioni assistente\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indicatore reputazione sito\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Livello della reputazione\"},\"assistant_select_element\":{\"message\":\"Bloccaggio elemento\"},\"assistant_select_element_ext\":{\"message\":\"Scegli un elemento da bloccare sulla pagina\"},\"assistant_select_element_cancel\":{\"message\":\"Annulla\"},\"assistant_block_element\":{\"message\":\"Bloccaggio elemento\"},\"assistant_block_element_explain\":{\"message\":\"Modifica la regola di bloccaggio elemento\"},\"assistant_slider_explain\":{\"message\":\"Muovi la barra per cambiare la grandezza del frame da per il quale la nuova regola funzionerà:\"},\"assistant_extended_settings\":{\"message\":\"Impostazioni avanzate\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Applica la regola a tutti i siti\"},\"assistant_block_by_reference\":{\"message\":\"Blocca tramite link di referenza\"},\"assistant_block_similar\":{\"message\":\"Blocca simile\"},\"assistant_another_element\":{\"message\":\"Seleziona un altro elemento\"},\"assistant_preview\":{\"message\":\"Anteprima\"},\"assistant_block\":{\"message\":\"Blocca\"},\"assistant_settings\":{\"message\":\"Impostazioni assistente\"},\"assistant_preview_header\":{\"message\":\"Bloccaggio elemento - anteprima\"},\"assistant_preview_header_info\":{\"message\":\"Assicurati che l'elemento è bloccato come richiesto\"},\"assistant_preview_end\":{\"message\":\"Esci dall'anteprima\"},\"wot_unknown_description\":{\"message\":\"La reputazione di questo sito web non è definita da $1\"},\"wot_bad_description\":{\"message\":\"Questo sito web ha una pessima reputazione\\nsecondo $1\"},\"wot_poor_description\":{\"message\":\"Questo sito web ha una brutta reputazione\\nsecondo $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Questo sito web ha una mediocre reputazione\\nsecondo $1\"},\"wot_good_description\":{\"message\":\"Questo sito web ha una buona reputazione\\nsecondo $1\"},\"wot_excellent_description\":{\"message\":\"Questo sito web ha una eccellente reputazione\\nsecondo $1\"},\"settings_choose_size_and_position\":{\"message\":\"Regola dimensione e posizione di Assistente AdGuard\"},\"settings_icon_size\":{\"message\":\"Grandezza dell'icona:\"},\"settings_small\":{\"message\":\"Piccola\"},\"settings_big\":{\"message\":\"Grande\"},\"settings_position\":{\"message\":\"Posizione:\"},\"settings_left_top\":{\"message\":\"In alto a sinistra\"},\"settings_right_top\":{\"message\":\"In alto a destra\"},\"settings_left_bottom\":{\"message\":\"In basso a sinistra\"},\"settings_right_bottom\":{\"message\":\"In basso a destra\"},\"settings_cancel\":{\"message\":\"Annulla\"},\"settings_save\":{\"message\":\"Salva cambiamenti\"}}");

/***/ }),
/* 62 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"ウェブサイト\",\"settings_position_save_all\":\"すべてのウェブサイト\",\"settings_position_save_this\":\"このウェブサイト\",\"assistant_select_element_start\":\"開始\",\"assistant_select_element_text\":\"ブロックするページ上の要素を選択してください。 ページを更新し要素のブロックモードを解除します。\",\"menu_filtration_status\":{\"message\":\"このウェブサイトをフィルタリング\"},\"menu_do_not_filter_30_sec\":{\"message\":\"30秒間フィルタリングを行わない\"},\"menu_block_ad_on_site\":{\"message\":\"このサイトで広告を手動ブロックする\"},\"menu_report_abuse\":{\"message\":\"このサイトの問題を報告する\"},\"menu_site_report\":{\"message\":\"ウェブサイトのセキュリティレポート\"},\"menu_settings\":{\"message\":\"アシスタントの設定\"},\"assistant_select_element\":{\"message\":\"要素をブロック\"},\"assistant_select_element_ext\":{\"message\":\"ブロックする要素を選択\"},\"assistant_select_element_cancel\":{\"message\":\"キャンセル\"},\"assistant_block_element\":{\"message\":\"要素をブロック\"},\"assistant_block_element_explain\":{\"message\":\"要素のブロックルールを調整する\"},\"assistant_slider_explain\":{\"message\":\"スライダーを動かすと、ブロックするフレームのサイズを変更できます:\"},\"assistant_extended_settings\":{\"message\":\"高度な設定\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"全てのウェブサイトにこのルールを適用\"},\"assistant_block_by_reference\":{\"message\":\"参照リンクによるブロック\"},\"assistant_block_similar\":{\"message\":\"類似項目をブロック\"},\"assistant_another_element\":{\"message\":\"他の要素を選択\"},\"assistant_preview\":{\"message\":\"プレビュー\"},\"assistant_block\":{\"message\":\"ブロック\"},\"assistant_settings\":{\"message\":\"アシスタントの設定\"},\"assistant_preview_header\":{\"message\":\"要素のブロック - プレビュー\"},\"assistant_preview_header_info\":{\"message\":\"要素が意図したとおりにブロックされていることを確認します\"},\"assistant_preview_end\":{\"message\":\"プレビューを終了\"},\"wot_unknown_description\":{\"message\":\"評判が定義されていません\"},\"wot_bad_description\":{\"message\":\"このウェブサイトは非常に評判が悪いです: \"},\"wot_poor_description\":{\"message\":\"このウェブサイトは評判が悪いです: \"},\"wot_unsatisfactory_description\":{\"message\":\"このウェブサイトは評判がやや悪いです: \"},\"wot_good_description\":{\"message\":\"このウェブサイトは評判が良いです: \"},\"wot_excellent_description\":{\"message\":\"このウェブサイトはとても評判が良いです: \"},\"settings_choose_size_and_position\":{\"message\":\"AdGuardアシスタントのサイズと位置を調整する\"},\"settings_icon_size\":{\"message\":\"アイコンの大きさ:\"},\"settings_small\":{\"message\":\"小\"},\"settings_big\":{\"message\":\"大\"},\"settings_position\":{\"message\":\"位置:\"},\"settings_left_top\":{\"message\":\"左上\"},\"settings_right_top\":{\"message\":\"右上\"},\"settings_left_bottom\":{\"message\":\"左下\"},\"settings_right_bottom\":{\"message\":\"右下\"},\"settings_cancel\":{\"message\":\"キャンセル\"},\"settings_save\":{\"message\":\"設定を保存\"}}");

/***/ }),
/* 63 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"웹사이트\",\"settings_position_save_all\":\"모든 웹사이트\",\"settings_position_save_this\":\"이 웹사이트\",\"assistant_select_element_start\":\"시작\",\"assistant_select_element_text\":\"페이지에서 차단할 요소를 선택하세요. 요소 차단 모드를 취소하려면 페이지를 새로 고침하세요.\",\"menu_filtration_status\":{\"message\":\"이 웹사이트에서의 보호\"},\"menu_do_not_filter_30_sec\":{\"message\":\"30초 동안 차단 일시정지\"},\"menu_block_ad_on_site\":{\"message\":\"이 웹사이트에서 광고 차단\"},\"menu_report_abuse\":{\"message\":\"이 웹사이트에 관한 불만 사항 제출\"},\"menu_site_report\":{\"message\":\"웹사이트 보안 보고\"},\"menu_settings\":{\"message\":\"어시스턴트 설정\"},\"menu_wot_reputation_indicator\":{\"message\":\"웹사이트 평판 표시기\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"평판 신뢰 수준\"},\"assistant_select_element\":{\"message\":\"선택 모드\"},\"assistant_select_element_ext\":{\"message\":\"페이지에서 아무 요소나 클릭하거나\"},\"assistant_select_element_cancel\":{\"message\":\"선택 모드 취소\"},\"assistant_block_element\":{\"message\":\"요소 차단\"},\"assistant_block_element_explain\":{\"message\":\"요소 차단 규칙 설정\"},\"assistant_slider_explain\":{\"message\":\"슬라이더로 차단할 요소의 범위를 지정하세요.\"},\"assistant_extended_settings\":{\"message\":\"고급 설정\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"모든 웹사이트에 이 규칙 적용\"},\"assistant_block_by_reference\":{\"message\":\"참조 링크가 차단\"},\"assistant_block_similar\":{\"message\":\"유사한 요소 차단\"},\"assistant_another_element\":{\"message\":\"다른 요소 선택\"},\"assistant_preview\":{\"message\":\"미리 보기\"},\"assistant_block\":{\"message\":\"차단\"},\"assistant_settings\":{\"message\":\"어시스턴트 설정\"},\"assistant_preview_header\":{\"message\":\"요소 차단 - 미리 보기\"},\"assistant_preview_header_info\":{\"message\":\"의도한 대로 요소가 차단되었는지 확인하세요.\"},\"assistant_preview_end\":{\"message\":\"미리 보기 종료\"},\"wot_unknown_description\":{\"message\":\"평판이 등록되지 않았습니다.\"},\"wot_bad_description\":{\"message\":\"이 웹사이트는 아주 나쁜 평판을 갖고 있습니다.\\n제공 \"},\"wot_poor_description\":{\"message\":\"이 웹사이트는 나쁜 평판을 갖고 있습니다.\\n제공 \"},\"wot_unsatisfactory_description\":{\"message\":\"이 웹사이트는 좋지 않은 평판을 갖고 있습니다.\\n제공 \"},\"wot_good_description\":{\"message\":\"이 웹사이트는 좋은 평판을 갖고 있습니다.\\n제공 \"},\"wot_excellent_description\":{\"message\":\"이 웹사이트는 아주 좋은 평판을 갖고 있습니다.\\n제공 \"},\"settings_choose_size_and_position\":{\"message\":\"AdGuard 어시스턴트 크기와 위치를 조정합니다\"},\"settings_icon_size\":{\"message\":\"아이콘 크기:\"},\"settings_small\":{\"message\":\"작게\"},\"settings_big\":{\"message\":\"크게\"},\"settings_position\":{\"message\":\"위치:\"},\"settings_left_top\":{\"message\":\"왼쪽 위\"},\"settings_right_top\":{\"message\":\"오른쪽 위\"},\"settings_left_bottom\":{\"message\":\"왼쪽 아래\"},\"settings_right_bottom\":{\"message\":\"오른쪽 아래\"},\"settings_cancel\":{\"message\":\"취소\"},\"settings_save\":{\"message\":\"저장\"}}");

/***/ }),
/* 64 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Interneto svetainės\",\"settings_position_save_all\":\"Visos svetainės\",\"settings_position_save_this\":\"Ši svetainė\",\"assistant_select_element_start\":\"Pradėti\",\"assistant_select_element_text\":\"Pasirinkite elementą puslapyje, kurį norite blokuoti. Atnaujinkite puslapį, kad atšauktumėte elementų blokavimo režimą.\",\"menu_filtration_status\":{\"message\":\"Filtravimas šioje svetainėje\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Nefiltruoti 30 sekundžių\"},\"menu_block_ad_on_site\":{\"message\":\"Blokuoti reklamą šioje svetainėje\"},\"menu_report_abuse\":{\"message\":\"Pranešti apie svetainę\"},\"menu_site_report\":{\"message\":\"Svetainės saugumo ataskaita\"},\"menu_settings\":{\"message\":\"Asistento nustatymai\"},\"menu_wot_reputation_indicator\":{\"message\":\"Svetainės reputacijos rodiklis\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Reputacijos pasitikėjimo lygis\"},\"assistant_select_element\":{\"message\":\"Elemento blokavimas\"},\"assistant_select_element_ext\":{\"message\":\"Pasirinkite elementą puslapyje, kurį norite blokuoti\"},\"assistant_select_element_cancel\":{\"message\":\"Atšaukti\"},\"assistant_block_element\":{\"message\":\"Elemento blokavimas\"},\"assistant_block_element_explain\":{\"message\":\"Nustatykite elemento blokavimo taisyklę\"},\"assistant_slider_explain\":{\"message\":\"Slankiklio pagalba, keiskite rėmelio dydį, kuriame galios nauja taisyklė:\"},\"assistant_extended_settings\":{\"message\":\"Išplėstiniai nustatymai\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Pritaikyti taisyklę visoms svetainėms\"},\"assistant_block_by_reference\":{\"message\":\"Blokuoti pagal nuorodą\"},\"assistant_block_similar\":{\"message\":\"Blokuoti panašius\"},\"assistant_another_element\":{\"message\":\"Pasirinkti kitą elementą\"},\"assistant_preview\":{\"message\":\"Peržiūra\"},\"assistant_block\":{\"message\":\"Užblokuoti\"},\"assistant_settings\":{\"message\":\"Asistento nustatymai\"},\"assistant_preview_header\":{\"message\":\"Elemento blokavimas - peržiūra\"},\"assistant_preview_header_info\":{\"message\":\"Įsitikinkite, kad elementas yra užblokuotas kaip sumanyta\"},\"assistant_preview_end\":{\"message\":\"Baigti peržiūrą\"},\"wot_unknown_description\":{\"message\":\"Šios svetainės reputacija nėra apibrėžta $1\"},\"wot_bad_description\":{\"message\":\"Ši svetainė turi labai blogą reputaciją\\npagal $1\"},\"wot_poor_description\":{\"message\":\"Ši svetainė turi blogą reputaciją pagal $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Ši svetainė turi prastą reputaciją pagal $1\"},\"wot_good_description\":{\"message\":\"Ši svetainė turi gerą reputaciją pagal $1\"},\"wot_excellent_description\":{\"message\":\"Ši svetainė turi puikią reputaciją pagal $1\"},\"settings_choose_size_and_position\":{\"message\":\"Nustatykite AdGuard Asistento dydį ir padėtį\"},\"settings_icon_size\":{\"message\":\"Piktogramos dydis:\"},\"settings_small\":{\"message\":\"Maža\"},\"settings_big\":{\"message\":\"Didelė\"},\"settings_position\":{\"message\":\"Padėtis:\"},\"settings_left_top\":{\"message\":\"Viršuje kairėje\"},\"settings_right_top\":{\"message\":\"Viršuje dešinėje\"},\"settings_left_bottom\":{\"message\":\"Apačioje kairėje\"},\"settings_right_bottom\":{\"message\":\"Apačioje dešinėje\"},\"settings_cancel\":{\"message\":\"Atšaukti\"},\"settings_save\":{\"message\":\"Išsaugoti pakeitimus\"}}");

/***/ }),
/* 65 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Nettsider\",\"settings_position_save_all\":\"Alle nettsider\",\"settings_position_save_this\":\"Denne nettsiden\",\"assistant_select_element_start\":\"Start\",\"assistant_select_element_text\":\"Velg et element på siden som skal blokkeres. Oppdater siden for å avbryte elementblokkeringsmodusen.\",\"menu_filtration_status\":{\"message\":\"Filtrering på denne nettsiden\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Ikke filtrer i 30 sekunder\"},\"menu_block_ad_on_site\":{\"message\":\"Blokker annonse på denne nettsiden\"},\"menu_report_abuse\":{\"message\":\"Rapporter denne nettsiden\"},\"menu_site_report\":{\"message\":\"Nettsidens sikkerhetsrapport\"},\"menu_settings\":{\"message\":\"Assistentinnstillinger\"},\"menu_wot_reputation_indicator\":{\"message\":\"Nettsteds-rykteindikator\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Ryktepålitelighetsnivå\"},\"assistant_select_element\":{\"message\":\"Elementblokkering\"},\"assistant_select_element_ext\":{\"message\":\"Velg et element på siden som skal blokkeres\"},\"assistant_select_element_cancel\":{\"message\":\"Avbryt\"},\"assistant_block_element\":{\"message\":\"Elementblokkering\"},\"assistant_block_element_explain\":{\"message\":\"Juster elementblokkeringsregel\"},\"assistant_slider_explain\":{\"message\":\"Flytt glidebryteren for å endre størrelsen på rammen den nye regelen vil fungere for:\"},\"assistant_extended_settings\":{\"message\":\"Avanserte innstillinger\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Bruk regelen for alle nettsider\"},\"assistant_block_by_reference\":{\"message\":\"Blokker med referanselenke\"},\"assistant_block_similar\":{\"message\":\"Blokker lignende\"},\"assistant_another_element\":{\"message\":\"Velg et annet element\"},\"assistant_preview\":{\"message\":\"Forhåndsvisning\"},\"assistant_block\":{\"message\":\"Blokker\"},\"assistant_settings\":{\"message\":\"Assistentinnstillinger\"},\"assistant_preview_header\":{\"message\":\"Elementblokkering - forhåndsvisning\"},\"assistant_preview_header_info\":{\"message\":\"Kontroller at elementet er blokkert som det skal\"},\"assistant_preview_end\":{\"message\":\"Avslutt forhåndsvisning\"},\"wot_unknown_description\":{\"message\":\"Rykte er ikke definert\"},\"wot_bad_description\":{\"message\":\"Denne nettsiden har et veldig dårlig rykte\\ni følge $1\"},\"wot_poor_description\":{\"message\":\"Denne nettsiden har et dårlig rykte\\ni følge $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Denne nettsiden har et dårlig rykte\\ni følge $1\"},\"wot_good_description\":{\"message\":\"Denne nettsiden har et godt rykte\\ni følge $1\"},\"wot_excellent_description\":{\"message\":\"Denne nettsiden har et utmerket rykte\\ni følge $1\"},\"settings_choose_size_and_position\":{\"message\":\"Juster størrelsen og posisjonen til AdGuard-assistent\"},\"settings_icon_size\":{\"message\":\"Ikonstørrelse:\"},\"settings_small\":{\"message\":\"Liten\"},\"settings_big\":{\"message\":\"Stor\"},\"settings_position\":{\"message\":\"Posisjoner:\"},\"settings_left_top\":{\"message\":\"Øverst til venstre\"},\"settings_right_top\":{\"message\":\"Øverst til høyre\"},\"settings_left_bottom\":{\"message\":\"Nederst til venstre\"},\"settings_right_bottom\":{\"message\":\"Nederst til høyre\"},\"settings_cancel\":{\"message\":\"Avbryt\"},\"settings_save\":{\"message\":\"Lagre endringer\"}}");

/***/ }),
/* 66 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Strony internetowe\",\"settings_position_save_all\":\"Wszystkie strony internetowe\",\"settings_position_save_this\":\"Ta strona internetowa\",\"assistant_select_element_start\":\"Rozpocznij\",\"assistant_select_element_text\":\"Wybierz element na stronie do zablokowania. Odśwież stronę, aby anulować tryb blokowania elementu.\",\"menu_filtration_status\":{\"message\":\"Filtrowanie na tej stronie internetowej\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Nie filtruj przez 30 sekund\"},\"menu_block_ad_on_site\":{\"message\":\"Zablokuj reklamę na tej stronie internetowej\"},\"menu_report_abuse\":{\"message\":\"Raportuj stronę internetową\"},\"menu_site_report\":{\"message\":\"Raport bezpieczeństwa strony internetowej\"},\"menu_settings\":{\"message\":\"Ustawienia Asystenta\"},\"menu_wot_reputation_indicator\":{\"message\":\"Wskaźnik reputacji witryny\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Poziom zaufania do reputacji\"},\"assistant_select_element\":{\"message\":\"Blokowanie elementów\"},\"assistant_select_element_ext\":{\"message\":\"Wybierz element na stronie by zablokować\"},\"assistant_select_element_cancel\":{\"message\":\"Anuluj\"},\"assistant_block_element\":{\"message\":\"Blokowanie elementów\"},\"assistant_block_element_explain\":{\"message\":\"Dostosuj regułę blokowania elementów\"},\"assistant_slider_explain\":{\"message\":\"Przesuń suwak by zmienić rozmiar ramki, dla której będzie obowiązywać nowa reguła:\"},\"assistant_extended_settings\":{\"message\":\"Ustawienia zaawansowane\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Zastosuj regułę dla wszystkich stron internetowych\"},\"assistant_block_by_reference\":{\"message\":\"Blokuj używając linka referencyjnego\"},\"assistant_block_similar\":{\"message\":\"Blokuj podobne\"},\"assistant_another_element\":{\"message\":\"Wybierz inny element\"},\"assistant_preview\":{\"message\":\"Podgląd\"},\"assistant_block\":{\"message\":\"Blokuj\"},\"assistant_settings\":{\"message\":\"Ustawienia Asystenta\"},\"assistant_preview_header\":{\"message\":\"Blokowanie elementów - podgląd\"},\"assistant_preview_header_info\":{\"message\":\"Upewnij się, że element jest blokowany jak zamierzono\"},\"assistant_preview_end\":{\"message\":\"Zamknij podgląd\"},\"wot_unknown_description\":{\"message\":\"Reputacja nie jest zdefiniowana\"},\"wot_bad_description\":{\"message\":\"Ta strona internetowa ma bardzo złą reputację zgodnie z $1\"},\"wot_poor_description\":{\"message\":\"Ta strona internetowa ma złą reputację zgodnie z $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Ta strona internetowa ma słabą reputację zgodnie z $1\"},\"wot_good_description\":{\"message\":\"Ta strona internetowa ma dobrą reputację zgodnie z $1\"},\"wot_excellent_description\":{\"message\":\"Ta strona internetowa ma doskonałą reputację zgodnie z $1\"},\"settings_choose_size_and_position\":{\"message\":\"Dostosuj rozmiar i pozycję Asystenta AdGuarda\"},\"settings_icon_size\":{\"message\":\"Rozmiar ikony:\"},\"settings_small\":{\"message\":\"Mały\"},\"settings_big\":{\"message\":\"Duży\"},\"settings_position\":{\"message\":\"Pozycja:\"},\"settings_left_top\":{\"message\":\"Lewy górny\"},\"settings_right_top\":{\"message\":\"Prawy górny\"},\"settings_left_bottom\":{\"message\":\"Na dole po lewej\"},\"settings_right_bottom\":{\"message\":\"Na dole po prawej\"},\"settings_cancel\":{\"message\":\"Anuluj\"},\"settings_save\":{\"message\":\"Zapisz zmiany\"}}");

/***/ }),
/* 67 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Sítios\",\"settings_position_save_all\":\"Todos os sítios\",\"settings_position_save_this\":\"Este sítio\",\"assistant_select_element_start\":\"Iniciar\",\"assistant_select_element_text\":\"Escolha um elemento na página para bloquear. Atualize a página para cancelar o bloqueio do elemento.\",\"menu_filtration_status\":{\"message\":\"A filtrar este sítio\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Não filtrar durante 30 segundos\"},\"menu_block_ad_on_site\":{\"message\":\"Bloquear publicidade neste sítio\"},\"menu_report_abuse\":{\"message\":\"Denunciar o sítio\"},\"menu_site_report\":{\"message\":\"Relatório de segurança do sítio\"},\"menu_settings\":{\"message\":\"Configurações do assistente\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indicador de reputação do sítio\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Nível de Confiança de Reputação\"},\"assistant_select_element\":{\"message\":\"Bloqueio de elemento\"},\"assistant_select_element_ext\":{\"message\":\"Escolha um elemento na página para bloquear\"},\"assistant_select_element_cancel\":{\"message\":\"Cancelar\"},\"assistant_block_element\":{\"message\":\"Bloqueio de elementos\"},\"assistant_block_element_explain\":{\"message\":\"Ajustar a regra de bloqueio do elemento\"},\"assistant_slider_explain\":{\"message\":\"Desloque o controlo deslizante para alterar o tamanho do quadro para o qual a nova regra irá funcionar:\"},\"assistant_extended_settings\":{\"message\":\"Definições avançadas\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Aplicar a regra para todos os sítios\"},\"assistant_block_by_reference\":{\"message\":\"Bloquear por link de referência\"},\"assistant_block_similar\":{\"message\":\"Bloquear semelhante\"},\"assistant_another_element\":{\"message\":\"Selecionar um elemento diferente\"},\"assistant_preview\":{\"message\":\"Pré-visualização\"},\"assistant_block\":{\"message\":\"Bloquear\"},\"assistant_settings\":{\"message\":\"Configurações do assistente\"},\"assistant_preview_header\":{\"message\":\"Bloquear elemento - pré-visualização\"},\"assistant_preview_header_info\":{\"message\":\"Certifique-se de que o elemento está bloqueado como pretendido\"},\"assistant_preview_end\":{\"message\":\"Sair da previsualização\"},\"wot_unknown_description\":{\"message\":\"A reputação deste sítio não está definida por $1\"},\"wot_bad_description\":{\"message\":\"Este sítio tem uma péssima reputação\\nde acordo com $1\"},\"wot_poor_description\":{\"message\":\"Este sítio tem uma má reputação\\nde acordo com $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Este sítio tem uma frágil reputação\\nde acordo com $1\"},\"wot_good_description\":{\"message\":\"Este sítio tem uma boa reputação\\nde acordo com $1\"},\"wot_excellent_description\":{\"message\":\"Este sítio tem uma excelente reputação\\nde acordo com $1\"},\"settings_choose_size_and_position\":{\"message\":\"Ajustar o tamanho e a posição do Assistente do AdGuard\"},\"settings_icon_size\":{\"message\":\"Tamanho do ícone:\"},\"settings_small\":{\"message\":\"Pequeno\"},\"settings_big\":{\"message\":\"Grande\"},\"settings_position\":{\"message\":\"Posição:\"},\"settings_left_top\":{\"message\":\"Canto superior esquerdo\"},\"settings_right_top\":{\"message\":\"Canto superior direito\"},\"settings_left_bottom\":{\"message\":\"Canto inferior esquerdo\"},\"settings_right_bottom\":{\"message\":\"Canto inferior direito\"},\"settings_cancel\":{\"message\":\"Cancelar\"},\"settings_save\":{\"message\":\"Guardar alterações\"}}");

/***/ }),
/* 68 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Sites\",\"settings_position_save_all\":\"Todos os sites\",\"settings_position_save_this\":\"Neste site\",\"assistant_select_element_start\":\"Iniciar\",\"assistant_select_element_text\":\"Escolha um elemento na página para bloquear. Atualize a página para cancelar o bloqueio do elemento.\",\"menu_filtration_status\":{\"message\":\"Filtragem neste site\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Não filtrar durante 30 segundos\"},\"menu_block_ad_on_site\":{\"message\":\"Bloquear anúncios neste site\"},\"menu_report_abuse\":{\"message\":\"Reportar o site\"},\"menu_site_report\":{\"message\":\"Relatório de segurança do site\"},\"menu_settings\":{\"message\":\"Configurações do assistente\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indicador de reputação do site\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Nível de confiança de reputação\"},\"assistant_select_element\":{\"message\":\"Bloqueio de elemento\"},\"assistant_select_element_ext\":{\"message\":\"Escolha um elemento na página para bloquear\"},\"assistant_select_element_cancel\":{\"message\":\"Cancelar\"},\"assistant_block_element\":{\"message\":\"Bloqueio de elemento\"},\"assistant_block_element_explain\":{\"message\":\"Ajustar a regra de bloqueio de elemento\"},\"assistant_slider_explain\":{\"message\":\"Mova o controle deslizante para alterar o tamanho do quadro para o qual a nova regra funcionará:\"},\"assistant_extended_settings\":{\"message\":\"Configurações avançadas\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Aplicar regra para todos os sites\"},\"assistant_block_by_reference\":{\"message\":\"Bloquear pelo link de referência\"},\"assistant_block_similar\":{\"message\":\"Bloquear semelhante\"},\"assistant_another_element\":{\"message\":\"Selecione um elemento diferente\"},\"assistant_preview\":{\"message\":\"Pré-visualização\"},\"assistant_block\":{\"message\":\"Bloquear\"},\"assistant_settings\":{\"message\":\"Configurações do assistente\"},\"assistant_preview_header\":{\"message\":\"Bloqueio de elemento - pré-visualização\"},\"assistant_preview_header_info\":{\"message\":\"Certifique-se de que o elemento esteja bloqueado como desejado\"},\"assistant_preview_end\":{\"message\":\"Sair da pré-visualização\"},\"wot_unknown_description\":{\"message\":\"A reputação deste site ainda não foi definida por $1\"},\"wot_bad_description\":{\"message\":\"Este site tem uma reputação muito ruim\\nde acordo com $1\"},\"wot_poor_description\":{\"message\":\"Este site tem uma má reputação\\nde acordo com $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Este site tem uma reputação ruim\\nde acordo com $1\"},\"wot_good_description\":{\"message\":\"Este site tem uma boa reputação\\nde acordo com $1\"},\"wot_excellent_description\":{\"message\":\"Este site tem uma excelente reputação\\nde acordo com $1\"},\"settings_choose_size_and_position\":{\"message\":\"Ajuste o tamanho e posição do Assistente do AdGuard\"},\"settings_icon_size\":{\"message\":\"Tamanho do ícone:\"},\"settings_small\":{\"message\":\"Pequeno\"},\"settings_big\":{\"message\":\"Grande\"},\"settings_position\":{\"message\":\"Posição:\"},\"settings_left_top\":{\"message\":\"Canto superior esquerdo\"},\"settings_right_top\":{\"message\":\"Canto superior direito\"},\"settings_left_bottom\":{\"message\":\"Canto inferior esquerdo\"},\"settings_right_bottom\":{\"message\":\"Canto inferior direito\"},\"settings_cancel\":{\"message\":\"Cancelar\"},\"settings_save\":{\"message\":\"Salvar alterações\"}}");

/***/ }),
/* 69 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Сайты\",\"settings_position_save_all\":\"На всех\",\"settings_position_save_this\":\"Только на этом\",\"assistant_select_element_start\":\"Начать\",\"assistant_select_element_text\":\"Выберите на странице элемент для блокирования. Обновите страницу, чтобы отменить режим блокировки элементов.\",\"menu_filtration_status\":{\"message\":\"Фильтрация на этом сайте\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Не фильтровать 30 секунд\"},\"menu_block_ad_on_site\":{\"message\":\"Заблокировать рекламу на сайте\"},\"menu_report_abuse\":{\"message\":\"Пожаловаться на сайт\"},\"menu_site_report\":{\"message\":\"Отчёт о безопасности сайта\"},\"menu_settings\":{\"message\":\"Настроить помощник\"},\"menu_wot_reputation_indicator\":{\"message\":\"Индикатор репутации сайта\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Уровень доверия к репутации\"},\"assistant_select_element\":{\"message\":\" Блокировка элемента\"},\"assistant_select_element_ext\":{\"message\":\"Выберите на странице элемент, который надо заблокировать\"},\"assistant_select_element_cancel\":{\"message\":\"Отмена\"},\"assistant_block_element\":{\"message\":\"Блокировка элемента\"},\"assistant_block_element_explain\":{\"message\":\"Настройте правило блокирования элемента\"},\"assistant_slider_explain\":{\"message\":\"Перемещайте бегунок, чтобы изменить размер блока, для которого будет действовать правило:\"},\"assistant_extended_settings\":{\"message\":\"Расширенные настройки\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Применить правило для всех сайтов\"},\"assistant_block_by_reference\":{\"message\":\"Блокировать по ссылке\"},\"assistant_block_similar\":{\"message\":\"Блокировать похожие\"},\"assistant_another_element\":{\"message\":\"Выбрать другой элемент\"},\"assistant_preview\":{\"message\":\"Предпросмотр\"},\"assistant_block\":{\"message\":\"Заблокировать\"},\"assistant_settings\":{\"message\":\"Настройка помощника\"},\"assistant_preview_header\":{\"message\":\"Блокировка элемента – предпросмотр\"},\"assistant_preview_header_info\":{\"message\":\"Убедитесь, что элемент заблокирован как задумано\"},\"assistant_preview_end\":{\"message\":\"Закончить предпросмотр\"},\"wot_unknown_description\":{\"message\":\"Репутация не определена расширением $1\"},\"wot_bad_description\":{\"message\":\"У сайта очень плохая репутация по данным $1\"},\"wot_poor_description\":{\"message\":\"У сайта плохая репутация по данным $1\"},\"wot_unsatisfactory_description\":{\"message\":\"У сайта неудовлетворительная репутация по данным $1\"},\"wot_good_description\":{\"message\":\"У сайта хорошая репутация по данным $1\"},\"wot_excellent_description\":{\"message\":\"У сайта отличная репутация по данным $1\"},\"settings_choose_size_and_position\":{\"message\":\"Настройте размер и положение помощника AdGuard\"},\"settings_icon_size\":{\"message\":\"Размер иконки:\"},\"settings_small\":{\"message\":\"Маленькая\"},\"settings_big\":{\"message\":\"Большая\"},\"settings_position\":{\"message\":\"Расположение:\"},\"settings_left_top\":{\"message\":\"Вверху слева\"},\"settings_right_top\":{\"message\":\"Вверху справа\"},\"settings_left_bottom\":{\"message\":\"Внизу слева\"},\"settings_right_bottom\":{\"message\":\"Внизу справа\"},\"settings_cancel\":{\"message\":\"Отмена\"},\"settings_save\":{\"message\":\"Сохранить настройки\"}}");

/***/ }),
/* 70 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Webové stránky\",\"settings_position_save_all\":\"Všetky stránky\",\"settings_position_save_this\":\"Táto stránka\",\"assistant_select_element_start\":\"Štart\",\"assistant_select_element_text\":\"Vyberte prvok na stránke, ktorý chcete zablokovať. Obnovte stránku pre zrušenie režimu blokovania prvkov.\",\"menu_filtration_status\":{\"message\":\"Filtrácia na tejto stránke\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Nefiltrovať počas 30 sekúnd\"},\"menu_block_ad_on_site\":{\"message\":\"Blokovať reklamy na tejto stránke\"},\"menu_report_abuse\":{\"message\":\"Nahlásiť stránku\"},\"menu_site_report\":{\"message\":\"Bezpečnostná správa o stránke\"},\"menu_settings\":{\"message\":\"Nastavenia asistenta\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indikátor reputácie stránok\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Úroveň spoľahlivosti reputácie\"},\"assistant_select_element\":{\"message\":\"Blokovanie prvku\"},\"assistant_select_element_ext\":{\"message\":\"Vyberte prvok stránky, ktorý sa má blokovať\"},\"assistant_select_element_cancel\":{\"message\":\"Zrušiť\"},\"assistant_block_element\":{\"message\":\"Blokovanie prvku\"},\"assistant_block_element_explain\":{\"message\":\"Upraviť pravidlo blokovania prvku\"},\"assistant_slider_explain\":{\"message\":\"Použite posuvník pre zmenu veľkosti rámu pre nové pravidlo, ktoré bude použité na:\"},\"assistant_extended_settings\":{\"message\":\"Pokročilé nastavenia\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Použiť pravidlo na všetky stránky\"},\"assistant_block_by_reference\":{\"message\":\"Blokovať referenčným odkazom\"},\"assistant_block_similar\":{\"message\":\"Blokovať podobné\"},\"assistant_another_element\":{\"message\":\"Zvoliť iný prvok\"},\"assistant_preview\":{\"message\":\"Náhľad\"},\"assistant_block\":{\"message\":\"Blokovať\"},\"assistant_settings\":{\"message\":\"Nastavenia asistenta\"},\"assistant_preview_header\":{\"message\":\"Blokovanie prvku - náhľad\"},\"assistant_preview_header_info\":{\"message\":\"Uistite sa, že prvok je blokovaný podľa Vašich predstáv\"},\"assistant_preview_end\":{\"message\":\"Ukončenie náhľadu\"},\"wot_unknown_description\":{\"message\":\"Reputácia tejto webovej stránky nie je v $1 definovaná\"},\"wot_bad_description\":{\"message\":\"Táto stránka má podľa $1\\nveľmi zlú reputáciu\"},\"wot_poor_description\":{\"message\":\"Táto stránka má podľa $1\\nzlú reputáciu\"},\"wot_unsatisfactory_description\":{\"message\":\"Táto stránka má podľa $1\\nslabú reputáciu\"},\"wot_good_description\":{\"message\":\"Táto stránka má podľa $1\\ndobrú reputáciu\"},\"wot_excellent_description\":{\"message\":\"Táto stránka má podľa $1\\nvýbornú reputáciu\"},\"settings_choose_size_and_position\":{\"message\":\"Prispôsobiť veľkosť a polohu AdGuard asistenta\"},\"settings_icon_size\":{\"message\":\"Veľkosť ikony:\"},\"settings_small\":{\"message\":\"Malá\"},\"settings_big\":{\"message\":\"Veľká\"},\"settings_position\":{\"message\":\"Poloha:\"},\"settings_left_top\":{\"message\":\"Vľavo hore\"},\"settings_right_top\":{\"message\":\"Vpravo hore\"},\"settings_left_bottom\":{\"message\":\"Vľavo dole\"},\"settings_right_bottom\":{\"message\":\"Vpravo dole\"},\"settings_cancel\":{\"message\":\"Zrušiť\"},\"settings_save\":{\"message\":\"Uložiť zmeny\"}}");

/***/ }),
/* 71 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Spletne strani\",\"settings_position_save_all\":\"Vse pletne strani\",\"settings_position_save_this\":\"To spletno stran\",\"assistant_select_element_start\":\"Začni\",\"assistant_select_element_text\":\"Izberite element na strani, ki jo želite onemogočiti. Osvežite stran, da prekličete način zaviranja elementa.\",\"menu_filtration_status\":{\"message\":\"Filtriranje na tej spletni strani\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Ne filtriraj 30 sekund\"},\"menu_block_ad_on_site\":{\"message\":\"Onemogoči oglas na tej spletni strani\"},\"menu_report_abuse\":{\"message\":\"Prijavi spletno stran\"},\"menu_site_report\":{\"message\":\"Poročilo o varnosti spletne strani\"},\"menu_settings\":{\"message\":\"Nastavitve Pomočnika\"},\"menu_wot_reputation_indicator\":{\"message\":\"Kazalnik ugleda spletnestrani\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Raven ugleda zaupanja\"},\"assistant_select_element\":{\"message\":\"Onemogočanje elementa\"},\"assistant_select_element_ext\":{\"message\":\"Izberite element na strani, ki ga želite onemogočiti\"},\"assistant_select_element_cancel\":{\"message\":\"Prekliči\"},\"assistant_block_element\":{\"message\":\"Onemogočanje elementa\"},\"assistant_block_element_explain\":{\"message\":\"Prilagodite pravilo za onemogočanje elementa\"},\"assistant_slider_explain\":{\"message\":\"Premaknite drsnik, da spremenite velikost okvirja, za katerega bo delovalo novo pravilo:\"},\"assistant_extended_settings\":{\"message\":\"Napredne nastavitve\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Uporabi pravilo za vse spletne strani\"},\"assistant_block_by_reference\":{\"message\":\"Onemogočij z napotitveno povezavo\"},\"assistant_block_similar\":{\"message\":\"Onemogoči podobno\"},\"assistant_another_element\":{\"message\":\"Izberi drug element\"},\"assistant_preview\":{\"message\":\"Predogled\"},\"assistant_block\":{\"message\":\"Onemogoči\"},\"assistant_settings\":{\"message\":\"Nastavitve Pomočnika\"},\"assistant_preview_header\":{\"message\":\"Onemogočanje elementa - predogled\"},\"assistant_preview_header_info\":{\"message\":\"Prepričajte se, da je element bil onemogočen, kot je bilo predvideno\"},\"assistant_preview_end\":{\"message\":\"Zapusti predogled\"},\"wot_unknown_description\":{\"message\":\"Ugled te spletne strani ni opredeljen z $1\"},\"wot_bad_description\":{\"message\":\"Ta spletna stran ima zelo slab ugled\\nglede na $1\"},\"wot_poor_description\":{\"message\":\"Ta spletna stran ima slab ugled\\nglede na $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Ta spletna stran ima zelo slab ugled\\nglede na $1\"},\"wot_good_description\":{\"message\":\"Ta spletna stran ima dober ugled\\nglede na $1\"},\"wot_excellent_description\":{\"message\":\"Ta spletna stran ima odličen ugled\\nglede na $1\"},\"settings_choose_size_and_position\":{\"message\":\"Prilagodi velikost in položaj AdGuard Pomočnika\"},\"settings_icon_size\":{\"message\":\"Velikost ikone:\"},\"settings_small\":{\"message\":\"Majhna\"},\"settings_big\":{\"message\":\"Velika\"},\"settings_position\":{\"message\":\"Položaj:\"},\"settings_left_top\":{\"message\":\"Zgoraj levo\"},\"settings_right_top\":{\"message\":\"Zgoraj desno\"},\"settings_left_bottom\":{\"message\":\"Spodaj levo\"},\"settings_right_bottom\":{\"message\":\"Spodaj desno\"},\"settings_cancel\":{\"message\":\"Prekliči\"},\"settings_save\":{\"message\":\"Shrani nastavitve\"}}");

/***/ }),
/* 72 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Sajtovi\",\"settings_position_save_all\":\"Svi sajtovi\",\"settings_position_save_this\":\"Ovaj sajt\",\"assistant_select_element_start\":\"Započni\",\"assistant_select_element_text\":\"Izaberite element na stranici koji želite da blokirate. Osvežite stranicu da otkažete blokiranje elemenata.\",\"menu_filtration_status\":{\"message\":\"Filtriranje na ovom sajtu\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Ne filtriraj u narednih 30 sekundi\"},\"menu_block_ad_on_site\":{\"message\":\"Blokiraj reklamu na ovom sajtu\"},\"menu_report_abuse\":{\"message\":\"Prijavi sajt\"},\"menu_site_report\":{\"message\":\"Bezbednosni izveštaj o sajtu\"},\"menu_settings\":{\"message\":\"Postavke pomoćnika\"},\"menu_wot_reputation_indicator\":{\"message\":\"Indikator reputacije sajta\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Nivo poverljivosti reputacije\"},\"assistant_select_element\":{\"message\":\"Blokiranje elementa\"},\"assistant_select_element_ext\":{\"message\":\"Izaberite element koji želite da blokirate na stranici\"},\"assistant_select_element_cancel\":{\"message\":\"Otkaži\"},\"assistant_block_element\":{\"message\":\"Blokiranje elementa\"},\"assistant_block_element_explain\":{\"message\":\"Podesite pravilo blokiranja elementa\"},\"assistant_slider_explain\":{\"message\":\"Pomerajte klizač kako bi ste promenili veličinu okvira po kom će pravilo raditi:\"},\"assistant_extended_settings\":{\"message\":\"Napredne postavke\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Primeni pravilo na sve sajtove\"},\"assistant_block_by_reference\":{\"message\":\"Blokiraj po linku reference\"},\"assistant_block_similar\":{\"message\":\"Blokiraj slično\"},\"assistant_another_element\":{\"message\":\"Izaberite drugi element\"},\"assistant_preview\":{\"message\":\"Pregled\"},\"assistant_block\":{\"message\":\"Blokiraj\"},\"assistant_settings\":{\"message\":\"Postavke pomoćnika\"},\"assistant_preview_header\":{\"message\":\"Pregled blokiranja elementa\"},\"assistant_preview_header_info\":{\"message\":\"Uverite se da je element blokiran kako ste želeli\"},\"assistant_preview_end\":{\"message\":\"Napusti pregled\"},\"wot_unknown_description\":{\"message\":\"Reputacija nije definisana\"},\"wot_bad_description\":{\"message\":\"Ovaj sajt ima veoma lošu reputaciju\\nprema \"},\"wot_poor_description\":{\"message\":\"Ovaj sajt ima lošu reputaciju\\nprema \"},\"wot_unsatisfactory_description\":{\"message\":\"Ovaj sajt ima slabu reputaciju\\nprema \"},\"wot_good_description\":{\"message\":\"Ovaj sajt ima dobru reputaciju\\nprema \"},\"wot_excellent_description\":{\"message\":\"Ovaj sajt ima odličnu reputaciju\\nprema \"},\"settings_choose_size_and_position\":{\"message\":\"Podesite veličinu i poziciju AdGuard pomoćnika\"},\"settings_icon_size\":{\"message\":\"Veličina ikonice\"},\"settings_small\":{\"message\":\"Mala\"},\"settings_big\":{\"message\":\"Velika\"},\"settings_position\":{\"message\":\"Pozicija:\"},\"settings_left_top\":{\"message\":\"Gore levo\"},\"settings_right_top\":{\"message\":\"Gore desno\"},\"settings_left_bottom\":{\"message\":\"Dole levo\"},\"settings_right_bottom\":{\"message\":\"Dole desno\"},\"settings_cancel\":{\"message\":\"Otkaži\"},\"settings_save\":{\"message\":\"Sačuvaj promene\"}}");

/***/ }),
/* 73 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Webbplatser\",\"settings_position_save_all\":\"Alla webbplatser\",\"settings_position_save_this\":\"Den här webbplatsen\",\"assistant_select_element_text\":\"Välj ett element sidan att blockera. Återladda sidan för att återställa elementblockeringsläget.\",\"menu_filtration_status\":{\"message\":\"Webbplatsens filtrering\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Pausa filtrering 30 sekunder\"},\"menu_block_ad_on_site\":{\"message\":\"Blockera annons på den här webbplatsen\"},\"menu_report_abuse\":{\"message\":\"Rapportera webbplatsen\"},\"menu_site_report\":{\"message\":\"Säkerhetsrapport för webbplatsen\"},\"menu_settings\":{\"message\":\"Assistentinställningar\"},\"assistant_select_element\":{\"message\":\"Blockering av annonselement\"},\"assistant_select_element_ext\":{\"message\":\"Välj ett annonselement för blockering\"},\"assistant_select_element_cancel\":{\"message\":\"Avbryt\"},\"assistant_block_element\":{\"message\":\"Blockering av annonselement\"},\"assistant_block_element_explain\":{\"message\":\"Anpassa blockeringsregeln för annonselementet\"},\"assistant_slider_explain\":{\"message\":\"Justera storleken på annonselementet som den nya blockeringsregeln skall avse:\"},\"assistant_extended_settings\":{\"message\":\"Avancerade val\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Tillämpa regelns på alla webbplatster\"},\"assistant_block_by_reference\":{\"message\":\"Blockera med referenslänk\"},\"assistant_block_similar\":{\"message\":\"Blockera liknande\"},\"assistant_another_element\":{\"message\":\"Markera ett annat annonselement\"},\"assistant_preview\":{\"message\":\"Förhandsgranska\"},\"assistant_block\":{\"message\":\"Blockera\"},\"assistant_settings\":{\"message\":\"Assistentval\"},\"assistant_preview_header\":{\"message\":\"Förhandsgranskning av elementblockeringen\"},\"assistant_preview_header_info\":{\"message\":\"Kontrollera att elementet blockerats som avsett\"},\"assistant_preview_end\":{\"message\":\"Avsluta förhandsgranskningen\"},\"wot_unknown_description\":{\"message\":\"Den här sajtens anseende är inte klarlagd av $1\"},\"wot_bad_description\":{\"message\":\"Webbplatsen har ett mycket dåligt anseende\\nenligt $1\"},\"wot_poor_description\":{\"message\":\"Webbplatsen har dåligt anseende\\nenligt $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Webbplatsen har tveksamt anseende\\nenligt $1\"},\"wot_good_description\":{\"message\":\"Webbplatsen har gott anseende\\nenligt $1\"},\"wot_excellent_description\":{\"message\":\"Webbplatsen har ett mycket gott anseende\\nenligt $1\"},\"settings_choose_size_and_position\":{\"message\":\"Anpassas storlek och läge för AdGuardassistenten\"},\"settings_icon_size\":{\"message\":\"Ikonstorlek\"},\"settings_small\":{\"message\":\"Liten\"},\"settings_big\":{\"message\":\"Stor\"},\"settings_position\":{\"message\":\"Läge:\"},\"settings_left_top\":{\"message\":\"Ovan vänster\"},\"settings_right_top\":{\"message\":\"Ovan höger\"},\"settings_left_bottom\":{\"message\":\"Nedan vänster\"},\"settings_right_bottom\":{\"message\":\"Nedan höger\"},\"settings_cancel\":{\"message\":\"Avbryt\"},\"settings_save\":{\"message\":\"Spara ändringar\"}}");

/***/ }),
/* 74 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Siteler\",\"settings_position_save_all\":\"Tüm siteler\",\"settings_position_save_this\":\"Bu site\",\"assistant_select_element_start\":\"Başla\",\"assistant_select_element_text\":\"Engellemek için sayfada bir öğe seçin. Öğe engelleme modunu iptal etmek için sayfayı yenileyin.\",\"menu_filtration_status\":{\"message\":\"Bu sitedeki filtreleme\"},\"menu_do_not_filter_30_sec\":{\"message\":\"30 saniye boyunca filtreleme yapma\"},\"menu_block_ad_on_site\":{\"message\":\"Bu sitede reklam engelle\"},\"menu_report_abuse\":{\"message\":\"Siteyi bildir\"},\"menu_site_report\":{\"message\":\"Sitenin güvenlik raporu\"},\"menu_settings\":{\"message\":\"Asistan ayarları\"},\"menu_wot_reputation_indicator\":{\"message\":\"Site itibarı göstergesi\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"İtibarın Güven Seviyesi\"},\"assistant_select_element\":{\"message\":\"Öğe engelleme\"},\"assistant_select_element_ext\":{\"message\":\"Bu sitede engellemek için bir öğe seçin\"},\"assistant_select_element_cancel\":{\"message\":\"İptal\"},\"assistant_block_element\":{\"message\":\"Öğe engelleme\"},\"assistant_block_element_explain\":{\"message\":\"Öğe engelleme kuralını ayarla\"},\"assistant_slider_explain\":{\"message\":\"Yeni kuralın çalışacağı çerçevenin boyutunu değiştirmek için kayar düğmeyi hareket ettirin\"},\"assistant_extended_settings\":{\"message\":\"Gelişmiş ayarlar\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Tüm sitelerde bu kuralı uygula\"},\"assistant_block_by_reference\":{\"message\":\"Referans bağlantı ile engelle\"},\"assistant_block_similar\":{\"message\":\"Benzerlerini engelle\"},\"assistant_another_element\":{\"message\":\"Farklı bir öğe seç\"},\"assistant_preview\":{\"message\":\"Önizleme\"},\"assistant_block\":{\"message\":\"Engelle\"},\"assistant_settings\":{\"message\":\"Asistan ayarları\"},\"assistant_preview_header\":{\"message\":\"Öğe engelleme - önizleme\"},\"assistant_preview_header_info\":{\"message\":\"Öğenin istediğiniz gibi engellendiğinden emin olun\"},\"assistant_preview_end\":{\"message\":\"Önizlemeden çık\"},\"wot_unknown_description\":{\"message\":\"Bu sitenin itibarı $1 tarafından henüz belirlenmemiş\"},\"wot_bad_description\":{\"message\":\"Bu site $1 değerlendirmesine göre\\nçok kötü bir itibara sahip\"},\"wot_poor_description\":{\"message\":\"Bu site $1 değerlendirmesine göre\\nkötü bir itibara sahip\"},\"wot_unsatisfactory_description\":{\"message\":\"Bu site $1 değerlendirmesine göre\\nzayıf bir itibara sahip\"},\"wot_good_description\":{\"message\":\"Bu site $1 değerlendirmesine göre\\niyi bir itibara sahip\"},\"wot_excellent_description\":{\"message\":\"Bu site $1 değerlendirmesine göre\\nmükemmel bir itibara sahip\"},\"settings_choose_size_and_position\":{\"message\":\"AdGuard Asistanın boyutunu ve konumunu ayarlayın\"},\"settings_icon_size\":{\"message\":\"Simge boyutu:\"},\"settings_small\":{\"message\":\"Küçük\"},\"settings_big\":{\"message\":\"Büyük\"},\"settings_position\":{\"message\":\"Konum:\"},\"settings_left_top\":{\"message\":\"Sol üst\"},\"settings_right_top\":{\"message\":\"Sağ üst\"},\"settings_left_bottom\":{\"message\":\"Sol alt\"},\"settings_right_bottom\":{\"message\":\"Sağ alt\"},\"settings_cancel\":{\"message\":\"İptal\"},\"settings_save\":{\"message\":\"Değişiklikleri kaydet\"}}");

/***/ }),
/* 75 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"Сайти\",\"settings_position_save_all\":\"На всіх\",\"settings_position_save_this\":\"Тільки на даному\",\"assistant_select_element_start\":\"Почати\",\"assistant_select_element_text\":\"Виберіть елемент на сторінці, який треба заблокувати. Оновіть сторінку, щоб скасувати режим блокування.\",\"menu_filtration_status\":{\"message\":\"Фільтрування на цьому сайті\"},\"menu_do_not_filter_30_sec\":{\"message\":\"Не фільтрувати 30 секунд\"},\"menu_block_ad_on_site\":{\"message\":\"Заблокувати рекламу на даному сайті\"},\"menu_report_abuse\":{\"message\":\"Повідомити про сайт\"},\"menu_site_report\":{\"message\":\"Звіт про безпеку сайту\"},\"menu_settings\":{\"message\":\"Налаштування помічника\"},\"menu_wot_reputation_indicator\":{\"message\":\"Індикатор репутації сайту\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"Рівень надійності репутації\"},\"assistant_select_element\":{\"message\":\"Блокування елементу\"},\"assistant_select_element_ext\":{\"message\":\"Виберіть елемент на сторінці, який треба заблокувати\"},\"assistant_select_element_cancel\":{\"message\":\"Скасувати\"},\"assistant_block_element\":{\"message\":\"Блокування елементу\"},\"assistant_block_element_explain\":{\"message\":\"Налаштуйте правило блокування елементу\"},\"assistant_slider_explain\":{\"message\":\"Пересувайте повзунок, щоб змінити розмір блоку, для якого діятиме правило:\"},\"assistant_extended_settings\":{\"message\":\"Розширені налаштування\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"Застосувати правило до всіх вебсайтів\"},\"assistant_block_by_reference\":{\"message\":\"Блокувати за посиланням\"},\"assistant_block_similar\":{\"message\":\"Блокувати схожі елементи\"},\"assistant_another_element\":{\"message\":\"Вибрати інший елемент\"},\"assistant_preview\":{\"message\":\"Попередній перегляд\"},\"assistant_block\":{\"message\":\"Заблокувати\"},\"assistant_settings\":{\"message\":\"Налаштування помічника\"},\"assistant_preview_header\":{\"message\":\"Блокування елементу - попередній перегляд\"},\"assistant_preview_header_info\":{\"message\":\"Переконайтеся, що елемент заблокований як слід\"},\"assistant_preview_end\":{\"message\":\"Закінчити попередній перегляд\"},\"wot_unknown_description\":{\"message\":\"Репутація цього вебсайту не визначена\"},\"wot_bad_description\":{\"message\":\"Цей сайт має дуже погану репутацію\\nза версією $1\"},\"wot_poor_description\":{\"message\":\"Цей сайт має погану репутацію\\nза версією $1\"},\"wot_unsatisfactory_description\":{\"message\":\"Цей сайт має незадовільну репутацію\\nза версією $1\"},\"wot_good_description\":{\"message\":\"Цей сайт має добру репутацію\\nза версією $1\"},\"wot_excellent_description\":{\"message\":\"Цей сайт має дуже відмінну репутацію\\nза версією $1\"},\"settings_choose_size_and_position\":{\"message\":\"Налаштуйте розмір і положення помічника AdGuard\"},\"settings_icon_size\":{\"message\":\"Розмір іконки:\"},\"settings_small\":{\"message\":\"Маленька\"},\"settings_big\":{\"message\":\"Велика\"},\"settings_position\":{\"message\":\"Позиція:\"},\"settings_left_top\":{\"message\":\"Зверху зліва\"},\"settings_right_top\":{\"message\":\"Зверху справа\"},\"settings_left_bottom\":{\"message\":\"Внизу зліва\"},\"settings_right_bottom\":{\"message\":\"Внизу справа\"},\"settings_cancel\":{\"message\":\"Скасувати\"},\"settings_save\":{\"message\":\"Зберегти зміни\"}}");

/***/ }),
/* 76 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"網站\",\"settings_position_save_all\":\"所有的網站\",\"settings_position_save_this\":\"此網站\",\"assistant_select_element_start\":\"開始\",\"assistant_select_element_text\":\"選擇於該頁面上之元件以封鎖。重新整理該頁面以取消元件封鎖模式。\",\"menu_filtration_status\":{\"message\":\"對此網站之過濾\"},\"menu_do_not_filter_30_sec\":{\"message\":\"計 30 秒不過濾\"},\"menu_block_ad_on_site\":{\"message\":\"封鎖於此網站上之廣告\"},\"menu_report_abuse\":{\"message\":\"報告該網站\"},\"menu_site_report\":{\"message\":\"網站安全性報告\"},\"menu_settings\":{\"message\":\"助理設定\"},\"menu_wot_reputation_indicator\":{\"message\":\"網站信譽指標\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"信譽信賴等級\"},\"assistant_select_element\":{\"message\":\"元件封鎖\"},\"assistant_select_element_ext\":{\"message\":\"選擇於該頁面上之元件以封鎖\"},\"assistant_select_element_cancel\":{\"message\":\"取消\"},\"assistant_block_element\":{\"message\":\"元件封鎖\"},\"assistant_block_element_explain\":{\"message\":\"調整元件封鎖規則\"},\"assistant_slider_explain\":{\"message\":\"移動該滑標以更改新的規則將作用於的框架之尺寸：\"},\"assistant_extended_settings\":{\"message\":\"進階的設定\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"對所有的網站套用該規則\"},\"assistant_block_by_reference\":{\"message\":\"按照參考連結封鎖\"},\"assistant_block_similar\":{\"message\":\"封鎖相似之物\"},\"assistant_another_element\":{\"message\":\"選擇不同的元件\"},\"assistant_preview\":{\"message\":\"預覽\"},\"assistant_block\":{\"message\":\"封鎖\"},\"assistant_settings\":{\"message\":\"助理設定\"},\"assistant_preview_header\":{\"message\":\"元件封鎖 - 預覽\"},\"assistant_preview_header_info\":{\"message\":\"確定元件如預期的被封鎖\"},\"assistant_preview_end\":{\"message\":\"離開預覽\"},\"wot_unknown_description\":{\"message\":\"此網站的信譽未被 $1 界定\"},\"wot_bad_description\":{\"message\":\"根據 $1，\\n此網站有非常壞的信譽\"},\"wot_poor_description\":{\"message\":\"根據 $1，\\n此網站有壞的信譽\"},\"wot_unsatisfactory_description\":{\"message\":\"根據 $1，\\n此網站有不好的信譽\"},\"wot_good_description\":{\"message\":\"根據 $1，\\n此網站有好的信譽\"},\"wot_excellent_description\":{\"message\":\"根據 $1，\\n此網站有極好的信譽\"},\"settings_choose_size_and_position\":{\"message\":\"調整 AdGuard 助理尺寸和位置\"},\"settings_icon_size\":{\"message\":\"圖示尺寸：\"},\"settings_small\":{\"message\":\"小的\"},\"settings_big\":{\"message\":\"大的\"},\"settings_position\":{\"message\":\"位置：\"},\"settings_left_top\":{\"message\":\"左上角\"},\"settings_right_top\":{\"message\":\"右上角\"},\"settings_left_bottom\":{\"message\":\"左下角\"},\"settings_right_bottom\":{\"message\":\"右下角\"},\"settings_cancel\":{\"message\":\"取消\"},\"settings_save\":{\"message\":\"儲存更改\"}}");

/***/ }),
/* 77 */
/***/ (function(module) {

module.exports = JSON.parse("{\"settings_position_save\":\"网站\",\"settings_position_save_all\":\"所有网站\",\"settings_position_save_this\":\"此网站\",\"assistant_select_element_start\":\"开始\",\"assistant_select_element_text\":\"选择要拦截的网页元素。要取消元素拦截模式，请刷新网页。\",\"menu_filtration_status\":{\"message\":\"对此网站进行过滤\"},\"menu_do_not_filter_30_sec\":{\"message\":\"暂停过滤 30 秒\"},\"menu_block_ad_on_site\":{\"message\":\"拦截此网站上的广告\"},\"menu_report_abuse\":{\"message\":\"报告此网站\"},\"menu_site_report\":{\"message\":\"网站安全报告\"},\"menu_settings\":{\"message\":\"助手设置\"},\"menu_wot_reputation_indicator\":{\"message\":\"网站声誉指标\"},\"menu_wot_reputation_confidence_level\":{\"message\":\"声望置信度\"},\"assistant_select_element\":{\"message\":\"拦截元素\"},\"assistant_select_element_ext\":{\"message\":\"选择此页面上需要拦截的元素\"},\"assistant_select_element_cancel\":{\"message\":\"取消\"},\"assistant_block_element\":{\"message\":\"拦截元素\"},\"assistant_block_element_explain\":{\"message\":\"调整元素拦截规则\"},\"assistant_slider_explain\":{\"message\":\"使用滑块改变要由新规则将要拦截的框架大小：\"},\"assistant_extended_settings\":{\"message\":\"高级设置\"},\"assistant_apply_rule_to_all_sites\":{\"message\":\"应用规则至所有网站\"},\"assistant_block_by_reference\":{\"message\":\"通过参考链接进行拦截\"},\"assistant_block_similar\":{\"message\":\"拦截类似元素\"},\"assistant_another_element\":{\"message\":\"选择其它元素\"},\"assistant_preview\":{\"message\":\"预览\"},\"assistant_block\":{\"message\":\"拦截\"},\"assistant_settings\":{\"message\":\"AdGuard 助手设置\"},\"assistant_preview_header\":{\"message\":\"元素拦截 - 预览\"},\"assistant_preview_header_info\":{\"message\":\"请确保元素拦截方式符合预期\"},\"assistant_preview_end\":{\"message\":\"退出预览\"},\"wot_unknown_description\":{\"message\":\"声望尚未定义\"},\"wot_bad_description\":{\"message\":\"此网站在以下数据库中声望极低\"},\"wot_poor_description\":{\"message\":\"此网站在以下数据库中声望低下 \"},\"wot_unsatisfactory_description\":{\"message\":\"此网站在以下数据库中声望不佳 \"},\"wot_good_description\":{\"message\":\"此网站在以下数据库中声望良好 \"},\"wot_excellent_description\":{\"message\":\"此网站在以下数据库中声望极佳 \"},\"settings_choose_size_and_position\":{\"message\":\"调整 AdGuard 助手的大小与位置\"},\"settings_icon_size\":{\"message\":\"图标大小：\"},\"settings_small\":{\"message\":\"小\"},\"settings_big\":{\"message\":\"大\"},\"settings_position\":{\"message\":\"位置：\"},\"settings_left_top\":{\"message\":\"左上角\"},\"settings_right_top\":{\"message\":\"右上角\"},\"settings_left_bottom\":{\"message\":\"左下角\"},\"settings_right_bottom\":{\"message\":\"右下角\"},\"settings_cancel\":{\"message\":\"取消\"},\"settings_save\":{\"message\":\"保存更改\"}}");

/***/ }),
/* 78 */
/***/ (function(module, __webpack_exports__, __nested_webpack_require_435152__) {

"use strict";
// ESM COMPAT FLAG
__nested_webpack_require_435152__.r(__webpack_exports__);

// EXPORTS
__nested_webpack_require_435152__.d(__webpack_exports__, "adguardAssistant", function() { return /* binding */ adguardAssistant; });

// CONCATENATED MODULE: ./src/ioc.js
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

var getArguments = function getArguments(func) {
  // This regex is from require.js
  var FN_ARGS = /^function\s*[^(]*\(\s*([^)]*)\)/m;
  var args = func.toString().match(FN_ARGS)[1].split(',');

  if (args[0] === '') {
    return [];
  }

  return args;
};

var Ioc = /*#__PURE__*/function () {
  function Ioc() {
    _classCallCheck(this, Ioc);

    this.dependencies = {};
  }

  _createClass(Ioc, [{
    key: "resolveDependencies",
    value: function resolveDependencies(func) {
      var args = getArguments(func);
      var resolved = [];

      for (var i = 0; i < args.length; i += 1) {
        var depName = args[i].trim();
        var dep = this.dependencies[depName];

        if (!dep) {
          throw new Error("Can't find dependency: ".concat(depName));
        }

        resolved.push(this.dependencies[depName]);
      }

      return resolved;
    }
  }, {
    key: "register",
    value: function register(qualifier, obj) {
      this.dependencies[qualifier] = obj;
    }
  }, {
    key: "get",
    value: function get(func) {
      if (typeof func === 'string') {
        var resolved = this.dependencies[func];

        if (!resolved) {
          throw new Error("Can't resolve ".concat(func));
        }

        return resolved;
      }

      var resolvedDependencies = this.resolveDependencies(func);

      function FuncWrapper() {
        return func.apply(func, resolvedDependencies);
      }

      FuncWrapper.prototype = func.prototype;
      return new FuncWrapper();
    }
  }]);

  return Ioc;
}();

var ioc = new Ioc();
/* harmony default export */ var src_ioc = (ioc);
// CONCATENATED MODULE: ./src/protectedApi.js
/**
 * TODO: rewrite to class
 * TODO: add relevant jsdoc
 * Protected API
 * @constructor
 */
function ProtectedApi() {
  var win = window;
  var functionPType = Function.prototype;
  var originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  var _document = document,
      documentMode = _document.documentMode,
      documentElement = _document.documentElement;
  var originalAppendChild = document.appendChild;
  var originalJSON = win.JSON;
  var functionApply = functionPType.apply;
  var functionBind = functionPType.bind;
  var COMPLETE = 'complete';
  var originalAttachShadow = documentElement.attachShadow; // eslint-disable-next-line func-names

  var apply = typeof Reflect !== 'undefined' ? Reflect.apply : function (target, _this, _arguments) {
    return functionApply.call(target, _this, _arguments);
  };

  var noop = function noop() {};

  var methodCallerFactory = function methodCallerFactory(owner, prop) {
    if (!owner) {
      return noop;
    } // Keeps reference to the method, so that it is unaffected
    // when `owner` is mutated.


    var method = owner[prop]; // eslint-disable-next-line consistent-return, func-names

    return function () {
      if (method) {
        // eslint-disable-next-line prefer-rest-params
        return apply(method, owner, arguments);
      }
    };
  };

  var getReadyState = function getReadyState() {
    // We need to add this hook for tests, because a phantomjs
    // doesn't work with Object.getOwnPropertyDescriptor correctly
    if (typeof originalGetOwnPropertyDescriptor(Document.prototype, 'readyState') === 'undefined') {
      return COMPLETE;
    }

    var readyStateGetter = originalGetOwnPropertyDescriptor(Document.prototype, 'readyState').get;
    return apply(readyStateGetter, document, []);
  };

  var addListenerToWindow = methodCallerFactory(win, 'addEventListener');
  var removeListenerFromWindow = methodCallerFactory(win, 'removeEventListener');
  var querySelector = methodCallerFactory(document, 'querySelector');

  var appendChildToElement = function appendChildToElement(elem, child) {
    apply(originalAppendChild, elem, [child]);
  };
  /**
   * Creating element instead `document.createElement`
   * to prevented a custom `document.createElement`
   * see: https://github.com/AdguardTeam/AdguardAssistant/issues/165
   */


  var createElement = function createElement(markup) {
    var doc = document.implementation.createHTMLDocument('');

    if (markup && markup[0] !== '<') {
      // eslint-disable-next-line no-param-reassign
      markup = "<".concat(markup, "></").concat(markup, ">");
    }

    doc.body.innerHTML = markup;
    return doc.body.firstChild;
  };

  var json = {
    parse: methodCallerFactory(originalJSON, 'parse'),
    stringify: methodCallerFactory(originalJSON, 'stringify')
  };
  /**
   * Creating style element
   * @param {String} styles css styles in string
   * @param {String} nonce  attribute for content-security-policy
   * @param {String} id to prevent duplicates, can be empty
   * @return {Object|false} style tag with styles or false
   * if the styles with transferred id is exist
   */

  var createStylesElement = function createStylesElement(styles, nonce, id) {
    if (id && querySelector("#".concat(id))) {
      return false;
    }

    var tagNode = createElement('style');
    tagNode.setAttribute('type', 'text/css');

    if (id) {
      tagNode.setAttribute('id', id);
    }

    tagNode.setAttribute('nonce', nonce);

    if (tagNode.styleSheet) {
      tagNode.styleSheet.cssText = styles;
    } else {
      appendChildToElement(tagNode, document.createTextNode(styles));
    }

    return tagNode;
  };
  /**
   * Check browser shadow dom support.
   * Safari crashes after adding style tag in attachShadow so exclude it
   * see: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/974
   */


  var checkShadowDomSupport = function checkShadowDomSupport() {
    var SAFARI_UA_REGEX = /^((?!chrome|android).)*safari/i;
    var isSafari = window.safari !== undefined || SAFARI_UA_REGEX.test(navigator.userAgent);
    return typeof originalAttachShadow !== 'undefined' && !isSafari;
  };

  return {
    functionBind: functionBind,
    addListenerToWindow: addListenerToWindow,
    removeListenerFromWindow: removeListenerFromWindow,
    getReadyState: getReadyState,
    documentMode: documentMode,
    appendChildToElement: appendChildToElement,
    createElement: createElement,
    json: json,
    createStylesElement: createStylesElement,
    checkShadowDomSupport: checkShadowDomSupport
  };
}

var protectedApi = new ProtectedApi();
/* harmony default export */ var src_protectedApi = (protectedApi);
// CONCATENATED MODULE: ./src/wot.js
/**
 * Object that manages wot data
 * @returns {{
 * registerWotEventHandler: Function,
 * getWotData: Function,
 * getWotScorecardUrl: Function,
 * WOT_URL: string
 * }}
 * @constructor
 */
function Wot() {
  var wotUrlScorecardTemplate = 'http://adguard.com/wot-scorecard.html?domain=';
  var WOT_URL = 'http://adguard.com/wot.html';
  var wotData = null;

  var registerWotEventHandler = function registerWotEventHandler() {
    var wotDataCb = function wotDataCb(data) {
      wotData = data;
    };

    if (window.WotData) {
      wotData = window.WotData;
    } else {
      window.WotData = wotDataCb;
    }
  };

  var getWotData = function getWotData() {
    return wotData;
  };

  var getWotScorecardUrl = function getWotScorecardUrl(url) {
    return "".concat(wotUrlScorecardTemplate).concat(url);
  };

  return {
    registerWotEventHandler: registerWotEventHandler,
    getWotData: getWotData,
    getWotScorecardUrl: getWotScorecardUrl,
    WOT_URL: WOT_URL
  };
}

var wot = new Wot();
/* harmony default export */ var src_wot = (wot);
// CONCATENATED MODULE: ./src/utils/common-utils.js
var common_utils_cropDomain = function cropDomain(domain) {
  return domain.replace('www.', '').replace(/:\d+/, '');
};
/**
 * Force clear the page cache
 * see: https://stackoverflow.com/questions/10719505/force-a-reload-of-page-in-chrome-using-javascript-no-cache/27058362#27058362
 * @param callback
 */

var bypassCache = function bypassCache(callback) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', window.location.href, true);
  xhr.setRequestHeader('Pragma', 'no-cache');
  xhr.setRequestHeader('Expires', '-1');
  xhr.setRequestHeader('Cache-Control', 'no-cache');

  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && callback) {
      callback();
    }
  };

  xhr.send();
};
/**
 * Reload page after bypassing cache
 */

var reloadPageBypassCache = function reloadPageBypassCache() {
  bypassCache(function () {
    window.location.reload(true);
  });
};
/**
 * Multiple event handler helper.
 * @param {Object}  elements  element or nodeList.
 * @param {String}  events    multiple events divided by space.
 * @param {Function}  eventHandler   event handler.
 * @param {Boolean}  useCapture   capture.
 * @return {Function} add/remove.
 */

var events = {
  add: function add(elements, es, eventHandler, useCapture) {
    this.addRemoveEvents(true, elements, es, eventHandler, useCapture);
  },
  remove: function remove(elements, es, eventHandler, useCapture) {
    this.addRemoveEvents(false, elements, es, eventHandler, useCapture);
  },
  // eslint-disable-next-line consistent-return
  addRemoveEvents: function addRemoveEvents(add, elements, es, eventHandler, useCapture) {
    if (!elements || !es || !eventHandler) {
      return false;
    }

    var eventList = es.split(' ');

    if (!eventList || eventList.length < 1) {
      return false;
    }

    if (!elements.length) {
      // eslint-disable-next-line no-param-reassign
      elements = new Array(elements);
    }

    for (var el = 0; el < elements.length; el += 1) {
      for (var evt = 0; evt < eventList.length; evt += 1) {
        if (!eventList[evt] || !eventList[evt].length) {
          // eslint-disable-next-line no-continue
          continue;
        }

        if (add) {
          elements[el].addEventListener(eventList[evt], eventHandler, !!useCapture);
        } else {
          elements[el].removeEventListener(eventList[evt], eventHandler, !!useCapture);
        }
      }
    }
  }
};
/**
 * Common utils
 * @type {{
 * cropDomain: Function,
 * bypassCache: Function,
 * reloadPageBypassCache: Function,
 * events: Object
 * }}
 */

var CommonUtils = {
  cropDomain: common_utils_cropDomain,
  bypassCache: bypassCache,
  reloadPageBypassCache: reloadPageBypassCache,
  events: events
};
/* harmony default export */ var common_utils = (CommonUtils);
// CONCATENATED MODULE: ./src/log.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

/* global DEBUG */

/**
 * Simple logger with log levels
 * @returns {{
 *  warn: warn,
 *  info: info,
 *  debug: debug,
 *  error: error
 * }}
 * @constructor
 */
function Log() {
  var currentLevel =   false ? 0 : 'ERROR';
  var LogLevels = {
    ERROR: 1,
    WARN: 2,
    INFO: 3,
    DEBUG: 4
  };

  var print = function print(level, method, args) {
    // check log level
    if (LogLevels[currentLevel] < LogLevels[level]) {
      return;
    }

    if (!args || args.length === 0 || !args[0]) {
      return;
    }

    var formatted;

    if (_typeof(args[0]) === 'object') {
      // eslint-disable-next-line prefer-destructuring
      formatted = args[0];
    } else {
      var str = "".concat(args[0]); // eslint-disable-next-line no-param-reassign

      args = Array.prototype.slice.call(args, 1);
      formatted = str.replace(/{(\d+)}/g, function (match, number) {
        return typeof args[number] !== 'undefined' ? args[number] : match;
      });

      if (LogLevels[level] >= LogLevels[currentLevel]) {
        var now = new Date();
        formatted = "".concat(now.toISOString(), ": ").concat(formatted);
      }
    } // eslint-disable-next-line no-console


    console[method](formatted);
  };

  var debug = function debug() {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    print('DEBUG', 'log', args);
  };

  var info = function info() {
    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }

    print('INFO', 'info', args);
  };

  var warn = function warn() {
    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
      args[_key3] = arguments[_key3];
    }

    print('WARN', 'info', args);
  };

  var error = function error() {
    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
      args[_key4] = arguments[_key4];
    }

    print('ERROR', 'error', args);
  };

  return {
    debug: debug,
    info: info,
    warn: warn,
    error: error
  };
}

var log = new Log();
/* harmony default export */ var src_log = (log);
// CONCATENATED MODULE: ./src/upgradeHelper.js
function upgradeHelper_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function upgradeHelper_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function upgradeHelper_createClass(Constructor, protoProps, staticProps) { if (protoProps) upgradeHelper_defineProperties(Constructor.prototype, protoProps); if (staticProps) upgradeHelper_defineProperties(Constructor, staticProps); return Constructor; }



/* eslint-disable no-param-reassign */

/**
 * Helper for backward compatibility
 * @returns {{}}
 * @constructor
 */

var upgradeHelper_UpgradeHelper = /*#__PURE__*/function () {
  function UpgradeHelper() {
    upgradeHelper_classCallCheck(this, UpgradeHelper);

    this.Constants = {
      BUTTON_POSITION_ITEM_NAME: '__adbpos'
    };
  }

  upgradeHelper_createClass(UpgradeHelper, [{
    key: "getButtonPositionData",
    value: function getButtonPositionData() {
      try {
        var userPosition = localStorage.getItem(this.Constants.BUTTON_POSITION_ITEM_NAME);

        if (userPosition) {
          return src_protectedApi.json.parse(userPosition);
        }

        return undefined;
      } catch (ex) {
        src_log.error(ex);
        return undefined;
      }
    }
  }, {
    key: "removeUserPositionForButton",
    value: function removeUserPositionForButton() {
      try {
        localStorage.removeItem(this.Constants.BUTTON_POSITION_ITEM_NAME);
      } catch (ex) {
        src_log.error(ex);
      }
    } // eslint-disable-next-line class-methods-use-this

  }, {
    key: "upgradeGmStorage",
    value: function upgradeGmStorage(settings, version) {
      settings.personal = {};
      settings.scriptVersion = version;
      settings.personalConfig = true;
      return settings;
    } // Helper for assistant update from 4.1 to 4.2

  }, {
    key: "upgradeLocalStorage",
    value: function upgradeLocalStorage(settings, sitename) {
      var position = this.getButtonPositionData();

      if (position) {
        if (!settings.personal[sitename]) {
          settings.personal[sitename] = {};
        }

        settings.personal[sitename].position = position;
        settings.personal[sitename].largeIcon = settings.largeIcon;
      }

      this.removeUserPositionForButton();
      return settings;
    }
  }]);

  return UpgradeHelper;
}();

var upgradeHelper = new upgradeHelper_UpgradeHelper();
/* harmony default export */ var src_upgradeHelper = (upgradeHelper);
// CONCATENATED MODULE: ./src/gm.js
/* harmony default export */ var gm = ({});
// CONCATENATED MODULE: ./src/settings.js
function settings_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { settings_typeof = function _typeof(obj) { return typeof obj; }; } else { settings_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return settings_typeof(obj); }






/**
 * Object that manages user settings.
 * @returns {{
 * Constants: {
 *  MINIMUM_IE_SUPPORTED_VERSION: number,
 *  MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON: number,
 *  BUTTON_POSITION_ITEM_NAME: string,
 *  IFRAME_ID: string
 * },
 * MenuItemsNames: {
 *  DetailedMenu: string,
 *  SelectorMenu: string,
 *  SliderMenu: string,
 *  BlockPreview: string,
 *  SettingsMenu: string
 * },
 * getSettings: getSettings,
 * loadSettings: loadSettings,
 * getWotData: getWotData,
 * setWotData: setWotData,
 * saveSettings: saveSettings,
 * getUserPositionForButton: getUserPositionForButton,
 * removeUserPositionForButton: removeUserPositionForButton,
 * selectedElement: *,
 * setAdguardSettings: setAdguardSettings,
 * getAdguardSettings: getAdguardSettings
 * }}
 * @constructor
 */

function Settings() {
  var Constants = {
    MINIMUM_IE_SUPPORTED_VERSION: 10,
    MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON: 250,
    IFRAME_ID: 'adguard-assistant-dialog',
    REPORT_URL: 'https://adguard.com/adguard-report/{0}/report.html'
  };
  var MenuItemsNames = {
    DetailedMenu: 'mainMenu.html',
    SelectorMenu: 'selectorMenu.html',
    SliderMenu: 'sliderMenu.html',
    BlockPreview: 'blockPreview.html',
    SettingsMenu: 'settingsMenu.html'
  };
  /**
   * Config data stored in GM storage
   * @typedef {Object} DefaultConfig
   * @property {boolean} buttonPositionTop - Static button position from top.
   * @property {boolean} buttonPositionLeft - Static button position from left.
   * @property {boolean} smallIcon - Button size. true - small, false - large.
   * @property {boolean} personalConfig - Is the settings save for all
   * sites or for each site individually.
   * @property {number} scriptVersion - Version of scheme. 2 is set since assistant version 4.2.
   * @property {object} personal - Object config that may includes the same properties,
   * except `scriptVersion`, but for each site individually.
   */

  var DefaultConfig = {
    buttonPositionTop: false,
    buttonPositionLeft: false,
    smallIcon: false,
    personalConfig: true,
    scriptVersion: 2,
    personal: {}
  };
  var wotData = null;
  var Config = null;
  var adguardSettings = null;
  var SITENAME = window.location.host;

  var getSettings = function getSettings() {
    return gm.getValue('settings').then(function (config) {
      try {
        return config && src_protectedApi.json.parse(config);
      } catch (ex) {
        src_log.error(ex);
        return null;
      }
    });
  };

  var validateSettings = function validateSettings(settings) {
    if (!settings) {
      src_log.error('Invalid settings object');
      return false;
    } // eslint-disable-next-line no-restricted-syntax, prefer-const


    for (var prop in settings) {
      // eslint-disable-next-line no-prototype-builtins
      if (!settings.hasOwnProperty(prop)) {
        // eslint-disable-next-line no-continue
        continue;
      }

      var property = DefaultConfig[prop];

      if (property && settings_typeof(property) !== settings_typeof(settings[prop])) {
        src_log.error('Invalid settings object');
        return false;
      }
    }

    if (settings.scriptVersion > DefaultConfig.scriptVersion) {
      src_log.error('Invalid settings object');
      return false;
    }

    if (settings.scriptVersion < DefaultConfig.scriptVersion) {
      src_log.info('Settings object is outdated. Updating...'); // eslint-disable-next-line no-param-reassign

      settings = src_upgradeHelper.upgradeGmStorage(settings, DefaultConfig.scriptVersion);
    } // save to gm store position data from localStorage
    // eslint-disable-next-line no-param-reassign


    settings = src_upgradeHelper.upgradeLocalStorage(settings, SITENAME);
    return settings;
  };

  var loadSettings = function loadSettings(showButton) {
    src_log.debug('Trying to get settings'); // getting config from gm storage

    getSettings().then(function (config) {
      // check and validate config data for prevent errors and backward compatibility
      var checkedConfig = config && validateSettings(config);

      if (checkedConfig) {
        // saving existing settings to Config variable in the gm storage
        Config = checkedConfig;
        src_log.debug('Settings parsed successfully');
      } else {
        // use default settings without saving
        Config = DefaultConfig;
        src_log.debug('No settings found');
      }

      showButton();
    });
  };

  var saveSettings = function saveSettings(config) {
    if (config) {
      Config = config;
    }

    src_log.debug('Update settings...');
    src_log.debug(Config);
    gm.setValue('settings', Config);
    bypassCache();
  };

  var getWotData = wotData;

  var setWotData = function setWotData(data) {
    wotData = data;
  };

  var setAdguardSettings = function setAdguardSettings(settings) {
    if (typeof settings === 'undefined') {
      src_log.info('No Adguard API Found');
      return;
    }

    adguardSettings = settings;
  };

  var getAdguardSettings = function getAdguardSettings() {
    return adguardSettings;
  };

  var getUserPositionForButton = function getUserPositionForButton() {
    var userPosition;

    if (Config.personalConfig) {
      if (Config.personal && Config.personal[SITENAME]) {
        userPosition = Config.personal[SITENAME].position;
      }
    } else {
      userPosition = Config.position;
    }

    if (userPosition) {
      return userPosition;
    }

    return null;
  };

  var setUserPositionForButton = function setUserPositionForButton(position) {
    if (Config.personalConfig) {
      if (!Config.personal[SITENAME]) {
        Config.personal[SITENAME] = {};
      }

      Config.personal[SITENAME].position = position;
    } else {
      Config.position = position;
    }

    saveSettings(Config);
  };

  var setIconSize = function setIconSize(smallIcon) {
    if (Config.personalConfig) {
      Config.personal[SITENAME].smallIcon = smallIcon;
    } else {
      Config.smallIcon = smallIcon;
    }
  };

  var getIconSize = function getIconSize() {
    if (Config.personalConfig && Config.personal && Config.personal[SITENAME]) {
      return Config.personal[SITENAME].smallIcon;
    }

    return Config.smallIcon;
  };
  /**
   * Set the parameters to which corner of the browser
   * window the button position is placed by option (not drag)
   */


  var setButtonSide = function setButtonSide(buttonSides) {
    if (Config.personalConfig) {
      delete Config.personal[SITENAME].position;
      Config.personal[SITENAME].buttonPositionTop = buttonSides.top;
      Config.personal[SITENAME].buttonPositionLeft = buttonSides.left;
    } else {
      delete Config.position;
      Config.buttonPositionTop = buttonSides.top;
      Config.buttonPositionLeft = buttonSides.left;
    }
  };
  /**
   * Save a setting that specifies how to save button settings: for all sites or only on this
   */


  var setPersonalParam = function setPersonalParam(personalConfig) {
    Config.personalConfig = personalConfig;

    if (Config.personalConfig && !Config.personal) {
      Config.personal = {};
    }

    if (Config.personalConfig && !Config.personal[SITENAME]) {
      Config.personal[SITENAME] = {};
      Config.personal[SITENAME].position = Config.position;
    }

    if (!Config.personalConfig && Config.personal) {
      Config.position = Config.personal[SITENAME] && Config.personal[SITENAME].position;
      delete Config.personal;
    }
  };
  /**
   * Get config that specifies how to save button settings: for all sites or only on this
   */


  var getPersonalConfig = function getPersonalConfig() {
    return Config.personalConfig;
  };
  /**
   * Get the option to which corner of the browser window the button position is placed
   * @return {Object}
   */


  var getButtonSide = function getButtonSide() {
    var config = Config;

    if (config.personalConfig && config.personal && config.personal[SITENAME]) {
      return {
        top: config.personal[SITENAME].buttonPositionTop,
        left: config.personal[SITENAME].buttonPositionLeft
      };
    }

    return {
      top: config.buttonPositionTop,
      left: config.buttonPositionLeft
    };
  };

  return {
    Constants: Constants,
    MenuItemsNames: MenuItemsNames,
    getSettings: getSettings,
    loadSettings: loadSettings,
    getWotData: getWotData,
    setWotData: setWotData,
    saveSettings: saveSettings,
    getUserPositionForButton: getUserPositionForButton,
    getButtonSide: getButtonSide,
    setIconSize: setIconSize,
    setUserPositionForButton: setUserPositionForButton,
    setAdguardSettings: setAdguardSettings,
    setPersonalParam: setPersonalParam,
    setButtonSide: setButtonSide,
    getAdguardSettings: getAdguardSettings,
    getIconSize: getIconSize,
    getPersonalConfig: getPersonalConfig
  };
}

var settings_settings = new Settings();
/* harmony default export */ var src_settings = (settings_settings);
// EXTERNAL MODULE: ./src/templates/button.html
var templates_button = __nested_webpack_require_435152__(6);
var button_default = /*#__PURE__*/__nested_webpack_require_435152__.n(templates_button);

// EXTERNAL MODULE: ./src/templates/mainMenu.html
var mainMenu = __nested_webpack_require_435152__(7);
var mainMenu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(mainMenu);

// EXTERNAL MODULE: ./src/templates/selectorMenu.html
var selectorMenu = __nested_webpack_require_435152__(8);
var selectorMenu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(selectorMenu);

// EXTERNAL MODULE: ./src/templates/settingsMenu.html
var settingsMenu = __nested_webpack_require_435152__(9);
var settingsMenu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(settingsMenu);

// EXTERNAL MODULE: ./src/templates/sliderMenu.html
var sliderMenu = __nested_webpack_require_435152__(10);
var sliderMenu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(sliderMenu);

// EXTERNAL MODULE: ./src/templates/blockPreview.html
var blockPreview = __nested_webpack_require_435152__(11);
var blockPreview_default = /*#__PURE__*/__nested_webpack_require_435152__.n(blockPreview);

// EXTERNAL MODULE: ./src/templates/mobilePopup.html
var mobilePopup = __nested_webpack_require_435152__(12);
var mobilePopup_default = /*#__PURE__*/__nested_webpack_require_435152__.n(mobilePopup);

// EXTERNAL MODULE: ./src/templates/mobileMenu.html
var mobileMenu = __nested_webpack_require_435152__(13);
var mobileMenu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(mobileMenu);

// EXTERNAL MODULE: ./src/styles/base/base-common.less
var base_common = __nested_webpack_require_435152__(14);
var base_common_default = /*#__PURE__*/__nested_webpack_require_435152__.n(base_common);

// EXTERNAL MODULE: ./src/styles/button.less
var styles_button = __nested_webpack_require_435152__(15);
var styles_button_default = /*#__PURE__*/__nested_webpack_require_435152__.n(styles_button);

// EXTERNAL MODULE: ./src/styles/menu.less
var menu = __nested_webpack_require_435152__(16);
var menu_default = /*#__PURE__*/__nested_webpack_require_435152__.n(menu);

// EXTERNAL MODULE: ./src/styles/selector.less
var selector = __nested_webpack_require_435152__(17);
var selector_default = /*#__PURE__*/__nested_webpack_require_435152__.n(selector);

// EXTERNAL MODULE: ./src/styles/mobile-style.less
var mobile_style = __nested_webpack_require_435152__(18);
var mobile_style_default = /*#__PURE__*/__nested_webpack_require_435152__.n(mobile_style);

// CONCATENATED MODULE: ./src/inline-resources.js













var CSS = {
  common: base_common_default.a,
  button: styles_button_default.a,
  iframe: menu_default.a,
  selector: selector_default.a,
  mobile: mobile_style_default.a
};
var HTML = {
  button: button_default.a,
  detailed_menu: mainMenu_default.a,
  selector_menu: selectorMenu_default.a,
  settings_menu: settingsMenu_default.a,
  slider_menu: sliderMenu_default.a,
  preview: blockPreview_default.a,
  popup: mobilePopup_default.a,
  mobile_menu: mobileMenu_default.a
};
// CONCATENATED MODULE: ./src/event.js
/**
 * Custom event
 * @returns {{attach: attach, notify: notify}}
 * @constructor
 */
function CustomEvent() {
  // jshint ignore:line
  var listeners = [];

  var attach = function attach(listener) {
    listeners.push(listener);
  };

  var notify = function notify(args) {
    for (var i = 0; i < listeners.length; i += 1) {
      listeners[i](args);
    }
  };

  return {
    attach: attach,
    notify: notify
  };
}
// CONCATENATED MODULE: ./src/utils/dom-utils.js
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

/**
 * Returns tag name for passed element
 * @param {Element} element target element
 */
var getNodeName = function getNodeName(element) {
  return element && element.nodeName ? element.nodeName.toUpperCase() : '';
};
/**
 * Returns arrays of parents for passed element
 * @param {Element} element target element
 */

var getParentsLevel = function getParentsLevel(element) {
  var parent = element;
  var parentArr = []; // eslint-disable-next-line no-cond-assign

  while ((parent = parent.parentNode) && getNodeName(parent) !== 'BODY') {
    parentArr.push(parent);
  }

  return parentArr;
};
/**
 * Returns child element if it only one ELEMENT_NODE child
 * @param {Element} element target element
 */
// eslint-disable-next-line consistent-return

var getSingleChildren = function getSingleChildren(element) {
  var children = element.childNodes;

  if (children) {
    var count = 0;
    var child;

    for (var i = 0; i < children.length; i += 1) {
      if (children[i].nodeType === 1) {
        child = children[i];
        count += 1;
      }
    }

    return count === 1 ? child : null;
  }
};
/**
 * Returns all children for target element
 * @param {Element} element target element
 */

var getAllChildren = function getAllChildren(element) {
  var childArray = [];
  var child = element; // eslint-disable-next-line no-cond-assign

  while (child = getSingleChildren(child)) {
    childArray.push(child);
  }

  return childArray;
};
/**
 * Converts passed argument to array
 * Usually used for transformatin NodeList to simple Array
 * @param {any} elems
 */

var toArray = function toArray(elems) {
  return elems && elems.length !== undefined ? Array.prototype.slice.call(elems) : [elems];
};
/**
 * Adds passed classes to target element
 * @param {Element} elem target element
 * @param {string} className string where classess must be separeted with space
 */

var addClass = function addClass(elem, className) {
  var elems = toArray(elem);
  elems.forEach(function (item) {
    var classList = item.classList;
    classList.add.apply(classList, _toConsumableArray(className.split(/\s/)));
  });
};
/**
 * Removes passed classes from target element
 * @param {Element} elem target element
 * @param {string} className string where classess must be separeted with space
 */

var removeClass = function removeClass(elem, className) {
  var elems = toArray(elem);
  elems.forEach(function (item) {
    var classList = item.classList;
    classList.remove.apply(classList, _toConsumableArray(className.split(/\s/)));
  });
};
/**
 * Checks whether class in target element
 * @param {Element} elem target element
 * @param {string} className target classname
 */

var hasClass = function hasClass(elem, className) {
  var elems = toArray(elem);

  var _elems = _slicedToArray(elems, 1),
      target = _elems[0];

  return !!(target.classList && target.classList.contains(className));
};
/**
 * Makes element visible via style.display = block
 * @param {Element} elem target element
 */

var dom_utils_show = function show(elem) {
  var elems = toArray(elem);
  elems.forEach(function (item) {
    // eslint-disable-next-line no-param-reassign
    item.style.display = 'block';
  });
};
/**
 * Makes element invisible via style.display = none
 * @param {Element} elem target element
 */

var hide = function hide(elem) {
  var elems = toArray(elem);
  elems.forEach(function (item) {
    // eslint-disable-next-line no-param-reassign
    item.style.display = 'none';
  });
};
/**
 * Inlines css styles to target element
 * @param {Element} elem target element
 * @param {string} attr css name
 * @param {string} value css value
 */

var addStyle = function addStyle(elem, attr, value) {
  var elems = toArray(elem);
  elems.forEach(function (item) {
    // eslint-disable-next-line no-param-reassign
    item.style[attr] = value;
  });
};
// CONCATENATED MODULE: ./locales/index.js
var _require = __nested_webpack_require_435152__(45),
    LOCALES_EQUIVALENTS_MAP = _require.LOCALES_EQUIVALENTS_MAP,
    LANGUAGES = _require.LANGUAGES;

var locales = Object.keys(LANGUAGES).reduce(function (acc, language) {
  var resultLocale = LOCALES_EQUIVALENTS_MAP[language] || language; // eslint-disable-next-line global-require,import/no-dynamic-require

  var dictionary = __nested_webpack_require_435152__(46)("./".concat(resultLocale, "/messages.json"));

  acc[resultLocale] = dictionary;
  return acc;
}, {});
/* harmony default export */ var locales_0 = (locales);
// CONCATENATED MODULE: ./src/localization.js
function localization_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { localization_typeof = function _typeof(obj) { return typeof obj; }; } else { localization_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return localization_typeof(obj); }

function localization_slicedToArray(arr, i) { return localization_arrayWithHoles(arr) || localization_iterableToArrayLimit(arr, i) || localization_unsupportedIterableToArray(arr, i) || localization_nonIterableRest(); }

function localization_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function localization_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return localization_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return localization_arrayLikeToArray(o, minLen); }

function localization_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function localization_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function localization_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/* global AdguardSettings */



var localization_require = __nested_webpack_require_435152__(5),
    _require2 = localization_slicedToArray(localization_require, 1),
    BASE_LOCALE = _require2[0].base_locale;
/**
 * Object that manages localizations
 * @returns {{getMessage: Function, translateElement: Function}}
 * @constructor
 */


function Localization() {
  var currentLocale = null;
  var locale; // convert locales keys to lower case

  var supportedLocales = Object.keys(locales_0).reduce(function (acc, key) {
    var lowerCasedKey = key.toLowerCase();
    acc[lowerCasedKey] = locales_0[key];
    return acc;
  }, {});
  /*
   * In Edge, there is undocumented behavior. When you run the script
   * through `executeScript`, the Edge browser blocks access to the
   * `languages` property of the `navigator` object without displaying
   * an error in the console and stopping the processing of the code.
   * When you call `navigator.languages` manually from the console,
   * there is no error and the correct value is returned. Therefore,
   * it is necessary to check `typeof navigator.languages !== 'undefined'`.
   * issue: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/983
   */

  if (typeof AdguardSettings !== 'undefined') {
    // eslint-disable-next-line prefer-destructuring
    locale = AdguardSettings.locale;
  } else if (typeof navigator.languages !== 'undefined') {
    // eslint-disable-next-line prefer-destructuring
    locale = navigator.languages[0];
  } else if (navigator.language) {
    locale = navigator.language;
  } else if (navigator.browserLanguage) {
    locale = navigator.browserLanguage;
  } else {
    locale = BASE_LOCALE;
  }

  if (supportedLocales[locale]) {
    currentLocale = locale;
  } else if (supportedLocales[locale.toLowerCase()]) {
    currentLocale = locale.toLowerCase();
  } else {
    var langSplit = locale.split('-')[0];

    if (supportedLocales[langSplit]) {
      currentLocale = langSplit;
    } else {
      currentLocale = BASE_LOCALE;
    }
  }

  var getMessage = function getMessage(messageId) {
    var message = supportedLocales[currentLocale][messageId];

    if (!message) {
      return localization_typeof(supportedLocales[BASE_LOCALE][messageId]) === 'object' ? supportedLocales[BASE_LOCALE][messageId].message : supportedLocales[BASE_LOCALE][messageId] || '';
    }

    return supportedLocales[currentLocale][messageId].message || supportedLocales[currentLocale][messageId];
  };

  var createElement = function createElement(tagName, attributes) {
    var el = src_protectedApi.createElement(tagName);

    if (!attributes) {
      return el;
    }

    var attrs = attributes.split(/([a-z]+='[^']+')/);

    for (var i = 0; i < attrs.length; i += 1) {
      var attr = attrs[i].trim();

      if (!attr) {
        // eslint-disable-next-line no-continue
        continue;
      }

      var index = attr.indexOf('=');
      var attrName = void 0;
      var attrValue = void 0;

      if (index > 0) {
        attrName = attr.substring(0, index);
        attrValue = attr.substring(index + 2, attr.length - 1);
      }

      if (attrName && attrValue) {
        el.setAttribute(attrName, attrValue);
      }
    }

    return el;
  };

  var processString = function processString(str, element) {
    var el;
    var match1 = /^([^]*?)<(a|strong|span|i)([^>]*)>(.*?)<\/\2>([^]*)$/m.exec(str);
    var match2 = /^([^]*?)<(br|input)([^>]*)\/?>([^]*)$/m.exec(str);

    if (match1) {
      processString(match1[1], element);
      el = createElement(match1[2], match1[3]);
      processString(match1[4], el);
      element.appendChild(el);
      processString(match1[5], element);
    } else if (match2) {
      processString(match2[1], element);
      el = createElement(match2[2], match2[3]);
      element.appendChild(el);
      processString(match2[4], element);
    } else {
      element.appendChild(document.createTextNode(str.replace(/&nbsp;/g, "\xA0")));
    }
  };

  var translateElement = function translateElement(element, message) {
    try {
      while (element.lastChild) {
        element.removeChild(element.lastChild);
      }

      processString(message, element);
    } catch (ex) {// Ignore exceptions
    }
  };

  return {
    getMessage: getMessage,
    translateElement: translateElement
  };
}

var localization = new Localization();
/* harmony default export */ var src_localization = (localization);
// CONCATENATED MODULE: ./src/controllers/mainMenuController.js








/**
 * Main menu controller
 * @param iframe
 * @returns {{init: init}}
 * @constructor
 */

function DetailedMenuController(iframe) {
  var contentDocument = null;
  var iframeCtrl = iframe;
  var domain = null;
  var FILTERING_STATE_LS_PROPERTY = '__adfstate';
  var CONFIDENCE_LEVEL = {
    ZERO: {
      from: 0,
      to: 5
    },
    ONE: {
      from: 6,
      to: 11
    },
    TWO: {
      from: 12,
      to: 22
    },
    THREE: {
      from: 23,
      to: 33
    },
    FOUR: {
      from: 34,
      to: 44
    },
    FIVE: {
      from: 45,
      to: Infinity
    }
  };

  var setDomain = function setDomain() {
    domain = decodeURIComponent(window.location.hostname);
    contentDocument.getElementsByClassName('menu-head_name')[0].textContent = domain || 'unknown';
  };

  var truncateDecimals = function truncateDecimals(number) {
    return Math[number < 0 ? 'ceil' : 'floor'](number);
  };

  var getWotReputationSettings = function getWotReputationSettings(wotData) {
    if (!wotData) {
      return null;
    }

    var prefix = 'adg-wot-';
    var averageWot = wotData.reputation;
    var wotRatingText = null;
    var wotRating = null;

    if (averageWot === 0) {
      wotRatingText = src_localization.getMessage('wot_unknown_description');
      wotRating = "".concat(prefix, "unknown");
      return {
        text: wotRatingText,
        "class": wotRating
      };
    }

    var wotSettings = {
      0: {
        color: 'red',
        string: src_localization.getMessage('wot_bad_description')
      },
      1: {
        color: 'lightRed',
        string: src_localization.getMessage('wot_poor_description')
      },
      2: {
        color: 'yellow',
        string: src_localization.getMessage('wot_unsatisfactory_description')
      },
      3: {
        color: 'lightGreen',
        string: src_localization.getMessage('wot_good_description')
      },
      4: {
        color: 'green',
        string: src_localization.getMessage('wot_excellent_description')
      },
      5: {
        color: 'green',
        string: src_localization.getMessage('wot_excellent_description')
      }
    };
    var current = wotSettings[truncateDecimals(averageWot / 20)];
    wotRatingText = current.string;
    wotRating = prefix + current.color;
    return {
      text: wotRatingText,
      "class": wotRating
    };
  };

  var getWotConfidenceClass = function getWotConfidenceClass(wotData) {
    if (!wotData) {
      return null;
    }

    var prefix = 'adg-wot-confidence-';

    var isThisLevel = function isThisLevel(num, level) {
      return num >= level.from && num <= level.to;
    };

    var confidenceWot = wotData.confidence;

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.ZERO)) {
      return "".concat(prefix, "0");
    }

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.ONE)) {
      return "".concat(prefix, "1");
    }

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.TWO)) {
      return "".concat(prefix, "2");
    }

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.THREE)) {
      return "".concat(prefix, "3");
    }

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.FOUR)) {
      return "".concat(prefix, "4");
    }

    if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.FIVE)) {
      return "".concat(prefix, "5");
    }

    return undefined;
  };

  var setWotData = function setWotData() {
    var wotData = src_wot.getWotData();
    var wotReputationSettings = getWotReputationSettings(wotData);

    if (!wotReputationSettings) {
      return;
    }

    var wotIndication = contentDocument.querySelector('#WotIndication');
    addClass(wotIndication, wotReputationSettings["class"]);
    wotIndication.dataset.title = src_localization.getMessage('menu_wot_reputation_indicator');
    var wotDescriptionText = contentDocument.querySelector('#WotDescriptionText');
    var wotLogo = '<span id="WotLogo"><span class="wot-logo"></span></span>';
    wotDescriptionText.innerHTML = wotReputationSettings.text.replace('$1', wotLogo);
    var confidenceIndication = contentDocument.querySelector('#ConfidenceIndication');
    var wotConfidenceClass = getWotConfidenceClass(wotData);
    addClass(confidenceIndication, wotConfidenceClass);
    wotIndication.dataset.title = src_localization.getMessage('menu_wot_reputation_confidence_level');
    var wotLinkElem = contentDocument.querySelector('.wot-indicator');
    wotLinkElem.href = src_wot.getWotScorecardUrl(domain);
    removeClass(contentDocument.querySelectorAll('.wot-hide'), 'wot-hide');
  };

  var startAdSelector = function startAdSelector() {
    iframeCtrl.showSelectorMenu();
  };

  var goToWotUrl = function goToWotUrl() {
    window.open(src_wot.WOT_URL, '_blank');
  };

  var doNotBlock = function doNotBlock() {
    gm.ADG_temporaryDontBlock(30, function () {
      reloadPageBypassCache();
    });
  };

  var reportAbuse = function reportAbuse() {
    gm.ADG_sendAbuse(function () {
      iframeCtrl.removeIframe();
    });
  };

  var goToSiteReport = function goToSiteReport() {
    var url = src_settings.Constants.REPORT_URL.replace('{0}', domain);
    window.open(url, '_blank');
  };

  var showHideBlockAdButton = function showHideBlockAdButton(isFilter) {
    var blockAd = contentDocument.querySelector('#block-ad');

    if (isFilter) {
      removeClass(blockAd, 'hidden');
    } else {
      addClass(blockAd, 'hidden');
    }

    iframeCtrl.resizeIframe();
  };
  /**
   * Storing the filtering state for quick initialization
   *
   * @param {Boolean} state  on/off filtering state
   */
  // eslint-disable-next-line consistent-return


  var setFilteringStateToStore = function setFilteringStateToStore(state) {
    try {
      localStorage.setItem(FILTERING_STATE_LS_PROPERTY, src_protectedApi.json.stringify({
        state: state
      }));
    } catch (ex) {
      src_log.error(ex);
      return null;
    }
  };

  var onIsFilterChange = function onIsFilterChange() {
    var isFilter = contentDocument.getElementById('is-filter').checked; // animate class for prevent animation while the state from the application is determined

    addClass(contentDocument.querySelectorAll('.menu-filter_label'), 'animate');
    showHideBlockAdButton(isFilter);
    setFilteringStateToStore(isFilter);
    gm.ADG_changeFilteringState(isFilter, function () {
      reloadPageBypassCache();
    });
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.close': iframeCtrl.removeIframe,
      '#block-ad': startAdSelector,
      '#assistant-settings': iframeCtrl.showSettingsMenu,
      '#WotLogo': goToWotUrl,
      '#do-not-block-30-sec': doNotBlock,
      '#report-abuse': reportAbuse,
      '#site-report': goToSiteReport,
      '#is-filter': onIsFilterChange
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
  };
  /**
   * Getting the filtering state for quick initialization from the localStorage,
   * while the state from the application is determined
   *
   * @returns {Boolean} on/off filtering state
   */


  var getFilteringStateFromStore = function getFilteringStateFromStore() {
    try {
      var state = localStorage.getItem(FILTERING_STATE_LS_PROPERTY);

      if (state) {
        return src_protectedApi.json.parse(state).state;
      }

      return false;
    } catch (ex) {
      src_log.error(ex);
      return false;
    }
  };

  var setInitFilteringState = function setInitFilteringState() {
    var input = contentDocument.getElementById('is-filter');
    input.checked = getFilteringStateFromStore();
    gm.ADG_isFiltered(function (isFiltered) {
      input.checked = isFiltered;
      setFilteringStateToStore(isFiltered);
      showHideBlockAdButton(isFiltered);
    });
  };
  /*
   Called from IframeController._showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe) {
    // eslint-disable-next-line prefer-destructuring
    contentDocument = iframe.contentDocument;
    setDomain();
    setWotData();
    bindEvents();
    setInitFilteringState();
  };

  return {
    init: init
  };
}
// CONCATENATED MODULE: ./src/adguard-selector.js
function adguard_selector_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { adguard_selector_typeof = function _typeof(obj) { return typeof obj; }; } else { adguard_selector_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return adguard_selector_typeof(obj); }

/* eslint-disable no-param-reassign, func-names */


/**
 * Adguard selector
 * @type {Function}
 */

function AdguardSelector() {
  var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var PLACEHOLDER_PREFIX = 'adguard-placeholder';
  var placeholdedElements = null;
  var transparentPlaceholdedElement = null;
  var restrictedElements = null;
  var SELECTED_CLASS = 'adguard_sg_selected';
  var REJECTED_CLASS = 'adguard_sg_rejected';
  var IGNORED_CLASS = 'adguard_sg_ignore';
  var unbound = true;
  var onElementSelectedHandler = null;
  var ignoreTouchEvent = 0;
  var selectionRenderer; // PRIVATE METHODS

  var removeClassName = function removeClassName(className) {
    var elem = document.querySelectorAll(".".concat(className));
    removeClass(elem, className);
  };

  var firstSelectedOrSuggestedParent = function firstSelectedOrSuggestedParent(element) {
    if (hasClass(element, SELECTED_CLASS)) {
      return element;
    } // eslint-disable-next-line no-cond-assign, no-param-reassign


    while (element.parentNode && (element = element.parentNode)) {
      if (restrictedElements.indexOf(element) === -1) {
        if (hasClass(element, SELECTED_CLASS)) {
          return element;
        }
      }
    }

    return null;
  };

  var px = function px(p) {
    return "".concat(p, "px");
  };

  var getTagPath = function getTagPath(element) {
    if (element.parentNode) {
      return "".concat(element.parentNode.tagName.toLowerCase(), " ").concat(element.tagName.toLowerCase());
    }

    return element.tagName.toLowerCase();
  };
  /** ******** Events ************** */


  var sgMouseoverHandler = function sgMouseoverHandler(e) {
    e.stopPropagation();

    if (unbound) {
      return true;
    }

    if (this === document.documentElement || this === document.documentElement.parentNode) {
      return false;
    }

    var parent = firstSelectedOrSuggestedParent(this);

    if (parent !== null && parent !== this) {
      selectionRenderer.add(parent);
    } else {
      selectionRenderer.add(this);
    }

    return false;
  }; // e.isTrusted checking for prevent programmatically events
  // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134


  var sgMousedownHandler = function sgMousedownHandler(e) {
    if (e && e.isTrusted === false) {
      return false;
    }

    if (hasClass(e.target, IGNORED_CLASS)) {
      return false;
    }

    e.preventDefault();
    e.stopImmediatePropagation();

    if (unbound) {
      return true;
    }

    var elem = e.target;
    var borders = elem === selectionRenderer.borderTop || elem === selectionRenderer.borderLeft || elem === selectionRenderer.borderRight || elem === selectionRenderer.borderBottom;

    if (borders) {
      // Clicked on one of our floating borders, target the element that we are bordering.
      elem = elem.target_elem || elem;
    }

    if (elem === document.documentElement || elem === document.documentElement.parentNode) {
      return undefined;
    }

    selectionRenderer.remove();
    onElementSelectedHandler(elem);
    return false;
  };
  /** ******** Touch event handlers ************** */


  var touchElementSelectHandler = function touchElementSelectHandler(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    sgMouseoverHandler.call(this, e);
    sgMousedownHandler.call(this, e);
  };

  var removeElementToPreventEvents = function removeElementToPreventEvents() {
    if (!transparentPlaceholdedElement) {
      return false;
    }

    transparentPlaceholdedElement.removeEventListener('click', touchElementSelectHandler);
    transparentPlaceholdedElement.removeEventListener('touchstart', touchElementSelectHandler);
    transparentPlaceholdedElement.removeEventListener('pointerdown', touchElementSelectHandler);
    transparentPlaceholdedElement.parentNode.removeChild(transparentPlaceholdedElement);
    transparentPlaceholdedElement = null;
    return undefined;
  };

  var clearSelected = function clearSelected() {
    removeElementToPreventEvents();
    removeClassName(SELECTED_CLASS);
    removeClassName(REJECTED_CLASS);
    selectionRenderer.remove();
  };
  /**
   * Returns element offset coordinates extended with width and height values.
   *
   * @param elem
   * @returns {{top: number, left: number, outerWidth: number, outerHeight: number}}
   */


  var getOffsetExtended = function getOffsetExtended(elem) {
    var bodyRect = document.documentElement.getBoundingClientRect();
    var elemRect = elem.getBoundingClientRect();
    var rectTop = elemRect.top - bodyRect.top;
    var rectLeft = elemRect.left - bodyRect.left;
    return {
      top: rectTop,
      left: rectLeft,
      outerWidth: elem.offsetWidth,
      outerHeight: elem.offsetHeight
    };
  };
  /**
   * Adds borders to selected element.
   *
   * Default implementation of selection renderer.
   * Can be overwritten with custom implementation as a parameter of init function.
   *
   * @param element
   * @private
   */
  // eslint-disable-next-line no-shadow


  var BorderSelectionRenderer = function (api) {
    var BORDER_WIDTH = 5;
    var BORDER_PADDING = 2;
    var BORDER_CSS = {
      position: 'absolute',
      background: 'white',
      margin: '0px',
      padding: '0px',
      display: 'block',
      "float": 'none',
      border: '0',
      outline: '0',
      'background-color': '#13a35e',
      'font-style': 'normal',
      'vertical-align': 'baseline',
      'text-align': 'left',
      'line-height': '12px',
      'box-sizing': 'content-box',
      'min-height': 'auto',
      'max-height': 'auto',
      'min-width': 'auto',
      'max-width': 'auto',
      width: 0,
      height: 0,
      'z-index': 2147483646,
      'border-radius': 0
    };
    var BORDER_BOTTOM_CSS = {
      'font-size': '10px',
      'font-weight': 'bold',
      color: 'white',
      padding: '2px 0px 2px 5px',
      overflow: 'hidden'
    };
    var borderTop = null;
    var borderLeft = null;
    var borderRight = null;
    var borderBottom = null;

    var showBorders = function showBorders() {
      if (borderTop && borderBottom && borderLeft && borderRight) {
        dom_utils_show(borderTop);
        dom_utils_show(borderBottom);
        dom_utils_show(borderLeft);
        dom_utils_show(borderRight);
      }
    };

    var addBorderToDom = function addBorderToDom() {
      document.documentElement.appendChild(borderTop);
      document.documentElement.appendChild(borderBottom);
      document.documentElement.appendChild(borderLeft);
      document.documentElement.appendChild(borderRight);
    };

    var addBorderCSS = function addBorderCSS() {
      Object.keys(BORDER_CSS).forEach(function (item) {
        borderTop.style[item] = BORDER_CSS[item];
        borderBottom.style[item] = BORDER_CSS[item];
        borderLeft.style[item] = BORDER_CSS[item];
        borderRight.style[item] = BORDER_CSS[item];
      });
      Object.keys(BORDER_BOTTOM_CSS).forEach(function (item) {
        borderBottom.style[item] = BORDER_BOTTOM_CSS[item];
      });
    };

    var removeBorderFromDom = function removeBorderFromDom() {
      if (borderTop) {
        var parent = borderTop.parentNode;

        if (parent) {
          parent.removeChild(borderTop);
          parent.removeChild(borderBottom);
          parent.removeChild(borderLeft);
          parent.removeChild(borderRight);
        }
      }

      borderTop = null;
      borderBottom = null;
      borderRight = null;
      borderLeft = null;
    };
    /**
     * Preparing renderer.
     */


    api.init = function () {
      if (!borderTop) {
        var width = px(BORDER_WIDTH);
        var bottomHeight = px(BORDER_WIDTH + 6);
        borderTop = src_protectedApi.createElement('div');
        borderBottom = src_protectedApi.createElement('div');
        borderLeft = src_protectedApi.createElement('div');
        borderRight = src_protectedApi.createElement('div');
        borderTop.addEventListener('click', sgMousedownHandler);
        borderBottom.addEventListener('click', sgMousedownHandler);
        borderLeft.addEventListener('click', sgMousedownHandler);
        borderRight.addEventListener('click', sgMousedownHandler);
        addStyle(borderTop, 'height', width);
        addStyle(borderBottom, 'height', bottomHeight);
        addStyle(borderLeft, 'width', width);
        addStyle(borderRight, 'width', width);
        hide(borderTop);
        hide(borderBottom);
        hide(borderLeft);
        hide(borderRight); // eslint-disable-next-line prefer-destructuring

        api.borderTop = borderTop; // eslint-disable-next-line prefer-destructuring

        api.borderBottom = borderBottom; // eslint-disable-next-line prefer-destructuring

        api.borderLeft = borderLeft; // eslint-disable-next-line prefer-destructuring

        api.borderRight = borderRight;
        addBorderCSS();
        addBorderToDom();
      }
    };
    /**
     * Clearing DOM and so on.
     */


    api.finalize = function () {
      removeBorderFromDom();
    };
    /**
     * Adds borders to specified element
     *
     * @param element
     */


    api.add = function (element) {
      api.remove();

      if (!element) {
        return;
      }

      var p = getOffsetExtended(element);
      var top = p.top;
      var left = p.left;
      var width = p.outerWidth;
      var height = p.outerHeight;
      addStyle(borderTop, 'width', px(width + BORDER_PADDING * 2 + BORDER_WIDTH * 2));
      addStyle(borderTop, 'height', px(5));
      addStyle(borderTop, 'top', px(top - BORDER_WIDTH - BORDER_PADDING));
      addStyle(borderTop, 'left', px(left - BORDER_PADDING - BORDER_WIDTH));
      addStyle(borderBottom, 'width', px(width + BORDER_PADDING * 2 + BORDER_WIDTH));
      addStyle(borderBottom, 'height', px(12));
      addStyle(borderBottom, 'top', px(top + height + BORDER_PADDING));
      addStyle(borderBottom, 'left', px(left - BORDER_PADDING - BORDER_WIDTH));
      addStyle(borderLeft, 'height', px(height + BORDER_PADDING * 2));
      addStyle(borderLeft, 'width', px(5));
      addStyle(borderLeft, 'top', px(top - BORDER_PADDING));
      addStyle(borderLeft, 'left', px(left - BORDER_PADDING - BORDER_WIDTH));
      addStyle(borderRight, 'height', px(height + BORDER_PADDING * 2));
      addStyle(borderRight, 'width', px(5));
      addStyle(borderRight, 'top', px(top - BORDER_PADDING));
      addStyle(borderRight, 'left', px(left + width + BORDER_PADDING));
      borderBottom.textContent = getTagPath(element);
      borderRight.target_elem = element;
      borderLeft.target_elem = element;
      borderTop.target_elem = element;
      borderBottom.target_elem = element;
      showBorders();
    };
    /**
     * Removes borders
     */


    api.remove = function () {
      if (borderTop && borderBottom && borderLeft && borderRight) {
        hide(borderTop);
        hide(borderBottom);
        hide(borderLeft);
        hide(borderRight);
      }
    };

    return api; // eslint-disable-next-line no-use-before-define
  }(BorderSelectionRenderer || {});

  var linkHelper = src_protectedApi.createElement('a');

  var getHost = function getHost(url) {
    if (!url) {
      return '';
    }

    linkHelper.href = url;
    return linkHelper.hostname;
  };

  var makePlaceholderImage = function makePlaceholderImage(element) {
    var placeHolder = src_protectedApi.createElement('div');
    var style = window.getComputedStyle(element);
    placeHolder.style.height = style.height;
    placeHolder.style.width = style.width;
    placeHolder.style.position = style.position;
    placeHolder.style.top = style.top;
    placeHolder.style.bottom = style.bottom;
    placeHolder.style.left = style.left;
    placeHolder.style.right = style.right;
    placeHolder.className += "".concat(PLACEHOLDER_PREFIX, " ").concat(IGNORED_CLASS);
    var icon = src_protectedApi.createElement('div');
    icon.className += "".concat(PLACEHOLDER_PREFIX, "-icon ").concat(IGNORED_CLASS);
    var domain = src_protectedApi.createElement('div');
    domain.textContent = getHost(element.src);
    domain.className += "".concat(PLACEHOLDER_PREFIX, "-domain ").concat(IGNORED_CLASS);
    icon.appendChild(domain);
    placeHolder.appendChild(icon);
    return placeHolder;
  };

  var removePlaceholders = function removePlaceholders() {
    removeElementToPreventEvents();

    if (!placeholdedElements) {
      return;
    }

    var elements = placeholdedElements;

    for (var i = 0; i < elements.length; i += 1) {
      var current = elements[i];
      var id = PLACEHOLDER_PREFIX + i;
      var placeHolder = document.querySelector("#".concat(id));

      if (placeHolder) {
        var parent = placeHolder.parentNode;

        if (parent) {
          parent.replaceChild(current, placeHolder);
        }
      }
    }

    placeholdedElements = null;
  };

  var placeholderClick = function placeholderClick(element) {
    selectionRenderer.remove();
    removePlaceholders();
    onElementSelectedHandler(element);
  };
  /**
   * Making top level transparent layer to prevented events on emerging ad.
   * see: https://github.com/AdguardTeam/AdguardAssistant/issues/220
   *
   * @param element element where ad is added
   */


  var preventEvents = function preventEvents(element) {
    var placeHolder = src_protectedApi.createElement('div');
    var style = getOffsetExtended(element);
    placeHolder.style.height = px(style.outerHeight);
    placeHolder.style.width = px(style.outerWidth);
    placeHolder.style.top = px(style.top);
    placeHolder.style.left = px(style.left);
    placeHolder.style.background = 'transparent';
    placeHolder.style.position = 'absolute';
    placeHolder.style['pointer-events'] = 'all';
    placeHolder.style['box-sizing'] = 'content-box';
    placeHolder.style['z-index'] = '2147483646';
    placeHolder.className += IGNORED_CLASS;
    transparentPlaceholdedElement = placeHolder;
    placeHolder.addEventListener('click', touchElementSelectHandler);
    placeHolder.addEventListener('touchstart', touchElementSelectHandler);
    placeHolder.addEventListener('pointerdown', touchElementSelectHandler);
    document.documentElement.appendChild(placeHolder);
  };

  var gestureEndHandler = function gestureEndHandler() {
    ignoreTouchEvent = 2;
    return true;
  };

  var touchMoveHandler = function touchMoveHandler() {
    ignoreTouchEvent = 1;
    return true;
  };

  var needIgnoreTouchEvent = function needIgnoreTouchEvent() {
    if (ignoreTouchEvent > 0) {
      ignoreTouchEvent -= 1;
      return true;
    }

    return false;
  };

  var makeIFrameAndEmbeddedSelector = function makeIFrameAndEmbeddedSelector() {
    placeholdedElements = document.querySelectorAll("iframe:not(.".concat(IGNORED_CLASS, "),embed,object"));
    toArray(placeholdedElements).filter(function (elem) {
      var isVisible = elem.style.display !== 'none';
      var isHaveSize = elem.offsetWidth !== 0 && elem.offsetHeight !== 0;
      return isVisible && isHaveSize;
    });
    var elements = placeholdedElements;

    var _loop = function _loop(i) {
      var current = elements[i]; // eslint-disable-next-line no-shadow

      (function (current) {
        var placeHolder = makePlaceholderImage(current);
        var id = PLACEHOLDER_PREFIX + i;
        placeHolder.setAttribute('id', id);
        var parent = current.parentNode;

        if (parent) {
          parent.replaceChild(placeHolder, current);
          placeHolder.addEventListener('gestureend', gestureEndHandler);
          placeHolder.addEventListener('touchmove', touchMoveHandler); // eslint-disable-next-line consistent-return

          placeHolder.addEventListener('touchend', function (e) {
            e.preventDefault();

            if (needIgnoreTouchEvent()) {
              return true;
            }

            placeholderClick(current);
          });
          var elems = document.querySelectorAll("#".concat(id));
          toArray(elems).forEach(function (elem) {
            elem.addEventListener('click', function (e) {
              e.preventDefault();
              placeholderClick(current);
            });
          });
        }
      })(current);
    };

    for (var i = 0; i < elements.length; i += 1) {
      _loop(i);
    }
  };

  var sgMouseoutHandler = function sgMouseoutHandler() {
    if (unbound) {
      return true;
    }

    if (this === document.documentElement || this === document.documentElement.parentNode) {
      return false;
    }

    selectionRenderer.remove();
    return false;
  };

  var elementTouchendHandler = function elementTouchendHandler(e) {
    if (hasClass(e.target, IGNORED_CLASS)) {
      return false;
    }

    e.stopPropagation();

    if (needIgnoreTouchEvent()) {
      return true;
    }

    touchElementSelectHandler.call(this, e);
    return false;
  };

  var emptyEventHandler = function emptyEventHandler(e) {
    e.stopPropagation();
    return false;
  };

  var setupEventHandlers = function setupEventHandlers() {
    makeIFrameAndEmbeddedSelector();
    var elements = document.querySelectorAll("body *:not(.".concat(IGNORED_CLASS, ")"));
    toArray(elements).forEach(function (el) {
      el.addEventListener('gestureend', gestureEndHandler);
      el.addEventListener('touchmove', touchMoveHandler);
      el.addEventListener('touchend', elementTouchendHandler, true);
      el.addEventListener('touchstart', emptyEventHandler);
      el.addEventListener('mouseover', sgMouseoverHandler);
      el.addEventListener('mouseout', sgMouseoutHandler);
      el.addEventListener('click', sgMousedownHandler, true);
    });
  };

  var deleteEventHandlers = function deleteEventHandlers() {
    removePlaceholders();
    var elements = document.querySelectorAll('body *');
    toArray(elements).forEach(function (el) {
      el.removeEventListener('gestureend', gestureEndHandler);
      el.removeEventListener('touchmove', touchMoveHandler);
      el.removeEventListener('touchend', elementTouchendHandler, true);
      el.removeEventListener('touchstart', emptyEventHandler);
      el.removeEventListener('mouseover', sgMouseoverHandler);
      el.removeEventListener('mouseout', sgMouseoutHandler);
      el.removeEventListener('click', sgMousedownHandler, true);
    });
  }; // Define default implementation of selection renderer.


  selectionRenderer = BorderSelectionRenderer; // PUBLIC API

  /**
   * Starts selector module.
   *
   * @param onElementSelected callback function
   * @param selectionRenderImpl optional object contains selection presentation implementation
   */

  api.init = function (onElementSelected, selectionRenderImpl) {
    onElementSelectedHandler = onElementSelected;

    if (selectionRenderImpl && adguard_selector_typeof(selectionRenderImpl) === 'object') {
      selectionRenderer = selectionRenderImpl;
    }

    restrictedElements = ['html', 'body', 'head', 'base'].map(function (selector) {
      return document.querySelector(selector);
    });
    selectionRenderer.init();
    setupEventHandlers();
    unbound = false;
  };
  /**
   * Resets state of selector.
   * Clears current selection.
   */


  api.reset = function () {
    clearSelected();
  };
  /**
   * Destroys selector module.
   * Removes all selector elements and unbinds event handlers.
   */


  api.close = function () {
    unbound = true;
    selectionRenderer.finalize();
    deleteEventHandlers();
  };
  /**
   * Selects specified element.
   * Marks element as selected and holds selection on it.
   *
   * @param element
   */


  api.selectElement = function (element) {
    selectionRenderer.add(element);
    removePlaceholders();
    unbound = true;
    preventEvents(element);
  };
  /**
   Returns css class name.
   If this class assigns to HTML element, then Adguard Selector ignores it.
   */
  // eslint-disable-next-line func-names


  api.ignoreClassName = function () {
    return IGNORED_CLASS;
  };

  return api;
}

var adguard_selector_selector = new AdguardSelector();
/* harmony default export */ var adguard_selector = (adguard_selector_selector);
// CONCATENATED MODULE: ./src/controllers/selectorMenuController.js


/**
 * Selector menu controller
 * @returns {{init: init}}
 * @constructor
 */

function SelectorMenuController(iframe) {
  var contentDocument = null;
  var iframeCtrl = iframe;

  var close = function close() {
    iframeCtrl.removeIframe();
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.close': close,
      '.btn-default': close
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
  };

  var onElementSelected = function onElementSelected(element) {
    iframeCtrl.showSliderMenu(element);
  };

  var startSelector = function startSelector() {
    adguard_selector.reset();
    adguard_selector.init(onElementSelected);
  };
  /*
   Called from IframeController._showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe) {
    // eslint-disable-next-line prefer-destructuring
    contentDocument = iframe.contentDocument;
    bindEvents();
    startSelector();
  };

  iframeCtrl.onCloseMenu.attach(adguard_selector.close);
  return {
    init: init,
    startSelector: startSelector
  };
}
// CONCATENATED MODULE: ./src/slider-widget.js


var BASIC_GREEN_COLOR = '#36BA53';
var DARK_GREEN_COLOR = '#4D995F';
var TICK_RIGHT_COLOR = '#E0DFDB';
/**
 * Slider widget
 * @type {Function}
 */

function SliderWidget() {
  var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var PLACEHOLDER_CLASS = 'adg-slide ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all';
  var HANDLE_CLASS = 'ui-slider-handle';
  var HANDLE_FULL_CLASS = 'ui-slider-handle ui-state-default ui-corner-all';
  var TICK_CLASS = 'tick';
  var TICK_FULL_CLASS = 'tick ui-widget-content';
  var tickLeftColor = BASIC_GREEN_COLOR;
  var placeholder = null;
  var min = 0;
  var max = 1;
  var value = 0;
  var sliderArea = null;
  var onValueChanged = null;

  if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
    tickLeftColor = DARK_GREEN_COLOR;
  }

  var refresh = function refresh() {
    var handle = placeholder.querySelectorAll(".".concat(HANDLE_CLASS));
    addStyle(handle, 'left', "".concat((value - 1) * 100 / (max - min), "%"));
    var ticks = placeholder.querySelectorAll(".".concat(TICK_CLASS));

    for (var i = 0; i < ticks.length; i += 1) {
      if (i + 1 < value) {
        addStyle(ticks[i], 'background-color', tickLeftColor);
      } else {
        addStyle(ticks[i], 'background-color', TICK_RIGHT_COLOR);
      }
    }
  };

  var render = function render() {
    addClass(placeholder, PLACEHOLDER_CLASS);
    var handle = src_protectedApi.createElement('span');
    handle.setAttribute('class', HANDLE_FULL_CLASS);
    placeholder.appendChild(handle);
    var count = max - min;

    var prepare = function prepare(i) {
      var tick = src_protectedApi.createElement('div');
      tick.setAttribute('class', TICK_FULL_CLASS);
      tick.style.left = "".concat(100 / count * i, "%");
      tick.style.width = "".concat(100 / count, "%");
      placeholder.appendChild(tick);
    };

    for (var i = 0; i < count; i += 1) {
      prepare(i);
    }

    refresh();
  };

  var setValue = function setValue(v) {
    if (v < min) {
      value = min;
    } else if (v > max) {
      value = max;
    } else {
      value = v;
    }

    refresh();
    onValueChanged(value);
  };

  var bindEvents = function bindEvents() {
    var rect = placeholder.getBoundingClientRect();
    var sliderWidth = rect.width;
    var offsetLeft = rect.left + document.body.scrollLeft;

    var getSliderValue = function getSliderValue(pageX) {
      return Math.round((max - min) / sliderWidth * (pageX - offsetLeft) + min);
    };

    var onMouseMove = function onMouseMove(e) {
      // calculate the correct position of the slider set the value
      var val = getSliderValue(e.pageX);
      setValue(val);
    };

    var onClick = function onClick(e) {
      // calculate the correct position of the slider set the value
      var val = getSliderValue(e.pageX);
      setValue(val);
    };

    var onMouseDown = function onMouseDown(e) {
      e.stopPropagation();
      e.preventDefault();
      e.cancelBubble = true;
      e.returnValue = false;
      sliderArea.addEventListener('mousemove', onMouseMove);
      sliderArea.addEventListener('touchmove', onMouseMove);
      sliderArea.addEventListener('pointermove', onMouseMove);
    };

    var sliderAreaRemoveListeners = function sliderAreaRemoveListeners() {
      sliderArea.removeEventListener('mousemove', onMouseMove);
      sliderArea.removeEventListener('touchmove', onMouseMove);
      sliderArea.removeEventListener('pointermove', onMouseMove);
    };

    document.addEventListener('mouseup', sliderAreaRemoveListeners);
    document.addEventListener('touchend', sliderAreaRemoveListeners);
    document.addEventListener('pointerup', sliderAreaRemoveListeners);
    placeholder.addEventListener('click', onClick);
    placeholder.addEventListener('mousedown', onMouseDown);
    placeholder.addEventListener('touchstart', onMouseDown);
    sliderArea.addEventListener('mouseup', sliderAreaRemoveListeners);
    sliderArea.addEventListener('touchend', sliderAreaRemoveListeners);
    sliderArea.addEventListener('pointerup', sliderAreaRemoveListeners);
    sliderArea.addEventListener('mouseleave', sliderAreaRemoveListeners);
  };
  /**
   * @param placeholderElement
   * @param options
   */
  // eslint-disable-next-line no-param-reassign


  api.init = function (placeholderElement, options) {
    placeholder = placeholderElement; // eslint-disable-next-line prefer-destructuring

    min = options.min; // eslint-disable-next-line prefer-destructuring

    max = options.max; // eslint-disable-next-line prefer-destructuring

    value = options.value; // eslint-disable-next-line prefer-destructuring

    onValueChanged = options.onValueChanged; // eslint-disable-next-line prefer-destructuring

    sliderArea = options.sliderArea;
    render();
    bindEvents();
  };

  return api;
}

var sliderWidget = new SliderWidget();
/* harmony default export */ var slider_widget = (sliderWidget);
// CONCATENATED MODULE: ./src/libs/css.escape.js
/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */
// https://drafts.csswg.org/cssom/#serialize-an-identifier
function cssEscape(value) {
  if (arguments.length === 0) {
    throw new TypeError('`CSS.escape` requires an argument.');
  }

  var string = String(value);
  var length = string.length;
  var index = -1;
  var codeUnit;
  var result = '';
  var firstCodeUnit = string.charCodeAt(0); // eslint-disable-next-line no-plusplus

  while (++index < length) {
    codeUnit = string.charCodeAt(index); // Note: there’s no need to special-case astral symbols, surrogate
    // pairs, or lone surrogates.
    // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
    // (U+FFFD).

    if (codeUnit === 0x0000) {
      result += "\uFFFD"; // eslint-disable-next-line no-continue

      continue;
    }

    if ( // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
    // U+007F, […]
    // eslint-disable-next-line eqeqeq
    codeUnit >= 0x0001 && codeUnit <= 0x001F || codeUnit == 0x007F // If the character is the first character and is in the range [0-9]
    // (U+0030 to U+0039), […]
    || index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039 // If the character is the second character and is in the range [0-9]
    // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
    || index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 // eslint-disable-next-line eqeqeq
    && firstCodeUnit == 0x002D) {
      // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
      result += "\\".concat(codeUnit.toString(16), " "); // eslint-disable-next-line no-continue

      continue;
    }

    if ( // If the character is the first character and is a `-` (U+002D), and
    // there is no second character, […]
    index === 0 && length === 1 // eslint-disable-next-line eqeqeq
    && codeUnit == 0x002D) {
      result += "\\".concat(string.charAt(index)); // eslint-disable-next-line no-continue

      continue;
    } // If the character is not handled by one of the above rules and is
    // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
    // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
    // U+005A), or [a-z] (U+0061 to U+007A), […]


    if (codeUnit >= 0x0080 // eslint-disable-next-line eqeqeq
    || codeUnit == 0x002D // eslint-disable-next-line eqeqeq
    || codeUnit == 0x005F || codeUnit >= 0x0030 && codeUnit <= 0x0039 || codeUnit >= 0x0041 && codeUnit <= 0x005A || codeUnit >= 0x0061 && codeUnit <= 0x007A) {
      // the character itself
      result += string.charAt(index); // eslint-disable-next-line no-continue

      continue;
    } // Otherwise, the escaped character.
    // https://drafts.csswg.org/cssom/#escape-a-character


    result += "\\".concat(string.charAt(index));
  }

  return result;
}
// CONCATENATED MODULE: ./src/adguard-rules-constructor.js


/**
 * Adguard rules constructor
 * @type {Function}
 */

function AdguardRulesConstructorLib() {
  var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var CSS_RULE_MARK = '##';
  var RULE_OPTIONS_MARK = '$';
  var URLBLOCK_ATTRIBUTES = ['src', 'data'];
  var linkHelper = src_protectedApi.createElement('a');
  /**
   * Constructs css selector by combining classes by AND
   * @param classList
   * @returns {string}
   */

  var constructClassCssSelectorByAND = function constructClassCssSelectorByAND(classList) {
    var selectors = [];

    if (classList) {
      for (var i = 0; i < classList.length; i += 1) {
        selectors.push(".".concat(cssEscape(classList[i])));
      }
    }

    return selectors.join('');
  };
  /**
   * Constructs css selector for element using tag name,
   * id and classed, like: tagName#id.class1.class2
   *
   * @param element Element
   * @param classList Override element classes
   * (If classList is null, element classes will be used)
   * @param excludeTagName Omit tag name in selector
   * @param excludeId Omit element id in selector
   * @returns {string}
   */


  var makeDefaultCssFilter = function makeDefaultCssFilter(element, classList, excludeTagName, excludeId) {
    var cssSelector = excludeTagName ? '' : element.tagName.toLowerCase();

    if (element.id && !excludeId) {
      cssSelector += "#".concat(cssEscape(element.id));
    }

    cssSelector += constructClassCssSelectorByAND(classList || element.classList);
    return cssSelector;
  };
  /**
   * Constructs css selector for element using parent elements
   * and nth-child (first-child, last-child) pseudo classes.
   *
   * @param element Element
   * @param options Construct options.
   * For example: {excludeTagName: false, excludeId: false, classList: []}
   * @returns {string}
   */


  var makeCssNthChildFilter = function makeCssNthChildFilter(element, options) {
    // eslint-disable-next-line no-param-reassign
    options = options || {};
    var _options = options,
        classList = _options.classList,
        excludeTagName = _options.excludeTagName,
        excludeId = _options.excludeId;
    var excludeTagNameOverride = ('excludeTagName' in options);
    var excludeIdOverride = ('excludeId' in options);
    var path = [];
    var el = element;

    while (el.parentNode) {
      var nodeName = el && el.nodeName ? el.nodeName.toUpperCase() : '';

      if (nodeName === 'BODY') {
        break;
      }

      if (el.id) {
        /**
         * Be default we don't include tag name and classes
         * to selector for element with id attribute
         */
        var cssSelector = '';

        if (el === element) {
          cssSelector = makeDefaultCssFilter(el, classList || [], excludeTagNameOverride ? excludeTagName : true, excludeIdOverride ? excludeId : false);
        } else {
          cssSelector = makeDefaultCssFilter(el, [], true, false);
        }

        path.unshift(cssSelector);
        break;
      } else {
        var c = 1;

        for (var e = el; e.previousSibling; e = e.previousSibling) {
          if (e.previousSibling.nodeType === 1) {
            c += 1;
          }
        }

        var cldCount = 0;

        for (var i = 0; el.parentNode && i < el.parentNode.childNodes.length; i += 1) {
          cldCount += el.parentNode.childNodes[i].nodeType === 1 ? 1 : 0;
        }

        var ch = void 0;

        if (cldCount === 0 || cldCount === 1) {
          ch = '';
        } else if (c === 1) {
          ch = ':first-child';
        } else if (c === cldCount) {
          ch = ':last-child';
        } else {
          ch = ":nth-child(".concat(c, ")");
        }
        /**
         * By default we include tag name and
         * element classes to selector for element without id attribute
         */


        if (el === element) {
          var p = makeDefaultCssFilter(el, classList, excludeId, excludeTagNameOverride ? excludeTagName : false);
          p += ch;
          path.unshift(p);
        } else {
          path.unshift(makeDefaultCssFilter(el, el.classList, false, false) + ch);
        }

        el = el.parentNode;
      }
    }

    return path.join(' > ');
  };
  /**
   * Constructs css selector by combining classes by OR
   * @param classList
   * @returns {string}
   */


  var constructClassCssSelectorByOR = function constructClassCssSelectorByOR(classList) {
    var selectors = [];

    if (classList) {
      for (var i = 0; i < classList.length; i += 1) {
        selectors.push(".".concat(cssEscape(classList[i])));
      }
    }

    return selectors.join(', ');
  };
  /**
   * Constructs element selector for matching elements
   * that contain any of classes in original element.
   * For example <el class='cl1 cl2 cl3'></el> => .cl1, .cl2, .cl3
   *
   * @param element Element
   * @param classList Override element classes
   * (If classList is null, element classes will be used)
   * @returns {string}
   */


  var makeSimilarCssFilter = function makeSimilarCssFilter(element, classList) {
    return constructClassCssSelectorByOR(classList || element.classList);
  };
  /**
   * Creates css rule text
   * @param element Element
   * @param options Construct options.
   * For example: {
   *  cssSelectorType: 'STRICT_FULL',
   *  excludeTagName: false,
   *  excludeId: false, classList: []
   * }
   * @returns {string}
   */


  var constructCssRuleText = function constructCssRuleText(element, options) {
    if (!element) {
      return;
    } // eslint-disable-next-line no-param-reassign


    options = options || {};
    var cssSelectorType = options.cssSelectorType || 'STRICT_FULL';
    var selector;

    switch (cssSelectorType) {
      case 'STRICT_FULL':
        selector = makeCssNthChildFilter(element, options);
        break;

      case 'STRICT':
        selector = makeDefaultCssFilter(element, options.classList, options.excludeTagName, options.excludeId);
        break;

      case 'SIMILAR':
        selector = makeSimilarCssFilter(element, options.classList, true);
        break;

      default:
        break;
    } // eslint-disable-next-line consistent-return


    return selector ? CSS_RULE_MARK + selector : '';
  };

  var constructUrlBlockRuleText = function constructUrlBlockRuleText(element, urlBlockAttribute, oneDomain, domain) {
    if (!urlBlockAttribute) {
      return null;
    }

    var blockUrlRuleText = urlBlockAttribute.replace(/^http:\/\/(www\.)?/, '||');

    if (blockUrlRuleText.indexOf('.') === 0) {
      blockUrlRuleText = blockUrlRuleText.substring(1);
    }

    if (!oneDomain) {
      blockUrlRuleText = "".concat(blockUrlRuleText).concat(RULE_OPTIONS_MARK, "domain=").concat(domain);
    }

    return blockUrlRuleText;
  };

  var isValidUrl = function isValidUrl(value) {
    if (value) {
      linkHelper.href = value;

      if (linkHelper.hostname) {
        return true;
      }
    }

    return false;
  };

  var getUrlBlockAttribute = function getUrlBlockAttribute(element) {
    if (!element || !element.getAttribute) {
      return null;
    }

    for (var i = 0; i < URLBLOCK_ATTRIBUTES.length; i += 1) {
      var attr = URLBLOCK_ATTRIBUTES[i];
      var value = element.getAttribute(attr);

      if (isValidUrl(value)) {
        return value;
      }
    }

    return null;
  };

  var haveUrlBlockParameter = function haveUrlBlockParameter(element) {
    var value = getUrlBlockAttribute(element);
    return value && value !== '';
  };

  var haveClassAttribute = function haveClassAttribute(element) {
    return element.classList && element.classList.length > 0;
  };

  var haveIdAttribute = function haveIdAttribute(element) {
    return element.id && element.id.trim() !== '';
  };

  var getUrl = function getUrl(url) {
    var pattern = '^(([^:/\\?#]+):)?(//(([^:/\\?#]*)(?::([^/\\?#]*))?))?([^\\?#]*)(\\?([^#]*))?(#(.*))?$';
    var rx = new RegExp(pattern);
    var parts = rx.exec(url);
    return {
      host: parts[4] || '',
      path: parts[7] || ''
    };
  };

  var cropDomain = function cropDomain(url) {
    var domain = getUrl(url).host;
    return domain.replace('www.', '').replace(/:\d+/, '');
  };
  /**
   * Utility method
   *
   * @param element
   * @returns {string}
   */
  // eslint-disable-next-line no-param-reassign


  api.makeCssNthChildFilter = makeCssNthChildFilter;
  /**
   * Returns detailed element info
   *
   * @param element
   */
  // eslint-disable-next-line no-param-reassign

  api.getElementInfo = function (element) {
    // Convert attributes to array
    var attributes = [];
    var elementAttributes = element.attributes;

    if (elementAttributes) {
      for (var i = 0; i < elementAttributes.length; i += 1) {
        var attr = elementAttributes[i];
        attributes.push({
          name: attr.name,
          value: attr.value
        });
      }
    }

    return {
      tagName: element.tagName,
      attributes: attributes,
      urlBlockAttributeValue: getUrlBlockAttribute(element),
      haveUrlBlockParameter: haveUrlBlockParameter(element),
      haveClassAttribute: haveClassAttribute(element),
      haveIdAttribute: haveIdAttribute(element)
    };
  };
  /**
   * Constructs css selector for specified rule
   *
   * @param ruleText rule text
   * @returns {string} css style selector
   */
  // eslint-disable-next-line no-param-reassign


  api.constructRuleCssSelector = function (ruleText) {
    if (!ruleText) {
      return null;
    }

    var index = ruleText.indexOf(CSS_RULE_MARK);
    var optionsIndex = ruleText.indexOf(RULE_OPTIONS_MARK);

    if (index >= 0) {
      return ruleText.substring(index + CSS_RULE_MARK.length, optionsIndex >= 0 ? optionsIndex : ruleText.length);
    }

    var s = ruleText.substring(0, optionsIndex);
    s = s.replace(/[|]|[\^]/g, '');

    if (isValidUrl(s)) {
      return "[src*=\"".concat(s, "\"]");
    }

    return null;
  };
  /**
   * Constructs adguard rule text from element node and specified options
   *
   * const options = {
   *  urlMask: url block attributes,
   *  isBlockOneDomain: boolean,
   *  url: url,
   *  attributes: attributesSelectorText,
   *  ruleType: (URL, CSS)
   *  cssSelectorType: (STRICT_FULL, STRICT, SIMILAR),
   *  excludeTagName: false, (Exclude element tag name from selector)
   *  excludeId: false, (Exclude element identifier from selector)
   *  classList: []
   *      (Override element classes (If classList is null, element classes will be used))
   * }
   *
   * @param element
   * @param options
   * @returns {*}
   */
  // eslint-disable-next-line no-param-reassign


  api.constructRuleText = function (element, options) {
    var croppedDomain = cropDomain(options.url);
    var ruleType = options.ruleType;

    if (ruleType === 'URL') {
      var blockUrlRuleText = constructUrlBlockRuleText(element, options.urlMask, options.isBlockOneDomain, croppedDomain);

      if (blockUrlRuleText) {
        return blockUrlRuleText;
      }
    }

    var result;

    if (ruleType === 'CSS') {
      result = constructCssRuleText(element, options); // Append html attributes to css selector

      if (options.attributes) {
        result = (result || CSS_RULE_MARK + result) + options.attributes;
      }
    }

    if (!options.isBlockOneDomain) {
      result = croppedDomain + result;
    }

    return result;
  };

  return api;
}

var adguardRulesConstructor = new AdguardRulesConstructorLib();
/* harmony default export */ var adguard_rules_constructor = (adguardRulesConstructor);
// CONCATENATED MODULE: ./src/controllers/sliderMenuController.js





/**
 * Slider menu controller
 * @param addRule
 * @returns {{init: init}}
 * @constructor
 */

function SliderMenuController(addRule, iframe) {
  var contentDocument = null;
  var selectedElement = null;
  var startElement = null;
  var currentElement = null;
  var iframeCtrl = iframe;

  var getFilterRuleInputText = function getFilterRuleInputText() {
    return contentDocument.getElementById('filter-rule').value;
  };

  var close = function close() {
    iframeCtrl.removeIframe();
  };

  var expandAdvanced = function expandAdvanced() {
    var advancedSettings = contentDocument.querySelector('#advanced-settings');
    var extendedSettingsText = contentDocument.querySelector('#ExtendedSettingsText');
    var hidden = !hasClass(advancedSettings, 'open');

    if (hidden) {
      addClass(advancedSettings, 'open');
      addClass(extendedSettingsText, 'active');
      iframeCtrl.resizeSliderMenuToAdvanced();
    } else {
      removeClass(advancedSettings, 'open');
      removeClass(extendedSettingsText, 'active');
      iframeCtrl.resizeSliderMenuToNormal();
    }
  };

  var showPreview = function showPreview() {
    var options = {
      isBlockByUrl: contentDocument.getElementById('block-by-url-checkbox').checked,
      isBlockSimilar: contentDocument.getElementById('block-similar-checkbox').checked,
      isBlockOneDomain: contentDocument.getElementById('one-domain-checkbox').checked
    };
    iframeCtrl.showBlockPreview(selectedElement, getFilterRuleInputText(), startElement, options);
  };

  var blockElement = function blockElement() {
    var path = getFilterRuleInputText();
    iframeCtrl.blockElement(path, addRule);
  };

  var handleShowBlockSettings = function handleShowBlockSettings(showBlockByUrl, showBlockSimilar) {
    var blockByUrlBlock = contentDocument.querySelector('#block-by-url-checkbox-block');
    var blockSimilarBlock = contentDocument.querySelector('#block-similar-checkbox-block');

    if (showBlockByUrl) {
      dom_utils_show(blockByUrlBlock);
    } else {
      contentDocument.getElementById('block-by-url-checkbox').checked = false;
      hide(blockByUrlBlock);
    }

    if (showBlockSimilar) {
      dom_utils_show(blockSimilarBlock);
    } else {
      contentDocument.getElementById('block-similar-checkbox').checked = false;
      hide(blockSimilarBlock);
    }
  };

  var getUrlBlockAttribute = function getUrlBlockAttribute(element) {
    var urlBlockAttributes = ['src', 'data'];

    for (var i = 0; i < urlBlockAttributes.length; i += 1) {
      var attr = urlBlockAttributes[i];
      var value = element.getAttribute(attr);

      if (value) {
        return value;
      }
    }

    return null;
  };

  var haveUrlBlockParameter = function haveUrlBlockParameter(element) {
    var value = getUrlBlockAttribute(element);
    return value && value !== '';
  };

  var haveClassAttribute = function haveClassAttribute(element) {
    var className = element.className;
    return className && typeof className === 'string' && className.trim() !== '';
  };

  var setFilterRuleInputText = function setFilterRuleInputText(ruleText) {
    contentDocument.getElementById('filter-rule').value = ruleText;
  };

  var onScopeChange = function onScopeChange() {
    var isBlockByUrl = contentDocument.getElementById('block-by-url-checkbox').checked;
    var isBlockSimilar = contentDocument.getElementById('block-similar-checkbox').checked;
    var isBlockOneDomain = contentDocument.getElementById('one-domain-checkbox').checked;
    handleShowBlockSettings(haveUrlBlockParameter(selectedElement) && !isBlockSimilar, haveClassAttribute(selectedElement) && !isBlockByUrl);
    var options = {
      urlMask: getUrlBlockAttribute(selectedElement),
      cssSelectorType: isBlockSimilar ? 'SIMILAR' : 'STRICT_FULL',
      isBlockOneDomain: isBlockOneDomain,
      url: document.location,
      ruleType: isBlockByUrl ? 'URL' : 'CSS'
    };
    var ruleText = adguard_rules_constructor.constructRuleText(selectedElement, options);
    setFilterRuleInputText(ruleText);
    iframeCtrl.resizeIframe();
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.close': close,
      '#ExtendedSettingsText': expandAdvanced,
      '#adg-cancel': iframeCtrl.showSelectorMenu,
      '#adg-preview': showPreview,
      '#adg-accept': blockElement,
      '#block-by-url-checkbox-block': onScopeChange,
      '#one-domain-checkbox-block': onScopeChange,
      '#block-similar-checkbox-block': onScopeChange
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
  };

  var makeDefaultCheckboxesForDetailedMenu = function makeDefaultCheckboxesForDetailedMenu(options) {
    contentDocument.getElementById('block-by-url-checkbox').checked = options && options.isBlockByUrl;
    contentDocument.getElementById('block-similar-checkbox').checked = options && options.isBlockSimilar;
    contentDocument.getElementById('one-domain-checkbox').checked = options && options.isBlockOneDomain;

    if (options && (options.isBlockByUrl || options.isBlockSimilar)) {
      handleShowBlockSettings(options.isBlockByUrl, options.isBlockSimilar);
    }
  };

  var onSliderMove = function onSliderMove(element) {
    selectedElement = element;
    adguard_selector.selectElement(element);
    makeDefaultCheckboxesForDetailedMenu();
    onScopeChange();
    handleShowBlockSettings(haveUrlBlockParameter(element), haveClassAttribute(element));
  };

  var createSlider = function createSlider(setElement) {
    var parents = getParentsLevel(selectedElement);
    var children = getAllChildren(selectedElement);
    var value = Math.abs(parents.length + 1);
    var max = parents.length + children.length + 1;
    var min = 1;
    var options = {
      value: value,
      min: min,
      max: max
    };
    var slider = contentDocument.querySelector('#slider');
    var sliderArea = contentDocument.querySelector('#slider-area');

    if (min === max) {
      // hide slider text
      hide(slider);
      hide(contentDocument.querySelectorAll('.element-rule_text'));
      expandAdvanced();
    }

    options.onSliderMove = function (delta) {
      var elem;

      if (delta > 0) {
        elem = parents[delta - 1];
      }

      if (delta === 0) {
        elem = startElement;
      }

      if (delta < 0) {
        elem = children[Math.abs(delta + 1)];
      }

      onSliderMove(elem);
    };

    var currentVal = options.value; // set slider position on current element after returning from preview mode

    if (setElement) {
      var setElementparents = getParentsLevel(setElement);
      currentVal = setElementparents.length + 1;
    }

    slider_widget.init(slider, {
      min: options.min,
      max: options.max,
      value: currentVal,
      // eslint-disable-next-line no-shadow
      onValueChanged: function onValueChanged(value) {
        var delta = options.value - value;
        options.onSliderMove(delta);
      },
      sliderArea: sliderArea
    });
  };
  /*
   Called from IframeController._showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe, options) {
    selectedElement = options.element;
    startElement = selectedElement; // eslint-disable-next-line prefer-destructuring

    contentDocument = iframe.contentDocument; // eslint-disable-next-line prefer-destructuring

    currentElement = options.currentElement;
    bindEvents();
    createSlider(currentElement);
    onScopeChange();
    adguard_selector.selectElement(selectedElement); // select current element after returning from preview mode

    if (currentElement) {
      onSliderMove(currentElement);
    } // make input clickable with right mouse button for text editing


    events.add(contentDocument.getElementById('filter-rule'), 'contextmenu', function (e) {
      e.stopPropagation();
    });

    if (options.path) {
      setFilterRuleInputText(options.path);
      expandAdvanced();
    }

    if (options.options) {
      makeDefaultCheckboxesForDetailedMenu(options.options);
    }
  };

  return {
    init: init
  };
}
// CONCATENATED MODULE: ./src/controllers/blockPreviewController.js



/**
 * Block preview controller
 * @param addRule
 * @param iframe
 * @returns {{init: init}}
 * @constructor
 */

function BlockPreviewController(addRule, iframe) {
  var contentDocument = null;
  var currentElement = null;
  var selectedElement = null;
  var selectedPath = null;
  var optionsState = null;
  var iframeCtrl = iframe;
  var previewStyleID = 'ag-preview-style-id';

  var showElement = function showElement() {
    iframeCtrl.showHiddenElements(previewStyleID);
  };

  var close = function close() {
    showElement();
    iframeCtrl.removeIframe();
  };

  var selectAnotherElement = function selectAnotherElement() {
    showElement();
    iframeCtrl.showSelectorMenu();
  };

  var blockElement = function blockElement() {
    iframeCtrl.blockElement(selectedPath, addRule);
  };

  var showDetailedMenu = function showDetailedMenu() {
    showElement();
    iframeCtrl.showSliderMenu(currentElement, selectedElement, selectedPath, optionsState);
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.close': close,
      '#select-another-element': selectAnotherElement,
      '#end-preview': showDetailedMenu,
      '#block-element': blockElement
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
  };

  var hideElement = function hideElement() {
    if (!selectedPath) {
      src_log.error('Can`t block element: `selector` path is empty');
      return;
    }

    iframeCtrl.hideElementsByPath(selectedPath, previewStyleID);
  };
  /*
   Called from IframeController.showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe, options) {
    selectedElement = options.element;
    selectedPath = options.path; // eslint-disable-next-line prefer-destructuring

    currentElement = options.currentElement; // eslint-disable-next-line prefer-destructuring

    contentDocument = iframe.contentDocument;
    optionsState = options.options;
    adguard_selector.reset();
    bindEvents();
    hideElement();
  };

  return {
    init: init
  };
}
// CONCATENATED MODULE: ./src/utils/ui-validation-utils.js


/**
 * Utils that checks environment for compatibility with assistant
 * @returns {{
 * checkVisibleAreaSize: checkVisibleAreaSize,
 * validateBrowser: validateBrowser,
 * validatePage: validatePage,
 * getViewPort: getViewPort
 * }}
 * @constructor
 */

function UIValidationUtils() {
  var _window = window,
      document = _window.document;

  var getViewPort = function getViewPort() {
    var width = window.innerWidth;
    var height = window.innerHeight;
    return {
      width: width,
      height: height
    };
  };
  /**
   * Check if visible area are enough to show menu.
   * @returns boolean. True if area enough
   */


  var checkVisibleAreaSize = function checkVisibleAreaSize() {
    var viewPort = getViewPort(); // eslint-disable-next-line max-len

    var visibleAreaSize = viewPort.height > src_settings.Constants.MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON;

    if (!visibleAreaSize) {
      src_log.error("Viewport height is too small: ".concat(viewPort.height));
    }

    return visibleAreaSize;
  };
  /**
   * Checks if browser is valid for Adguard assistant
   * @returns boolean. True if browser valid
   */


  var validateBrowser = function validateBrowser() {
    var valid = !document.documentMode || document.documentMode > src_settings.Constants.MINIMUM_IE_SUPPORTED_VERSION;

    if (!valid) {
      src_log.error("IE version is ".concat(document.documentMode));
    }

    return valid;
  };
  /**
   * Checks if page is valid for Adguard assistant to work here.
   */


  var validatePage = function validatePage() {
    // Assistant do not work in iframes
    if (window.window !== window.top) {
      return false;
    }

    return true;
  };

  return {
    checkVisibleAreaSize: checkVisibleAreaSize,
    validateBrowser: validateBrowser,
    validatePage: validatePage,
    getViewPort: getViewPort
  };
}

var uiValidationUtils = new UIValidationUtils();
/* harmony default export */ var ui_validation_utils = (uiValidationUtils);
// CONCATENATED MODULE: ./src/utils/ui-utils.js



/**
 * UI utils
 * @returns {{
 *  makeElementDraggable: Function,
 *  makeIframeDraggable: Function,
 *  moveElementTo: Function,
`*  setAnchorPosition: Function,
 *  checkElementPosition: Function,
 * }}
 * @constructor
 */

function UIUtils() {
  var elWidth;
  var elHeight;
  var windowWidth;
  var windowHeight; // Stored button anchor position

  var storedAnchor = {};
  /**
   * Get original event object for touch
   * devices to getting current coordinates
   * @param {Object}
   * @returns {Object}
   */

  var getOriginalEvent = function getOriginalEvent(e) {
    return e.targetTouches ? e.targetTouches[0] : e;
  };

  var outsidePosition = {
    top: function top(pos) {
      return storedAnchor.top && (pos.y + elHeight > windowHeight || pos.y < 0);
    },
    bottom: function bottom(pos) {
      return !storedAnchor.top && (Math.abs(pos.y) + elHeight > windowHeight || pos.y > 0);
    },
    left: function left(pos) {
      return storedAnchor.left && (pos.x + elWidth > windowWidth || pos.x < 0);
    },
    right: function right(pos) {
      return !storedAnchor.left && (Math.abs(pos.x) + elWidth > windowWidth || pos.x > 0);
    }
  };
  /**
   * Set transition css property for drag
   * translate3d is for better rendering performance
   * see: https://www.html5rocks.com/en/tutorials/speed/layers/
   */

  var moveElementTo = function moveElementTo(el, x, y) {
    var transform = "translate3d(".concat(x, "px,").concat(y, "px, 0px)"); // eslint-disable-next-line no-param-reassign

    el.style.webkitTransform = transform; // eslint-disable-next-line no-param-reassign

    el.style.mozTransform = transform; // eslint-disable-next-line no-param-reassign

    el.style.msTransform = transform; // eslint-disable-next-line no-param-reassign

    el.style.oTransform = transform; // eslint-disable-next-line no-param-reassign

    el.style.transform = transform;
  }; // getting screen width and height without scroll bars


  var getWindowSize = function getWindowSize() {
    return {
      width: Math.min(document.documentElement.clientWidth, window.innerWidth || window.screen.width),
      height: Math.min(document.documentElement.clientHeight, window.innerHeight || window.screen.height)
    };
  };
  /**
   * Functions for saving left/top anchors and setting class position
   *
   * @param {Object} element  button element
   * @param {Boolean} anchor  anchors positions `true` for top/left or `false` for bottom/right
   */


  var setAnchorPosition = {
    positionY: function positionY(element, anchor) {
      storedAnchor.top = anchor;

      if (storedAnchor.top) {
        addClass(element, 'adguard-assistant-button-top');
        removeClass(element, 'adguard-assistant-button-bottom');
      } else {
        addClass(element, 'adguard-assistant-button-bottom');
        removeClass(element, 'adguard-assistant-button-top');
      }
    },
    positionX: function positionX(element, anchor) {
      storedAnchor.left = anchor;

      if (storedAnchor.left) {
        addClass(element, 'adguard-assistant-button-left');
        removeClass(element, 'adguard-assistant-button-right');
      } else {
        addClass(element, 'adguard-assistant-button-right');
        removeClass(element, 'adguard-assistant-button-left');
      }
    }
  };
  /**
   * Make element draggable
   * @param element
   * @param onDragEnd
   * @param onClick
   */

  function makeElementDraggable(element, onDragEnd, onClick) {
    var coords;
    var shiftX;
    var shiftY;
    /**
     * Prevent text selection
     * With cursor drag
     */

    var pauseEvent = function pauseEvent(e) {
      e.stopPropagation();
      e.preventDefault();
      e.cancelBubble = true;
      e.returnValue = false;
      return false;
    };

    var onMouseMove = function onMouseMove(e) {
      pauseEvent(e); // eslint-disable-next-line no-use-before-define

      moveAt(e);
    };

    var preventedEvent = function preventedEvent(e) {
      e.preventDefault();
    };

    var getCoords = function getCoords(elem) {
      var box = elem.getBoundingClientRect();
      return {
        top: box.top,
        left: box.left,
        bottom: box.bottom,
        right: box.right
      };
    };
    /**
     * On mouse up event
     * @param {Object} e  event object
     * @param {Boolean|undefined} doNotOpenIframe do not open the iframe if true.
     * This is necessary when the cursor is out of bounds
     */


    var onMouseUp = function onMouseUp(e, doNotOpenIframe) {
      e.stopPropagation(); // make scroll availalbe

      events.remove(document.documentElement, 'wheel mousewheel', preventedEvent); // When a user finishes dragging icon, we set icon anchor
      // depending on the icon position, i.e. which quarter
      // of the screen it belongs.

      var lastX;
      var lastY;
      var lastCoords = getCoords(element);
      var topHalf = lastCoords.top < windowHeight / 2;
      var leftHalf = lastCoords.left < windowWidth / 2;
      setAnchorPosition.positionY(element, topHalf);
      setAnchorPosition.positionX(element, leftHalf);

      if (topHalf) {
        lastY = lastCoords.top;
      } else {
        lastY = lastCoords.bottom - windowHeight;
      }

      if (leftHalf) {
        lastX = lastCoords.left;
      } else {
        lastX = lastCoords.right - windowWidth;
      }

      moveElementTo(element, lastX, lastY); // Open the frame if the button has been shifted by no more than 5 pixels

      if (Math.abs(coords.left - lastCoords.left) > 5 || Math.abs(coords.top - lastCoords.top) > 5) {
        if (onDragEnd) {
          var store = {
            x: lastX,
            y: lastY,
            storedAnchor: storedAnchor
          };
          onDragEnd(store);
        }
      } else if (onClick && !doNotOpenIframe) {
        onClick(e);
      }

      events.remove(document.documentElement, 'mouseup touchend pointerup', onMouseUp);
      events.remove(document.documentElement, 'mousemove touchmove pointermove', onMouseMove);
    };

    var moveAt = function moveAt(e) {
      var position = {
        x: getOriginalEvent(e).pageX - shiftX,
        y: getOriginalEvent(e).pageY - shiftY
      }; // disable mousemove if button element outside the screen

      var out = outsidePosition.top(position) || outsidePosition.left(position) || outsidePosition.bottom(position) || outsidePosition.right(position);

      if (out) {
        onMouseUp(e, true);
      } else {
        moveElementTo(element, position.x, position.y);
      }
    };

    var mouseDown = function mouseDown(e) {
      pauseEvent(e); // prevent browser scroll

      events.add(document.documentElement, 'wheel mousewheel', preventedEvent); // prevent right button mousedown

      if (e.button > 0) return;
      elWidth = element.clientWidth;
      elHeight = element.clientWidth;
      windowWidth = getWindowSize().width;
      windowHeight = getWindowSize().height;
      coords = getCoords(element);

      if (storedAnchor.top) {
        shiftY = getOriginalEvent(e).pageY - coords.top;
      } else {
        shiftY = windowHeight - (coords.bottom - getOriginalEvent(e).pageY);
      }

      if (storedAnchor.left) {
        shiftX = getOriginalEvent(e).pageX - coords.left;
      } else {
        shiftX = windowWidth - (coords.right - getOriginalEvent(e).pageX);
      }
      /**
       * binding both mouse and touch/pointer events simultaneously
       * see: http://www.html5rocks.com/en/mobile/touchandmouse/
       */


      events.add(document.documentElement, 'mouseup touchend pointerup', onMouseUp);
      events.add(document.documentElement, 'mousemove touchmove pointermove', onMouseMove);
    };

    events.add(element, 'mousedown touchstart', src_protectedApi.functionBind.call(mouseDown, this));
    events.add(element, 'dragstart', function () {});
  }
  /**
   * Makes iframe draggable
   *
   * @param iframe
   * @param handleElement
   */


  var makeIframeDraggable = function makeIframeDraggable(iframe, handleElement) {
    var iframeDoc = iframe.contentDocument;
    var offset = Object.create(null);
    /**
     * Function that does actual "dragging"
     *
     * @param x
     * @param y
     */

    var drag = function drag(x, y) {
      // eslint-disable-next-line no-param-reassign
      iframe.style.left = "".concat(x, "px"); // eslint-disable-next-line no-param-reassign

      iframe.style.top = "".concat(y, "px");
    };

    var cancelIFrameSelection = function cancelIFrameSelection(e) {
      e.preventDefault();
      e.stopPropagation();
    };

    var onMouseMove = function onMouseMove(e) {
      var eventPosition = getOriginalEvent(e);
      drag(eventPosition.screenX + offset.x, eventPosition.screenY + offset.y);
    };

    var onMouseDown = function onMouseDown(e) {
      var eventPosition = getOriginalEvent(e);
      var rect = iframe.getBoundingClientRect();
      offset.x = rect.left + handleElement.offsetLeft - eventPosition.screenX;
      offset.y = rect.top + handleElement.offsetTop - eventPosition.screenY;
      events.add(iframeDoc, 'mousemove touchmove pointermove', onMouseMove);
      events.add(iframeDoc, 'selectstart', cancelIFrameSelection);
    };

    var onMouseUp = function onMouseUp() {
      events.remove(iframeDoc, 'mousemove touchmove pointermove', onMouseMove);
      events.remove(iframeDoc, 'selectstart', cancelIFrameSelection);
    }; // prevent iframe dragging while browser tabs is switching


    document.addEventListener('visibilitychange', onMouseUp);
    events.add(handleElement, 'mousedown touchstart', onMouseDown);
    events.add(iframeDoc, 'mouseup touchend pointerup', onMouseUp);
    events.add(iframeDoc, 'contextmenu', function (e) {
      e.preventDefault();
      return false;
    });
  };

  var checkElementPosition = function checkElementPosition(element, pos) {
    var position = pos;
    windowWidth = getWindowSize().width;
    windowHeight = getWindowSize().height;
    elWidth = element.clientWidth;
    elHeight = element.clientHeight;
    if (outsidePosition.top(position)) position.y = windowHeight - 60;
    if (outsidePosition.bottom(position)) position.y = -windowHeight + 60;
    if (outsidePosition.left(position)) position.x = windowWidth - 60;
    if (outsidePosition.right(position)) position.x = -windowWidth + 60;
    moveElementTo(element, position.x, position.y);
  };

  return {
    makeElementDraggable: makeElementDraggable,
    makeIframeDraggable: makeIframeDraggable,
    moveElementTo: moveElementTo,
    setAnchorPosition: setAnchorPosition,
    checkElementPosition: checkElementPosition
  };
}

var uiUtils = new UIUtils();
/* harmony default export */ var ui_utils = (uiUtils);
// CONCATENATED MODULE: ./src/button.js








/**
 * Adguard assistant button
 * @returns {{show: show, remove: remove}}
 * @constructor
 */

function UIButton() {
  var button = null;
  var buttonElement = null;
  var isFullScreenEventsRegistered = false;
  var iframeController = null; // Important attribute for all inline stylesheets.
  // It needs for Content-Security-Policy.

  var getStyleNonce = function getStyleNonce() {
    var adgSettings = src_settings.getAdguardSettings();

    if (adgSettings === null) {
      return '';
    }

    return adgSettings.nonce;
  };

  var isButtonAlreadyInDOM = function isButtonAlreadyInDOM() {
    var alert = document.querySelector('.adguard-alert');

    if (alert) {
      src_log.error('Assistant button is already in DOM');
      return true;
    }

    return false;
  };
  /**
   * Checking browser and other requirements.
   * @private
   */


  var checkRequirements = function checkRequirements() {
    if (!ui_validation_utils.validateBrowser()) {
      return false;
    }

    if (!ui_validation_utils.validatePage()) {
      return false;
    }

    if (!ui_validation_utils.checkVisibleAreaSize()) {
      return false;
    }

    if (isButtonAlreadyInDOM()) {
      return false;
    }

    return true;
  };
  /**
   * Set a special classes for the pages on which
   * under the button there are important elements
   * issue: https://github.com/AdguardTeam/AdguardAssistant/issues/32
   */


  var respectPageElements = function respectPageElements(btn) {
    var buttonInRightBottom = hasClass(btn, 'adguard-assistant-button-bottom') && hasClass(btn, 'adguard-assistant-button-right');

    if (buttonInRightBottom && document.location.hostname.indexOf('vk.com') >= 0) {
      addClass(btn, 'adguard-assistant-button-respect adguard-assistant-button-respect-vk');
    }

    if (buttonInRightBottom && document.location.hostname.indexOf('facebook.com') >= 0) {
      addClass(btn, 'adguard-assistant-button-respect adguard-assistant-button-respect-fb');
    }

    return false;
  };

  var setPositionSettingsToButton = function setPositionSettingsToButton(btn) {
    var position = src_settings.getUserPositionForButton();

    if (src_settings.getIconSize()) {
      addClass(btn, 'logo-small');
    } // The anchor determines from which side of the
    // browser the positions of `position.x`, `position.y`.
    // If `position` parameter is not defined,
    // so the position of the button is set in the corners of the browser


    if (position && position.storedAnchor) {
      ui_utils.setAnchorPosition.positionY(btn, position.storedAnchor.top);
      ui_utils.setAnchorPosition.positionX(btn, position.storedAnchor.left);
      ui_utils.moveElementTo(btn, position.x, position.y);
      ui_utils.checkElementPosition(btn, position);
      return false;
    } // Getting the corner of the browser where the button is placed


    var side = src_settings.getButtonSide();

    if (side) {
      ui_utils.setAnchorPosition.positionY(btn, side.top);
      ui_utils.setAnchorPosition.positionX(btn, side.left);
      respectPageElements(btn);
    }

    return undefined;
  };
  /**
   * Get center button position
   * @returns {{left: *, top: *}}
   * @private
   */


  var getButtonPosition = function getButtonPosition(btn) {
    var box = btn.getBoundingClientRect();
    return {
      top: box.top + btn.offsetHeight / 2,
      left: box.left + btn.offsetWidth / 2
    };
  };

  var hideButton = function hideButton() {
    if (!button) {
      return;
    }

    button.style.setProperty('display', 'none', 'important');
  };

  var showButton = function showButton() {
    if (!button) {
      return;
    }

    button.style.setProperty('display', 'block', 'important');
  };

  var hideRestoreOnFullScreen = function hideRestoreOnFullScreen() {
    if (isFullScreenEventsRegistered) {
      return;
    }

    var isFullScreen = false;

    var onFullScreen = function onFullScreen() {
      if (!isFullScreen) {
        hideButton();
        isFullScreen = true;
      } else {
        showButton();
        isFullScreen = false;
      }
    };

    document.addEventListener('webkitfullscreenchange', onFullScreen);
    document.addEventListener('mozfullscreenchange', onFullScreen);
    document.addEventListener('fullscreenchange', onFullScreen);
    isFullScreenEventsRegistered = true;
  };

  var registerEvents = function registerEvents(btn) {
    var onDragEnd = function onDragEnd(data) {
      src_settings.setUserPositionForButton(data);
    };

    var openMenu = function openMenu() {
      iframeController.setButtonPosition(getButtonPosition(btn));
      iframeController.showDetailedMenu();
    };

    ui_utils.makeElementDraggable(btn, onDragEnd, openMenu);
    hideRestoreOnFullScreen();
  };
  /**
   * Shows Adguard initial button
   */


  var show = function show() {
    // TODO: get rid of it
    iframeController = src_ioc.get('iframeController');
    iframeController.onCloseMenu.attach(showButton);
    iframeController.onShowMenuItem.attach(hideButton);

    if (!checkRequirements()) {
      src_log.info('Environment doesn\'t satisfy requirements, so don\'t show Adguard');
      return;
    }

    if (button) {
      return;
    }

    src_log.debug('Requirements checked, all ok');
    buttonElement = src_protectedApi.createElement('div');
    buttonElement.innerHTML = HTML.button;
    button = buttonElement.firstChild;
    var adgStylesButton;

    if (src_protectedApi.checkShadowDomSupport()) {
      var shadowbuttonElement = buttonElement.attachShadow({
        mode: 'closed'
      });
      adgStylesButton = src_protectedApi.createStylesElement(CSS.common + CSS.button, getStyleNonce());
      shadowbuttonElement.appendChild(adgStylesButton);
      shadowbuttonElement.appendChild(button);
      document.documentElement.appendChild(buttonElement);
    } else {
      adgStylesButton = src_protectedApi.createStylesElement(CSS.button, getStyleNonce(), 'adg-styles-button');

      if (adgStylesButton) {
        document.documentElement.appendChild(adgStylesButton);
      }

      document.documentElement.appendChild(button);
      buttonElement = button;
    }

    setPositionSettingsToButton(button);
    registerEvents(button);
  };

  var removeButton = function removeButton() {
    if (!button) {
      return;
    }

    document.documentElement.removeChild(buttonElement);
    button = null;
  };

  return {
    show: show,
    remove: removeButton
  };
}

var button_button = new UIButton();
/* harmony default export */ var src_button = (button_button);
// CONCATENATED MODULE: ./src/controllers/settingsMenuController.js



/**
 * Settings menu controller
 * @returns {{init: init}}
 * @constructor
 */

function SettingsMenuController(iframe) {
  var contentDocument = null;
  var iframeCtrl = iframe;
  var buttonSides = {
    'position-bottom-right': {
      top: false,
      left: false
    },
    'position-bottom-left': {
      top: false,
      left: true
    },
    'position-top-right': {
      top: true,
      left: false
    },
    'position-top-left': {
      top: true,
      left: true
    }
  };

  var close = function close() {
    iframeCtrl.removeIframe();
  };

  var setIconSize = function setIconSize() {
    var smallIcon = contentDocument.getElementById('size-small').checked;
    src_settings.setIconSize(smallIcon);
  };

  var setPersonalParam = function setPersonalParam() {
    var personalConfig = contentDocument.getElementById('this-site').checked;
    src_settings.setPersonalParam(personalConfig);
  };

  var setButtonSide = function setButtonSide() {
    var sideItem = null;
    Object.keys(buttonSides).forEach(function (item) {
      if (contentDocument.getElementById(item).checked) {
        sideItem = item;
      }
    });

    if (sideItem) {
      src_settings.setButtonSide(buttonSides[sideItem]);
    }
  };

  var setDefaultSettings = function setDefaultSettings() {
    if (src_settings.getIconSize()) {
      contentDocument.getElementById('size-small').checked = true;
    } else {
      contentDocument.getElementById('size-big').checked = true;
    }

    if (src_settings.getPersonalConfig()) {
      contentDocument.getElementById('this-site').checked = true;
    } else {
      contentDocument.getElementById('all-site').checked = true;
    }

    var position = src_settings.getUserPositionForButton();

    if (position) {
      return;
    }

    var sideFromSettings = src_settings.getButtonSide();
    Object.keys(buttonSides).forEach(function (item) {
      var sideItem = buttonSides[item];

      if (sideItem.left === sideFromSettings.left && sideItem.top === sideFromSettings.top) {
        contentDocument.getElementById(item).checked = true;
      }
    });
  };

  var saveSettings = function saveSettings() {
    setPersonalParam();
    setIconSize();
    setButtonSide();
    src_settings.saveSettings();
    close();
    src_button.remove();
    src_button.show();
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.close': close,
      '#cancel': iframeCtrl.showDetailedMenu,
      '#save-settings': saveSettings
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
  };
  /*
   Called from IframeController._showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe) {
    // eslint-disable-next-line prefer-destructuring
    contentDocument = iframe.contentDocument;
    bindEvents();
    setDefaultSettings();
  };

  return {
    init: init
  };
}
// CONCATENATED MODULE: ./src/iframe.js

















/**
 * Manages iframe and it's content
 * @returns {{
 * showDetailedMenu: showDetailedMenu,
 * showSelectorMenu: showSelectorMenu,
 * showSliderMenu: showSliderMenu,
 * showBlockPreview: showBlockPreview,
 * showSettingsMenu: showSettingsMenu,
 * setButtonPosition: setButtonPosition,
 * onCloseMenu: CustomEvent,
 * onShowMenuItem: CustomEvent,
 * removeIframe: removeIframe,
 * resizeSliderMenuToAdvanced: resizeSliderMenuToAdvanced,
 * resizeSliderMenuToNormal: resizeSliderMenuToNormal
 * }}
 * @constructor
 */

function IframeController() {
  var iframe = null;
  var iframeAnchor = null;
  var currentItem = null;
  var iframeMaxWidth = 320;
  var iframeMaxHeight = 407;
  var menuMaxWidth = 668;
  var settingsMaxWidth = 458;
  var iframePositionOffset = 20;
  var buttonPosition = null;
  var blockedElementsStyleID = 'ag-hide-elements-style-id';
  var views = {};
  views[src_settings.MenuItemsNames.DetailedMenu] = HTML.detailed_menu;
  views[src_settings.MenuItemsNames.SelectorMenu] = HTML.selector_menu;
  views[src_settings.MenuItemsNames.SliderMenu] = HTML.slider_menu;
  views[src_settings.MenuItemsNames.BlockPreview] = HTML.preview;
  views[src_settings.MenuItemsNames.SettingsMenu] = HTML.settings_menu;
  if (window.innerWidth < menuMaxWidth) menuMaxWidth = window.innerWidth;
  if (window.innerWidth < settingsMaxWidth) settingsMaxWidth = window.innerWidth;
  var onCloseMenu = new CustomEvent();
  var onShowMenuItem = new CustomEvent(); // Important attribute for all inline stylesheets.
  // It needs for Content-Security-Policy.

  var getStyleNonce = function getStyleNonce() {
    var adgSettings = src_settings.getAdguardSettings();

    if (adgSettings === null) {
      return '';
    }

    return adgSettings.nonce;
  };

  var createShadowRootElement = function createShadowRootElement(iframeAnc) {
    var shadowiframeAnchor = iframeAnc.attachShadow({
      mode: 'closed'
    });
    var stylesElement = src_protectedApi.createStylesElement(CSS.common + CSS.iframe, getStyleNonce());
    shadowiframeAnchor.appendChild(stylesElement);
    return shadowiframeAnchor;
  };

  var createIframe = function createIframe(onIframeLoadCallback) {
    src_log.debug('Creating iframe');
    iframe = src_protectedApi.createElement('iframe'); // IE hack for prevent access denied error
    // see: https://stackoverflow.com/questions/1886547/access-is-denied-javascript-error-when-trying-to-access-the-document-object-of

    if (navigator.userAgent.match(/msie/i)) {
      iframe.src = "javascript:'<script>window.onload=function(){document.write(\\'<script>document.domain=\\\"".concat(document.domain, "\\\";<\\\\/script>\\');document.close();};</script>'");
    }

    var attributes = {
      id: src_settings.Constants.IFRAME_ID,
      "class": adguard_selector.ignoreClassName(),
      frameBorder: 0,
      allowTransparency: 'true'
    };
    Object.keys(attributes).forEach(function (item) {
      iframe.setAttribute(item, attributes[item]);
    });
    var iframeAlreadyLoaded = false;
    iframe.addEventListener('load', function () {
      if (iframeAlreadyLoaded) {
        // IE calls load each time when we use document.close
        return;
      }

      iframeAlreadyLoaded = true;
      onIframeLoadCallback();
    });

    if (src_protectedApi.checkShadowDomSupport()) {
      iframeAnchor = src_protectedApi.createElement('div');
      createShadowRootElement(iframeAnchor).appendChild(iframe);
    } else {
      iframeAnchor = iframe;
    }

    document.documentElement.appendChild(iframeAnchor);
  };

  var getIframePosition = function getIframePosition() {
    var viewPort = ui_validation_utils.getViewPort();

    if (!buttonPosition) {
      return {
        left: iframe.offsetLeft <= 0 ? window.innerWidth : iframe.offsetLeft,
        top: parseInt(iframe.style.top, 10) || iframePositionOffset
      };
    }

    var defaultPosition = {
      left: buttonPosition.left,
      top: buttonPosition.top
    };
    var sides = [{
      // left top
      left: buttonPosition.left - iframeMaxWidth - iframePositionOffset,
      top: buttonPosition.top - iframeMaxHeight - iframePositionOffset
    }, {
      // right top
      left: buttonPosition.left + iframePositionOffset,
      checkLeft: buttonPosition.left + iframeMaxWidth + iframePositionOffset,
      top: buttonPosition.top - iframeMaxHeight - iframePositionOffset
    }, {
      // bottom right
      left: buttonPosition.left + iframePositionOffset,
      checkLeft: buttonPosition.left + iframeMaxWidth + iframePositionOffset,
      checkTop: buttonPosition.top + iframeMaxHeight + iframePositionOffset,
      top: buttonPosition.top + iframePositionOffset
    }, {
      // bottom left
      left: buttonPosition.left - iframeMaxWidth - iframePositionOffset,
      checkTop: buttonPosition.top + iframeMaxHeight + iframePositionOffset,
      top: buttonPosition.top + iframePositionOffset
    }];

    for (var i = 0; i < sides.length; i += 1) {
      var currentSide = sides[i];
      var left = currentSide.checkLeft ? currentSide.checkLeft : currentSide.left;
      var top = currentSide.checkTop ? currentSide.checkTop : currentSide.top;

      if (left < 0 || left > viewPort.width) {
        // eslint-disable-next-line no-continue
        continue;
      }

      if (top < 0 || top > viewPort.height) {
        // eslint-disable-next-line no-continue
        continue;
      }

      return currentSide;
    }

    return defaultPosition;
  };

  var specifyIframePosition = function specifyIframePosition() {
    var viewPort = ui_validation_utils.getViewPort();

    if (iframe.offsetLeft + iframe.offsetWidth > viewPort.width) {
      iframe.style.left = "".concat(Math.max(0, viewPort.width - iframe.offsetWidth - iframePositionOffset), "px");
    }

    if (iframe.offsetLeft < 0) {
      iframe.style.left = "".concat(iframePositionOffset, "px");
    }

    if (iframe.offsetTop + iframe.offsetHeight > viewPort.height) {
      iframe.style.top = "".concat(Math.max(0, viewPort.height - iframe.offsetHeight - iframePositionOffset), "px");
    }

    if (iframe.offsetHeight < 0) {
      iframe.style.top = "".concat(iframePositionOffset, "px");
    }
  };

  var appendContent = function appendContent(view) {
    var body = iframe.contentDocument.body;

    for (var i = 0; i < body.children.length; i += 1) {
      body.removeChild(body.children[i]);
    }

    body.appendChild(view);
  };

  var localize = function localize() {
    var elements = iframe.contentDocument.querySelectorAll('[i18n]');

    for (var i = 0; i < elements.length; i += 1) {
      var message = src_localization.getMessage(elements[i].getAttribute('i18n'));
      src_localization.translateElement(elements[i], message);
    }
  };

  var resizeIframe = function resizeIframe(width, height) {
    var frame = iframe; // setting iframe height dynamically based on inner content

    if (height === 'auto' || !height) {
      // eslint-disable-next-line no-param-reassign
      height = frame.contentWindow.document.body.querySelector('.main').clientHeight || iframeMaxHeight;
    }

    if (width) {
      frame.width = width;
      frame.style.setProperty('width', "".concat(width, "px"), 'important');
    }

    if (height) {
      frame.height = height;
      frame.style.setProperty('height', "".concat(height, "px"), 'important');
    }
  };

  var showMenuItem = function showMenuItem(viewName, controller, width, height, options) {
    src_log.debug("Showing menu item: ".concat(viewName));

    if (currentItem === viewName) {
      return;
    }

    var onIframeLoad = function onIframeLoad() {
      var frameElement = iframe;
      var view = src_protectedApi.createElement(views[viewName]);
      var stylesElement = src_protectedApi.createStylesElement(CSS.common + CSS.button + CSS.iframe, getStyleNonce());
      view.appendChild(stylesElement);
      appendContent(view);
      localize();

      if (!options) {
        // eslint-disable-next-line no-param-reassign
        options = {};
      } // eslint-disable-next-line no-param-reassign


      options.iframeAnchor = iframeAnchor;
      controller.init(frameElement, options);
      currentItem = viewName;
      onShowMenuItem.notify();

      if (options.dragElement) {
        ui_utils.makeIframeDraggable(iframe, iframe.contentDocument.querySelector(options.dragElement));
      } // make iframe size as like internal content size


      resizeIframe(width, height);
      var iframePosition = getIframePosition();
      iframe.style.left = "".concat(iframePosition.left, "px");
      iframe.style.top = "".concat(iframePosition.top, "px"); // fixing iframe position after resize, to avoid iframe outside of the viewport

      specifyIframePosition();
    };

    if (!iframe) {
      var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, getStyleNonce(), 'adg-styles-selector');

      if (adgStylesSelector) {
        document.documentElement.appendChild(adgStylesSelector);
      }

      createIframe(onIframeLoad);
      return;
    }

    onIframeLoad();
  };

  var setButtonPosition = function setButtonPosition(coords) {
    buttonPosition = coords;
  }; // e.isTrusted checking for prevent programmatically events
  // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134


  var removeIframe = function removeIframe(e) {
    if (e && e.isTrusted === false) {
      return false;
    }

    if (!iframeAnchor) {
      return false;
    }

    document.removeEventListener('click', removeIframe);
    document.documentElement.removeChild(iframeAnchor);
    iframe = null;
    iframeAnchor = null;
    currentItem = null;
    adguard_selector.close();
    onCloseMenu.notify();
    return undefined;
  };

  var setCloseEventIfNotHitIframe = function setCloseEventIfNotHitIframe(setEvent) {
    document.removeEventListener('click', removeIframe);

    if (setEvent) {
      window.setTimeout(function () {
        document.addEventListener('click', removeIframe);
      }, 150);
    }
  };

  var showDetailedMenu = function showDetailedMenu() {
    var controller = new DetailedMenuController(src_ioc.get('iframeController'));
    var options = {
      dragElement: '.menu-head'
    };
    showMenuItem(src_settings.MenuItemsNames.DetailedMenu, controller, iframeMaxWidth, 'auto', options);
    setCloseEventIfNotHitIframe(true);
  };

  var showSelectorMenu = function showSelectorMenu() {
    var controller = new SelectorMenuController(src_ioc.get('iframeController'));
    var options = {
      dragElement: '.head'
    };
    showMenuItem(src_settings.MenuItemsNames.SelectorMenu, controller, menuMaxWidth, 160, options);
    setCloseEventIfNotHitIframe(false);
  };

  var showSliderMenu = function showSliderMenu(initElement, currentElement, path, optionsState) {
    var controller = new SliderMenuController(src_ioc.get('addRule'), src_ioc.get('iframeController'));
    var options = {
      path: path,
      currentElement: currentElement,
      element: initElement,
      dragElement: '.head',
      options: optionsState
    };
    showMenuItem(src_settings.MenuItemsNames.SliderMenu, controller, menuMaxWidth, 'auto', options);
    setCloseEventIfNotHitIframe(true);
  };

  var showBlockPreview = function showBlockPreview(initElement, path, currentElement, optionsState) {
    var controller = new BlockPreviewController(src_ioc.get('addRule'), src_ioc.get('iframeController'));
    var options = {
      path: path,
      currentElement: currentElement,
      element: initElement,
      dragElement: '.head',
      options: optionsState
    };
    showMenuItem(src_settings.MenuItemsNames.BlockPreview, controller, menuMaxWidth, 'auto', options);
    setCloseEventIfNotHitIframe(true);
  };

  var showSettingsMenu = function showSettingsMenu() {
    var controller = new SettingsMenuController(src_ioc.get('iframeController'));
    var options = {
      dragElement: '.head'
    };
    showMenuItem(src_settings.MenuItemsNames.SettingsMenu, controller, 400, 468, options);
    setCloseEventIfNotHitIframe(true);
  };

  var resizeSliderMenuToAdvanced = function resizeSliderMenuToAdvanced() {
    resizeIframe(null, null);
  };

  var resizeSliderMenuToNormal = function resizeSliderMenuToNormal() {
    resizeIframe(null, null);
  };

  var hideElementsByPath = function hideElementsByPath(selectedPath, styleID) {
    if (!selectedPath) {
      return false;
    }

    var slctr;
    var style;

    if (selectedPath.indexOf('://') > 0) {
      // all images by src
      slctr = "[src*=\"".concat(selectedPath.split('$domain=')[0], "\"]");
    } else {
      // eslint-disable-next-line prefer-destructuring
      slctr = selectedPath.split('##')[1];
    }

    if (slctr) {
      style = "".concat(slctr, "{display:none!important}");
    } else {
      src_log.error('Can`t block element: `selector` path is empty');
      return false;
    }

    if (!styleID) {
      // eslint-disable-next-line no-param-reassign
      styleID = blockedElementsStyleID;
    }

    var stylesElement = document.documentElement.querySelector("#".concat(styleID));

    if (stylesElement) {
      stylesElement.innerHTML = "".concat(stylesElement.innerHTML, " ").concat(style);
    } else {
      document.documentElement.appendChild(src_protectedApi.createStylesElement(style, getStyleNonce(), styleID));
    } // do not hide assistant div if the user wrote a rule
    // that blocks all div or iframe elements


    if (iframeAnchor) {
      iframeAnchor.style.setProperty('display', 'block', 'important');
    }

    return undefined;
  }; // show elements hidden by `hideElementsByPath` function


  var showHiddenElements = function showHiddenElements(styleID) {
    if (!styleID) {
      // eslint-disable-next-line no-param-reassign
      styleID = blockedElementsStyleID;
    }

    var stylesElement = document.documentElement.querySelector("#".concat(styleID));

    if (stylesElement) {
      stylesElement.parentNode.removeChild(stylesElement);
    }
  };

  var blockElement = function blockElement(path, addRule) {
    if (gm.ADG_addRule) {
      gm.ADG_addRule(path, function () {
        removeIframe();
        hideElementsByPath(path);
        bypassCache();
      });
    } else {
      if (!addRule) {
        src_log.error('Callback function `addRule` can\'t be undefined!');
      }

      addRule(path);
      removeIframe();
      hideElementsByPath(path);
      bypassCache();
    }
  };

  return {
    showDetailedMenu: showDetailedMenu,
    showSelectorMenu: showSelectorMenu,
    showSliderMenu: showSliderMenu,
    showBlockPreview: showBlockPreview,
    showSettingsMenu: showSettingsMenu,
    setButtonPosition: setButtonPosition,
    onCloseMenu: onCloseMenu,
    onShowMenuItem: onShowMenuItem,
    removeIframe: removeIframe,
    resizeSliderMenuToAdvanced: resizeSliderMenuToAdvanced,
    resizeSliderMenuToNormal: resizeSliderMenuToNormal,
    resizeIframe: resizeIframe,
    hideElementsByPath: hideElementsByPath,
    showHiddenElements: showHiddenElements,
    blockElement: blockElement
  };
}

/* harmony default export */ var src_iframe = (IframeController);
// CONCATENATED MODULE: ./src/controllers/sliderMenuControllerMobile.js



/**
 * Slider menu controller mobile
 * @param addRule
 * @param iframe
 * @returns {{init: init}}
 * @constructor
 */

function SliderMenuControllerMobile(addRule, iframe) {
  var contentDocument = null;
  var selectedElement = null;
  var iframeCtrl = iframe;
  var nodeParentsCount = 0;
  var nodeChildsCount = 0;
  var parents;
  var children;
  var nodeNumber = 0;

  function showPreview() {
    adguard_selector.reset();

    if (this.classList.contains('active')) {
      removeClass(selectedElement, 'sg_hide_element');
      removeClass(this, 'active');
      adguard_selector.selectElement(selectedElement);
      contentDocument.querySelector('.adg-plus').removeAttribute('disabled');
      contentDocument.querySelector('.adg-minus').removeAttribute('disabled');
      contentDocument.querySelector('.adg-close').removeAttribute('disabled');
    } else {
      addClass(selectedElement, 'sg_hide_element');
      addClass(this, 'active');
      contentDocument.querySelector('.adg-plus').setAttribute('disabled', 'disabled');
      contentDocument.querySelector('.adg-minus').setAttribute('disabled', 'disabled');
      contentDocument.querySelector('.adg-close').setAttribute('disabled', 'disabled');
    }
  }

  var getUrlBlockAttribute = function getUrlBlockAttribute(element) {
    var urlBlockAttributes = ['src', 'data'];

    for (var i = 0; i < urlBlockAttributes.length; i += 1) {
      var attr = urlBlockAttributes[i];
      var value = element.getAttribute(attr);

      if (value) {
        return value;
      }
    }

    return null;
  };

  var getFilterText = function getFilterText() {
    var options = {
      urlMask: getUrlBlockAttribute(selectedElement),
      cssSelectorType: 'STRICT_FULL',
      isBlockOneDomain: false,
      url: document.location,
      ruleType: 'CSS'
    };
    return adguard_rules_constructor.constructRuleText(selectedElement, options);
  };

  var blockElement = function blockElement() {
    selectedElement.classList.remove('sg_hide_element');
    selectedElement.style.display = 'none';
    addRule(getFilterText());
    iframeCtrl.removeIframe();
  };

  var onSliderMove = function onSliderMove(element) {
    selectedElement = element;
    adguard_selector.selectElement(element);
  };

  var plus = function plus() {
    nodeNumber = nodeNumber + 1 > nodeParentsCount ? nodeNumber : nodeNumber + 1;

    if (nodeNumber >= 0) {
      if (parents[nodeNumber]) onSliderMove(parents[nodeNumber]); // eslint-disable-next-line no-bitwise
    } else if (children[~nodeNumber]) onSliderMove(children[~nodeNumber]);
  };

  var minus = function minus() {
    // TODO: rewrite this
    // eslint-disable-next-line no-unused-expressions, no-self-assign
    nodeNumber <= -nodeChildsCount ? nodeNumber = nodeNumber : nodeNumber -= 1;

    if (nodeNumber >= 0) {
      if (parents[nodeNumber]) onSliderMove(parents[nodeNumber]); // eslint-disable-next-line no-bitwise
    } else if (children[~nodeNumber]) onSliderMove(children[~nodeNumber]);
  };

  var bindEvents = function bindEvents() {
    var menuEvents = {
      '.adg-close': iframeCtrl.showSelectorMenu,
      '.adg-preview': showPreview,
      '.adg-accept': blockElement,
      '.adg-plus': plus,
      '.adg-minus': minus
    };
    Object.keys(menuEvents).forEach(function (item) {
      var elems = contentDocument.querySelectorAll(item);
      toArray(elems).forEach(function (elem) {
        return elem.addEventListener('click', menuEvents[item]);
      });
    });
    window.addEventListener('orientationchange', iframeCtrl.showSelectorMenu);
  };
  /*
   Called from IframeController._showMenuItem to initialize view
   */
  // eslint-disable-next-line no-shadow


  var init = function init(iframe, options) {
    selectedElement = options.element; // eslint-disable-next-line prefer-destructuring

    contentDocument = iframe.contentDocument;
    bindEvents();
    adguard_selector.selectElement(selectedElement);
    children = getAllChildren(selectedElement);
    parents = getParentsLevel(selectedElement);
    parents.splice(0, 0, selectedElement);
    nodeParentsCount = parents.length;
    nodeChildsCount = children.length;
  };

  return {
    init: init
  };
}
// EXTERNAL MODULE: ./package.json
var package_0 = __nested_webpack_require_435152__(19);

// CONCATENATED MODULE: ./src/iframe.mobile.js
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }











/**
 * Manages iframe and it's content
 * @returns {{
 * showSelectorMenu: showSelectorMenu,
 * showSliderMenu: showSliderMenu,
 * setButtonPosition: setButtonPosition,
 * onCloseMenu: CustomEvent,
 * onShowMenuItem: CustomEvent,
 * removeIframe: removeIframe
 * }}
 * @constructor
 */

function IframeControllerMobile() {
  var iframe = null;
  var iframeElement = null;
  var currentItem = null;
  var onCloseMenu = new CustomEvent();
  var onShowMenuItem = new CustomEvent();
  var views = {};
  views['mobilePopup.html'] = HTML.popup;
  views['mobileMenu.html'] = HTML.mobile_menu;
  var defaultCSS = {
    clip: 'auto',
    'z-index': 2147483647
  };
  var defaultAttributes = {
    "class": adguard_selector.ignoreClassName(),
    frameBorder: 0,
    allowTransparency: 'true',
    id: 'iframe-x2eRYVVQRsG9'
  };

  var updateIframeAttrs = function updateIframeAttrs(attrs) {
    iframe.removeAttribute('style');
    iframe.removeAttribute('height');

    var attributes = _objectSpread(_objectSpread({}, defaultAttributes), attrs);

    Object.keys(attributes).forEach(function (item) {
      iframe.setAttribute(item, attributes[item]);
    });
  };

  var updateIframeStyles = function updateIframeStyles(styles) {
    var css = _objectSpread(_objectSpread({}, defaultCSS), styles);

    Object.keys(css).forEach(function (item) {
      iframe.style[item] = css[item];
    });
  };

  var createIframe = function createIframe(onIframeLoadCallback, styles, attrs) {
    src_log.debug('Creating iframe');

    if (document.querySelector("#".concat(defaultAttributes.id))) {
      src_log.error('Iframe already added');
      return;
    }

    iframe = src_protectedApi.createElement('iframe');
    iframe.addEventListener('load', function () {
      onIframeLoadCallback();
      updateIframeAttrs(attrs);
      updateIframeStyles(styles);
    });
    iframeElement = iframe;
    var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, 'adg-styles-selector');

    if (adgStylesSelector) {
      document.documentElement.appendChild(adgStylesSelector);
    }

    document.documentElement.appendChild(iframeElement);
  };

  var appendContent = function appendContent(view) {
    var body = iframe.contentDocument.body;

    for (var i = 0; i < body.children.length; i += 1) {
      body.removeChild(body.children[i]);
    }

    body.appendChild(view);
  };

  var localize = function localize() {
    var elements = iframe.contentDocument.querySelectorAll('[i18n]');

    for (var i = 0; i < elements.length; i += 1) {
      var message = src_localization.getMessage(elements[i].getAttribute('i18n'));
      src_localization.translateElement(elements[i], message);
    }

    var elementsWithTitle = iframe.contentDocument.querySelectorAll('[i18n-title]');

    for (var j = 0; j < elementsWithTitle.length; j += 1) {
      var title = src_localization.getMessage(elementsWithTitle[j].getAttribute('i18n-title'));
      elementsWithTitle[j].setAttribute('title', title);
    }
  };

  var hideIframe = function hideIframe() {
    if (iframe) {
      iframe.style.display = 'none';
    }
  };

  var showIframe = function showIframe() {
    if (iframe) {
      iframe.style.display = 'block';
    }
  };

  var showMenuItem = function showMenuItem(viewName, controller, options, styles, attrs) {
    if (currentItem === viewName) {
      return;
    }

    var onIframeLoad = function onIframeLoad() {
      var frameElement = iframe;
      var view = src_protectedApi.createElement(views[viewName]);
      var iframeStyles = CSS.common + CSS.mobile;
      view.appendChild(src_protectedApi.createStylesElement(iframeStyles));
      appendContent(view);
      localize();

      if (!options) {
        // eslint-disable-next-line no-param-reassign
        options = {};
      }

      if (controller) {
        controller.init(frameElement, options);
      }

      updateIframeAttrs(attrs);
      updateIframeStyles(styles);
      currentItem = viewName;
      onShowMenuItem.notify();
      showIframe();
    };

    if (!iframe) {
      var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, 'adg-styles-selector');

      if (adgStylesSelector) {
        document.documentElement.appendChild(adgStylesSelector);
      }

      createIframe(onIframeLoad, styles, attrs);
      return;
    }

    onIframeLoad();
  };

  var startSelect = function startSelect() {
    hideIframe();
    var controller = new SelectorMenuController(src_ioc.get('iframeController'));
    controller.startSelector();
  };

  var showSelectorMenu = function showSelectorMenu() {
    hideIframe();
    adguard_selector.close();
    var styles = {
      position: 'fixed',
      left: 0,
      top: 0,
      right: 0,
      bottom: 0,
      margin: 'auto',
      'border-radius': '2px',
      background: 'transparent',
      width: '40vmax',
      height: '40vmax'
    }; // eslint-disable-next-line no-use-before-define

    showMenuItem('mobilePopup.html', mobilePopupButtonsInit(), null, styles);
  }; // e.isTrusted checking for prevent programmatically events
  // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134


  var removeIframe = function removeIframe(e) {
    if (e && e.isTrusted === false) {
      return false;
    }

    if (!iframeElement) {
      return false;
    }

    document.removeEventListener('click', removeIframe);
    window.removeEventListener('orientationchange', showSelectorMenu);
    document.documentElement.removeChild(iframeElement);
    iframe = null;
    iframeElement = null;
    currentItem = null;
    adguard_selector.close();
    onCloseMenu.notify();
    return undefined;
  };

  var mobilePopupButtonsInit = function mobilePopupButtonsInit() {
    return {
      init: function init() {
        var startSelectMode = iframe.contentDocument.querySelector('.start-select-mode');
        var cancelSelectMode = iframe.contentDocument.querySelector('.cancel-select-mode');
        var appVersionElem = iframe.contentDocument.querySelector('#appVersion');
        startSelectMode.addEventListener('click', startSelect);
        cancelSelectMode.addEventListener('click', removeIframe);
        appVersionElem.innerText = "v".concat(package_0["a" /* version */]);
      }
    };
  };

  var showSliderMenu = function showSliderMenu(element) {
    var controller = new SliderMenuControllerMobile(src_ioc.get('addRule'), src_ioc.get('iframeController'));
    var options = {
      element: element
    };
    var styles = {
      position: 'fixed',
      bottom: 0,
      left: '50%',
      transform: 'translateX(-50%)',
      width: '70vw',
      height: '27vw'
    };
    showMenuItem('mobileMenu.html', controller, options, styles);
  };

  return {
    showSelectorMenu: showSelectorMenu,
    showSliderMenu: showSliderMenu,
    onCloseMenu: onCloseMenu,
    onShowMenuItem: onShowMenuItem,
    removeIframe: removeIframe,
    startSelect: startSelect
  };
}
// CONCATENATED MODULE: ./src/embedded.js
/* global AdguardSettings */






/* embedded script for extensions */

/*
 * adguardAssistantExtended main function is for desktop browsers
 */

function adguardAssistantExtended() {
  var adguardSettings = typeof AdguardSettings === 'undefined' ? null : AdguardSettings;
  src_wot.registerWotEventHandler();
  src_settings.setAdguardSettings(adguardSettings);
  var iframeController = new src_iframe();
  src_ioc.register('iframeController', iframeController);
  return {
    start: function start(element, callback) {
      src_ioc.register('addRule', src_protectedApi.functionBind.call(callback, this));

      if (element) {
        iframeController.showSelectorMenu();
        iframeController.showSliderMenu(element);
      } else {
        iframeController.showSelectorMenu();
      }
    },
    close: function close() {
      iframeController.removeIframe();
    }
  };
}
/*
 * adguardAssistantMini function is for mobile browsers
 */

function adguardAssistantMini() {
  var iframeController = new IframeControllerMobile();
  src_ioc.register('iframeController', iframeController);
  return {
    start: function start(element, callback) {
      src_ioc.register('addRule', src_protectedApi.functionBind.call(callback, this));

      if (element) {
        iframeController.showSelectorMenu();
        iframeController.showSliderMenu(element);
      } else {
        iframeController.showSelectorMenu();
      }
    },
    close: function close() {
      iframeController.removeIframe();
    }
  };
}
// CONCATENATED MODULE: ./src/helpers.js
var mobileReg = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i;
var isMobile = function isMobile(ua) {
  return mobileReg.test(ua);
};
// CONCATENATED MODULE: ./src/index.js


var adguardAssistant = isMobile(navigator.userAgent) ? adguardAssistantMini : adguardAssistantExtended;

/***/ })
/******/ ]);
});

/***/ }),

/***/ 3679:
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else { var mod; }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (module) {
  /* webextension-polyfill - v0.8.0 - Tue Apr 20 2021 11:27:38 */

  /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */

  /* vim: set sts=2 sw=2 et tw=80: */

  /* This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  "use strict";

  if (typeof browser === "undefined" || Object.getPrototypeOf(browser) !== Object.prototype) {
    const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = "The message port closed before a response was received.";
    const SEND_RESPONSE_DEPRECATION_WARNING = "Returning a Promise is the preferred way to send a reply from an onMessage/onMessageExternal listener, as the sendResponse will be removed from the specs (See https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage)"; // Wrapping the bulk of this polyfill in a one-time-use function is a minor
    // optimization for Firefox. Since Spidermonkey does not fully parse the
    // contents of a function until the first time it's called, and since it will
    // never actually need to be called, this allows the polyfill to be included
    // in Firefox nearly for free.

    const wrapAPIs = extensionAPIs => {
      // NOTE: apiMetadata is associated to the content of the api-metadata.json file
      // at build time by replacing the following "include" with the content of the
      // JSON file.
      const apiMetadata = {
        "alarms": {
          "clear": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "clearAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "get": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "bookmarks": {
          "create": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getChildren": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getRecent": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getSubTree": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTree": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "move": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeTree": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "browserAction": {
          "disable": {
            "minArgs": 0,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "enable": {
            "minArgs": 0,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "getBadgeBackgroundColor": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getBadgeText": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getPopup": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTitle": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "openPopup": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "setBadgeBackgroundColor": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setBadgeText": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setIcon": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "setPopup": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setTitle": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "browsingData": {
          "remove": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "removeCache": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeCookies": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeDownloads": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeFormData": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeHistory": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeLocalStorage": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removePasswords": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removePluginData": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "settings": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "commands": {
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "contextMenus": {
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "cookies": {
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAllCookieStores": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "set": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "devtools": {
          "inspectedWindow": {
            "eval": {
              "minArgs": 1,
              "maxArgs": 2,
              "singleCallbackArg": false
            }
          },
          "panels": {
            "create": {
              "minArgs": 3,
              "maxArgs": 3,
              "singleCallbackArg": true
            },
            "elements": {
              "createSidebarPane": {
                "minArgs": 1,
                "maxArgs": 1
              }
            }
          }
        },
        "downloads": {
          "cancel": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "download": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "erase": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getFileIcon": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "open": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "pause": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeFile": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "resume": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "show": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "extension": {
          "isAllowedFileSchemeAccess": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "isAllowedIncognitoAccess": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "history": {
          "addUrl": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "deleteAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "deleteRange": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "deleteUrl": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getVisits": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "search": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "i18n": {
          "detectLanguage": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAcceptLanguages": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "identity": {
          "launchWebAuthFlow": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "idle": {
          "queryState": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "management": {
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getSelf": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "setEnabled": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "uninstallSelf": {
            "minArgs": 0,
            "maxArgs": 1
          }
        },
        "notifications": {
          "clear": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "create": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getPermissionLevel": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        },
        "pageAction": {
          "getPopup": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getTitle": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "hide": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setIcon": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "setPopup": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "setTitle": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          },
          "show": {
            "minArgs": 1,
            "maxArgs": 1,
            "fallbackToNoCallback": true
          }
        },
        "permissions": {
          "contains": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "request": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "runtime": {
          "getBackgroundPage": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getPlatformInfo": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "openOptionsPage": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "requestUpdateCheck": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "sendMessage": {
            "minArgs": 1,
            "maxArgs": 3
          },
          "sendNativeMessage": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "setUninstallURL": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "sessions": {
          "getDevices": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getRecentlyClosed": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "restore": {
            "minArgs": 0,
            "maxArgs": 1
          }
        },
        "storage": {
          "local": {
            "clear": {
              "minArgs": 0,
              "maxArgs": 0
            },
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "remove": {
              "minArgs": 1,
              "maxArgs": 1
            },
            "set": {
              "minArgs": 1,
              "maxArgs": 1
            }
          },
          "managed": {
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            }
          },
          "sync": {
            "clear": {
              "minArgs": 0,
              "maxArgs": 0
            },
            "get": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "getBytesInUse": {
              "minArgs": 0,
              "maxArgs": 1
            },
            "remove": {
              "minArgs": 1,
              "maxArgs": 1
            },
            "set": {
              "minArgs": 1,
              "maxArgs": 1
            }
          }
        },
        "tabs": {
          "captureVisibleTab": {
            "minArgs": 0,
            "maxArgs": 2
          },
          "create": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "detectLanguage": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "discard": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "duplicate": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "executeScript": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getCurrent": {
            "minArgs": 0,
            "maxArgs": 0
          },
          "getZoom": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getZoomSettings": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "goBack": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "goForward": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "highlight": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "insertCSS": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "move": {
            "minArgs": 2,
            "maxArgs": 2
          },
          "query": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "reload": {
            "minArgs": 0,
            "maxArgs": 2
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "removeCSS": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "sendMessage": {
            "minArgs": 2,
            "maxArgs": 3
          },
          "setZoom": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "setZoomSettings": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "update": {
            "minArgs": 1,
            "maxArgs": 2
          }
        },
        "topSites": {
          "get": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "webNavigation": {
          "getAllFrames": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "getFrame": {
            "minArgs": 1,
            "maxArgs": 1
          }
        },
        "webRequest": {
          "handlerBehaviorChanged": {
            "minArgs": 0,
            "maxArgs": 0
          }
        },
        "windows": {
          "create": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "get": {
            "minArgs": 1,
            "maxArgs": 2
          },
          "getAll": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getCurrent": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "getLastFocused": {
            "minArgs": 0,
            "maxArgs": 1
          },
          "remove": {
            "minArgs": 1,
            "maxArgs": 1
          },
          "update": {
            "minArgs": 2,
            "maxArgs": 2
          }
        }
      };

      if (Object.keys(apiMetadata).length === 0) {
        throw new Error("api-metadata.json has not been included in browser-polyfill");
      }
      /**
       * A WeakMap subclass which creates and stores a value for any key which does
       * not exist when accessed, but behaves exactly as an ordinary WeakMap
       * otherwise.
       *
       * @param {function} createItem
       *        A function which will be called in order to create the value for any
       *        key which does not exist, the first time it is accessed. The
       *        function receives, as its only argument, the key being created.
       */


      class DefaultWeakMap extends WeakMap {
        constructor(createItem, items = undefined) {
          super(items);
          this.createItem = createItem;
        }

        get(key) {
          if (!this.has(key)) {
            this.set(key, this.createItem(key));
          }

          return super.get(key);
        }

      }
      /**
       * Returns true if the given object is an object with a `then` method, and can
       * therefore be assumed to behave as a Promise.
       *
       * @param {*} value The value to test.
       * @returns {boolean} True if the value is thenable.
       */


      const isThenable = value => {
        return value && typeof value === "object" && typeof value.then === "function";
      };
      /**
       * Creates and returns a function which, when called, will resolve or reject
       * the given promise based on how it is called:
       *
       * - If, when called, `chrome.runtime.lastError` contains a non-null object,
       *   the promise is rejected with that value.
       * - If the function is called with exactly one argument, the promise is
       *   resolved to that value.
       * - Otherwise, the promise is resolved to an array containing all of the
       *   function's arguments.
       *
       * @param {object} promise
       *        An object containing the resolution and rejection functions of a
       *        promise.
       * @param {function} promise.resolve
       *        The promise's resolution function.
       * @param {function} promise.reject
       *        The promise's rejection function.
       * @param {object} metadata
       *        Metadata about the wrapped method which has created the callback.
       * @param {boolean} metadata.singleCallbackArg
       *        Whether or not the promise is resolved with only the first
       *        argument of the callback, alternatively an array of all the
       *        callback arguments is resolved. By default, if the callback
       *        function is invoked with only a single argument, that will be
       *        resolved to the promise, while all arguments will be resolved as
       *        an array if multiple are given.
       *
       * @returns {function}
       *        The generated callback function.
       */


      const makeCallback = (promise, metadata) => {
        return (...callbackArgs) => {
          if (extensionAPIs.runtime.lastError) {
            promise.reject(new Error(extensionAPIs.runtime.lastError.message));
          } else if (metadata.singleCallbackArg || callbackArgs.length <= 1 && metadata.singleCallbackArg !== false) {
            promise.resolve(callbackArgs[0]);
          } else {
            promise.resolve(callbackArgs);
          }
        };
      };

      const pluralizeArguments = numArgs => numArgs == 1 ? "argument" : "arguments";
      /**
       * Creates a wrapper function for a method with the given name and metadata.
       *
       * @param {string} name
       *        The name of the method which is being wrapped.
       * @param {object} metadata
       *        Metadata about the method being wrapped.
       * @param {integer} metadata.minArgs
       *        The minimum number of arguments which must be passed to the
       *        function. If called with fewer than this number of arguments, the
       *        wrapper will raise an exception.
       * @param {integer} metadata.maxArgs
       *        The maximum number of arguments which may be passed to the
       *        function. If called with more than this number of arguments, the
       *        wrapper will raise an exception.
       * @param {boolean} metadata.singleCallbackArg
       *        Whether or not the promise is resolved with only the first
       *        argument of the callback, alternatively an array of all the
       *        callback arguments is resolved. By default, if the callback
       *        function is invoked with only a single argument, that will be
       *        resolved to the promise, while all arguments will be resolved as
       *        an array if multiple are given.
       *
       * @returns {function(object, ...*)}
       *       The generated wrapper function.
       */


      const wrapAsyncFunction = (name, metadata) => {
        return function asyncFunctionWrapper(target, ...args) {
          if (args.length < metadata.minArgs) {
            throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);
          }

          if (args.length > metadata.maxArgs) {
            throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);
          }

          return new Promise((resolve, reject) => {
            if (metadata.fallbackToNoCallback) {
              // This API method has currently no callback on Chrome, but it return a promise on Firefox,
              // and so the polyfill will try to call it with a callback first, and it will fallback
              // to not passing the callback if the first call fails.
              try {
                target[name](...args, makeCallback({
                  resolve,
                  reject
                }, metadata));
              } catch (cbError) {
                console.warn(`${name} API method doesn't seem to support the callback parameter, ` + "falling back to call it without a callback: ", cbError);
                target[name](...args); // Update the API method metadata, so that the next API calls will not try to
                // use the unsupported callback anymore.

                metadata.fallbackToNoCallback = false;
                metadata.noCallback = true;
                resolve();
              }
            } else if (metadata.noCallback) {
              target[name](...args);
              resolve();
            } else {
              target[name](...args, makeCallback({
                resolve,
                reject
              }, metadata));
            }
          });
        };
      };
      /**
       * Wraps an existing method of the target object, so that calls to it are
       * intercepted by the given wrapper function. The wrapper function receives,
       * as its first argument, the original `target` object, followed by each of
       * the arguments passed to the original method.
       *
       * @param {object} target
       *        The original target object that the wrapped method belongs to.
       * @param {function} method
       *        The method being wrapped. This is used as the target of the Proxy
       *        object which is created to wrap the method.
       * @param {function} wrapper
       *        The wrapper function which is called in place of a direct invocation
       *        of the wrapped method.
       *
       * @returns {Proxy<function>}
       *        A Proxy object for the given method, which invokes the given wrapper
       *        method in its place.
       */


      const wrapMethod = (target, method, wrapper) => {
        return new Proxy(method, {
          apply(targetMethod, thisObj, args) {
            return wrapper.call(thisObj, target, ...args);
          }

        });
      };

      let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);
      /**
       * Wraps an object in a Proxy which intercepts and wraps certain methods
       * based on the given `wrappers` and `metadata` objects.
       *
       * @param {object} target
       *        The target object to wrap.
       *
       * @param {object} [wrappers = {}]
       *        An object tree containing wrapper functions for special cases. Any
       *        function present in this object tree is called in place of the
       *        method in the same location in the `target` object tree. These
       *        wrapper methods are invoked as described in {@see wrapMethod}.
       *
       * @param {object} [metadata = {}]
       *        An object tree containing metadata used to automatically generate
       *        Promise-based wrapper functions for asynchronous. Any function in
       *        the `target` object tree which has a corresponding metadata object
       *        in the same location in the `metadata` tree is replaced with an
       *        automatically-generated wrapper function, as described in
       *        {@see wrapAsyncFunction}
       *
       * @returns {Proxy<object>}
       */

      const wrapObject = (target, wrappers = {}, metadata = {}) => {
        let cache = Object.create(null);
        let handlers = {
          has(proxyTarget, prop) {
            return prop in target || prop in cache;
          },

          get(proxyTarget, prop, receiver) {
            if (prop in cache) {
              return cache[prop];
            }

            if (!(prop in target)) {
              return undefined;
            }

            let value = target[prop];

            if (typeof value === "function") {
              // This is a method on the underlying object. Check if we need to do
              // any wrapping.
              if (typeof wrappers[prop] === "function") {
                // We have a special-case wrapper for this method.
                value = wrapMethod(target, target[prop], wrappers[prop]);
              } else if (hasOwnProperty(metadata, prop)) {
                // This is an async method that we have metadata for. Create a
                // Promise wrapper for it.
                let wrapper = wrapAsyncFunction(prop, metadata[prop]);
                value = wrapMethod(target, target[prop], wrapper);
              } else {
                // This is a method that we don't know or care about. Return the
                // original method, bound to the underlying object.
                value = value.bind(target);
              }
            } else if (typeof value === "object" && value !== null && (hasOwnProperty(wrappers, prop) || hasOwnProperty(metadata, prop))) {
              // This is an object that we need to do some wrapping for the children
              // of. Create a sub-object wrapper for it with the appropriate child
              // metadata.
              value = wrapObject(value, wrappers[prop], metadata[prop]);
            } else if (hasOwnProperty(metadata, "*")) {
              // Wrap all properties in * namespace.
              value = wrapObject(value, wrappers[prop], metadata["*"]);
            } else {
              // We don't need to do any wrapping for this property,
              // so just forward all access to the underlying object.
              Object.defineProperty(cache, prop, {
                configurable: true,
                enumerable: true,

                get() {
                  return target[prop];
                },

                set(value) {
                  target[prop] = value;
                }

              });
              return value;
            }

            cache[prop] = value;
            return value;
          },

          set(proxyTarget, prop, value, receiver) {
            if (prop in cache) {
              cache[prop] = value;
            } else {
              target[prop] = value;
            }

            return true;
          },

          defineProperty(proxyTarget, prop, desc) {
            return Reflect.defineProperty(cache, prop, desc);
          },

          deleteProperty(proxyTarget, prop) {
            return Reflect.deleteProperty(cache, prop);
          }

        }; // Per contract of the Proxy API, the "get" proxy handler must return the
        // original value of the target if that value is declared read-only and
        // non-configurable. For this reason, we create an object with the
        // prototype set to `target` instead of using `target` directly.
        // Otherwise we cannot return a custom object for APIs that
        // are declared read-only and non-configurable, such as `chrome.devtools`.
        //
        // The proxy handlers themselves will still use the original `target`
        // instead of the `proxyTarget`, so that the methods and properties are
        // dereferenced via the original targets.

        let proxyTarget = Object.create(target);
        return new Proxy(proxyTarget, handlers);
      };
      /**
       * Creates a set of wrapper functions for an event object, which handles
       * wrapping of listener functions that those messages are passed.
       *
       * A single wrapper is created for each listener function, and stored in a
       * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener`
       * retrieve the original wrapper, so that  attempts to remove a
       * previously-added listener work as expected.
       *
       * @param {DefaultWeakMap<function, function>} wrapperMap
       *        A DefaultWeakMap object which will create the appropriate wrapper
       *        for a given listener function when one does not exist, and retrieve
       *        an existing one when it does.
       *
       * @returns {object}
       */


      const wrapEvent = wrapperMap => ({
        addListener(target, listener, ...args) {
          target.addListener(wrapperMap.get(listener), ...args);
        },

        hasListener(target, listener) {
          return target.hasListener(wrapperMap.get(listener));
        },

        removeListener(target, listener) {
          target.removeListener(wrapperMap.get(listener));
        }

      });

      const onRequestFinishedWrappers = new DefaultWeakMap(listener => {
        if (typeof listener !== "function") {
          return listener;
        }
        /**
         * Wraps an onRequestFinished listener function so that it will return a
         * `getContent()` property which returns a `Promise` rather than using a
         * callback API.
         *
         * @param {object} req
         *        The HAR entry object representing the network request.
         */


        return function onRequestFinished(req) {
          const wrappedReq = wrapObject(req, {}
          /* wrappers */
          , {
            getContent: {
              minArgs: 0,
              maxArgs: 0
            }
          });
          listener(wrappedReq);
        };
      }); // Keep track if the deprecation warning has been logged at least once.

      let loggedSendResponseDeprecationWarning = false;
      const onMessageWrappers = new DefaultWeakMap(listener => {
        if (typeof listener !== "function") {
          return listener;
        }
        /**
         * Wraps a message listener function so that it may send responses based on
         * its return value, rather than by returning a sentinel value and calling a
         * callback. If the listener function returns a Promise, the response is
         * sent when the promise either resolves or rejects.
         *
         * @param {*} message
         *        The message sent by the other end of the channel.
         * @param {object} sender
         *        Details about the sender of the message.
         * @param {function(*)} sendResponse
         *        A callback which, when called with an arbitrary argument, sends
         *        that value as a response.
         * @returns {boolean}
         *        True if the wrapped listener returned a Promise, which will later
         *        yield a response. False otherwise.
         */


        return function onMessage(message, sender, sendResponse) {
          let didCallSendResponse = false;
          let wrappedSendResponse;
          let sendResponsePromise = new Promise(resolve => {
            wrappedSendResponse = function (response) {
              if (!loggedSendResponseDeprecationWarning) {
                console.warn(SEND_RESPONSE_DEPRECATION_WARNING, new Error().stack);
                loggedSendResponseDeprecationWarning = true;
              }

              didCallSendResponse = true;
              resolve(response);
            };
          });
          let result;

          try {
            result = listener(message, sender, wrappedSendResponse);
          } catch (err) {
            result = Promise.reject(err);
          }

          const isResultThenable = result !== true && isThenable(result); // If the listener didn't returned true or a Promise, or called
          // wrappedSendResponse synchronously, we can exit earlier
          // because there will be no response sent from this listener.

          if (result !== true && !isResultThenable && !didCallSendResponse) {
            return false;
          } // A small helper to send the message if the promise resolves
          // and an error if the promise rejects (a wrapped sendMessage has
          // to translate the message into a resolved promise or a rejected
          // promise).


          const sendPromisedResult = promise => {
            promise.then(msg => {
              // send the message value.
              sendResponse(msg);
            }, error => {
              // Send a JSON representation of the error if the rejected value
              // is an instance of error, or the object itself otherwise.
              let message;

              if (error && (error instanceof Error || typeof error.message === "string")) {
                message = error.message;
              } else {
                message = "An unexpected error occurred";
              }

              sendResponse({
                __mozWebExtensionPolyfillReject__: true,
                message
              });
            }).catch(err => {
              // Print an error on the console if unable to send the response.
              console.error("Failed to send onMessage rejected reply", err);
            });
          }; // If the listener returned a Promise, send the resolved value as a
          // result, otherwise wait the promise related to the wrappedSendResponse
          // callback to resolve and send it as a response.


          if (isResultThenable) {
            sendPromisedResult(result);
          } else {
            sendPromisedResult(sendResponsePromise);
          } // Let Chrome know that the listener is replying.


          return true;
        };
      });

      const wrappedSendMessageCallback = ({
        reject,
        resolve
      }, reply) => {
        if (extensionAPIs.runtime.lastError) {
          // Detect when none of the listeners replied to the sendMessage call and resolve
          // the promise to undefined as in Firefox.
          // See https://github.com/mozilla/webextension-polyfill/issues/130
          if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) {
            resolve();
          } else {
            reject(new Error(extensionAPIs.runtime.lastError.message));
          }
        } else if (reply && reply.__mozWebExtensionPolyfillReject__) {
          // Convert back the JSON representation of the error into
          // an Error instance.
          reject(new Error(reply.message));
        } else {
          resolve(reply);
        }
      };

      const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => {
        if (args.length < metadata.minArgs) {
          throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`);
        }

        if (args.length > metadata.maxArgs) {
          throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`);
        }

        return new Promise((resolve, reject) => {
          const wrappedCb = wrappedSendMessageCallback.bind(null, {
            resolve,
            reject
          });
          args.push(wrappedCb);
          apiNamespaceObj.sendMessage(...args);
        });
      };

      const staticWrappers = {
        devtools: {
          network: {
            onRequestFinished: wrapEvent(onRequestFinishedWrappers)
          }
        },
        runtime: {
          onMessage: wrapEvent(onMessageWrappers),
          onMessageExternal: wrapEvent(onMessageWrappers),
          sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
            minArgs: 1,
            maxArgs: 3
          })
        },
        tabs: {
          sendMessage: wrappedSendMessage.bind(null, "sendMessage", {
            minArgs: 2,
            maxArgs: 3
          })
        }
      };
      const settingMetadata = {
        clear: {
          minArgs: 1,
          maxArgs: 1
        },
        get: {
          minArgs: 1,
          maxArgs: 1
        },
        set: {
          minArgs: 1,
          maxArgs: 1
        }
      };
      apiMetadata.privacy = {
        network: {
          "*": settingMetadata
        },
        services: {
          "*": settingMetadata
        },
        websites: {
          "*": settingMetadata
        }
      };
      return wrapObject(extensionAPIs, staticWrappers, apiMetadata);
    };

    if (typeof chrome != "object" || !chrome || !chrome.runtime || !chrome.runtime.id) {
      throw new Error("This script should only be loaded in a browser extension.");
    } // The build process adds a UMD wrapper around this file, which makes the
    // `module` variable available.


    module.exports = wrapAPIs(chrome);
  } else {
    module.exports = browser;
  }
});


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";

// EXTERNAL MODULE: ./node_modules/@adguard/assistant/dist/assistant.js
var dist_assistant = __webpack_require__(6976);
// EXTERNAL MODULE: ./node_modules/webextension-polyfill/dist/browser-polyfill.js
var browser_polyfill = __webpack_require__(3679);
var browser_polyfill_default = /*#__PURE__*/__webpack_require__.n(browser_polyfill);
;// CONCATENATED MODULE: ./Extension/src/background/extension-api/windows.js
/* eslint-disable no-unused-vars */

/**
 * This function patches if necessary browser.windows implementation for Firefox for Android
 */
const patchWindows = function (browser) {
  // Make compatible with Android WebExt
  if (typeof browser.windows === 'undefined') {
    browser.windows = function () {
      const defaultWindow = {
        id: 1,
        type: 'normal'
      };
      const emptyListener = {
        addListener() {// Doing nothing
        }

      };

      const create = function (createData) {
        return Promise.resolve(defaultWindow);
      };

      const update = function (windowId, data) {
        return Promise.resolve();
      };

      const getAll = function (query) {
        return Promise.resolve(defaultWindow);
      };

      const getLastFocused = function () {
        return Promise.resolve(defaultWindow);
      };

      return {
        onCreated: emptyListener,
        onRemoved: emptyListener,
        onFocusChanged: emptyListener,
        create,
        update,
        getAll,
        getLastFocused
      };
    }();
  }
};
;// CONCATENATED MODULE: ./Extension/src/background/extension-api/browser.js


patchWindows((browser_polyfill_default()));

;// CONCATENATED MODULE: ./Extension/src/common/common-script.js
/**
 * This file is part of Adguard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension).
 *
 * Adguard Browser Extension is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Adguard Browser Extension is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
 */

const runtimeImpl = (() => {
  return {
    onMessage: (browser_polyfill_default()).runtime.onMessage,
    sendMessage: (browser_polyfill_default()).runtime.sendMessage
  };
})(); // eslint-disable-next-line prefer-destructuring

const i18n = (browser_polyfill_default()).i18n;
;// CONCATENATED MODULE: ./Extension/src/content-script/content-script.js
/**
 * This file is part of Adguard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension).
 *
 * Adguard Browser Extension is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Adguard Browser Extension is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
 */

const contentPage = {
  sendMessage: runtimeImpl.sendMessage,
  onMessage: runtimeImpl.onMessage
};
;// CONCATENATED MODULE: ./Extension/src/content-script/assistant.js
/**
 * This file is part of Adguard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension).
 *
 * Adguard Browser Extension is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Adguard Browser Extension is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Adguard Browser Extension. If not, see <http://www.gnu.org/licenses/>.
 */


const startAssistant = () => {
  if (__webpack_require__.g.assistantStarted) {
    return;
  }

  if (window.top !== window || !(document.documentElement instanceof HTMLElement)) {
    return;
  }
  /**
   * `contentPage` may be undefined on the extension startup in FF browser.
   *
   * Different browsers have different strategies of the content scripts
   * injections on extension startup.
   * For example, FF injects content scripts in already opened tabs, but Chrome doesn't do it.
   * In the case of the FF browser, content scripts with the `document_start`
   * option won't injected into opened tabs, so we have to directly check this case.
   */


  if (typeof contentPage === 'undefined') {
    return;
  }

  let assistant; // save right-clicked element for assistant

  let clickedEl = null;
  document.addEventListener('mousedown', event => {
    if (event.button === 2) {
      clickedEl = event.target;
    }
  });
  contentPage.onMessage.addListener(message => {
    switch (message.type) {
      case 'initAssistant':
        {
          const {
            options
          } = message;
          const {
            addRuleCallbackName,
            token
          } = options;
          let selectedElement = null;

          if (clickedEl && options.selectElement) {
            selectedElement = clickedEl;
          }

          if (!assistant) {
            assistant = (0,dist_assistant.adguardAssistant)();
          } else {
            assistant.close();
          }

          assistant.start(selectedElement, rules => {
            contentPage.sendMessage({
              type: addRuleCallbackName,
              data: {
                token,
                ruleText: rules
              }
            });
          });
          break;
        }

      default:
        break;
    }
  }); // do not start assistant twice

  __webpack_require__.g.assistantStarted = true;
};
;// CONCATENATED MODULE: ./Extension/pages/assistant/index.js

startAssistant();
})();

/******/ })()
;