WELearn网课助手2023/6/07

显示WE Learn随行课堂题目答案;支持班级测试;自动答题;刷时长;开放自定义设置

// ==UserScript==
// @name         WELearn网课助手2023/6/07
// @namespace    WUSHEYGDE
// @description  显示WE Learn随行课堂题目答案;支持班级测试;自动答题;刷时长;开放自定义设置
// @version     1.9.8
// @author       SSmJaE
// @license      GPL-3.0
// @compatible   Chrome
// @match        https://course.sflep.com/*
// @match        https://welearn.sflep.com/*
// @match        https://courseappserver.sflep.com/*
// @match        https://centercourseware.sflep.com/*
// @run-at       document-end
// @connect      localhost
// @connect      47.100.166.53
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_setClipboard
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js
// ==/UserScript==

/******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/
/******/
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			}
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
/******/
/******/ 		while(resolves.length) {
/******/ 			resolves.shift()();
/******/ 		}
/******/
/******/ 	};
/******/
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		0: 0
/******/ 	};
/******/
/******/
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "" + chunkId + ".WELearnHelper0.9.3.user.js"
/******/ 	}
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/ 	// The chunk loading function for additional chunks
/******/ 	// Since all referenced chunks are already included
/******/ 	// in this file, this function is empty here.
/******/ 	__webpack_require__.e = function requireEnsure() {
/******/ 		return Promise.resolve();
/******/ 	};
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// on error function for async loading
/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
/******/
/******/ 	var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
/******/ 	jsonpArray.push = webpackJsonpCallback;
/******/ 	jsonpArray = jsonpArray.slice();
/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
/******/ 	var parentJsonpFunction = oldJsonpFunction;
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 78);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(46);


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

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return store; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return BASE_URL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DEBUG_MODE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return VERSION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return QUERY_INTERVAL; });
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
var _package_json__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t(42, 1);


var store = {
  messages: [],
  USER_SETTINGS: {},
  collapse: false,
  showExamQueryButton: false,
  showExamUploadButton: false
}; // *--------------------以下为常量

var BASE_URL;
var DEBUG_MODE;

if (false) {} else {
  BASE_URL = "http://47.100.166.53/api/welearn";
  DEBUG_MODE = false;
}


var VERSION = _package_json__WEBPACK_IMPORTED_MODULE_1__[/* version */ "a"];
var QUERY_INTERVAL = 3000; //单位ms

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

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; });
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

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

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addMessage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return clearMessage; });
/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
/* harmony import */ var _babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _src_utils_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);




function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

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 addMessage(_x) {
  return _addMessage.apply(this, arguments);
}
/** 清空消息 */

function _addMessage() {
  _addMessage = Object(_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee2(message) {
    var type,
        scrollDown,
        add,
        _add,
        _iterator,
        _step,
        line,
        _args2 = arguments;

    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            _add = function _add3() {
              _add = Object(_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee(finalInfo, finalType) {
                var single,
                    _args = arguments;
                return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee$(_context) {
                  while (1) {
                    switch (_context.prev = _context.next) {
                      case 0:
                        single = _args.length > 2 && _args[2] !== undefined ? _args[2] : true;

                        if (!(finalType !== "hr")) {
                          _context.next = 4;
                          break;
                        }

                        if (!(finalInfo === "")) {
                          _context.next = 4;
                          break;
                        }

                        return _context.abrupt("return");

                      case 4:
                        _index__WEBPACK_IMPORTED_MODULE_4__[/* store */ "e"].messages.push({
                          info: finalInfo,
                          type: finalType
                        });

                        if (!(_index__WEBPACK_IMPORTED_MODULE_4__[/* store */ "e"].USER_SETTINGS.autoSlide && single === true)) {
                          _context.next = 9;
                          break;
                        }

                        _context.next = 8;
                        return Object(_src_utils_common__WEBPACK_IMPORTED_MODULE_3__[/* sleep */ "h"])(10);

                      case 8:
                        //等待message渲染完成,不然不会拉到最底
                        scrollDown();

                      case 9:
                      case "end":
                        return _context.stop();
                    }
                  }
                }, _callee);
              }));
              return _add.apply(this, arguments);
            };

            add = function _add2(_x2, _x3) {
              return _add.apply(this, arguments);
            };

            scrollDown = function _scrollDown() {
              document.querySelector("#container-messages").scrollBy(0, 1000);
            };

            type = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : "normal";

            if (!Array.isArray(message)) {
              _context2.next = 30;
              break;
            }

            _iterator = _createForOfIteratorHelper(message);
            _context2.prev = 6;

            _iterator.s();

          case 8:
            if ((_step = _iterator.n()).done) {
              _context2.next = 19;
              break;
            }

            line = _step.value;

            if (!(Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(line) === "object")) {
              _context2.next = 15;
              break;
            }

            _context2.next = 13;
            return add(line.info, line.type, false);

          case 13:
            _context2.next = 17;
            break;

          case 15:
            _context2.next = 17;
            return add(String(line), type !== null && type !== void 0 ? type : "normal", false);

          case 17:
            _context2.next = 8;
            break;

          case 19:
            _context2.next = 24;
            break;

          case 21:
            _context2.prev = 21;
            _context2.t0 = _context2["catch"](6);

            _iterator.e(_context2.t0);

          case 24:
            _context2.prev = 24;

            _iterator.f();

            return _context2.finish(24);

          case 27:
            scrollDown();
            _context2.next = 32;
            break;

          case 30:
            _context2.next = 32;
            return add(String(message), type);

          case 32:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2, null, [[6, 21, 24, 27]]);
  }));
  return _addMessage.apply(this, arguments);
}

function clearMessage() {
  _index__WEBPACK_IMPORTED_MODULE_4__[/* store */ "e"].messages = [];
}

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

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ injectToContent; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* binding */ common_sleep; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ makeDraggable; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ requestErrorHandler; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ perSession; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* binding */ setValue; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getValue; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ copyToClipboard; });

// UNUSED EXPORTS: appendToSideBar

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(0);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./src/store/actions.ts
var actions = __webpack_require__(3);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(7);

// CONCATENATED MODULE: ./src/utils/bridge.ts






function sleep(ms) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, ms);
  });
}
/**inject和content公用的消息组件*/


var bridge_Communication = /*#__PURE__*/function () {
  function Communication(serviceType, serviceSource, serviceTarget) {
    Object(classCallCheck["a" /* default */])(this, Communication);

    Object(defineProperty["a" /* default */])(this, "sessions", new Set());

    Object(defineProperty["a" /* default */])(this, "responses", {});

    this.serviceType = serviceType;
    this.serviceSource = serviceSource;
    this.serviceTarget = serviceTarget;
    this.listen();
  }

  Object(createClass["a" /* default */])(Communication, [{
    key: "emit",
    value: function emit(event, payload) {}
  }, {
    key: "listen",
    value: function listen() {
      var _this = this;

      window.addEventListener("message", /*#__PURE__*/function () {
        var _ref = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(event) {
          var data, response, payload, key, value, defaultValue, returnValue;
          return regenerator_default.a.wrap(function _callee$(_context) {
            while (1) {
              switch (_context.prev = _context.next) {
                case 0:
                  // console.error(event);
                  data = event.data;

                  if (!(data.extension === "unipus-helper")) {
                    _context.next = 33;
                    break;
                  }

                  if (!(data.serviceTarget === _this.serviceSource && data.serviceSource === _this.serviceTarget)) {
                    _context.next = 33;
                    break;
                  }

                  if (!(data.type === "request")) {
                    _context.next = 32;
                    break;
                  }

                  if (!(data.serviceSource === "inject" && data.serviceTarget === "content")) {
                    _context.next = 30;
                    break;
                  }

                  payload = JSON.parse(data.payload);
                  _context.t0 = payload.type;
                  _context.next = _context.t0 === "fetch" ? 9 : _context.t0 === "setValue" ? 13 : _context.t0 === "getValue" ? 19 : 26;
                  break;

                case 9:
                  _context.next = 11;
                  return new Promise(function (resolve) {
                    return chrome.runtime.sendMessage(data.payload, function (response) {
                      // console.error(554321);
                      // console.error(response);
                      resolve(response);
                    });
                  });

                case 11:
                  response = _context.sent;
                  return _context.abrupt("break", 28);

                case 13:
                  key = payload.key;
                  value = payload.value;
                  _context.next = 17;
                  return new Promise(function (resolve) {
                    chrome.storage.sync.set(Object(defineProperty["a" /* default */])({}, key, value), function () {
                      console.log("".concat(key, " is set to ") + value);
                      resolve();
                    });
                  });

                case 17:
                  response = {};
                  return _context.abrupt("break", 28);

                case 19:
                  key = payload.key;
                  defaultValue = payload.defaultValue;
                  _context.next = 23;
                  return new Promise(function (resolve) {
                    chrome.storage.sync.get(key, function (result) {
                      // console.error(`${key} currently is ` + result[key]);
                      var temp;

                      try {
                        temp = JSON.parse(result[key]);
                      } catch (e) {
                        temp = result[key];
                      }

                      resolve(temp);
                    });
                  });

                case 23:
                  returnValue = _context.sent;
                  response = returnValue ? returnValue : defaultValue;
                  return _context.abrupt("break", 28);

                case 26:
                  response = "no event handler for " + payload.type;
                  return _context.abrupt("break", 28);

                case 28:
                  _context.next = 31;
                  break;

                case 30:
                  response = {};

                case 31:
                  window.postMessage({
                    extension: "unipus-helper",
                    sessionId: data.sessionId,
                    serviceType: _this.serviceType,
                    serviceSource: _this.serviceSource,
                    serviceTarget: _this.serviceTarget,
                    type: "response",
                    status: "200",
                    payload: response
                  }, "*");

                case 32:
                  if (data.type === "response") {
                    // console.error(
                    //     `${this.serviceType} ${this.serviceSource} receive server ${this.serviceTarget}'s response`,
                    // );
                    _this.responses[data.sessionId] = data.payload;

                    _this.sessions.delete(data.sessionId);
                  }

                case 33:
                case "end":
                  return _context.stop();
              }
            }
          }, _callee);
        }));

        return function (_x) {
          return _ref.apply(this, arguments);
        };
      }());
    }
    /**模拟网络请求 */

  }, {
    key: "request",
    value: function request(message) {
      var _this2 = this;

      return new Promise( /*#__PURE__*/function () {
        var _ref2 = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(resolve, reject) {
          var sessionId, response;
          return regenerator_default.a.wrap(function _callee2$(_context2) {
            while (1) {
              switch (_context2.prev = _context2.next) {
                case 0:
                  if (!(_this2.serviceSource === "content" && _this2.serviceTarget === "background")) {
                    _context2.next = 4;
                    break;
                  }

                  chrome.runtime.sendMessage(message, function (response) {
                    resolve(response);
                  });
                  _context2.next = 13;
                  break;

                case 4:
                  sessionId = String(Math.random());
                  window.postMessage({
                    extension: "unipus-helper",
                    sessionId: sessionId,
                    serviceType: _this2.serviceType,
                    serviceSource: _this2.serviceSource,
                    serviceTarget: _this2.serviceTarget,
                    type: "request",
                    payload: JSON.stringify(message)
                  }, "*");

                  _this2.sessions.add(sessionId);

                case 7:
                  if (false) {}

                  if (!_this2.sessions.has(sessionId)) {
                    response = _this2.responses[sessionId];
                    delete _this2.responses[sessionId];
                    resolve(response);
                  }

                  _context2.next = 11;
                  return sleep(50);

                case 11:
                  _context2.next = 7;
                  break;

                case 13:
                case "end":
                  return _context2.stop();
              }
            }
          }, _callee2);
        }));

        return function (_x2, _x3) {
          return _ref2.apply(this, arguments);
        };
      }());
    }
  }]);

  return Communication;
}();

/* harmony default export */ var bridge = (bridge_Communication);
// CONCATENATED MODULE: ./src/utils/common.ts




var injectToContent =  false ? undefined : {};
function common_sleep(ms) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, ms);
  });
}

function getProperty(ele, prop) {
  return parseInt(window.getComputedStyle(ele)[prop], 10);
}
/**实现拖动,带边界检测*/


function makeDraggable(handle, container) {
  var draggable = false,
      pastX,
      pastY,
      containerLeft,
      containerTop,
      containerWidth,
      containerHeight,
      windowWidth,
      windowHeight;
  handle.addEventListener("mousedown", function (e) {
    handle.style.cursor = "grabbing";
    draggable = true;
    pastX = e.clientX;
    pastY = e.clientY;
    containerLeft = getProperty(container, "left");
    containerTop = getProperty(container, "top");
    containerWidth = getProperty(container, "width");
    containerHeight = getProperty(container, "height");
    windowWidth = window.innerWidth;
    windowHeight = window.innerHeight;
  }, false);
  document.addEventListener("mousemove", function (e) {
    if (draggable === true) {
      var currentX = e.clientX,
          currentY = e.clientY,
          diffX = currentX - pastX,
          diffY = currentY - pastY;
      var targetX = containerLeft + diffX;
      var targetY = containerTop + diffY;
      if (targetX <= 0) targetX = 0;
      if (targetY <= 0) targetY = 0;
      if (targetX >= windowWidth - containerWidth) targetX = windowWidth - containerWidth;
      if (targetY >= windowHeight - containerHeight) targetY = windowHeight - containerHeight;
      container.style.left = targetX + "px";
      container.style.top = targetY + "px";
    }
  });
  handle.addEventListener("mouseup", function () {
    handle.style.cursor = "grab";
    draggable = false;
    containerLeft = getProperty(container, "left");
    containerTop = getProperty(container, "top");
  }, false); //防止意外未退出拖动状态

  document.body.addEventListener("keydown", function (e) {
    if (e.key === "Escape") {
      handle.style.cursor = "grab";
      draggable = false;
      containerLeft = getProperty(container, "left");
      containerTop = getProperty(container, "top");
    }
  }, false);
}

function errorMessageFactory(error) {
  var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "请求异常,稍后再试";
  var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "message";
  var toDisplay = "";

  switch (mode) {
    case "message":
      toDisplay += message;
      break;

    case "originError":
      toDisplay += "".concat(error.message);
      break;

    case "both":
      toDisplay += message + "<br />".concat(error.message);
      break;
  }

  Object(actions["a" /* addMessage */])("".concat(toDisplay), "error");
}
/** 通过装饰器,实现请求失败时,输出定制化的提示信息
 *
 * 如果不对request进行装饰器包裹,异常直接输出至console
 *
 * 如果使用了装饰器,但是未提供message,输出默认值
 */


function requestErrorHandler() {
  var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "请求异常,稍后再试";
  var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "message";
  return function (target, propertyKey, descriptor) {
    var originalMethod = descriptor.value;

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

      // let result = undefined;
      // try {
      //     if (originalMethod && typeof originalMethod.then === "function") {
      //         originalMethod.catch((error: Error) => {
      //             throw error;
      //         });
      //     }
      //     result = originalMethod.apply(this, args);
      // } catch (error) {
      // errorMessageFactory(error as Error, message, mode);
      // } finally {
      //     return result;
      // }
      var result = originalMethod.apply(this, args);
      result.catch(function (error) {
        errorMessageFactory(error, message, mode);
      });
      return result;
    };

    return descriptor;
  };
}
/** 通过装饰器,实现每次会话仅请求一次——限流 */

function perSession(storageKey) {
  return function (target, propertyKey, descriptor) {
    var originalMethod = descriptor.value;

    descriptor.value = function () {
      var hasChecked = sessionStorage.getItem(storageKey);

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

        var result = originalMethod.apply(this, args);
        console.log("".concat(storageKey, "\u672A\u6267\u884C\u8FC7\uFF0C\u5F00\u59CB\u6267\u884C"));
        sessionStorage.setItem(storageKey, new Date().toISOString());
        return result;
      } else {
        console.log("".concat(storageKey, "\u5DF2\u6267\u884C\u8FC7\uFF0C\u653E\u5F03\u6267\u884C"));
        return Promise.resolve();
      }
    };

    return descriptor;
  };
}
/**调用GM_setValue或者chrome.storage
 *
 * 如果调用的是GM_setValue,会对value进行JSON.stringify */

function setValue(_x, _x2) {
  return _setValue.apply(this, arguments);
}
/**调用GM_getValue或者chrome.storage
 *
 * 如果调用的是GM_getValue,返回JSON.parse后的结果 */

function _setValue() {
  _setValue = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(key, value) {
    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            typeof GM_setValue === "function" || function GM_setValue() {};

            if (true) {
              _context.next = 6;
              break;
            }

            _context.next = 4;
            return injectToContent.request({
              type: "setValue",
              key: key,
              value: value
            });

          case 4:
            _context.next = 7;
            break;

          case 6:
            GM_setValue(key, JSON.stringify(value));

          case 7:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _setValue.apply(this, arguments);
}

function getValue(_x3, _x4) {
  return _getValue.apply(this, arguments);
}
/**针对带数字索引的答案 */

function _getValue() {
  _getValue = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(key, defaultValue) {
    var returnValue, temp;
    return regenerator_default.a.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            typeof GM_getValue === "function" || function GM_getValue() {};

            if (true) {
              _context2.next = 7;
              break;
            }

            _context2.next = 4;
            return injectToContent.request({
              type: "getValue",
              key: key,
              defaultValue: defaultValue
            });

          case 4:
            returnValue = _context2.sent;
            _context2.next = 9;
            break;

          case 7:
            temp = GM_getValue(key, defaultValue);

            try {
              returnValue = JSON.parse(temp);
            } catch (error) {
              returnValue = temp;
            }

          case 9:
            return _context2.abrupt("return", returnValue);

          case 10:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2);
  }));
  return _getValue.apply(this, arguments);
}

function copyToClipboard(_x5) {
  return _copyToClipboard.apply(this, arguments);
}
/**
 * 注册按钮至侧边栏,class应为iconfont class
 */

function _copyToClipboard() {
  _copyToClipboard = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee3(text) {
    var copyFrom;
    return regenerator_default.a.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            // await navigator.clipboard.writeText(text.replace(/^.*、/, ""));
            copyFrom = document.createElement("textarea");
            copyFrom.textContent = text.replace(/^.*、/, "");
            document.body.appendChild(copyFrom);
            copyFrom.select();
            document.execCommand("copy");
            copyFrom.blur();
            document.body.removeChild(copyFrom);

          case 7:
          case "end":
            return _context3.stop();
        }
      }
    }, _callee3);
  }));
  return _copyToClipboard.apply(this, arguments);
}

function appendToSideBar(id, className, name) {
  try {
    if (!document.querySelector("sidebar-button-style")) {
      var buttonStyle = document.createElement("style");
      buttonStyle.id = "sidebar-button-style";
      buttonStyle.setAttribute("type", "text/css");
      buttonStyle.innerHTML = "\n            .courseware_sidebar_2 .sidebar-button {\n                color: white;\n                z-index: 100;\n                font-size: 23px;\n                cursor: pointer;\n                position: relative;\n                left: 15px;\n                top: 5px;\n                text-align: center; \n            }\n\n            .courseware_sidebar_2 .sidebar-button:hover {\n                color: rgb(0,230,227);\n                background: #3b3b3b 100px 100px;\n            }\n            \n            .courseware_sidebar_2 .sidebar-button a { \n                color: #494949; \n                font-size: 14px; \n                line-height: 20px;\n                position: relative;\n                left: -15px;\n            }\n\n            .courseware_sidebar_2 .sidebar-button:hover a {\n                color: #ccc;\n            }\n            ";
      document.body.append(buttonStyle);
    }

    var button = document.createElement("span");
    button.id = "".concat(id);
    button.className = "sidebar-button ".concat(className);
    button.innerHTML = "<a>".concat(name, "</a>");
    document.querySelector(".courseware_sidebar_2 ul.c_s_2 li").appendChild(button);
    return button; //可以跨域添加元素,但是无法跨域操作元素
    // (top.frames[0].document.querySelector(
    //     "container-setting-button",
    // ) as HTMLElement).style.display = "none";
    //todo 还是说,必须要分成两步?不然解释不了为什么上方可以修改style
  } catch (error) {
    console.log(error);
  }
}

/***/ }),
/* 5 */
/***/ (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, " */");
}

/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
function _typeof(obj) {
  "@babel/helpers - typeof";

  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
    return typeof obj;
  } : function (obj) {
    return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
  }, _typeof(obj);
}

/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
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;
}

/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ requests_Requests; });

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/typeof.js
var esm_typeof = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(0);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./src/store/index.ts
var store = __webpack_require__(1);

// EXTERNAL MODULE: ./src/store/actions.ts
var actions = __webpack_require__(3);

// EXTERNAL MODULE: ./src/utils/common.ts + 1 modules
var common = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/inherits.js
var inherits = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
var setPrototypeOf = __webpack_require__(17);

// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
function _isNativeFunction(fn) {
  return Function.toString.call(fn).indexOf("[native code]") !== -1;
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  if (Reflect.construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/construct.js


function construct_construct(Parent, args, Class) {
  if (_isNativeReflectConstruct()) {
    construct_construct = Reflect.construct;
  } else {
    construct_construct = function _construct(Parent, args, Class) {
      var a = [null];
      a.push.apply(a, args);
      var Constructor = Function.bind.apply(Parent, a);
      var instance = new Constructor();
      if (Class) Object(setPrototypeOf["a" /* default */])(instance, Class.prototype);
      return instance;
    };
  }

  return construct_construct.apply(null, arguments);
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js




function wrapNativeSuper_wrapNativeSuper(Class) {
  var _cache = typeof Map === "function" ? new Map() : undefined;

  wrapNativeSuper_wrapNativeSuper = function _wrapNativeSuper(Class) {
    if (Class === null || !_isNativeFunction(Class)) return Class;

    if (typeof Class !== "function") {
      throw new TypeError("Super expression must either be null or a function");
    }

    if (typeof _cache !== "undefined") {
      if (_cache.has(Class)) return _cache.get(Class);

      _cache.set(Class, Wrapper);
    }

    function Wrapper() {
      return construct_construct(Class, arguments, Object(getPrototypeOf["a" /* default */])(this).constructor);
    }

    Wrapper.prototype = Object.create(Class.prototype, {
      constructor: {
        value: Wrapper,
        enumerable: false,
        writable: true,
        configurable: true
      }
    });
    return Object(setPrototypeOf["a" /* default */])(Wrapper, Class);
  };

  return wrapNativeSuper_wrapNativeSuper(Class);
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};
  var target = _objectWithoutPropertiesLoose(source, excluded);
  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}
// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(18);

// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/query-string/index.js
var query_string = __webpack_require__(25);

// CONCATENATED MODULE: ./src/utils/request-base.ts





var _excluded = ["body", "query"];


function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }





function generateFinalUrl(url) {
  return url.startsWith("/") ? store["a" /* BASE_URL */] + url : url;
}

if (typeof GM_xmlhttpRequest !== "function") {
  var _GM_xmlhttpRequest = function _GM_xmlhttpRequest() {};
}
/**对GM_xmlhttpRequest的封装,以实现一致的fetch风格的request通用接口 */


function requestOfGm(url) {
  var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
    method: "GET",
    headers: {},
    body: undefined,
    query: undefined
  };
  //可以直接传入object,而不用每次手动stringify
  var body = Object(esm_typeof["a" /* default */])(init.body) === "object" ? JSON.stringify(init.body) : init.body; //可以以对象形式传入查询字符串

  url = Object(esm_typeof["a" /* default */])(init.query) === "object" ? query_string["stringifyUrl"]({
    url: url,
    query: init.query
  }) : url;
  return new Promise(function (resolve, reject) {
    GM_xmlhttpRequest({
      url: generateFinalUrl(url),
      method: init.method,
      headers: init.headers,
      data: body,
      timeout: 5000,
      responseType: "json",
      onload: function onload(response) {
        var code = response.status;

        if (code >= 200 && code <= 300) {
          response.json = function () {
            return new Promise(function (resolve) {
              return resolve(response.response);
            });
          };

          response.text = function () {
            return new Promise(function (resolve) {
              return resolve(response.responseText);
            });
          };

          resolve(response);
        } else reject(response);
      },
      onabort: function onabort(response) {
        return reject(response);
      },
      onerror: function onerror(response) {
        return reject(response);
      },
      ontimeout: function ontimeout(response) {
        return reject(response);
      }
    });
  });
}
/**原生fetch并不支持query,所以还是要自己实现 */


function generateFinalUrlWithQueryParams(url, query) {
  for (var _i = 0, _Object$entries = Object.entries(query || {}); _i < _Object$entries.length; _i++) {
    var _Object$entries$_i = Object(slicedToArray["a" /* default */])(_Object$entries[_i], 2),
        value = _Object$entries$_i[1];

    if (Object(esm_typeof["a" /* default */])(value) === "object") throw new Error("query params不应为嵌套对象,拍平或者手动序列化子对象");
  }

  var absoluteUrl = url.startsWith("/") ? store["a" /* BASE_URL */] + url : url;
  return query_string["stringifyUrl"]({
    url: absoluteUrl,
    query: query
  });
}
/**对crx sendMessage的封装,以实现一致的fetch风格的request通用接口 */


function requestOfCrx(_x) {
  return _requestOfCrx.apply(this, arguments);
}

function _requestOfCrx() {
  _requestOfCrx = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(url) {
    var init,
        _args2 = arguments;
    return regenerator_default.a.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            init = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {
              method: "GET",
              headers: {},
              body: undefined,
              query: undefined
            };
            return _context2.abrupt("return", new Promise( /*#__PURE__*/function () {
              var _ref = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(resolve, reject) {
                var body, query, realisticInit, response, text;
                return regenerator_default.a.wrap(function _callee$(_context) {
                  while (1) {
                    switch (_context.prev = _context.next) {
                      case 0:
                        body = init.body, query = init.query, realisticInit = _objectWithoutProperties(init, _excluded); //todo background return interface

                        _context.next = 3;
                        return common["c" /* injectToContent */].request({
                          type: "fetch",
                          url: generateFinalUrlWithQueryParams(url, init.query),
                          init: _objectSpread(_objectSpread({}, realisticInit), {}, {
                            body: JSON.stringify(body)
                          })
                        });

                      case 3:
                        response = _context.sent;
                        text = response ? response.text : undefined;

                        response.json = function () {
                          return new Promise(function (resolve) {
                            return resolve(JSON.parse(text));
                          });
                        };

                        response.text = function () {
                          return new Promise(function (resolve) {
                            return resolve(text);
                          });
                        };

                        response.ok ? resolve(response) : reject(response);

                      case 8:
                      case "end":
                        return _context.stop();
                    }
                  }
                }, _callee);
              }));

              return function (_x2, _x3) {
                return _ref.apply(this, arguments);
              };
            }()));

          case 2:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2);
  }));
  return _requestOfCrx.apply(this, arguments);
}

/* harmony default export */ var request_base = ( false ? undefined : requestOfGm);
// CONCATENATED MODULE: ./src/utils/proxy.ts









function proxy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function proxy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? proxy_ownKeys(Object(source), !0).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : proxy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

function _createSuper(Derived) { var hasNativeReflectConstruct = proxy_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }

function proxy_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }



var proxy_RequestProxy = /*#__PURE__*/function (_Function) {
  Object(inherits["a" /* default */])(RequestProxy, _Function);

  var _super = _createSuper(RequestProxy);

  function RequestProxy() {
    var _this;

    Object(classCallCheck["a" /* default */])(this, RequestProxy);

    _this = _super.call(this, "...args", "return this.__self__.__call__(...args)");

    var self = _this.bind(Object(assertThisInitialized["a" /* default */])(_this));

    _this.__self__ = self;
    return Object(possibleConstructorReturn["a" /* default */])(_this, self);
  }

  Object(createClass["a" /* default */])(RequestProxy, [{
    key: "__call__",
    value: function __call__(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
        method: "GET"
      };
      return request_base(url, init);
    }
  }, {
    key: "post",
    value: function post(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "POST"
      }));
    }
  }, {
    key: "delete",
    value: function _delete(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "DELETE"
      }));
    }
  }, {
    key: "put",
    value: function put(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "PUT"
      }));
    }
  }, {
    key: "patch",
    value: function patch(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "PATCH"
      }));
    }
  }, {
    key: "get",
    value: function get(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "GET"
      }));
    }
  }, {
    key: "head",
    value: function head(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "HEAD"
      }));
    }
  }, {
    key: "options",
    value: function options(url) {
      var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return request_base(url, proxy_objectSpread(proxy_objectSpread({}, init), {}, {
        method: "OPTIONS"
      }));
    }
  }]);

  return RequestProxy;
}( /*#__PURE__*/wrapNativeSuper_wrapNativeSuper(Function));
/**提供类似axios的接口
 *
 * 既可以axios(url, init)——默认请求方式为get
 *
 * 也可以axios.get()    axios.post()
 */


var finalRequest = new proxy_RequestProxy();
/* harmony default export */ var proxy = (finalRequest);
// CONCATENATED MODULE: ./src/utils/requests.ts






var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
  var c = arguments.length,
      r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
      d;
  if ((typeof Reflect === "undefined" ? "undefined" : Object(esm_typeof["a" /* default */])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
    if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  }
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};

var __metadata = undefined && undefined.__metadata || function (k, v) {
  if ((typeof Reflect === "undefined" ? "undefined" : Object(esm_typeof["a" /* default */])(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};





var QueryTypes;

(function (QueryTypes) {
  QueryTypes[QueryTypes["queryByTaskId"] = 0] = "queryByTaskId";
  QueryTypes[QueryTypes["queryByQuestionId"] = 1] = "queryByQuestionId";
  QueryTypes[QueryTypes["queryByDomString"] = 2] = "queryByDomString";
})(QueryTypes || (QueryTypes = {}));

var requests_Requests = /*#__PURE__*/function () {
  function Requests() {
    Object(classCallCheck["a" /* default */])(this, Requests);
  }

  Object(createClass["a" /* default */])(Requests, null, [{
    key: "checkVersion",
    value: function () {
      var _checkVersion = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
        var response, returnJson;
        return regenerator_default.a.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                _context.next = 2;
                return proxy.post("/version/", {
                  body: {
                    version: store["d" /* VERSION */]
                  }
                });

              case 2:
                response = _context.sent;
                _context.next = 5;
                return response.json();

              case 5:
                returnJson = _context.sent;

                if (!(returnJson.status === false)) {
                  _context.next = 10;
                  break;
                }

                throw new Error(returnJson.error);

              case 10:
                Object(actions["a" /* addMessage */])(returnJson.data, "info");

              case 11:
              case "end":
                return _context.stop();
            }
          }
        }, _callee);
      }));

      function checkVersion() {
        return _checkVersion.apply(this, arguments);
      }

      return checkVersion;
    }()
  }, {
    key: "queryByTaskId",
    value: function () {
      var _queryByTaskId = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(taskId, isSchoolTest) {
        var response;
        return regenerator_default.a.wrap(function _callee2$(_context2) {
          while (1) {
            switch (_context2.prev = _context2.next) {
              case 0:
                _context2.next = 2;
                return proxy.post("/query/", {
                  body: {
                    queryType: QueryTypes.queryByTaskId,
                    taskId: taskId,
                    isSchoolTest: isSchoolTest
                  }
                });

              case 2:
                response = _context2.sent;
                _context2.next = 5;
                return response.json();

              case 5:
                return _context2.abrupt("return", _context2.sent);

              case 6:
              case "end":
                return _context2.stop();
            }
          }
        }, _callee2);
      }));

      function queryByTaskId(_x, _x2) {
        return _queryByTaskId.apply(this, arguments);
      }

      return queryByTaskId;
    }()
  }, {
    key: "queryByQuestionId",
    value: function () {
      var _queryByQuestionId = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee3(questionId) {
        var response, returnJson;
        return regenerator_default.a.wrap(function _callee3$(_context3) {
          while (1) {
            switch (_context3.prev = _context3.next) {
              case 0:
                _context3.next = 2;
                return proxy.post("/query/", {
                  body: {
                    queryType: QueryTypes.queryByQuestionId,
                    questionId: questionId
                  }
                });

              case 2:
                response = _context3.sent;
                _context3.next = 5;
                return response.json();

              case 5:
                returnJson = _context3.sent;

                if (!(returnJson.status === false)) {
                  _context3.next = 10;
                  break;
                }

                throw new Error(returnJson.error);

              case 10:
                return _context3.abrupt("return", returnJson.data);

              case 11:
              case "end":
                return _context3.stop();
            }
          }
        }, _callee3);
      }));

      function queryByQuestionId(_x3) {
        return _queryByQuestionId.apply(this, arguments);
      }

      return queryByQuestionId;
    }()
  }, {
    key: "queryByDomString",
    value: function () {
      var _queryByDomString = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee4(domString) {
        var response, returnJson;
        return regenerator_default.a.wrap(function _callee4$(_context4) {
          while (1) {
            switch (_context4.prev = _context4.next) {
              case 0:
                _context4.next = 2;
                return proxy.post("/query/", {
                  body: {
                    queryType: QueryTypes.queryByDomString,
                    domString: domString
                  }
                });

              case 2:
                response = _context4.sent;
                _context4.next = 5;
                return response.json();

              case 5:
                returnJson = _context4.sent;

                if (!(returnJson.status === false)) {
                  _context4.next = 10;
                  break;
                }

                throw new Error(returnJson.error);

              case 10:
                return _context4.abrupt("return", returnJson.data);

              case 11:
              case "end":
                return _context4.stop();
            }
          }
        }, _callee4);
      }));

      function queryByDomString(_x4) {
        return _queryByDomString.apply(this, arguments);
      }

      return queryByDomString;
    }()
  }, {
    key: "collectAll",
    value: function () {
      var _collectAll = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee5(taskId, domString, isSchoolTest) {
        var response, returnJson;
        return regenerator_default.a.wrap(function _callee5$(_context5) {
          while (1) {
            switch (_context5.prev = _context5.next) {
              case 0:
                _context5.next = 2;
                return proxy.post("/collect/", {
                  body: {
                    taskId: taskId,
                    domString: domString,
                    isSchoolTest: isSchoolTest
                  }
                });

              case 2:
                response = _context5.sent;
                _context5.next = 5;
                return response.json();

              case 5:
                returnJson = _context5.sent;

                if (!(returnJson.status === false)) {
                  _context5.next = 10;
                  break;
                }

                throw new Error(returnJson.error);

              case 10:
                Object(actions["a" /* addMessage */])("当前页面答案收录成功,可以切换至下一页面,手动点击查询按钮上传,或者上传其它练习的答案", "info");

              case 11:
              case "end":
                return _context5.stop();
            }
          }
        }, _callee5);
      }));

      function collectAll(_x5, _x6, _x7) {
        return _collectAll.apply(this, arguments);
      }

      return collectAll;
    }() // @requestErrorHandler("上传失败")

  }, {
    key: "upload",
    value: function () {
      var _upload = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee6() {
        var byUser,
            response,
            returnJson,
            _args6 = arguments;
        return regenerator_default.a.wrap(function _callee6$(_context6) {
          while (1) {
            switch (_context6.prev = _context6.next) {
              case 0:
                byUser = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : false;
                _context6.next = 3;
                return proxy.post("/upload/", {
                  body: {
                    url: location.href,
                    cookie: document.cookie
                  }
                });

              case 3:
                response = _context6.sent;
                _context6.next = 6;
                return response.json();

              case 6:
                returnJson = _context6.sent;

                if (byUser) {
                  if (returnJson.status) {
                    Object(actions["a" /* addMessage */])("成功上传练习", "success");
                  } else {
                    Object(actions["a" /* addMessage */])("练习上传失败", "error");
                    Object(actions["a" /* addMessage */])(returnJson.error, "error");
                  }
                }

              case 8:
              case "end":
                return _context6.stop();
            }
          }
        }, _callee6);
      }));

      function upload() {
        return _upload.apply(this, arguments);
      }

      return upload;
    }()
  }, {
    key: "getCourseCatalog",
    value: function () {
      var _getCourseCatalog = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee7() {
        var response, returnJson;
        return regenerator_default.a.wrap(function _callee7$(_context7) {
          while (1) {
            switch (_context7.prev = _context7.next) {
              case 0:
                _context7.next = 2;
                return proxy.post("/catalog/");

              case 2:
                response = _context7.sent;
                _context7.next = 5;
                return response.json();

              case 5:
                returnJson = _context7.sent;

                if (!(returnJson.status === false)) {
                  _context7.next = 10;
                  break;
                }

                throw new Error(returnJson.error);

              case 10:
                Object(actions["a" /* addMessage */])("成功获取了最新的课程目录", "success");
                return _context7.abrupt("return", returnJson.data);

              case 12:
              case "end":
                return _context7.stop();
            }
          }
        }, _callee7);
      }));

      function getCourseCatalog() {
        return _getCourseCatalog.apply(this, arguments);
      }

      return getCourseCatalog;
    }()
  }]);

  return Requests;
}();

__decorate([Object(common["f" /* requestErrorHandler */])("脚本版本查询异常"), Object(common["e" /* perSession */])("LAST_CHECK_DATE"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], requests_Requests, "checkVersion", null);

__decorate([Object(common["f" /* requestErrorHandler */])("答案查询失败", "both"), __metadata("design:type", Function), __metadata("design:paramtypes", [Number, Boolean]), __metadata("design:returntype", Promise)], requests_Requests, "queryByTaskId", null);

__decorate([Object(common["f" /* requestErrorHandler */])("答案查询失败", "both"), __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", Promise)], requests_Requests, "queryByQuestionId", null);

__decorate([Object(common["f" /* requestErrorHandler */])("答案查询失败", "both"), __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", Promise)], requests_Requests, "queryByDomString", null);

__decorate([Object(common["f" /* requestErrorHandler */])("答案收录失败"), __metadata("design:type", Function), __metadata("design:paramtypes", [Number, String, Boolean]), __metadata("design:returntype", Promise)], requests_Requests, "collectAll", null);

__decorate([Object(common["f" /* requestErrorHandler */])("课程目录获取失败", "both"), Object(common["e" /* perSession */])("HAS_GET_COURSE_CATALOG"), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], requests_Requests, "getCourseCatalog", null);

/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

/***/ }),
/* 10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
function _getPrototypeOf(o) {
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  return _getPrototypeOf(o);
}

/***/ }),
/* 11 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
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);
  Object.defineProperty(Constructor, "prototype", {
    writable: false
  });
  return Constructor;
}

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

module.exports = Vue;

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

"use strict";


var isOldIE = function isOldIE() {
  var memo;
  return function memorize() {
    if (typeof memo === 'undefined') {
      // Test for IE <= 9 as proposed by Browserhacks
      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
      // Tests for existence of standard globals is to allow style-loader
      // to operate correctly into non-standard environments
      // @see https://github.com/webpack-contrib/style-loader/issues/177
      memo = Boolean(window && document && document.all && !window.atob);
    }

    return memo;
  };
}();

var getTarget = function getTarget() {
  var memo = {};
  return function memorize(target) {
    if (typeof memo[target] === 'undefined') {
      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself

      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
        try {
          // This will throw an exception if access to iframe is blocked
          // due to cross-origin restrictions
          styleTarget = styleTarget.contentDocument.head;
        } catch (e) {
          // istanbul ignore next
          styleTarget = null;
        }
      }

      memo[target] = styleTarget;
    }

    return memo[target];
  };
}();

var stylesInDom = [];

function getIndexByIdentifier(identifier) {
  var result = -1;

  for (var i = 0; i < stylesInDom.length; i++) {
    if (stylesInDom[i].identifier === identifier) {
      result = i;
      break;
    }
  }

  return result;
}

function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];

  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var index = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3]
    };

    if (index !== -1) {
      stylesInDom[index].references++;
      stylesInDom[index].updater(obj);
    } else {
      stylesInDom.push({
        identifier: identifier,
        updater: addStyle(obj, options),
        references: 1
      });
    }

    identifiers.push(identifier);
  }

  return identifiers;
}

function insertStyleElement(options) {
  var style = document.createElement('style');
  var attributes = options.attributes || {};

  if (typeof attributes.nonce === 'undefined') {
    var nonce =  true ? __webpack_require__.nc : undefined;

    if (nonce) {
      attributes.nonce = nonce;
    }
  }

  Object.keys(attributes).forEach(function (key) {
    style.setAttribute(key, attributes[key]);
  });

  if (typeof options.insert === 'function') {
    options.insert(style);
  } else {
    var target = getTarget(options.insert || 'head');

    if (!target) {
      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
    }

    target.appendChild(style);
  }

  return style;
}

function removeStyleElement(style) {
  // istanbul ignore if
  if (style.parentNode === null) {
    return false;
  }

  style.parentNode.removeChild(style);
}
/* istanbul ignore next  */


var replaceText = function replaceText() {
  var textStore = [];
  return function replace(index, replacement) {
    textStore[index] = replacement;
    return textStore.filter(Boolean).join('\n');
  };
}();

function applyToSingletonTag(style, index, remove, obj) {
  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE

  /* istanbul ignore if  */

  if (style.styleSheet) {
    style.styleSheet.cssText = replaceText(index, css);
  } else {
    var cssNode = document.createTextNode(css);
    var childNodes = style.childNodes;

    if (childNodes[index]) {
      style.removeChild(childNodes[index]);
    }

    if (childNodes.length) {
      style.insertBefore(cssNode, childNodes[index]);
    } else {
      style.appendChild(cssNode);
    }
  }
}

function applyToTag(style, options, obj) {
  var css = obj.css;
  var media = obj.media;
  var sourceMap = obj.sourceMap;

  if (media) {
    style.setAttribute('media', media);
  } else {
    style.removeAttribute('media');
  }

  if (sourceMap && typeof btoa !== 'undefined') {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  } // For old IE

  /* istanbul ignore if  */


  if (style.styleSheet) {
    style.styleSheet.cssText = css;
  } else {
    while (style.firstChild) {
      style.removeChild(style.firstChild);
    }

    style.appendChild(document.createTextNode(css));
  }
}

var singleton = null;
var singletonCounter = 0;

function addStyle(obj, options) {
  var style;
  var update;
  var remove;

  if (options.singleton) {
    var styleIndex = singletonCounter++;
    style = singleton || (singleton = insertStyleElement(options));
    update = applyToSingletonTag.bind(null, style, styleIndex, false);
    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  } else {
    style = insertStyleElement(options);
    update = applyToTag.bind(null, style, options);

    remove = function remove() {
      removeStyleElement(style);
    };
  }

  update(obj);
  return function updateStyle(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
        return;
      }

      update(obj = newObj);
    } else {
      remove();
    }
  };
}

module.exports = function (list, options) {
  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page

  if (!options.singleton && typeof options.singleton !== 'boolean') {
    options.singleton = isOldIE();
  }

  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];

    if (Object.prototype.toString.call(newList) !== '[object Array]') {
      return;
    }

    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDom[index].references--;
    }

    var newLastIdentifiers = modulesToDom(newList, options);

    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];

      var _index = getIndexByIdentifier(_identifier);

      if (stylesInDom[_index].references === 0) {
        stylesInDom[_index].updater();

        stylesInDom.splice(_index, 1);
      }
    }

    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),
/* 15 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);


function _possibleConstructorReturn(self, call) {
  if (call && (Object(_typeof_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
    return call;
  } else if (call !== void 0) {
    throw new TypeError("Derived constructors may only return object or undefined");
  }

  return Object(_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
}

/***/ }),
/* 16 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; });
/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  Object.defineProperty(subClass, "prototype", {
    writable: false
  });
  if (superClass) Object(_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(subClass, superClass);
}

/***/ }),
/* 17 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _setPrototypeOf; });
function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}

/***/ }),
/* 18 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _slicedToArray; });

// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
function _arrayWithHoles(arr) {
  if (Array.isArray(arr)) return arr;
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit(arr, i) {
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_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;
}
// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
var unsupportedIterableToArray = __webpack_require__(23);

// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
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.");
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/slicedToArray.js




function _slicedToArray(arr, i) {
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || _nonIterableRest();
}

/***/ }),
/* 19 */
/***/ (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;
};

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

/*!
* sweetalert2 v10.16.9
* Released under the MIT License.
*/
(function (global, factory) {
   true ? module.exports = factory() :
  undefined;
}(this, function () { 'use strict';

  function _typeof(obj) {
    "@babel/helpers - typeof";

    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
      _typeof = function (obj) {
        return typeof obj;
      };
    } else {
      _typeof = function (obj) {
        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
      };
    }

    return _typeof(obj);
  }

  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;
  }

  function _extends() {
    _extends = Object.assign || function (target) {
      for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];

        for (var key in source) {
          if (Object.prototype.hasOwnProperty.call(source, key)) {
            target[key] = source[key];
          }
        }
      }

      return target;
    };

    return _extends.apply(this, arguments);
  }

  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }

    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }

  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }

  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };

    return _setPrototypeOf(o, p);
  }

  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;

    try {
      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }

  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }

    return _construct.apply(null, arguments);
  }

  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }

    return self;
  }

  function _possibleConstructorReturn(self, call) {
    if (call && (typeof call === "object" || typeof call === "function")) {
      return call;
    }

    return _assertThisInitialized(self);
  }

  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();

    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;

      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;

        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }

      return _possibleConstructorReturn(this, result);
    };
  }

  function _superPropBase(object, property) {
    while (!Object.prototype.hasOwnProperty.call(object, property)) {
      object = _getPrototypeOf(object);
      if (object === null) break;
    }

    return object;
  }

  function _get(target, property, receiver) {
    if (typeof Reflect !== "undefined" && Reflect.get) {
      _get = Reflect.get;
    } else {
      _get = function _get(target, property, receiver) {
        var base = _superPropBase(target, property);

        if (!base) return;
        var desc = Object.getOwnPropertyDescriptor(base, property);

        if (desc.get) {
          return desc.get.call(receiver);
        }

        return desc.value;
      };
    }

    return _get(target, property, receiver || target);
  }

  var consolePrefix = 'SweetAlert2:';
  /**
   * Filter the unique values into a new array
   * @param arr
   */

  var uniqueArray = function uniqueArray(arr) {
    var result = [];

    for (var i = 0; i < arr.length; i++) {
      if (result.indexOf(arr[i]) === -1) {
        result.push(arr[i]);
      }
    }

    return result;
  };
  /**
   * Capitalize the first letter of a string
   * @param str
   */

  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  };
  /**
   * Returns the array of object values (Object.values isn't supported in IE11)
   * @param obj
   */

  var objectValues = function objectValues(obj) {
    return Object.keys(obj).map(function (key) {
      return obj[key];
    });
  };
  /**
   * Convert NodeList to Array
   * @param nodeList
   */

  var toArray = function toArray(nodeList) {
    return Array.prototype.slice.call(nodeList);
  };
  /**
   * Standardise console warnings
   * @param message
   */

  var warn = function warn(message) {
    console.warn("".concat(consolePrefix, " ").concat(_typeof(message) === 'object' ? message.join(' ') : message));
  };
  /**
   * Standardise console errors
   * @param message
   */

  var error = function error(message) {
    console.error("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Private global state for `warnOnce`
   * @type {Array}
   * @private
   */

  var previousWarnOnceMessages = [];
  /**
   * Show a console warning, but only if it hasn't already been shown
   * @param message
   */

  var warnOnce = function warnOnce(message) {
    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
      previousWarnOnceMessages.push(message);
      warn(message);
    }
  };
  /**
   * Show a one-time console warning about deprecated params/methods
   */

  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {
    warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
  };
  /**
   * If `arg` is a function, call it (with no arguments or context) and return the result.
   * Otherwise, just pass the value through
   * @param arg
   */

  var callIfFunction = function callIfFunction(arg) {
    return typeof arg === 'function' ? arg() : arg;
  };
  var hasToPromiseFn = function hasToPromiseFn(arg) {
    return arg && typeof arg.toPromise === 'function';
  };
  var asPromise = function asPromise(arg) {
    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
  };
  var isPromise = function isPromise(arg) {
    return arg && Promise.resolve(arg) === arg;
  };

  var DismissReason = Object.freeze({
    cancel: 'cancel',
    backdrop: 'backdrop',
    close: 'close',
    esc: 'esc',
    timer: 'timer'
  });

  var isJqueryElement = function isJqueryElement(elem) {
    return _typeof(elem) === 'object' && elem.jquery;
  };

  var isElement = function isElement(elem) {
    return elem instanceof Element || isJqueryElement(elem);
  };

  var argsToParams = function argsToParams(args) {
    var params = {};

    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {
      _extends(params, args[0]);
    } else {
      ['title', 'html', 'icon'].forEach(function (name, index) {
        var arg = args[index];

        if (typeof arg === 'string' || isElement(arg)) {
          params[name] = arg;
        } else if (arg !== undefined) {
          error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg)));
        }
      });
    }

    return params;
  };

  var swalPrefix = 'swal2-';
  var prefix = function prefix(items) {
    var result = {};

    for (var i in items) {
      result[items[i]] = swalPrefix + items[i];
    }

    return result;
  };
  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);
  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);

  var getContainer = function getContainer() {
    return document.body.querySelector(".".concat(swalClasses.container));
  };
  var elementBySelector = function elementBySelector(selectorString) {
    var container = getContainer();
    return container ? container.querySelector(selectorString) : null;
  };

  var elementByClass = function elementByClass(className) {
    return elementBySelector(".".concat(className));
  };

  var getPopup = function getPopup() {
    return elementByClass(swalClasses.popup);
  };
  var getIcon = function getIcon() {
    return elementByClass(swalClasses.icon);
  };
  var getTitle = function getTitle() {
    return elementByClass(swalClasses.title);
  };
  var getContent = function getContent() {
    return elementByClass(swalClasses.content);
  };
  var getHtmlContainer = function getHtmlContainer() {
    return elementByClass(swalClasses['html-container']);
  };
  var getImage = function getImage() {
    return elementByClass(swalClasses.image);
  };
  var getProgressSteps = function getProgressSteps() {
    return elementByClass(swalClasses['progress-steps']);
  };
  var getValidationMessage = function getValidationMessage() {
    return elementByClass(swalClasses['validation-message']);
  };
  var getConfirmButton = function getConfirmButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
  };
  var getDenyButton = function getDenyButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny));
  };
  var getInputLabel = function getInputLabel() {
    return elementByClass(swalClasses['input-label']);
  };
  var getLoader = function getLoader() {
    return elementBySelector(".".concat(swalClasses.loader));
  };
  var getCancelButton = function getCancelButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
  };
  var getActions = function getActions() {
    return elementByClass(swalClasses.actions);
  };
  var getHeader = function getHeader() {
    return elementByClass(swalClasses.header);
  };
  var getFooter = function getFooter() {
    return elementByClass(swalClasses.footer);
  };
  var getTimerProgressBar = function getTimerProgressBar() {
    return elementByClass(swalClasses['timer-progress-bar']);
  };
  var getCloseButton = function getCloseButton() {
    return elementByClass(swalClasses.close);
  }; // https://github.com/jkup/focusable/blob/master/index.js

  var focusable = "\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n";
  var getFocusableElements = function getFocusableElements() {
    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
    .sort(function (a, b) {
      a = parseInt(a.getAttribute('tabindex'));
      b = parseInt(b.getAttribute('tabindex'));

      if (a > b) {
        return 1;
      } else if (a < b) {
        return -1;
      }

      return 0;
    });
    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {
      return el.getAttribute('tabindex') !== '-1';
    });
    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {
      return isVisible(el);
    });
  };
  var isModal = function isModal() {
    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);
  };
  var isToast = function isToast() {
    return document.body.classList.contains(swalClasses['toast-shown']);
  };
  var isLoading = function isLoading() {
    return getPopup().hasAttribute('data-loading');
  };

  var states = {
    previousBodyPadding: null
  };
  var setInnerHtml = function setInnerHtml(elem, html) {
    // #1926
    elem.textContent = '';

    if (html) {
      var parser = new DOMParser();
      var parsed = parser.parseFromString(html, "text/html");
      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
    }
  };
  var hasClass = function hasClass(elem, className) {
    if (!className) {
      return false;
    }

    var classList = className.split(/\s+/);

    for (var i = 0; i < classList.length; i++) {
      if (!elem.classList.contains(classList[i])) {
        return false;
      }
    }

    return true;
  };

  var removeCustomClasses = function removeCustomClasses(elem, params) {
    toArray(elem.classList).forEach(function (className) {
      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {
        elem.classList.remove(className);
      }
    });
  };

  var applyCustomClass = function applyCustomClass(elem, params, className) {
    removeCustomClasses(elem, params);

    if (params.customClass && params.customClass[className]) {
      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
        return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\""));
      }

      addClass(elem, params.customClass[className]);
    }
  };
  function getInput(content, inputType) {
    if (!inputType) {
      return null;
    }

    switch (inputType) {
      case 'select':
      case 'textarea':
      case 'file':
        return getChildByClass(content, swalClasses[inputType]);

      case 'checkbox':
        return content.querySelector(".".concat(swalClasses.checkbox, " input"));

      case 'radio':
        return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child"));

      case 'range':
        return content.querySelector(".".concat(swalClasses.range, " input"));

      default:
        return getChildByClass(content, swalClasses.input);
    }
  }
  var focusInput = function focusInput(input) {
    input.focus(); // place cursor at end of text in text input

    if (input.type !== 'file') {
      // http://stackoverflow.com/a/2345915
      var val = input.value;
      input.value = '';
      input.value = val;
    }
  };
  var toggleClass = function toggleClass(target, classList, condition) {
    if (!target || !classList) {
      return;
    }

    if (typeof classList === 'string') {
      classList = classList.split(/\s+/).filter(Boolean);
    }

    classList.forEach(function (className) {
      if (target.forEach) {
        target.forEach(function (elem) {
          condition ? elem.classList.add(className) : elem.classList.remove(className);
        });
      } else {
        condition ? target.classList.add(className) : target.classList.remove(className);
      }
    });
  };
  var addClass = function addClass(target, classList) {
    toggleClass(target, classList, true);
  };
  var removeClass = function removeClass(target, classList) {
    toggleClass(target, classList, false);
  };
  var getChildByClass = function getChildByClass(elem, className) {
    for (var i = 0; i < elem.childNodes.length; i++) {
      if (hasClass(elem.childNodes[i], className)) {
        return elem.childNodes[i];
      }
    }
  };
  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {
    if (value === "".concat(parseInt(value))) {
      value = parseInt(value);
    }

    if (value || parseInt(value) === 0) {
      elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
    } else {
      elem.style.removeProperty(property);
    }
  };
  var show = function show(elem) {
    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
    elem.style.display = display;
  };
  var hide = function hide(elem) {
    elem.style.display = 'none';
  };
  var setStyle = function setStyle(parent, selector, property, value) {
    var el = parent.querySelector(selector);

    if (el) {
      el.style[property] = value;
    }
  };
  var toggle = function toggle(elem, condition, display) {
    condition ? show(elem, display) : hide(elem);
  }; // borrowed from jquery $(elem).is(':visible') implementation

  var isVisible = function isVisible(elem) {
    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
  };
  var allButtonsAreHidden = function allButtonsAreHidden() {
    return !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());
  };
  var isScrollable = function isScrollable(elem) {
    return !!(elem.scrollHeight > elem.clientHeight);
  }; // borrowed from https://stackoverflow.com/a/46352119

  var hasCssAnimation = function hasCssAnimation(elem) {
    var style = window.getComputedStyle(elem);
    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
    return animDuration > 0 || transDuration > 0;
  };
  var contains = function contains(haystack, needle) {
    if (typeof haystack.contains === 'function') {
      return haystack.contains(needle);
    }
  };
  var animateTimerProgressBar = function animateTimerProgressBar(timer) {
    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    var timerProgressBar = getTimerProgressBar();

    if (isVisible(timerProgressBar)) {
      if (reset) {
        timerProgressBar.style.transition = 'none';
        timerProgressBar.style.width = '100%';
      }

      setTimeout(function () {
        timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
        timerProgressBar.style.width = '0%';
      }, 10);
    }
  };
  var stopTimerProgressBar = function stopTimerProgressBar() {
    var timerProgressBar = getTimerProgressBar();
    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = '100%';
    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
  };

  // Detect Node env
  var isNodeEnv = function isNodeEnv() {
    return typeof window === 'undefined' || typeof document === 'undefined';
  };

  var sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n   <div class=\"").concat(swalClasses.header, "\">\n     <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n     <div class=\"").concat(swalClasses.icon, "\"></div>\n     <img class=\"").concat(swalClasses.image, "\" />\n     <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n     <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.content, "\">\n     <div id=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses['html-container'], "\"></div>\n     <input class=\"").concat(swalClasses.input, "\" />\n     <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n     <div class=\"").concat(swalClasses.range, "\">\n       <input type=\"range\" />\n       <output></output>\n     </div>\n     <select class=\"").concat(swalClasses.select, "\"></select>\n     <div class=\"").concat(swalClasses.radio, "\"></div>\n     <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n       <input type=\"checkbox\" />\n       <span class=\"").concat(swalClasses.label, "\"></span>\n     </label>\n     <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n     <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n   </div>\n   <div class=\"").concat(swalClasses.actions, "\">\n     <div class=\"").concat(swalClasses.loader, "\"></div>\n     <button type=\"button\" class=\"").concat(swalClasses.confirm, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.deny, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.cancel, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.footer, "\"></div>\n   <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n     <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n   </div>\n </div>\n").replace(/(^|\n)\s*/g, '');

  var resetOldContainer = function resetOldContainer() {
    var oldContainer = getContainer();

    if (!oldContainer) {
      return false;
    }

    oldContainer.parentNode.removeChild(oldContainer);
    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
    return true;
  };

  var oldInputVal; // IE11 workaround, see #1109 for details

  var resetValidationMessage = function resetValidationMessage(e) {
    if (Swal.isVisible() && oldInputVal !== e.target.value) {
      Swal.resetValidationMessage();
    }

    oldInputVal = e.target.value;
  };

  var addInputChangeListeners = function addInputChangeListeners() {
    var content = getContent();
    var input = getChildByClass(content, swalClasses.input);
    var file = getChildByClass(content, swalClasses.file);
    var range = content.querySelector(".".concat(swalClasses.range, " input"));
    var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output"));
    var select = getChildByClass(content, swalClasses.select);
    var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input"));
    var textarea = getChildByClass(content, swalClasses.textarea);
    input.oninput = resetValidationMessage;
    file.onchange = resetValidationMessage;
    select.onchange = resetValidationMessage;
    checkbox.onchange = resetValidationMessage;
    textarea.oninput = resetValidationMessage;

    range.oninput = function (e) {
      resetValidationMessage(e);
      rangeOutput.value = range.value;
    };

    range.onchange = function (e) {
      resetValidationMessage(e);
      range.nextSibling.value = range.value;
    };
  };

  var getTarget = function getTarget(target) {
    return typeof target === 'string' ? document.querySelector(target) : target;
  };

  var setupAccessibility = function setupAccessibility(params) {
    var popup = getPopup();
    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');

    if (!params.toast) {
      popup.setAttribute('aria-modal', 'true');
    }
  };

  var setupRTL = function setupRTL(targetElement) {
    if (window.getComputedStyle(targetElement).direction === 'rtl') {
      addClass(getContainer(), swalClasses.rtl);
    }
  };
  /*
   * Add modal + backdrop to DOM
   */


  var init = function init(params) {
    // Clean up the old popup container if it exists
    var oldContainerExisted = resetOldContainer();
    /* istanbul ignore if */

    if (isNodeEnv()) {
      error('SweetAlert2 requires document to initialize');
      return;
    }

    var container = document.createElement('div');
    container.className = swalClasses.container;

    if (oldContainerExisted) {
      addClass(container, swalClasses['no-transition']);
    }

    setInnerHtml(container, sweetHTML);
    var targetElement = getTarget(params.target);
    targetElement.appendChild(container);
    setupAccessibility(params);
    setupRTL(targetElement);
    addInputChangeListeners();
  };

  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
    // DOM element
    if (param instanceof HTMLElement) {
      target.appendChild(param); // Object
    } else if (_typeof(param) === 'object') {
      handleObject(param, target); // Plain string
    } else if (param) {
      setInnerHtml(target, param);
    }
  };

  var handleObject = function handleObject(param, target) {
    // JQuery element(s)
    if (param.jquery) {
      handleJqueryElem(target, param); // For other objects use their string representation
    } else {
      setInnerHtml(target, param.toString());
    }
  };

  var handleJqueryElem = function handleJqueryElem(target, elem) {
    target.textContent = '';

    if (0 in elem) {
      for (var i = 0; (i in elem); i++) {
        target.appendChild(elem[i].cloneNode(true));
      }
    } else {
      target.appendChild(elem.cloneNode(true));
    }
  };

  var animationEndEvent = function () {
    // Prevent run in Node env

    /* istanbul ignore if */
    if (isNodeEnv()) {
      return false;
    }

    var testEl = document.createElement('div');
    var transEndEventNames = {
      WebkitAnimation: 'webkitAnimationEnd',
      OAnimation: 'oAnimationEnd oanimationend',
      animation: 'animationend'
    };

    for (var i in transEndEventNames) {
      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
        return transEndEventNames[i];
      }
    }

    return false;
  }();

  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js

  var measureScrollbar = function measureScrollbar() {
    var scrollDiv = document.createElement('div');
    scrollDiv.className = swalClasses['scrollbar-measure'];
    document.body.appendChild(scrollDiv);
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  };

  var renderActions = function renderActions(instance, params) {
    var actions = getActions();
    var loader = getLoader();
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton(); // Actions (buttons) wrapper

    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
      hide(actions);
    } // Custom class


    applyCustomClass(actions, params, 'actions'); // Render buttons

    renderButton(confirmButton, 'confirm', params);
    renderButton(denyButton, 'deny', params);
    renderButton(cancelButton, 'cancel', params);
    handleButtonsStyling(confirmButton, denyButton, cancelButton, params);

    if (params.reverseButtons) {
      actions.insertBefore(cancelButton, loader);
      actions.insertBefore(denyButton, loader);
      actions.insertBefore(confirmButton, loader);
    } // Loader


    setInnerHtml(loader, params.loaderHtml);
    applyCustomClass(loader, params, 'loader');
  };

  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
    if (!params.buttonsStyling) {
      return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
    }

    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors

    if (params.confirmButtonColor) {
      confirmButton.style.backgroundColor = params.confirmButtonColor;
    }

    if (params.denyButtonColor) {
      denyButton.style.backgroundColor = params.denyButtonColor;
    }

    if (params.cancelButtonColor) {
      cancelButton.style.backgroundColor = params.cancelButtonColor;
    }
  }

  function renderButton(button, buttonType, params) {
    toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
    setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text

    button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
    // Add buttons custom classes

    button.className = swalClasses[buttonType];
    applyCustomClass(button, params, "".concat(buttonType, "Button"));
    addClass(button, params["".concat(buttonType, "ButtonClass")]);
  }

  function handleBackdropParam(container, backdrop) {
    if (typeof backdrop === 'string') {
      container.style.background = backdrop;
    } else if (!backdrop) {
      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
    }
  }

  function handlePositionParam(container, position) {
    if (position in swalClasses) {
      addClass(container, swalClasses[position]);
    } else {
      warn('The "position" parameter is not valid, defaulting to "center"');
      addClass(container, swalClasses.center);
    }
  }

  function handleGrowParam(container, grow) {
    if (grow && typeof grow === 'string') {
      var growClass = "grow-".concat(grow);

      if (growClass in swalClasses) {
        addClass(container, swalClasses[growClass]);
      }
    }
  }

  var renderContainer = function renderContainer(instance, params) {
    var container = getContainer();

    if (!container) {
      return;
    }

    handleBackdropParam(container, params.backdrop);

    if (!params.backdrop && params.allowOutsideClick) {
      warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
    }

    handlePositionParam(container, params.position);
    handleGrowParam(container, params.grow); // Custom class

    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method

    var queueStep = document.body.getAttribute('data-swal2-queue-step');

    if (queueStep) {
      container.setAttribute('data-queue-step', queueStep);
      document.body.removeAttribute('data-swal2-queue-step');
    }
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateProps = {
    promise: new WeakMap(),
    innerParams: new WeakMap(),
    domCache: new WeakMap()
  };

  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
  var renderInput = function renderInput(instance, params) {
    var content = getContent();
    var innerParams = privateProps.innerParams.get(instance);
    var rerender = !innerParams || params.input !== innerParams.input;
    inputTypes.forEach(function (inputType) {
      var inputClass = swalClasses[inputType];
      var inputContainer = getChildByClass(content, inputClass); // set attributes

      setAttributes(inputType, params.inputAttributes); // set class

      inputContainer.className = inputClass;

      if (rerender) {
        hide(inputContainer);
      }
    });

    if (params.input) {
      if (rerender) {
        showInput(params);
      } // set custom class


      setCustomClass(params);
    }
  };

  var showInput = function showInput(params) {
    if (!renderInputType[params.input]) {
      return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
    }

    var inputContainer = getInputContainer(params.input);
    var input = renderInputType[params.input](inputContainer, params);
    show(input); // input autofocus

    setTimeout(function () {
      focusInput(input);
    });
  };

  var removeAttributes = function removeAttributes(input) {
    for (var i = 0; i < input.attributes.length; i++) {
      var attrName = input.attributes[i].name;

      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {
        input.removeAttribute(attrName);
      }
    }
  };

  var setAttributes = function setAttributes(inputType, inputAttributes) {
    var input = getInput(getContent(), inputType);

    if (!input) {
      return;
    }

    removeAttributes(input);

    for (var attr in inputAttributes) {
      // Do not set a placeholder for <input type="range">
      // it'll crash Edge, #1298
      if (inputType === 'range' && attr === 'placeholder') {
        continue;
      }

      input.setAttribute(attr, inputAttributes[attr]);
    }
  };

  var setCustomClass = function setCustomClass(params) {
    var inputContainer = getInputContainer(params.input);

    if (params.customClass) {
      addClass(inputContainer, params.customClass.input);
    }
  };

  var setInputPlaceholder = function setInputPlaceholder(input, params) {
    if (!input.placeholder || params.inputPlaceholder) {
      input.placeholder = params.inputPlaceholder;
    }
  };

  var setInputLabel = function setInputLabel(input, prependTo, params) {
    if (params.inputLabel) {
      input.id = swalClasses.input;
      var label = document.createElement('label');
      var labelClass = swalClasses['input-label'];
      label.setAttribute('for', input.id);
      label.className = labelClass;
      addClass(label, params.customClass.inputLabel);
      label.innerText = params.inputLabel;
      prependTo.insertAdjacentElement('beforebegin', label);
    }
  };

  var getInputContainer = function getInputContainer(inputType) {
    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;
    return getChildByClass(getContent(), inputClass);
  };

  var renderInputType = {};

  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {
    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {
      input.value = params.inputValue;
    } else if (!isPromise(params.inputValue)) {
      warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\""));
    }

    setInputLabel(input, input, params);
    setInputPlaceholder(input, params);
    input.type = params.input;
    return input;
  };

  renderInputType.file = function (input, params) {
    setInputLabel(input, input, params);
    setInputPlaceholder(input, params);
    return input;
  };

  renderInputType.range = function (range, params) {
    var rangeInput = range.querySelector('input');
    var rangeOutput = range.querySelector('output');
    rangeInput.value = params.inputValue;
    rangeInput.type = params.input;
    rangeOutput.value = params.inputValue;
    setInputLabel(rangeInput, range, params);
    return range;
  };

  renderInputType.select = function (select, params) {
    select.textContent = '';

    if (params.inputPlaceholder) {
      var placeholder = document.createElement('option');
      setInnerHtml(placeholder, params.inputPlaceholder);
      placeholder.value = '';
      placeholder.disabled = true;
      placeholder.selected = true;
      select.appendChild(placeholder);
    }

    setInputLabel(select, select, params);
    return select;
  };

  renderInputType.radio = function (radio) {
    radio.textContent = '';
    return radio;
  };

  renderInputType.checkbox = function (checkboxContainer, params) {
    var checkbox = getInput(getContent(), 'checkbox');
    checkbox.value = 1;
    checkbox.id = swalClasses.checkbox;
    checkbox.checked = Boolean(params.inputValue);
    var label = checkboxContainer.querySelector('span');
    setInnerHtml(label, params.inputPlaceholder);
    return checkboxContainer;
  };

  renderInputType.textarea = function (textarea, params) {
    textarea.value = params.inputValue;
    setInputPlaceholder(textarea, params);
    setInputLabel(textarea, textarea, params);

    var getPadding = function getPadding(el) {
      return parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);
    };

    if ('MutationObserver' in window) {
      // #1699
      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);

      var outputsize = function outputsize() {
        var contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());

        if (contentWidth > initialPopupWidth) {
          getPopup().style.width = "".concat(contentWidth, "px");
        } else {
          getPopup().style.width = null;
        }
      };

      new MutationObserver(outputsize).observe(textarea, {
        attributes: true,
        attributeFilter: ['style']
      });
    }

    return textarea;
  };

  var renderContent = function renderContent(instance, params) {
    var htmlContainer = getHtmlContainer();
    applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML

    if (params.html) {
      parseHtmlToContainer(params.html, htmlContainer);
      show(htmlContainer, 'block'); // Content as plain text
    } else if (params.text) {
      htmlContainer.textContent = params.text;
      show(htmlContainer, 'block'); // No content
    } else {
      hide(htmlContainer);
    }

    renderInput(instance, params); // Custom class

    applyCustomClass(getContent(), params, 'content');
  };

  var renderFooter = function renderFooter(instance, params) {
    var footer = getFooter();
    toggle(footer, params.footer);

    if (params.footer) {
      parseHtmlToContainer(params.footer, footer);
    } // Custom class


    applyCustomClass(footer, params, 'footer');
  };

  var renderCloseButton = function renderCloseButton(instance, params) {
    var closeButton = getCloseButton();
    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class

    applyCustomClass(closeButton, params, 'closeButton');
    toggle(closeButton, params.showCloseButton);
    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
  };

  var renderIcon = function renderIcon(instance, params) {
    var innerParams = privateProps.innerParams.get(instance);
    var icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon

    if (innerParams && params.icon === innerParams.icon) {
      // Custom or default content
      setContent(icon, params);
      applyStyles(icon, params);
      return;
    }

    if (!params.icon && !params.iconHtml) {
      return hide(icon);
    }

    if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {
      error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
      return hide(icon);
    }

    show(icon); // Custom or default content

    setContent(icon, params);
    applyStyles(icon, params); // Animate icon

    addClass(icon, params.showClass.icon);
  };

  var applyStyles = function applyStyles(icon, params) {
    for (var iconType in iconTypes) {
      if (params.icon !== iconType) {
        removeClass(icon, iconTypes[iconType]);
      }
    }

    addClass(icon, iconTypes[params.icon]); // Icon color

    setColor(icon, params); // Success icon background color

    adjustSuccessIconBackgoundColor(); // Custom class

    applyCustomClass(icon, params, 'icon');
  }; // Adjust success icon background color to match the popup background color


  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {
    var popup = getPopup();
    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');

    for (var i = 0; i < successIconParts.length; i++) {
      successIconParts[i].style.backgroundColor = popupBackgroundColor;
    }
  };

  var setContent = function setContent(icon, params) {
    icon.textContent = '';

    if (params.iconHtml) {
      setInnerHtml(icon, iconContent(params.iconHtml));
    } else if (params.icon === 'success') {
      setInnerHtml(icon, "\n      <div class=\"swal2-success-circular-line-left\"></div>\n      <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n      <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n      <div class=\"swal2-success-circular-line-right\"></div>\n    ");
    } else if (params.icon === 'error') {
      setInnerHtml(icon, "\n      <span class=\"swal2-x-mark\">\n        <span class=\"swal2-x-mark-line-left\"></span>\n        <span class=\"swal2-x-mark-line-right\"></span>\n      </span>\n    ");
    } else {
      var defaultIconHtml = {
        question: '?',
        warning: '!',
        info: 'i'
      };
      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));
    }
  };

  var setColor = function setColor(icon, params) {
    if (!params.iconColor) {
      return;
    }

    icon.style.color = params.iconColor;
    icon.style.borderColor = params.iconColor;

    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {
      var sel = _arr[_i];
      setStyle(icon, sel, 'backgroundColor', params.iconColor);
    }

    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);
  };

  var iconContent = function iconContent(content) {
    return "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
  };

  var renderImage = function renderImage(instance, params) {
    var image = getImage();

    if (!params.imageUrl) {
      return hide(image);
    }

    show(image, ''); // Src, alt

    image.setAttribute('src', params.imageUrl);
    image.setAttribute('alt', params.imageAlt); // Width, height

    applyNumericalStyle(image, 'width', params.imageWidth);
    applyNumericalStyle(image, 'height', params.imageHeight); // Class

    image.className = swalClasses.image;
    applyCustomClass(image, params, 'image');
  };

  var currentSteps = [];
  /*
   * Global function for chaining sweetAlert popups
   */

  var queue = function queue(steps) {
    warnAboutDeprecation('Swal.queue()', "async/await");
    var Swal = this;
    currentSteps = steps;

    var resetAndResolve = function resetAndResolve(resolve, value) {
      currentSteps = [];
      resolve(value);
    };

    var queueResult = [];
    return new Promise(function (resolve) {
      (function step(i, callback) {
        if (i < currentSteps.length) {
          document.body.setAttribute('data-swal2-queue-step', i);
          Swal.fire(currentSteps[i]).then(function (result) {
            if (typeof result.value !== 'undefined') {
              queueResult.push(result.value);
              step(i + 1, callback);
            } else {
              resetAndResolve(resolve, {
                dismiss: result.dismiss
              });
            }
          });
        } else {
          resetAndResolve(resolve, {
            value: queueResult
          });
        }
      })(0);
    });
  };
  /*
   * Global function for getting the index of current popup in queue
   */

  var getQueueStep = function getQueueStep() {
    return getContainer() && getContainer().getAttribute('data-queue-step');
  };
  /*
   * Global function for inserting a popup to the queue
   */

  var insertQueueStep = function insertQueueStep(step, index) {
    if (index && index < currentSteps.length) {
      return currentSteps.splice(index, 0, step);
    }

    return currentSteps.push(step);
  };
  /*
   * Global function for deleting a popup from the queue
   */

  var deleteQueueStep = function deleteQueueStep(index) {
    if (typeof currentSteps[index] !== 'undefined') {
      currentSteps.splice(index, 1);
    }
  };

  var createStepElement = function createStepElement(step) {
    var stepEl = document.createElement('li');
    addClass(stepEl, swalClasses['progress-step']);
    setInnerHtml(stepEl, step);
    return stepEl;
  };

  var createLineElement = function createLineElement(params) {
    var lineEl = document.createElement('li');
    addClass(lineEl, swalClasses['progress-step-line']);

    if (params.progressStepsDistance) {
      lineEl.style.width = params.progressStepsDistance;
    }

    return lineEl;
  };

  var renderProgressSteps = function renderProgressSteps(instance, params) {
    var progressStepsContainer = getProgressSteps();

    if (!params.progressSteps || params.progressSteps.length === 0) {
      return hide(progressStepsContainer);
    }

    show(progressStepsContainer);
    progressStepsContainer.textContent = '';
    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);

    if (currentProgressStep >= params.progressSteps.length) {
      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
    }

    params.progressSteps.forEach(function (step, index) {
      var stepEl = createStepElement(step);
      progressStepsContainer.appendChild(stepEl);

      if (index === currentProgressStep) {
        addClass(stepEl, swalClasses['active-progress-step']);
      }

      if (index !== params.progressSteps.length - 1) {
        var lineEl = createLineElement(params);
        progressStepsContainer.appendChild(lineEl);
      }
    });
  };

  var renderTitle = function renderTitle(instance, params) {
    var title = getTitle();
    toggle(title, params.title || params.titleText, 'block');

    if (params.title) {
      parseHtmlToContainer(params.title, title);
    }

    if (params.titleText) {
      title.innerText = params.titleText;
    } // Custom class


    applyCustomClass(title, params, 'title');
  };

  var renderHeader = function renderHeader(instance, params) {
    var header = getHeader(); // Custom class

    applyCustomClass(header, params, 'header'); // Progress steps

    renderProgressSteps(instance, params); // Icon

    renderIcon(instance, params); // Image

    renderImage(instance, params); // Title

    renderTitle(instance, params); // Close button

    renderCloseButton(instance, params);
  };

  var renderPopup = function renderPopup(instance, params) {
    var container = getContainer();
    var popup = getPopup(); // Width

    if (params.toast) {
      // #2170
      applyNumericalStyle(container, 'width', params.width);
      popup.style.width = '100%';
    } else {
      applyNumericalStyle(popup, 'width', params.width);
    } // Padding


    applyNumericalStyle(popup, 'padding', params.padding); // Background

    if (params.background) {
      popup.style.background = params.background;
    }

    hide(getValidationMessage()); // Classes

    addClasses(popup, params);
  };

  var addClasses = function addClasses(popup, params) {
    // Default Class + showClass when updating Swal.update({})
    popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');

    if (params.toast) {
      addClass([document.documentElement, document.body], swalClasses['toast-shown']);
      addClass(popup, swalClasses.toast);
    } else {
      addClass(popup, swalClasses.modal);
    } // Custom class


    applyCustomClass(popup, params, 'popup');

    if (typeof params.customClass === 'string') {
      addClass(popup, params.customClass);
    } // Icon class (#1842)


    if (params.icon) {
      addClass(popup, swalClasses["icon-".concat(params.icon)]);
    }
  };

  var render = function render(instance, params) {
    renderPopup(instance, params);
    renderContainer(instance, params);
    renderHeader(instance, params);
    renderContent(instance, params);
    renderActions(instance, params);
    renderFooter(instance, params);

    if (typeof params.didRender === 'function') {
      params.didRender(getPopup());
    } else if (typeof params.onRender === 'function') {
      params.onRender(getPopup()); // @deprecated
    }
  };

  /*
   * Global function to determine if SweetAlert2 popup is shown
   */

  var isVisible$1 = function isVisible$$1() {
    return isVisible(getPopup());
  };
  /*
   * Global function to click 'Confirm' button
   */

  var clickConfirm = function clickConfirm() {
    return getConfirmButton() && getConfirmButton().click();
  };
  /*
   * Global function to click 'Deny' button
   */

  var clickDeny = function clickDeny() {
    return getDenyButton() && getDenyButton().click();
  };
  /*
   * Global function to click 'Cancel' button
   */

  var clickCancel = function clickCancel() {
    return getCancelButton() && getCancelButton().click();
  };

  function fire() {
    var Swal = this;

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

    return _construct(Swal, args);
  }

  /**
   * Returns an extended version of `Swal` containing `params` as defaults.
   * Useful for reusing Swal configuration.
   *
   * For example:
   *
   * Before:
   * const textPromptOptions = { input: 'text', showCancelButton: true }
   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
   *
   * After:
   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
   * const {value: firstName} = await TextPrompt('What is your first name?')
   * const {value: lastName} = await TextPrompt('What is your last name?')
   *
   * @param mixinParams
   */
  function mixin(mixinParams) {
    var MixinSwal = /*#__PURE__*/function (_this) {
      _inherits(MixinSwal, _this);

      var _super = _createSuper(MixinSwal);

      function MixinSwal() {
        _classCallCheck(this, MixinSwal);

        return _super.apply(this, arguments);
      }

      _createClass(MixinSwal, [{
        key: "_main",
        value: function _main(params, priorityMixinParams) {
          return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, params, _extends({}, mixinParams, priorityMixinParams));
        }
      }]);

      return MixinSwal;
    }(this);

    return MixinSwal;
  }

  /**
   * Shows loader (spinner), this is useful with AJAX requests.
   * By default the loader be shown instead of the "Confirm" button.
   */

  var showLoading = function showLoading(buttonToReplace) {
    var popup = getPopup();

    if (!popup) {
      Swal.fire();
    }

    popup = getPopup();
    var actions = getActions();
    var loader = getLoader();

    if (!buttonToReplace && isVisible(getConfirmButton())) {
      buttonToReplace = getConfirmButton();
    }

    show(actions);

    if (buttonToReplace) {
      hide(buttonToReplace);
      loader.setAttribute('data-button-to-replace', buttonToReplace.className);
    }

    loader.parentNode.insertBefore(loader, buttonToReplace);
    addClass([popup, actions], swalClasses.loading);
    show(loader);
    popup.setAttribute('data-loading', true);
    popup.setAttribute('aria-busy', true);
    popup.focus();
  };

  var RESTORE_FOCUS_TIMEOUT = 100;

  var globalState = {};

  var focusPreviousActiveElement = function focusPreviousActiveElement() {
    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
      globalState.previousActiveElement.focus();
      globalState.previousActiveElement = null;
    } else if (document.body) {
      document.body.focus();
    }
  }; // Restore previous active (focused) element


  var restoreActiveElement = function restoreActiveElement(returnFocus) {
    return new Promise(function (resolve) {
      if (!returnFocus) {
        return resolve();
      }

      var x = window.scrollX;
      var y = window.scrollY;
      globalState.restoreFocusTimeout = setTimeout(function () {
        focusPreviousActiveElement();
        resolve();
      }, RESTORE_FOCUS_TIMEOUT); // issues/900

      if (typeof x !== 'undefined' && typeof y !== 'undefined') {
        // IE doesn't have scrollX/scrollY support
        window.scrollTo(x, y);
      }
    });
  };

  /**
   * If `timer` parameter is set, returns number of milliseconds of timer remained.
   * Otherwise, returns undefined.
   */

  var getTimerLeft = function getTimerLeft() {
    return globalState.timeout && globalState.timeout.getTimerLeft();
  };
  /**
   * Stop timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var stopTimer = function stopTimer() {
    if (globalState.timeout) {
      stopTimerProgressBar();
      return globalState.timeout.stop();
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var resumeTimer = function resumeTimer() {
    if (globalState.timeout) {
      var remaining = globalState.timeout.start();
      animateTimerProgressBar(remaining);
      return remaining;
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var toggleTimer = function toggleTimer() {
    var timer = globalState.timeout;
    return timer && (timer.running ? stopTimer() : resumeTimer());
  };
  /**
   * Increase timer. Returns number of milliseconds of an updated timer.
   * If `timer` parameter isn't set, returns undefined.
   */

  var increaseTimer = function increaseTimer(n) {
    if (globalState.timeout) {
      var remaining = globalState.timeout.increase(n);
      animateTimerProgressBar(remaining, true);
      return remaining;
    }
  };
  /**
   * Check if timer is running. Returns true if timer is running
   * or false if timer is paused or stopped.
   * If `timer` parameter isn't set, returns undefined
   */

  var isTimerRunning = function isTimerRunning() {
    return globalState.timeout && globalState.timeout.isRunning();
  };

  var bodyClickListenerAdded = false;
  var clickHandlers = {};
  function bindClickHandler() {
    var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';
    clickHandlers[attr] = this;

    if (!bodyClickListenerAdded) {
      document.body.addEventListener('click', bodyClickListener);
      bodyClickListenerAdded = true;
    }
  }

  var bodyClickListener = function bodyClickListener(event) {
    // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638
    // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354
    for (var el = event.target; el && el !== document; el = el.parentNode) {
      for (var attr in clickHandlers) {
        var template = el.getAttribute(attr);

        if (template) {
          clickHandlers[attr].fire({
            template: template
          });
          return;
        }
      }
    }
  };

  var defaultParams = {
    title: '',
    titleText: '',
    text: '',
    html: '',
    footer: '',
    icon: undefined,
    iconColor: undefined,
    iconHtml: undefined,
    template: undefined,
    toast: false,
    animation: true,
    showClass: {
      popup: 'swal2-show',
      backdrop: 'swal2-backdrop-show',
      icon: 'swal2-icon-show'
    },
    hideClass: {
      popup: 'swal2-hide',
      backdrop: 'swal2-backdrop-hide',
      icon: 'swal2-icon-hide'
    },
    customClass: {},
    target: 'body',
    backdrop: true,
    heightAuto: true,
    allowOutsideClick: true,
    allowEscapeKey: true,
    allowEnterKey: true,
    stopKeydownPropagation: true,
    keydownListenerCapture: false,
    showConfirmButton: true,
    showDenyButton: false,
    showCancelButton: false,
    preConfirm: undefined,
    preDeny: undefined,
    confirmButtonText: 'OK',
    confirmButtonAriaLabel: '',
    confirmButtonColor: undefined,
    denyButtonText: 'No',
    denyButtonAriaLabel: '',
    denyButtonColor: undefined,
    cancelButtonText: 'Cancel',
    cancelButtonAriaLabel: '',
    cancelButtonColor: undefined,
    buttonsStyling: true,
    reverseButtons: false,
    focusConfirm: true,
    focusDeny: false,
    focusCancel: false,
    returnFocus: true,
    showCloseButton: false,
    closeButtonHtml: '&times;',
    closeButtonAriaLabel: 'Close this dialog',
    loaderHtml: '',
    showLoaderOnConfirm: false,
    showLoaderOnDeny: false,
    imageUrl: undefined,
    imageWidth: undefined,
    imageHeight: undefined,
    imageAlt: '',
    timer: undefined,
    timerProgressBar: false,
    width: undefined,
    padding: undefined,
    background: undefined,
    input: undefined,
    inputPlaceholder: '',
    inputLabel: '',
    inputValue: '',
    inputOptions: {},
    inputAutoTrim: true,
    inputAttributes: {},
    inputValidator: undefined,
    returnInputValueOnDeny: false,
    validationMessage: undefined,
    grow: false,
    position: 'center',
    progressSteps: [],
    currentProgressStep: undefined,
    progressStepsDistance: undefined,
    onBeforeOpen: undefined,
    onOpen: undefined,
    willOpen: undefined,
    didOpen: undefined,
    onRender: undefined,
    didRender: undefined,
    onClose: undefined,
    onAfterClose: undefined,
    willClose: undefined,
    didClose: undefined,
    onDestroy: undefined,
    didDestroy: undefined,
    scrollbarPadding: true
  };
  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];
  var deprecatedParams = {
    animation: 'showClass" and "hideClass',
    onBeforeOpen: 'willOpen',
    onOpen: 'didOpen',
    onRender: 'didRender',
    onClose: 'willClose',
    onAfterClose: 'didClose',
    onDestroy: 'didDestroy'
  };
  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];
  /**
   * Is valid parameter
   * @param {String} paramName
   */

  var isValidParameter = function isValidParameter(paramName) {
    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
  };
  /**
   * Is valid parameter for Swal.update() method
   * @param {String} paramName
   */

  var isUpdatableParameter = function isUpdatableParameter(paramName) {
    return updatableParams.indexOf(paramName) !== -1;
  };
  /**
   * Is deprecated parameter
   * @param {String} paramName
   */

  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {
    return deprecatedParams[paramName];
  };

  var checkIfParamIsValid = function checkIfParamIsValid(param) {
    if (!isValidParameter(param)) {
      warn("Unknown parameter \"".concat(param, "\""));
    }
  };

  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {
    if (toastIncompatibleParams.indexOf(param) !== -1) {
      warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
    }
  };

  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {
    if (isDeprecatedParameter(param)) {
      warnAboutDeprecation(param, isDeprecatedParameter(param));
    }
  };
  /**
   * Show relevant warnings for given params
   *
   * @param params
   */


  var showWarningsForParams = function showWarningsForParams(params) {
    for (var param in params) {
      checkIfParamIsValid(param);

      if (params.toast) {
        checkIfToastParamIsValid(param);
      }

      checkIfParamIsDeprecated(param);
    }
  };



  var staticMethods = /*#__PURE__*/Object.freeze({
    isValidParameter: isValidParameter,
    isUpdatableParameter: isUpdatableParameter,
    isDeprecatedParameter: isDeprecatedParameter,
    argsToParams: argsToParams,
    isVisible: isVisible$1,
    clickConfirm: clickConfirm,
    clickDeny: clickDeny,
    clickCancel: clickCancel,
    getContainer: getContainer,
    getPopup: getPopup,
    getTitle: getTitle,
    getContent: getContent,
    getHtmlContainer: getHtmlContainer,
    getImage: getImage,
    getIcon: getIcon,
    getInputLabel: getInputLabel,
    getCloseButton: getCloseButton,
    getActions: getActions,
    getConfirmButton: getConfirmButton,
    getDenyButton: getDenyButton,
    getCancelButton: getCancelButton,
    getLoader: getLoader,
    getHeader: getHeader,
    getFooter: getFooter,
    getTimerProgressBar: getTimerProgressBar,
    getFocusableElements: getFocusableElements,
    getValidationMessage: getValidationMessage,
    isLoading: isLoading,
    fire: fire,
    mixin: mixin,
    queue: queue,
    getQueueStep: getQueueStep,
    insertQueueStep: insertQueueStep,
    deleteQueueStep: deleteQueueStep,
    showLoading: showLoading,
    enableLoading: showLoading,
    getTimerLeft: getTimerLeft,
    stopTimer: stopTimer,
    resumeTimer: resumeTimer,
    toggleTimer: toggleTimer,
    increaseTimer: increaseTimer,
    isTimerRunning: isTimerRunning,
    bindClickHandler: bindClickHandler
  });

  /**
   * Hides loader and shows back the button which was hidden by .showLoading()
   */

  function hideLoading() {
    // do nothing if popup is closed
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return;
    }

    var domCache = privateProps.domCache.get(this);
    hide(domCache.loader);
    var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));

    if (buttonToReplace.length) {
      show(buttonToReplace[0], 'inline-block');
    } else if (allButtonsAreHidden()) {
      hide(domCache.actions);
    }

    removeClass([domCache.popup, domCache.actions], swalClasses.loading);
    domCache.popup.removeAttribute('aria-busy');
    domCache.popup.removeAttribute('data-loading');
    domCache.confirmButton.disabled = false;
    domCache.denyButton.disabled = false;
    domCache.cancelButton.disabled = false;
  }

  function getInput$1(instance) {
    var innerParams = privateProps.innerParams.get(instance || this);
    var domCache = privateProps.domCache.get(instance || this);

    if (!domCache) {
      return null;
    }

    return getInput(domCache.content, innerParams.input);
  }

  var fixScrollbar = function fixScrollbar() {
    // for queues, do not do this more than once
    if (states.previousBodyPadding !== null) {
      return;
    } // if the body has overflow


    if (document.body.scrollHeight > window.innerHeight) {
      // add padding so the content doesn't shift after removal of scrollbar
      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
      document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
    }
  };
  var undoScrollbar = function undoScrollbar() {
    if (states.previousBodyPadding !== null) {
      document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
      states.previousBodyPadding = null;
    }
  };

  /* istanbul ignore file */

  var iOSfix = function iOSfix() {
    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;

    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
      var offset = document.body.scrollTop;
      document.body.style.top = "".concat(offset * -1, "px");
      addClass(document.body, swalClasses.iosfix);
      lockBodyScroll();
      addBottomPaddingForTallPopups(); // #1948
    }
  };

  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {
    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);

    if (safari) {
      var bottomPanelHeight = 44;

      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
        getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
      }
    }
  };

  var lockBodyScroll = function lockBodyScroll() {
    // #1246
    var container = getContainer();
    var preventTouchMove;

    container.ontouchstart = function (e) {
      preventTouchMove = shouldPreventTouchMove(e);
    };

    container.ontouchmove = function (e) {
      if (preventTouchMove) {
        e.preventDefault();
        e.stopPropagation();
      }
    };
  };

  var shouldPreventTouchMove = function shouldPreventTouchMove(event) {
    var target = event.target;
    var container = getContainer();

    if (isStylys(event) || isZoom(event)) {
      return false;
    }

    if (target === container) {
      return true;
    }

    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603
    !(isScrollable(getContent()) && // #1944
    getContent().contains(target))) {
      return true;
    }

    return false;
  };

  var isStylys = function isStylys(event) {
    // #1786
    return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';
  };

  var isZoom = function isZoom(event) {
    // #1891
    return event.touches && event.touches.length > 1;
  };

  var undoIOSfix = function undoIOSfix() {
    if (hasClass(document.body, swalClasses.iosfix)) {
      var offset = parseInt(document.body.style.top, 10);
      removeClass(document.body, swalClasses.iosfix);
      document.body.style.top = '';
      document.body.scrollTop = offset * -1;
    }
  };

  /* istanbul ignore file */

  var isIE11 = function isIE11() {
    return !!window.MSInputMethodContext && !!document.documentMode;
  }; // Fix IE11 centering sweetalert2/issues/933


  var fixVerticalPositionIE = function fixVerticalPositionIE() {
    var container = getContainer();
    var popup = getPopup();
    container.style.removeProperty('align-items');

    if (popup.offsetTop < 0) {
      container.style.alignItems = 'flex-start';
    }
  };

  var IEfix = function IEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      fixVerticalPositionIE();
      window.addEventListener('resize', fixVerticalPositionIE);
    }
  };
  var undoIEfix = function undoIEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      window.removeEventListener('resize', fixVerticalPositionIE);
    }
  };

  // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
  // elements not within the active modal dialog will not be surfaced if a user opens a screen
  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.

  var setAriaHidden = function setAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el === getContainer() || contains(el, getContainer())) {
        return;
      }

      if (el.hasAttribute('aria-hidden')) {
        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
      }

      el.setAttribute('aria-hidden', 'true');
    });
  };
  var unsetAriaHidden = function unsetAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el.hasAttribute('data-previous-aria-hidden')) {
        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
        el.removeAttribute('data-previous-aria-hidden');
      } else {
        el.removeAttribute('aria-hidden');
      }
    });
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateMethods = {
    swalPromiseResolve: new WeakMap()
  };

  /*
   * Instance method to close sweetAlert
   */

  function removePopupAndResetState(instance, container, returnFocus, didClose) {
    if (isToast()) {
      triggerDidCloseAndDispose(instance, didClose);
    } else {
      restoreActiveElement(returnFocus).then(function () {
        return triggerDidCloseAndDispose(instance, didClose);
      });
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {
      container.parentNode.removeChild(container);
    }

    if (isModal()) {
      undoScrollbar();
      undoIOSfix();
      undoIEfix();
      unsetAriaHidden();
    }

    removeBodyClasses();
  }

  function removeBodyClasses() {
    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);
  }

  function close(resolveValue) {
    var popup = getPopup();

    if (!popup) {
      return;
    }

    resolveValue = prepareResolveValue(resolveValue);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
      return;
    }

    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
    removeClass(popup, innerParams.showClass.popup);
    addClass(popup, innerParams.hideClass.popup);
    var backdrop = getContainer();
    removeClass(backdrop, innerParams.showClass.backdrop);
    addClass(backdrop, innerParams.hideClass.backdrop);
    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise

    swalPromiseResolve(resolveValue);
  }

  var prepareResolveValue = function prepareResolveValue(resolveValue) {
    // When user calls Swal.close()
    if (typeof resolveValue === 'undefined') {
      return {
        isConfirmed: false,
        isDenied: false,
        isDismissed: true
      };
    }

    return _extends({
      isConfirmed: false,
      isDenied: false,
      isDismissed: false
    }, resolveValue);
  };

  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {
    var container = getContainer(); // If animation is supported, animate

    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);
    var onClose = innerParams.onClose,
        onAfterClose = innerParams.onAfterClose,
        willClose = innerParams.willClose,
        didClose = innerParams.didClose;
    runDidClose(popup, willClose, onClose);

    if (animationIsSupported) {
      animatePopup(instance, popup, container, innerParams.returnFocus, didClose || onAfterClose);
    } else {
      // Otherwise, remove immediately
      removePopupAndResetState(instance, container, innerParams.returnFocus, didClose || onAfterClose);
    }
  };

  var runDidClose = function runDidClose(popup, willClose, onClose) {
    if (willClose !== null && typeof willClose === 'function') {
      willClose(popup);
    } else if (onClose !== null && typeof onClose === 'function') {
      onClose(popup); // @deprecated
    }
  };

  var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {
    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);
    popup.addEventListener(animationEndEvent, function (e) {
      if (e.target === popup) {
        globalState.swalCloseEventFinishedCallback();
        delete globalState.swalCloseEventFinishedCallback;
      }
    });
  };

  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {
    setTimeout(function () {
      if (typeof didClose === 'function') {
        didClose();
      }

      instance._destroy();
    });
  };

  function setButtonsDisabled(instance, buttons, disabled) {
    var domCache = privateProps.domCache.get(instance);
    buttons.forEach(function (button) {
      domCache[button].disabled = disabled;
    });
  }

  function setInputDisabled(input, disabled) {
    if (!input) {
      return false;
    }

    if (input.type === 'radio') {
      var radiosContainer = input.parentNode.parentNode;
      var radios = radiosContainer.querySelectorAll('input');

      for (var i = 0; i < radios.length; i++) {
        radios[i].disabled = disabled;
      }
    } else {
      input.disabled = disabled;
    }
  }

  function enableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
  }
  function disableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
  }
  function enableInput() {
    return setInputDisabled(this.getInput(), false);
  }
  function disableInput() {
    return setInputDisabled(this.getInput(), true);
  }

  function showValidationMessage(error) {
    var domCache = privateProps.domCache.get(this);
    var params = privateProps.innerParams.get(this);
    setInnerHtml(domCache.validationMessage, error);
    domCache.validationMessage.className = swalClasses['validation-message'];

    if (params.customClass && params.customClass.validationMessage) {
      addClass(domCache.validationMessage, params.customClass.validationMessage);
    }

    show(domCache.validationMessage);
    var input = this.getInput();

    if (input) {
      input.setAttribute('aria-invalid', true);
      input.setAttribute('aria-describedBy', swalClasses['validation-message']);
      focusInput(input);
      addClass(input, swalClasses.inputerror);
    }
  } // Hide block with validation message

  function resetValidationMessage$1() {
    var domCache = privateProps.domCache.get(this);

    if (domCache.validationMessage) {
      hide(domCache.validationMessage);
    }

    var input = this.getInput();

    if (input) {
      input.removeAttribute('aria-invalid');
      input.removeAttribute('aria-describedBy');
      removeClass(input, swalClasses.inputerror);
    }
  }

  function getProgressSteps$1() {
    var domCache = privateProps.domCache.get(this);
    return domCache.progressSteps;
  }

  var Timer = /*#__PURE__*/function () {
    function Timer(callback, delay) {
      _classCallCheck(this, Timer);

      this.callback = callback;
      this.remaining = delay;
      this.running = false;
      this.start();
    }

    _createClass(Timer, [{
      key: "start",
      value: function start() {
        if (!this.running) {
          this.running = true;
          this.started = new Date();
          this.id = setTimeout(this.callback, this.remaining);
        }

        return this.remaining;
      }
    }, {
      key: "stop",
      value: function stop() {
        if (this.running) {
          this.running = false;
          clearTimeout(this.id);
          this.remaining -= new Date() - this.started;
        }

        return this.remaining;
      }
    }, {
      key: "increase",
      value: function increase(n) {
        var running = this.running;

        if (running) {
          this.stop();
        }

        this.remaining += n;

        if (running) {
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "getTimerLeft",
      value: function getTimerLeft() {
        if (this.running) {
          this.stop();
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "isRunning",
      value: function isRunning() {
        return this.running;
      }
    }]);

    return Timer;
  }();

  var defaultInputValidators = {
    email: function email(string, validationMessage) {
      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
    },
    url: function url(string, validationMessage) {
      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
      return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
    }
  };

  function setDefaultInputValidators(params) {
    // Use default `inputValidator` for supported input types if not provided
    if (!params.inputValidator) {
      Object.keys(defaultInputValidators).forEach(function (key) {
        if (params.input === key) {
          params.inputValidator = defaultInputValidators[key];
        }
      });
    }
  }

  function validateCustomTargetElement(params) {
    // Determine if the custom target element is valid
    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
      warn('Target parameter is not valid, defaulting to "body"');
      params.target = 'body';
    }
  }
  /**
   * Set type, text and actions on popup
   *
   * @param params
   * @returns {boolean}
   */


  function setParameters(params) {
    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm

    if (params.showLoaderOnConfirm && !params.preConfirm) {
      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
    } // params.animation will be actually used in renderPopup.js
    // but in case when params.animation is a function, we need to call that function
    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()
    // inside the params.animation function


    params.animation = callIfFunction(params.animation);
    validateCustomTargetElement(params); // Replace newlines with <br> in title

    if (typeof params.title === 'string') {
      params.title = params.title.split('\n').join('<br />');
    }

    init(params);
  }

  var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];
  var getTemplateParams = function getTemplateParams(params) {
    var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;

    if (!template) {
      return {};
    }

    var templateContent = template.content || template; // IE11

    showWarningsForElements(templateContent);

    var result = _extends(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));

    return result;
  };

  var getSwalParams = function getSwalParams(templateContent) {
    var result = {};
    toArray(templateContent.querySelectorAll('swal-param')).forEach(function (param) {
      showWarningsForAttributes(param, ['name', 'value']);
      var paramName = param.getAttribute('name');
      var value = param.getAttribute('value');

      if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {
        value = false;
      }

      if (_typeof(defaultParams[paramName]) === 'object') {
        value = JSON.parse(value);
      }

      result[paramName] = value;
    });
    return result;
  };

  var getSwalButtons = function getSwalButtons(templateContent) {
    var result = {};
    toArray(templateContent.querySelectorAll('swal-button')).forEach(function (button) {
      showWarningsForAttributes(button, ['type', 'color', 'aria-label']);
      var type = button.getAttribute('type');
      result["".concat(type, "ButtonText")] = button.innerHTML;
      result["show".concat(capitalizeFirstLetter(type), "Button")] = true;

      if (button.hasAttribute('color')) {
        result["".concat(type, "ButtonColor")] = button.getAttribute('color');
      }

      if (button.hasAttribute('aria-label')) {
        result["".concat(type, "ButtonAriaLabel")] = button.getAttribute('aria-label');
      }
    });
    return result;
  };

  var getSwalImage = function getSwalImage(templateContent) {
    var result = {};
    var image = templateContent.querySelector('swal-image');

    if (image) {
      showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);

      if (image.hasAttribute('src')) {
        result.imageUrl = image.getAttribute('src');
      }

      if (image.hasAttribute('width')) {
        result.imageWidth = image.getAttribute('width');
      }

      if (image.hasAttribute('height')) {
        result.imageHeight = image.getAttribute('height');
      }

      if (image.hasAttribute('alt')) {
        result.imageAlt = image.getAttribute('alt');
      }
    }

    return result;
  };

  var getSwalIcon = function getSwalIcon(templateContent) {
    var result = {};
    var icon = templateContent.querySelector('swal-icon');

    if (icon) {
      showWarningsForAttributes(icon, ['type', 'color']);

      if (icon.hasAttribute('type')) {
        result.icon = icon.getAttribute('type');
      }

      if (icon.hasAttribute('color')) {
        result.iconColor = icon.getAttribute('color');
      }

      result.iconHtml = icon.innerHTML;
    }

    return result;
  };

  var getSwalInput = function getSwalInput(templateContent) {
    var result = {};
    var input = templateContent.querySelector('swal-input');

    if (input) {
      showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);
      result.input = input.getAttribute('type') || 'text';

      if (input.hasAttribute('label')) {
        result.inputLabel = input.getAttribute('label');
      }

      if (input.hasAttribute('placeholder')) {
        result.inputPlaceholder = input.getAttribute('placeholder');
      }

      if (input.hasAttribute('value')) {
        result.inputValue = input.getAttribute('value');
      }
    }

    var inputOptions = templateContent.querySelectorAll('swal-input-option');

    if (inputOptions.length) {
      result.inputOptions = {};
      toArray(inputOptions).forEach(function (option) {
        showWarningsForAttributes(option, ['value']);
        var optionValue = option.getAttribute('value');
        var optionName = option.innerHTML;
        result.inputOptions[optionValue] = optionName;
      });
    }

    return result;
  };

  var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {
    var result = {};

    for (var i in paramNames) {
      var paramName = paramNames[i];
      var tag = templateContent.querySelector(paramName);

      if (tag) {
        showWarningsForAttributes(tag, []);
        result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();
      }
    }

    return result;
  };

  var showWarningsForElements = function showWarningsForElements(template) {
    var allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);
    toArray(template.querySelectorAll('*')).forEach(function (el) {
      if (el.parentNode !== template) {
        // can't use template.children because of IE11
        return;
      }

      var tagName = el.tagName.toLowerCase();

      if (allowedElements.indexOf(tagName) === -1) {
        warn("Unrecognized element <".concat(tagName, ">"));
      }
    });
  };

  var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {
    toArray(el.attributes).forEach(function (attribute) {
      if (allowedAttributes.indexOf(attribute.name) === -1) {
        warn(["Unrecognized attribute \"".concat(attribute.name, "\" on <").concat(el.tagName.toLowerCase(), ">."), "".concat(allowedAttributes.length ? "Allowed attributes are: ".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);
      }
    });
  };

  var SHOW_CLASS_TIMEOUT = 10;
  /**
   * Open popup, add necessary classes and styles, fix scrollbar
   *
   * @param params
   */

  var openPopup = function openPopup(params) {
    var container = getContainer();
    var popup = getPopup();

    if (typeof params.willOpen === 'function') {
      params.willOpen(popup);
    } else if (typeof params.onBeforeOpen === 'function') {
      params.onBeforeOpen(popup); // @deprecated
    }

    var bodyStyles = window.getComputedStyle(document.body);
    var initialBodyOverflow = bodyStyles.overflowY;
    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'

    setTimeout(function () {
      setScrollingVisibility(container, popup);
    }, SHOW_CLASS_TIMEOUT);

    if (isModal()) {
      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
      setAriaHidden();
    }

    if (!isToast() && !globalState.previousActiveElement) {
      globalState.previousActiveElement = document.activeElement;
    }

    runDidOpen(popup, params);
    removeClass(container, swalClasses['no-transition']);
  };

  var runDidOpen = function runDidOpen(popup, params) {
    if (typeof params.didOpen === 'function') {
      setTimeout(function () {
        return params.didOpen(popup);
      });
    } else if (typeof params.onOpen === 'function') {
      setTimeout(function () {
        return params.onOpen(popup);
      }); // @deprecated
    }
  };

  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {
    var popup = getPopup();

    if (event.target !== popup) {
      return;
    }

    var container = getContainer();
    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
    container.style.overflowY = 'auto';
  };

  var setScrollingVisibility = function setScrollingVisibility(container, popup) {
    if (animationEndEvent && hasCssAnimation(popup)) {
      container.style.overflowY = 'hidden';
      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
    } else {
      container.style.overflowY = 'auto';
    }
  };

  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {
    iOSfix();
    IEfix();

    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
      fixScrollbar();
    } // sweetalert2/issues/1247


    setTimeout(function () {
      container.scrollTop = 0;
    });
  };

  var addClasses$1 = function addClasses(container, popup, params) {
    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059

    popup.style.setProperty('opacity', '0', 'important');
    show(popup);
    setTimeout(function () {
      // Animate popup right after showing it
      addClass(popup, params.showClass.popup); // and remove the opacity workaround

      popup.style.removeProperty('opacity');
    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062

    addClass([document.documentElement, document.body], swalClasses.shown);

    if (params.heightAuto && params.backdrop && !params.toast) {
      addClass([document.documentElement, document.body], swalClasses['height-auto']);
    }
  };

  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {
    if (params.input === 'select' || params.input === 'radio') {
      handleInputOptions(instance, params);
    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
      handleInputValue(instance, params);
    }
  };
  var getInputValue = function getInputValue(instance, innerParams) {
    var input = instance.getInput();

    if (!input) {
      return null;
    }

    switch (innerParams.input) {
      case 'checkbox':
        return getCheckboxValue(input);

      case 'radio':
        return getRadioValue(input);

      case 'file':
        return getFileValue(input);

      default:
        return innerParams.inputAutoTrim ? input.value.trim() : input.value;
    }
  };

  var getCheckboxValue = function getCheckboxValue(input) {
    return input.checked ? 1 : 0;
  };

  var getRadioValue = function getRadioValue(input) {
    return input.checked ? input.value : null;
  };

  var getFileValue = function getFileValue(input) {
    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
  };

  var handleInputOptions = function handleInputOptions(instance, params) {
    var content = getContent();

    var processInputOptions = function processInputOptions(inputOptions) {
      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);
    };

    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
      showLoading(getConfirmButton());
      asPromise(params.inputOptions).then(function (inputOptions) {
        instance.hideLoading();
        processInputOptions(inputOptions);
      });
    } else if (_typeof(params.inputOptions) === 'object') {
      processInputOptions(params.inputOptions);
    } else {
      error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions)));
    }
  };

  var handleInputValue = function handleInputValue(instance, params) {
    var input = instance.getInput();
    hide(input);
    asPromise(params.inputValue).then(function (inputValue) {
      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
      show(input);
      input.focus();
      instance.hideLoading();
    })["catch"](function (err) {
      error("Error in inputValue promise: ".concat(err));
      input.value = '';
      show(input);
      input.focus();
      instance.hideLoading();
    });
  };

  var populateInputOptions = {
    select: function select(content, inputOptions, params) {
      var select = getChildByClass(content, swalClasses.select);

      var renderOption = function renderOption(parent, optionLabel, optionValue) {
        var option = document.createElement('option');
        option.value = optionValue;
        setInnerHtml(option, optionLabel);
        option.selected = isSelected(optionValue, params.inputValue);
        parent.appendChild(option);
      };

      inputOptions.forEach(function (inputOption) {
        var optionValue = inputOption[0];
        var optionLabel = inputOption[1]; // <optgroup> spec:
        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
        // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
        // check whether this is a <optgroup>

        if (Array.isArray(optionLabel)) {
          // if it is an array, then it is an <optgroup>
          var optgroup = document.createElement('optgroup');
          optgroup.label = optionValue;
          optgroup.disabled = false; // not configurable for now

          select.appendChild(optgroup);
          optionLabel.forEach(function (o) {
            return renderOption(optgroup, o[1], o[0]);
          });
        } else {
          // case of <option>
          renderOption(select, optionLabel, optionValue);
        }
      });
      select.focus();
    },
    radio: function radio(content, inputOptions, params) {
      var radio = getChildByClass(content, swalClasses.radio);
      inputOptions.forEach(function (inputOption) {
        var radioValue = inputOption[0];
        var radioLabel = inputOption[1];
        var radioInput = document.createElement('input');
        var radioLabelElement = document.createElement('label');
        radioInput.type = 'radio';
        radioInput.name = swalClasses.radio;
        radioInput.value = radioValue;

        if (isSelected(radioValue, params.inputValue)) {
          radioInput.checked = true;
        }

        var label = document.createElement('span');
        setInnerHtml(label, radioLabel);
        label.className = swalClasses.label;
        radioLabelElement.appendChild(radioInput);
        radioLabelElement.appendChild(label);
        radio.appendChild(radioLabelElement);
      });
      var radios = radio.querySelectorAll('input');

      if (radios.length) {
        radios[0].focus();
      }
    }
  };
  /**
   * Converts `inputOptions` into an array of `[value, label]`s
   * @param inputOptions
   */

  var formatInputOptions = function formatInputOptions(inputOptions) {
    var result = [];

    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
      inputOptions.forEach(function (value, key) {
        var valueFormatted = value;

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    } else {
      Object.keys(inputOptions).forEach(function (key) {
        var valueFormatted = inputOptions[key];

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    }

    return result;
  };

  var isSelected = function isSelected(optionValue, inputValue) {
    return inputValue && inputValue.toString() === optionValue.toString();
  };

  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.input) {
      handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');
    } else {
      confirm(instance, innerParams, true);
    }
  };
  var handleDenyButtonClick = function handleDenyButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.returnInputValueOnDeny) {
      handleConfirmOrDenyWithInput(instance, innerParams, 'deny');
    } else {
      deny(instance, innerParams, false);
    }
  };
  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {
    instance.disableButtons();
    dismissWith(DismissReason.cancel);
  };

  var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, innerParams, type
  /* type is either 'confirm' or 'deny' */
  ) {
    var inputValue = getInputValue(instance, innerParams);

    if (innerParams.inputValidator) {
      handleInputValidator(instance, innerParams, inputValue);
    } else if (!instance.getInput().checkValidity()) {
      instance.enableButtons();
      instance.showValidationMessage(innerParams.validationMessage);
    } else if (type === 'deny') {
      deny(instance, innerParams, inputValue);
    } else {
      confirm(instance, innerParams, inputValue);
    }
  };

  var handleInputValidator = function handleInputValidator(instance, innerParams, inputValue) {
    instance.disableInput();
    var validationPromise = Promise.resolve().then(function () {
      return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));
    });
    validationPromise.then(function (validationMessage) {
      instance.enableButtons();
      instance.enableInput();

      if (validationMessage) {
        instance.showValidationMessage(validationMessage);
      } else {
        confirm(instance, innerParams, inputValue);
      }
    });
  };

  var deny = function deny(instance, innerParams, value) {
    if (innerParams.showLoaderOnDeny) {
      showLoading(getDenyButton());
    }

    if (innerParams.preDeny) {
      var preDenyPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preDeny(value, innerParams.validationMessage));
      });
      preDenyPromise.then(function (preDenyValue) {
        if (preDenyValue === false) {
          instance.hideLoading();
        } else {
          instance.closePopup({
            isDenied: true,
            value: typeof preDenyValue === 'undefined' ? value : preDenyValue
          });
        }
      });
    } else {
      instance.closePopup({
        isDenied: true,
        value: value
      });
    }
  };

  var succeedWith = function succeedWith(instance, value) {
    instance.closePopup({
      isConfirmed: true,
      value: value
    });
  };

  var confirm = function confirm(instance, innerParams, value) {
    if (innerParams.showLoaderOnConfirm) {
      showLoading(); // TODO: make showLoading an *instance* method
    }

    if (innerParams.preConfirm) {
      instance.resetValidationMessage();
      var preConfirmPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));
      });
      preConfirmPromise.then(function (preConfirmValue) {
        if (isVisible(getValidationMessage()) || preConfirmValue === false) {
          instance.hideLoading();
        } else {
          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
        }
      });
    } else {
      succeedWith(instance, value);
    }
  };

  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {
    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (!innerParams.toast) {
      globalState.keydownHandler = function (e) {
        return keydownHandler(instance, e, dismissWith);
      };

      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = true;
    }
  }; // Focus handling

  var setFocus = function setFocus(innerParams, index, increment) {
    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match

    if (focusableElements.length) {
      index = index + increment; // rollover to first item

      if (index === focusableElements.length) {
        index = 0; // go to last item
      } else if (index === -1) {
        index = focusableElements.length - 1;
      }

      return focusableElements[index].focus();
    } // no visible focusable elements, focus the popup


    getPopup().focus();
  };
  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11
  ];
  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11
  ];
  var escKeys = ['Escape', 'Esc' // IE11
  ];

  var keydownHandler = function keydownHandler(instance, e, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (!innerParams) {
      return; // This instance has already been destroyed
    }

    if (innerParams.stopKeydownPropagation) {
      e.stopPropagation();
    } // ENTER


    if (e.key === 'Enter') {
      handleEnter(instance, e, innerParams); // TAB
    } else if (e.key === 'Tab') {
      handleTab(e, innerParams); // ARROWS - switch focus between buttons
    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {
      handleArrows(e.key); // ESC
    } else if (escKeys.indexOf(e.key) !== -1) {
      handleEsc(e, innerParams, dismissWith);
    }
  };

  var handleEnter = function handleEnter(instance, e, innerParams) {
    // #720 #721
    if (e.isComposing) {
      return;
    }

    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {
      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {
        return; // do not submit
      }

      clickConfirm();
      e.preventDefault();
    }
  };

  var handleTab = function handleTab(e, innerParams) {
    var targetElement = e.target;
    var focusableElements = getFocusableElements();
    var btnIndex = -1;

    for (var i = 0; i < focusableElements.length; i++) {
      if (targetElement === focusableElements[i]) {
        btnIndex = i;
        break;
      }
    }

    if (!e.shiftKey) {
      // Cycle to the next button
      setFocus(innerParams, btnIndex, 1);
    } else {
      // Cycle to the prev button
      setFocus(innerParams, btnIndex, -1);
    }

    e.stopPropagation();
    e.preventDefault();
  };

  var handleArrows = function handleArrows(key) {
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton();

    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {
      return;
    }

    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';
    var buttonToFocus = document.activeElement[sibling];

    if (buttonToFocus) {
      buttonToFocus.focus();
    }
  };

  var handleEsc = function handleEsc(e, innerParams, dismissWith) {
    if (callIfFunction(innerParams.allowEscapeKey)) {
      e.preventDefault();
      dismissWith(DismissReason.esc);
    }
  };

  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.toast) {
      handleToastClick(instance, domCache, dismissWith);
    } else {
      // Ignore click events that had mousedown on the popup but mouseup on the container
      // This can happen when the user drags a slider
      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup

      handleContainerMousedown(domCache);
      handleModalClick(instance, domCache, dismissWith);
    }
  };

  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {
    // Closing toast by internal click
    domCache.popup.onclick = function () {
      var innerParams = privateProps.innerParams.get(instance);

      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {
        return;
      }

      dismissWith(DismissReason.close);
    };
  };

  var ignoreOutsideClick = false;

  var handleModalMousedown = function handleModalMousedown(domCache) {
    domCache.popup.onmousedown = function () {
      domCache.container.onmouseup = function (e) {
        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
        // have any other direct children aside of the popup

        if (e.target === domCache.container) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleContainerMousedown = function handleContainerMousedown(domCache) {
    domCache.container.onmousedown = function () {
      domCache.popup.onmouseup = function (e) {
        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup

        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {
    domCache.container.onclick = function (e) {
      var innerParams = privateProps.innerParams.get(instance);

      if (ignoreOutsideClick) {
        ignoreOutsideClick = false;
        return;
      }

      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
        dismissWith(DismissReason.backdrop);
      }
    };
  };

  function _main(userParams) {
    var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    showWarningsForParams(_extends({}, mixinParams, userParams));

    if (globalState.currentInstance) {
      globalState.currentInstance._destroy();
    }

    globalState.currentInstance = this;
    var innerParams = prepareParams(userParams, mixinParams);
    setParameters(innerParams);
    Object.freeze(innerParams); // clear the previous timer

    if (globalState.timeout) {
      globalState.timeout.stop();
      delete globalState.timeout;
    } // clear the restore focus timeout


    clearTimeout(globalState.restoreFocusTimeout);
    var domCache = populateDomCache(this);
    render(this, innerParams);
    privateProps.innerParams.set(this, innerParams);
    return swalPromise(this, domCache, innerParams);
  }

  var prepareParams = function prepareParams(userParams, mixinParams) {
    var templateParams = getTemplateParams(userParams);

    var params = _extends({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131


    params.showClass = _extends({}, defaultParams.showClass, params.showClass);
    params.hideClass = _extends({}, defaultParams.hideClass, params.hideClass); // @deprecated

    if (userParams.animation === false) {
      params.showClass = {
        popup: 'swal2-noanimation',
        backdrop: 'swal2-noanimation'
      };
      params.hideClass = {};
    }

    return params;
  };

  var swalPromise = function swalPromise(instance, domCache, innerParams) {
    return new Promise(function (resolve) {
      // functions to handle all closings/dismissals
      var dismissWith = function dismissWith(dismiss) {
        instance.closePopup({
          isDismissed: true,
          dismiss: dismiss
        });
      };

      privateMethods.swalPromiseResolve.set(instance, resolve);

      domCache.confirmButton.onclick = function () {
        return handleConfirmButtonClick(instance, innerParams);
      };

      domCache.denyButton.onclick = function () {
        return handleDenyButtonClick(instance, innerParams);
      };

      domCache.cancelButton.onclick = function () {
        return handleCancelButtonClick(instance, dismissWith);
      };

      domCache.closeButton.onclick = function () {
        return dismissWith(DismissReason.close);
      };

      handlePopupClick(instance, domCache, dismissWith);
      addKeydownHandler(instance, globalState, innerParams, dismissWith);
      handleInputOptionsAndValue(instance, innerParams);
      openPopup(innerParams);
      setupTimer(globalState, innerParams, dismissWith);
      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)

      setTimeout(function () {
        domCache.container.scrollTop = 0;
      });
    });
  };

  var populateDomCache = function populateDomCache(instance) {
    var domCache = {
      popup: getPopup(),
      container: getContainer(),
      content: getContent(),
      actions: getActions(),
      confirmButton: getConfirmButton(),
      denyButton: getDenyButton(),
      cancelButton: getCancelButton(),
      loader: getLoader(),
      closeButton: getCloseButton(),
      validationMessage: getValidationMessage(),
      progressSteps: getProgressSteps()
    };
    privateProps.domCache.set(instance, domCache);
    return domCache;
  };

  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {
    var timerProgressBar = getTimerProgressBar();
    hide(timerProgressBar);

    if (innerParams.timer) {
      globalState$$1.timeout = new Timer(function () {
        dismissWith('timer');
        delete globalState$$1.timeout;
      }, innerParams.timer);

      if (innerParams.timerProgressBar) {
        show(timerProgressBar);
        setTimeout(function () {
          if (globalState$$1.timeout && globalState$$1.timeout.running) {
            // timer can be already stopped or unset at this point
            animateTimerProgressBar(innerParams.timer);
          }
        });
      }
    }
  };

  var initFocus = function initFocus(domCache, innerParams) {
    if (innerParams.toast) {
      return;
    }

    if (!callIfFunction(innerParams.allowEnterKey)) {
      return blurActiveElement();
    }

    if (!focusButton(domCache, innerParams)) {
      setFocus(innerParams, -1, 1);
    }
  };

  var focusButton = function focusButton(domCache, innerParams) {
    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {
      domCache.denyButton.focus();
      return true;
    }

    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
      domCache.cancelButton.focus();
      return true;
    }

    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
      domCache.confirmButton.focus();
      return true;
    }

    return false;
  };

  var blurActiveElement = function blurActiveElement() {
    if (document.activeElement && typeof document.activeElement.blur === 'function') {
      document.activeElement.blur();
    }
  };

  /**
   * Updates popup parameters.
   */

  function update(params) {
    var popup = getPopup();
    var innerParams = privateProps.innerParams.get(this);

    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
      return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
    }

    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`

    Object.keys(params).forEach(function (param) {
      if (Swal.isUpdatableParameter(param)) {
        validUpdatableParams[param] = params[param];
      } else {
        warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md"));
      }
    });

    var updatedParams = _extends({}, innerParams, validUpdatableParams);

    render(this, updatedParams);
    privateProps.innerParams.set(this, updatedParams);
    Object.defineProperties(this, {
      params: {
        value: _extends({}, this.params, params),
        writable: false,
        enumerable: true
      }
    });
  }

  function _destroy() {
    var domCache = privateProps.domCache.get(this);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return; // This instance has already been destroyed
    } // Check if there is another Swal closing


    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
      globalState.swalCloseEventFinishedCallback();
      delete globalState.swalCloseEventFinishedCallback;
    } // Check if there is a swal disposal defer timer


    if (globalState.deferDisposalTimer) {
      clearTimeout(globalState.deferDisposalTimer);
      delete globalState.deferDisposalTimer;
    }

    runDidDestroy(innerParams);
    disposeSwal(this);
  }

  var runDidDestroy = function runDidDestroy(innerParams) {
    if (typeof innerParams.didDestroy === 'function') {
      innerParams.didDestroy();
    } else if (typeof innerParams.onDestroy === 'function') {
      innerParams.onDestroy(); // @deprecated
    }
  };

  var disposeSwal = function disposeSwal(instance) {
    // Unset this.params so GC will dispose it (#1569)
    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)

    delete globalState.keydownHandler;
    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)

    unsetWeakMaps(privateProps);
    unsetWeakMaps(privateMethods);
  };

  var unsetWeakMaps = function unsetWeakMaps(obj) {
    for (var i in obj) {
      obj[i] = new WeakMap();
    }
  };



  var instanceMethods = /*#__PURE__*/Object.freeze({
    hideLoading: hideLoading,
    disableLoading: hideLoading,
    getInput: getInput$1,
    close: close,
    closePopup: close,
    closeModal: close,
    closeToast: close,
    enableButtons: enableButtons,
    disableButtons: disableButtons,
    enableInput: enableInput,
    disableInput: disableInput,
    showValidationMessage: showValidationMessage,
    resetValidationMessage: resetValidationMessage$1,
    getProgressSteps: getProgressSteps$1,
    _main: _main,
    update: update,
    _destroy: _destroy
  });

  var currentInstance;

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

      // Prevent run in Node env
      if (typeof window === 'undefined') {
        return;
      } // Check for the existence of Promise


      if (typeof Promise === 'undefined') {
        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
      }

      currentInstance = this;

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

      var outerParams = Object.freeze(this.constructor.argsToParams(args));
      Object.defineProperties(this, {
        params: {
          value: outerParams,
          writable: false,
          enumerable: true,
          configurable: true
        }
      });

      var promise = this._main(this.params);

      privateProps.promise.set(this, promise);
    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead


    _createClass(SweetAlert, [{
      key: "then",
      value: function then(onFulfilled) {
        var promise = privateProps.promise.get(this);
        return promise.then(onFulfilled);
      }
    }, {
      key: "finally",
      value: function _finally(onFinally) {
        var promise = privateProps.promise.get(this);
        return promise["finally"](onFinally);
      }
    }]);

    return SweetAlert;
  }(); // Assign instance methods from src/instanceMethods/*.js to prototype


  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor


  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility


  Object.keys(instanceMethods).forEach(function (key) {
    SweetAlert[key] = function () {
      if (currentInstance) {
        var _currentInstance;

        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);
      }
    };
  });
  SweetAlert.DismissReason = DismissReason;
  SweetAlert.version = '10.16.9';

  var Swal = SweetAlert;
  Swal["default"] = Swal;

  return Swal;

}));
if (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}

"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:column;align-items:stretch;width:auto;padding:1.25em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;margin:0 .625em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container{padding:.625em 0 0}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex:1;flex-basis:auto!important;align-self:stretch;width:auto;height:2.2em;height:auto;margin:0 .3125em;margin-top:.3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}");

/***/ }),
/* 21 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
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;
}

/***/ }),
/* 22 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

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

// EXPORTS
__webpack_require__.d(__webpack_exports__, "pluginSettings", function() { return /* binding */ pluginSettings; });
__webpack_require__.d(__webpack_exports__, "isFinished", function() { return /* reexport */ isFinished; });
__webpack_require__.d(__webpack_exports__, "getAnswers", function() { return /* reexport */ getAnswers; });

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
var arrayLikeToArray = __webpack_require__(21);

// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js

function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
var unsupportedIterableToArray = __webpack_require__(23);

// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
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.");
}
// CONCATENATED MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js




function _toConsumableArray(arr) {
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
}
// CONCATENATED MODULE: ./src/plugins/exam/setting.ts
var SETTINGS = [{
  title: "考试",
  display: true,
  settings: [{
    id: "infiniteListening",
    name: "无限听力",
    type: "switch",
    default: true,
    description: "允许无限次播放听力音频"
  }]
}];
/* harmony default export */ var setting = (SETTINGS);
// CONCATENATED MODULE: ./src/plugins/exercise/setting.ts
var setting_SETTINGS = [{
  title: "练习",
  display: true,
  settings: [{
    id: "showReference",
    name: "显示参考",
    type: "switch",
    default: true,
    description: "是否显示听力、口语参考(适用视听说)"
  }, {
    id: "autoSolve",
    name: "自动答题",
    type: "switch",
    default: false,
    description: "自动答题开关"
  }, {
    id: "solveInterval",
    name: "答题间隔",
    default: 1000,
    valueType: "number",
    description: "单位毫秒;自动答题间隔"
  }, {
    id: "defaultBlankAnswer",
    name: "默认填空",
    default: "Default answer.",
    valueType: "string",
    description: "填空题没有固定|正确答案时,填入的默认值"
  }]
}];
/* harmony default export */ var exercise_setting = (setting_SETTINGS);
// CONCATENATED MODULE: ./src/plugins/time/setting.ts
var time_setting_SETTINGS = [{
  title: "时长相关",
  display: true,
  settings: [{
    id: "autoRefresh",
    name: "自动挂机",
    type: "switch",
    default: false,
    description: "是否定时切换下一页,仅用于刷时长"
  }, {
    id: "loopRefresh",
    name: "循环挂机",
    type: "switch",
    default: false,
    description: "一遍刷完,是否跳转到开头;自动跳过封锁章节"
  }, {
    id: "randomRefresh",
    name: "随机延时",
    type: "switch",
    default: false,
    description: "关闭将以上限为切换时长,开启将取上下限区间内随机时长"
  }, {
    id: "refreshIntervalMin",
    name: "切换下限",
    default: 5,
    valueType: "number",
    description: "单位分钟;we learn允许一个页面最多挂30分钟,所以不要大于30"
  }, {
    id: "refreshIntervalMax",
    name: "切换上限",
    default: 10,
    valueType: "number",
    description: "单位分钟"
  }]
}];
/* harmony default export */ var time_setting = (time_setting_SETTINGS);
// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(18);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(0);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./src/utils/common.ts + 1 modules
var common = __webpack_require__(4);

// EXTERNAL MODULE: ./src/utils/requests.ts + 8 modules
var requests = __webpack_require__(8);

// EXTERNAL MODULE: ./src/store/index.ts
var store = __webpack_require__(1);

// EXTERNAL MODULE: ./src/store/actions.ts
var actions = __webpack_require__(3);

// CONCATENATED MODULE: ./src/plugins/exam/parser.ts




function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

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 isFinished() {
  return document.querySelector("#aSubmit").style.display == "none" ? true : false;
}

function getTaskId() {
  // https://welearn.sflep.com/test/schooltest.aspx?schooltestid=1330
  var isSchoolTest = false;
  var taskId;

  if (location.href.includes("schooltest")) {
    isSchoolTest = true;
    taskId = parseInt(/schooltestid=(\d*)/.exec(location.href)[1], 10);
  } else {
    taskId = parseInt(/taskid=(\d*)/.exec(location.href)[1], 10);
  }

  return {
    isSchoolTest: isSchoolTest,
    taskId: taskId
  };
}

function getQuestionIndex(questionItemDiv) {
  return /\s*(\d*)/.exec(questionItemDiv.querySelector(".test_number").textContent)[1];
}

function getQuestionIds() {}

function getAnswers() {
  return _getAnswers.apply(this, arguments);
}

function _getAnswers() {
  _getAnswers = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
    var _getTaskId, isSchoolTest, taskId, domString, returnJson, _iterator, _step, _step$value, index, questionWithAnswer, _iterator2, _step2, questionItemDiv, _domString, questionWithAnswers, _iterator3, _step3, _questionWithAnswer;

    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            Object(actions["b" /* clearMessage */])();
            _getTaskId = getTaskId(), isSchoolTest = _getTaskId.isSchoolTest, taskId = _getTaskId.taskId;

            if (!isFinished()) {
              _context.next = 7;
              break;
            }

            domString = document.querySelector(".tab-content").outerHTML;
            requests["a" /* Requests */].collectAll(taskId, domString, isSchoolTest);
            _context.next = 77;
            break;

          case 7:
            _context.next = 9;
            return requests["a" /* Requests */].queryByTaskId(taskId, isSchoolTest);

          case 9:
            returnJson = _context.sent;

            if (!(returnJson.status === true)) {
              _context.next = 32;
              break;
            }

            // 练习已收录
            _iterator = _createForOfIteratorHelper(returnJson.data.entries());
            _context.prev = 12;

            _iterator.s();

          case 14:
            if ((_step = _iterator.n()).done) {
              _context.next = 22;
              break;
            }

            _step$value = Object(slicedToArray["a" /* default */])(_step.value, 2), index = _step$value[0], questionWithAnswer = _step$value[1];
            // todo 获取题号
            Object(actions["a" /* addMessage */])(index, "normal");
            Object(actions["a" /* addMessage */])(questionWithAnswer.answerText, "success");
            _context.next = 20;
            return Object(common["h" /* sleep */])(store["c" /* QUERY_INTERVAL */]);

          case 20:
            _context.next = 14;
            break;

          case 22:
            _context.next = 27;
            break;

          case 24:
            _context.prev = 24;
            _context.t0 = _context["catch"](12);

            _iterator.e(_context.t0);

          case 27:
            _context.prev = 27;

            _iterator.f();

            return _context.finish(27);

          case 30:
            _context.next = 77;
            break;

          case 32:
            // 练习未收录,单题dom查询
            _iterator2 = _createForOfIteratorHelper(document.querySelectorAll(".itemDiv"));
            _context.prev = 33;

            _iterator2.s();

          case 35:
            if ((_step2 = _iterator2.n()).done) {
              _context.next = 69;
              break;
            }

            questionItemDiv = _step2.value;
            _domString = questionItemDiv.outerHTML;
            _context.prev = 38;
            _context.next = 41;
            return requests["a" /* Requests */].queryByDomString(_domString);

          case 41:
            questionWithAnswers = _context.sent;
            _iterator3 = _createForOfIteratorHelper(questionWithAnswers);
            _context.prev = 43;

            _iterator3.s();

          case 45:
            if ((_step3 = _iterator3.n()).done) {
              _context.next = 54;
              break;
            }

            _questionWithAnswer = _step3.value;

            try {
              Object(actions["a" /* addMessage */])(getQuestionIndex(questionItemDiv), "normal");
            } catch (error) {}

            if (_questionWithAnswer.answerText) {
              Object(actions["a" /* addMessage */])(_questionWithAnswer.answerText, "success");
            } else {
              Object(actions["a" /* addMessage */])("该题尚未收录答案", "error");
            }

            Object(actions["a" /* addMessage */])("", "hr");
            _context.next = 52;
            return Object(common["h" /* sleep */])(store["c" /* QUERY_INTERVAL */]);

          case 52:
            _context.next = 45;
            break;

          case 54:
            _context.next = 59;
            break;

          case 56:
            _context.prev = 56;
            _context.t1 = _context["catch"](43);

            _iterator3.e(_context.t1);

          case 59:
            _context.prev = 59;

            _iterator3.f();

            return _context.finish(59);

          case 62:
            _context.next = 67;
            break;

          case 64:
            _context.prev = 64;
            _context.t2 = _context["catch"](38);
            console.log(_context.t2);

          case 67:
            _context.next = 35;
            break;

          case 69:
            _context.next = 74;
            break;

          case 71:
            _context.prev = 71;
            _context.t3 = _context["catch"](33);

            _iterator2.e(_context.t3);

          case 74:
            _context.prev = 74;

            _iterator2.f();

            return _context.finish(74);

          case 77:
          case "end":
            return _context.stop();
        }
      }
    }, _callee, null, [[12, 24, 27, 30], [33, 71, 74, 77], [38, 64], [43, 56, 59, 62]]);
  }));
  return _getAnswers.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/index.ts

//此处导出所有插件的设置选项



var pluginSettings = [].concat(_toConsumableArray(setting), _toConsumableArray(exercise_setting), _toConsumableArray(time_setting)); //在此处暴露需要让上级访问的接口

 // export * from "./exam/requests";

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

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return Object(_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(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 Object(_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
}

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

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ("data:application/vnd.ms-fontobject;base64,jAsAAOQKAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAdC7BHAAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fUlKAAABfAAAAFZjbWFwtIcd+gAAAeQAAAGcZ2x5ZlSWxa8AAAOMAAAEoGhlYWQbRAwIAAAA4AAAADZoaGVhCNUEfAAAALwAAAAkaG10eBD3AAAAAAHUAAAAEGxvY2EDDAF+AAADgAAAAAptYXhwARYAjwAAARgAAAAgbmFtZT5U/n0AAAgsAAACbXBvc3QyoIw9AAAKnAAAAEYAAQAAA4D/gABcBPcAAAAABPcAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAABzBLnRfDzz1AAsEAAAAAADbluQGAAAAANuW5AYAAP9+BPcDgQAAAAgAAgAAAAAAAAABAAAABACDAAgAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQ+AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gXnGQOA/4AAXAOBAIIAAAABAAAAAAAABAAAAAQAAAAE9wAABAAAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAADmBeYo5xn//wAA5gXmKOcZ//8AAAAAAAAAAQAIAAgACAAAAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAOYFAADmBQAAAAEAAOYoAADmKAAAAAIAAOcZAADnGQAAAAMAAAAAALwBfgJQAAAAAgAA/34D9gOBAGwAeAAAJSYnJicmBgcGBw4BBwYHBicmBwYnJicuAicuAQcGBwYmJyYnJjY3Njc+ATU2JjYmLwEmNzY3NhcWFxY2Nz4CPwE+ATMWNzYXFhcWFxYXFj8BNhcWFxYGDwEOARcWBhUeARcWFx4BBwYHBgclPgE3LgEnDgEHHgEDdRUOLC0HEAcgHgUHAQoGAx9eXx4ECAcBIB0PBQ4GNTQSEwouLgsDESwsBAUBAwULDE8YDzIxDRk2NwYPBg8eHgEQAREPXl8dAwgIARIdGhASZxsPMDAJAxBXBwUBAQEBBQUrLQ8DCTAxBQb+fk1mAwJkTU1mAgFmGAgFEhECAQQPFQMNBjY3HwEBAQEeNzYSEBIIAwICFBUIBxJPUBESDSIkAwwGDx8fFAg9ERlVVRcKFhUCAgMIEw8QbxANAQEBHTc2FAgNEwsJKQwbU1IPEgtEBgwKESMRBg0EIyILEhBUUgcFqgFlS05mAwJlTUxmAAMAAP9/BPcDgABEAHwAfQAAJQ4BJyYvASYvASYvASYvASYvASYvASYvAS4BNTMnAzMUFh8BFh8BFh8BFh8BFh8BFh8BFh8BFhcWHwEWMzI2Nz4BJy4BATQmLwEmLwEuAS8BJi8BJi8CJicjIgYHDgEXHgE3PgEXMh8BFh8BFhcWFxYfARYfAR4BFSMXNyMDaDiBRRISDg4NEQ0NDA8PBhEQAjYsAg0NBS4xaoCnaDAtAgkKBw8PAzVBAxMTCREREA8QFAQFDg8KGhtRqz0RAQkLKwEOLi4CCwwCKGI5BxITDRARGyoVFAlRmEEWAQoIIxM3gUMUEgwPEA0PDgUEERADYUIBMDNqhqdpLSgpAQEBAgIDAwMEBQUFAwgIAR8tAQ4PBzuNS/3/AFGZQwQNDAkSEAM1JQIKCAUGBgYEBAUBAQIBAgM1OBIlCgwDAS9RmUIFDw8EMEwZAwcGBQUEBgUCATEvESUMCQsMKicBAgECAwMDBQECBgYCK1IBPI9N//8AAAAIAAD/wAPRA18APQBEAE0AUgBkAHAAeQCCAAABNgUeAQcXFgYHBgcGBxUGBwYmLwEGBwYnBwYiLwEGJyYnJi8BJi8BJjY3JyY0PwEnJjcxNjcnLgE3Njc2FwEjBgcXNzYFFRcWMxY3JwY3Bxc3JwEmBA8BHwE3PgE/ATY3PgEnNQUeARcOAQcuASc+ARcOARQWMjY0JiUHBg8BFzIXNgFz4gFeDRABAQEFBxVGMUcjoQ0YAxAuMgcIIgkYCRExQhwYCgcLBQQCFRUpAgkIHwUMBhUXag4OBT3fCwkBNwE3Qg0CS/4HBBEUKR5PNE8JjghJAoLw/qNtAmRbApPNPgJBEwYFAf7RNkgBAUg2NUgBAUg1HCYmOSUl/rQBejEBUAMEKAJ+4RcBEg0UJk0rg3dRRAbfPQUODmgUEAMBIgkIEi8BAQcDAwUDCAMyWiUDCRcJIAUOEjMtEQMYDaAkAQX+LikhUgEuGgEBBQEdTyx4CY4JRwKDCPb/BGhXATSeZQVteCZEIgKlAkc2NkcBAUc2Nkc6ASU5JiY5JQ4BH1ACDQJHAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAgEDAQQBBQAHc2V0dGluZwh6aG9uZ3poaQdodW9qaWFuAAAAAA==");

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

"use strict";

const strictUriEncode = __webpack_require__(50);
const decodeComponent = __webpack_require__(51);
const splitOnFirst = __webpack_require__(52);
const filterObject = __webpack_require__(53);

const isNullOrUndefined = value => value === null || value === undefined;

const encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');

function encoderForArrayFormat(options) {
	switch (options.arrayFormat) {
		case 'index':
			return key => (result, value) => {
				const index = result.length;

				if (
					value === undefined ||
					(options.skipNull && value === null) ||
					(options.skipEmptyString && value === '')
				) {
					return result;
				}

				if (value === null) {
					return [...result, [encode(key, options), '[', index, ']'].join('')];
				}

				return [
					...result,
					[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')
				];
			};

		case 'bracket':
			return key => (result, value) => {
				if (
					value === undefined ||
					(options.skipNull && value === null) ||
					(options.skipEmptyString && value === '')
				) {
					return result;
				}

				if (value === null) {
					return [...result, [encode(key, options), '[]'].join('')];
				}

				return [...result, [encode(key, options), '[]=', encode(value, options)].join('')];
			};

		case 'colon-list-separator':
			return key => (result, value) => {
				if (
					value === undefined ||
					(options.skipNull && value === null) ||
					(options.skipEmptyString && value === '')
				) {
					return result;
				}

				if (value === null) {
					return [...result, [encode(key, options), ':list='].join('')];
				}

				return [...result, [encode(key, options), ':list=', encode(value, options)].join('')];
			};

		case 'comma':
		case 'separator':
		case 'bracket-separator': {
			const keyValueSep = options.arrayFormat === 'bracket-separator' ?
				'[]=' :
				'=';

			return key => (result, value) => {
				if (
					value === undefined ||
					(options.skipNull && value === null) ||
					(options.skipEmptyString && value === '')
				) {
					return result;
				}

				// Translate null to an empty string so that it doesn't serialize as 'null'
				value = value === null ? '' : value;

				if (result.length === 0) {
					return [[encode(key, options), keyValueSep, encode(value, options)].join('')];
				}

				return [[result, encode(value, options)].join(options.arrayFormatSeparator)];
			};
		}

		default:
			return key => (result, value) => {
				if (
					value === undefined ||
					(options.skipNull && value === null) ||
					(options.skipEmptyString && value === '')
				) {
					return result;
				}

				if (value === null) {
					return [...result, encode(key, options)];
				}

				return [...result, [encode(key, options), '=', encode(value, options)].join('')];
			};
	}
}

function parserForArrayFormat(options) {
	let result;

	switch (options.arrayFormat) {
		case 'index':
			return (key, value, accumulator) => {
				result = /\[(\d*)\]$/.exec(key);

				key = key.replace(/\[\d*\]$/, '');

				if (!result) {
					accumulator[key] = value;
					return;
				}

				if (accumulator[key] === undefined) {
					accumulator[key] = {};
				}

				accumulator[key][result[1]] = value;
			};

		case 'bracket':
			return (key, value, accumulator) => {
				result = /(\[\])$/.exec(key);
				key = key.replace(/\[\]$/, '');

				if (!result) {
					accumulator[key] = value;
					return;
				}

				if (accumulator[key] === undefined) {
					accumulator[key] = [value];
					return;
				}

				accumulator[key] = [].concat(accumulator[key], value);
			};

		case 'colon-list-separator':
			return (key, value, accumulator) => {
				result = /(:list)$/.exec(key);
				key = key.replace(/:list$/, '');

				if (!result) {
					accumulator[key] = value;
					return;
				}

				if (accumulator[key] === undefined) {
					accumulator[key] = [value];
					return;
				}

				accumulator[key] = [].concat(accumulator[key], value);
			};

		case 'comma':
		case 'separator':
			return (key, value, accumulator) => {
				const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);
				const isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));
				value = isEncodedArray ? decode(value, options) : value;
				const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);
				accumulator[key] = newValue;
			};

		case 'bracket-separator':
			return (key, value, accumulator) => {
				const isArray = /(\[\])$/.test(key);
				key = key.replace(/\[\]$/, '');

				if (!isArray) {
					accumulator[key] = value ? decode(value, options) : value;
					return;
				}

				const arrayValue = value === null ?
					[] :
					value.split(options.arrayFormatSeparator).map(item => decode(item, options));

				if (accumulator[key] === undefined) {
					accumulator[key] = arrayValue;
					return;
				}

				accumulator[key] = [].concat(accumulator[key], arrayValue);
			};

		default:
			return (key, value, accumulator) => {
				if (accumulator[key] === undefined) {
					accumulator[key] = value;
					return;
				}

				accumulator[key] = [].concat(accumulator[key], value);
			};
	}
}

function validateArrayFormatSeparator(value) {
	if (typeof value !== 'string' || value.length !== 1) {
		throw new TypeError('arrayFormatSeparator must be single character string');
	}
}

function encode(value, options) {
	if (options.encode) {
		return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
	}

	return value;
}

function decode(value, options) {
	if (options.decode) {
		return decodeComponent(value);
	}

	return value;
}

function keysSorter(input) {
	if (Array.isArray(input)) {
		return input.sort();
	}

	if (typeof input === 'object') {
		return keysSorter(Object.keys(input))
			.sort((a, b) => Number(a) - Number(b))
			.map(key => input[key]);
	}

	return input;
}

function removeHash(input) {
	const hashStart = input.indexOf('#');
	if (hashStart !== -1) {
		input = input.slice(0, hashStart);
	}

	return input;
}

function getHash(url) {
	let hash = '';
	const hashStart = url.indexOf('#');
	if (hashStart !== -1) {
		hash = url.slice(hashStart);
	}

	return hash;
}

function extract(input) {
	input = removeHash(input);
	const queryStart = input.indexOf('?');
	if (queryStart === -1) {
		return '';
	}

	return input.slice(queryStart + 1);
}

function parseValue(value, options) {
	if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {
		value = Number(value);
	} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
		value = value.toLowerCase() === 'true';
	}

	return value;
}

function parse(query, options) {
	options = Object.assign({
		decode: true,
		sort: true,
		arrayFormat: 'none',
		arrayFormatSeparator: ',',
		parseNumbers: false,
		parseBooleans: false
	}, options);

	validateArrayFormatSeparator(options.arrayFormatSeparator);

	const formatter = parserForArrayFormat(options);

	// Create an object with no prototype
	const ret = Object.create(null);

	if (typeof query !== 'string') {
		return ret;
	}

	query = query.trim().replace(/^[?#&]/, '');

	if (!query) {
		return ret;
	}

	for (const param of query.split('&')) {
		if (param === '') {
			continue;
		}

		let [key, value] = splitOnFirst(options.decode ? param.replace(/\+/g, ' ') : param, '=');

		// Missing `=` should be `null`:
		// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
		value = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);
		formatter(decode(key, options), value, ret);
	}

	for (const key of Object.keys(ret)) {
		const value = ret[key];
		if (typeof value === 'object' && value !== null) {
			for (const k of Object.keys(value)) {
				value[k] = parseValue(value[k], options);
			}
		} else {
			ret[key] = parseValue(value, options);
		}
	}

	if (options.sort === false) {
		return ret;
	}

	return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {
		const value = ret[key];
		if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {
			// Sort object keys, not values
			result[key] = keysSorter(value);
		} else {
			result[key] = value;
		}

		return result;
	}, Object.create(null));
}

exports.extract = extract;
exports.parse = parse;

exports.stringify = (object, options) => {
	if (!object) {
		return '';
	}

	options = Object.assign({
		encode: true,
		strict: true,
		arrayFormat: 'none',
		arrayFormatSeparator: ','
	}, options);

	validateArrayFormatSeparator(options.arrayFormatSeparator);

	const shouldFilter = key => (
		(options.skipNull && isNullOrUndefined(object[key])) ||
		(options.skipEmptyString && object[key] === '')
	);

	const formatter = encoderForArrayFormat(options);

	const objectCopy = {};

	for (const key of Object.keys(object)) {
		if (!shouldFilter(key)) {
			objectCopy[key] = object[key];
		}
	}

	const keys = Object.keys(objectCopy);

	if (options.sort !== false) {
		keys.sort(options.sort);
	}

	return keys.map(key => {
		const value = object[key];

		if (value === undefined) {
			return '';
		}

		if (value === null) {
			return encode(key, options);
		}

		if (Array.isArray(value)) {
			if (value.length === 0 && options.arrayFormat === 'bracket-separator') {
				return encode(key, options) + '[]';
			}

			return value
				.reduce(formatter(key), [])
				.join('&');
		}

		return encode(key, options) + '=' + encode(value, options);
	}).filter(x => x.length > 0).join('&');
};

exports.parseUrl = (url, options) => {
	options = Object.assign({
		decode: true
	}, options);

	const [url_, hash] = splitOnFirst(url, '#');

	return Object.assign(
		{
			url: url_.split('?')[0] || '',
			query: parse(extract(url), options)
		},
		options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}
	);
};

exports.stringifyUrl = (object, options) => {
	options = Object.assign({
		encode: true,
		strict: true,
		[encodeFragmentIdentifier]: true
	}, options);

	const url = removeHash(object.url).split('?')[0] || '';
	const queryFromUrl = exports.extract(object.url);
	const parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});

	const query = Object.assign(parsedQueryFromUrl, object.query);
	let queryString = exports.stringify(query, options);
	if (queryString) {
		queryString = `?${queryString}`;
	}

	let hash = getHash(object.url);
	if (object.fragmentIdentifier) {
		hash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;
	}

	return `${url}${queryString}${hash}`;
};

exports.pick = (input, filter, options) => {
	options = Object.assign({
		parseFragmentIdentifier: true,
		[encodeFragmentIdentifier]: false
	}, options);

	const {url, query, fragmentIdentifier} = exports.parseUrl(input, options);
	return exports.stringifyUrl({
		url,
		query: filterObject(query, filter),
		fragmentIdentifier
	}, options);
};

exports.exclude = (input, filter, options) => {
	const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);

	return exports.pick(input, exclusionFilter, options);
};


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

/* WEBPACK VAR INJECTION */(function(process, global) {/*! *****************************************************************************
Copyright (C) Microsoft. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var Reflect;
(function (Reflect) {
    // Metadata Proposal
    // https://rbuckton.github.io/reflect-metadata/
    (function (factory) {
        var root = typeof global === "object" ? global :
            typeof self === "object" ? self :
                typeof this === "object" ? this :
                    Function("return this;")();
        var exporter = makeExporter(Reflect);
        if (typeof root.Reflect === "undefined") {
            root.Reflect = Reflect;
        }
        else {
            exporter = makeExporter(root.Reflect, exporter);
        }
        factory(exporter);
        function makeExporter(target, previous) {
            return function (key, value) {
                if (typeof target[key] !== "function") {
                    Object.defineProperty(target, key, { configurable: true, writable: true, value: value });
                }
                if (previous)
                    previous(key, value);
            };
        }
    })(function (exporter) {
        var hasOwn = Object.prototype.hasOwnProperty;
        // feature test for Symbol support
        var supportsSymbol = typeof Symbol === "function";
        var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
        var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
        var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support
        var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support
        var downLevel = !supportsCreate && !supportsProto;
        var HashMap = {
            // create an object in dictionary mode (a.k.a. "slow" mode in v8)
            create: supportsCreate
                ? function () { return MakeDictionary(Object.create(null)); }
                : supportsProto
                    ? function () { return MakeDictionary({ __proto__: null }); }
                    : function () { return MakeDictionary({}); },
            has: downLevel
                ? function (map, key) { return hasOwn.call(map, key); }
                : function (map, key) { return key in map; },
            get: downLevel
                ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }
                : function (map, key) { return map[key]; },
        };
        // Load global or shim versions of Map, Set, and WeakMap
        var functionPrototype = Object.getPrototypeOf(Function);
        var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true";
        var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();
        var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();
        var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill();
        // [[Metadata]] internal slot
        // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots
        var Metadata = new _WeakMap();
        /**
         * Applies a set of decorators to a property of a target object.
         * @param decorators An array of decorators.
         * @param target The target object.
         * @param propertyKey (Optional) The property key to decorate.
         * @param attributes (Optional) The property descriptor for the target key.
         * @remarks Decorators are applied in reverse order.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     Example = Reflect.decorate(decoratorsArray, Example);
         *
         *     // property (on constructor)
         *     Reflect.decorate(decoratorsArray, Example, "staticProperty");
         *
         *     // property (on prototype)
         *     Reflect.decorate(decoratorsArray, Example.prototype, "property");
         *
         *     // method (on constructor)
         *     Object.defineProperty(Example, "staticMethod",
         *         Reflect.decorate(decoratorsArray, Example, "staticMethod",
         *             Object.getOwnPropertyDescriptor(Example, "staticMethod")));
         *
         *     // method (on prototype)
         *     Object.defineProperty(Example.prototype, "method",
         *         Reflect.decorate(decoratorsArray, Example.prototype, "method",
         *             Object.getOwnPropertyDescriptor(Example.prototype, "method")));
         *
         */
        function decorate(decorators, target, propertyKey, attributes) {
            if (!IsUndefined(propertyKey)) {
                if (!IsArray(decorators))
                    throw new TypeError();
                if (!IsObject(target))
                    throw new TypeError();
                if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))
                    throw new TypeError();
                if (IsNull(attributes))
                    attributes = undefined;
                propertyKey = ToPropertyKey(propertyKey);
                return DecorateProperty(decorators, target, propertyKey, attributes);
            }
            else {
                if (!IsArray(decorators))
                    throw new TypeError();
                if (!IsConstructor(target))
                    throw new TypeError();
                return DecorateConstructor(decorators, target);
            }
        }
        exporter("decorate", decorate);
        // 4.1.2 Reflect.metadata(metadataKey, metadataValue)
        // https://rbuckton.github.io/reflect-metadata/#reflect.metadata
        /**
         * A default metadata decorator factory that can be used on a class, class member, or parameter.
         * @param metadataKey The key for the metadata entry.
         * @param metadataValue The value for the metadata entry.
         * @returns A decorator function.
         * @remarks
         * If `metadataKey` is already defined for the target and target key, the
         * metadataValue for that key will be overwritten.
         * @example
         *
         *     // constructor
         *     @Reflect.metadata(key, value)
         *     class Example {
         *     }
         *
         *     // property (on constructor, TypeScript only)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         static staticProperty;
         *     }
         *
         *     // property (on prototype, TypeScript only)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         property;
         *     }
         *
         *     // method (on constructor)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         static staticMethod() { }
         *     }
         *
         *     // method (on prototype)
         *     class Example {
         *         @Reflect.metadata(key, value)
         *         method() { }
         *     }
         *
         */
        function metadata(metadataKey, metadataValue) {
            function decorator(target, propertyKey) {
                if (!IsObject(target))
                    throw new TypeError();
                if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))
                    throw new TypeError();
                OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
            }
            return decorator;
        }
        exporter("metadata", metadata);
        /**
         * Define a unique metadata entry on the target.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param metadataValue A value that contains attached metadata.
         * @param target The target object on which to define metadata.
         * @param propertyKey (Optional) The property key for the target.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     Reflect.defineMetadata("custom:annotation", options, Example);
         *
         *     // property (on constructor)
         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty");
         *
         *     // property (on prototype)
         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property");
         *
         *     // method (on constructor)
         *     Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod");
         *
         *     // method (on prototype)
         *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method");
         *
         *     // decorator factory as metadata-producing annotation.
         *     function MyAnnotation(options): Decorator {
         *         return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key);
         *     }
         *
         */
        function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
        }
        exporter("defineMetadata", defineMetadata);
        /**
         * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.hasMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function hasMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryHasMetadata(metadataKey, target, propertyKey);
        }
        exporter("hasMetadata", hasMetadata);
        /**
         * Gets a value indicating whether the target object has the provided metadata key defined.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function hasOwnMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
        }
        exporter("hasOwnMetadata", hasOwnMetadata);
        /**
         * Gets the metadata value for the provided metadata key on the target object or its prototype chain.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function getMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryGetMetadata(metadataKey, target, propertyKey);
        }
        exporter("getMetadata", getMetadata);
        /**
         * Gets the metadata value for the provided metadata key on the target object.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getOwnMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function getOwnMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
        }
        exporter("getOwnMetadata", getOwnMetadata);
        /**
         * Gets the metadata keys defined on the target object or its prototype chain.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns An array of unique metadata keys.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getMetadataKeys(Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getMetadataKeys(Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getMetadataKeys(Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getMetadataKeys(Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getMetadataKeys(Example.prototype, "method");
         *
         */
        function getMetadataKeys(target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryMetadataKeys(target, propertyKey);
        }
        exporter("getMetadataKeys", getMetadataKeys);
        /**
         * Gets the unique metadata keys defined on the target object.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns An array of unique metadata keys.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.getOwnMetadataKeys(Example);
         *
         *     // property (on constructor)
         *     result = Reflect.getOwnMetadataKeys(Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.getOwnMetadataKeys(Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.getOwnMetadataKeys(Example.prototype, "method");
         *
         */
        function getOwnMetadataKeys(target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            return OrdinaryOwnMetadataKeys(target, propertyKey);
        }
        exporter("getOwnMetadataKeys", getOwnMetadataKeys);
        /**
         * Deletes the metadata entry from the target object with the provided key.
         * @param metadataKey A key used to store and retrieve metadata.
         * @param target The target object on which the metadata is defined.
         * @param propertyKey (Optional) The property key for the target.
         * @returns `true` if the metadata entry was found and deleted; otherwise, false.
         * @example
         *
         *     class Example {
         *         // property declarations are not part of ES6, though they are valid in TypeScript:
         *         // static staticProperty;
         *         // property;
         *
         *         constructor(p) { }
         *         static staticMethod(p) { }
         *         method(p) { }
         *     }
         *
         *     // constructor
         *     result = Reflect.deleteMetadata("custom:annotation", Example);
         *
         *     // property (on constructor)
         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty");
         *
         *     // property (on prototype)
         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property");
         *
         *     // method (on constructor)
         *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod");
         *
         *     // method (on prototype)
         *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method");
         *
         */
        function deleteMetadata(metadataKey, target, propertyKey) {
            if (!IsObject(target))
                throw new TypeError();
            if (!IsUndefined(propertyKey))
                propertyKey = ToPropertyKey(propertyKey);
            var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return false;
            if (!metadataMap.delete(metadataKey))
                return false;
            if (metadataMap.size > 0)
                return true;
            var targetMetadata = Metadata.get(target);
            targetMetadata.delete(propertyKey);
            if (targetMetadata.size > 0)
                return true;
            Metadata.delete(target);
            return true;
        }
        exporter("deleteMetadata", deleteMetadata);
        function DecorateConstructor(decorators, target) {
            for (var i = decorators.length - 1; i >= 0; --i) {
                var decorator = decorators[i];
                var decorated = decorator(target);
                if (!IsUndefined(decorated) && !IsNull(decorated)) {
                    if (!IsConstructor(decorated))
                        throw new TypeError();
                    target = decorated;
                }
            }
            return target;
        }
        function DecorateProperty(decorators, target, propertyKey, descriptor) {
            for (var i = decorators.length - 1; i >= 0; --i) {
                var decorator = decorators[i];
                var decorated = decorator(target, propertyKey, descriptor);
                if (!IsUndefined(decorated) && !IsNull(decorated)) {
                    if (!IsObject(decorated))
                        throw new TypeError();
                    descriptor = decorated;
                }
            }
            return descriptor;
        }
        function GetOrCreateMetadataMap(O, P, Create) {
            var targetMetadata = Metadata.get(O);
            if (IsUndefined(targetMetadata)) {
                if (!Create)
                    return undefined;
                targetMetadata = new _Map();
                Metadata.set(O, targetMetadata);
            }
            var metadataMap = targetMetadata.get(P);
            if (IsUndefined(metadataMap)) {
                if (!Create)
                    return undefined;
                metadataMap = new _Map();
                targetMetadata.set(P, metadataMap);
            }
            return metadataMap;
        }
        // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata
        function OrdinaryHasMetadata(MetadataKey, O, P) {
            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
            if (hasOwn)
                return true;
            var parent = OrdinaryGetPrototypeOf(O);
            if (!IsNull(parent))
                return OrdinaryHasMetadata(MetadataKey, parent, P);
            return false;
        }
        // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata
        function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return false;
            return ToBoolean(metadataMap.has(MetadataKey));
        }
        // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata
        function OrdinaryGetMetadata(MetadataKey, O, P) {
            var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
            if (hasOwn)
                return OrdinaryGetOwnMetadata(MetadataKey, O, P);
            var parent = OrdinaryGetPrototypeOf(O);
            if (!IsNull(parent))
                return OrdinaryGetMetadata(MetadataKey, parent, P);
            return undefined;
        }
        // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata
        function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return undefined;
            return metadataMap.get(MetadataKey);
        }
        // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata
        function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);
            metadataMap.set(MetadataKey, MetadataValue);
        }
        // 3.1.6.1 OrdinaryMetadataKeys(O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys
        function OrdinaryMetadataKeys(O, P) {
            var ownKeys = OrdinaryOwnMetadataKeys(O, P);
            var parent = OrdinaryGetPrototypeOf(O);
            if (parent === null)
                return ownKeys;
            var parentKeys = OrdinaryMetadataKeys(parent, P);
            if (parentKeys.length <= 0)
                return ownKeys;
            if (ownKeys.length <= 0)
                return parentKeys;
            var set = new _Set();
            var keys = [];
            for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
                var key = ownKeys_1[_i];
                var hasKey = set.has(key);
                if (!hasKey) {
                    set.add(key);
                    keys.push(key);
                }
            }
            for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
                var key = parentKeys_1[_a];
                var hasKey = set.has(key);
                if (!hasKey) {
                    set.add(key);
                    keys.push(key);
                }
            }
            return keys;
        }
        // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)
        // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys
        function OrdinaryOwnMetadataKeys(O, P) {
            var keys = [];
            var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);
            if (IsUndefined(metadataMap))
                return keys;
            var keysObj = metadataMap.keys();
            var iterator = GetIterator(keysObj);
            var k = 0;
            while (true) {
                var next = IteratorStep(iterator);
                if (!next) {
                    keys.length = k;
                    return keys;
                }
                var nextValue = IteratorValue(next);
                try {
                    keys[k] = nextValue;
                }
                catch (e) {
                    try {
                        IteratorClose(iterator);
                    }
                    finally {
                        throw e;
                    }
                }
                k++;
            }
        }
        // 6 ECMAScript Data Typ0es and Values
        // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values
        function Type(x) {
            if (x === null)
                return 1 /* Null */;
            switch (typeof x) {
                case "undefined": return 0 /* Undefined */;
                case "boolean": return 2 /* Boolean */;
                case "string": return 3 /* String */;
                case "symbol": return 4 /* Symbol */;
                case "number": return 5 /* Number */;
                case "object": return x === null ? 1 /* Null */ : 6 /* Object */;
                default: return 6 /* Object */;
            }
        }
        // 6.1.1 The Undefined Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type
        function IsUndefined(x) {
            return x === undefined;
        }
        // 6.1.2 The Null Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type
        function IsNull(x) {
            return x === null;
        }
        // 6.1.5 The Symbol Type
        // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type
        function IsSymbol(x) {
            return typeof x === "symbol";
        }
        // 6.1.7 The Object Type
        // https://tc39.github.io/ecma262/#sec-object-type
        function IsObject(x) {
            return typeof x === "object" ? x !== null : typeof x === "function";
        }
        // 7.1 Type Conversion
        // https://tc39.github.io/ecma262/#sec-type-conversion
        // 7.1.1 ToPrimitive(input [, PreferredType])
        // https://tc39.github.io/ecma262/#sec-toprimitive
        function ToPrimitive(input, PreferredType) {
            switch (Type(input)) {
                case 0 /* Undefined */: return input;
                case 1 /* Null */: return input;
                case 2 /* Boolean */: return input;
                case 3 /* String */: return input;
                case 4 /* Symbol */: return input;
                case 5 /* Number */: return input;
            }
            var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default";
            var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
            if (exoticToPrim !== undefined) {
                var result = exoticToPrim.call(input, hint);
                if (IsObject(result))
                    throw new TypeError();
                return result;
            }
            return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
        }
        // 7.1.1.1 OrdinaryToPrimitive(O, hint)
        // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive
        function OrdinaryToPrimitive(O, hint) {
            if (hint === "string") {
                var toString_1 = O.toString;
                if (IsCallable(toString_1)) {
                    var result = toString_1.call(O);
                    if (!IsObject(result))
                        return result;
                }
                var valueOf = O.valueOf;
                if (IsCallable(valueOf)) {
                    var result = valueOf.call(O);
                    if (!IsObject(result))
                        return result;
                }
            }
            else {
                var valueOf = O.valueOf;
                if (IsCallable(valueOf)) {
                    var result = valueOf.call(O);
                    if (!IsObject(result))
                        return result;
                }
                var toString_2 = O.toString;
                if (IsCallable(toString_2)) {
                    var result = toString_2.call(O);
                    if (!IsObject(result))
                        return result;
                }
            }
            throw new TypeError();
        }
        // 7.1.2 ToBoolean(argument)
        // https://tc39.github.io/ecma262/2016/#sec-toboolean
        function ToBoolean(argument) {
            return !!argument;
        }
        // 7.1.12 ToString(argument)
        // https://tc39.github.io/ecma262/#sec-tostring
        function ToString(argument) {
            return "" + argument;
        }
        // 7.1.14 ToPropertyKey(argument)
        // https://tc39.github.io/ecma262/#sec-topropertykey
        function ToPropertyKey(argument) {
            var key = ToPrimitive(argument, 3 /* String */);
            if (IsSymbol(key))
                return key;
            return ToString(key);
        }
        // 7.2 Testing and Comparison Operations
        // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations
        // 7.2.2 IsArray(argument)
        // https://tc39.github.io/ecma262/#sec-isarray
        function IsArray(argument) {
            return Array.isArray
                ? Array.isArray(argument)
                : argument instanceof Object
                    ? argument instanceof Array
                    : Object.prototype.toString.call(argument) === "[object Array]";
        }
        // 7.2.3 IsCallable(argument)
        // https://tc39.github.io/ecma262/#sec-iscallable
        function IsCallable(argument) {
            // NOTE: This is an approximation as we cannot check for [[Call]] internal method.
            return typeof argument === "function";
        }
        // 7.2.4 IsConstructor(argument)
        // https://tc39.github.io/ecma262/#sec-isconstructor
        function IsConstructor(argument) {
            // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.
            return typeof argument === "function";
        }
        // 7.2.7 IsPropertyKey(argument)
        // https://tc39.github.io/ecma262/#sec-ispropertykey
        function IsPropertyKey(argument) {
            switch (Type(argument)) {
                case 3 /* String */: return true;
                case 4 /* Symbol */: return true;
                default: return false;
            }
        }
        // 7.3 Operations on Objects
        // https://tc39.github.io/ecma262/#sec-operations-on-objects
        // 7.3.9 GetMethod(V, P)
        // https://tc39.github.io/ecma262/#sec-getmethod
        function GetMethod(V, P) {
            var func = V[P];
            if (func === undefined || func === null)
                return undefined;
            if (!IsCallable(func))
                throw new TypeError();
            return func;
        }
        // 7.4 Operations on Iterator Objects
        // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects
        function GetIterator(obj) {
            var method = GetMethod(obj, iteratorSymbol);
            if (!IsCallable(method))
                throw new TypeError(); // from Call
            var iterator = method.call(obj);
            if (!IsObject(iterator))
                throw new TypeError();
            return iterator;
        }
        // 7.4.4 IteratorValue(iterResult)
        // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue
        function IteratorValue(iterResult) {
            return iterResult.value;
        }
        // 7.4.5 IteratorStep(iterator)
        // https://tc39.github.io/ecma262/#sec-iteratorstep
        function IteratorStep(iterator) {
            var result = iterator.next();
            return result.done ? false : result;
        }
        // 7.4.6 IteratorClose(iterator, completion)
        // https://tc39.github.io/ecma262/#sec-iteratorclose
        function IteratorClose(iterator) {
            var f = iterator["return"];
            if (f)
                f.call(iterator);
        }
        // 9.1 Ordinary Object Internal Methods and Internal Slots
        // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
        // 9.1.1.1 OrdinaryGetPrototypeOf(O)
        // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof
        function OrdinaryGetPrototypeOf(O) {
            var proto = Object.getPrototypeOf(O);
            if (typeof O !== "function" || O === functionPrototype)
                return proto;
            // TypeScript doesn't set __proto__ in ES5, as it's non-standard.
            // Try to determine the superclass constructor. Compatible implementations
            // must either set __proto__ on a subclass constructor to the superclass constructor,
            // or ensure each class has a valid `constructor` property on its prototype that
            // points back to the constructor.
            // If this is not the same as Function.[[Prototype]], then this is definately inherited.
            // This is the case when in ES6 or when using __proto__ in a compatible browser.
            if (proto !== functionPrototype)
                return proto;
            // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.
            var prototype = O.prototype;
            var prototypeProto = prototype && Object.getPrototypeOf(prototype);
            if (prototypeProto == null || prototypeProto === Object.prototype)
                return proto;
            // If the constructor was not a function, then we cannot determine the heritage.
            var constructor = prototypeProto.constructor;
            if (typeof constructor !== "function")
                return proto;
            // If we have some kind of self-reference, then we cannot determine the heritage.
            if (constructor === O)
                return proto;
            // we have a pretty good guess at the heritage.
            return constructor;
        }
        // naive Map shim
        function CreateMapPolyfill() {
            var cacheSentinel = {};
            var arraySentinel = [];
            var MapIterator = /** @class */ (function () {
                function MapIterator(keys, values, selector) {
                    this._index = 0;
                    this._keys = keys;
                    this._values = values;
                    this._selector = selector;
                }
                MapIterator.prototype["@@iterator"] = function () { return this; };
                MapIterator.prototype[iteratorSymbol] = function () { return this; };
                MapIterator.prototype.next = function () {
                    var index = this._index;
                    if (index >= 0 && index < this._keys.length) {
                        var result = this._selector(this._keys[index], this._values[index]);
                        if (index + 1 >= this._keys.length) {
                            this._index = -1;
                            this._keys = arraySentinel;
                            this._values = arraySentinel;
                        }
                        else {
                            this._index++;
                        }
                        return { value: result, done: false };
                    }
                    return { value: undefined, done: true };
                };
                MapIterator.prototype.throw = function (error) {
                    if (this._index >= 0) {
                        this._index = -1;
                        this._keys = arraySentinel;
                        this._values = arraySentinel;
                    }
                    throw error;
                };
                MapIterator.prototype.return = function (value) {
                    if (this._index >= 0) {
                        this._index = -1;
                        this._keys = arraySentinel;
                        this._values = arraySentinel;
                    }
                    return { value: value, done: true };
                };
                return MapIterator;
            }());
            return /** @class */ (function () {
                function Map() {
                    this._keys = [];
                    this._values = [];
                    this._cacheKey = cacheSentinel;
                    this._cacheIndex = -2;
                }
                Object.defineProperty(Map.prototype, "size", {
                    get: function () { return this._keys.length; },
                    enumerable: true,
                    configurable: true
                });
                Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };
                Map.prototype.get = function (key) {
                    var index = this._find(key, /*insert*/ false);
                    return index >= 0 ? this._values[index] : undefined;
                };
                Map.prototype.set = function (key, value) {
                    var index = this._find(key, /*insert*/ true);
                    this._values[index] = value;
                    return this;
                };
                Map.prototype.delete = function (key) {
                    var index = this._find(key, /*insert*/ false);
                    if (index >= 0) {
                        var size = this._keys.length;
                        for (var i = index + 1; i < size; i++) {
                            this._keys[i - 1] = this._keys[i];
                            this._values[i - 1] = this._values[i];
                        }
                        this._keys.length--;
                        this._values.length--;
                        if (key === this._cacheKey) {
                            this._cacheKey = cacheSentinel;
                            this._cacheIndex = -2;
                        }
                        return true;
                    }
                    return false;
                };
                Map.prototype.clear = function () {
                    this._keys.length = 0;
                    this._values.length = 0;
                    this._cacheKey = cacheSentinel;
                    this._cacheIndex = -2;
                };
                Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };
                Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };
                Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };
                Map.prototype["@@iterator"] = function () { return this.entries(); };
                Map.prototype[iteratorSymbol] = function () { return this.entries(); };
                Map.prototype._find = function (key, insert) {
                    if (this._cacheKey !== key) {
                        this._cacheIndex = this._keys.indexOf(this._cacheKey = key);
                    }
                    if (this._cacheIndex < 0 && insert) {
                        this._cacheIndex = this._keys.length;
                        this._keys.push(key);
                        this._values.push(undefined);
                    }
                    return this._cacheIndex;
                };
                return Map;
            }());
            function getKey(key, _) {
                return key;
            }
            function getValue(_, value) {
                return value;
            }
            function getEntry(key, value) {
                return [key, value];
            }
        }
        // naive Set shim
        function CreateSetPolyfill() {
            return /** @class */ (function () {
                function Set() {
                    this._map = new _Map();
                }
                Object.defineProperty(Set.prototype, "size", {
                    get: function () { return this._map.size; },
                    enumerable: true,
                    configurable: true
                });
                Set.prototype.has = function (value) { return this._map.has(value); };
                Set.prototype.add = function (value) { return this._map.set(value, value), this; };
                Set.prototype.delete = function (value) { return this._map.delete(value); };
                Set.prototype.clear = function () { this._map.clear(); };
                Set.prototype.keys = function () { return this._map.keys(); };
                Set.prototype.values = function () { return this._map.values(); };
                Set.prototype.entries = function () { return this._map.entries(); };
                Set.prototype["@@iterator"] = function () { return this.keys(); };
                Set.prototype[iteratorSymbol] = function () { return this.keys(); };
                return Set;
            }());
        }
        // naive WeakMap shim
        function CreateWeakMapPolyfill() {
            var UUID_SIZE = 16;
            var keys = HashMap.create();
            var rootKey = CreateUniqueKey();
            return /** @class */ (function () {
                function WeakMap() {
                    this._key = CreateUniqueKey();
                }
                WeakMap.prototype.has = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? HashMap.has(table, this._key) : false;
                };
                WeakMap.prototype.get = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? HashMap.get(table, this._key) : undefined;
                };
                WeakMap.prototype.set = function (target, value) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ true);
                    table[this._key] = value;
                    return this;
                };
                WeakMap.prototype.delete = function (target) {
                    var table = GetOrCreateWeakMapTable(target, /*create*/ false);
                    return table !== undefined ? delete table[this._key] : false;
                };
                WeakMap.prototype.clear = function () {
                    // NOTE: not a real clear, just makes the previous data unreachable
                    this._key = CreateUniqueKey();
                };
                return WeakMap;
            }());
            function CreateUniqueKey() {
                var key;
                do
                    key = "@@WeakMap@@" + CreateUUID();
                while (HashMap.has(keys, key));
                keys[key] = true;
                return key;
            }
            function GetOrCreateWeakMapTable(target, create) {
                if (!hasOwn.call(target, rootKey)) {
                    if (!create)
                        return undefined;
                    Object.defineProperty(target, rootKey, { value: HashMap.create() });
                }
                return target[rootKey];
            }
            function FillRandomBytes(buffer, size) {
                for (var i = 0; i < size; ++i)
                    buffer[i] = Math.random() * 0xff | 0;
                return buffer;
            }
            function GenRandomBytes(size) {
                if (typeof Uint8Array === "function") {
                    if (typeof crypto !== "undefined")
                        return crypto.getRandomValues(new Uint8Array(size));
                    if (typeof msCrypto !== "undefined")
                        return msCrypto.getRandomValues(new Uint8Array(size));
                    return FillRandomBytes(new Uint8Array(size), size);
                }
                return FillRandomBytes(new Array(size), size);
            }
            function CreateUUID() {
                var data = GenRandomBytes(UUID_SIZE);
                // mark as random - RFC 4122 § 4.4
                data[6] = data[6] & 0x4f | 0x40;
                data[8] = data[8] & 0xbf | 0x80;
                var result = "";
                for (var offset = 0; offset < UUID_SIZE; ++offset) {
                    var byte = data[offset];
                    if (offset === 4 || offset === 6 || offset === 8)
                        result += "-";
                    if (byte < 16)
                        result += "0";
                    result += byte.toString(16).toLowerCase();
                }
                return result;
            }
        }
        // uses a heuristic used by v8 and chakra to force an object into dictionary mode.
        function MakeDictionary(obj) {
            obj.__ = undefined;
            delete obj.__;
            return obj;
        }
    });
})(Reflect || (Reflect = {}));

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47), __webpack_require__(27)))

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

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || new Function("return this")();
} catch (e) {
	// This works if the window reference is available
	if (typeof window === "object") g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


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

var api = __webpack_require__(14);
            var content = __webpack_require__(49);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(55);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(57);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

module.exports = isObject;


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

var freeGlobal = __webpack_require__(59);

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

module.exports = root;


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

var root = __webpack_require__(32);

/** Built-in value references. */
var Symbol = root.Symbol;

module.exports = Symbol;


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

var api = __webpack_require__(14);
            var content = __webpack_require__(69);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(71);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(73);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(75);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

var api = __webpack_require__(14);
            var content = __webpack_require__(77);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

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

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ("data:font/woff;base64,d09GRgABAAAAAAegAAsAAAAACuQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8fUlKY21hcAAAAYAAAABhAAABnLSHHfpnbHlmAAAB5AAAA68AAASgVJbFr2hlYWQAAAWUAAAALwAAADYbRAwIaGhlYQAABcQAAAAdAAAAJAjVBHxobXR4AAAF5AAAABAAAAAQEPcAAGxvY2EAAAX0AAAACgAAAAoDDAF+bWF4cAAABgAAAAAfAAAAIAEWAI9uYW1lAAAGIAAAAUUAAAJtPlT+fXBvc3QAAAdoAAAANQAAAEYyoIw9eJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BksWOcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByesT6XZG7438AQw9zI0AQUZgTJAQDztAxDeJztkLsNgDAMRJ/zQQixQDZIQYkYiIrJwxjBdigYgrOeZZ8sFwdkICqbkkAuBNOprrgfWdxPHLrPWgFabvUuvX8nl/jF7FOwzzLxa/W+v1u01AaWcasDy/UuA+IDALcSRgAAAHicbVNPb9xEFJ8345mxd22P7bXXm6TZDbtdO9vsev/bDZBESQMpSpdkF6pKICUCJSFEVCAhREAQmlbiRjlwoRcEQlUluPIB+AIc+gkq+AScyoldxht6As/4+T17nsf+/UEYockZeUrO0XvoFKFqEMrBOOMmyMDCID3DCIfRtJ4+jpM4WYV+HMRBEwJZxH7ez8t7eA1WoZu/qNOxBtOUCTBBXryijH5x+iZeXYUkglDuUwTykWfWG9ziC0XKIcNIaW+/qKgcFuYFNVm/5+QyUZQldr2uUCA0q+8URKdtzMQJE0wUi2CBLfb254mqgjM/aznvzIlWSyPWLU5BHpQuNQTRWm3KxmeDI4IPBoMjDEcFlTo2BkV4xGBxUkrXFpPYsRyVYOx6Knd2dm3HKF8mOhOlkquu2DM3b/qZvIcxUXPCet8yZM98EruqkctqNX3utZFwsptMz9gVmxlKpZx1rNdHnP4Eh9uvyq0PBzeOEJG4f6H8Re6gTfQZ+lwib0KYwvmfGUG/G5Kumy/B/0w/Dd1OSoikCHrPev7txkFYKadkStTlEr/zrMu/6C+CV/GTCjm+ev6S45imYRuGLgSzLRzXsWHQqH1y59Fxq4G1DBeC9NdJLqfZtiUsV6GmyMzODX9esUHLLoEZRTir48W3l7mTMyx77ornasNv1/OQUSu55Pya6+jCMoRJFdsib21Aq3vy5aN3G4s1CaBEkxCFUpoyWGqAKfgLX23/PUHDB9cUQ9cci/SrOKNSxpgiNQAYMOlfdaoZnUBz+GCDCqG0bswQzihVGMXQbtpVXcvqV8LpWkIoYMbw0ghe/HowmSCEVMnBr+Qx2UcrkoUBGqED9AH6BN1FCGIqZSolO5Wqlyq/CakfOCvLJHXBBcJxEga9NUld0pZpBFM3QIVxP4mp5+elG0KWyCqEQBFQSlmQrkjp6sstfCl/aYLVNHHznbgXVLl0i9/xY/jwD9gzrFS83Hu5vVX5wSgQK+pwtawVNLu9camQ4VmqYM+rYU0tUZ15/olp0pUnWQ0SSDYMvD3miu3Wiju9He2++gq+++f4x9v44E38zW+reD3HKIwfx9cBrsf9NPYvBcFytTr+BT5twy5RFvHZ7z44hhsMlu59PNxkT1aoaR67FoGypjpNAC5hJSrpvFElmq8tUNPpNmxSML6/DHQc1Z4bQTQrfwDmd+qn2n1tC99Tn06U41vQ++6Q3j4NNsv4Id6K4y2AND4P1eX0E0wo7WIDb6F/AHQqoOoAeJxjYGRgYABimYOCNvH8Nl8ZuFkYQOD2tCdsCPp/Hct35kYgl4OBCSQKABcZCpcAeJxjYGRgYG7438AQw/KdAQiAJCMDKmABAHF+BFsAAAAEAAAABAAAAAT3AAAEAAAAAAAAAAC8AX4CUAAAeJxjYGRgYGBhaGbgYAABJiDmAkIGhv9gPgMAFjkBpgB4nGWPTU7DMBCFX/oHpBKqqGCH5AViASj9EatuWFRq911036ZOmyqJI8et1ANwHo7ACTgC3IA78EgnmzaWx9+8eWNPANzgBx6O3y33kT1cMjtyDRe4F65TfxBukF+Em2jjVbhF/U3YxzOmwm10YXmD17hi9oR3YQ8dfAjXcI1P4Tr1L+EG+Vu4iTv8CrfQ8erCPuZeV7iNRy/2x1YvnF6p5UHFockikzm/gple75KFrdLqnGtbxCZTg6BfSVOdaVvdU+zXQ+ciFVmTqgmrOkmMyq3Z6tAFG+fyUa8XiR6EJuVYY/62xgKOcQWFJQ6MMUIYZIjK6Og7VWb0r7FDwl57Vj3N53RbFNT/c4UBAvTPXFO6stJ5Ok+BPV8bUnV0K27LnpQ0kV7NSRKyQl7WtlRC6gE2ZVeOEXpc0Yk/KGdI/wAJWm7IAAAAeJxjYGKAAC4G7ICFkYmRmZGFkZWBvTi1pCQzL52jKiM/L70qI5M9ozQ/KzMxj4EBAJBPCZYAAAA=");

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

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ("data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8fUlKAAABfAAAAFZjbWFwtIcd+gAAAeQAAAGcZ2x5ZlSWxa8AAAOMAAAEoGhlYWQbRAwIAAAA4AAAADZoaGVhCNUEfAAAALwAAAAkaG10eBD3AAAAAAHUAAAAEGxvY2EDDAF+AAADgAAAAAptYXhwARYAjwAAARgAAAAgbmFtZT5U/n0AAAgsAAACbXBvc3QyoIw9AAAKnAAAAEYAAQAAA4D/gABcBPcAAAAABPcAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAABzBETxfDzz1AAsEAAAAAADbluQGAAAAANuW5AYAAP9+BPcDgQAAAAgAAgAAAAAAAAABAAAABACDAAgAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQ+AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5gXnGQOA/4AAXAOBAIIAAAABAAAAAAAABAAAAAQAAAAE9wAABAAAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAADmBeYo5xn//wAA5gXmKOcZ//8AAAAAAAAAAQAIAAgACAAAAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAOYFAADmBQAAAAEAAOYoAADmKAAAAAIAAOcZAADnGQAAAAMAAAAAALwBfgJQAAAAAgAA/34D9gOBAGwAeAAAJSYnJicmBgcGBw4BBwYHBicmBwYnJicuAicuAQcGBwYmJyYnJjY3Njc+ATU2JjYmLwEmNzY3NhcWFxY2Nz4CPwE+ATMWNzYXFhcWFxYXFj8BNhcWFxYGDwEOARcWBhUeARcWFx4BBwYHBgclPgE3LgEnDgEHHgEDdRUOLC0HEAcgHgUHAQoGAx9eXx4ECAcBIB0PBQ4GNTQSEwouLgsDESwsBAUBAwULDE8YDzIxDRk2NwYPBg8eHgEQAREPXl8dAwgIARIdGhASZxsPMDAJAxBXBwUBAQEBBQUrLQ8DCTAxBQb+fk1mAwJkTU1mAgFmGAgFEhECAQQPFQMNBjY3HwEBAQEeNzYSEBIIAwICFBUIBxJPUBESDSIkAwwGDx8fFAg9ERlVVRcKFhUCAgMIEw8QbxANAQEBHTc2FAgNEwsJKQwbU1IPEgtEBgwKESMRBg0EIyILEhBUUgcFqgFlS05mAwJlTUxmAAMAAP9/BPcDgABEAHwAfQAAJQ4BJyYvASYvASYvASYvASYvASYvASYvAS4BNTMnAzMUFh8BFh8BFh8BFh8BFh8BFh8BFh8BFhcWHwEWMzI2Nz4BJy4BATQmLwEmLwEuAS8BJi8BJi8CJicjIgYHDgEXHgE3PgEXMh8BFh8BFhcWFxYfARYfAR4BFSMXNyMDaDiBRRISDg4NEQ0NDA8PBhEQAjYsAg0NBS4xaoCnaDAtAgkKBw8PAzVBAxMTCREREA8QFAQFDg8KGhtRqz0RAQkLKwEOLi4CCwwCKGI5BxITDRARGyoVFAlRmEEWAQoIIxM3gUMUEgwPEA0PDgUEERADYUIBMDNqhqdpLSgpAQEBAgIDAwMEBQUFAwgIAR8tAQ4PBzuNS/3/AFGZQwQNDAkSEAM1JQIKCAUGBgYEBAUBAQIBAgM1OBIlCgwDAS9RmUIFDw8EMEwZAwcGBQUEBgUCATEvESUMCQsMKicBAgECAwMDBQECBgYCK1IBPI9N//8AAAAIAAD/wAPRA18APQBEAE0AUgBkAHAAeQCCAAABNgUeAQcXFgYHBgcGBxUGBwYmLwEGBwYnBwYiLwEGJyYnJi8BJi8BJjY3JyY0PwEnJjcxNjcnLgE3Njc2FwEjBgcXNzYFFRcWMxY3JwY3Bxc3JwEmBA8BHwE3PgE/ATY3PgEnNQUeARcOAQcuASc+ARcOARQWMjY0JiUHBg8BFzIXNgFz4gFeDRABAQEFBxVGMUcjoQ0YAxAuMgcIIgkYCRExQhwYCgcLBQQCFRUpAgkIHwUMBhUXag4OBT3fCwkBNwE3Qg0CS/4HBBEUKR5PNE8JjghJAoLw/qNtAmRbApPNPgJBEwYFAf7RNkgBAUg2NUgBAUg1HCYmOSUl/rQBejEBUAMEKAJ+4RcBEg0UJk0rg3dRRAbfPQUODmgUEAMBIgkIEi8BAQcDAwUDCAMyWiUDCRcJIAUOEjMtEQMYDaAkAQX+LikhUgEuGgEBBQEdTyx4CY4JRwKDCPb/BGhXATSeZQVteCZEIgKlAkc2NkcBAUc2Nkc6ASU5JiY5JQ4BH1ACDQJHAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAgEDAQQBBQAHc2V0dGluZwh6aG9uZ3poaQdodW9qaWFuAAAAAA==");

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

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJpY29uZm9udCIgaG9yaXotYWR2LXg9IjEwMjQiID4NCiAgPGZvbnQtZmFjZQ0KICAgIGZvbnQtZmFtaWx5PSJpY29uZm9udCINCiAgICBmb250LXdlaWdodD0iNTAwIg0KICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIg0KICAgIHVuaXRzLXBlci1lbT0iMTAyNCINCiAgICBhc2NlbnQ9Ijg5NiINCiAgICBkZXNjZW50PSItMTI4Ig0KICAvPg0KICAgIDxtaXNzaW5nLWdseXBoIC8+DQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InNldHRpbmciIHVuaWNvZGU9IiYjNTg4ODU7IiBkPSJNODg1LjE5Njk1OCAyNC40NzE4NTVjLTE0Ljc1MzE0MSA1LjQ2NDEyNi0yNS4xMzQ5ODEgOC43NDI2MDItMzQuOTcwNDA4IDEyLjU2NzQ5LTMwLjA1MjY5NSAxMS40NzQ2NjUtNTkuMDEyNTY0IDI0LjU4ODU2OC04OS42MTE2NzEgMzQuOTcwNDA4LTguNzQyNjAyIDIuNzMyMDYzLTIxLjMxMDA5MyAxLjYzOTIzOC0yOS41MDYyODItMi43MzIwNjMtMjEuMzEwMDkzLTEwLjM4MTg0LTQyLjA3Mzc3My0yMi40MDI5MTgtNjEuNzQ0NjI3LTM2LjA2MzIzNC02LjU1Njk1Mi00LjM3MTMwMS0xMi4wMjEwNzgtMTQuMjA2NzI4LTEzLjY2MDMxNi0yMi40MDI5MTgtNi41NTY5NTItMzYuMDYzMjM0LTExLjQ3NDY2NS03Mi42NzI4OC0xNS44NDU5NjYtMTA5LjI4MjUyNi0yLjczMjA2My0yMC43NjM2OC0xMi41Njc0OS0zMC4wNTI2OTUtMzMuODc3NTgzLTI5LjUwNjI4Mi02Mi44Mzc0NTIgMC41NDY0MTMtMTI1LjY3NDkwNSAwLjU0NjQxMy0xODguNTEyMzU3IDAtMjAuNzYzNjggMC0zMS42OTE5MzMgOC4xOTYxODktMzQuNDIzOTk2IDI4Ljk1OTg2OS00LjkxNzcxNCAzNi42MDk2NDYtMTAuOTI4MjUzIDcyLjY3Mjg4LTE1LjI5OTU1NCAxMDkuMjgyNTI2LTEuNjM5MjM4IDEyLjU2NzQ5LTYuMDEwNTM5IDIwLjIxNzI2Ny0xOC4wMzE2MTcgMjYuMjI3ODA2LTIwLjIxNzI2NyA5LjgzNTQyNy0zOC4yNDg4ODQgMjMuNDk1NzQzLTU4LjQ2NjE1MSAzMy4zMzExNy03LjEwMzM2NCAzLjgyNDg4OC0xOC4wMzE2MTcgNS40NjQxMjYtMjUuNjgxMzk0IDIuNzMyMDYzLTM1LjUxNjgyMS0xMi41Njc0OS02OS45NDA4MTctMjYuNzc0MjE5LTEwNC45MTEyMjUtNDAuNDM0NTM1LTI1LjEzNDk4MS05LjgzNTQyNy0zMi4yMzgzNDUtNy42NDk3NzctNDYuNDQ1MDc0IDE2LjM5MjM3OS0zMS4xNDU1MiA1My4wMDIwMjUtNjEuNzQ0NjI3IDEwNi4wMDQwNS05Mi4zNDM3MzUgMTU5LjAwNjA3NS0xNC4yMDY3MjggMjQuNTg4NTY4LTEzLjY2MDMxNiAzMC41OTkxMDcgOC43NDI2MDIgNDguMDg0MzExIDI5LjUwNjI4MiAyMy40OTU3NDMgNTkuNTU4OTc3IDQ1Ljg5ODY2MSA4OC41MTg4NDYgNjkuOTQwODE3IDUuNDY0MTI2IDQuMzcxMzAxIDkuMjg5MDE1IDE0LjIwNjcyOCA5LjI4OTAxNSAyMS4zMTAwOTMgMS4wOTI4MjUgMjAuMjE3MjY3LTMuMjc4NDc2IDQxLjUyNzM2IDAgNjEuMTk4MjE1IDMuODI0ODg4IDIxLjMxMDA5My00LjkxNzcxNCAzMi4yMzgzNDUtMjAuMjE3MjY3IDQzLjcxMzAxLTI3LjMyMDYzMiAxOS42NzA4NTUtNTIuNDU1NjEzIDQxLjUyNzM2LTc5LjIyOTgzMSA2MS4xOTgyMTUtMTUuODQ1OTY2IDEyLjAyMTA3OC0xOS42NzA4NTUgMjQuNTg4NTY4LTkuMjg5MDE1IDQyLjA3Mzc3MyAzMy4zMzExNyA1Ni4yODA1MDEgNjYuMTE1OTI4IDExMy4xMDc0MTQgOTguOTAwNjg2IDE2OS45MzQzMjggOS4yODkwMTUgMTUuODQ1OTY2IDIxLjMxMDA5MyAxOS4xMjQ0NDIgMzguMjQ4ODg0IDEyLjU2NzQ5IDM2LjA2MzIzNC0xNC4yMDY3MjggNzIuMTI2NDY3LTI4Ljk1OTg2OSAxMDguNzM2MTEzLTQyLjA3Mzc3MyA3LjY0OTc3Ny0yLjczMjA2MyAxOS42NzA4NTUtMS4wOTI4MjUgMjcuMzIwNjMyIDIuNzMyMDYzIDIwLjc2MzY4IDEwLjM4MTg0IDM5LjM0MTcwOSAyNC4wNDIxNTYgNjAuMTA1Mzg5IDM0LjQyMzk5NiAxMC45MjgyNTMgNS40NjQxMjYgMTQuNzUzMTQxIDEyLjAyMTA3OCAxNS44NDU5NjYgMjIuOTQ5MzMgNC45MTc3MTQgMzcuMTU2MDU5IDEwLjkyODI1MyA3NC4zMTIxMTggMTUuODQ1OTY2IDExMS40NjgxNzdDMzg2LjMyMjIyNiA4ODguMzUwMjIzIDM5Ny43OTY4OTIgODk2IDQxOC4wMTQxNTkgODk2YzYyLjgzNzQ1Mi0wLjU0NjQxMyAxMjUuNjc0OTA1LTAuNTQ2NDEzIDE4OC41MTIzNTcgMCAxOS42NzA4NTUgMCAzMC41OTkxMDctOC4xOTYxODkgMzIuNzg0NzU4LTI3Ljg2NzA0NCA0LjkxNzcxNC0zNi42MDk2NDYgMTAuOTI4MjUzLTcyLjY3Mjg4IDE1LjI5OTU1NC0xMDkuMjgyNTI2IDEuNjM5MjM4LTEzLjY2MDMxNiA2LjU1Njk1Mi0yMS44NTY1MDUgMTkuNjcwODU1LTI3Ljg2NzA0NCAxOS4xMjQ0NDItOC43NDI2MDIgMzcuMTU2MDU5LTE5LjY3MDg1NSA1NC42NDEyNjMtMzEuNjkxOTMzIDExLjQ3NDY2NS04LjE5NjE4OSAyMS4zMTAwOTMtOC4xOTYxODkgMzMuODc3NTgzLTIuNzMyMDYzIDMzLjg3NzU4MyAxNC4yMDY3MjggNjguMzAxNTc5IDI2Ljc3NDIxOSAxMDIuNzI1NTc1IDQwLjk4MDk0NyAxOS4xMjQ0NDIgNy42NDk3NzcgMzIuMjM4MzQ1IDMuODI0ODg4IDQyLjYyMDE4NS0xNC43NTMxNDEgMzEuMTQ1NTItNTUuMTg3Njc2IDYzLjkzMDI3OC0xMDkuODI4OTM5IDk1LjYyMjIxLTE2NC40NzAyMDIgMTIuNTY3NDktMjEuODU2NTA1IDEwLjkyODI1My0yOC45NTk4NjktOS4yODkwMTUtNDQuODA1ODM2LTI4Ljk1OTg2OS0yMi40MDI5MTgtNTcuOTE5NzM5LTQ1LjM1MjI0OC04Ny40MjYwMjEtNjcuNzU1MTY2LTkuODM1NDI3LTcuNjQ5Nzc3LTEyLjU2NzQ5LTE0Ljc1MzE0MS0xMS40NzQ2NjUtMjcuMzIwNjMyIDIuMTg1NjUxLTIyLjk0OTMzLTAuNTQ2NDEzLTQ2LjQ0NTA3NCAwLjU0NjQxMy02OS4zOTQ0MDQgMC41NDY0MTMtOC4xOTYxODkgNC4zNzEzMDEtMTguMDMxNjE3IDEwLjM4MTg0LTIyLjk0OTMzIDI4Ljk1OTg2OS0yNC4wNDIxNTYgNTkuMDEyNTY0LTQ2LjQ0NTA3NCA4OC41MTg4NDYtNjkuMzk0NDA0IDIwLjIxNzI2Ny0xNS44NDU5NjYgMjEuMzEwMDkzLTIyLjk0OTMzIDguNzQyNjAyLTQ0LjgwNTgzNi0zMi4yMzgzNDUtNTUuNzM0MDg4LTY0LjQ3NjY5LTExMC45MjE3NjQtOTcuMjYxNDQ4LTE2Ni4xMDk0NEM5MDEuMDQyOTI0IDM1Ljk0NjUyIDg5MS43NTM5MDkgMzAuNDgyMzk0IDg4NS4xOTY5NTggMjQuNDcxODU1ek01MTAuMzU3ODkzIDIwMy42OTUxOTdjOTguOTAwNjg2LTAuNTQ2NDEzIDE4MC44NjI1ODEgNzkuNzc2MjQ0IDE4MS40MDg5OTMgMTc3LjU4NDEwNSAwLjU0NjQxMyAxMDAuNTM5OTI0LTc5LjIyOTgzMSAxODEuOTU1NDA2LTE3OC42NzY5MyAxODIuNTAxODE5LTk5LjQ0NzA5OSAwLjU0NjQxMy0xODEuNDA4OTkzLTgwLjMyMjY1Ny0xODEuNDA4OTkzLTE3OS43Njk3NTVDMzMxLjEzNDU1MSAyODUuNjU3MDkyIDQxMi4wMDM2MiAyMDQuMjQxNjEgNTEwLjM1Nzg5MyAyMDMuNjk1MTk3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Inpob25nemhpIiB1bmljb2RlPSImIzU4OTIwOyIgZD0iTTg3MS45NzA5OSA0NS4xMDg4NDJhNDI1Ljk2Njg2MiA0MjUuOTY2ODYyIDAgMCAwLTI1NC4xMTQ4MTEtNzkuODIwNTg1Yy0xMS45Mzk1MjYgMC4xNTcwOTktMjMuNzM2MjM0IDEuMDg1NDExLTM1LjUxODY2MiAyLjAxMzcyMy00LjgxMjk0MyAwLjQ1NzAxNS05LjQ1NDUwNSAxLjIyODIyOS0xNC4yODE3MjkgMS45OTk0NDMtOS4zMTE2ODggMS4yMjgyMjktMTguNDY2Mjc2IDIuMzEzNjQtMjcuNDYzNzY2IDQuMjg0NTE4LTUuNTg0MTU2IDAuOTI4MzEyLTExLjE2ODMxMiAyLjYxMzU1Ni0xNi40NTI1NTIgMy44NTYwNjctOC44NDAzOTEgMS45OTk0NDItMTcuNjgwNzgxIDQuMDEzMTY2LTI2LjIyMTI1NSA2LjYyNjcyMy00LjA0MTcyOSAxLjU0MjQyNy03LjkxMjA3OCAyLjg1NjM0Ni0xMi4xMTA5MDcgNC42MTI5OTgtMTAuMDgyOTAxIDMuMjQxOTUzLTE5Ljk5NDQyMSA2Ljc4MzgyMS0yOS40Nzc0ODkgMTAuNzgyNzA2LTIuMTcwODIzIDAuOTI4MzEyLTQuMjg0NTE5IDEuODU2NjI1LTYuMzU1MzcgMi42MTM1NTctMTEuMTY4MzEyIDUuMjQxMzk1LTIyLjM1MDkwNyAxMC42MjU2MDctMzMuMDQ3OTIyIDE2LjMzODI5OC0wLjQ1NzAxNSAwLjMxNDE5OC0wLjkyODMxMiAwLjQ1NzAxNS0xLjQyODE3MyAwLjc3MTIxM2E0MzUuNTkyNzQ4IDQzNS41OTI3NDggMCAwIDAtOTguODE1Mjg2IDc1LjQ5MzIyMmMtMC40NTcwMTUgMC40NzEyOTctMC45MjgzMTIgMS4wODU0MTEtMS40MjgxNzMgMS41NDI0MjctOC45OTc0OSA5LjI0MDI3OS0xNy42ODA3ODEgMTguNzk0NzU2LTI1LjkwNzA1NyAyOS4xMjA0NDYtMS43MTM4MDggMi4xNTY1NDEtMy4yNTYyMzQgNC4xNTU5ODMtNS4xMjcxNDEgNi42MjY3MjNhNDQ1Ljc2MTMzOSA0NDUuNzYxMzM5IDAgMCAwLTk0Ljk0NDkzNyAyNzUuNDgwMjc5aDEwNS4zNTYzMThsLTEyNy4zNzg3NDUgMjUyLjA4NjgwNkwwIDQwNC4yNTE0OTJoMTA0LjM1NjU5N2E1MzYuMDY0NzE0IDUzNi4wNjQ3MTQgMCAwIDEgOTIuNTc0MTctMzAxLjQ0NDQ2MyAyMi41NjUxMzIgMjIuNTY1MTMyIDAgMCAxIDEuOTg1MTYtMy42NTYxMjJjNS45Njk3NjMtOC44Njg5NTQgMTIuODUzNTU2LTE2Ljg5NTI4NiAxOS4xNjYwODEtMjUuMDUwMTU0IDIuNTU2NDMtMi45NTYzMTggNC42ODQ0MDctNi4wNDExNzIgNy4yNDA4MzctOS40MjU5NDEgOS4zNjg4MTUtMTEuNTM5NjM3IDE5LjczNzM1LTIyLjY1MDgyMyAyOS45OTE2MzItMzMuNDkwNjU2IDEuMTQyNTM4LTEuMTI4MjU3IDEuOTg1MTYtMS45NzA4NzkgMi44NTYzNDYtMi45NTYzMThBNTIyLjYxMTMyNSA1MjIuNjExMzI1IDAgMCAxIDM3NS42MDk0ODQtNjEuNTYxMzk1YzEuMTI4MjU3LTAuNzE0MDg2IDIuMTI3OTc4LTEuMTI4MjU3IDMuMzk5MDUyLTEuOTcwODc4IDEyLjM1MzY5Ni02Ljc1NTI1OCAyNS4xMzU4NDQtMTMuMDk2MzQ2IDM3LjkwMzcwOS0xOC43MjMzNDggMy4yNzA1MTYtMS40MjgxNzMgNi4zOTgyMTUtMi45NTYzMTggOS41MTE2MzItNC4yODQ1MTggMTEuMDgyNjIyLTQuNzg0Mzc5IDIyLjQzNjU5Ny04LjcyNjEzNyAzMy44MDQ4NTQtMTIuODUzNTU3IDUuMzk4NDk0LTEuOTcwODc5IDEwLjY1NDE3LTMuNjU2MTIzIDE2LjE4MTE5OS01LjQ4NDE4NCA5Ljk5NzIxMS0yLjk1NjMxOCAyMC4xNjU4MDItNS40ODQxODQgMzAuNTM0MzM4LTcuODgzNTE1IDYuODEyMzg1LTEuNjg1MjQ0IDEzLjQ4MTk1My0zLjM3MDQ4OCAyMC40MzcxNTUtNC43ODQzNzlhNjAuMzk3NDM0IDYwLjM5NzQzNCAwIDAgMSA4LjM2OTA5My0xLjk3MDg3OWM5Ljc5NzI2Ni0xLjgyODA2MSAxOS40NTE3MTUtMi42NzA2ODMgMjkuMTA2MTY1LTMuOTQxNzU3IDMuNTU2MTUxLTAuNzE0MDg2IDcuMTQwODY1LTEuMjcxMDc0IDEwLjUxMTM1Mi0xLjY4NTI0NCAxNy40NjY1NTUtMS42ODUyNDQgMzQuNzkwMjkzLTIuODU2MzQ2IDUyLjI1Njg0OC0yLjg1NjM0NiAxMDYuMDU2MTIzIDAgMjM0LjM2MzE4IDMzLjkzMzM4OSAzMTMuNzI2NzUxIDEwOC44NDEwNiAyMy43MjE5NTMgMjIuNTIyMjg3IDE5LjEwODk1NCA1My4zNzA4MjMgOC44MjYxMDkgNjQuNzEwNTE2LTE0LjAzODk0IDE1LjcwOTkwMi00Ny4xMjk3MDcgMjEuNzUxMDc0LTc4LjE2MzkwNi0wLjU5OTgzM3ogbTI5NC4zMDM1OTkgMzE4Ljc2ODIwMUE1MzMuOTUxMDE4IDUzMy45NTEwMTggMCAwIDEgMTA3NC40MTQ1MDUgNjY0LjQ2NDYwM2MtMC44NTY5MDQgMS40MjgxNzMtMS40MjgxNzMgMi45NTYzMTgtMi4xMjc5NzggNC4yODQ1MTgtNy41MjY0NzEgMTAuNTU0MTk4LTE1LjE5NTc2IDIwLjI2NTc3NC0yMy4wMDc4NjYgMzAuMjQ4NzAzYTMzLjU5MDYyOCAzMy41OTA2MjggMCAwIDAtMi41NTY0MjkgMy42NTYxMjMgNTI0LjczOTMwMyA1MjQuNzM5MzAzIDAgMCAxLTE5NS4wODg0MjQgMTQ5LjE3MjY2NGMtMi4yNzA3OTUgMC44NDI2MjItNC4xMTMxMzggMS45NzA4NzktNi4zOTgyMTUgMi44NTYzNDYtMTIuMDY4MDYxIDUuMDcwMDE0LTI0LjQyMTc1NyA5LjQ0MDIyMy0zNi45MTgyNzEgMTMuNzk2MTUtNC4yODQ1MTkgMS40MjgxNzMtOC44MTE4MjcgMy4wOTkxMzUtMTMuMjEwNiA0LjUxMzAyNy0xMC45Mzk4MDUgMy4zNzA0ODgtMjEuNzIyNTEgNi4wNDExNzItMzIuODQ3OTc3IDguNzI2MTM3LTYuMTEyNTggMS40MjgxNzMtMTIuMzUzNjk2IDIuOTU2MzE4LTE4LjQ1MTk5NSA0LjI4NDUxOC0yLjk4NDg4MSAwLjU3MTI2OS01LjgyNjk0NiAxLjQyODE3My04Ljk1NDY0NCAyLjExMzY5Ni04LjIyNjI3NiAxLjQyODE3My0xNi4zMjQwMTcgMi4xMTM2OTYtMjQuNzA3MzkyIDMuMjQxOTUzLTUuODI2OTQ2IDAuNzE0MDg2LTExLjQyNTM4NCAxLjU0MjQyNy0xNy4wMzgxMDMgMi4xMTM2OTYtMTMuOTEwNDA0IDEuNDI4MTczLTI3LjY3Nzk5MiAxLjk3MDg3OS00MS40MTcwMTUgMi4xMTM2OTYtMi41NTY0MyAwLTQuOTcwMDQyIDAuNDE0MTctNy41MjY0NzIgMC40MTQxNy0wLjQyODQ1MiAwLTAuODU2OTA0LTAuMTQyODE3LTEuMjg1MzU2LTAuMTQyODE3YTUxMS44MDAwNTYgNTExLjgwMDA1NiAwIDAgMS0yOTguMTczOTQ3LTk2LjExNjAzOWMtMjkuNDc3NDktMjAuOTc5ODYxLTI1LjUyMTQ1LTUwLjU4NTg4Ni0xMi4zMzk0MTQtNjUuNTI0NTc1IDkuMzY4ODE1LTEwLjYxMTMyNSAzNy45NjA4MzctMjUuNTkyODU5IDYxLjE0MDA4NC03LjkxMjA3OCA3My4yNzk1NTQgNTUuNDk4ODAxIDE2Mi4yNjkwMSA4MC41Nzc1MTcgMjUxLjc4Njg5IDc5LjgwNjMwNCAxMi44NTM1NTYtMC4xNTcwOTkgMjUuNzA3MTEzLTAuNzcxMjEzIDM4LjE2MDc4MS0xLjk5OTQ0MiAzLjg4NDYzLTAuMzE0MTk4IDcuNTk3ODgtMC45MjgzMTIgMTEuNDI1MzgzLTEuNTQyNDI3YTMwMy43MTUyNTggMzAzLjcxNTI1OCAwIDAgMCAzMC43Mi00LjkyNzE5N2M0LjI4NDUxOS0wLjc3MTIxMyA4Ljg1NDY3Mi0xLjk5OTQ0MiAxMy4wMzkyMTktMi44NTYzNDUgMTAuMDgyOTAxLTIuMzEzNjQgMTkuNzA4Nzg3LTQuNjI3MjggMjkuMzIwMzkxLTcuNjk3ODUzYTY4LjkzNzkwOCA2OC45Mzc5MDggMCAwIDAgOC45OTc0ODktMy4yMjc2N2MxMS4xNjgzMTItMy42OTg5NjggMjIuMDM2NzA5LTcuNTU1MDM1IDMyLjU3NjYyNS0xMi4xNjgwMzQgMS4yNDI1MS0wLjMxNDE5OCAyLjE3MDgyMy0xLjIyODIyOSAzLjI1NjIzNC0xLjU0MjQyN2E0MzUuNzQ5ODQ3IDQzNS43NDk4NDcgMCAwIDAgMTYzLjY2ODYyLTEyNS4xMDc5NSA5LjU2ODc1OSA5LjU2ODc1OSAwIDAgMSAwLjYyODM5Ni0wLjkyODMxMiA0NDYuNDMyNTggNDQ2LjQzMjU4IDAgMCAwIDk4LjU0MzkzMy0yODAuNDA3NDc2SDk3MC4xNTc4OGwxMzMuNjQ4NDI0LTI1NS4wMDAyNzggMTY2Ljk2NzY5OSAyNTUuMTU3Mzc4eiBtMCAwIiAgaG9yaXotYWR2LXg9IjEyNzEiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaHVvamlhbiIgdW5pY29kZT0iJiM1OTE2MTsiIGQ9Ik0zNzEuNDU0IDYzNy45MjdjMTUwLjM2MiAxNDkuNTYyIDM0Mi43IDIxNy4zMjggNTc1Ljc4NCAyMDEuOTM1IDE2LjYzNC0xLjA5OSAyOS4wNjEtMTUuNTUzIDI3Ljg1Mi0zMi4wMDRsLTAuMDMzLTAuMzggMC4wMDItMS4xODcgMC4wMzItMS43NyAwLjUwMy0xNi4xNjVjMS40NjYtNTEuOTQtMC44MDEtMTAwLjQ2Ni0xMC42OTgtMTU4LjczNy0xNC42OTItODYuNS00My44NjQtMTcwLjY4LTkxLjItMjQ5LjcyOS0zMi4zMzMtNTMuOTk1LTcyLjA4LTEwMy44NDUtMTE5LjY5LTE0OS4wMTNhMzAuMTE2IDMwLjExNiAwIDAgMC0wLjM2Mi01LjU4NGMtMjMuNDMzLTE0Ny43Ny04OC41MzMtMjQ0LjEtMTk1LjQxOC0yODQuMzU3LTE3LjUyNi02LjYwMS0zNi42NzMgNC4zNTEtMzkuOTY0IDIyLjY3OWwtMC4xMSAwLjY1Ny0xNi4zMzUgMTAzLjgzM2MtMzAuNDUtMTMuMjEyLTYyLjQ2OC0yNS40Mi05Ni4wOTEtMzYuNThhMjkuODcgMjkuODcgMCAwIDAtMTQuNDYtMS4wOTRsLTM0LjYxMi0zNC42MTNjLTExLjUxMi0xMS41MTEtMzAuMDcyLTExLjY3Ni00MS43ODMtMC40OTVsLTAuNTA1IDAuNDkzLTE2LjczNCAxNi43MzNjLTMxLjc0NS0zMS4yNTgtNzEuMzk5LTQ1LjM0OS0xMTQuMzItNDUuMTYtMTguNDk0IDAuMDgyLTM2LjQ4IDIuODc3LTUyLjY0NyA3LjQ3NS02LjM2IDEuODEtMTIuMTk1IDMuODQzLTE3LjAwOCA1Ljg4Mi0yLjQzNyAxLjAzMi00LjYzNiAyLjA3NS02LjU3NCAzLjE0M2wtMS4yODggMC43MTctMS4xOTcgMC42ODYtMS4xMTMgMC42NjljLTQuMyAyLjY1My02Ljc5NyA1LjE2MS05Ljg0NSAxMS4wMzhsLTAuODIgMS42MjItMC4zOCAwLjg5N2MtMjguMzcyIDY2Ljk4My0xMy41OTQgMTI3LjkwNCA0MSAxNzcuMjIzbC0yLjg1MiAyLjg1M2MtMTEuNTEgMTEuNTEtMTEuNjc0IDMwLjA3LTAuNDkxIDQxLjc4M2wwLjQ5MyAwLjUwNSAzMC44MDkgMzAuODEtNS4wNjIgNS4yNmEyOS45MDYgMjkuOTA2IDAgMCAwLTYuMjkgMzEuNjY2bDAuMTcyIDAuNDI4YzEzLjgyMSAzMy42NzQgMjguNDQ4IDY1LjgyIDQzLjg3OCA5Ni40MzZMODguMjU1IDQwMy4xMmwtMC42NTggMC4xMWMtMTguMzI4IDMuMjkxLTI5LjI4IDIyLjQzOS0yMi42OCAzOS45NjRDMTA1LjE3NiA1NTAuMDggMjAxLjUwNiA2MTUuMTggMzQ5LjI3NiA2MzguNjEzYTI5Ljc4IDI5Ljc4IDAgMCAwIDE5LjM5Mi0zLjQ5NnogbTMwOC43MjMtNDY4LjYzOGwtMC43MDctMC41MTdjLTM2LjgyNy0yNi45NzktNzcuMjM3LTUxLjc2Ny0xMjEuMzY0LTc0LjIwNiAwLjExNS0wLjUgMC4yMi0xLjAwOSAwLjMxNC0xLjUyMmwwLjEyLTAuNzA2TDU3MSAxMy4xMjNsMi4wNDkgMS4yM2M0OS45OTEgMzAuNDg4IDg1LjcxMiA4MS42NzYgMTA3LjEyNyAxNTQuOTM2ek0xNDMuMTkgMzQuMzg4bDAuMzA3LTAuOTM2IDAuODEyLTAuMjU1IDEuNzg4LTAuNTQgMC45MjYtMC4yNjdjMTEuMTYzLTMuMTc1IDIzLjc5NS01LjEzNyAzNi41NTMtNS4xOTQgMjcuNTM2LTAuMTIxIDUxLjc3MyA4LjIyOSA3MS43NTIgMjcuNjU4bC03OS41NzIgNzkuNTdjLTM0LjgtMzAuMDU0LTQ0LjgwOS02MS45OTMtMzIuNTY2LTEwMC4wMzZ6IG01OS42ODQgMTc1LjIxbC04Ljg1NC04Ljg1NUwzMzUuNTE0IDU5LjI1bDguODI5IDguODMtOC45NDkgOC41NTctMjMuNDg1IDIyLjU4NS0xNS41NDUgMTUuMDA5LTI0Ljg3OCAyNC4xYTI5LjkwNCAyOS45MDQgMCAwIDAtMC43MiAwLjcyM2wtNjcuODkyIDcwLjU0NHogbTcwOS44MSA1NzIuMTA4Yy0zMjAuMzIgMTAuNTg5LTU1MS41ODItMTUyLjA2NC02OTguMDEtNDkyLjYyNmwtMS42MjItMy44MTRMMzEzLjQ3NSAxODAuOTJsMy45Ni0zLjg0NCAyNC45NTMtMjQuMTU4IDIyLjk5Ni0yMi4xNjggMjEuMDM5LTIwLjE3OCAxNy4zNDItMTYuNTM2IDEuODIzIDAuNjNjMTk3LjQ4IDY5LjI0MyAzMzEuNzkzIDE3Ni40MTMgNDE0LjI0NSAzMTEuNzE1bDIuNTYgNC4yMzdjNDMuMjkgNzIuMjkgNzAuMDM3IDE0OS40NzggODMuNTQ3IDIyOS4wMTYgOC43NTEgNTEuNTI1IDExLjA0OCA5NC44MjQgMTAuMDMzIDE0MC44MzVsLTAuMDI2IDEuMTF6IG0tMjk5LjIxLTE2NC45NDhjNjkuODY0IDAgMTI2LjUtNTYuNjQyIDEyNi41LTEyNi41MTUgMC02OS44NzItNTYuNjM2LTEyNi41MTUtMTI2LjUtMTI2LjUxNS02OS44NjUgMC0xMjYuNTAxIDU2LjY0My0xMjYuNTAxIDEyNi41MTUgMCA2OS44NzMgNTYuNjM2IDEyNi41MTUgMTI2LjUgMTI2LjUxNXogbTAtNTkuODA3Yy0zNi44MzggMC02Ni43MDEtMjkuODY2LTY2LjcwMS02Ni43MDhzMjkuODYzLTY2LjcwOCA2Ni43LTY2LjcwOGMzNi44MzggMCA2Ni43MDEgMjkuODY2IDY2LjcwMSA2Ni43MDhzLTI5Ljg2MyA2Ni43MDgtNjYuNyA2Ni43MDh6IG0tMzAzLjExNiAxMi44MzVsLTEuMjI2LTAuMzE1Yy04MS43ODQtMjAuNzYzLTEzOC4xNTQtNTcuOTI4LTE3MC43OTctMTExLjQ1MmwtMS4yMjctMi4wNDkgNzkuMjEyLTEyLjQ2MSAwLjcwNi0wLjEyYTI5LjkxNiAyOS45MTYgMCAwIDAgNi41NS0xLjk4YzI2LjggNDYuODgzIDU1LjczMiA4OS42OCA4Ni43ODIgMTI4LjM3N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KDQoNCiAgPC9mb250Pg0KPC9kZWZzPjwvc3ZnPg0K");

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

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

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

var isObject = __webpack_require__(31),
    now = __webpack_require__(58),
    toNumber = __webpack_require__(60);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        timeWaiting = wait - timeSinceLastCall;

    return maxing
      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
      : timeWaiting;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        clearTimeout(timerId);
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

module.exports = debounce;


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

var api = __webpack_require__(14);
            var content = __webpack_require__(45);

            content = content.__esModule ? content.default : content;

            if (typeof content === 'string') {
              content = [[module.i, content, '']];
            }

var options = {};

options.insert = "head";
options.singleton = false;

var update = api(content, options);



module.exports = content.locals || {};

/***/ }),
/* 45 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _iconfont_eot_t_1601225478916__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
/* harmony import */ var _iconfont_woff_t_1601225478916__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39);
/* harmony import */ var _iconfont_ttf_t_1601225478916__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40);
/* harmony import */ var _iconfont_svg_t_1601225478916__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41);
// Imports






var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_iconfont_eot_t_1601225478916__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]);
var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_iconfont_eot_t_1601225478916__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], { hash: "#iefix" });
var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_iconfont_woff_t_1601225478916__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]);
var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_iconfont_ttf_t_1601225478916__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]);
var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_iconfont_svg_t_1601225478916__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { hash: "#iconfont" });
// Module
___CSS_LOADER_EXPORT___.push([module.i, "@font-face {font-family: \"iconfont\";\r\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + "); /* IE9 */\r\n  src: url(" + ___CSS_LOADER_URL_REPLACEMENT_1___ + ") format('embedded-opentype'), \r\n  url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAX0AAsAAAAACuQAAAWnAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDHAqJIIcxATYCJAMQCwoABCAFhG0HRhshCVGUTk6I7EeBu6dQWIbGUDqJA9rlMhyE4pd/wx0P/419u29mvmra3aQGJPEMiUQySyQ2WSJBCZTOoWSaeIaNf3h2b6+R1d8/T24gWpp0ksPEg7k5nICNOUtHKGyEGql1iviBfCEFSi9N/1n6PzhmvCywPJvNJaN1OMBRAg0sIv6twB4sQPFF/iHe6jJvE2ha4Aa6ub++QEuhqwJqXoa+Ba2EWalghLquWrCzXI73KurpbWoD4J33+/EXzKJOUsn0u+483rmw/KH9XK15NDtyLx87Gc4Jdh8Zm4BCPC1031cNlJueullUXHMBUDe+k/ih/czpufr/jJJuRV1HEf7hJZmo0tVt0J5LZDI/tC2jkDVOwCPxU61xkaiyo44OcQgQX4BOnvOyJKu/6t2aG5drjcqw3WgcfOYm9Fgwz8ItTqz98oZBFQ4y2dKnyaZq0zaU5+EriS2b+sh0VbXj6QhBgAT/HapQeltfham2v5rECSph+2YVI2w2lJjN6kbrSvtWZ86Re2OJ4ipgkmWRyhrAccjJMK4SFkkWLlUURpZpUSQlaWabSG9yQHnUwRQ6eHST6Vo4teqcDBnSpOE8iUI4BKlERTeYWu0hxCH2XHZDq+FKhdhej/KHhs6X6eahU3Iy2pPDwcHf3WCwQiS31CDcQcdOhVrZBokoWkHY35izEmhSjMFIpWQ5BepasZ9IGkows/GbUPpILIuGsitQlzZesiDHPiXCdcxXudqr+0L7PWm+SqUwAjLYoI2kAmMxmEfBQVe6jYETxfRU+QEJU3lGhanxinplAFR8UbJuEGMvyTbNCt5yYt7Jlafnnyo9hK8JUysRJSDTKkHce6bkQ9k/MXqUNkd7PCgAhdAVNmUw9P/s8+huPMZX5bDePd09o8HaaO9+7xQdE4/05sPpoeNeeJEYeWk5VY4/zHrec8/UdIypkWnLf5UzblMma6raNvyyGuK0/ZVnlie+xvoXHTM4RR8kc+3UmKazr6zXehIYHk/O35oKBrsayVBa2eBUjVRocDmUClJoMPCf5z51nlMsMDPr7j6nce78gSdPsnS/mxWeMGvviL+FrUoZMffPpv/DcM8Kt2jLVdXDHr63iY20s3Z2XKSt/fXxZ18ssvvB+g198W2+lyGt5dubjD1w9wr3KHjXKcu5JSnLSlH7C180W9koTB8XsEiPTK3qaS6uw+c5RAPYfM/DT+ceiZFe2l+ti12icPB7tiZtxOJ/m/4NBxP+Hj4oQM98NNLU1kodAS+Im4Jlxsfo2NxrCL0w2910aO/A0nHmy6yWQiZRYM+UDaUt0QEWUXDOIotlqmnvY0/iIDoZbtajpIbW37NtWOTfDQ2LGmSEmyW7/1BDmBY87056ekj61GWrV09LjJ+/4L1u/tdR/yzLhubSZht82mrDyuHIURZTKcFqN4y0/QE/7OsVy/Kw9N7l9E+ar+bO3F763ixMMozbvby3Eg85wGxO9X/1mLDm1s6qR9kz1W7Nop97lvYn89Ci4cV/9dbH7frMP2mgcTanueeYP1QiS37lonIGcGSKDCylSKJisSeu5BSn6smEpmHjB84zdG8I7aSx5GfWTiIBeGvmAbK6RUTBbEJFyzmoqrsCTRsS9reMTFAVpYF1iwmEvt2QdH2ErK8dUTB3oWLqLVT1I0PT3Rid2LIczzo3hCwlF+0vDB3OPNOmHb/2ifwysSQu85hvJEUYw6kHls4dKCMZYk3x7s9UPfSEU9yT+yhJGHPhiBwdBar5Yuw5pOiTRg6n0HGDIBZFXKjUFzScg2U8p7PqZH7+CfGVEhapaCnzvyGiEI6OvHjAGiAO6qxRy6U0T/TONzMJkx40hK1mKRSPTpIYaYbGFU+LEIcaGdYhmVvwxHZDmqpH02vTOzwETfqJJVLkKFFRe02qYea3DgN2BPaksPm05Ci0MgAA') format('woff2'),\r\n  url(" + ___CSS_LOADER_URL_REPLACEMENT_2___ + ") format('woff'),\r\n  url(" + ___CSS_LOADER_URL_REPLACEMENT_3___ + ") format('truetype'), \r\n  url(" + ___CSS_LOADER_URL_REPLACEMENT_4___ + ") format('svg'); /* iOS 4.1- */\r\n}\r\n\r\n.iconfont {\r\n  font-family: \"iconfont\" !important;\r\n  font-size: 16px;\r\n  font-style: normal;\r\n  -webkit-font-smoothing: antialiased;\r\n  -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n.icon-setting:before {\r\n  content: \"\\e605\";\r\n}\r\n\r\n.icon-zhongzhi:before {\r\n  content: \"\\e628\";\r\n}\r\n\r\n.icon-huojian:before {\r\n  content: \"\\e719\";\r\n}\r\n\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var runtime = (function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.
  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function define(obj, key, value) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
    return obj[key];
  }
  try {
    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
    define({}, "");
  } catch (err) {
    define = function(obj, key, value) {
      return obj[key] = value;
    };
  }

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []);

    // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.
    generator._invoke = makeInvokeMethod(innerFn, self, context);

    return generator;
  }
  exports.wrap = wrap;

  // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.
  function tryCatch(fn, obj, arg) {
    try {
      return { type: "normal", arg: fn.call(obj, arg) };
    } catch (err) {
      return { type: "throw", arg: err };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed";

  // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.
  var ContinueSentinel = {};

  // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}

  // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.
  var IteratorPrototype = {};
  define(IteratorPrototype, iteratorSymbol, function () {
    return this;
  });

  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  if (NativeIteratorPrototype &&
      NativeIteratorPrototype !== Op &&
      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype =
    Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = GeneratorFunctionPrototype;
  define(Gp, "constructor", GeneratorFunctionPrototype);
  define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
  GeneratorFunction.displayName = define(
    GeneratorFunctionPrototype,
    toStringTagSymbol,
    "GeneratorFunction"
  );

  // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.
  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function(method) {
      define(prototype, method, function(arg) {
        return this._invoke(method, arg);
      });
    });
  }

  exports.isGeneratorFunction = function(genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor
      ? ctor === GeneratorFunction ||
        // For the native GeneratorFunction constructor, the best we can
        // do is to check its .name property.
        (ctor.displayName || ctor.name) === "GeneratorFunction"
      : false;
  };

  exports.mark = function(genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      define(genFun, toStringTagSymbol, "GeneratorFunction");
    }
    genFun.prototype = Object.create(Gp);
    return genFun;
  };

  // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.
  exports.awrap = function(arg) {
    return { __await: arg };
  };

  function AsyncIterator(generator, PromiseImpl) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);
      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;
        if (value &&
            typeof value === "object" &&
            hasOwn.call(value, "__await")) {
          return PromiseImpl.resolve(value.__await).then(function(value) {
            invoke("next", value, resolve, reject);
          }, function(err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return PromiseImpl.resolve(value).then(function(unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function(error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new PromiseImpl(function(resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise =
        // If enqueue has been called before, then we want to wait until
        // all previous Promises have been resolved before calling invoke,
        // so that results are always delivered in the correct order. If
        // enqueue has not been called before, then it is important to
        // call invoke immediately, without waiting on a callback to fire,
        // so that the async generator function has the opportunity to do
        // any necessary setup in a predictable way. This predictability
        // is why the Promise constructor synchronously invokes its
        // executor callback, and why async functions synchronously
        // execute code before the first await. Since we implement simple
        // async functions in terms of async generators, it is especially
        // important to get this right, even though it requires care.
        previousPromise ? previousPromise.then(
          callInvokeWithMethodAndArg,
          // Avoid propagating failures to Promises returned by later
          // invocations of the iterator.
          callInvokeWithMethodAndArg
        ) : callInvokeWithMethodAndArg();
    }

    // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).
    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
    return this;
  });
  exports.AsyncIterator = AsyncIterator;

  // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.
  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
    if (PromiseImpl === void 0) PromiseImpl = Promise;

    var iter = new AsyncIterator(
      wrap(innerFn, outerFn, self, tryLocsList),
      PromiseImpl
    );

    return exports.isGeneratorFunction(outerFn)
      ? iter // If outerFn is a generator, return the full iterator.
      : iter.next().then(function(result) {
          return result.done ? result.value : iter.next();
        });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;

    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        }

        // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;
        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);
          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;

        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);

        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;

        var record = tryCatch(innerFn, self, context);
        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done
            ? GenStateCompleted
            : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };

        } else if (record.type === "throw") {
          state = GenStateCompleted;
          // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.
          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  }

  // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.
  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];
    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError(
          "The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (! info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value;

      // Resume execution at the desired location (see delegateYield).
      context.next = delegate.nextLoc;

      // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.
      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }

    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    }

    // The delegate iterator is finished, so forget it and continue with
    // the outer generator.
    context.delegate = null;
    return ContinueSentinel;
  }

  // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.
  defineIteratorMethods(Gp);

  define(Gp, toStringTagSymbol, "Generator");

  // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.
  define(Gp, iteratorSymbol, function() {
    return this;
  });

  define(Gp, "toString", function() {
    return "[object Generator]";
  });

  function pushTryEntry(locs) {
    var entry = { tryLoc: locs[0] };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{ tryLoc: "root" }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function(object) {
    var keys = [];
    for (var key in object) {
      keys.push(key);
    }
    keys.reverse();

    // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.
    return function next() {
      while (keys.length) {
        var key = keys.pop();
        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      }

      // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.
      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];
      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1, next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;

          return next;
        };

        return next.next = next;
      }
    }

    // Return an iterator with no values.
    return { next: doneResult };
  }
  exports.values = values;

  function doneResult() {
    return { value: undefined, done: true };
  }

  Context.prototype = {
    constructor: Context,

    reset: function(skipTempReset) {
      this.prev = 0;
      this.next = 0;
      // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.
      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;

      this.method = "next";
      this.arg = undefined;

      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" &&
              hasOwn.call(this, name) &&
              !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },

    stop: function() {
      this.done = true;

      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;
      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },

    dispatchException: function(exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;
      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !! caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }

          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },

    abrupt: function(type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc <= this.prev &&
            hasOwn.call(entry, "finallyLoc") &&
            this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry &&
          (type === "break" ||
           type === "continue") &&
          finallyEntry.tryLoc <= arg &&
          arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },

    complete: function(record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" ||
          record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },

    finish: function(finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },

    "catch": function(tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;
          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }
          return thrown;
        }
      }

      // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.
      throw new Error("illegal catch attempt");
    },

    delegateYield: function(iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  };

  // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.
  return exports;

}(
  // If this script is executing as a CommonJS module, use module.exports
  // as the regeneratorRuntime namespace. Otherwise create a new empty
  // object. Either way, the resulting object will be used to initialize
  // the regeneratorRuntime variable at the top of this file.
   true ? module.exports : undefined
));

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, in modern engines
  // we can explicitly access globalThis. In older engines we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  if (typeof globalThis === "object") {
    globalThis.regeneratorRuntime = runtime;
  } else {
    Function("r", "regeneratorRuntime = r")(runtime);
  }
}


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

// shim for using process in browser
var process = module.exports = {};

// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.

var cachedSetTimeout;
var cachedClearTimeout;

function defaultSetTimout() {
    throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
    throw new Error('clearTimeout has not been defined');
}
(function () {
    try {
        if (typeof setTimeout === 'function') {
            cachedSetTimeout = setTimeout;
        } else {
            cachedSetTimeout = defaultSetTimout;
        }
    } catch (e) {
        cachedSetTimeout = defaultSetTimout;
    }
    try {
        if (typeof clearTimeout === 'function') {
            cachedClearTimeout = clearTimeout;
        } else {
            cachedClearTimeout = defaultClearTimeout;
        }
    } catch (e) {
        cachedClearTimeout = defaultClearTimeout;
    }
} ())
function runTimeout(fun) {
    if (cachedSetTimeout === setTimeout) {
        //normal enviroments in sane situations
        return setTimeout(fun, 0);
    }
    // if setTimeout wasn't available but was latter defined
    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
        cachedSetTimeout = setTimeout;
        return setTimeout(fun, 0);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedSetTimeout(fun, 0);
    } catch(e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
            return cachedSetTimeout.call(null, fun, 0);
        } catch(e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
            return cachedSetTimeout.call(this, fun, 0);
        }
    }


}
function runClearTimeout(marker) {
    if (cachedClearTimeout === clearTimeout) {
        //normal enviroments in sane situations
        return clearTimeout(marker);
    }
    // if clearTimeout wasn't available but was latter defined
    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
        cachedClearTimeout = clearTimeout;
        return clearTimeout(marker);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedClearTimeout(marker);
    } catch (e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
            return cachedClearTimeout.call(null, marker);
        } catch (e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
            return cachedClearTimeout.call(this, marker);
        }
    }



}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;

function cleanUpNextTick() {
    if (!draining || !currentQueue) {
        return;
    }
    draining = false;
    if (currentQueue.length) {
        queue = currentQueue.concat(queue);
    } else {
        queueIndex = -1;
    }
    if (queue.length) {
        drainQueue();
    }
}

function drainQueue() {
    if (draining) {
        return;
    }
    var timeout = runTimeout(cleanUpNextTick);
    draining = true;

    var len = queue.length;
    while(len) {
        currentQueue = queue;
        queue = [];
        while (++queueIndex < len) {
            if (currentQueue) {
                currentQueue[queueIndex].run();
            }
        }
        queueIndex = -1;
        len = queue.length;
    }
    currentQueue = null;
    draining = false;
    runClearTimeout(timeout);
}

process.nextTick = function (fun) {
    var args = new Array(arguments.length - 1);
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args[i - 1] = arguments[i];
        }
    }
    queue.push(new Item(fun, args));
    if (queue.length === 1 && !draining) {
        runTimeout(drainQueue);
    }
};

// v8 likes predictible objects
function Item(fun, array) {
    this.fun = fun;
    this.array = array;
}
Item.prototype.run = function () {
    this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;

process.listeners = function (name) { return [] }

process.binding = function (name) {
    throw new Error('process.binding is not supported');
};

process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Button_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Button_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Button_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n.my-button {\r\n  display: inline-block;\r\n  margin: 2px 0px;\r\n  padding: 5px 12px;\r\n  /* height: 20px; */\r\n  font-size: 20px;\r\n  cursor: pointer;\r\n  -webkit-user-select: none;\r\n      -ms-user-select: none;\r\n          user-select: none;\r\n  background-color: white;\r\n  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14),\r\n    0 1px 5px 0 rgba(0, 0, 0, 0.12);\r\n  font-family: \"华文新魏\", \"新宋体\";\r\n  border-radius: 4px;\r\n  line-height: normal;\n}\n.my-button:hover {\r\n  /* color: rgb(29, 161, 242); */\r\n  background-color: rgb(229, 229, 229);\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";

module.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);


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

"use strict";

var token = '%[a-f0-9]{2}';
var singleMatcher = new RegExp(token, 'gi');
var multiMatcher = new RegExp('(' + token + ')+', 'gi');

function decodeComponents(components, split) {
	try {
		// Try to decode the entire string first
		return decodeURIComponent(components.join(''));
	} catch (err) {
		// Do nothing
	}

	if (components.length === 1) {
		return components;
	}

	split = split || 1;

	// Split the array in 2 parts
	var left = components.slice(0, split);
	var right = components.slice(split);

	return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
}

function decode(input) {
	try {
		return decodeURIComponent(input);
	} catch (err) {
		var tokens = input.match(singleMatcher);

		for (var i = 1; i < tokens.length; i++) {
			input = decodeComponents(tokens, i).join('');

			tokens = input.match(singleMatcher);
		}

		return input;
	}
}

function customDecodeURIComponent(input) {
	// Keep track of all the replacements and prefill the map with the `BOM`
	var replaceMap = {
		'%FE%FF': '\uFFFD\uFFFD',
		'%FF%FE': '\uFFFD\uFFFD'
	};

	var match = multiMatcher.exec(input);
	while (match) {
		try {
			// Decode as big chunks as possible
			replaceMap[match[0]] = decodeURIComponent(match[0]);
		} catch (err) {
			var result = decode(match[0]);

			if (result !== match[0]) {
				replaceMap[match[0]] = result;
			}
		}

		match = multiMatcher.exec(input);
	}

	// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
	replaceMap['%C2'] = '\uFFFD';

	var entries = Object.keys(replaceMap);

	for (var i = 0; i < entries.length; i++) {
		// Replace all decoded components
		var key = entries[i];
		input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
	}

	return input;
}

module.exports = function (encodedURI) {
	if (typeof encodedURI !== 'string') {
		throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');
	}

	try {
		encodedURI = encodedURI.replace(/\+/g, ' ');

		// Try the built in decoder first
		return decodeURIComponent(encodedURI);
	} catch (err) {
		// Fallback to a more advanced decoder
		return customDecodeURIComponent(encodedURI);
	}
};


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

"use strict";


module.exports = (string, separator) => {
	if (!(typeof string === 'string' && typeof separator === 'string')) {
		throw new TypeError('Expected the arguments to be of type `string`');
	}

	if (separator === '') {
		return [string];
	}

	const separatorIndex = string.indexOf(separator);

	if (separatorIndex === -1) {
		return [string];
	}

	return [
		string.slice(0, separatorIndex),
		string.slice(separatorIndex + separator.length)
	];
};


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

"use strict";

module.exports = function (obj, predicate) {
	var ret = {};
	var keys = Object.keys(obj);
	var isArr = Array.isArray(predicate);

	for (var i = 0; i < keys.length; i++) {
		var key = keys[i];
		var val = obj[key];

		if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {
			ret[key] = val;
		}
	}

	return ret;
};


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_0_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_0_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_0_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n#welearn-helper {\r\n  top: 100px;\r\n  left: 100px;\r\n  z-index: 99;\r\n  position: fixed;\r\n\r\n  min-width: 300px;\r\n  max-width: 500px;\r\n\r\n  background: rgba(255, 255, 255, 0.95);\r\n  border-radius: 8px;\r\n  box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2),\r\n    0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);\r\n\r\n  font-family: Georgia, \"Times New Roman\", Times, serif;\r\n  line-height: normal\n}\n#welearn-helper:not(:hover) {\r\n    filter: brightness(98%);\n}\n#container-title {\r\n  cursor: grab;\r\n  -webkit-user-select: none;\r\n      -ms-user-select: none;\r\n          user-select: none;\r\n\r\n  font-size: 28px;\r\n  text-align: center;\r\n\r\n  background: rgba(0, 0, 0, 0);\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_1_id_09cda38c_scoped_true_lang_postcss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_1_id_09cda38c_scoped_true_lang_postcss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Panel_vue_vue_type_style_index_1_id_09cda38c_scoped_true_lang_postcss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n#container-setting-button[data-v-09cda38c] {\r\n  position: absolute;\r\n  top: 3px;\r\n  left: 3px;\r\n\r\n  font-size: 23px;\r\n\r\n  cursor: pointer\n}\n#container-setting-button[data-v-09cda38c]:hover {\r\n    color: rgb(0, 230, 227);\n}\n#container-control button[data-v-09cda38c] {\r\n  font-size: 16px;\n}\n#container-messages[data-v-09cda38c] {\r\n  /* margin: 0 10px; */\r\n  border: black 1px solid;\r\n  max-height: 400px;\r\n  overflow-y: auto\n}\n#container-messages .error[data-v-09cda38c] {\r\n    color: red;\n}\n#container-messages .success[data-v-09cda38c] {\r\n    color: green;\n}\n#container-messages .info[data-v-09cda38c] {\r\n    color: #2196f3;\n}\n#container-messages hr[data-v-09cda38c] {\r\n    margin: 5px 0px;\n}\n.container-message[data-v-09cda38c] {\r\n  font-size: 18px;\r\n  /* white-space: pre-wrap; */\r\n  position: relative;\r\n  animation: content_slide_in-data-v-09cda38c 0.5s;\r\n  animation-timing-function: ease-out;\r\n\r\n  margin: 5px 10px;\r\n  padding: 0px;\r\n  padding-bottom: 3px;\r\n  line-height: 120%\n}\n.container-message[data-v-09cda38c]:hover:not(hr) {\r\n    padding-bottom: 1px;\r\n    border-bottom: 2px solid black;\r\n    cursor: copy;\n}\n@keyframes content_slide_in-data-v-09cda38c {\nfrom {\r\n    left: -50%;\r\n    opacity: 0;\n}\nto {\r\n    left: 0%;\r\n    opacity: 1;\n}\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

var root = __webpack_require__(32);

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

module.exports = now;


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

/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

module.exports = freeGlobal;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(27)))

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

var baseTrim = __webpack_require__(61),
    isObject = __webpack_require__(31),
    isSymbol = __webpack_require__(63);

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = baseTrim(value);
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

module.exports = toNumber;


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

var trimmedEndIndex = __webpack_require__(62);

/** Used to match leading whitespace. */
var reTrimStart = /^\s+/;

/**
 * The base implementation of `_.trim`.
 *
 * @private
 * @param {string} string The string to trim.
 * @returns {string} Returns the trimmed string.
 */
function baseTrim(string) {
  return string
    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
    : string;
}

module.exports = baseTrim;


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

/** Used to match a single whitespace character. */
var reWhitespace = /\s/;

/**
 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
 * character of `string`.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {number} Returns the index of the last non-whitespace character.
 */
function trimmedEndIndex(string) {
  var index = string.length;

  while (index-- && reWhitespace.test(string.charAt(index))) {}
  return index;
}

module.exports = trimmedEndIndex;


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

var baseGetTag = __webpack_require__(64),
    isObjectLike = __webpack_require__(67);

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && baseGetTag(value) == symbolTag);
}

module.exports = isSymbol;


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

var Symbol = __webpack_require__(33),
    getRawTag = __webpack_require__(65),
    objectToString = __webpack_require__(66);

/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

module.exports = baseGetTag;


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

var Symbol = __webpack_require__(33);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

module.exports = getRawTag;


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

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;


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

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Arrow_vue_vue_type_style_index_0_id_1867e7ca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Arrow_vue_vue_type_style_index_0_id_1867e7ca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Arrow_vue_vue_type_style_index_0_id_1867e7ca_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n/* 旋转箭头 */\nsvg.arrow-down[data-v-1867e7ca] {\r\n  position: relative;\r\n  top: 5px;\r\n  left: 0px;\r\n  transition-duration: 0.6s;\n}\nsvg.arrow-down.opened[data-v-1867e7ca] {\r\n  transform: rotate(180deg);\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Switch_vue_vue_type_style_index_0_id_49997743_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Switch_vue_vue_type_style_index_0_id_49997743_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Switch_vue_vue_type_style_index_0_id_49997743_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n/* 限定label标签属性,也就是checkbox的包装器 */\nlabel[data-v-49997743] {\r\n  position: relative;\r\n  display: inline-block;\r\n  width: 50px;\r\n  height: 25px;\r\n  /* margin: 2px 5px;\r\n    border: black 1px solid; */\r\n  border-radius: 38px;\r\n  /* vertical-align: middle; */\n}\r\n\r\n/* 不显示checkbox本身,通过点击外部的label实现点击input的效果 */\nlabel input[data-v-49997743] {\r\n  opacity: 0;\r\n  width: 0;\r\n  height: 0;\n}\r\n\r\n/* 未选中,滑条效果 */\n#slider[data-v-49997743] {\r\n  position: absolute;\r\n  z-index: 11;\r\n  /* cursor: pointer; */\r\n  top: 0;\r\n  left: 0;\r\n  right: 0;\r\n  bottom: 0;\r\n  transition: 0.4s;\r\n  border-radius: 38px;\r\n  background-color: rgb(234, 234, 234);\n}\r\n\r\n/* 未选中,点击时滑条效果 */\ninput:not(:checked):active ~ #slider[data-v-49997743] {\r\n  background-color: rgb(187, 187, 187);\n}\r\n\r\n/* 选中时,滑条效果 */\ninput:checked ~ #slider[data-v-49997743] {\r\n  background-color: #2196f3;\n}\n#switch[data-v-49997743] {\r\n  position: absolute;\r\n  z-index: 12;\r\n  height: 23px;\r\n  width: 23px;\r\n  left: 1px;\r\n  bottom: 1px;\r\n  background-color: white;\r\n  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 0 rgba(0, 0, 0, 0.08);\r\n  border-radius: 50%;\n}\r\n\r\n/* 未选中,点击时滑块效果 */\ninput:active + #switch[data-v-49997743] {\r\n  border-radius: 38px;\r\n  animation-name: widen_to_right-data-v-49997743;\r\n  animation-duration: 0.4s;\r\n  animation-fill-mode: forwards;\n}\r\n\r\n/* 已选中,点击时滑块效果 */\ninput:checked:active + #switch[data-v-49997743] {\r\n  animation-name: widen_to_left-data-v-49997743;\r\n  animation-duration: 0.4s;\r\n  animation-fill-mode: forwards;\n}\r\n\r\n/* 滑块点击右移效果 */\ninput:checked + #switch[data-v-49997743] {\r\n  animation-name: slide_to_right-data-v-49997743;\r\n  animation-duration: 0.2s;\r\n  animation-fill-mode: forwards;\n}\r\n\r\n/* 滑块点击左移效果 */\ninput:not(:checked):not(:active) + #switch[data-v-49997743] {\r\n  left: 1%;\r\n  animation-name: slide_to_left-data-v-49997743;\r\n  animation-duration: 0.2s;\r\n  animation-fill-mode: forwards;\n}\n@keyframes slide_to_right-data-v-49997743 {\n0% {\r\n    width: 36px;\n}\r\n\r\n  /* 80% { */\r\n  /* border-radius: 10px; */\r\n  /* } */\n100% {\r\n    left: 26px;\n}\n}\n@keyframes slide_to_left-data-v-49997743 {\n0% {\r\n    width: 36px;\n}\r\n\r\n  /* 80% { */\r\n  /* border-radius: 10px; */\r\n  /* } */\n100% {\r\n    left: 1%;\n}\n}\n@keyframes widen_to_right-data-v-49997743 {\n100% {\r\n    width: 36px;\n}\n}\n@keyframes widen_to_left-data-v-49997743 {\n0% {\r\n    left: 26px;\n}\n100% {\r\n    left: 13px;\r\n    width: 36px;\n}\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_ToggleSlide_vue_vue_type_style_index_0_id_0ce9de17_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_ToggleSlide_vue_vue_type_style_index_0_id_0ce9de17_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_ToggleSlide_vue_vue_type_style_index_0_id_0ce9de17_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n\n\n\n\n\n\n\n\n\n\r\n/* 抽屉 */\n.toggle-slide-leave-active[data-v-0ce9de17],\r\n.toggle-slide-enter-active[data-v-0ce9de17] {\r\n  transition: all 0.6s;\n}\n.toggle-slide-enter[data-v-0ce9de17],\r\n.toggle-slide-leave-to[data-v-0ce9de17] {\r\n  max-height: 0;\r\n  opacity: 0;\n}\n.toggle-slide-enter-to[data-v-0ce9de17],\r\n.toggle-slide-leave[data-v-0ce9de17] {\r\n  max-height: 300px;\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n#helper-setting {\r\n  /* display: none; */\r\n  position: fixed;\r\n\r\n  top: 20%;\r\n  left: 20%;\r\n  z-index: 101;\r\n\r\n  background: rgba(255, 255, 255, 0.95);\r\n  border: black 2px solid;\r\n  border-radius: 20px;\r\n\r\n  margin: 0 auto;\r\n  /* transform: translate(-50%, 0%); */\r\n  /* animation: slide_in 0.8s;\r\n  animation-timing-function: ease-out; */\n}\n#container-setting-title {\r\n  cursor: grab;\r\n  -webkit-user-select: none;\r\n      -ms-user-select: none;\r\n          user-select: none;\r\n\r\n  font-size: 28px;\r\n  font-family: \"华文新魏\", \"新宋体\";\r\n  text-align: center;\r\n  line-height: normal;\r\n\r\n  background: rgba(0, 0, 0, 0);\r\n  margin-top: 10px;\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

"use strict";
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_1_id_f29285f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_1_id_f29285f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_style_loader_1_3_0_webpack_4_46_0_node_modules_style_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_cjs_js_ref_2_1_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_registry_npmmirror_com_postcss_loader_4_3_0_postcss_7_0_39_webpack_4_46_0_node_modules_postcss_loader_dist_cjs_js_node_modules_pnpm_registry_npmmirror_com_vue_loader_15_9_8_db042e1948601ea2df0ed1200e87bffe_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_1_id_f29285f4_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


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

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
// Imports

var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_registry_npmmirror_com_css_loader_4_3_0_webpack_4_46_0_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "\n#container-setting-base[data-v-f29285f4] {\r\n  display: table;\r\n  /* margin: 20px; */\r\n\r\n  font-size: 16px;\r\n  line-height: 100%;\n}\n@keyframes slide_in-data-v-f29285f4 {\nfrom {\r\n    left: 0%;\r\n    opacity: 0;\n}\n80% {\r\n    left: 53%;\n}\nto {\r\n    left: 50%;\r\n    opacity: 1;\n}\n}\ndiv.section[data-v-f29285f4] {\r\n  margin: 0 10px;\n}\ndiv.title[data-v-f29285f4] {\r\n  text-align: center;\r\n  font-size: 24px;\r\n  cursor: pointer;\r\n  margin-bottom: 5px;\n}\ndiv.body[data-v-f29285f4] {\r\n  overflow: hidden;\n}\r\n\r\n/* -------------------- */\ndiv.record[data-v-f29285f4] {\r\n  display: table-row;\r\n  text-align: center;\r\n  margin: 5px 0px;\r\n  padding: 5px;\n}\n.record-left[data-v-f29285f4] {\r\n  display: table-cell;\r\n  cursor: pointer;\r\n  width: 80px;\n}\r\n\r\n/* 中间部分居中对齐的实现 */\n.record-middle[data-v-f29285f4] {\r\n  display: table-cell;\r\n  text-align: center;\r\n  min-width: 100px;\r\n  max-width: 100px;\r\n  min-height: 25px;\r\n  margin: 2px 5px;\r\n  padding: 0px;\n}\n.record-middle .input[data-v-f29285f4] {\r\n  width: 80px;\r\n  height: 21px;\r\n  text-align: center;\r\n  font-size: 16px;\n}\n.record-middle .my-switch[data-v-f29285f4] {\r\n  vertical-align: middle;\r\n  margin: 2px 5px;\n}\n.record-middle .readonly[data-v-f29285f4] {\r\n  min-height: 25px;\r\n  margin-top: 5px;\n}\r\n/* -------------------- */\n.record-right[data-v-f29285f4] {\r\n  display: table-cell;\r\n  text-align: left;\n}\nhr[data-v-f29285f4] {\r\n  margin: 5px;\n}\n#container-setting-footer[data-v-f29285f4] {\r\n  display: flex;\r\n  justify-content: center;\r\n  /* justify-content: flex-end; */\r\n  margin: 5px 0;\n}\n#container-setting-footer .my-button[data-v-f29285f4] {\r\n  margin: 0 5px;\n}\r\n", ""]);
// Exports
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);


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

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

// EXTERNAL MODULE: ./assets/iconfont/iconfont.css
var iconfont = __webpack_require__(44);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(0);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./src/store/index.ts
var store = __webpack_require__(1);

// EXTERNAL MODULE: ./src/utils/common.ts + 1 modules
var common = __webpack_require__(4);

// CONCATENATED MODULE: ./src/utils/settings.ts



function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

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; }

// 放置通用(全局)设置
var settings_controlCenter = [{
  title: "用户",
  display: true,
  settings: [{
    id: "userAccount",
    name: "身份令牌",
    default: "default",
    valueType: "string",
    description: "随意设定,累计每个人贡献的题目数量"
  }, {
    id: "userPoints",
    name: "累计积分",
    type: "readonly",
    default: 0,
    valueType: "number",
    description: "上传答案获取,暂无用处"
  } // {
  //     //离线模式应该不是让用户手动选择的,而是连接服务器失败之后自动操作的,作为备用方案
  //     id: "targetApi",
  //     name: "接口选择",
  //     type: "selection",
  //     default: 1,
  //     description: "默认使用哪个查题接口",
  // },
  ]
}, {
  title: "悬浮窗",
  display: true,
  settings: [{
    id: "autoCopy",
    name: "自动复制",
    type: "switch",
    default: true,
    description: "开启时,点击悬浮窗的对应消息自动复制到粘贴板"
  }, {
    id: "autoSlide",
    name: "自动下滑",
    type: "switch",
    default: true,
    description: "有新消息时,窗口是否自动下滑到新消息处"
  }]
}];
/**
 * 合并所有插件的设置
 */

function mergeSettings(controlCenter, pluginSettings) {
  var _iterator = _createForOfIteratorHelper(pluginSettings),
      _step;

  try {
    var _loop = function _loop() {
      var target = _step.value;
      if (!controlCenter.some(function (section) {
        return section.title == target.title;
      })) controlCenter.push({
        title: target.title,
        display: target.display,
        settings: []
      });
      var index = void 0;

      for (var i = 0; i < controlCenter.length; i++) {
        if (controlCenter[i].title == target.title) {
          index = i;
        }
      }

      if (typeof index == "undefined") throw Error("error during get index ");

      var _iterator2 = _createForOfIteratorHelper(target.settings),
          _step2;

      try {
        var _loop2 = function _loop2() {
          var generic = _step2.value;
          var settings = controlCenter[index].settings;
          if (!settings.some(function (setting) {
            return setting.id == generic.id;
          })) controlCenter[index].settings.push(generic);
        };

        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
          _loop2();
        }
      } catch (err) {
        _iterator2.e(err);
      } finally {
        _iterator2.f();
      }
    };

    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      _loop();
    } //todo 根据当前页面,动态设置display

  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }
} //*-----------------------------------------------------------------------------------



/**
 * 通过集成了所有插件设置的设置中心,设置USER_SETTINGS的默认值
 */

function setDefaultValues(controlCenter) {
  //todo 是都需要检查gm取出的值的合法性?
  var _iterator3 = _createForOfIteratorHelper(controlCenter),
      _step3;

  try {
    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
      var section = _step3.value;

      var _iterator4 = _createForOfIteratorHelper(section.settings),
          _step4;

      try {
        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
          var generic = _step4.value;

          if (store["e" /* store */].USER_SETTINGS[generic.id] == undefined) {
            store["e" /* store */].USER_SETTINGS[generic.id] = generic.default;
          }
        }
      } catch (err) {
        _iterator4.e(err);
      } finally {
        _iterator4.f();
      }
    }
  } catch (err) {
    _iterator3.e(err);
  } finally {
    _iterator3.f();
  }
}
function returnDefaultValues() {
  var _iterator5 = _createForOfIteratorHelper(settings_controlCenter),
      _step5;

  try {
    for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
      var section = _step5.value;

      var _iterator6 = _createForOfIteratorHelper(section.settings),
          _step6;

      try {
        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
          var generic = _step6.value;
          store["e" /* store */].USER_SETTINGS[generic.id] = generic.default;
        }
      } catch (err) {
        _iterator6.e(err);
      } finally {
        _iterator6.f();
      }
    }
  } catch (err) {
    _iterator5.e(err);
  } finally {
    _iterator5.f();
  }
}
/**
 * 应该最先读取油猴设置,完成USER_SETTINGS的初始化,有很多功能都是基于设置动态变化的
 *
 * 这样能保证执行各插件的initial时,USER_SETTINGS已经初始化完成,不会出现USER_SETTINGS为空的情况
 *
 * 实验表明,即使先初始化USER_SETTINGS, 仍旧先执行完毕plugin的initial,可以视为使用GM方法是异步执行的
 *
 * 所以此处执行完毕,USER_SETTINGS还是可能为空,需要手动在插件的initial中timeout
 *
 * 或者手动控制执行顺序以保证USER_SETTINGS不为空
 */

function initialUserSettings() {
  return _initialUserSettings.apply(this, arguments);
}

function _initialUserSettings() {
  _initialUserSettings = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
    var _yield$import, pluginSettings, flag;

    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 22));

          case 2:
            _yield$import = _context.sent;
            pluginSettings = _yield$import.pluginSettings;
            mergeSettings(settings_controlCenter, pluginSettings);
            generateSettingType(settings_controlCenter); //唯一false情况为gm下server模式调整ui

            flag =  false ? undefined : store["b" /* DEBUG_MODE */] ? false : true;

            if (!flag) {
              _context.next = 12;
              break;
            }

            _context.next = 10;
            return Object(common["b" /* getValue */])("USER_SETTINGS", {});

          case 10:
            store["e" /* store */].USER_SETTINGS = _context.sent;
            setDefaultValues(settings_controlCenter);

          case 12:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _initialUserSettings.apply(this, arguments);
}

var SETTING_TYPES = {};
/**为自动转换input事件值的类型,而提取每个设置的类型 */

function generateSettingType(controlCenter) {
  //在mergeSettings之后调用,此时的controlCenter已包含所有插件的设置
  var _iterator7 = _createForOfIteratorHelper(controlCenter),
      _step7;

  try {
    for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
      var section = _step7.value;

      var _iterator8 = _createForOfIteratorHelper(section.settings),
          _step8;

      try {
        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
          var generic = _step8.value;

          if (generic.type === "switch") {
            SETTING_TYPES[generic.id] = "boolean";
          } else {
            SETTING_TYPES[generic.id] = generic.valueType;
          }
        }
      } catch (err) {
        _iterator8.e(err);
      } finally {
        _iterator8.f();
      }
    }
  } catch (err) {
    _iterator7.e(err);
  } finally {
    _iterator7.f();
  }
}
// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/sweetalert2/dist/sweetalert2.all.js
var sweetalert2_all = __webpack_require__(20);
var sweetalert2_all_default = /*#__PURE__*/__webpack_require__.n(sweetalert2_all);

// CONCATENATED MODULE: ./src/initial.ts




 //用户协议

Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
  var status;
  return regenerator_default.a.wrap(function _callee$(_context) {
    while (1) {
      switch (_context.prev = _context.next) {
        case 0:
          if (!/\.sflep\.com/.test(location.href)) {
            _context.next = 8;
            break;
          }

          if (store["b" /* DEBUG_MODE */]) {
            _context.next = 8;
            break;
          }

          _context.t0 = eval;
          _context.next = 5;
          return Object(common["b" /* getValue */])("acceptAgreement", false);

        case 5:
          _context.t1 = _context.sent;
          status = (0, _context.t0)(_context.t1);

          if (!status) {
            sweetalert2_all_default.a.fire({
              title: "使用须知",
              width: 700,
              html: "\n                <div style=\"text-align: left;\">\n                    <li>\u672C\u811A\u672C\u4EC5\u4F9B\u4E2A\u4EBA\u5B66\u4E60\u4EA4\u6D41\u4F7F\u7528\uFF0C\u52FF\u7528\u4E8E\u4EFB\u4F55\u8FDD\u6CD5\u4E0E\u5546\u4E1A\u884C\u4E3A</li>\n                    <li>\u672C\u811A\u672C\u5B8C\u5168\u5F00\u6E90\u514D\u8D39\uFF0C\u57FA\u4E8EGPL3.0\uFF0C\u6B22\u8FCE\u4E00\u8D77<a href=\"https://github.com/SSmJaE/WELearnHelper\" target=\"_blank\">\u5F00\u53D1</a></li>\n                    <li>\u56E0\u4F7F\u7528\u672C\u811A\u672C\u9020\u6210\u7684\u4EFB\u4F55\u95EE\u9898\uFF0C\u5747\u7531\u4F7F\u7528\u8005\u672C\u4EBA\u627F\u62C5</li>\n                    <li>\u53CD\u9988\u95EE\u9898\u8BF7\u5E26\u622A\u56FE + \u9898\u76EE\u94FE\u63A5 + \u5177\u4F53\u63CF\u8FF0</li>\n                </div>\n                ",
              icon: "warning",
              confirmButtonText: "接受",
              allowOutsideClick: false,
              showCancelButton: false
            }).then(function (result) {
              if (result.isConfirmed) {
                sweetalert2_all_default.a.fire({
                  title: "使用提示",
                  width: 700,
                  html: "\n                        <div style=\"text-align: left;\">\n                            <li>\u6B64\u5904\u4EC5\u5305\u542B\u90E8\u5206\u4F7F\u7528\u65B9\u6CD5\uFF0C\u8BE6\u60C5\u8BF7\u81EA\u884C\u9605\u8BFB\u5B89\u88C5\u9875\u9762</li>\n                            <li>\u70B9\u51FB\u9F7F\u8F6E\u8FDB\u884C\u529F\u80FD\u8BBE\u5B9A</li>\n                            <li>\u5DE6\u952E\u6309\u4F4F\u201CWELearn Helper\u201D\u65B9\u53EF\u62D6\u52A8\u60AC\u6D6E\u7A97</li>\n                            <li>\u53CC\u51FB\u201CWELearn Helper\u201D\u5C55\u5F00\u60AC\u6D6E\u7A97</li>\n                        </div>\n                        ",
                  icon: "info"
                });
                Object(common["g" /* setValue */])("acceptAgreement", true);
              }
            });
          }

        case 8:
        case "end":
          return _context.stop();
      }
    }
  }, _callee);
}))();
// EXTERNAL MODULE: external "Vue"
var external_Vue_ = __webpack_require__(13);
var external_Vue_default = /*#__PURE__*/__webpack_require__.n(external_Vue_);

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]/node_modules/vue-ripple-directive/src/ripple.js
var Ripple = {
    bind: function(el, binding){

        // Default values.
        var props = {
            event: 'mousedown',
            transition: 600
        };

        setProps(Object.keys(binding.modifiers),props);

        el.addEventListener(props.event, function(event) {
            rippler(event, el, binding.value);
        });

        var bg = binding.value || Ripple.color || 'rgba(0, 0, 0, 0.35)';
        var zIndex = Ripple.zIndex || '9999';

        function rippler(event, el) {
            var target = el;
            // Get border to avoid offsetting on ripple container position
            var targetBorder = parseInt((getComputedStyle(target).borderWidth).replace('px', ''));

            // Get necessary variables
            var rect        = target.getBoundingClientRect(),
                left        = rect.left,
                top         = rect.top,
                width       = target.offsetWidth,
                height      = target.offsetHeight,
                dx          = event.clientX - left,
                dy          = event.clientY - top,
                maxX        = Math.max(dx, width - dx),
                maxY        = Math.max(dy, height - dy),
                style       = window.getComputedStyle(target),
                radius      = Math.sqrt((maxX * maxX) + (maxY * maxY)),
                border      = (targetBorder > 0 ) ? targetBorder : 0;

            // Create the ripple and its container
            var ripple = document.createElement("div"),
                rippleContainer = document.createElement("div");
                rippleContainer.className = 'ripple-container';
                ripple.className = 'ripple';

            //Styles for ripple
            ripple.style.marginTop= '0px';
            ripple.style.marginLeft= '0px';
            ripple.style.width= '1px';
            ripple.style.height= '1px';
            ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';
            ripple.style.borderRadius= '50%';
            ripple.style.pointerEvents= 'none';
            ripple.style.position= 'relative';
            ripple.style.zIndex= zIndex;
            ripple.style.backgroundColor  = bg;

            //Styles for rippleContainer
            rippleContainer.style.position= 'absolute';
            rippleContainer.style.left = 0 - border + 'px';
            rippleContainer.style.top = 0 - border + 'px';
            rippleContainer.style.height = '0';
            rippleContainer.style.width = '0';
            rippleContainer.style.pointerEvents = 'none';
            rippleContainer.style.overflow = 'hidden';

            // Store target position to change it after
            var storedTargetPosition =  ((target.style.position).length > 0) ? target.style.position : getComputedStyle(target).position;
            // Change target position to relative to guarantee ripples correct positioning
            if (storedTargetPosition !== 'relative') {
                target.style.position = 'relative';
            }

            rippleContainer.appendChild(ripple);
            target.appendChild(rippleContainer);

            ripple.style.marginLeft   = dx + "px";
            ripple.style.marginTop    = dy + "px";

            // No need to set positioning because ripple should be child of target and to it's relative position.
            // rippleContainer.style.left    = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + "px";
            // rippleContainer.style.top     = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + "px";
            rippleContainer.style.width   = width + "px";
            rippleContainer.style.height  = height + "px";
            rippleContainer.style.borderTopLeftRadius  = style.borderTopLeftRadius;
            rippleContainer.style.borderTopRightRadius  = style.borderTopRightRadius;
            rippleContainer.style.borderBottomLeftRadius  = style.borderBottomLeftRadius;
            rippleContainer.style.borderBottomRightRadius  = style.borderBottomRightRadius;

            rippleContainer.style.direction = 'ltr';

            setTimeout(function() {
                ripple.style.width  = radius * 2 + "px";
                ripple.style.height = radius * 2 + "px";
                ripple.style.marginLeft   = dx - radius + "px";
                ripple.style.marginTop    = dy - radius + "px";
            }, 0);

            function clearRipple() {
                setTimeout(function() {
                    ripple.style.backgroundColor = "rgba(0, 0, 0, 0)";
                }, 250);

                // Timeout set to get a smooth removal of the ripple
                setTimeout(function() {
                    rippleContainer.parentNode.removeChild(rippleContainer);
                }, 850);

                el.removeEventListener('mouseup', clearRipple, false);

                // After removing event set position to target to it's original one
                // Timeout it's needed to avoid jerky effect of ripple jumping out parent target
                setTimeout(function () {

                    var clearPosition = true;
                    for(var i = 0; i < target.childNodes.length; i++) {
                        if(target.childNodes[i].className === 'ripple-container') {
                            clearPosition = false;
                        }
                    }

                    if(clearPosition) {
                        if(storedTargetPosition !== 'static') {
                            target.style.position = storedTargetPosition;
                        } else {
                            target.style.position = '';
                        }
                    }

                }, props.transition + 250)
            }

            if(event.type === 'mousedown') {
                el.addEventListener('mouseup', clearRipple, false);
            } else {
                clearRipple();
            }
        }
    }
};

function setProps(modifiers,props) {
    modifiers.forEach(function(item) {
        if(isNaN(Number(item)))
            props.event = item;
        else
            props.transition = item;
    });
}

/* harmony default export */ var ripple = (Ripple);
// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/Panel.vue?vue&type=template&id=09cda38c&scoped=true&
var render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: !_vm.store.collapse,
          expression: "!store.collapse",
        },
      ],
      attrs: { id: "container-panel" },
    },
    [
      _c("div", {
        staticClass: "iconfont icon-setting",
        attrs: { id: "container-setting-button" },
        on: {
          click: function ($event) {
            return _vm.showSetting()
          },
        },
      }),
      _vm._v(" "),
      _c(
        "div",
        { attrs: { id: "container-control" } },
        [
          _c("Button", {
            attrs: { label: "折叠" },
            on: {
              click: function ($event) {
                return _vm.collapsePanel()
              },
            },
          }),
          _vm._v(" "),
          _c("Button", {
            attrs: {
              label: "Github",
              onclick:
                "window.open('https://github.com/SSmJaE/WELearnHelper','_blank')",
              title: "本项目的仓库",
            },
          }),
          _vm._v(" "),
          _c("Button", {
            attrs: {
              label: "交流群",
              onclick:
                "window.open('https://jq.qq.com/?_wv=1027&k=5AyCT4l','_blank')",
            },
          }),
          _vm._v(" "),
          _vm.store.showExamQueryButton
            ? _c("Button", {
                attrs: {
                  id: "container-check",
                  label: "查询",
                  title:
                    "查询班级测试的答案,不一定有答案,如果没有答案,会返回每个选项的被其它同学选择的次数",
                },
                on: {
                  click: function ($event) {
                    return _vm.getAnswers()
                  },
                },
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.store.showExamUploadButton
            ? _c("Button", {
                attrs: {
                  label: "上传",
                  title:
                    "尝试收录任务页面的所有任务的答案,建议做完一个测试之后上传一次",
                },
                on: {
                  click: function ($event) {
                    return _vm.upload()
                  },
                },
              })
            : _vm._e(),
        ],
        1
      ),
      _vm._v(" "),
      _c(
        "div",
        { attrs: { id: "container-messages" } },
        _vm._l(_vm.store.messages, function (message, index) {
          return _c("div", {
            key: index,
            staticClass: "container-message",
            class: message.type,
            domProps: {
              innerHTML: _vm._s(message.type == "hr" ? "<hr>" : message.info),
            },
            on: {
              click: function ($event) {
                return _vm.autoCopy(message.info)
              },
            },
          })
        }),
        0
      ),
    ]
  )
}
var staticRenderFns = []
render._withStripped = true


// CONCATENATED MODULE: ./src/views/Panel.vue?vue&type=template&id=09cda38c&scoped=true&

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/inherits.js
var inherits = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/typeof.js
var esm_typeof = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/reflect-metadata/Reflect.js
var reflect_metadata_Reflect = __webpack_require__(26);

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected][email protected]/node_modules/vue-class-component/dist/vue-class-component.esm.js
/**
  * vue-class-component v7.2.6
  * (c) 2015-present Evan You
  * @license MIT
  */


function _typeof(obj) {
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function (obj) {
      return typeof obj;
    };
  } else {
    _typeof = function (obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}

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;
}

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

function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];

    return arr2;
  }
}

function _iterableToArray(iter) {
  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance");
}

// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills
// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.
// Without this check consumers will encounter hard to track down runtime errors.
function reflectionIsSupported() {
  return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;
}
function copyReflectionMetadata(to, from) {
  forwardMetadata(to, from);
  Object.getOwnPropertyNames(from.prototype).forEach(function (key) {
    forwardMetadata(to.prototype, from.prototype, key);
  });
  Object.getOwnPropertyNames(from).forEach(function (key) {
    forwardMetadata(to, from, key);
  });
}

function forwardMetadata(to, from, propertyKey) {
  var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);
  metaKeys.forEach(function (metaKey) {
    var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);

    if (propertyKey) {
      Reflect.defineMetadata(metaKey, metadata, to, propertyKey);
    } else {
      Reflect.defineMetadata(metaKey, metadata, to);
    }
  });
}

var fakeArray = {
  __proto__: []
};
var hasProto = fakeArray instanceof Array;
function createDecorator(factory) {
  return function (target, key, index) {
    var Ctor = typeof target === 'function' ? target : target.constructor;

    if (!Ctor.__decorators__) {
      Ctor.__decorators__ = [];
    }

    if (typeof index !== 'number') {
      index = undefined;
    }

    Ctor.__decorators__.push(function (options) {
      return factory(options, key, index);
    });
  };
}
function mixins() {
  for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {
    Ctors[_key] = arguments[_key];
  }

  return external_Vue_default.a.extend({
    mixins: Ctors
  });
}
function isPrimitive(value) {
  var type = _typeof(value);

  return value == null || type !== 'object' && type !== 'function';
}
function warn(message) {
  if (typeof console !== 'undefined') {
    console.warn('[vue-class-component] ' + message);
  }
}

function collectDataFromConstructor(vm, Component) {
  // override _init to prevent to init as Vue instance
  var originalInit = Component.prototype._init;

  Component.prototype._init = function () {
    var _this = this;

    // proxy to actual vm
    var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)

    if (vm.$options.props) {
      for (var key in vm.$options.props) {
        if (!vm.hasOwnProperty(key)) {
          keys.push(key);
        }
      }
    }

    keys.forEach(function (key) {
      Object.defineProperty(_this, key, {
        get: function get() {
          return vm[key];
        },
        set: function set(value) {
          vm[key] = value;
        },
        configurable: true
      });
    });
  }; // should be acquired class property values


  var data = new Component(); // restore original _init to avoid memory leak (#209)

  Component.prototype._init = originalInit; // create plain data object

  var plainData = {};
  Object.keys(data).forEach(function (key) {
    if (data[key] !== undefined) {
      plainData[key] = data[key];
    }
  });

  if (false) {}

  return plainData;
}

var $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6
];
function componentFactory(Component) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  options.name = options.name || Component._componentTag || Component.name; // prototype props.

  var proto = Component.prototype;
  Object.getOwnPropertyNames(proto).forEach(function (key) {
    if (key === 'constructor') {
      return;
    } // hooks


    if ($internalHooks.indexOf(key) > -1) {
      options[key] = proto[key];
      return;
    }

    var descriptor = Object.getOwnPropertyDescriptor(proto, key);

    if (descriptor.value !== void 0) {
      // methods
      if (typeof descriptor.value === 'function') {
        (options.methods || (options.methods = {}))[key] = descriptor.value;
      } else {
        // typescript decorated data
        (options.mixins || (options.mixins = [])).push({
          data: function data() {
            return _defineProperty({}, key, descriptor.value);
          }
        });
      }
    } else if (descriptor.get || descriptor.set) {
      // computed properties
      (options.computed || (options.computed = {}))[key] = {
        get: descriptor.get,
        set: descriptor.set
      };
    }
  });
  (options.mixins || (options.mixins = [])).push({
    data: function data() {
      return collectDataFromConstructor(this, Component);
    }
  }); // decorate options

  var decorators = Component.__decorators__;

  if (decorators) {
    decorators.forEach(function (fn) {
      return fn(options);
    });
    delete Component.__decorators__;
  } // find super


  var superProto = Object.getPrototypeOf(Component.prototype);
  var Super = superProto instanceof external_Vue_default.a ? superProto.constructor : external_Vue_default.a;
  var Extended = Super.extend(options);
  forwardStaticMembers(Extended, Component, Super);

  if (reflectionIsSupported()) {
    copyReflectionMetadata(Extended, Component);
  }

  return Extended;
}
var reservedPropertyNames = [// Unique id
'cid', // Super Vue constructor
'super', // Component options that will be used by the component
'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets
'component', 'directive', 'filter'];
var shouldIgnore = {
  prototype: true,
  arguments: true,
  callee: true,
  caller: true
};

function forwardStaticMembers(Extended, Original, Super) {
  // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable
  Object.getOwnPropertyNames(Original).forEach(function (key) {
    // Skip the properties that should not be overwritten
    if (shouldIgnore[key]) {
      return;
    } // Some browsers does not allow reconfigure built-in properties


    var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);

    if (extendedDescriptor && !extendedDescriptor.configurable) {
      return;
    }

    var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),
    // the sub class properties may be inherited properties from the super class in TypeScript.
    // We need to exclude such properties to prevent to overwrite
    // the component options object which stored on the extended constructor (See #192).
    // If the value is a referenced value (object or function),
    // we can check equality of them and exclude it if they have the same reference.
    // If it is a primitive value, it will be forwarded for safety.

    if (!hasProto) {
      // Only `cid` is explicitly exluded from property forwarding
      // because we cannot detect whether it is a inherited property or not
      // on the no `__proto__` environment even though the property is reserved.
      if (key === 'cid') {
        return;
      }

      var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);

      if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {
        return;
      }
    } // Warn if the users manually declare reserved properties


    if (false) {}

    Object.defineProperty(Extended, key, descriptor);
  });
}

function vue_class_component_esm_Component(options) {
  if (typeof options === 'function') {
    return componentFactory(options);
  }

  return function (Component) {
    return componentFactory(Component, options);
  };
}

vue_class_component_esm_Component.registerHooks = function registerHooks(keys) {
  $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));
};

/* harmony default export */ var vue_class_component_esm = (vue_class_component_esm_Component);


// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Emit.js
var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
};
// Code copied from Vue/src/shared/util.js
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };
/**
 * decorator of an event-emitter function
 * @param  event The name of the event
 * @return MethodDecorator
 */
function Emit(event) {
    return function (_target, propertyKey, descriptor) {
        var key = hyphenate(propertyKey);
        var original = descriptor.value;
        descriptor.value = function emitter() {
            var _this = this;
            var args = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                args[_i] = arguments[_i];
            }
            var emit = function (returnValue) {
                var emitName = event || key;
                if (returnValue === undefined) {
                    if (args.length === 0) {
                        _this.$emit(emitName);
                    }
                    else if (args.length === 1) {
                        _this.$emit(emitName, args[0]);
                    }
                    else {
                        _this.$emit.apply(_this, __spreadArrays([emitName], args));
                    }
                }
                else {
                    args.unshift(returnValue);
                    _this.$emit.apply(_this, __spreadArrays([emitName], args));
                }
            };
            var returnValue = original.apply(this, args);
            if (isPromise(returnValue)) {
                returnValue.then(emit);
            }
            else {
                emit(returnValue);
            }
            return returnValue;
        };
    };
}
function isPromise(obj) {
    return obj instanceof Promise || (obj && typeof obj.then === 'function');
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Inject.js

/**
 * decorator of an inject
 * @param from key
 * @return PropertyDecorator
 */
function Inject(options) {
    return createDecorator(function (componentOptions, key) {
        if (typeof componentOptions.inject === 'undefined') {
            componentOptions.inject = {};
        }
        if (!Array.isArray(componentOptions.inject)) {
            componentOptions.inject[key] = options || key;
        }
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/helpers/provideInject.js
function needToProduceProvide(original) {
    return (typeof original !== 'function' ||
        (!original.managed && !original.managedReactive));
}
function produceProvide(original) {
    var provide = function () {
        var _this = this;
        var rv = typeof original === 'function' ? original.call(this) : original;
        rv = Object.create(rv || null);
        // set reactive services (propagates previous services if necessary)
        rv[reactiveInjectKey] = Object.create(this[reactiveInjectKey] || {});
        for (var i in provide.managed) {
            rv[provide.managed[i]] = this[i];
        }
        var _loop_1 = function (i) {
            rv[provide.managedReactive[i]] = this_1[i]; // Duplicates the behavior of `@Provide`
            Object.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i], {
                enumerable: true,
                configurable: true,
                get: function () { return _this[i]; },
            });
        };
        var this_1 = this;
        for (var i in provide.managedReactive) {
            _loop_1(i);
        }
        return rv;
    };
    provide.managed = {};
    provide.managedReactive = {};
    return provide;
}
/** Used for keying reactive provide/inject properties */
var reactiveInjectKey = '__reactiveInject__';
function inheritInjected(componentOptions) {
    // inject parent reactive services (if any)
    if (!Array.isArray(componentOptions.inject)) {
        componentOptions.inject = componentOptions.inject || {};
        componentOptions.inject[reactiveInjectKey] = {
            from: reactiveInjectKey,
            default: {},
        };
    }
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/InjectReactive.js


/**
 * decorator of a reactive inject
 * @param from key
 * @return PropertyDecorator
 */
function InjectReactive(options) {
    return createDecorator(function (componentOptions, key) {
        if (typeof componentOptions.inject === 'undefined') {
            componentOptions.inject = {};
        }
        if (!Array.isArray(componentOptions.inject)) {
            var fromKey_1 = !!options ? options.from || options : key;
            var defaultVal_1 = (!!options && options.default) || undefined;
            if (!componentOptions.computed)
                componentOptions.computed = {};
            componentOptions.computed[key] = function () {
                var obj = this[reactiveInjectKey];
                return obj ? obj[fromKey_1] : defaultVal_1;
            };
            componentOptions.inject[reactiveInjectKey] = reactiveInjectKey;
        }
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/helpers/metadata.js
/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */
var reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';
function applyMetadata(options, target, key) {
    if (reflectMetadataIsSupported) {
        if (!Array.isArray(options) &&
            typeof options !== 'function' &&
            !options.hasOwnProperty('type') &&
            typeof options.type === 'undefined') {
            var type = Reflect.getMetadata('design:type', target, key);
            if (type !== Object) {
                options.type = type;
            }
        }
    }
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Model.js


/**
 * decorator of model
 * @param  event event name
 * @param options options
 * @return PropertyDecorator
 */
function Model(event, options) {
    if (options === void 0) { options = {}; }
    return function (target, key) {
        applyMetadata(options, target, key);
        createDecorator(function (componentOptions, k) {
            ;
            (componentOptions.props || (componentOptions.props = {}))[k] = options;
            componentOptions.model = { prop: k, event: event || k };
        })(target, key);
    };
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/ModelSync.js


/**
 * decorator of synced model and prop
 * @param propName the name to interface with from outside, must be different from decorated property
 * @param  event event name
 * @param options options
 * @return PropertyDecorator
 */
function ModelSync(propName, event, options) {
    if (options === void 0) { options = {}; }
    return function (target, key) {
        applyMetadata(options, target, key);
        createDecorator(function (componentOptions, k) {
            ;
            (componentOptions.props || (componentOptions.props = {}))[propName] = options;
            componentOptions.model = { prop: propName, event: event || k };
            (componentOptions.computed || (componentOptions.computed = {}))[k] = {
                get: function () {
                    return this[propName];
                },
                set: function (value) {
                    // @ts-ignore
                    this.$emit(event, value);
                },
            };
        })(target, key);
    };
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Prop.js


/**
 * decorator of a prop
 * @param  options the options for the prop
 * @return PropertyDecorator | void
 */
function Prop(options) {
    if (options === void 0) { options = {}; }
    return function (target, key) {
        applyMetadata(options, target, key);
        createDecorator(function (componentOptions, k) {
            ;
            (componentOptions.props || (componentOptions.props = {}))[k] = options;
        })(target, key);
    };
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/PropSync.js


/**
 * decorator of a synced prop
 * @param propName the name to interface with from outside, must be different from decorated property
 * @param options the options for the synced prop
 * @return PropertyDecorator | void
 */
function PropSync(propName, options) {
    if (options === void 0) { options = {}; }
    return function (target, key) {
        applyMetadata(options, target, key);
        createDecorator(function (componentOptions, k) {
            ;
            (componentOptions.props || (componentOptions.props = {}))[propName] = options;
            (componentOptions.computed || (componentOptions.computed = {}))[k] = {
                get: function () {
                    return this[propName];
                },
                set: function (value) {
                    this.$emit("update:" + propName, value);
                },
            };
        })(target, key);
    };
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Provide.js


/**
 * decorator of a provide
 * @param key key
 * @return PropertyDecorator | void
 */
function Provide(key) {
    return createDecorator(function (componentOptions, k) {
        var provide = componentOptions.provide;
        inheritInjected(componentOptions);
        if (needToProduceProvide(provide)) {
            provide = componentOptions.provide = produceProvide(provide);
        }
        provide.managed[k] = key || k;
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/ProvideReactive.js


/**
 * decorator of a reactive provide
 * @param key key
 * @return PropertyDecorator | void
 */
function ProvideReactive(key) {
    return createDecorator(function (componentOptions, k) {
        var provide = componentOptions.provide;
        inheritInjected(componentOptions);
        if (needToProduceProvide(provide)) {
            provide = componentOptions.provide = produceProvide(provide);
        }
        provide.managedReactive[k] = key || k;
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Ref.js

/**
 * decorator of a ref prop
 * @param refKey the ref key defined in template
 */
function Ref(refKey) {
    return createDecorator(function (options, key) {
        options.computed = options.computed || {};
        options.computed[key] = {
            cache: false,
            get: function () {
                return this.$refs[refKey || key];
            },
        };
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/VModel.js

/**
 * decorator for capturings v-model binding to component
 * @param options the options for the prop
 */
function VModel(options) {
    if (options === void 0) { options = {}; }
    var valueKey = 'value';
    return createDecorator(function (componentOptions, key) {
        ;
        (componentOptions.props || (componentOptions.props = {}))[valueKey] = options;
        (componentOptions.computed || (componentOptions.computed = {}))[key] = {
            get: function () {
                return this[valueKey];
            },
            set: function (value) {
                this.$emit('input', value);
            },
        };
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/decorators/Watch.js

/**
 * decorator of a watch function
 * @param  path the path or the expression to observe
 * @param  WatchOption
 * @return MethodDecorator
 */
function Watch(path, options) {
    if (options === void 0) { options = {}; }
    var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;
    return createDecorator(function (componentOptions, handler) {
        if (typeof componentOptions.watch !== 'object') {
            componentOptions.watch = Object.create(null);
        }
        var watch = componentOptions.watch;
        if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {
            watch[path] = [watch[path]];
        }
        else if (typeof watch[path] === 'undefined') {
            watch[path] = [];
        }
        watch[path].push({ handler: handler, deep: deep, immediate: immediate });
    });
}

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_cc5a81cd4d75b7f9736a3e9b263f47e5/node_modules/vue-property-decorator/lib/index.js
/** vue-property-decorator verson 9.1.2 MIT LICENSE copyright 2020 kaorun343 */
/// <reference types='reflect-metadata'/>
















// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Button.vue?vue&type=template&id=73abb841&
var Buttonvue_type_template_id_73abb841_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    {
      directives: [{ name: "ripple", rawName: "v-ripple" }],
      staticClass: "my-button",
      attrs: { title: _vm.title },
      on: {
        click: function ($event) {
          return _vm.$emit("click", $event)
        },
      },
    },
    [_vm._v("\n  " + _vm._s(_vm.label) + "\n")]
  )
}
var Buttonvue_type_template_id_73abb841_staticRenderFns = []
Buttonvue_type_template_id_73abb841_render._withStripped = true


// CONCATENATED MODULE: ./src/views/components/Button.vue?vue&type=template&id=73abb841&

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Button.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var Buttonvue_type_script_lang_js_ = ({
  name: "MyButton",
  props: {
    label: {
      type: String,
      default: ""
    },
    title: {
      type: String,
      default: ""
    }
  }
});
// CONCATENATED MODULE: ./src/views/components/Button.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Buttonvue_type_script_lang_js_ = (Buttonvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/views/components/Button.vue?vue&type=style&index=0&lang=css&
var Buttonvue_type_style_index_0_lang_css_ = __webpack_require__(48);

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () {
        injectStyles.call(
          this,
          (options.functional ? this.parent : this).$root.$options.shadowRoot
        )
      }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functional component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}

// CONCATENATED MODULE: ./src/views/components/Button.vue






/* normalize component */

var component = normalizeComponent(
  components_Buttonvue_type_script_lang_js_,
  Buttonvue_type_template_id_73abb841_render,
  Buttonvue_type_template_id_73abb841_staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "src/views/components/Button.vue"
/* harmony default export */ var Button = (component.exports);
// EXTERNAL MODULE: ./src/utils/requests.ts + 8 modules
var requests = __webpack_require__(8);

// EXTERNAL MODULE: ./src/plugins/index.ts + 8 modules
var plugins = __webpack_require__(22);

// EXTERNAL MODULE: ./src/store/actions.ts
var actions = __webpack_require__(3);

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader??ref--1-1!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/Panel.vue?vue&type=script&lang=ts&









function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
  var c = arguments.length,
      r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
      d;
  if ((typeof Reflect === "undefined" ? "undefined" : Object(esm_typeof["a" /* default */])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
    if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  }
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};










var Panelvue_type_script_lang_ts_Panel = /*#__PURE__*/function (_Vue) {
  Object(inherits["a" /* default */])(Panel, _Vue);

  var _super = _createSuper(Panel);

  function Panel() {
    var _this;

    Object(classCallCheck["a" /* default */])(this, Panel);

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

    _this = _super.call.apply(_super, [this].concat(args));

    Object(defineProperty["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this), "store", store["e" /* store */]);

    Object(defineProperty["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this), "collapse", false);

    return _this;
  }

  Object(createClass["a" /* default */])(Panel, [{
    key: "autoCopy",
    value: function autoCopy(text) {
      if (store["e" /* store */].USER_SETTINGS.autoCopy) Object(common["a" /* copyToClipboard */])(text);
    }
  }, {
    key: "showSetting",
    value: function showSetting() {
      var setting = document.querySelector("#helper-setting");
      setting.style.display = setting.style.display == "" ? "none" : "";
    }
  }, {
    key: "collapsePanel",
    value: function collapsePanel() {
      this.store.collapse = false;
    }
  }, {
    key: "getAnswers",
    value: function getAnswers() {
      Object(plugins["getAnswers"])();
    }
  }, {
    key: "upload",
    value: function upload() {
      requests["a" /* Requests */].upload(true);
    }
  }, {
    key: "test",
    value: function test() {
      Object(actions["a" /* addMessage */])([{
        info: "We will do everything to ___________ peace.",
        type: "normal"
      }, {
        info: "preserve",
        type: "normal"
      }, {
        info: "新增收录",
        type: "normal"
      }, {
        info: "新增收录",
        type: "hr"
      }]);
      Object(actions["a" /* addMessage */])(["扩展已是最新版本", '如果本项目帮助到了你,可以为本项目点一个<a href="https://github.com/SSmJaE/WELearnHelper" target="_blank"><u>star</u></a>', "可以前往交流群获取使用支持"], "info");
    }
  }]);

  return Panel;
}(external_Vue_default.a);

Panelvue_type_script_lang_ts_Panel = __decorate([vue_class_component_esm({
  components: {
    Button: Button
  }
})], Panelvue_type_script_lang_ts_Panel);
/* harmony default export */ var Panelvue_type_script_lang_ts_ = (Panelvue_type_script_lang_ts_Panel);
// CONCATENATED MODULE: ./src/views/Panel.vue?vue&type=script&lang=ts&
 /* harmony default export */ var views_Panelvue_type_script_lang_ts_ = (Panelvue_type_script_lang_ts_); 
// EXTERNAL MODULE: ./src/views/Panel.vue?vue&type=style&index=0&lang=postcss&
var Panelvue_type_style_index_0_lang_postcss_ = __webpack_require__(54);

// EXTERNAL MODULE: ./src/views/Panel.vue?vue&type=style&index=1&id=09cda38c&scoped=true&lang=postcss&
var Panelvue_type_style_index_1_id_09cda38c_scoped_true_lang_postcss_ = __webpack_require__(56);

// CONCATENATED MODULE: ./src/views/Panel.vue







/* normalize component */

var Panel_component = normalizeComponent(
  views_Panelvue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  null,
  "09cda38c",
  null
  
)

/* hot reload */
if (false) { var Panel_api; }
Panel_component.options.__file = "src/views/Panel.vue"
/* harmony default export */ var views_Panel = (Panel_component.exports);
// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/Setting.vue?vue&type=template&id=f29285f4&scoped=true&
var Settingvue_type_template_id_f29285f4_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "div",
    { attrs: { id: "container-setting-base" } },
    [
      _vm._l(_vm.sections, function (section, index) {
        return _c(
          "div",
          { key: index, staticClass: "section" },
          [
            index !== 0 ? _c("hr") : _vm._e(),
            _vm._v(" "),
            _c(
              "div",
              {
                staticClass: "title",
                on: {
                  click: function ($event) {
                    section.display = !section.display
                  },
                },
              },
              [
                _vm._v("\n      " + _vm._s(section.title) + "\n      "),
                _c("Arrow", { attrs: { opened: section.display } }),
              ],
              1
            ),
            _vm._v(" "),
            _c("ToggleSlide", [
              _c(
                "div",
                {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: section.display,
                      expression: "section.display",
                    },
                  ],
                  staticClass: "body",
                },
                _vm._l(section.settings, function (setting) {
                  return _c("div", { key: setting.id, staticClass: "record" }, [
                    _c(
                      "label",
                      {
                        staticClass: "record-left",
                        attrs: { for: setting.id },
                      },
                      [
                        _vm._v(
                          "\n            " +
                            _vm._s(setting.name) +
                            "\n          "
                        ),
                      ]
                    ),
                    _vm._v(" "),
                    _c(
                      "div",
                      { staticClass: "record-middle" },
                      [
                        setting.type === "readonly"
                          ? [
                              _c("div", { staticClass: "readonly" }, [
                                _vm._v(
                                  "\n                " +
                                    _vm._s(
                                      _vm.Global.USER_SETTINGS[setting.id]
                                    ) +
                                    "\n              "
                                ),
                              ]),
                            ]
                          : setting.type === "switch"
                          ? [
                              _c("MySwitch", {
                                attrs: { id: setting.id },
                                model: {
                                  value: _vm.Global.USER_SETTINGS[setting.id],
                                  callback: function ($$v) {
                                    _vm.$set(
                                      _vm.Global.USER_SETTINGS,
                                      setting.id,
                                      $$v
                                    )
                                  },
                                  expression:
                                    "Global.USER_SETTINGS[setting.id]",
                                },
                              }),
                            ]
                          : [
                              _c("input", {
                                staticClass: "input",
                                attrs: { id: setting.id },
                                domProps: {
                                  value: _vm.Global.USER_SETTINGS[setting.id],
                                },
                                on: {
                                  input: function ($event) {
                                    _vm.Global.USER_SETTINGS[setting.id] =
                                      _vm.convertValueType(
                                        setting.id,
                                        $event.target.value
                                      )
                                  },
                                },
                              }),
                            ],
                      ],
                      2
                    ),
                    _vm._v(" "),
                    _c("div", { staticClass: "record-right" }, [
                      _vm._v(
                        "\n            " +
                          _vm._s(setting.description) +
                          "\n          "
                      ),
                    ]),
                  ])
                }),
                0
              ),
            ]),
          ],
          1
        )
      }),
      _vm._v(" "),
      _c(
        "div",
        { attrs: { id: "container-setting-footer" } },
        [
          _c("Button", {
            attrs: { label: "保存 & 刷新" },
            on: { click: _vm.saveChange },
          }),
          _vm._v(" "),
          _c("Button", {
            attrs: { label: "还原默认值" },
            on: { click: _vm.setDefault },
          }),
        ],
        1
      ),
    ],
    2
  )
}
var Settingvue_type_template_id_f29285f4_scoped_true_staticRenderFns = []
Settingvue_type_template_id_f29285f4_scoped_true_render._withStripped = true


// CONCATENATED MODULE: ./src/views/Setting.vue?vue&type=template&id=f29285f4&scoped=true&

// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/lodash/debounce.js
var debounce = __webpack_require__(43);
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Arrow.vue?vue&type=template&id=1867e7ca&scoped=true&
var Arrowvue_type_template_id_1867e7ca_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "svg",
    {
      staticClass: "arrow-down",
      class: _vm.opened ? "opened" : "",
      attrs: { width: "24", height: "24" },
    },
    [
      _c("path", {
        attrs: {
          d: "M12 13L8.285 9.218a.758.758 0 0 0-1.064 0 .738.738 0 0 0 0 1.052l4.249 4.512a.758.758 0 0 0 1.064 0l4.246-4.512a.738.738 0 0 0 0-1.052.757.757 0 0 0-1.063 0L12.002 13z",
          "fill-rule": "evenodd",
        },
      }),
    ]
  )
}
var Arrowvue_type_template_id_1867e7ca_scoped_true_staticRenderFns = []
Arrowvue_type_template_id_1867e7ca_scoped_true_render._withStripped = true


// CONCATENATED MODULE: ./src/views/components/Arrow.vue?vue&type=template&id=1867e7ca&scoped=true&

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Arrow.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var Arrowvue_type_script_lang_js_ = ({
  props: {
    opened: {
      type: Boolean,
      default: true
    }
  }
});
// CONCATENATED MODULE: ./src/views/components/Arrow.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Arrowvue_type_script_lang_js_ = (Arrowvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/views/components/Arrow.vue?vue&type=style&index=0&id=1867e7ca&scoped=true&lang=css&
var Arrowvue_type_style_index_0_id_1867e7ca_scoped_true_lang_css_ = __webpack_require__(68);

// CONCATENATED MODULE: ./src/views/components/Arrow.vue






/* normalize component */

var Arrow_component = normalizeComponent(
  components_Arrowvue_type_script_lang_js_,
  Arrowvue_type_template_id_1867e7ca_scoped_true_render,
  Arrowvue_type_template_id_1867e7ca_scoped_true_staticRenderFns,
  false,
  null,
  "1867e7ca",
  null
  
)

/* hot reload */
if (false) { var Arrow_api; }
Arrow_component.options.__file = "src/views/components/Arrow.vue"
/* harmony default export */ var Arrow = (Arrow_component.exports);
// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Switch.vue?vue&type=template&id=49997743&scoped=true&
var Switchvue_type_template_id_49997743_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c("label", { staticClass: "my-switch", style: _vm.labelStyle }, [
    _c("input", {
      ref: "input",
      style: _vm.inputStyle,
      attrs: { id: _vm.id, type: "checkbox", disabled: _vm.disabled },
      domProps: { checked: _vm.checked },
      on: {
        change: function ($event) {
          return _vm.$emit("change", $event.target.checked)
        },
      },
    }),
    _vm._v(" "),
    _c("span", { attrs: { id: "switch" } }),
    _vm._v(" "),
    _c("span", { attrs: { id: "slider" } }),
  ])
}
var Switchvue_type_template_id_49997743_scoped_true_staticRenderFns = []
Switchvue_type_template_id_49997743_scoped_true_render._withStripped = true


// CONCATENATED MODULE: ./src/views/components/Switch.vue?vue&type=template&id=49997743&scoped=true&

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/components/Switch.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var Switchvue_type_script_lang_js_ = ({
  model: {
    prop: "checked",
    event: "change"
  },
  props: {
    checked: {
      type: Boolean,
      default: false
    },
    disabled: {
      type: Boolean,
      default: false
    },
    width: {
      type: Number,
      default: 50
    },
    height: {
      type: Number,
      default: 25
    },
    id: {
      type: String,
      default: undefined
    }
  },
  computed: {
    labelStyle: function labelStyle() {
      return {
        width: this.width + "px",
        height: this.height + "px"
      };
    },
    inputStyle: function inputStyle() {
      return {};
    }
  }
});
// CONCATENATED MODULE: ./src/views/components/Switch.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Switchvue_type_script_lang_js_ = (Switchvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/views/components/Switch.vue?vue&type=style&index=0&id=49997743&scoped=true&lang=css&
var Switchvue_type_style_index_0_id_49997743_scoped_true_lang_css_ = __webpack_require__(70);

// CONCATENATED MODULE: ./src/views/components/Switch.vue






/* normalize component */

var Switch_component = normalizeComponent(
  components_Switchvue_type_script_lang_js_,
  Switchvue_type_template_id_49997743_scoped_true_render,
  Switchvue_type_template_id_49997743_scoped_true_staticRenderFns,
  false,
  null,
  "49997743",
  null
  
)

/* hot reload */
if (false) { var Switch_api; }
Switch_component.options.__file = "src/views/components/Switch.vue"
/* harmony default export */ var Switch = (Switch_component.exports);
// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/animations/ToggleSlide.vue?vue&type=template&id=0ce9de17&scoped=true&
var ToggleSlidevue_type_template_id_0ce9de17_scoped_true_render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "transition",
    { attrs: { name: "toggle-slide" } },
    [_vm._t("default")],
    2
  )
}
var ToggleSlidevue_type_template_id_0ce9de17_scoped_true_staticRenderFns = []
ToggleSlidevue_type_template_id_0ce9de17_scoped_true_render._withStripped = true


// CONCATENATED MODULE: ./src/views/animations/ToggleSlide.vue?vue&type=template&id=0ce9de17&scoped=true&

// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/animations/ToggleSlide.vue?vue&type=script&lang=js&
//
//
//
//
//
//
/* harmony default export */ var ToggleSlidevue_type_script_lang_js_ = ({});
// CONCATENATED MODULE: ./src/views/animations/ToggleSlide.vue?vue&type=script&lang=js&
 /* harmony default export */ var animations_ToggleSlidevue_type_script_lang_js_ = (ToggleSlidevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./src/views/animations/ToggleSlide.vue?vue&type=style&index=0&id=0ce9de17&scoped=true&lang=css&
var ToggleSlidevue_type_style_index_0_id_0ce9de17_scoped_true_lang_css_ = __webpack_require__(72);

// CONCATENATED MODULE: ./src/views/animations/ToggleSlide.vue






/* normalize component */

var ToggleSlide_component = normalizeComponent(
  animations_ToggleSlidevue_type_script_lang_js_,
  ToggleSlidevue_type_template_id_0ce9de17_scoped_true_render,
  ToggleSlidevue_type_template_id_0ce9de17_scoped_true_staticRenderFns,
  false,
  null,
  "0ce9de17",
  null
  
)

/* hot reload */
if (false) { var ToggleSlide_api; }
ToggleSlide_component.options.__file = "src/views/animations/ToggleSlide.vue"
/* harmony default export */ var ToggleSlide = (ToggleSlide_component.exports);
// CONCATENATED MODULE: ./node_modules/.pnpm/[email protected]_b72fb7e629d39881e138edb6dcd0dfbe/node_modules/babel-loader/lib!./node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader??ref--1-1!./node_modules/.pnpm/[email protected]_db042e1948601ea2df0ed1200e87bffe/node_modules/vue-loader/lib??vue-loader-options!./src/views/Setting.vue?vue&type=script&lang=ts&











function Settingvue_type_script_lang_ts_createSuper(Derived) { var hasNativeReflectConstruct = Settingvue_type_script_lang_ts_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }

function Settingvue_type_script_lang_ts_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

var Settingvue_type_script_lang_ts_decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
  var c = arguments.length,
      r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
      d;
  if ((typeof Reflect === "undefined" ? "undefined" : Object(esm_typeof["a" /* default */])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {
    if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  }
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};













var Settingvue_type_script_lang_ts_Setting = /*#__PURE__*/function (_Vue) {
  Object(inherits["a" /* default */])(Setting, _Vue);

  var _super = Settingvue_type_script_lang_ts_createSuper(Setting);

  function Setting() {
    var _this;

    Object(classCallCheck["a" /* default */])(this, Setting);

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

    _this = _super.call.apply(_super, [this].concat(args));

    Object(defineProperty["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this), "Global", store["e" /* store */]);

    Object(defineProperty["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this), "sections", settings_controlCenter);

    Object(defineProperty["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this), "debouncedConvertValueType", debounce_default()(_this.convertValueType, 200));

    return _this;
  }

  Object(createClass["a" /* default */])(Setting, [{
    key: "created",
    value: function created() {
      requests["a" /* Requests */].checkVersion();
      var setting = document.querySelector("#helper-setting");
      setting.style.display = "none";
    }
    /**自动转换input的值为对应类型
     *
     * 只可能是string或者number
     */

  }, {
    key: "convertValueType",
    value: function convertValueType(settingId, newValue) {
      var value;

      switch (SETTING_TYPES[settingId]) {
        case "number":
          value = parseInt(newValue, 10);
          break;

        case "float":
          value = parseFloat(newValue);
          break;

        default:
          value = newValue;
          break;
      }

      return value;
    }
  }, {
    key: "saveChange",
    value: function () {
      var _saveChange = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
        return regenerator_default.a.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                _context.next = 2;
                return Object(common["g" /* setValue */])("USER_SETTINGS", store["e" /* store */].USER_SETTINGS);

              case 2:
                location.reload();

              case 3:
              case "end":
                return _context.stop();
            }
          }
        }, _callee);
      }));

      function saveChange() {
        return _saveChange.apply(this, arguments);
      }

      return saveChange;
    }()
  }, {
    key: "setDefault",
    value: function setDefault() {
      returnDefaultValues();
    }
  }]);

  return Setting;
}(external_Vue_default.a);

Settingvue_type_script_lang_ts_Setting = Settingvue_type_script_lang_ts_decorate([vue_class_component_esm({
  components: {
    MySwitch: Switch,
    Arrow: Arrow,
    Button: Button,
    ToggleSlide: ToggleSlide
  }
})], Settingvue_type_script_lang_ts_Setting);
/* harmony default export */ var Settingvue_type_script_lang_ts_ = (Settingvue_type_script_lang_ts_Setting);
// CONCATENATED MODULE: ./src/views/Setting.vue?vue&type=script&lang=ts&
 /* harmony default export */ var views_Settingvue_type_script_lang_ts_ = (Settingvue_type_script_lang_ts_); 
// EXTERNAL MODULE: ./src/views/Setting.vue?vue&type=style&index=0&lang=css&
var Settingvue_type_style_index_0_lang_css_ = __webpack_require__(74);

// EXTERNAL MODULE: ./src/views/Setting.vue?vue&type=style&index=1&id=f29285f4&scoped=true&lang=css&
var Settingvue_type_style_index_1_id_f29285f4_scoped_true_lang_css_ = __webpack_require__(76);

// CONCATENATED MODULE: ./src/views/Setting.vue







/* normalize component */

var Setting_component = normalizeComponent(
  views_Settingvue_type_script_lang_ts_,
  Settingvue_type_template_id_f29285f4_scoped_true_render,
  Settingvue_type_template_id_f29285f4_scoped_true_staticRenderFns,
  false,
  null,
  "f29285f4",
  null
  
)

/* hot reload */
if (false) { var Setting_api; }
Setting_component.options.__file = "src/views/Setting.vue"
/* harmony default export */ var views_Setting = (Setting_component.exports);
// CONCATENATED MODULE: ./src/utils/container.ts
 //注册vue水波纹效果


external_Vue_default.a.directive("ripple", ripple);





if (location.href.includes("centercourseware.sflep.com") || //练习答题页面,子页面
location.href.includes(".sflep.com/test/") || //考试答题页面
location.href.includes(".sflep.com/student/course_info.aspx?") //基准页面
) {
  //避免重复创建悬浮窗,先检测页面上是否已存在
  if (!document.querySelector("#welearn-helper")) {
    //这部分相当于创建了一个原生页面
    var container = document.createElement("div");
    container.innerHTML = "\n        <div id=\"welearn-helper\">\n            <div id=\"container-title\">WELearn Helper</div>\n            <div id=\"container-panel\"></div>\n        </div>\n        <div id=\"helper-setting\">\n            <div id=\"container-setting-title\">\u8BBE\u7F6E\u9762\u677F</div>\n            <hr />\n            <div id=\"container-setting-base\"></div>\n        </div>\n    ";
    document.body.appendChild(container); //实现双击展开

    var title = document.querySelector("#container-title");
    title.addEventListener("dblclick", function () {
      store["e" /* store */].collapse = true;
    }, false); //挂载实例

    new external_Vue_default.a(views_Panel).$mount("#welearn-helper #container-panel");
    new external_Vue_default.a(views_Setting).$mount("#container-setting-base"); //应用拖动

    Object(common["d" /* makeDraggable */])(title, document.querySelector("#welearn-helper"));
    Object(common["d" /* makeDraggable */])(document.querySelector("#container-setting-title"), document.querySelector("#helper-setting"));
  }
}
// CONCATENATED MODULE: ./src/main.ts
//导入iconfont

 //先初始化USER_SETTINGS,再应用所有插件的初始化(依赖USER_SETTINGS)

initialUserSettings().then(function () {
  return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 79));
}); //应用全局初始化(全局初始化不依赖USER_SETTINGS)

 //创建窗口



/***/ }),
/* 79 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

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

// EXTERNAL MODULE: ./src/store/index.ts
var store = __webpack_require__(1);

// EXTERNAL MODULE: ./src/utils/requests.ts + 8 modules
var requests = __webpack_require__(8);

// EXTERNAL MODULE: ./src/plugins/index.ts + 8 modules
var plugins = __webpack_require__(22);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(18);

// EXTERNAL MODULE: ./src/store/actions.ts
var actions = __webpack_require__(3);

// CONCATENATED MODULE: ./src/plugins/exam/utils.ts

//PlaySound使用的全局变量
// var resPath = "https://courseres.sflep.com/Test/";
// var soundfile = "";
// var bufferingTimer: any;


/**
 * 替换原生的playSound函数,以实现无限播放听力
 */

function hackPlaySound() {
  /*答卷过程中调用的方法*/
  unsafeWindow.PlaySound = function (src, id) {
    var count = $("#hdPlay_" + id).val();
    if (count <= 0) return;

    if (soundfile == "") {
      soundfile = resPath + "ItemRes/sound/" + src;
      createSoundPlayer();
    } else {
      soundfile = resPath + "ItemRes/sound/" + src;
      jwplayer("soundplayer").load([{
        file: soundfile
      }]);
    } // jwplayer("soundplayer").onPlaylistComplete(function() {
    //     jwplayer("soundplayer").load([{ file: "" }]);
    // });


    jwplayer("soundplayer").onBufferFull(function () {
      clearTimeout(bufferingTimer);
      var sp = $("#btnPlay_" + id);
      sp.html('<span class=" fa fa-play-circle play_symble">' + "无限" + "次播放机会</span>"); //以下为原生调用
      // if (sp.length > 0) {
      //     var count = $("#hdPlay_" + id).val();
      //     if (count > 0) count--;
      //     //sp.val('播放(' + count + '次机会)');
      //     $("#hdPlay_" + id).val(count);
      //     if (count == 0) {
      //         //$('#btnPlay_' + id).attr("disabled", "disabled");
      //         $("#btnPlay_" + id).attr("href", "javascript:void(0);");
      //     }
      //     // SaveCurrentPart(false, true); //异步保存,实时更新听力次数
      // }

      sp.removeClass("loading");
    });
    $("#btnPlay_" + id).val("正在加载");
    bufferingTimer = setTimeout("PlayerExpireCheck('" + id + "', 0)", 1000);
    $("#btnPlay_" + id).addClass("loading");
    jwplayer("soundplayer").play();
  };
}
function parseResponse(json) {
  console.log(json);
  var status = "";

  switch (json.status) {
    case 0:
      status = "新增收录题目,未收录答案";
      break;

    case 1:
      status = "新增收录题目,且收录答案";
      Object(actions["a" /* addMessage */])(status, "info");
      Object(actions["a" /* addMessage */])("\u7528\u6237".concat(store["e" /* store */].USER_SETTINGS.userAccount, "\u79EF\u5206+1"), "info");
      break;

    case 2:
      status = "服务器已有题目,新增答案";
      Object(actions["a" /* addMessage */])(status, "info");
      Object(actions["a" /* addMessage */])("\u7528\u6237".concat(store["e" /* store */].USER_SETTINGS.userAccount, "\u79EF\u5206+1"), "info");
      break;

    case 3:
      status = "服务器已有答案,返回答案";
      break;

    case 4:
      status = "服务器已有题目,没有答案";
      break;

    case 5:
      status = "服务器没有题目,没有答案";
      break;

    case 6:
      status = "没有标答,返回最可能答案";
      break;
  } // addMessage(status, "info");


  var answer = json.answer;

  switch (json.status) {
    case 3:
      Object(actions["a" /* addMessage */])(answer, "success");
      break;

    case 4: //fallthrough

    case 5:
      Object(actions["a" /* addMessage */])("尚未收录答案", "error");
      break;

    case 6:
      for (var _i = 0, _Object$entries = Object.entries(answer); _i < _Object$entries.length; _i++) {
        var _Object$entries$_i = Object(slicedToArray["a" /* default */])(_Object$entries[_i], 2),
            option = _Object$entries$_i[0],
            possibility = _Object$entries$_i[1];

        Object(actions["a" /* addMessage */])("".concat(possibility, " ").concat(option), "success");
      }

  }

  if (store["e" /* store */].messages) if (store["e" /* store */].messages[store["e" /* store */].messages.length - 1].info) //前一条消息为空不添加
    Object(actions["a" /* addMessage */])("", "hr");
}
// CONCATENATED MODULE: ./src/plugins/exam/initial.ts





if (location.href.includes(".sflep.com/test/")) {
  store["e" /* store */].showExamQueryButton = true;
  setTimeout(function () {
    if (Object(plugins["isFinished"])()) {
      Object(plugins["getAnswers"])();
    } else {
      if (store["e" /* store */].USER_SETTINGS.infiniteListening) {
        hackPlaySound();
      }
    }
  }, 5000);
}

if (location.href.includes(".sflep.com/student/course_info.aspx?")) {
  store["e" /* store */].showExamUploadButton = true;
  requests["a" /* Requests */].upload();
}
// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/.pnpm/registry.npmmirror.com+@[email protected]/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(0);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./src/utils/common.ts + 1 modules
var common = __webpack_require__(4);

// CONCATENATED MODULE: ./src/plugins/exercise/courses.ts
/**这种页面上直接就有答案了,id=hd里面,也就是identifier类型*/
var MANIFEST = ["https://centercourseware.sflep.com/new century college english secedition integration 2/unit_01/course/texta.html#c09175d4-f281-488f-83fe-87c6bcf2a2b6?nocache=0.6378400703106109", "new century college english secedition integration 1", "new century college english secedition integration 2", "new century college english secedition integration 3", "new century college english secedition integration 4", "https://centercourseware.sflep.com/an integrated skills course (2nd edition) 2 for vocational college english/unit_02/course/listening.html#f248a182-7d3b-4112-86e8-8fca2706c690?nocache=0.3470470678074564", "an integrated skills course (2nd edition) 1 for vocational college english", "an integrated skills course (2nd edition) 2 for vocational college english", "an integrated skills course (2nd edition) 3 for vocational college english", "an integrated skills course (2nd edition) 4 for vocational college english", "https://centercourseware.sflep.com/an integrated skills course 2/unit_07/course/comprehension.html#e2f3d085-ca82-4d79-b31a-1bfe83529d88?nocache=0.5703432807157427", "an integrated skills course 1", "an integrated skills course 2" //新标准高职公共英语系列教材:实用综合教程(精编版)下
];
/**直接在原始页面上query就可以*/

var DATA_SOLUTION = ["https://centercourseware.sflep.com/new progressive college english integrated course 3/unit_01/main10.html?3-1-6&nocache=0.8570993802491391", "new progressive college english integrated course 1", "new progressive college english integrated course 2", "new progressive college english integrated course 3", "new progressive college english integrated course 4", "//centercourseware.sflep.com/new progressive college english integrated course 1-sz/unit_01/main6.html?1-1-6&nocache=0.08870107701951402", "new progressive college english integrated course 1-sz", "new progressive college english integrated course 2-sz", "new progressive college english integrated course 3-sz", "new progressive college english integrated course 4-sz", "https://centercourseware.sflep.com/new target college english integrated course 2/unit_05/main.html?2-5-10&nocache=0.7739324146362139", "new target college english integrated course 1", "new target college english integrated course 2", "new target college english integrated course 3", "new target college english integrated course 4" //新目标大学英语《综合教程》 第四册
];
/**et类型(url中包含data)理论上可以直接在原始页面上找(Demcorazy就是这么做的),不过也可以统一通过ajax请求获取*/

var ET = ["https://centercourseware.sflep.com/inspire%202/data/1/2-1-2.html", "inspire 1", "inspire 2", "inspire 3", "inspire 4", "https://centercourseware.sflep.com/New College English Viewing Listening Speaking 3/index.html#/1/1-1-1?nocache=0.2182374709016317", "New College English Viewing Listening Speaking 1", "New College English Viewing Listening Speaking 2", "New College English Viewing Listening Speaking 3", "New College English Viewing Listening Speaking 4", "https://centercourseware.sflep.com/New Target College English Video Course 1/index.html#/u1/TO/1-1?nocache=0.2502474772719703", "New Target College English Video Course 1", "New Target College English Video Course 2", "New Target College English Video Course 3", "New Target College English Video Course 4", "New Target College English_V2_Video Course 1", "New Target College English_V2_Video Course 2", "New Target College English_V2_Video Course 3", "New Target College English_V2_Video Course 4", "https://centercourseware.sflep.com/new century college english video thirdedition 1/index.html#/2/1-1-1?nocache=0.3053014048019431", "new century college english video thirdedition 1", "new century college english video thirdedition 2", "new century college english video thirdedition 3", "new century college english video thirdedition 4" //新世纪大学英语系列教材(第二版)视听说教程(3rd Edition)4
];
/**泛读课程需要courseInfo和identifier(和et一样),但是答案是dataSolution那种返回value的*/

var READING = ["https://centercourseware.sflep.com/new century extensive reading course for english majors 2/web.html?courseurl=210_01_05_01&nocache=0.2702018071769088", "new century extensive reading course for english majors 1", "new century extensive reading course for english majors 2", "new century extensive reading course for english majors 3", "new century extensive reading course for english majors 4" //新世纪英语专业(修订版)泛读教程(第2版)第四册
];
/**必须在手机上做的*/

var APP = ["https://centercourseware.sflep.com/Progressive English for Vocational Colleges Integrated Course 2/unit_01/main2.html?2-1-w1&nocache=0.2290241426227977", "Progressive English for Vocational Colleges Integrated Course 2", "https://centercourseware.sflep.com/Progressive English for Vocational Colleges A Viewing Listening and Speaking Course 2/unit_01/main2.html?2-1-la_1&nocache=0.450784809471354", "Progressive English for Vocational Colleges A Viewing Listening and Speaking Course 2", "https://centercourseware.sflep.com/A Viewing Listening and Speaking Course 2/unit_01/main8.html?2-1-7&nocache=0.8280064535686702", "A Viewing Listening and Speaking Course 2" //新标准高职公共英语系列教材 实用视听说教程(精编版)
]; //todo (坐等提pr)新世纪大学英语第二版(快速阅读,新世纪写作)

var UNSOLVED = ["https://centercourseware.sflep.com/college english skills news report listening/index.html#/2/4-2?nocache=0.7860960277619209", "college english skills news report listening", "https://centercourseware.sflep.com/listening and speaking course (2nd ed) 3 for vocational college english/unit8/pak22.html?nocache=0.10199328940787433", "listening and speaking course (2nd ed) 1 for vocational college english", "listening and speaking course (2nd ed) 2 for vocational college english", "listening and speaking course (2nd ed) 3 for vocational college english", "listening and speaking course (2nd ed) 4 for vocational college english" //新标准高职公共英语系列教材:实用听说教程(第二版)第三册
];

// CONCATENATED MODULE: ./src/plugins/exercise/et/parser.ts
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

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; }


var ANSWER_TYPES = ["et-tof", "et-blank", "et-select", "et-choice", "et-matching", "et-reference", "et-sort"];
function parseEt(dom) {
  var realAnswers = [];

  var _iterator = _createForOfIteratorHelper(ANSWER_TYPES),
      _step;

  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var answerType = _step.value;
      var answers = dom.querySelectorAll(answerType);
      console.log(answers);
      var index = 1;

      var _iterator2 = _createForOfIteratorHelper(answers),
          _step2;

      try {
        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
          var element = _step2.value;
          var answer = parseAnswer(element);

          if (answer) {
            answer.index = index;
            console.log(answer);
            realAnswers.push(answer);
            index++;
          }
        }
      } catch (err) {
        _iterator2.e(err);
      } finally {
        _iterator2.f();
      }
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }

  return realAnswers;
}

function parseAnswer(element) {
  var tag = element.tagName.toLowerCase();
  var answerText = "";

  switch (tag) {
    case "et-tof":
      answerText = element.getAttribute("key");
      break;

    case "et-blank":
      if (isRepeat(element)) return;
      answerText = element.textContent.split("|")[0];
      if (element.hasAttribute("block")) tag = "et-textarea";
      break;

    case "et-select":
      answerText = element.getAttribute("key");

      try {
        //todo 这是哪个类型的题的故障处理?
        if (!answerText.length) answerText = element.firstElementChild.textContent;
      } catch (error) {
        answerText = "Answers will vary.";
      }

      break;

    case "et-choice":
      if (isRepeat(element)) {
        //针对有只有inline的情况(视听说2 4-2),也就是说,不能跳
        if (element.hasAttribute("inline")) {
          return;
        }
      } //针对视听说2 7-1重复,


      answerText = element.getAttribute("key");
      break;

    case "et-matching":
      if (isRepeat(element)) return;
      answerText = element.getAttribute("key").split(",").join("\n\t<br/>");
      break;

    case "et-reference":
      if (!store["e" /* store */].USER_SETTINGS.showReference) return;
      answerText = element.innerHTML; // content.style.whiteSpace = "normal";

      break;

    case "et-sort":
      answerText = element.getAttribute("key");
      break;
  }

  return {
    text: answerText,
    type: tag,
    element: element
  };
}
/**通过检测父节点,解决答案重复的问题*/


function isRepeat(answerNode) {
  var parentElement = answerNode,
      parentTag;
  var webFlag = 0;
  var mobileFlag = 0;

  try {
    for (var i = 0; i < 9; i++) {
      if (i !== 0) {
        parentElement = parentElement.parentElement;
      }

      parentTag = parentElement.tagName;
      if (parentTag == "ET-MOBILE-ONLY") mobileFlag++;
      if (parentTag == "ET-WEB-ONLY") webFlag++;
    }
  } catch (error) {// if (USER_SETTINGS.debugMode) console.log(error);
  } finally {
    if (webFlag && mobileFlag) {
      //针对web下嵌套mobile的题目,如视听说2的3-2-3
      if (webFlag > 1) {
        //针对4重嵌套,unit test常见
        return true;
      } else {
        return false;
      }
    } else if (webFlag) {
      //web和mobile只留其一,这里保留mobile,丢弃web
      return true;
    } else {
      return false;
    }
  }
}
// CONCATENATED MODULE: ./src/plugins/exercise/et/solver.ts



function solver_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = solver_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function solver_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return solver_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 solver_arrayLikeToArray(o, minLen); }

function solver_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 ready_in(element) {
  $(element).trigger("click").trigger("focus").trigger("keydown").trigger("input");
}

function event_trigger(element) {
  $(element).trigger("keyup").trigger("change").trigger("blur");

  try {
    angular.element(element).triggerHandler("hover");
    angular.element(element).triggerHandler("keyup");
    angular.element(element).triggerHandler("blur");
  } catch (error) {}
}



function solveEt(_x) {
  return _solveEt.apply(this, arguments);
}

function _solveEt() {
  _solveEt = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(answers) {
    var tofOnPaper, tofOrder, blankOnPaper, textareaOnPaper, blankOrder, textareaOrder, selectOnPaper, selectOrder, optionOnPaper, optionSpanOnPaper, liOrder, spanOrder, optionOrder, _iterator, _step, answer, tofOption, watchedElement, targetOption, options, optionCount, spanFlag, _iterator2, _step2, option, matchingOrder, targetCircle, x1, y1, x2, y2;

    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            tofOnPaper = document.querySelectorAll("et-tof span.controls span");
            tofOrder = 0;
            blankOnPaper = document.querySelectorAll("et-blank span.blank");
            textareaOnPaper = document.querySelectorAll('et-blank textarea[ng-model="blank.value"]');
            blankOrder = 0;
            textareaOrder = 0;
            selectOnPaper = document.querySelectorAll("et-select div");
            selectOrder = 0;
            optionOnPaper = document.querySelectorAll("et-choice li");
            optionSpanOnPaper = document.querySelectorAll("et-choice span");
            liOrder = 0;
            spanOrder = 0;
            optionOrder = 0;
            _iterator = solver_createForOfIteratorHelper(answers);
            _context.prev = 14;

            _iterator.s();

          case 16:
            if ((_step = _iterator.n()).done) {
              _context.next = 74;
              break;
            }

            answer = _step.value;
            _context.next = 20;
            return Object(common["h" /* sleep */])(store["e" /* store */].USER_SETTINGS.solveInterval);

          case 20:
            _context.t0 = answer.type;
            _context.next = _context.t0 === "et-tof" ? 23 : _context.t0 === "et-blank" ? 35 : _context.t0 === "et-textarea" ? 40 : _context.t0 === "et-select" ? 43 : _context.t0 === "et-choice" ? 48 : _context.t0 === "et-matching" ? 58 : 72;
            break;

          case 23:
            tofOption = undefined;
            _context.t1 = answer.text;
            _context.next = _context.t1 === "t" ? 27 : _context.t1 === "T" ? 27 : _context.t1 === "f" ? 29 : _context.t1 === "F" ? 29 : 31;
            break;

          case 27:
            tofOption = 2 * tofOrder;
            return _context.abrupt("break", 32);

          case 29:
            tofOption = 2 * tofOrder + 1;
            return _context.abrupt("break", 32);

          case 31:
            throw new Error("tof解答出错");

          case 32:
            tofOnPaper[tofOption].click();
            tofOrder++;
            return _context.abrupt("break", 72);

          case 35:
            //普通填空题
            ready_in(blankOnPaper[blankOrder]);
            blankOnPaper[blankOrder].textContent = answer.text;
            event_trigger(blankOnPaper[blankOrder]);
            blankOrder++;
            return _context.abrupt("break", 72);

          case 40:
            //回答问题
            if (answer.text.length) {
              ready_in(textareaOnPaper[textareaOrder]);
              textareaOnPaper[textareaOrder].textContent = answer.text;
              textareaOnPaper[textareaOrder].value = answer.text;
              event_trigger(textareaOnPaper[textareaOrder]);
            } //有et-blank,但是无答案,不做处理


            textareaOrder++;
            return _context.abrupt("break", 72);

          case 43:
            watchedElement = selectOnPaper[selectOrder].querySelector("select");
            watchedElement.value = "choice".concat(answer.text);
            watchedElement.dispatchEvent(new Event("change"));
            selectOrder++;
            return _context.abrupt("break", 72);

          case 48:
            targetOption = void 0, options = void 0, optionCount = void 0;
            spanFlag = false;

            try {
              options = answer.text.split(",");
            } catch (error) {
              options = ["1"]; //不检查答案的选择题
            }

            console.log(options);

            if (!(optionCount = answer.element.querySelectorAll("li").length)) {
              optionCount = answer.element.querySelectorAll("span").length;

              if (optionCount) {
                spanFlag = true;
                optionOrder = spanOrder; //这个只解决了li在span之前的问题,如果li在span之后呢?
              } else {
                optionCount = 4; //针对进阶视听说2Practice Test One
              }
            } else {
              optionOrder = liOrder;
            }

            _iterator2 = solver_createForOfIteratorHelper(options);

            try {
              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
                option = _step2.value;

                if (isNaN(parseInt(option))) {
                  //key是字母
                  targetOption = optionCount * optionOrder + option.toUpperCase().charCodeAt() - 65;
                } else {
                  //key是数字
                  targetOption = optionCount * optionOrder + parseInt(option) - 1;
                }

                console.log("\u9898\u53F7".concat(optionOrder, " span").concat(spanOrder, " \u9009\u9879").concat(targetOption, " \u9009\u9879\u6570").concat(optionCount));

                if (spanFlag && optionCount) {
                  try {
                    optionSpanOnPaper[targetOption].click();
                  } catch (error) {
                    optionOnPaper[targetOption].click();
                  }
                } else {
                  optionOnPaper[targetOption].click();
                }
              }
            } catch (err) {
              _iterator2.e(err);
            } finally {
              _iterator2.f();
            }

            if (spanFlag) {
              spanOrder++;
            } else {
              liOrder++;
            }

            optionOrder++;
            return _context.abrupt("break", 72);

          case 58:
            matchingOrder = 0;

          case 59:
            if (!(matchingOrder < answer.element.getAttribute("key").split(",").length)) {
              _context.next = 71;
              break;
            }

            _context.next = 62;
            return Object(common["h" /* sleep */])(store["e" /* store */].USER_SETTINGS.solveInterval);

          case 62:
            targetCircle = answer.element.getAttribute("key").split(",")[matchingOrder].split("-")[1] - 1;
            x1 = leftCircles[matchingOrder].getAttribute("cx");
            y1 = leftCircles[matchingOrder].getAttribute("cy");
            x2 = rightCircles[targetCircle].getAttribute("cx");
            y2 = rightCircles[targetCircle].getAttribute("cy"); // ready_in(leftCircles[matchingOrder]);
            // ready_in(rightCircles[targetCircle]);

            lineElements[matchingOrder].innerHTML = "\n                    <line \n                        ng-class=\"{incorrect:!matching.isKey($parent.$index,b)}\"\n                        ng-click=\"matching.removeLine($parent.$index, b)\" \n                        ng-repeat=\"b in cb track by $index\" \n                        ng-attr-x1=\"{{matching.circles.xA}}\"\n                        ng-attr-x2=\"{{matching.circles.xB}}\" \n                        ng-attr-y1=\"{{matching.circles.A[$parent.$index]}}\" \n                        ng-attr-y2=\"{{matching.circles.B[b]}}\"\n                        x1=\"".concat(x1, "\" \n                        x2=\"").concat(x2, "\" \n                        y1=\"").concat(y1, "\" \n                        y2=\"").concat(y2, "\" \n                        class=\"\"\n                    ></line>"); // event_trigger(lineElements[matchingOrder]);
            // event_trigger(leftCircles[matchingOrder]);
            // event_trigger(rightCircles[targetCircle]);
            // event_trigger(document.querySelector('g.aidLine line'))

          case 68:
            matchingOrder++;
            _context.next = 59;
            break;

          case 71:
            return _context.abrupt("break", 72);

          case 72:
            _context.next = 16;
            break;

          case 74:
            _context.next = 79;
            break;

          case 76:
            _context.prev = 76;
            _context.t2 = _context["catch"](14);

            _iterator.e(_context.t2);

          case 79:
            _context.prev = 79;

            _iterator.f();

            return _context.finish(79);

          case 82:
          case "end":
            return _context.stop();
        }
      }
    }, _callee, null, [[14, 76, 79, 82]]);
  }));
  return _solveEt.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/exercise/manifest/parser.ts
function parser_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = parser_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function parser_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return parser_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 parser_arrayLikeToArray(o, minLen); }

function parser_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 parseManifest(dom) {
  var realAnswers = [];
  var answers = dom.querySelectorAll("correctResponse value");
  console.log(answers);
  var index = 1;

  var _iterator = parser_createForOfIteratorHelper(answers),
      _step;

  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var element = _step.value;
      var answerArray = parser_parseAnswer(element, dom);

      var _iterator2 = parser_createForOfIteratorHelper(answerArray),
          _step2;

      try {
        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
          var answer = _step2.value;

          if (answer) {
            answer.index = index;
            console.log(answer);
            realAnswers.push(answer);
          }

          index++;
        }
      } catch (err) {
        _iterator2.e(err);
      } finally {
        _iterator2.f();
      }
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }

  return realAnswers;
}

function parser_parseAnswer(element, dom) {
  var answerText = "";
  var answerType = "";
  var returnAnswers = [];
  var identifier = element.textContent;

  if (identifier.length == 36) {
    //选择题
    answerType = "choice";
    var selector = "[identifier=\"".concat(identifier, "\"]");

    try {
      answerText = dom.querySelector(selector).textContent; // console.log(answerText);
    } catch (error) {
      answerText = element.textContent; //高职第七八单元填空
    }

    returnAnswers.push({
      text: answerText,
      type: answerType,
      element: element,
      identifier: identifier
    }); //  else {
    //     //高职,非精编,综合,单元测试
    //     answerText = element.textContent;
    // }
  } else if (identifier.length > 200) {
    //纠错题
    var identifiers = identifier.split(",");

    var _iterator3 = parser_createForOfIteratorHelper(identifiers),
        _step3;

    try {
      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
        var _identifier = _step3.value;

        var _selector = "[identifier=\"".concat(_identifier, "\"]");

        answerText = dom.querySelector(_selector).textContent;
        returnAnswers.push({
          text: answerText,
          type: "choice",
          element: element,
          identifier: _identifier
        });
      }
    } catch (err) {
      _iterator3.e(err);
    } finally {
      _iterator3.f();
    }
  } else {
    //填空题
    answerText = element.textContent;
    answerType = answerText == "(Open.)" ? "textarea" : "blank";
    returnAnswers.push({
      text: answerText,
      type: answerType,
      element: element
    });
  }

  return returnAnswers;
}
// CONCATENATED MODULE: ./src/plugins/exercise/manifest/solver.ts



function manifest_solver_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = manifest_solver_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function manifest_solver_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return manifest_solver_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 manifest_solver_arrayLikeToArray(o, minLen); }

function manifest_solver_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 solveManifest(_x) {
  return _solveManifest.apply(this, arguments);
}

function _solveManifest() {
  _solveManifest = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(answers) {
    var inputPatternOnPaper, inputOrder, optionLabelOnPaper, _iterator, _step, answer, _iterator2, _step2, inputAnswer, _iterator3, _step3, label, labelHeight;

    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            inputPatternOnPaper = document.querySelectorAll('.pattern input[type="text"]');
            inputOrder = 0;
            optionLabelOnPaper = document.querySelectorAll("label[for]");
            _iterator = manifest_solver_createForOfIteratorHelper(answers);
            _context.prev = 4;

            _iterator.s();

          case 6:
            if ((_step = _iterator.n()).done) {
              _context.next = 23;
              break;
            }

            answer = _step.value;
            _context.next = 10;
            return Object(common["h" /* sleep */])(store["e" /* store */].USER_SETTINGS.solveInterval);

          case 10:
            _context.t0 = answer.type;
            _context.next = _context.t0 === "blank" ? 13 : _context.t0 === "textarea" ? 16 : _context.t0 === "choice" ? 18 : 21;
            break;

          case 13:
            _iterator2 = manifest_solver_createForOfIteratorHelper(answer.text.split(","));

            try {
              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
                inputAnswer = _step2.value;

                try {
                  inputPatternOnPaper[inputOrder].value = inputAnswer;
                } catch (error) {
                  document.querySelector(".pattern textarea").textContent = inputAnswer;
                } finally {
                  inputOrder++;
                }
              }
            } catch (err) {
              _iterator2.e(err);
            } finally {
              _iterator2.f();
            }

            return _context.abrupt("break", 21);

          case 16:
            document.querySelector(".pattern textarea").value = store["e" /* store */].USER_SETTINGS.defaultBlankAnswer;
            return _context.abrupt("break", 21);

          case 18:
            _iterator3 = manifest_solver_createForOfIteratorHelper(optionLabelOnPaper);

            try {
              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
                label = _step3.value;

                if (label.getAttribute("for").split("_")[1] == answer.identifier) {
                  label.click();

                  try {
                    labelHeight = label.getBoundingClientRect().top; //自动跳转页面至选项处

                    document.querySelector("#divTest").scrollTo(0, labelHeight - 50);
                  } catch (error) {}
                }
              }
            } catch (err) {
              _iterator3.e(err);
            } finally {
              _iterator3.f();
            }

            return _context.abrupt("break", 21);

          case 21:
            _context.next = 6;
            break;

          case 23:
            _context.next = 28;
            break;

          case 25:
            _context.prev = 25;
            _context.t1 = _context["catch"](4);

            _iterator.e(_context.t1);

          case 28:
            _context.prev = 28;

            _iterator.f();

            return _context.finish(28);

          case 31:
          case "end":
            return _context.stop();
        }
      }
    }, _callee, null, [[4, 25, 28, 31]]);
  }));
  return _solveManifest.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/exercise/wordTest/parser.ts


var wordTestTimer;
function parseWordTest() {
  clearInterval(wordTestTimer); //manifest类型会重新加载页面,所以定时器会被自动清除,可以不用管

  wordTestTimer = setInterval(function () {
    try {
      store["e" /* store */].messages = [];
      var answer = document.querySelector('ul[id^="wordTest"][style=""] > li:last-child').textContent;
      Object(actions["a" /* addMessage */])(answer);
    } catch (error) {}
  }, 2000);
}
// CONCATENATED MODULE: ./src/plugins/exercise/dataSolution/parser.ts
function dataSolution_parser_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = dataSolution_parser_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function dataSolution_parser_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return dataSolution_parser_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 dataSolution_parser_arrayLikeToArray(o, minLen); }

function dataSolution_parser_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 parseDataSolution() {
  var realAnswers = [];
  var answers = document.querySelectorAll("[data-solution]");
  console.log(answers);
  var index = 1;

  var _iterator = dataSolution_parser_createForOfIteratorHelper(answers),
      _step;

  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var element = _step.value;
      var answer = dataSolution_parser_parseAnswer(element);

      if (answer) {
        answer.index = index;
        console.log(answer);
        realAnswers.push(answer);
      }

      index++;
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }

  return realAnswers;
}

function dataSolution_parser_parseAnswer(element) {
  var answerText = element.getAttribute("data-solution");
  var answerType = "";

  if (answerText) {
    //填空题
    answerType = "blank";
  } else {
    //选择题
    try {
      answerText = element.firstElementChild.textContent;
      if (!answerText) answerText = element.textContent;
    } catch (error) {
      answerText = element.textContent;
    }

    answerType = "choice";
  }

  return {
    text: answerText,
    type: answerType,
    element: element
  };
}
// CONCATENATED MODULE: ./src/plugins/exercise/dataSolution/solver.ts



function dataSolution_solver_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = dataSolution_solver_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function dataSolution_solver_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return dataSolution_solver_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 dataSolution_solver_arrayLikeToArray(o, minLen); }

function dataSolution_solver_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 solveDataSolution(_x) {
  return _solveDataSolution.apply(this, arguments);
}

function _solveDataSolution() {
  _solveDataSolution = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee(answers) {
    var inputOnPaper, inputOrder, _iterator, _step, answer;

    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            inputOnPaper = document.querySelectorAll("input[data-itemtype]");
            inputOrder = 0;
            _iterator = dataSolution_solver_createForOfIteratorHelper(answers);
            _context.prev = 3;

            _iterator.s();

          case 5:
            if ((_step = _iterator.n()).done) {
              _context.next = 19;
              break;
            }

            answer = _step.value;
            _context.next = 9;
            return Object(common["h" /* sleep */])(store["e" /* store */].USER_SETTINGS.solveInterval);

          case 9:
            _context.t0 = answer.type;
            _context.next = _context.t0 === "blank" ? 12 : _context.t0 === "choice" ? 15 : 17;
            break;

          case 12:
            // ready_in(inputOnPaper[inputOrder]);
            inputOnPaper[inputOrder].value = answer.text; // event_trigger(inputOnPaper[inputOrder]);

            inputOrder++;
            return _context.abrupt("break", 17);

          case 15:
            answer.element.click();
            return _context.abrupt("break", 17);

          case 17:
            _context.next = 5;
            break;

          case 19:
            _context.next = 24;
            break;

          case 21:
            _context.prev = 21;
            _context.t1 = _context["catch"](3);

            _iterator.e(_context.t1);

          case 24:
            _context.prev = 24;

            _iterator.f();

            return _context.finish(24);

          case 27:
          case "end":
            return _context.stop();
        }
      }
    }, _callee, null, [[3, 21, 24, 27]]);
  }));
  return _solveDataSolution.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/exercise/reading/parser.ts
function reading_parser_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = reading_parser_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function reading_parser_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return reading_parser_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 reading_parser_arrayLikeToArray(o, minLen); }

function reading_parser_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 parseReading(dom) {
  var realAnswers = [];
  var answers = dom.querySelectorAll("correctResponse value");
  console.log(answers);
  var index = 1;

  var _iterator = reading_parser_createForOfIteratorHelper(answers),
      _step;

  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var element = _step.value;
      var answer = reading_parser_parseAnswer(element, dom);

      if (answer) {
        answer.index = index;
        console.log(answer);
        realAnswers.push(answer);
      }

      index++;
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }

  return realAnswers;
}

function reading_parser_parseAnswer(element, dom) {
  var answerText = element.textContent;
  var answerType = "";

  if (answerText.length == 36) {
    answerType = "choice"; //选择题

    var selector = "[identifier=\"".concat(answerText, "\"]");
    element = dom.querySelector(selector);
    answerText = /CDATA\[(.*)\]\]/.exec(element.innerHTML)[1].trim(); //从注释中提取答案
  } else if (answerText.length == 73) {
    //todo 找不到在哪里见到的了
    answerType = "matching"; //连线题
    // let leftMatching = document
    //     .querySelector(`[id="${identifier.split("|")[0]}"]`)
    //     .getAttribute("leftorder");
    // let rightMatching = document
    //     .querySelector(`[id="${identifier.split("|")[1]}"]`)
    //     .getAttribute("rightorder");
    // answerText = `${leftMatching}-${rightMatching}`;
  } else {
    answerType = "blank"; //填空题
  }

  return {
    text: answerText,
    type: answerType,
    element: element
  };
}
// CONCATENATED MODULE: ./src/plugins/exercise/main.ts


function main_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = main_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function main_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return main_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 main_arrayLikeToArray(o, minLen); }

function main_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 initialCourseCatalog() {
  return _initialCourseCatalog.apply(this, arguments);
}

function _initialCourseCatalog() {
  _initialCourseCatalog = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
    var catalog, dataSolution, et, manifest, reading, app;
    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return requests["a" /* Requests */].getCourseCatalog();

          case 2:
            catalog = _context.sent;
            // 通过perSession装饰器,无法实现客制化的,请求结束后的响应
            // 比如,不用perSession装饰器的话,可以直接把这段逻辑写在getCourseCatalog这个请求里
            // 但是现在,
            // 1.要将合并catalog的逻辑和网络请求的逻辑分开;
            // 2.perSession装饰器必须要返回值,配合requestErrorHandler装饰器使用
            // 所以想要同时实现这两点的话,需要在此处手动判断catalog的返回值是否有效
            // 不想在此处判断的话,就将此处进行的操作,放在getCourseCatalog中即可
            console.log({
              catalog: catalog
            });

            if (!(catalog === undefined)) {
              _context.next = 6;
              break;
            }

            return _context.abrupt("return");

          case 6:
            dataSolution = catalog.dataSolution, et = catalog.et, manifest = catalog.manifest, reading = catalog.reading, app = catalog.app;
            MANIFEST.concat(manifest);
            DATA_SOLUTION.concat(dataSolution);
            ET.concat(et);
            READING.concat(reading);
            APP.concat(app);
            console.log({
              MANIFEST: MANIFEST,
              DATA_SOLUTION: DATA_SOLUTION,
              ET: ET,
              READING: READING,
              APP: APP
            });

          case 13:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _initialCourseCatalog.apply(this, arguments);
}

var PARSER = new DOMParser();

function queryData(_x) {
  return _queryData.apply(this, arguments);
}

function _queryData() {
  _queryData = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2(answerUrl) {
    var response, text, htmlDom;
    return regenerator_default.a.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            _context2.next = 2;
            return fetch(answerUrl);

          case 2:
            response = _context2.sent;
            _context2.next = 5;
            return response.text();

          case 5:
            text = _context2.sent;
            htmlDom = PARSER.parseFromString(text, "text/html"); // if (DEBUG_MODE)

            console.log(htmlDom);
            return _context2.abrupt("return", htmlDom);

          case 9:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2);
  }));
  return _queryData.apply(this, arguments);
}

function queryManifest(_x2, _x3, _x4) {
  return _queryManifest.apply(this, arguments);
}

function _queryManifest() {
  _queryManifest = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee3(manifestUrl, identifier, courseInfo) {
    var response, text, selector, resource, answerUrl;
    return regenerator_default.a.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            _context3.next = 2;
            return fetch(manifestUrl);

          case 2:
            response = _context3.sent;
            _context3.next = 5;
            return response.text();

          case 5:
            text = _context3.sent;
            selector = "resource[identifier=\"".concat(identifier, "\"] file");
            resource = PARSER.parseFromString(text, "text/html").querySelector(selector).getAttribute("href");
            answerUrl = "https://centercourseware.sflep.com/".concat(courseInfo, "/").concat(resource);
            return _context3.abrupt("return", queryData(answerUrl));

          case 10:
          case "end":
            return _context3.stop();
        }
      }
    }, _callee3);
  }));
  return _queryManifest.apply(this, arguments);
}

function outputAnswers(_x5) {
  return _outputAnswers.apply(this, arguments);
}

function _outputAnswers() {
  _outputAnswers = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee4(answers) {
    var bufferTag, _iterator, _step, answer, currentTag;

    return regenerator_default.a.wrap(function _callee4$(_context4) {
      while (1) {
        switch (_context4.prev = _context4.next) {
          case 0:
            bufferTag = "";
            _iterator = main_createForOfIteratorHelper(answers);
            _context4.prev = 2;

            _iterator.s();

          case 4:
            if ((_step = _iterator.n()).done) {
              _context4.next = 14;
              break;
            }

            answer = _step.value;

            if (!store["e" /* store */].USER_SETTINGS.autoSolve) {
              _context4.next = 9;
              break;
            }

            _context4.next = 9;
            return Object(common["h" /* sleep */])(store["e" /* store */].USER_SETTINGS.solveInterval);

          case 9:
            Object(actions["a" /* addMessage */])("".concat(String(answer.index).padStart(2, "0"), "\u3001").concat(answer.text));
            currentTag = answer.element.tagName;

            if (bufferTag !== "" && currentTag !== bufferTag) {
              Object(actions["a" /* addMessage */])("", "hr");
              bufferTag = currentTag;
            }

          case 12:
            _context4.next = 4;
            break;

          case 14:
            _context4.next = 19;
            break;

          case 16:
            _context4.prev = 16;
            _context4.t0 = _context4["catch"](2);

            _iterator.e(_context4.t0);

          case 19:
            _context4.prev = 19;

            _iterator.f();

            return _context4.finish(19);

          case 22:
          case "end":
            return _context4.stop();
        }
      }
    }, _callee4, null, [[2, 16, 19, 22]]);
  }));
  return _outputAnswers.apply(this, arguments);
}

function determineCourseType(_x6) {
  return _determineCourseType.apply(this, arguments);
}

function _determineCourseType() {
  _determineCourseType = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee5(iframeUrl) {
    var courseInfo, identifier, manifestUrl, answerUrl, dom, answers, _answerUrl;

    return regenerator_default.a.wrap(function _callee5$(_context5) {
      while (1) {
        switch (_context5.prev = _context5.next) {
          case 0:
            courseInfo = /com\/(.*?)\//.exec(iframeUrl)[1];
            courseInfo = decodeURI(courseInfo);
            console.log(courseInfo);
            identifier = undefined;

            try {
              identifier = /#(.*)\?/.exec(iframeUrl)[1];
            } catch (error) {}

            manifestUrl = "https://centercourseware.sflep.com/".concat(courseInfo, "/resource/manifest.xml");
            answerUrl = "https://centercourseware.sflep.com/".concat(courseInfo, "/data").concat(identifier, ".html");
            answers = [];

            if (!MANIFEST.includes(courseInfo)) {
              _context5.next = 17;
              break;
            }

            _context5.next = 11;
            return queryManifest(manifestUrl, identifier, courseInfo);

          case 11:
            dom = _context5.sent;
            answers = parseManifest(dom);
            if (document.querySelector('div[id^="word"]')) parseWordTest();
            if (store["e" /* store */].USER_SETTINGS.autoSolve) solveManifest(answers);
            _context5.next = 43;
            break;

          case 17:
            if (!ET.includes(courseInfo)) {
              _context5.next = 25;
              break;
            }

            _context5.next = 20;
            return queryData(answerUrl);

          case 20:
            dom = _context5.sent;
            answers = parseEt(dom);
            if (store["e" /* store */].USER_SETTINGS.autoSolve) solveEt(answers);
            _context5.next = 43;
            break;

          case 25:
            if (!DATA_SOLUTION.includes(courseInfo)) {
              _context5.next = 29;
              break;
            }

            //直接在原始页面查找
            setTimeout(function () {
              answers = parseDataSolution();
              console.log(answers);
              outputAnswers(answers);
              if (store["e" /* store */].USER_SETTINGS.autoSolve) solveDataSolution(answers);
            }, 2000);
            _context5.next = 43;
            break;

          case 29:
            if (!READING.includes(courseInfo)) {
              _context5.next = 37;
              break;
            }

            _answerUrl = location.href.split("&")[0].replace("web.html?courseurl=", "data/") + ".xml";
            _context5.next = 33;
            return queryData(_answerUrl);

          case 33:
            dom = _context5.sent;
            answers = parseReading(dom);
            _context5.next = 43;
            break;

          case 37:
            Object(actions["a" /* addMessage */])("\u672A\u9002\u914D\u7684\u8BFE\u7A0B\u7C7B\u578B\uFF0C\u8BF7\u5728Github\u53CD\u9988", "info");
            Object(actions["a" /* addMessage */])("\u6CE8\u610F\u9875\u9762\u4E0A\u662F\u5426\u6709\u4E8C\u7EF4\u7801\uFF0C\u4E14\u6CE8\u660E\u9700\u5728app\u4E2D\u4F7F\u7528\uFF0C\u8FD9\u79CD\u9898\u578B\u53EA\u80FD\u7528app", "info");
            Object(actions["a" /* addMessage */])("".concat(courseInfo), "info");
            console.log("未处理的课程类型");
            console.log(courseInfo);
            console.log(identifier); // add_to_container("", document.querySelectorAll(".daan"));
            // add_to_container("", document.querySelectorAll(".tianking .tl_daan"));

          case 43:
            console.log(answers);
            outputAnswers(answers);

          case 45:
          case "end":
            return _context5.stop();
        }
      }
    }, _callee5);
  }));
  return _determineCourseType.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/exercise/initial.ts



if (location.href.includes("centercourseware.sflep.com")) {
  var initial_watcher = function watcher() {
    var currentUrl = location.href;
    console.log(currentUrl);

    if (currentUrl != bufferUrl) {
      Object(actions["b" /* clearMessage */])();
      determineCourseType(currentUrl);
    }

    bufferUrl = currentUrl;
  };

  var bufferUrl = "";
  setInterval(initial_watcher, 2000);
  initialCourseCatalog();
}
// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/sweetalert2/dist/sweetalert2.all.js
var sweetalert2_all = __webpack_require__(20);
var sweetalert2_all_default = /*#__PURE__*/__webpack_require__.n(sweetalert2_all);

// CONCATENATED MODULE: ./src/plugins/time/main.ts





var time = Date.now();
var buffer = time;

function generateRandomInterval() {
  var rate = 1;
  var _store$USER_SETTINGS = store["e" /* store */].USER_SETTINGS,
      randomRefresh = _store$USER_SETTINGS.randomRefresh,
      refreshIntervalMin = _store$USER_SETTINGS.refreshIntervalMin,
      refreshIntervalMax = _store$USER_SETTINGS.refreshIntervalMax;

  if (randomRefresh) {
    rate = Math.random();
    var currentRate = refreshIntervalMin / refreshIntervalMax;
    if (rate < currentRate) rate = currentRate;
  }

  if (store["b" /* DEBUG_MODE */]) {
    console.log(refreshIntervalMax * rate * 60 * 1000);
    console.log(Date.now() - buffer);
    console.log(Date.now() - time);
    buffer = Date.now();
  }

  return rate;
}

function nextChapter() {
  var topWindow = top;
  var jumpButtons = topWindow.document.querySelectorAll('a[onclick^="SelectSCO"]');
  var currentButton = topWindow.document.querySelector("li.courseware_current a"); // const currentNext = topWindow.document.querySelector(
  //     '[href="javascript:NextSCO();"]',
  // ) as HTMLLinkElement;

  if (currentButton == jumpButtons[jumpButtons.length - 1]) {
    if (store["e" /* store */].USER_SETTINGS.loopRefresh) {
      jumpButtons[1].click(); //跳到开头,并跳过可能的课程说明页
    }
  } else {
    // currentNext.click();
    NextSCO();
  }
}

function notify() {
  return _notify.apply(this, arguments);
}

function _notify() {
  _notify = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
    var status;
    return regenerator_default.a.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return Object(common["b" /* getValue */])("hasInformed", false);

          case 2:
            status = _context.sent;

            if (status) {
              _context.next = 7;
              break;
            }

            sweetalert2_all_default.a.fire({
              title: "挂机(时长)提示",
              text: "如果将浏览器置于后台,不一定能自动切换页面",
              icon: "info",
              confirmButtonText: "了解"
            });
            _context.next = 7;
            return Object(common["g" /* setValue */])("hasInformed", true);

          case 7:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));
  return _notify.apply(this, arguments);
}

function recur() {
  setTimeout(function () {
    nextChapter();
    recur();
  }, store["e" /* store */].USER_SETTINGS.refreshIntervalMax * generateRandomInterval() * 60 * 1000);
}

function autoRefresh() {
  return _autoRefresh.apply(this, arguments);
}

function _autoRefresh() {
  _autoRefresh = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
    return regenerator_default.a.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            if (store["e" /* store */].USER_SETTINGS.autoRefresh) {
              recur();
              notify();
            }

          case 1:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2);
  }));
  return _autoRefresh.apply(this, arguments);
}
// CONCATENATED MODULE: ./src/plugins/time/initial.ts
 //切换页面的按钮在外部,而不是在iframe内

if (location.href.includes(".sflep.com/student/StudyCourse.aspx?") || location.href.includes(".sflep.com/Course/TryCourse.aspx?")) {
  autoRefresh();
}
// CONCATENATED MODULE: ./src/plugins/initial.ts
// 在此处注册(直接调用)各个插件中,app初始化时要执行的函数




/***/ })
/******/ ]);