/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunk"] = self["webpackChunk"] || []).push([["src_views_home_vue"],{

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/array-slice.js":
/*!***********************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/array-slice.js ***!
  \***********************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ \"./node_modules/_core-js@3.25.5@core-js/internals/function-uncurry-this.js\");\nmodule.exports = uncurryThis([].slice);\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/array-slice.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/engine-is-ios.js":
/*!*************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/engine-is-ios.js ***!
  \*************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ \"./node_modules/_core-js@3.25.5@core-js/internals/engine-user-agent.js\");\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/engine-is-ios.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/engine-is-node.js":
/*!**************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/engine-is-node.js ***!
  \**************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("var classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/_core-js@3.25.5@core-js/internals/classof-raw.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/_core-js@3.25.5@core-js/internals/global.js\");\nmodule.exports = classof(global.process) == 'process';\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/engine-is-node.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/function-apply.js":
/*!**************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/function-apply.js ***!
  \**************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("var NATIVE_BIND = __webpack_require__(/*! ../internals/function-bind-native */ \"./node_modules/_core-js@3.25.5@core-js/internals/function-bind-native.js\");\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/function-apply.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/task.js":
/*!****************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/task.js ***!
  \****************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("var global = __webpack_require__(/*! ../internals/global */ \"./node_modules/_core-js@3.25.5@core-js/internals/global.js\");\nvar apply = __webpack_require__(/*! ../internals/function-apply */ \"./node_modules/_core-js@3.25.5@core-js/internals/function-apply.js\");\nvar bind = __webpack_require__(/*! ../internals/function-bind-context */ \"./node_modules/_core-js@3.25.5@core-js/internals/function-bind-context.js\");\nvar isCallable = __webpack_require__(/*! ../internals/is-callable */ \"./node_modules/_core-js@3.25.5@core-js/internals/is-callable.js\");\nvar hasOwn = __webpack_require__(/*! ../internals/has-own-property */ \"./node_modules/_core-js@3.25.5@core-js/internals/has-own-property.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/_core-js@3.25.5@core-js/internals/fails.js\");\nvar html = __webpack_require__(/*! ../internals/html */ \"./node_modules/_core-js@3.25.5@core-js/internals/html.js\");\nvar arraySlice = __webpack_require__(/*! ../internals/array-slice */ \"./node_modules/_core-js@3.25.5@core-js/internals/array-slice.js\");\nvar createElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/_core-js@3.25.5@core-js/internals/document-create-element.js\");\nvar validateArgumentsLength = __webpack_require__(/*! ../internals/validate-arguments-length */ \"./node_modules/_core-js@3.25.5@core-js/internals/validate-arguments-length.js\");\nvar IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ \"./node_modules/_core-js@3.25.5@core-js/internals/engine-is-ios.js\");\nvar IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ \"./node_modules/_core-js@3.25.5@core-js/internals/engine-is-node.js\");\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\ntry {\n  // Deno throws a ReferenceError on `location` access without `--location` flag\n  $location = global.location;\n} catch (error) {/* empty */}\nvar run = function (id) {\n  if (hasOwn(queue, id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\nvar listener = function (event) {\n  run(event.data);\n};\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(handler) {\n    validateArgumentsLength(arguments.length, 1);\n    var fn = isCallable(handler) ? handler : Function(handler);\n    var args = arraySlice(arguments, 1);\n    queue[++counter] = function () {\n      apply(fn, undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (IS_NODE) {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n    // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n    // Browsers with MessageChannel, includes WebWorkers\n    // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port);\n    // Browsers with postMessage, skip WebWorkers\n    // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && isCallable(global.postMessage) && !global.importScripts && $location && $location.protocol !== 'file:' && !fails(post)) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n    // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n    // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/task.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/internals/validate-arguments-length.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/internals/validate-arguments-length.js ***!
  \*************************************************************************************/
/***/ (function(module) {

eval("var $TypeError = TypeError;\nmodule.exports = function (passed, required) {\n  if (passed < required) throw $TypeError('Not enough arguments');\n  return passed;\n};\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/internals/validate-arguments-length.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/modules/web.clear-immediate.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/modules/web.clear-immediate.js ***!
  \*****************************************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("var $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/_core-js@3.25.5@core-js/internals/export.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/_core-js@3.25.5@core-js/internals/global.js\");\nvar clearImmediate = (__webpack_require__(/*! ../internals/task */ \"./node_modules/_core-js@3.25.5@core-js/internals/task.js\").clear);\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({\n  global: true,\n  bind: true,\n  enumerable: true,\n  forced: global.clearImmediate !== clearImmediate\n}, {\n  clearImmediate: clearImmediate\n});\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/modules/web.clear-immediate.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/modules/web.immediate.js":
/*!***********************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/modules/web.immediate.js ***!
  \***********************************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(/*! ../modules/web.clear-immediate */ \"./node_modules/_core-js@3.25.5@core-js/modules/web.clear-immediate.js\");\n__webpack_require__(/*! ../modules/web.set-immediate */ \"./node_modules/_core-js@3.25.5@core-js/modules/web.set-immediate.js\");\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/modules/web.immediate.js?");

/***/ }),

/***/ "./node_modules/_core-js@3.25.5@core-js/modules/web.set-immediate.js":
/*!***************************************************************************!*\
  !*** ./node_modules/_core-js@3.25.5@core-js/modules/web.set-immediate.js ***!
  \***************************************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("var $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/_core-js@3.25.5@core-js/internals/export.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/_core-js@3.25.5@core-js/internals/global.js\");\nvar setImmediate = (__webpack_require__(/*! ../internals/task */ \"./node_modules/_core-js@3.25.5@core-js/internals/task.js\").set);\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({\n  global: true,\n  bind: true,\n  enumerable: true,\n  forced: global.setImmediate !== setImmediate\n}, {\n  setImmediate: setImmediate\n});\n\n//# sourceURL=webpack:///./node_modules/_core-js@3.25.5@core-js/modules/web.set-immediate.js?");

/***/ }),

/***/ "./node_modules/_dom7@2.1.5@dom7/dist/dom7.modular.js":
/*!************************************************************!*\
  !*** ./node_modules/_dom7@2.1.5@dom7/dist/dom7.modular.js ***!
  \************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"$\": function() { return /* binding */ $; },\n/* harmony export */   \"add\": function() { return /* binding */ add; },\n/* harmony export */   \"addClass\": function() { return /* binding */ addClass; },\n/* harmony export */   \"animate\": function() { return /* binding */ animate; },\n/* harmony export */   \"animationEnd\": function() { return /* binding */ animationEnd; },\n/* harmony export */   \"append\": function() { return /* binding */ append; },\n/* harmony export */   \"appendTo\": function() { return /* binding */ appendTo; },\n/* harmony export */   \"attr\": function() { return /* binding */ attr; },\n/* harmony export */   \"blur\": function() { return /* binding */ blur; },\n/* harmony export */   \"change\": function() { return /* binding */ change; },\n/* harmony export */   \"children\": function() { return /* binding */ children; },\n/* harmony export */   \"click\": function() { return /* binding */ click; },\n/* harmony export */   \"closest\": function() { return /* binding */ closest; },\n/* harmony export */   \"css\": function() { return /* binding */ css; },\n/* harmony export */   \"data\": function() { return /* binding */ data; },\n/* harmony export */   \"dataset\": function() { return /* binding */ dataset; },\n/* harmony export */   \"detach\": function() { return /* binding */ detach; },\n/* harmony export */   \"each\": function() { return /* binding */ each; },\n/* harmony export */   \"empty\": function() { return /* binding */ empty; },\n/* harmony export */   \"eq\": function() { return /* binding */ eq; },\n/* harmony export */   \"filter\": function() { return /* binding */ filter; },\n/* harmony export */   \"find\": function() { return /* binding */ find; },\n/* harmony export */   \"focus\": function() { return /* binding */ focus; },\n/* harmony export */   \"focusin\": function() { return /* binding */ focusin; },\n/* harmony export */   \"focusout\": function() { return /* binding */ focusout; },\n/* harmony export */   \"forEach\": function() { return /* binding */ forEach; },\n/* harmony export */   \"hasClass\": function() { return /* binding */ hasClass; },\n/* harmony export */   \"height\": function() { return /* binding */ height; },\n/* harmony export */   \"hide\": function() { return /* binding */ hide; },\n/* harmony export */   \"html\": function() { return /* binding */ html; },\n/* harmony export */   \"index\": function() { return /* binding */ index; },\n/* harmony export */   \"indexOf\": function() { return /* binding */ indexOf; },\n/* harmony export */   \"insertAfter\": function() { return /* binding */ insertAfter; },\n/* harmony export */   \"insertBefore\": function() { return /* binding */ insertBefore; },\n/* harmony export */   \"is\": function() { return /* binding */ is; },\n/* harmony export */   \"keydown\": function() { return /* binding */ keydown; },\n/* harmony export */   \"keypress\": function() { return /* binding */ keypress; },\n/* harmony export */   \"keyup\": function() { return /* binding */ keyup; },\n/* harmony export */   \"map\": function() { return /* binding */ map; },\n/* harmony export */   \"mousedown\": function() { return /* binding */ mousedown; },\n/* harmony export */   \"mouseenter\": function() { return /* binding */ mouseenter; },\n/* harmony export */   \"mouseleave\": function() { return /* binding */ mouseleave; },\n/* harmony export */   \"mousemove\": function() { return /* binding */ mousemove; },\n/* harmony export */   \"mouseout\": function() { return /* binding */ mouseout; },\n/* harmony export */   \"mouseover\": function() { return /* binding */ mouseover; },\n/* harmony export */   \"mouseup\": function() { return /* binding */ mouseup; },\n/* harmony export */   \"next\": function() { return /* binding */ next; },\n/* harmony export */   \"nextAll\": function() { return /* binding */ nextAll; },\n/* harmony export */   \"off\": function() { return /* binding */ off; },\n/* harmony export */   \"offset\": function() { return /* binding */ offset; },\n/* harmony export */   \"on\": function() { return /* binding */ on; },\n/* harmony export */   \"once\": function() { return /* binding */ once; },\n/* harmony export */   \"outerHeight\": function() { return /* binding */ outerHeight; },\n/* harmony export */   \"outerWidth\": function() { return /* binding */ outerWidth; },\n/* harmony export */   \"parent\": function() { return /* binding */ parent; },\n/* harmony export */   \"parents\": function() { return /* binding */ parents; },\n/* harmony export */   \"prepend\": function() { return /* binding */ prepend; },\n/* harmony export */   \"prependTo\": function() { return /* binding */ prependTo; },\n/* harmony export */   \"prev\": function() { return /* binding */ prev; },\n/* harmony export */   \"prevAll\": function() { return /* binding */ prevAll; },\n/* harmony export */   \"prop\": function() { return /* binding */ prop; },\n/* harmony export */   \"remove\": function() { return /* binding */ remove; },\n/* harmony export */   \"removeAttr\": function() { return /* binding */ removeAttr; },\n/* harmony export */   \"removeClass\": function() { return /* binding */ removeClass; },\n/* harmony export */   \"removeData\": function() { return /* binding */ removeData; },\n/* harmony export */   \"resize\": function() { return /* binding */ resize; },\n/* harmony export */   \"scroll\": function() { return /* binding */ scroll; },\n/* harmony export */   \"scrollLeft\": function() { return /* binding */ scrollLeft; },\n/* harmony export */   \"scrollTo\": function() { return /* binding */ scrollTo; },\n/* harmony export */   \"scrollTop\": function() { return /* binding */ scrollTop; },\n/* harmony export */   \"show\": function() { return /* binding */ show; },\n/* harmony export */   \"siblings\": function() { return /* binding */ siblings; },\n/* harmony export */   \"stop\": function() { return /* binding */ stop; },\n/* harmony export */   \"styles\": function() { return /* binding */ styles; },\n/* harmony export */   \"submit\": function() { return /* binding */ submit; },\n/* harmony export */   \"text\": function() { return /* binding */ text; },\n/* harmony export */   \"toArray\": function() { return /* binding */ toArray; },\n/* harmony export */   \"toggleClass\": function() { return /* binding */ toggleClass; },\n/* harmony export */   \"touchend\": function() { return /* binding */ touchend; },\n/* harmony export */   \"touchmove\": function() { return /* binding */ touchmove; },\n/* harmony export */   \"touchstart\": function() { return /* binding */ touchstart; },\n/* harmony export */   \"transform\": function() { return /* binding */ transform; },\n/* harmony export */   \"transition\": function() { return /* binding */ transition; },\n/* harmony export */   \"transitionEnd\": function() { return /* binding */ transitionEnd; },\n/* harmony export */   \"trigger\": function() { return /* binding */ trigger; },\n/* harmony export */   \"val\": function() { return /* binding */ val; },\n/* harmony export */   \"width\": function() { return /* binding */ width; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.unshift.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.unshift.js\");\n/* harmony import */ var core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ssr-window */ \"./node_modules/_ssr-window@2.0.0@ssr-window/dist/ssr-window.esm.js\");\n\n\n/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\n\nclass Dom7 {\n  constructor(arr) {\n    const self = this;\n    // Create array-like object\n    for (let i = 0; i < arr.length; i += 1) {\n      self[i] = arr[i];\n    }\n    self.length = arr.length;\n    // Return collection with methods\n    return this;\n  }\n}\nfunction $(selector, context) {\n  const arr = [];\n  let i = 0;\n  if (selector && !context) {\n    if (selector instanceof Dom7) {\n      return selector;\n    }\n  }\n  if (selector) {\n    // String\n    if (typeof selector === 'string') {\n      let els;\n      let tempParent;\n      const html = selector.trim();\n      if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n        let toCreate = 'div';\n        if (html.indexOf('<li') === 0) toCreate = 'ul';\n        if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n        if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n        if (html.indexOf('<tbody') === 0) toCreate = 'table';\n        if (html.indexOf('<option') === 0) toCreate = 'select';\n        tempParent = ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.createElement(toCreate);\n        tempParent.innerHTML = html;\n        for (i = 0; i < tempParent.childNodes.length; i += 1) {\n          arr.push(tempParent.childNodes[i]);\n        }\n      } else {\n        if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\n          // Pure ID selector\n          els = [ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.getElementById(selector.trim().split('#')[1])];\n        } else {\n          // Other selectors\n          els = (context || ssr_window__WEBPACK_IMPORTED_MODULE_2__.document).querySelectorAll(selector.trim());\n        }\n        for (i = 0; i < els.length; i += 1) {\n          if (els[i]) arr.push(els[i]);\n        }\n      }\n    } else if (selector.nodeType || selector === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window || selector === ssr_window__WEBPACK_IMPORTED_MODULE_2__.document) {\n      // Node/element\n      arr.push(selector);\n    } else if (selector.length > 0 && selector[0].nodeType) {\n      // Array of elements or instance of Dom\n      for (i = 0; i < selector.length; i += 1) {\n        arr.push(selector[i]);\n      }\n    }\n  }\n  return new Dom7(arr);\n}\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\nfunction unique(arr) {\n  const uniqueArray = [];\n  for (let i = 0; i < arr.length; i += 1) {\n    if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n  }\n  return uniqueArray;\n}\nfunction toCamelCase(string) {\n  return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\nfunction requestAnimationFrame(callback) {\n  if (ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.requestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.requestAnimationFrame(callback);else if (ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.webkitRequestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.webkitRequestAnimationFrame(callback);\n  return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n  if (ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.cancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.cancelAnimationFrame(id);else if (ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.webkitCancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.webkitCancelAnimationFrame(id);\n  return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n  if (typeof className === 'undefined') {\n    return this;\n  }\n  const classes = className.split(' ');\n  for (let i = 0; i < classes.length; i += 1) {\n    for (let j = 0; j < this.length; j += 1) {\n      if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n    }\n  }\n  return this;\n}\nfunction removeClass(className) {\n  const classes = className.split(' ');\n  for (let i = 0; i < classes.length; i += 1) {\n    for (let j = 0; j < this.length; j += 1) {\n      if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n    }\n  }\n  return this;\n}\nfunction hasClass(className) {\n  if (!this[0]) return false;\n  return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n  const classes = className.split(' ');\n  for (let i = 0; i < classes.length; i += 1) {\n    for (let j = 0; j < this.length; j += 1) {\n      if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n    }\n  }\n  return this;\n}\nfunction attr(attrs, value) {\n  if (arguments.length === 1 && typeof attrs === 'string') {\n    // Get attr\n    if (this[0]) return this[0].getAttribute(attrs);\n    return undefined;\n  }\n\n  // Set attrs\n  for (let i = 0; i < this.length; i += 1) {\n    if (arguments.length === 2) {\n      // String\n      this[i].setAttribute(attrs, value);\n    } else {\n      // Object\n      // eslint-disable-next-line\n      for (const attrName in attrs) {\n        this[i][attrName] = attrs[attrName];\n        this[i].setAttribute(attrName, attrs[attrName]);\n      }\n    }\n  }\n  return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].removeAttribute(attr);\n  }\n  return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n  if (arguments.length === 1 && typeof props === 'string') {\n    // Get prop\n    if (this[0]) return this[0][props];\n  } else {\n    // Set props\n    for (let i = 0; i < this.length; i += 1) {\n      if (arguments.length === 2) {\n        // String\n        this[i][props] = value;\n      } else {\n        // Object\n        // eslint-disable-next-line\n        for (const propName in props) {\n          this[i][propName] = props[propName];\n        }\n      }\n    }\n    return this;\n  }\n}\nfunction data(key, value) {\n  let el;\n  if (typeof value === 'undefined') {\n    el = this[0];\n    // Get value\n    if (el) {\n      if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n        return el.dom7ElementDataStorage[key];\n      }\n      const dataKey = el.getAttribute(`data-${key}`);\n      if (dataKey) {\n        return dataKey;\n      }\n      return undefined;\n    }\n    return undefined;\n  }\n\n  // Set value\n  for (let i = 0; i < this.length; i += 1) {\n    el = this[i];\n    if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n    el.dom7ElementDataStorage[key] = value;\n  }\n  return this;\n}\nfunction removeData(key) {\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n    if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n      el.dom7ElementDataStorage[key] = null;\n      delete el.dom7ElementDataStorage[key];\n    }\n  }\n}\nfunction dataset() {\n  const el = this[0];\n  if (!el) return undefined;\n  const dataset = {}; // eslint-disable-line\n  if (el.dataset) {\n    // eslint-disable-next-line\n    for (const dataKey in el.dataset) {\n      dataset[dataKey] = el.dataset[dataKey];\n    }\n  } else {\n    for (let i = 0; i < el.attributes.length; i += 1) {\n      // eslint-disable-next-line\n      const attr = el.attributes[i];\n      if (attr.name.indexOf('data-') >= 0) {\n        dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n      }\n    }\n  }\n  // eslint-disable-next-line\n  for (const key in dataset) {\n    if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n  }\n  return dataset;\n}\nfunction val(value) {\n  const dom = this;\n  if (typeof value === 'undefined') {\n    if (dom[0]) {\n      if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n        const values = [];\n        for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n          values.push(dom[0].selectedOptions[i].value);\n        }\n        return values;\n      }\n      return dom[0].value;\n    }\n    return undefined;\n  }\n  for (let i = 0; i < dom.length; i += 1) {\n    const el = dom[i];\n    if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n      for (let j = 0; j < el.options.length; j += 1) {\n        el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n      }\n    } else {\n      el.value = value;\n    }\n  }\n  return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n  for (let i = 0; i < this.length; i += 1) {\n    const elStyle = this[i].style;\n    elStyle.webkitTransform = transform;\n    elStyle.transform = transform;\n  }\n  return this;\n}\nfunction transition(duration) {\n  if (typeof duration !== 'string') {\n    duration = `${duration}ms`; // eslint-disable-line\n  }\n\n  for (let i = 0; i < this.length; i += 1) {\n    const elStyle = this[i].style;\n    elStyle.webkitTransitionDuration = duration;\n    elStyle.transitionDuration = duration;\n  }\n  return this;\n}\n// Events\nfunction on(...args) {\n  let [eventType, targetSelector, listener, capture] = args;\n  if (typeof args[1] === 'function') {\n    [eventType, listener, capture] = args;\n    targetSelector = undefined;\n  }\n  if (!capture) capture = false;\n  function handleLiveEvent(e) {\n    const target = e.target;\n    if (!target) return;\n    const eventData = e.target.dom7EventData || [];\n    if (eventData.indexOf(e) < 0) {\n      eventData.unshift(e);\n    }\n    if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n      const parents = $(target).parents(); // eslint-disable-line\n      for (let k = 0; k < parents.length; k += 1) {\n        if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n      }\n    }\n  }\n  function handleEvent(e) {\n    const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n    if (eventData.indexOf(e) < 0) {\n      eventData.unshift(e);\n    }\n    listener.apply(this, eventData);\n  }\n  const events = eventType.split(' ');\n  let j;\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n    if (!targetSelector) {\n      for (j = 0; j < events.length; j += 1) {\n        const event = events[j];\n        if (!el.dom7Listeners) el.dom7Listeners = {};\n        if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n        el.dom7Listeners[event].push({\n          listener,\n          proxyListener: handleEvent\n        });\n        el.addEventListener(event, handleEvent, capture);\n      }\n    } else {\n      // Live events\n      for (j = 0; j < events.length; j += 1) {\n        const event = events[j];\n        if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n        if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n        el.dom7LiveListeners[event].push({\n          listener,\n          proxyListener: handleLiveEvent\n        });\n        el.addEventListener(event, handleLiveEvent, capture);\n      }\n    }\n  }\n  return this;\n}\nfunction off(...args) {\n  let [eventType, targetSelector, listener, capture] = args;\n  if (typeof args[1] === 'function') {\n    [eventType, listener, capture] = args;\n    targetSelector = undefined;\n  }\n  if (!capture) capture = false;\n  const events = eventType.split(' ');\n  for (let i = 0; i < events.length; i += 1) {\n    const event = events[i];\n    for (let j = 0; j < this.length; j += 1) {\n      const el = this[j];\n      let handlers;\n      if (!targetSelector && el.dom7Listeners) {\n        handlers = el.dom7Listeners[event];\n      } else if (targetSelector && el.dom7LiveListeners) {\n        handlers = el.dom7LiveListeners[event];\n      }\n      if (handlers && handlers.length) {\n        for (let k = handlers.length - 1; k >= 0; k -= 1) {\n          const handler = handlers[k];\n          if (listener && handler.listener === listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          } else if (!listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          }\n        }\n      }\n    }\n  }\n  return this;\n}\nfunction once(...args) {\n  const dom = this;\n  let [eventName, targetSelector, listener, capture] = args;\n  if (typeof args[1] === 'function') {\n    [eventName, listener, capture] = args;\n    targetSelector = undefined;\n  }\n  function onceHandler(...eventArgs) {\n    listener.apply(this, eventArgs);\n    dom.off(eventName, targetSelector, onceHandler, capture);\n    if (onceHandler.dom7proxy) {\n      delete onceHandler.dom7proxy;\n    }\n  }\n  onceHandler.dom7proxy = listener;\n  return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n  const events = args[0].split(' ');\n  const eventData = args[1];\n  for (let i = 0; i < events.length; i += 1) {\n    const event = events[i];\n    for (let j = 0; j < this.length; j += 1) {\n      const el = this[j];\n      let evt;\n      try {\n        evt = new ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.CustomEvent(event, {\n          detail: eventData,\n          bubbles: true,\n          cancelable: true\n        });\n      } catch (e) {\n        evt = ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.createEvent('Event');\n        evt.initEvent(event, true, true);\n        evt.detail = eventData;\n      }\n      // eslint-disable-next-line\n      el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n      el.dispatchEvent(evt);\n      el.dom7EventData = [];\n      delete el.dom7EventData;\n    }\n  }\n  return this;\n}\nfunction transitionEnd(callback) {\n  const events = ['webkitTransitionEnd', 'transitionend'];\n  const dom = this;\n  let i;\n  function fireCallBack(e) {\n    /* jshint validthis:true */\n    if (e.target !== this) return;\n    callback.call(this, e);\n    for (i = 0; i < events.length; i += 1) {\n      dom.off(events[i], fireCallBack);\n    }\n  }\n  if (callback) {\n    for (i = 0; i < events.length; i += 1) {\n      dom.on(events[i], fireCallBack);\n    }\n  }\n  return this;\n}\nfunction animationEnd(callback) {\n  const events = ['webkitAnimationEnd', 'animationend'];\n  const dom = this;\n  let i;\n  function fireCallBack(e) {\n    if (e.target !== this) return;\n    callback.call(this, e);\n    for (i = 0; i < events.length; i += 1) {\n      dom.off(events[i], fireCallBack);\n    }\n  }\n  if (callback) {\n    for (i = 0; i < events.length; i += 1) {\n      dom.on(events[i], fireCallBack);\n    }\n  }\n  return this;\n}\n// Sizing/Styles\nfunction width() {\n  if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window) {\n    return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.innerWidth;\n  }\n  if (this.length > 0) {\n    return parseFloat(this.css('width'));\n  }\n  return null;\n}\nfunction outerWidth(includeMargins) {\n  if (this.length > 0) {\n    if (includeMargins) {\n      // eslint-disable-next-line\n      const styles = this.styles();\n      return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n    }\n    return this[0].offsetWidth;\n  }\n  return null;\n}\nfunction height() {\n  if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window) {\n    return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.innerHeight;\n  }\n  if (this.length > 0) {\n    return parseFloat(this.css('height'));\n  }\n  return null;\n}\nfunction outerHeight(includeMargins) {\n  if (this.length > 0) {\n    if (includeMargins) {\n      // eslint-disable-next-line\n      const styles = this.styles();\n      return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n    }\n    return this[0].offsetHeight;\n  }\n  return null;\n}\nfunction offset() {\n  if (this.length > 0) {\n    const el = this[0];\n    const box = el.getBoundingClientRect();\n    const body = ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.body;\n    const clientTop = el.clientTop || body.clientTop || 0;\n    const clientLeft = el.clientLeft || body.clientLeft || 0;\n    const scrollTop = el === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window ? ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.scrollY : el.scrollTop;\n    const scrollLeft = el === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window ? ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.scrollX : el.scrollLeft;\n    return {\n      top: box.top + scrollTop - clientTop,\n      left: box.left + scrollLeft - clientLeft\n    };\n  }\n  return null;\n}\nfunction hide() {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].style.display = 'none';\n  }\n  return this;\n}\nfunction show() {\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n    if (el.style.display === 'none') {\n      el.style.display = '';\n    }\n    if (ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n      // Still not visible\n      el.style.display = 'block';\n    }\n  }\n  return this;\n}\nfunction styles() {\n  if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.getComputedStyle(this[0], null);\n  return {};\n}\nfunction css(props, value) {\n  let i;\n  if (arguments.length === 1) {\n    if (typeof props === 'string') {\n      if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.getComputedStyle(this[0], null).getPropertyValue(props);\n    } else {\n      for (i = 0; i < this.length; i += 1) {\n        // eslint-disable-next-line\n        for (let prop in props) {\n          this[i].style[prop] = props[prop];\n        }\n      }\n      return this;\n    }\n  }\n  if (arguments.length === 2 && typeof props === 'string') {\n    for (i = 0; i < this.length; i += 1) {\n      this[i].style[props] = value;\n    }\n    return this;\n  }\n  return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n  const arr = [];\n  for (let i = 0; i < this.length; i += 1) {\n    arr.push(this[i]);\n  }\n  return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n  // Don't bother continuing without a callback\n  if (!callback) return this;\n  // Iterate over the current collection\n  for (let i = 0; i < this.length; i += 1) {\n    // If the callback returns false\n    if (callback.call(this[i], i, this[i]) === false) {\n      // End the loop early\n      return this;\n    }\n  }\n  // Return `this` to allow chained DOM operations\n  return this;\n}\nfunction forEach(callback) {\n  // Don't bother continuing without a callback\n  if (!callback) return this;\n  // Iterate over the current collection\n  for (let i = 0; i < this.length; i += 1) {\n    // If the callback returns false\n    if (callback.call(this[i], this[i], i) === false) {\n      // End the loop early\n      return this;\n    }\n  }\n  // Return `this` to allow chained DOM operations\n  return this;\n}\nfunction filter(callback) {\n  const matchedItems = [];\n  const dom = this;\n  for (let i = 0; i < dom.length; i += 1) {\n    if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n  }\n  return new Dom7(matchedItems);\n}\nfunction map(callback) {\n  const modifiedItems = [];\n  const dom = this;\n  for (let i = 0; i < dom.length; i += 1) {\n    modifiedItems.push(callback.call(dom[i], i, dom[i]));\n  }\n  return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n  if (typeof html === 'undefined') {\n    return this[0] ? this[0].innerHTML : undefined;\n  }\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].innerHTML = html;\n  }\n  return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n  if (typeof text === 'undefined') {\n    if (this[0]) {\n      return this[0].textContent.trim();\n    }\n    return null;\n  }\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].textContent = text;\n  }\n  return this;\n}\nfunction is(selector) {\n  const el = this[0];\n  let compareWith;\n  let i;\n  if (!el || typeof selector === 'undefined') return false;\n  if (typeof selector === 'string') {\n    if (el.matches) return el.matches(selector);else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n    compareWith = $(selector);\n    for (i = 0; i < compareWith.length; i += 1) {\n      if (compareWith[i] === el) return true;\n    }\n    return false;\n  } else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_2__.document) return el === ssr_window__WEBPACK_IMPORTED_MODULE_2__.document;else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window) return el === ssr_window__WEBPACK_IMPORTED_MODULE_2__.window;\n  if (selector.nodeType || selector instanceof Dom7) {\n    compareWith = selector.nodeType ? [selector] : selector;\n    for (i = 0; i < compareWith.length; i += 1) {\n      if (compareWith[i] === el) return true;\n    }\n    return false;\n  }\n  return false;\n}\nfunction indexOf(el) {\n  for (let i = 0; i < this.length; i += 1) {\n    if (this[i] === el) return i;\n  }\n  return -1;\n}\nfunction index() {\n  let child = this[0];\n  let i;\n  if (child) {\n    i = 0;\n    // eslint-disable-next-line\n    while ((child = child.previousSibling) !== null) {\n      if (child.nodeType === 1) i += 1;\n    }\n    return i;\n  }\n  return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n  if (typeof index === 'undefined') return this;\n  const length = this.length;\n  let returnIndex;\n  if (index > length - 1) {\n    return new Dom7([]);\n  }\n  if (index < 0) {\n    returnIndex = length + index;\n    if (returnIndex < 0) return new Dom7([]);\n    return new Dom7([this[returnIndex]]);\n  }\n  return new Dom7([this[index]]);\n}\nfunction append(...args) {\n  let newChild;\n  for (let k = 0; k < args.length; k += 1) {\n    newChild = args[k];\n    for (let i = 0; i < this.length; i += 1) {\n      if (typeof newChild === 'string') {\n        const tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.createElement('div');\n        tempDiv.innerHTML = newChild;\n        while (tempDiv.firstChild) {\n          this[i].appendChild(tempDiv.firstChild);\n        }\n      } else if (newChild instanceof Dom7) {\n        for (let j = 0; j < newChild.length; j += 1) {\n          this[i].appendChild(newChild[j]);\n        }\n      } else {\n        this[i].appendChild(newChild);\n      }\n    }\n  }\n  return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n  $(parent).append(this);\n  return this;\n}\nfunction prepend(newChild) {\n  let i;\n  let j;\n  for (i = 0; i < this.length; i += 1) {\n    if (typeof newChild === 'string') {\n      const tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_2__.document.createElement('div');\n      tempDiv.innerHTML = newChild;\n      for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n        this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n      }\n    } else if (newChild instanceof Dom7) {\n      for (j = 0; j < newChild.length; j += 1) {\n        this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n      }\n    } else {\n      this[i].insertBefore(newChild, this[i].childNodes[0]);\n    }\n  }\n  return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n  $(parent).prepend(this);\n  return this;\n}\nfunction insertBefore(selector) {\n  const before = $(selector);\n  for (let i = 0; i < this.length; i += 1) {\n    if (before.length === 1) {\n      before[0].parentNode.insertBefore(this[i], before[0]);\n    } else if (before.length > 1) {\n      for (let j = 0; j < before.length; j += 1) {\n        before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n      }\n    }\n  }\n}\nfunction insertAfter(selector) {\n  const after = $(selector);\n  for (let i = 0; i < this.length; i += 1) {\n    if (after.length === 1) {\n      after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n    } else if (after.length > 1) {\n      for (let j = 0; j < after.length; j += 1) {\n        after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n      }\n    }\n  }\n}\nfunction next(selector) {\n  if (this.length > 0) {\n    if (selector) {\n      if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n        return new Dom7([this[0].nextElementSibling]);\n      }\n      return new Dom7([]);\n    }\n    if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n    return new Dom7([]);\n  }\n  return new Dom7([]);\n}\nfunction nextAll(selector) {\n  const nextEls = [];\n  let el = this[0];\n  if (!el) return new Dom7([]);\n  while (el.nextElementSibling) {\n    const next = el.nextElementSibling; // eslint-disable-line\n    if (selector) {\n      if ($(next).is(selector)) nextEls.push(next);\n    } else nextEls.push(next);\n    el = next;\n  }\n  return new Dom7(nextEls);\n}\nfunction prev(selector) {\n  if (this.length > 0) {\n    const el = this[0];\n    if (selector) {\n      if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n        return new Dom7([el.previousElementSibling]);\n      }\n      return new Dom7([]);\n    }\n    if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n    return new Dom7([]);\n  }\n  return new Dom7([]);\n}\nfunction prevAll(selector) {\n  const prevEls = [];\n  let el = this[0];\n  if (!el) return new Dom7([]);\n  while (el.previousElementSibling) {\n    const prev = el.previousElementSibling; // eslint-disable-line\n    if (selector) {\n      if ($(prev).is(selector)) prevEls.push(prev);\n    } else prevEls.push(prev);\n    el = prev;\n  }\n  return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n  return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n  const parents = []; // eslint-disable-line\n  for (let i = 0; i < this.length; i += 1) {\n    if (this[i].parentNode !== null) {\n      if (selector) {\n        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n      } else {\n        parents.push(this[i].parentNode);\n      }\n    }\n  }\n  return $(unique(parents));\n}\nfunction parents(selector) {\n  const parents = []; // eslint-disable-line\n  for (let i = 0; i < this.length; i += 1) {\n    let parent = this[i].parentNode; // eslint-disable-line\n    while (parent) {\n      if (selector) {\n        if ($(parent).is(selector)) parents.push(parent);\n      } else {\n        parents.push(parent);\n      }\n      parent = parent.parentNode;\n    }\n  }\n  return $(unique(parents));\n}\nfunction closest(selector) {\n  let closest = this; // eslint-disable-line\n  if (typeof selector === 'undefined') {\n    return new Dom7([]);\n  }\n  if (!closest.is(selector)) {\n    closest = closest.parents(selector).eq(0);\n  }\n  return closest;\n}\nfunction find(selector) {\n  const foundElements = [];\n  for (let i = 0; i < this.length; i += 1) {\n    const found = this[i].querySelectorAll(selector);\n    for (let j = 0; j < found.length; j += 1) {\n      foundElements.push(found[j]);\n    }\n  }\n  return new Dom7(foundElements);\n}\nfunction children(selector) {\n  const children = []; // eslint-disable-line\n  for (let i = 0; i < this.length; i += 1) {\n    const childNodes = this[i].childNodes;\n    for (let j = 0; j < childNodes.length; j += 1) {\n      if (!selector) {\n        if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n      } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n        children.push(childNodes[j]);\n      }\n    }\n  }\n  return new Dom7(unique(children));\n}\nfunction remove() {\n  for (let i = 0; i < this.length; i += 1) {\n    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n  }\n  return this;\n}\nfunction detach() {\n  return this.remove();\n}\nfunction add(...args) {\n  const dom = this;\n  let i;\n  let j;\n  for (i = 0; i < args.length; i += 1) {\n    const toAdd = $(args[i]);\n    for (j = 0; j < toAdd.length; j += 1) {\n      dom[dom.length] = toAdd[j];\n      dom.length += 1;\n    }\n  }\n  return dom;\n}\nfunction empty() {\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n    if (el.nodeType === 1) {\n      for (let j = 0; j < el.childNodes.length; j += 1) {\n        if (el.childNodes[j].parentNode) {\n          el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n        }\n      }\n      el.textContent = '';\n    }\n  }\n  return this;\n}\nfunction scrollTo(...args) {\n  let [left, top, duration, easing, callback] = args;\n  if (args.length === 4 && typeof easing === 'function') {\n    callback = easing;\n    [left, top, duration, callback, easing] = args;\n  }\n  if (typeof easing === 'undefined') easing = 'swing';\n  return this.each(function animate() {\n    const el = this;\n    let currentTop;\n    let currentLeft;\n    let maxTop;\n    let maxLeft;\n    let newTop;\n    let newLeft;\n    let scrollTop; // eslint-disable-line\n    let scrollLeft; // eslint-disable-line\n    let animateTop = top > 0 || top === 0;\n    let animateLeft = left > 0 || left === 0;\n    if (typeof easing === 'undefined') {\n      easing = 'swing';\n    }\n    if (animateTop) {\n      currentTop = el.scrollTop;\n      if (!duration) {\n        el.scrollTop = top;\n      }\n    }\n    if (animateLeft) {\n      currentLeft = el.scrollLeft;\n      if (!duration) {\n        el.scrollLeft = left;\n      }\n    }\n    if (!duration) return;\n    if (animateTop) {\n      maxTop = el.scrollHeight - el.offsetHeight;\n      newTop = Math.max(Math.min(top, maxTop), 0);\n    }\n    if (animateLeft) {\n      maxLeft = el.scrollWidth - el.offsetWidth;\n      newLeft = Math.max(Math.min(left, maxLeft), 0);\n    }\n    let startTime = null;\n    if (animateTop && newTop === currentTop) animateTop = false;\n    if (animateLeft && newLeft === currentLeft) animateLeft = false;\n    function render(time = new Date().getTime()) {\n      if (startTime === null) {\n        startTime = time;\n      }\n      const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n      const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n      let done;\n      if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n      if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n      if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n        el.scrollTop = newTop;\n        done = true;\n      }\n      if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n        el.scrollTop = newTop;\n        done = true;\n      }\n      if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n        el.scrollLeft = newLeft;\n        done = true;\n      }\n      if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n        el.scrollLeft = newLeft;\n        done = true;\n      }\n      if (done) {\n        if (callback) callback();\n        return;\n      }\n      if (animateTop) el.scrollTop = scrollTop;\n      if (animateLeft) el.scrollLeft = scrollLeft;\n      requestAnimationFrame(render);\n    }\n    requestAnimationFrame(render);\n  });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n  let [top, duration, easing, callback] = args;\n  if (args.length === 3 && typeof easing === 'function') {\n    [top, duration, callback, easing] = args;\n  }\n  const dom = this;\n  if (typeof top === 'undefined') {\n    if (dom.length > 0) return dom[0].scrollTop;\n    return null;\n  }\n  return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n  let [left, duration, easing, callback] = args;\n  if (args.length === 3 && typeof easing === 'function') {\n    [left, duration, callback, easing] = args;\n  }\n  const dom = this;\n  if (typeof left === 'undefined') {\n    if (dom.length > 0) return dom[0].scrollLeft;\n    return null;\n  }\n  return dom.scrollTo(left, undefined, duration, easing, callback);\n}\nfunction animate(initialProps, initialParams) {\n  const els = this;\n  const a = {\n    props: Object.assign({}, initialProps),\n    params: Object.assign({\n      duration: 300,\n      easing: 'swing' // or 'linear'\n      /* Callbacks\n      begin(elements)\n      complete(elements)\n      progress(elements, complete, remaining, start, tweenValue)\n      */\n    }, initialParams),\n    elements: els,\n    animating: false,\n    que: [],\n    easingProgress(easing, progress) {\n      if (easing === 'swing') {\n        return 0.5 - Math.cos(progress * Math.PI) / 2;\n      }\n      if (typeof easing === 'function') {\n        return easing(progress);\n      }\n      return progress;\n    },\n    stop() {\n      if (a.frameId) {\n        cancelAnimationFrame(a.frameId);\n      }\n      a.animating = false;\n      a.elements.each((index, el) => {\n        const element = el;\n        delete element.dom7AnimateInstance;\n      });\n      a.que = [];\n    },\n    done(complete) {\n      a.animating = false;\n      a.elements.each((index, el) => {\n        const element = el;\n        delete element.dom7AnimateInstance;\n      });\n      if (complete) complete(els);\n      if (a.que.length > 0) {\n        const que = a.que.shift();\n        a.animate(que[0], que[1]);\n      }\n    },\n    animate(props, params) {\n      if (a.animating) {\n        a.que.push([props, params]);\n        return a;\n      }\n      const elements = [];\n\n      // Define & Cache Initials & Units\n      a.elements.each((index, el) => {\n        let initialFullValue;\n        let initialValue;\n        let unit;\n        let finalValue;\n        let finalFullValue;\n        if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n        elements[index] = {\n          container: el\n        };\n        Object.keys(props).forEach(prop => {\n          initialFullValue = ssr_window__WEBPACK_IMPORTED_MODULE_2__.window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n          initialValue = parseFloat(initialFullValue);\n          unit = initialFullValue.replace(initialValue, '');\n          finalValue = parseFloat(props[prop]);\n          finalFullValue = props[prop] + unit;\n          elements[index][prop] = {\n            initialFullValue,\n            initialValue,\n            unit,\n            finalValue,\n            finalFullValue,\n            currentValue: initialValue\n          };\n        });\n      });\n      let startTime = null;\n      let time;\n      let elementsDone = 0;\n      let propsDone = 0;\n      let done;\n      let began = false;\n      a.animating = true;\n      function render() {\n        time = new Date().getTime();\n        let progress;\n        let easeProgress;\n        // let el;\n        if (!began) {\n          began = true;\n          if (params.begin) params.begin(els);\n        }\n        if (startTime === null) {\n          startTime = time;\n        }\n        if (params.progress) {\n          // eslint-disable-next-line\n          params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n        }\n        elements.forEach(element => {\n          const el = element;\n          if (done || el.done) return;\n          Object.keys(props).forEach(prop => {\n            if (done || el.done) return;\n            progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n            easeProgress = a.easingProgress(params.easing, progress);\n            const {\n              initialValue,\n              finalValue,\n              unit\n            } = el[prop];\n            el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n            const currentValue = el[prop].currentValue;\n            if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n              el.container.style[prop] = finalValue + unit;\n              propsDone += 1;\n              if (propsDone === Object.keys(props).length) {\n                el.done = true;\n                elementsDone += 1;\n              }\n              if (elementsDone === elements.length) {\n                done = true;\n              }\n            }\n            if (done) {\n              a.done(params.complete);\n              return;\n            }\n            el.container.style[prop] = currentValue + unit;\n          });\n        });\n        if (done) return;\n        // Then call\n        a.frameId = requestAnimationFrame(render);\n      }\n      a.frameId = requestAnimationFrame(render);\n      return a;\n    }\n  };\n  if (a.elements.length === 0) {\n    return els;\n  }\n  let animateInstance;\n  for (let i = 0; i < a.elements.length; i += 1) {\n    if (a.elements[i].dom7AnimateInstance) {\n      animateInstance = a.elements[i].dom7AnimateInstance;\n    } else a.elements[i].dom7AnimateInstance = a;\n  }\n  if (!animateInstance) {\n    animateInstance = a;\n  }\n  if (initialProps === 'stop') {\n    animateInstance.stop();\n  } else {\n    animateInstance.animate(a.props, a.params);\n  }\n  return els;\n}\nfunction stop() {\n  const els = this;\n  for (let i = 0; i < els.length; i += 1) {\n    if (els[i].dom7AnimateInstance) {\n      els[i].dom7AnimateInstance.stop();\n    }\n  }\n}\nconst noTrigger = 'resize scroll'.split(' ');\nfunction eventShortcut(name, ...args) {\n  if (typeof args[0] === 'undefined') {\n    for (let i = 0; i < this.length; i += 1) {\n      if (noTrigger.indexOf(name) < 0) {\n        if (name in this[i]) this[i][name]();else {\n          $(this[i]).trigger(name);\n        }\n      }\n    }\n    return this;\n  }\n  return this.on(name, ...args);\n}\nfunction click(...args) {\n  return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n  return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n  return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n  return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n  return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n  return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n  return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n  return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n  return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n  return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n  return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n  return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n  return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n  return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n  return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n  return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n  return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n  return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n  return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n  return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n  return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n  return eventShortcut.bind(this)('scroll', ...args);\n}\n\n\n//# sourceURL=webpack:///./node_modules/_dom7@2.1.5@dom7/dist/dom7.modular.js?");

/***/ }),

/***/ "./node_modules/_mqtt@4.3.7@mqtt/dist/mqtt.js":
/*!****************************************************!*\
  !*** ./node_modules/_mqtt@4.3.7@mqtt/dist/mqtt.js ***!
  \****************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("__webpack_require__(/*! core-js/modules/web.immediate.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/web.immediate.js\");__webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.push.js\");__webpack_require__(/*! core-js/modules/es.typed-array.find-last.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.typed-array.find-last.js\");__webpack_require__(/*! core-js/modules/es.typed-array.find-last-index.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.typed-array.find-last-index.js\");__webpack_require__(/*! core-js/modules/es.array.unshift.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.unshift.js\");(function(f){if(true){module.exports=f();}else { var g; }})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=undefined;if(!f&&c)return require(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a;}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r);},p,p.exports,r,e,n,t);}return n[i].exports;}for(var u=undefined,i=0;i<t.length;i++)o(t[i]);return o;}return r;}()({1:[function(require,module,exports){(function(process,global){(function(){'use strict';/**\n * Module dependencies\n */const EventEmitter=require('events').EventEmitter;const Store=require('./store');const TopicAliasRecv=require('./topic-alias-recv');const TopicAliasSend=require('./topic-alias-send');const mqttPacket=require('mqtt-packet');const DefaultMessageIdProvider=require('./default-message-id-provider');const Writable=require('readable-stream').Writable;const inherits=require('inherits');const reInterval=require('reinterval');const clone=require('rfdc/default');const validations=require('./validations');const xtend=require('xtend');const debug=require('debug')('mqttjs:client');const nextTick=process?process.nextTick:function(callback){setTimeout(callback,0);};const setImmediate=global.setImmediate||function(callback){// works in node v0.8\nnextTick(callback);};const defaultConnectOptions={keepalive:60,reschedulePings:true,protocolId:'MQTT',protocolVersion:4,reconnectPeriod:1000,connectTimeout:30*1000,clean:true,resubscribe:true};const socketErrors=['ECONNREFUSED','EADDRINUSE','ECONNRESET','ENOTFOUND'];// Other Socket Errors: EADDRINUSE, ECONNRESET, ENOTFOUND.\nconst errors={0:'',1:'Unacceptable protocol version',2:'Identifier rejected',3:'Server unavailable',4:'Bad username or password',5:'Not authorized',16:'No matching subscribers',17:'No subscription existed',128:'Unspecified error',129:'Malformed Packet',130:'Protocol Error',131:'Implementation specific error',132:'Unsupported Protocol Version',133:'Client Identifier not valid',134:'Bad User Name or Password',135:'Not authorized',136:'Server unavailable',137:'Server busy',138:'Banned',139:'Server shutting down',140:'Bad authentication method',141:'Keep Alive timeout',142:'Session taken over',143:'Topic Filter invalid',144:'Topic Name invalid',145:'Packet identifier in use',146:'Packet Identifier not found',147:'Receive Maximum exceeded',148:'Topic Alias invalid',149:'Packet too large',150:'Message rate too high',151:'Quota exceeded',152:'Administrative action',153:'Payload format invalid',154:'Retain not supported',155:'QoS not supported',156:'Use another server',157:'Server moved',158:'Shared Subscriptions not supported',159:'Connection rate exceeded',160:'Maximum connect time',161:'Subscription Identifiers not supported',162:'Wildcard Subscriptions not supported'};function defaultId(){return'mqttjs_'+Math.random().toString(16).substr(2,8);}function applyTopicAlias(client,packet){if(client.options.protocolVersion===5){if(packet.cmd==='publish'){let alias;if(packet.properties){alias=packet.properties.topicAlias;}const topic=packet.topic.toString();if(client.topicAliasSend){if(alias){if(topic.length!==0){// register topic alias\ndebug('applyTopicAlias :: register topic: %s - alias: %d',topic,alias);if(!client.topicAliasSend.put(topic,alias)){debug('applyTopicAlias :: error out of range. topic: %s - alias: %d',topic,alias);return new Error('Sending Topic Alias out of range');}}}else{if(topic.length!==0){if(client.options.autoAssignTopicAlias){alias=client.topicAliasSend.getAliasByTopic(topic);if(alias){packet.topic='';packet.properties={...packet.properties,topicAlias:alias};debug('applyTopicAlias :: auto assign(use) topic: %s - alias: %d',topic,alias);}else{alias=client.topicAliasSend.getLruAlias();client.topicAliasSend.put(topic,alias);packet.properties={...packet.properties,topicAlias:alias};debug('applyTopicAlias :: auto assign topic: %s - alias: %d',topic,alias);}}else if(client.options.autoUseTopicAlias){alias=client.topicAliasSend.getAliasByTopic(topic);if(alias){packet.topic='';packet.properties={...packet.properties,topicAlias:alias};debug('applyTopicAlias :: auto use topic: %s - alias: %d',topic,alias);}}}}}else if(alias){debug('applyTopicAlias :: error out of range. topic: %s - alias: %d',topic,alias);return new Error('Sending Topic Alias out of range');}}}}function removeTopicAliasAndRecoverTopicName(client,packet){let alias;if(packet.properties){alias=packet.properties.topicAlias;}let topic=packet.topic.toString();if(topic.length===0){// restore topic from alias\nif(typeof alias==='undefined'){return new Error('Unregistered Topic Alias');}else{topic=client.topicAliasSend.getTopicByAlias(alias);if(typeof topic==='undefined'){return new Error('Unregistered Topic Alias');}else{packet.topic=topic;}}}if(alias){delete packet.properties.topicAlias;}}function sendPacket(client,packet,cb){debug('sendPacket :: packet: %O',packet);debug('sendPacket :: emitting `packetsend`');client.emit('packetsend',packet);debug('sendPacket :: writing to stream');const result=mqttPacket.writeToStream(packet,client.stream,client.options);debug('sendPacket :: writeToStream result %s',result);if(!result&&cb&&cb!==nop){debug('sendPacket :: handle events on `drain` once through callback.');client.stream.once('drain',cb);}else if(cb){debug('sendPacket :: invoking cb');cb();}}function flush(queue){if(queue){debug('flush: queue exists? %b',!!queue);Object.keys(queue).forEach(function(messageId){if(typeof queue[messageId].cb==='function'){queue[messageId].cb(new Error('Connection closed'));// This is suspicious.  Why do we only delete this if we have a callbck?\n// If this is by-design, then adding no as callback would cause this to get deleted unintentionally.\ndelete queue[messageId];}});}}function flushVolatile(queue){if(queue){debug('flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function');Object.keys(queue).forEach(function(messageId){if(queue[messageId].volatile&&typeof queue[messageId].cb==='function'){queue[messageId].cb(new Error('Connection closed'));delete queue[messageId];}});}}function storeAndSend(client,packet,cb,cbStorePut){debug('storeAndSend :: store packet with cmd %s to outgoingStore',packet.cmd);let storePacket=packet;let err;if(storePacket.cmd==='publish'){// The original packet is for sending.\n// The cloned storePacket is for storing to resend on reconnect.\n// Topic Alias must not be used after disconnected.\nstorePacket=clone(packet);err=removeTopicAliasAndRecoverTopicName(client,storePacket);if(err){return cb&&cb(err);}}client.outgoingStore.put(storePacket,function storedPacket(err){if(err){return cb&&cb(err);}cbStorePut();sendPacket(client,packet,cb);});}function nop(error){debug('nop ::',error);}/**\n * MqttClient constructor\n *\n * @param {Stream} stream - stream\n * @param {Object} [options] - connection options\n * (see Connection#connect)\n */function MqttClient(streamBuilder,options){let k;const that=this;if(!(this instanceof MqttClient)){return new MqttClient(streamBuilder,options);}this.options=options||{};// Defaults\nfor(k in defaultConnectOptions){if(typeof this.options[k]==='undefined'){this.options[k]=defaultConnectOptions[k];}else{this.options[k]=options[k];}}debug('MqttClient :: options.protocol',options.protocol);debug('MqttClient :: options.protocolVersion',options.protocolVersion);debug('MqttClient :: options.username',options.username);debug('MqttClient :: options.keepalive',options.keepalive);debug('MqttClient :: options.reconnectPeriod',options.reconnectPeriod);debug('MqttClient :: options.rejectUnauthorized',options.rejectUnauthorized);debug('MqttClient :: options.topicAliasMaximum',options.topicAliasMaximum);this.options.clientId=typeof options.clientId==='string'?options.clientId:defaultId();debug('MqttClient :: clientId',this.options.clientId);this.options.customHandleAcks=options.protocolVersion===5&&options.customHandleAcks?options.customHandleAcks:function(){arguments[3](0);};this.streamBuilder=streamBuilder;this.messageIdProvider=typeof this.options.messageIdProvider==='undefined'?new DefaultMessageIdProvider():this.options.messageIdProvider;// Inflight message storages\nthis.outgoingStore=options.outgoingStore||new Store();this.incomingStore=options.incomingStore||new Store();// Should QoS zero messages be queued when the connection is broken?\nthis.queueQoSZero=options.queueQoSZero===undefined?true:options.queueQoSZero;// map of subscribed topics to support reconnection\nthis._resubscribeTopics={};// map of a subscribe messageId and a topic\nthis.messageIdToTopic={};// Ping timer, setup in _setupPingTimer\nthis.pingTimer=null;// Is the client connected?\nthis.connected=false;// Are we disconnecting?\nthis.disconnecting=false;// Packet queue\nthis.queue=[];// connack timer\nthis.connackTimer=null;// Reconnect timer\nthis.reconnectTimer=null;// Is processing store?\nthis._storeProcessing=false;// Packet Ids are put into the store during store processing\nthis._packetIdsDuringStoreProcessing={};// Store processing queue\nthis._storeProcessingQueue=[];// Inflight callbacks\nthis.outgoing={};// True if connection is first time.\nthis._firstConnection=true;if(options.topicAliasMaximum>0){if(options.topicAliasMaximum>0xffff){debug('MqttClient :: options.topicAliasMaximum is out of range');}else{this.topicAliasRecv=new TopicAliasRecv(options.topicAliasMaximum);}}// Send queued packets\nthis.on('connect',function(){const queue=this.queue;function deliver(){const entry=queue.shift();debug('deliver :: entry %o',entry);let packet=null;if(!entry){that._resubscribe();return;}packet=entry.packet;debug('deliver :: call _sendPacket for %o',packet);let send=true;if(packet.messageId&&packet.messageId!==0){if(!that.messageIdProvider.register(packet.messageId)){send=false;}}if(send){that._sendPacket(packet,function(err){if(entry.cb){entry.cb(err);}deliver();});}else{debug('messageId: %d has already used. The message is skipped and removed.',packet.messageId);deliver();}}debug('connect :: sending queued packets');deliver();});this.on('close',function(){debug('close :: connected set to `false`');this.connected=false;debug('close :: clearing connackTimer');clearTimeout(this.connackTimer);debug('close :: clearing ping timer');if(that.pingTimer!==null){that.pingTimer.clear();that.pingTimer=null;}if(this.topicAliasRecv){this.topicAliasRecv.clear();}debug('close :: calling _setupReconnect');this._setupReconnect();});EventEmitter.call(this);debug('MqttClient :: setting up stream');this._setupStream();}inherits(MqttClient,EventEmitter);/**\n * setup the event handlers in the inner stream.\n *\n * @api private\n */MqttClient.prototype._setupStream=function(){const that=this;const writable=new Writable();const parser=mqttPacket.parser(this.options);let completeParse=null;const packets=[];debug('_setupStream :: calling method to clear reconnect');this._clearReconnect();debug('_setupStream :: using streamBuilder provided to client to create stream');this.stream=this.streamBuilder(this);parser.on('packet',function(packet){debug('parser :: on packet push to packets array.');packets.push(packet);});function nextTickWork(){if(packets.length){nextTick(work);}else{const done=completeParse;completeParse=null;done();}}function work(){debug('work :: getting next packet in queue');const packet=packets.shift();if(packet){debug('work :: packet pulled from queue');that._handlePacket(packet,nextTickWork);}else{debug('work :: no packets in queue');const done=completeParse;completeParse=null;debug('work :: done flag is %s',!!done);if(done)done();}}writable._write=function(buf,enc,done){completeParse=done;debug('writable stream :: parsing buffer');parser.parse(buf);work();};function streamErrorHandler(error){debug('streamErrorHandler :: error',error.message);if(socketErrors.includes(error.code)){// handle error\ndebug('streamErrorHandler :: emitting error');that.emit('error',error);}else{nop(error);}}debug('_setupStream :: pipe stream to writable stream');this.stream.pipe(writable);// Suppress connection errors\nthis.stream.on('error',streamErrorHandler);// Echo stream close\nthis.stream.on('close',function(){debug('(%s)stream :: on close',that.options.clientId);flushVolatile(that.outgoing);debug('stream: emit close to MqttClient');that.emit('close');});// Send a connect packet\ndebug('_setupStream: sending packet `connect`');const connectPacket=Object.create(this.options);connectPacket.cmd='connect';if(this.topicAliasRecv){if(!connectPacket.properties){connectPacket.properties={};}if(this.topicAliasRecv){connectPacket.properties.topicAliasMaximum=this.topicAliasRecv.max;}}// avoid message queue\nsendPacket(this,connectPacket);// Echo connection errors\nparser.on('error',this.emit.bind(this,'error'));// auth\nif(this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData){that.end(()=>this.emit('error',new Error('Packet has no Authentication Method')));return this;}if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket==='object'){const authPacket=xtend({cmd:'auth',reasonCode:0},this.options.authPacket);sendPacket(this,authPacket);}}// many drain listeners are needed for qos 1 callbacks if the connection is intermittent\nthis.stream.setMaxListeners(1000);clearTimeout(this.connackTimer);this.connackTimer=setTimeout(function(){debug('!!connectTimeout hit!! Calling _cleanUp with force `true`');that._cleanUp(true);},this.options.connectTimeout);};MqttClient.prototype._handlePacket=function(packet,done){const options=this.options;if(options.protocolVersion===5&&options.properties&&options.properties.maximumPacketSize&&options.properties.maximumPacketSize<packet.length){this.emit('error',new Error('exceeding packets size '+packet.cmd));this.end({reasonCode:149,properties:{reasonString:'Maximum packet size was exceeded'}});return this;}debug('_handlePacket :: emitting packetreceive');this.emit('packetreceive',packet);switch(packet.cmd){case'publish':this._handlePublish(packet,done);break;case'puback':case'pubrec':case'pubcomp':case'suback':case'unsuback':this._handleAck(packet);done();break;case'pubrel':this._handlePubrel(packet,done);break;case'connack':this._handleConnack(packet);done();break;case'auth':this._handleAuth(packet);done();break;case'pingresp':this._handlePingresp(packet);done();break;case'disconnect':this._handleDisconnect(packet);done();break;default:// do nothing\n// maybe we should do an error handling\n// or just log it\nbreak;}};MqttClient.prototype._checkDisconnecting=function(callback){if(this.disconnecting){if(callback&&callback!==nop){callback(new Error('client disconnecting'));}else{this.emit('error',new Error('client disconnecting'));}}return this.disconnecting;};/**\n * publish - publish <message> to <topic>\n *\n * @param {String} topic - topic to publish to\n * @param {String, Buffer} message - message to publish\n * @param {Object} [opts] - publish options, includes:\n *    {Number} qos - qos level to publish on\n *    {Boolean} retain - whether or not to retain the message\n *    {Boolean} dup - whether or not mark a message as duplicate\n *    {Function} cbStorePut - function(){} called when message is put into `outgoingStore`\n * @param {Function} [callback] - function(err){}\n *    called when publish succeeds or fails\n * @returns {MqttClient} this - for chaining\n * @api public\n *\n * @example client.publish('topic', 'message');\n * @example\n *     client.publish('topic', 'message', {qos: 1, retain: true, dup: true});\n * @example client.publish('topic', 'message', console.log);\n */MqttClient.prototype.publish=function(topic,message,opts,callback){debug('publish :: message `%s` to topic `%s`',message,topic);const options=this.options;// .publish(topic, payload, cb);\nif(typeof opts==='function'){callback=opts;opts=null;}// default opts\nconst defaultOpts={qos:0,retain:false,dup:false};opts=xtend(defaultOpts,opts);if(this._checkDisconnecting(callback)){return this;}const that=this;const publishProc=function(){let messageId=0;if(opts.qos===1||opts.qos===2){messageId=that._nextId();if(messageId===null){debug('No messageId left');return false;}}const packet={cmd:'publish',topic:topic,payload:message,qos:opts.qos,retain:opts.retain,messageId:messageId,dup:opts.dup};if(options.protocolVersion===5){packet.properties=opts.properties;}debug('publish :: qos',opts.qos);switch(opts.qos){case 1:case 2:// Add to callbacks\nthat.outgoing[packet.messageId]={volatile:false,cb:callback||nop};debug('MqttClient:publish: packet cmd: %s',packet.cmd);that._sendPacket(packet,undefined,opts.cbStorePut);break;default:debug('MqttClient:publish: packet cmd: %s',packet.cmd);that._sendPacket(packet,callback,opts.cbStorePut);break;}return true;};if(this._storeProcessing||this._storeProcessingQueue.length>0||!publishProc()){this._storeProcessingQueue.push({invoke:publishProc,cbStorePut:opts.cbStorePut,callback:callback});}return this;};/**\n * subscribe - subscribe to <topic>\n *\n * @param {String, Array, Object} topic - topic(s) to subscribe to, supports objects in the form {'topic': qos}\n * @param {Object} [opts] - optional subscription options, includes:\n *    {Number} qos - subscribe qos level\n * @param {Function} [callback] - function(err, granted){} where:\n *    {Error} err - subscription error (none at the moment!)\n *    {Array} granted - array of {topic: 't', qos: 0}\n * @returns {MqttClient} this - for chaining\n * @api public\n * @example client.subscribe('topic');\n * @example client.subscribe('topic', {qos: 1});\n * @example client.subscribe({'topic': {qos: 0}, 'topic2': {qos: 1}}, console.log);\n * @example client.subscribe('topic', console.log);\n */MqttClient.prototype.subscribe=function(){const that=this;const args=new Array(arguments.length);for(let i=0;i<arguments.length;i++){args[i]=arguments[i];}const subs=[];let obj=args.shift();const resubscribe=obj.resubscribe;let callback=args.pop()||nop;let opts=args.pop();const version=this.options.protocolVersion;delete obj.resubscribe;if(typeof obj==='string'){obj=[obj];}if(typeof callback!=='function'){opts=callback;callback=nop;}const invalidTopic=validations.validateTopics(obj);if(invalidTopic!==null){setImmediate(callback,new Error('Invalid topic '+invalidTopic));return this;}if(this._checkDisconnecting(callback)){debug('subscribe: discconecting true');return this;}const defaultOpts={qos:0};if(version===5){defaultOpts.nl=false;defaultOpts.rap=false;defaultOpts.rh=0;}opts=xtend(defaultOpts,opts);if(Array.isArray(obj)){obj.forEach(function(topic){debug('subscribe: array topic %s',topic);if(!Object.prototype.hasOwnProperty.call(that._resubscribeTopics,topic)||that._resubscribeTopics[topic].qos<opts.qos||resubscribe){const currentOpts={topic:topic,qos:opts.qos};if(version===5){currentOpts.nl=opts.nl;currentOpts.rap=opts.rap;currentOpts.rh=opts.rh;currentOpts.properties=opts.properties;}debug('subscribe: pushing topic `%s` and qos `%s` to subs list',currentOpts.topic,currentOpts.qos);subs.push(currentOpts);}});}else{Object.keys(obj).forEach(function(k){debug('subscribe: object topic %s',k);if(!Object.prototype.hasOwnProperty.call(that._resubscribeTopics,k)||that._resubscribeTopics[k].qos<obj[k].qos||resubscribe){const currentOpts={topic:k,qos:obj[k].qos};if(version===5){currentOpts.nl=obj[k].nl;currentOpts.rap=obj[k].rap;currentOpts.rh=obj[k].rh;currentOpts.properties=opts.properties;}debug('subscribe: pushing `%s` to subs list',currentOpts);subs.push(currentOpts);}});}if(!subs.length){callback(null,[]);return this;}const subscribeProc=function(){const messageId=that._nextId();if(messageId===null){debug('No messageId left');return false;}const packet={cmd:'subscribe',subscriptions:subs,qos:1,retain:false,dup:false,messageId:messageId};if(opts.properties){packet.properties=opts.properties;}// subscriptions to resubscribe to in case of disconnect\nif(that.options.resubscribe){debug('subscribe :: resubscribe true');const topics=[];subs.forEach(function(sub){if(that.options.reconnectPeriod>0){const topic={qos:sub.qos};if(version===5){topic.nl=sub.nl||false;topic.rap=sub.rap||false;topic.rh=sub.rh||0;topic.properties=sub.properties;}that._resubscribeTopics[sub.topic]=topic;topics.push(sub.topic);}});that.messageIdToTopic[packet.messageId]=topics;}that.outgoing[packet.messageId]={volatile:true,cb:function(err,packet){if(!err){const granted=packet.granted;for(let i=0;i<granted.length;i+=1){subs[i].qos=granted[i];}}callback(err,subs);}};debug('subscribe :: call _sendPacket');that._sendPacket(packet);return true;};if(this._storeProcessing||this._storeProcessingQueue.length>0||!subscribeProc()){this._storeProcessingQueue.push({invoke:subscribeProc,callback:callback});}return this;};/**\n * unsubscribe - unsubscribe from topic(s)\n *\n * @param {String, Array} topic - topics to unsubscribe from\n * @param {Object} [opts] - optional subscription options, includes:\n *    {Object} properties - properties of unsubscribe packet\n * @param {Function} [callback] - callback fired on unsuback\n * @returns {MqttClient} this - for chaining\n * @api public\n * @example client.unsubscribe('topic');\n * @example client.unsubscribe('topic', console.log);\n */MqttClient.prototype.unsubscribe=function(){const that=this;const args=new Array(arguments.length);for(let i=0;i<arguments.length;i++){args[i]=arguments[i];}let topic=args.shift();let callback=args.pop()||nop;let opts=args.pop();if(typeof topic==='string'){topic=[topic];}if(typeof callback!=='function'){opts=callback;callback=nop;}const invalidTopic=validations.validateTopics(topic);if(invalidTopic!==null){setImmediate(callback,new Error('Invalid topic '+invalidTopic));return this;}if(that._checkDisconnecting(callback)){return this;}const unsubscribeProc=function(){const messageId=that._nextId();if(messageId===null){debug('No messageId left');return false;}const packet={cmd:'unsubscribe',qos:1,messageId:messageId};if(typeof topic==='string'){packet.unsubscriptions=[topic];}else if(Array.isArray(topic)){packet.unsubscriptions=topic;}if(that.options.resubscribe){packet.unsubscriptions.forEach(function(topic){delete that._resubscribeTopics[topic];});}if(typeof opts==='object'&&opts.properties){packet.properties=opts.properties;}that.outgoing[packet.messageId]={volatile:true,cb:callback};debug('unsubscribe: call _sendPacket');that._sendPacket(packet);return true;};if(this._storeProcessing||this._storeProcessingQueue.length>0||!unsubscribeProc()){this._storeProcessingQueue.push({invoke:unsubscribeProc,callback:callback});}return this;};/**\n * end - close connection\n *\n * @returns {MqttClient} this - for chaining\n * @param {Boolean} force - do not wait for all in-flight messages to be acked\n * @param {Object} opts - added to the disconnect packet\n * @param {Function} cb - called when the client has been closed\n *\n * @api public\n */MqttClient.prototype.end=function(force,opts,cb){const that=this;debug('end :: (%s)',this.options.clientId);if(force==null||typeof force!=='boolean'){cb=opts||nop;opts=force;force=false;if(typeof opts!=='object'){cb=opts;opts=null;if(typeof cb!=='function'){cb=nop;}}}if(typeof opts!=='object'){cb=opts;opts=null;}debug('end :: cb? %s',!!cb);cb=cb||nop;function closeStores(){debug('end :: closeStores: closing incoming and outgoing stores');that.disconnected=true;that.incomingStore.close(function(e1){that.outgoingStore.close(function(e2){debug('end :: closeStores: emitting end');that.emit('end');if(cb){const err=e1||e2;debug('end :: closeStores: invoking callback with args');cb(err);}});});if(that._deferredReconnect){that._deferredReconnect();}}function finish(){// defer closesStores of an I/O cycle,\n// just to make sure things are\n// ok for websockets\ndebug('end :: (%s) :: finish :: calling _cleanUp with force %s',that.options.clientId,force);that._cleanUp(force,()=>{debug('end :: finish :: calling process.nextTick on closeStores');// const boundProcess = nextTick.bind(null, closeStores)\nnextTick(closeStores.bind(that));},opts);}if(this.disconnecting){cb();return this;}this._clearReconnect();this.disconnecting=true;if(!force&&Object.keys(this.outgoing).length>0){// wait 10ms, just to be sure we received all of it\ndebug('end :: (%s) :: calling finish in 10ms once outgoing is empty',that.options.clientId);this.once('outgoingEmpty',setTimeout.bind(null,finish,10));}else{debug('end :: (%s) :: immediately calling finish',that.options.clientId);finish();}return this;};/**\n * removeOutgoingMessage - remove a message in outgoing store\n * the outgoing callback will be called withe Error('Message removed') if the message is removed\n *\n * @param {Number} messageId - messageId to remove message\n * @returns {MqttClient} this - for chaining\n * @api public\n *\n * @example client.removeOutgoingMessage(client.getLastAllocated());\n */MqttClient.prototype.removeOutgoingMessage=function(messageId){const cb=this.outgoing[messageId]?this.outgoing[messageId].cb:null;delete this.outgoing[messageId];this.outgoingStore.del({messageId:messageId},function(){cb(new Error('Message removed'));});return this;};/**\n * reconnect - connect again using the same options as connect()\n *\n * @param {Object} [opts] - optional reconnect options, includes:\n *    {Store} incomingStore - a store for the incoming packets\n *    {Store} outgoingStore - a store for the outgoing packets\n *    if opts is not given, current stores are used\n * @returns {MqttClient} this - for chaining\n *\n * @api public\n */MqttClient.prototype.reconnect=function(opts){debug('client reconnect');const that=this;const f=function(){if(opts){that.options.incomingStore=opts.incomingStore;that.options.outgoingStore=opts.outgoingStore;}else{that.options.incomingStore=null;that.options.outgoingStore=null;}that.incomingStore=that.options.incomingStore||new Store();that.outgoingStore=that.options.outgoingStore||new Store();that.disconnecting=false;that.disconnected=false;that._deferredReconnect=null;that._reconnect();};if(this.disconnecting&&!this.disconnected){this._deferredReconnect=f;}else{f();}return this;};/**\n * _reconnect - implement reconnection\n * @api privateish\n */MqttClient.prototype._reconnect=function(){debug('_reconnect: emitting reconnect to client');this.emit('reconnect');if(this.connected){this.end(()=>{this._setupStream();});debug('client already connected. disconnecting first.');}else{debug('_reconnect: calling _setupStream');this._setupStream();}};/**\n * _setupReconnect - setup reconnect timer\n */MqttClient.prototype._setupReconnect=function(){const that=this;if(!that.disconnecting&&!that.reconnectTimer&&that.options.reconnectPeriod>0){if(!this.reconnecting){debug('_setupReconnect :: emit `offline` state');this.emit('offline');debug('_setupReconnect :: set `reconnecting` to `true`');this.reconnecting=true;}debug('_setupReconnect :: setting reconnectTimer for %d ms',that.options.reconnectPeriod);that.reconnectTimer=setInterval(function(){debug('reconnectTimer :: reconnect triggered!');that._reconnect();},that.options.reconnectPeriod);}else{debug('_setupReconnect :: doing nothing...');}};/**\n * _clearReconnect - clear the reconnect timer\n */MqttClient.prototype._clearReconnect=function(){debug('_clearReconnect : clearing reconnect timer');if(this.reconnectTimer){clearInterval(this.reconnectTimer);this.reconnectTimer=null;}};/**\n * _cleanUp - clean up on connection end\n * @api private\n */MqttClient.prototype._cleanUp=function(forced,done){const opts=arguments[2];if(done){debug('_cleanUp :: done callback provided for on stream close');this.stream.on('close',done);}debug('_cleanUp :: forced? %s',forced);if(forced){if(this.options.reconnectPeriod===0&&this.options.clean){flush(this.outgoing);}debug('_cleanUp :: (%s) :: destroying stream',this.options.clientId);this.stream.destroy();}else{const packet=xtend({cmd:'disconnect'},opts);debug('_cleanUp :: (%s) :: call _sendPacket with disconnect packet',this.options.clientId);this._sendPacket(packet,setImmediate.bind(null,this.stream.end.bind(this.stream)));}if(!this.disconnecting){debug('_cleanUp :: client not disconnecting. Clearing and resetting reconnect.');this._clearReconnect();this._setupReconnect();}if(this.pingTimer!==null){debug('_cleanUp :: clearing pingTimer');this.pingTimer.clear();this.pingTimer=null;}if(done&&!this.connected){debug('_cleanUp :: (%s) :: removing stream `done` callback `close` listener',this.options.clientId);this.stream.removeListener('close',done);done();}};/**\n * _sendPacket - send or queue a packet\n * @param {Object} packet - packet options\n * @param {Function} cb - callback when the packet is sent\n * @param {Function} cbStorePut - called when message is put into outgoingStore\n * @api private\n */MqttClient.prototype._sendPacket=function(packet,cb,cbStorePut){debug('_sendPacket :: (%s) ::  start',this.options.clientId);cbStorePut=cbStorePut||nop;cb=cb||nop;const err=applyTopicAlias(this,packet);if(err){cb(err);return;}if(!this.connected){// allow auth packets to be sent while authenticating with the broker (mqtt5 enhanced auth)\nif(packet.cmd==='auth'){this._shiftPingInterval();sendPacket(this,packet,cb);return;}debug('_sendPacket :: client not connected. Storing packet offline.');this._storePacket(packet,cb,cbStorePut);return;}// When sending a packet, reschedule the ping timer\nthis._shiftPingInterval();switch(packet.cmd){case'publish':break;case'pubrel':storeAndSend(this,packet,cb,cbStorePut);return;default:sendPacket(this,packet,cb);return;}switch(packet.qos){case 2:case 1:storeAndSend(this,packet,cb,cbStorePut);break;/**\n     * no need of case here since it will be caught by default\n     * and jshint comply that before default it must be a break\n     * anyway it will result in -1 evaluation\n     */case 0:/* falls through */default:sendPacket(this,packet,cb);break;}debug('_sendPacket :: (%s) ::  end',this.options.clientId);};/**\n * _storePacket - queue a packet\n * @param {Object} packet - packet options\n * @param {Function} cb - callback when the packet is sent\n * @param {Function} cbStorePut - called when message is put into outgoingStore\n * @api private\n */MqttClient.prototype._storePacket=function(packet,cb,cbStorePut){debug('_storePacket :: packet: %o',packet);debug('_storePacket :: cb? %s',!!cb);cbStorePut=cbStorePut||nop;let storePacket=packet;if(storePacket.cmd==='publish'){// The original packet is for sending.\n// The cloned storePacket is for storing to resend on reconnect.\n// Topic Alias must not be used after disconnected.\nstorePacket=clone(packet);const err=removeTopicAliasAndRecoverTopicName(this,storePacket);if(err){return cb&&cb(err);}}// check that the packet is not a qos of 0, or that the command is not a publish\nif((storePacket.qos||0)===0&&this.queueQoSZero||storePacket.cmd!=='publish'){this.queue.push({packet:storePacket,cb:cb});}else if(storePacket.qos>0){cb=this.outgoing[storePacket.messageId]?this.outgoing[storePacket.messageId].cb:null;this.outgoingStore.put(storePacket,function(err){if(err){return cb&&cb(err);}cbStorePut();});}else if(cb){cb(new Error('No connection to broker'));}};/**\n * _setupPingTimer - setup the ping timer\n *\n * @api private\n */MqttClient.prototype._setupPingTimer=function(){debug('_setupPingTimer :: keepalive %d (seconds)',this.options.keepalive);const that=this;if(!this.pingTimer&&this.options.keepalive){this.pingResp=true;this.pingTimer=reInterval(function(){that._checkPing();},this.options.keepalive*1000);}};/**\n * _shiftPingInterval - reschedule the ping interval\n *\n * @api private\n */MqttClient.prototype._shiftPingInterval=function(){if(this.pingTimer&&this.options.keepalive&&this.options.reschedulePings){this.pingTimer.reschedule(this.options.keepalive*1000);}};/**\n * _checkPing - check if a pingresp has come back, and ping the server again\n *\n * @api private\n */MqttClient.prototype._checkPing=function(){debug('_checkPing :: checking ping...');if(this.pingResp){debug('_checkPing :: ping response received. Clearing flag and sending `pingreq`');this.pingResp=false;this._sendPacket({cmd:'pingreq'});}else{// do a forced cleanup since socket will be in bad shape\ndebug('_checkPing :: calling _cleanUp with force true');this._cleanUp(true);}};/**\n * _handlePingresp - handle a pingresp\n *\n * @api private\n */MqttClient.prototype._handlePingresp=function(){this.pingResp=true;};/**\n * _handleConnack\n *\n * @param {Object} packet\n * @api private\n */MqttClient.prototype._handleConnack=function(packet){debug('_handleConnack');const options=this.options;const version=options.protocolVersion;const rc=version===5?packet.reasonCode:packet.returnCode;clearTimeout(this.connackTimer);delete this.topicAliasSend;if(packet.properties){if(packet.properties.topicAliasMaximum){if(packet.properties.topicAliasMaximum>0xffff){this.emit('error',new Error('topicAliasMaximum from broker is out of range'));return;}if(packet.properties.topicAliasMaximum>0){this.topicAliasSend=new TopicAliasSend(packet.properties.topicAliasMaximum);}}if(packet.properties.serverKeepAlive&&options.keepalive){options.keepalive=packet.properties.serverKeepAlive;this._shiftPingInterval();}if(packet.properties.maximumPacketSize){if(!options.properties){options.properties={};}options.properties.maximumPacketSize=packet.properties.maximumPacketSize;}}if(rc===0){this.reconnecting=false;this._onConnect(packet);}else if(rc>0){const err=new Error('Connection refused: '+errors[rc]);err.code=rc;this.emit('error',err);}};MqttClient.prototype._handleAuth=function(packet){const options=this.options;const version=options.protocolVersion;const rc=version===5?packet.reasonCode:packet.returnCode;if(version!==5){const err=new Error('Protocol error: Auth packets are only supported in MQTT 5. Your version:'+version);err.code=rc;this.emit('error',err);return;}const that=this;this.handleAuth(packet,function(err,packet){if(err){that.emit('error',err);return;}if(rc===24){that.reconnecting=false;that._sendPacket(packet);}else{const error=new Error('Connection refused: '+errors[rc]);err.code=rc;that.emit('error',error);}});};/**\n * @param packet the packet received by the broker\n * @return the auth packet to be returned to the broker\n * @api public\n */MqttClient.prototype.handleAuth=function(packet,callback){callback();};/**\n * _handlePublish\n *\n * @param {Object} packet\n * @api private\n */ /*\nthose late 2 case should be rewrite to comply with coding style:\n\ncase 1:\ncase 0:\n  // do not wait sending a puback\n  // no callback passed\n  if (1 === qos) {\n    this._sendPacket({\n      cmd: 'puback',\n      messageId: messageId\n    });\n  }\n  // emit the message event for both qos 1 and 0\n  this.emit('message', topic, message, packet);\n  this.handleMessage(packet, done);\n  break;\ndefault:\n  // do nothing but every switch mus have a default\n  // log or throw an error about unknown qos\n  break;\n\nfor now i just suppressed the warnings\n*/MqttClient.prototype._handlePublish=function(packet,done){debug('_handlePublish: packet %o',packet);done=typeof done!=='undefined'?done:nop;let topic=packet.topic.toString();const message=packet.payload;const qos=packet.qos;const messageId=packet.messageId;const that=this;const options=this.options;const validReasonCodes=[0,16,128,131,135,144,145,151,153];if(this.options.protocolVersion===5){let alias;if(packet.properties){alias=packet.properties.topicAlias;}if(typeof alias!=='undefined'){if(topic.length===0){if(alias>0&&alias<=0xffff){const gotTopic=this.topicAliasRecv.getTopicByAlias(alias);if(gotTopic){topic=gotTopic;debug('_handlePublish :: topic complemented by alias. topic: %s - alias: %d',topic,alias);}else{debug('_handlePublish :: unregistered topic alias. alias: %d',alias);this.emit('error',new Error('Received unregistered Topic Alias'));return;}}else{debug('_handlePublish :: topic alias out of range. alias: %d',alias);this.emit('error',new Error('Received Topic Alias is out of range'));return;}}else{if(this.topicAliasRecv.put(topic,alias)){debug('_handlePublish :: registered topic: %s - alias: %d',topic,alias);}else{debug('_handlePublish :: topic alias out of range. alias: %d',alias);this.emit('error',new Error('Received Topic Alias is out of range'));return;}}}}debug('_handlePublish: qos %d',qos);switch(qos){case 2:{options.customHandleAcks(topic,message,packet,function(error,code){if(!(error instanceof Error)){code=error;error=null;}if(error){return that.emit('error',error);}if(validReasonCodes.indexOf(code)===-1){return that.emit('error',new Error('Wrong reason code for pubrec'));}if(code){that._sendPacket({cmd:'pubrec',messageId:messageId,reasonCode:code},done);}else{that.incomingStore.put(packet,function(){that._sendPacket({cmd:'pubrec',messageId:messageId},done);});}});break;}case 1:{// emit the message event\noptions.customHandleAcks(topic,message,packet,function(error,code){if(!(error instanceof Error)){code=error;error=null;}if(error){return that.emit('error',error);}if(validReasonCodes.indexOf(code)===-1){return that.emit('error',new Error('Wrong reason code for puback'));}if(!code){that.emit('message',topic,message,packet);}that.handleMessage(packet,function(err){if(err){return done&&done(err);}that._sendPacket({cmd:'puback',messageId:messageId,reasonCode:code},done);});});break;}case 0:// emit the message event\nthis.emit('message',topic,message,packet);this.handleMessage(packet,done);break;default:// do nothing\ndebug('_handlePublish: unknown QoS. Doing nothing.');// log or throw an error about unknown qos\nbreak;}};/**\n * Handle messages with backpressure support, one at a time.\n * Override at will.\n *\n * @param Packet packet the packet\n * @param Function callback call when finished\n * @api public\n */MqttClient.prototype.handleMessage=function(packet,callback){callback();};/**\n * _handleAck\n *\n * @param {Object} packet\n * @api private\n */MqttClient.prototype._handleAck=function(packet){/* eslint no-fallthrough: \"off\" */const messageId=packet.messageId;const type=packet.cmd;let response=null;const cb=this.outgoing[messageId]?this.outgoing[messageId].cb:null;const that=this;let err;// Checking `!cb` happens to work, but it's not technically \"correct\".\n//\n// Why? This code assumes that \"no callback\" is the same as that \"we're not\n// waiting for responses\" (puback, pubrec, pubcomp, suback, or unsuback).\n//\n// It would be better to check `if (!this.outgoing[messageId])` here, but\n// there's no reason to change it and risk (another) regression.\n//\n// The only reason this code works is becaues code in MqttClient.publish,\n// MqttClinet.subscribe, and MqttClient.unsubscribe ensures that we will\n// have a callback even if the user doesn't pass one in.)\nif(!cb){debug('_handleAck :: Server sent an ack in error. Ignoring.');// Server sent an ack in error, ignore it.\nreturn;}// Process\ndebug('_handleAck :: packet type',type);switch(type){case'pubcomp':// same thing as puback for QoS 2\ncase'puback':{const pubackRC=packet.reasonCode;// Callback - we're done\nif(pubackRC&&pubackRC>0&&pubackRC!==16){err=new Error('Publish error: '+errors[pubackRC]);err.code=pubackRC;cb(err,packet);}delete this.outgoing[messageId];this.outgoingStore.del(packet,cb);this.messageIdProvider.deallocate(messageId);this._invokeStoreProcessingQueue();break;}case'pubrec':{response={cmd:'pubrel',qos:2,messageId:messageId};const pubrecRC=packet.reasonCode;if(pubrecRC&&pubrecRC>0&&pubrecRC!==16){err=new Error('Publish error: '+errors[pubrecRC]);err.code=pubrecRC;cb(err,packet);}else{this._sendPacket(response);}break;}case'suback':{delete this.outgoing[messageId];this.messageIdProvider.deallocate(messageId);for(let grantedI=0;grantedI<packet.granted.length;grantedI++){if((packet.granted[grantedI]&0x80)!==0){// suback with Failure status\nconst topics=this.messageIdToTopic[messageId];if(topics){topics.forEach(function(topic){delete that._resubscribeTopics[topic];});}}}this._invokeStoreProcessingQueue();cb(null,packet);break;}case'unsuback':{delete this.outgoing[messageId];this.messageIdProvider.deallocate(messageId);this._invokeStoreProcessingQueue();cb(null);break;}default:that.emit('error',new Error('unrecognized packet type'));}if(this.disconnecting&&Object.keys(this.outgoing).length===0){this.emit('outgoingEmpty');}};/**\n * _handlePubrel\n *\n * @param {Object} packet\n * @api private\n */MqttClient.prototype._handlePubrel=function(packet,callback){debug('handling pubrel packet');callback=typeof callback!=='undefined'?callback:nop;const messageId=packet.messageId;const that=this;const comp={cmd:'pubcomp',messageId:messageId};that.incomingStore.get(packet,function(err,pub){if(!err){that.emit('message',pub.topic,pub.payload,pub);that.handleMessage(pub,function(err){if(err){return callback(err);}that.incomingStore.del(pub,nop);that._sendPacket(comp,callback);});}else{that._sendPacket(comp,callback);}});};/**\n * _handleDisconnect\n *\n * @param {Object} packet\n * @api private\n */MqttClient.prototype._handleDisconnect=function(packet){this.emit('disconnect',packet);};/**\n * _nextId\n * @return unsigned int\n */MqttClient.prototype._nextId=function(){return this.messageIdProvider.allocate();};/**\n * getLastMessageId\n * @return unsigned int\n */MqttClient.prototype.getLastMessageId=function(){return this.messageIdProvider.getLastAllocated();};/**\n * _resubscribe\n * @api private\n */MqttClient.prototype._resubscribe=function(){debug('_resubscribe');const _resubscribeTopicsKeys=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion===5&&!this.connackPacket.sessionPresent)&&_resubscribeTopicsKeys.length>0){if(this.options.resubscribe){if(this.options.protocolVersion===5){debug('_resubscribe: protocolVersion 5');for(let topicI=0;topicI<_resubscribeTopicsKeys.length;topicI++){const resubscribeTopic={};resubscribeTopic[_resubscribeTopicsKeys[topicI]]=this._resubscribeTopics[_resubscribeTopicsKeys[topicI]];resubscribeTopic.resubscribe=true;this.subscribe(resubscribeTopic,{properties:resubscribeTopic[_resubscribeTopicsKeys[topicI]].properties});}}else{this._resubscribeTopics.resubscribe=true;this.subscribe(this._resubscribeTopics);}}else{this._resubscribeTopics={};}}this._firstConnection=false;};/**\n * _onConnect\n *\n * @api private\n */MqttClient.prototype._onConnect=function(packet){if(this.disconnected){this.emit('connect',packet);return;}const that=this;this.connackPacket=packet;this.messageIdProvider.clear();this._setupPingTimer();this.connected=true;function startStreamProcess(){let outStore=that.outgoingStore.createStream();function clearStoreProcessing(){that._storeProcessing=false;that._packetIdsDuringStoreProcessing={};}that.once('close',remove);outStore.on('error',function(err){clearStoreProcessing();that._flushStoreProcessingQueue();that.removeListener('close',remove);that.emit('error',err);});function remove(){outStore.destroy();outStore=null;that._flushStoreProcessingQueue();clearStoreProcessing();}function storeDeliver(){// edge case, we wrapped this twice\nif(!outStore){return;}that._storeProcessing=true;const packet=outStore.read(1);let cb;if(!packet){// read when data is available in the future\noutStore.once('readable',storeDeliver);return;}// Skip already processed store packets\nif(that._packetIdsDuringStoreProcessing[packet.messageId]){storeDeliver();return;}// Avoid unnecessary stream read operations when disconnected\nif(!that.disconnecting&&!that.reconnectTimer){cb=that.outgoing[packet.messageId]?that.outgoing[packet.messageId].cb:null;that.outgoing[packet.messageId]={volatile:false,cb:function(err,status){// Ensure that the original callback passed in to publish gets invoked\nif(cb){cb(err,status);}storeDeliver();}};that._packetIdsDuringStoreProcessing[packet.messageId]=true;if(that.messageIdProvider.register(packet.messageId)){that._sendPacket(packet);}else{debug('messageId: %d has already used.',packet.messageId);}}else if(outStore.destroy){outStore.destroy();}}outStore.on('end',function(){let allProcessed=true;for(const id in that._packetIdsDuringStoreProcessing){if(!that._packetIdsDuringStoreProcessing[id]){allProcessed=false;break;}}if(allProcessed){clearStoreProcessing();that.removeListener('close',remove);that._invokeAllStoreProcessingQueue();that.emit('connect',packet);}else{startStreamProcess();}});storeDeliver();}// start flowing\nstartStreamProcess();};MqttClient.prototype._invokeStoreProcessingQueue=function(){if(this._storeProcessingQueue.length>0){const f=this._storeProcessingQueue[0];if(f&&f.invoke()){this._storeProcessingQueue.shift();return true;}}return false;};MqttClient.prototype._invokeAllStoreProcessingQueue=function(){while(this._invokeStoreProcessingQueue()){/* empty */}};MqttClient.prototype._flushStoreProcessingQueue=function(){for(const f of this._storeProcessingQueue){if(f.cbStorePut)f.cbStorePut(new Error('Connection closed'));if(f.callback)f.callback(new Error('Connection closed'));}this._storeProcessingQueue.splice(0);};module.exports=MqttClient;}).call(this);}).call(this,require('_process'),typeof __webpack_require__.g!==\"undefined\"?__webpack_require__.g:typeof self!==\"undefined\"?self:typeof window!==\"undefined\"?window:{});},{\"./default-message-id-provider\":7,\"./store\":8,\"./topic-alias-recv\":9,\"./topic-alias-send\":10,\"./validations\":11,\"_process\":50,\"debug\":18,\"events\":22,\"inherits\":24,\"mqtt-packet\":40,\"readable-stream\":69,\"reinterval\":70,\"rfdc/default\":71,\"xtend\":81}],2:[function(require,module,exports){'use strict';const{Buffer}=require('buffer');const Transform=require('readable-stream').Transform;const duplexify=require('duplexify');/* global FileReader */let my;let proxy;let stream;let isInitialized=false;function buildProxy(){const proxy=new Transform();proxy._write=function(chunk,encoding,next){my.sendSocketMessage({data:chunk.buffer,success:function(){next();},fail:function(){next(new Error());}});};proxy._flush=function socketEnd(done){my.closeSocket({success:function(){done();}});};return proxy;}function setDefaultOpts(opts){if(!opts.hostname){opts.hostname='localhost';}if(!opts.path){opts.path='/';}if(!opts.wsOptions){opts.wsOptions={};}}function buildUrl(opts,client){const protocol=opts.protocol==='alis'?'wss':'ws';let url=protocol+'://'+opts.hostname+opts.path;if(opts.port&&opts.port!==80&&opts.port!==443){url=protocol+'://'+opts.hostname+':'+opts.port+opts.path;}if(typeof opts.transformWsUrl==='function'){url=opts.transformWsUrl(url,opts,client);}return url;}function bindEventHandler(){if(isInitialized)return;isInitialized=true;my.onSocketOpen(function(){stream.setReadable(proxy);stream.setWritable(proxy);stream.emit('connect');});my.onSocketMessage(function(res){if(typeof res.data==='string'){const buffer=Buffer.from(res.data,'base64');proxy.push(buffer);}else{const reader=new FileReader();reader.addEventListener('load',function(){let data=reader.result;if(data instanceof ArrayBuffer)data=Buffer.from(data);else data=Buffer.from(data,'utf8');proxy.push(data);});reader.readAsArrayBuffer(res.data);}});my.onSocketClose(function(){stream.end();stream.destroy();});my.onSocketError(function(res){stream.destroy(res);});}function buildStream(client,opts){opts.hostname=opts.hostname||opts.host;if(!opts.hostname){throw new Error('Could not determine host. Specify host manually.');}const websocketSubProtocol=opts.protocolId==='MQIsdp'&&opts.protocolVersion===3?'mqttv3.1':'mqtt';setDefaultOpts(opts);const url=buildUrl(opts,client);my=opts.my;my.connectSocket({url:url,protocols:websocketSubProtocol});proxy=buildProxy();stream=duplexify.obj();bindEventHandler();return stream;}module.exports=buildStream;},{\"buffer\":17,\"duplexify\":20,\"readable-stream\":69}],3:[function(require,module,exports){'use strict';const net=require('net');const debug=require('debug')('mqttjs:tcp');/*\n  variables port and host can be removed since\n  you have all required information in opts object\n*/function streamBuilder(client,opts){opts.port=opts.port||1883;opts.hostname=opts.hostname||opts.host||'localhost';const port=opts.port;const host=opts.hostname;debug('port %d and host %s',port,host);return net.createConnection(port,host);}module.exports=streamBuilder;},{\"debug\":18,\"net\":16}],4:[function(require,module,exports){'use strict';const tls=require('tls');const net=require('net');const debug=require('debug')('mqttjs:tls');function buildBuilder(mqttClient,opts){opts.port=opts.port||8883;opts.host=opts.hostname||opts.host||'localhost';if(net.isIP(opts.host)===0){opts.servername=opts.host;}opts.rejectUnauthorized=opts.rejectUnauthorized!==false;delete opts.path;debug('port %d host %s rejectUnauthorized %b',opts.port,opts.host,opts.rejectUnauthorized);const connection=tls.connect(opts);/* eslint no-use-before-define: [2, \"nofunc\"] */connection.on('secureConnect',function(){if(opts.rejectUnauthorized&&!connection.authorized){connection.emit('error',new Error('TLS not authorized'));}else{connection.removeListener('error',handleTLSerrors);}});function handleTLSerrors(err){// How can I get verify this error is a tls error?\nif(opts.rejectUnauthorized){mqttClient.emit('error',err);}// close this connection to match the behaviour of net\n// otherwise all we get is an error from the connection\n// and close event doesn't fire. This is a work around\n// to enable the reconnect code to work the same as with\n// net.createConnection\nconnection.end();}connection.on('error',handleTLSerrors);return connection;}module.exports=buildBuilder;},{\"debug\":18,\"net\":16,\"tls\":16}],5:[function(require,module,exports){(function(process){(function(){'use strict';const{Buffer}=require('buffer');const WS=require('ws');const debug=require('debug')('mqttjs:ws');const duplexify=require('duplexify');const Transform=require('readable-stream').Transform;const WSS_OPTIONS=['rejectUnauthorized','ca','cert','key','pfx','passphrase'];// eslint-disable-next-line camelcase\nconst IS_BROWSER=typeof process!=='undefined'&&process.title==='browser'||typeof __webpack_require__==='function';function buildUrl(opts,client){let url=opts.protocol+'://'+opts.hostname+':'+opts.port+opts.path;if(typeof opts.transformWsUrl==='function'){url=opts.transformWsUrl(url,opts,client);}return url;}function setDefaultOpts(opts){const options=opts;if(!opts.hostname){options.hostname='localhost';}if(!opts.port){if(opts.protocol==='wss'){options.port=443;}else{options.port=80;}}if(!opts.path){options.path='/';}if(!opts.wsOptions){options.wsOptions={};}if(!IS_BROWSER&&opts.protocol==='wss'){// Add cert/key/ca etc options\nWSS_OPTIONS.forEach(function(prop){if(Object.prototype.hasOwnProperty.call(opts,prop)&&!Object.prototype.hasOwnProperty.call(opts.wsOptions,prop)){options.wsOptions[prop]=opts[prop];}});}return options;}function setDefaultBrowserOpts(opts){const options=setDefaultOpts(opts);if(!options.hostname){options.hostname=options.host;}if(!options.hostname){// Throwing an error in a Web Worker if no `hostname` is given, because we\n// can not determine the `hostname` automatically.  If connecting to\n// localhost, please supply the `hostname` as an argument.\nif(typeof document==='undefined'){throw new Error('Could not determine host. Specify host manually.');}const parsed=new URL(document.URL);options.hostname=parsed.hostname;if(!options.port){options.port=parsed.port;}}// objectMode should be defined for logic\nif(options.objectMode===undefined){options.objectMode=!(options.binary===true||options.binary===undefined);}return options;}function createWebSocket(client,url,opts){debug('createWebSocket');debug('protocol: '+opts.protocolId+' '+opts.protocolVersion);const websocketSubProtocol=opts.protocolId==='MQIsdp'&&opts.protocolVersion===3?'mqttv3.1':'mqtt';debug('creating new Websocket for url: '+url+' and protocol: '+websocketSubProtocol);const socket=new WS(url,[websocketSubProtocol],opts.wsOptions);return socket;}function createBrowserWebSocket(client,opts){const websocketSubProtocol=opts.protocolId==='MQIsdp'&&opts.protocolVersion===3?'mqttv3.1':'mqtt';const url=buildUrl(opts,client);/* global WebSocket */const socket=new WebSocket(url,[websocketSubProtocol]);socket.binaryType='arraybuffer';return socket;}function streamBuilder(client,opts){debug('streamBuilder');const options=setDefaultOpts(opts);const url=buildUrl(options,client);const socket=createWebSocket(client,url,options);const webSocketStream=WS.createWebSocketStream(socket,options.wsOptions);webSocketStream.url=url;socket.on('close',()=>{webSocketStream.destroy();});return webSocketStream;}function browserStreamBuilder(client,opts){debug('browserStreamBuilder');let stream;const options=setDefaultBrowserOpts(opts);// sets the maximum socket buffer size before throttling\nconst bufferSize=options.browserBufferSize||1024*512;const bufferTimeout=opts.browserBufferTimeout||1000;const coerceToBuffer=!opts.objectMode;const socket=createBrowserWebSocket(client,opts);const proxy=buildProxy(opts,socketWriteBrowser,socketEndBrowser);if(!opts.objectMode){proxy._writev=writev;}proxy.on('close',()=>{socket.close();});const eventListenerSupport=typeof socket.addEventListener!=='undefined';// was already open when passed in\nif(socket.readyState===socket.OPEN){stream=proxy;}else{stream=stream=duplexify(undefined,undefined,opts);if(!opts.objectMode){stream._writev=writev;}if(eventListenerSupport){socket.addEventListener('open',onopen);}else{socket.onopen=onopen;}}stream.socket=socket;if(eventListenerSupport){socket.addEventListener('close',onclose);socket.addEventListener('error',onerror);socket.addEventListener('message',onmessage);}else{socket.onclose=onclose;socket.onerror=onerror;socket.onmessage=onmessage;}// methods for browserStreamBuilder\nfunction buildProxy(options,socketWrite,socketEnd){const proxy=new Transform({objectModeMode:options.objectMode});proxy._write=socketWrite;proxy._flush=socketEnd;return proxy;}function onopen(){stream.setReadable(proxy);stream.setWritable(proxy);stream.emit('connect');}function onclose(){stream.end();stream.destroy();}function onerror(err){stream.destroy(err);}function onmessage(event){let data=event.data;if(data instanceof ArrayBuffer)data=Buffer.from(data);else data=Buffer.from(data,'utf8');proxy.push(data);}// this is to be enabled only if objectMode is false\nfunction writev(chunks,cb){const buffers=new Array(chunks.length);for(let i=0;i<chunks.length;i++){if(typeof chunks[i].chunk==='string'){buffers[i]=Buffer.from(chunks[i],'utf8');}else{buffers[i]=chunks[i].chunk;}}this._write(Buffer.concat(buffers),'binary',cb);}function socketWriteBrowser(chunk,enc,next){if(socket.bufferedAmount>bufferSize){// throttle data until buffered amount is reduced.\nsetTimeout(socketWriteBrowser,bufferTimeout,chunk,enc,next);}if(coerceToBuffer&&typeof chunk==='string'){chunk=Buffer.from(chunk,'utf8');}try{socket.send(chunk);}catch(err){return next(err);}next();}function socketEndBrowser(done){socket.close();done();}// end methods for browserStreamBuilder\nreturn stream;}if(IS_BROWSER){module.exports=browserStreamBuilder;}else{module.exports=streamBuilder;}}).call(this);}).call(this,require('_process'));},{\"_process\":50,\"buffer\":17,\"debug\":18,\"duplexify\":20,\"readable-stream\":69,\"ws\":80}],6:[function(require,module,exports){'use strict';const{Buffer}=require('buffer');const Transform=require('readable-stream').Transform;const duplexify=require('duplexify');/* global wx */let socketTask,proxy,stream;function buildProxy(){const proxy=new Transform();proxy._write=function(chunk,encoding,next){socketTask.send({data:chunk.buffer,success:function(){next();},fail:function(errMsg){next(new Error(errMsg));}});};proxy._flush=function socketEnd(done){socketTask.close({success:function(){done();}});};return proxy;}function setDefaultOpts(opts){if(!opts.hostname){opts.hostname='localhost';}if(!opts.path){opts.path='/';}if(!opts.wsOptions){opts.wsOptions={};}}function buildUrl(opts,client){const protocol=opts.protocol==='wxs'?'wss':'ws';let url=protocol+'://'+opts.hostname+opts.path;if(opts.port&&opts.port!==80&&opts.port!==443){url=protocol+'://'+opts.hostname+':'+opts.port+opts.path;}if(typeof opts.transformWsUrl==='function'){url=opts.transformWsUrl(url,opts,client);}return url;}function bindEventHandler(){socketTask.onOpen(function(){stream.setReadable(proxy);stream.setWritable(proxy);stream.emit('connect');});socketTask.onMessage(function(res){let data=res.data;if(data instanceof ArrayBuffer)data=Buffer.from(data);else data=Buffer.from(data,'utf8');proxy.push(data);});socketTask.onClose(function(){stream.end();stream.destroy();});socketTask.onError(function(res){stream.destroy(new Error(res.errMsg));});}function buildStream(client,opts){opts.hostname=opts.hostname||opts.host;if(!opts.hostname){throw new Error('Could not determine host. Specify host manually.');}const websocketSubProtocol=opts.protocolId==='MQIsdp'&&opts.protocolVersion===3?'mqttv3.1':'mqtt';setDefaultOpts(opts);const url=buildUrl(opts,client);socketTask=wx.connectSocket({url:url,protocols:[websocketSubProtocol]});proxy=buildProxy();stream=duplexify.obj();stream._destroy=function(err,cb){socketTask.close({success:function(){cb&&cb(err);}});};const destroyRef=stream.destroy;stream.destroy=function(){stream.destroy=destroyRef;const self=this;setTimeout(function(){socketTask.close({fail:function(){self._destroy(new Error());}});},0);}.bind(stream);bindEventHandler();return stream;}module.exports=buildStream;},{\"buffer\":17,\"duplexify\":20,\"readable-stream\":69}],7:[function(require,module,exports){'use strict';/**\n * DefaultMessageAllocator constructor\n * @constructor\n */function DefaultMessageIdProvider(){if(!(this instanceof DefaultMessageIdProvider)){return new DefaultMessageIdProvider();}/**\n   * MessageIDs starting with 1\n   * ensure that nextId is min. 1, see https://github.com/mqttjs/MQTT.js/issues/810\n   */this.nextId=Math.max(1,Math.floor(Math.random()*65535));}/**\n * allocate\n *\n * Get the next messageId.\n * @return unsigned int\n */DefaultMessageIdProvider.prototype.allocate=function(){// id becomes current state of this.nextId and increments afterwards\nconst id=this.nextId++;// Ensure 16 bit unsigned int (max 65535, nextId got one higher)\nif(this.nextId===65536){this.nextId=1;}return id;};/**\n * getLastAllocated\n * Get the last allocated messageId.\n * @return unsigned int\n */DefaultMessageIdProvider.prototype.getLastAllocated=function(){return this.nextId===1?65535:this.nextId-1;};/**\n * register\n * Register messageId. If success return true, otherwise return false.\n * @param { unsigned int } - messageId to register,\n * @return boolean\n */DefaultMessageIdProvider.prototype.register=function(messageId){return true;};/**\n * deallocate\n * Deallocate messageId.\n * @param { unsigned int } - messageId to deallocate,\n */DefaultMessageIdProvider.prototype.deallocate=function(messageId){};/**\n * clear\n * Deallocate all messageIds.\n */DefaultMessageIdProvider.prototype.clear=function(){};module.exports=DefaultMessageIdProvider;},{}],8:[function(require,module,exports){'use strict';/**\n * Module dependencies\n */const xtend=require('xtend');const Readable=require('readable-stream').Readable;const streamsOpts={objectMode:true};const defaultStoreOptions={clean:true};/**\n * In-memory implementation of the message store\n * This can actually be saved into files.\n *\n * @param {Object} [options] - store options\n */function Store(options){if(!(this instanceof Store)){return new Store(options);}this.options=options||{};// Defaults\nthis.options=xtend(defaultStoreOptions,options);this._inflights=new Map();}/**\n * Adds a packet to the store, a packet is\n * anything that has a messageId property.\n *\n */Store.prototype.put=function(packet,cb){this._inflights.set(packet.messageId,packet);if(cb){cb();}return this;};/**\n * Creates a stream with all the packets in the store\n *\n */Store.prototype.createStream=function(){const stream=new Readable(streamsOpts);const values=[];let destroyed=false;let i=0;this._inflights.forEach(function(value,key){values.push(value);});stream._read=function(){if(!destroyed&&i<values.length){this.push(values[i++]);}else{this.push(null);}};stream.destroy=function(){if(destroyed){return;}const self=this;destroyed=true;setTimeout(function(){self.emit('close');},0);};return stream;};/**\n * deletes a packet from the store.\n */Store.prototype.del=function(packet,cb){packet=this._inflights.get(packet.messageId);if(packet){this._inflights.delete(packet.messageId);cb(null,packet);}else if(cb){cb(new Error('missing packet'));}return this;};/**\n * get a packet from the store.\n */Store.prototype.get=function(packet,cb){packet=this._inflights.get(packet.messageId);if(packet){cb(null,packet);}else if(cb){cb(new Error('missing packet'));}return this;};/**\n * Close the store\n */Store.prototype.close=function(cb){if(this.options.clean){this._inflights=null;}if(cb){cb();}};module.exports=Store;},{\"readable-stream\":69,\"xtend\":81}],9:[function(require,module,exports){'use strict';/**\n * Topic Alias receiving manager\n * This holds alias to topic map\n * @param {Number} [max] - topic alias maximum entries\n */function TopicAliasRecv(max){if(!(this instanceof TopicAliasRecv)){return new TopicAliasRecv(max);}this.aliasToTopic={};this.max=max;}/**\n * Insert or update topic - alias entry.\n * @param {String} [topic] - topic\n * @param {Number} [alias] - topic alias\n * @returns {Boolean} - if success return true otherwise false\n */TopicAliasRecv.prototype.put=function(topic,alias){if(alias===0||alias>this.max){return false;}this.aliasToTopic[alias]=topic;this.length=Object.keys(this.aliasToTopic).length;return true;};/**\n * Get topic by alias\n * @param {String} [topic] - topic\n * @returns {Number} - if mapped topic exists return topic alias, otherwise return undefined\n */TopicAliasRecv.prototype.getTopicByAlias=function(alias){return this.aliasToTopic[alias];};/**\n * Clear all entries\n */TopicAliasRecv.prototype.clear=function(){this.aliasToTopic={};};module.exports=TopicAliasRecv;},{}],10:[function(require,module,exports){'use strict';/**\n * Module dependencies\n */const LruMap=require('lru-cache');const NumberAllocator=require('number-allocator').NumberAllocator;/**\n * Topic Alias sending manager\n * This holds both topic to alias and alias to topic map\n * @param {Number} [max] - topic alias maximum entries\n */function TopicAliasSend(max){if(!(this instanceof TopicAliasSend)){return new TopicAliasSend(max);}if(max>0){this.aliasToTopic=new LruMap({max:max});this.topicToAlias={};this.numberAllocator=new NumberAllocator(1,max);this.max=max;this.length=0;}}/**\n * Insert or update topic - alias entry.\n * @param {String} [topic] - topic\n * @param {Number} [alias] - topic alias\n * @returns {Boolean} - if success return true otherwise false\n */TopicAliasSend.prototype.put=function(topic,alias){if(alias===0||alias>this.max){return false;}const entry=this.aliasToTopic.get(alias);if(entry){delete this.topicToAlias[entry];}this.aliasToTopic.set(alias,topic);this.topicToAlias[topic]=alias;this.numberAllocator.use(alias);this.length=this.aliasToTopic.length;return true;};/**\n * Get topic by alias\n * @param {Number} [alias] - topic alias\n * @returns {String} - if mapped topic exists return topic, otherwise return undefined\n */TopicAliasSend.prototype.getTopicByAlias=function(alias){return this.aliasToTopic.get(alias);};/**\n * Get topic by alias\n * @param {String} [topic] - topic\n * @returns {Number} - if mapped topic exists return topic alias, otherwise return undefined\n */TopicAliasSend.prototype.getAliasByTopic=function(topic){const alias=this.topicToAlias[topic];if(typeof alias!=='undefined'){this.aliasToTopic.get(alias);// LRU update\n}return alias;};/**\n * Clear all entries\n */TopicAliasSend.prototype.clear=function(){this.aliasToTopic.reset();this.topicToAlias={};this.numberAllocator.clear();this.length=0;};/**\n * Get Least Recently Used (LRU) topic alias\n * @returns {Number} - if vacant alias exists then return it, otherwise then return LRU alias\n */TopicAliasSend.prototype.getLruAlias=function(){const alias=this.numberAllocator.firstVacant();if(alias)return alias;return this.aliasToTopic.keys()[this.aliasToTopic.length-1];};module.exports=TopicAliasSend;},{\"lru-cache\":37,\"number-allocator\":46}],11:[function(require,module,exports){'use strict';/**\n * Validate a topic to see if it's valid or not.\n * A topic is valid if it follow below rules:\n * - Rule #1: If any part of the topic is not `+` or `#`, then it must not contain `+` and '#'\n * - Rule #2: Part `#` must be located at the end of the mailbox\n *\n * @param {String} topic - A topic\n * @returns {Boolean} If the topic is valid, returns true. Otherwise, returns false.\n */function validateTopic(topic){const parts=topic.split('/');for(let i=0;i<parts.length;i++){if(parts[i]==='+'){continue;}if(parts[i]==='#'){// for Rule #2\nreturn i===parts.length-1;}if(parts[i].indexOf('+')!==-1||parts[i].indexOf('#')!==-1){return false;}}return true;}/**\n * Validate an array of topics to see if any of them is valid or not\n  * @param {Array} topics - Array of topics\n * @returns {String} If the topics is valid, returns null. Otherwise, returns the invalid one\n */function validateTopics(topics){if(topics.length===0){return'empty_topic_list';}for(let i=0;i<topics.length;i++){if(!validateTopic(topics[i])){return topics[i];}}return null;}module.exports={validateTopics:validateTopics};},{}],12:[function(require,module,exports){(function(process){(function(){'use strict';const MqttClient=require('../client');const Store=require('../store');const url=require('url');const xtend=require('xtend');const debug=require('debug')('mqttjs');const protocols={};// eslint-disable-next-line camelcase\nif(typeof process!=='undefined'&&process.title!=='browser'||typeof __webpack_require__!=='function'){protocols.mqtt=require('./tcp');protocols.tcp=require('./tcp');protocols.ssl=require('./tls');protocols.tls=require('./tls');protocols.mqtts=require('./tls');}else{protocols.wx=require('./wx');protocols.wxs=require('./wx');protocols.ali=require('./ali');protocols.alis=require('./ali');}protocols.ws=require('./ws');protocols.wss=require('./ws');/**\n * Parse the auth attribute and merge username and password in the options object.\n *\n * @param {Object} [opts] option object\n */function parseAuthOptions(opts){let matches;if(opts.auth){matches=opts.auth.match(/^(.+):(.+)$/);if(matches){opts.username=matches[1];opts.password=matches[2];}else{opts.username=opts.auth;}}}/**\n * connect - connect to an MQTT broker.\n *\n * @param {String} [brokerUrl] - url of the broker, optional\n * @param {Object} opts - see MqttClient#constructor\n */function connect(brokerUrl,opts){debug('connecting to an MQTT broker...');if(typeof brokerUrl==='object'&&!opts){opts=brokerUrl;brokerUrl=null;}opts=opts||{};if(brokerUrl){// eslint-disable-next-line\nconst parsed=url.parse(brokerUrl,true);if(parsed.port!=null){parsed.port=Number(parsed.port);}opts=xtend(parsed,opts);if(opts.protocol===null){throw new Error('Missing protocol');}opts.protocol=opts.protocol.replace(/:$/,'');}// merge in the auth options if supplied\nparseAuthOptions(opts);// support clientId passed in the query string of the url\nif(opts.query&&typeof opts.query.clientId==='string'){opts.clientId=opts.query.clientId;}if(opts.cert&&opts.key){if(opts.protocol){if(['mqtts','wss','wxs','alis'].indexOf(opts.protocol)===-1){switch(opts.protocol){case'mqtt':opts.protocol='mqtts';break;case'ws':opts.protocol='wss';break;case'wx':opts.protocol='wxs';break;case'ali':opts.protocol='alis';break;default:throw new Error('Unknown protocol for secure connection: \"'+opts.protocol+'\"!');}}}else{// A cert and key was provided, however no protocol was specified, so we will throw an error.\nthrow new Error('Missing secure protocol key');}}if(!protocols[opts.protocol]){const isSecure=['mqtts','wss'].indexOf(opts.protocol)!==-1;opts.protocol=['mqtt','mqtts','ws','wss','wx','wxs','ali','alis'].filter(function(key,index){if(isSecure&&index%2===0){// Skip insecure protocols when requesting a secure one.\nreturn false;}return typeof protocols[key]==='function';})[0];}if(opts.clean===false&&!opts.clientId){throw new Error('Missing clientId for unclean clients');}if(opts.protocol){opts.defaultProtocol=opts.protocol;}function wrapper(client){if(opts.servers){if(!client._reconnectCount||client._reconnectCount===opts.servers.length){client._reconnectCount=0;}opts.host=opts.servers[client._reconnectCount].host;opts.port=opts.servers[client._reconnectCount].port;opts.protocol=!opts.servers[client._reconnectCount].protocol?opts.defaultProtocol:opts.servers[client._reconnectCount].protocol;opts.hostname=opts.host;client._reconnectCount++;}debug('calling streambuilder for',opts.protocol);return protocols[opts.protocol](client,opts);}const client=new MqttClient(wrapper,opts);client.on('error',function(){/* Automatically set up client error handling */});return client;}module.exports=connect;module.exports.connect=connect;module.exports.MqttClient=MqttClient;module.exports.Store=Store;}).call(this);}).call(this,require('_process'));},{\"../client\":1,\"../store\":8,\"./ali\":2,\"./tcp\":3,\"./tls\":4,\"./ws\":5,\"./wx\":6,\"_process\":50,\"debug\":18,\"url\":76,\"xtend\":81}],13:[function(require,module,exports){'use strict';exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=='undefined'?Uint8Array:Array;var code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i;}// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)]=62;revLookup['_'.charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error('Invalid string. Length must be a multiple of 4');}// Trim off extra bytes after placeholder bytes are found\n// See: https://github.com/beatgammit/base64-js/issues/42\nvar validLen=b64.indexOf('=');if(validLen===-1)validLen=len;var placeHoldersLen=validLen===len?0:4-validLen%4;return[validLen,placeHoldersLen];}// base64 is 4/3 + up to two characters of the original data\nfunction byteLength(b64){var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function _byteLength(b64,validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen;}function toByteArray(b64){var tmp;var lens=getLens(b64);var validLen=lens[0];var placeHoldersLen=lens[1];var arr=new Arr(_byteLength(b64,validLen,placeHoldersLen));var curByte=0;// if there are placeholders, only get up to the last complete 4 chars\nvar len=placeHoldersLen>0?validLen-4:validLen;var i;for(i=0;i<len;i+=4){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[curByte++]=tmp>>16&0xFF;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[curByte++]=tmp&0xFF;}if(placeHoldersLen===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[curByte++]=tmp>>8&0xFF;arr[curByte++]=tmp&0xFF;}return arr;}function tripletToBase64(num){return lookup[num>>18&0x3F]+lookup[num>>12&0x3F]+lookup[num>>6&0x3F]+lookup[num&0x3F];}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16&0xFF0000)+(uint8[i+1]<<8&0xFF00)+(uint8[i+2]&0xFF);output.push(tripletToBase64(tmp));}return output.join('');}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;// if we have 1 byte left, pad 2 bytes\nvar parts=[];var maxChunkLength=16383;// must be multiple of 3\n// go through the array every three bytes, we'll deal with trailing stuff later\nfor(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength));}// pad the end with zeros, but make sure to not forget the extra bytes\nif(extraBytes===1){tmp=uint8[len-1];parts.push(lookup[tmp>>2]+lookup[tmp<<4&0x3F]+'==');}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];parts.push(lookup[tmp>>10]+lookup[tmp>>4&0x3F]+lookup[tmp<<2&0x3F]+'=');}return parts.join('');}},{}],14:[function(require,module,exports){'use strict';const{Buffer}=require('buffer');const symbol=Symbol.for('BufferList');function BufferList(buf){if(!(this instanceof BufferList)){return new BufferList(buf);}BufferList._init.call(this,buf);}BufferList._init=function _init(buf){Object.defineProperty(this,symbol,{value:true});this._bufs=[];this.length=0;if(buf){this.append(buf);}};BufferList.prototype._new=function _new(buf){return new BufferList(buf);};BufferList.prototype._offset=function _offset(offset){if(offset===0){return[0,0];}let tot=0;for(let i=0;i<this._bufs.length;i++){const _t=tot+this._bufs[i].length;if(offset<_t||i===this._bufs.length-1){return[i,offset-tot];}tot=_t;}};BufferList.prototype._reverseOffset=function(blOffset){const bufferId=blOffset[0];let offset=blOffset[1];for(let i=0;i<bufferId;i++){offset+=this._bufs[i].length;}return offset;};BufferList.prototype.get=function get(index){if(index>this.length||index<0){return undefined;}const offset=this._offset(index);return this._bufs[offset[0]][offset[1]];};BufferList.prototype.slice=function slice(start,end){if(typeof start==='number'&&start<0){start+=this.length;}if(typeof end==='number'&&end<0){end+=this.length;}return this.copy(null,0,start,end);};BufferList.prototype.copy=function copy(dst,dstStart,srcStart,srcEnd){if(typeof srcStart!=='number'||srcStart<0){srcStart=0;}if(typeof srcEnd!=='number'||srcEnd>this.length){srcEnd=this.length;}if(srcStart>=this.length){return dst||Buffer.alloc(0);}if(srcEnd<=0){return dst||Buffer.alloc(0);}const copy=!!dst;const off=this._offset(srcStart);const len=srcEnd-srcStart;let bytes=len;let bufoff=copy&&dstStart||0;let start=off[1];// copy/slice everything\nif(srcStart===0&&srcEnd===this.length){if(!copy){// slice, but full concat if multiple buffers\nreturn this._bufs.length===1?this._bufs[0]:Buffer.concat(this._bufs,this.length);}// copy, need to copy individual buffers\nfor(let i=0;i<this._bufs.length;i++){this._bufs[i].copy(dst,bufoff);bufoff+=this._bufs[i].length;}return dst;}// easy, cheap case where it's a subset of one of the buffers\nif(bytes<=this._bufs[off[0]].length-start){return copy?this._bufs[off[0]].copy(dst,dstStart,start,start+bytes):this._bufs[off[0]].slice(start,start+bytes);}if(!copy){// a slice, we need something to copy in to\ndst=Buffer.allocUnsafe(len);}for(let i=off[0];i<this._bufs.length;i++){const l=this._bufs[i].length-start;if(bytes>l){this._bufs[i].copy(dst,bufoff,start);bufoff+=l;}else{this._bufs[i].copy(dst,bufoff,start,start+bytes);bufoff+=l;break;}bytes-=l;if(start){start=0;}}// safeguard so that we don't return uninitialized memory\nif(dst.length>bufoff)return dst.slice(0,bufoff);return dst;};BufferList.prototype.shallowSlice=function shallowSlice(start,end){start=start||0;end=typeof end!=='number'?this.length:end;if(start<0){start+=this.length;}if(end<0){end+=this.length;}if(start===end){return this._new();}const startOffset=this._offset(start);const endOffset=this._offset(end);const buffers=this._bufs.slice(startOffset[0],endOffset[0]+1);if(endOffset[1]===0){buffers.pop();}else{buffers[buffers.length-1]=buffers[buffers.length-1].slice(0,endOffset[1]);}if(startOffset[1]!==0){buffers[0]=buffers[0].slice(startOffset[1]);}return this._new(buffers);};BufferList.prototype.toString=function toString(encoding,start,end){return this.slice(start,end).toString(encoding);};BufferList.prototype.consume=function consume(bytes){// first, normalize the argument, in accordance with how Buffer does it\nbytes=Math.trunc(bytes);// do nothing if not a positive number\nif(Number.isNaN(bytes)||bytes<=0)return this;while(this._bufs.length){if(bytes>=this._bufs[0].length){bytes-=this._bufs[0].length;this.length-=this._bufs[0].length;this._bufs.shift();}else{this._bufs[0]=this._bufs[0].slice(bytes);this.length-=bytes;break;}}return this;};BufferList.prototype.duplicate=function duplicate(){const copy=this._new();for(let i=0;i<this._bufs.length;i++){copy.append(this._bufs[i]);}return copy;};BufferList.prototype.append=function append(buf){if(buf==null){return this;}if(buf.buffer){// append a view of the underlying ArrayBuffer\nthis._appendBuffer(Buffer.from(buf.buffer,buf.byteOffset,buf.byteLength));}else if(Array.isArray(buf)){for(let i=0;i<buf.length;i++){this.append(buf[i]);}}else if(this._isBufferList(buf)){// unwrap argument into individual BufferLists\nfor(let i=0;i<buf._bufs.length;i++){this.append(buf._bufs[i]);}}else{// coerce number arguments to strings, since Buffer(number) does\n// uninitialized memory allocation\nif(typeof buf==='number'){buf=buf.toString();}this._appendBuffer(Buffer.from(buf));}return this;};BufferList.prototype._appendBuffer=function appendBuffer(buf){this._bufs.push(buf);this.length+=buf.length;};BufferList.prototype.indexOf=function(search,offset,encoding){if(encoding===undefined&&typeof offset==='string'){encoding=offset;offset=undefined;}if(typeof search==='function'||Array.isArray(search)){throw new TypeError('The \"value\" argument must be one of type string, Buffer, BufferList, or Uint8Array.');}else if(typeof search==='number'){search=Buffer.from([search]);}else if(typeof search==='string'){search=Buffer.from(search,encoding);}else if(this._isBufferList(search)){search=search.slice();}else if(Array.isArray(search.buffer)){search=Buffer.from(search.buffer,search.byteOffset,search.byteLength);}else if(!Buffer.isBuffer(search)){search=Buffer.from(search);}offset=Number(offset||0);if(isNaN(offset)){offset=0;}if(offset<0){offset=this.length+offset;}if(offset<0){offset=0;}if(search.length===0){return offset>this.length?this.length:offset;}const blOffset=this._offset(offset);let blIndex=blOffset[0];// index of which internal buffer we're working on\nlet buffOffset=blOffset[1];// offset of the internal buffer we're working on\n// scan over each buffer\nfor(;blIndex<this._bufs.length;blIndex++){const buff=this._bufs[blIndex];while(buffOffset<buff.length){const availableWindow=buff.length-buffOffset;if(availableWindow>=search.length){const nativeSearchResult=buff.indexOf(search,buffOffset);if(nativeSearchResult!==-1){return this._reverseOffset([blIndex,nativeSearchResult]);}buffOffset=buff.length-search.length+1;// end of native search window\n}else{const revOffset=this._reverseOffset([blIndex,buffOffset]);if(this._match(revOffset,search)){return revOffset;}buffOffset++;}}buffOffset=0;}return-1;};BufferList.prototype._match=function(offset,search){if(this.length-offset<search.length){return false;}for(let searchOffset=0;searchOffset<search.length;searchOffset++){if(this.get(offset+searchOffset)!==search[searchOffset]){return false;}}return true;};(function(){const methods={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(const m in methods){(function(m){if(methods[m]===null){BufferList.prototype[m]=function(offset,byteLength){return this.slice(offset,offset+byteLength)[m](0,byteLength);};}else{BufferList.prototype[m]=function(offset=0){return this.slice(offset,offset+methods[m])[m](0);};}})(m);}})();// Used internally by the class and also as an indicator of this object being\n// a `BufferList`. It's not possible to use `instanceof BufferList` in a browser\n// environment because there could be multiple different copies of the\n// BufferList class and some `BufferList`s might be `BufferList`s.\nBufferList.prototype._isBufferList=function _isBufferList(b){return b instanceof BufferList||BufferList.isBufferList(b);};BufferList.isBufferList=function isBufferList(b){return b!=null&&b[symbol];};module.exports=BufferList;},{\"buffer\":17}],15:[function(require,module,exports){'use strict';const DuplexStream=require('readable-stream').Duplex;const inherits=require('inherits');const BufferList=require('./BufferList');function BufferListStream(callback){if(!(this instanceof BufferListStream)){return new BufferListStream(callback);}if(typeof callback==='function'){this._callback=callback;const piper=function piper(err){if(this._callback){this._callback(err);this._callback=null;}}.bind(this);this.on('pipe',function onPipe(src){src.on('error',piper);});this.on('unpipe',function onUnpipe(src){src.removeListener('error',piper);});callback=null;}BufferList._init.call(this,callback);DuplexStream.call(this);}inherits(BufferListStream,DuplexStream);Object.assign(BufferListStream.prototype,BufferList.prototype);BufferListStream.prototype._new=function _new(callback){return new BufferListStream(callback);};BufferListStream.prototype._write=function _write(buf,encoding,callback){this._appendBuffer(buf);if(typeof callback==='function'){callback();}};BufferListStream.prototype._read=function _read(size){if(!this.length){return this.push(null);}size=Math.min(size,this.length);this.push(this.slice(0,size));this.consume(size);};BufferListStream.prototype.end=function end(chunk){DuplexStream.prototype.end.call(this,chunk);if(this._callback){this._callback(null,this.slice());this._callback=null;}};BufferListStream.prototype._destroy=function _destroy(err,cb){this._bufs.length=0;this.length=0;cb(err);};BufferListStream.prototype._isBufferList=function _isBufferList(b){return b instanceof BufferListStream||b instanceof BufferList||BufferListStream.isBufferList(b);};BufferListStream.isBufferList=BufferList.isBufferList;module.exports=BufferListStream;module.exports.BufferListStream=BufferListStream;module.exports.BufferList=BufferList;},{\"./BufferList\":14,\"inherits\":24,\"readable-stream\":69}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){(function(Buffer){(function(){/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */ /* eslint-disable no-proto */'use strict';var base64=require('base64-js');var ieee754=require('ieee754');exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=0x7fffffff;exports.kMaxLength=K_MAX_LENGTH;/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!=='undefined'&&typeof console.error==='function'){console.error('This browser lacks typed array (Uint8Array) support which is required by '+'`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');}function typedArraySupport(){// Can typed array instances can be augmented?\ntry{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42;}};return arr.foo()===42;}catch(e){return false;}}Object.defineProperty(Buffer.prototype,'parent',{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer;}});Object.defineProperty(Buffer.prototype,'offset',{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset;}});function createBuffer(length){if(length>K_MAX_LENGTH){throw new RangeError('The value \"'+length+'\" is invalid for option \"size\"');}// Return an augmented `Uint8Array` instance\nvar buf=new Uint8Array(length);buf.__proto__=Buffer.prototype;return buf;}/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */function Buffer(arg,encodingOrOffset,length){// Common case.\nif(typeof arg==='number'){if(typeof encodingOrOffset==='string'){throw new TypeError('The \"string\" argument must be of type string. Received type number');}return allocUnsafe(arg);}return from(arg,encodingOrOffset,length);}// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif(typeof Symbol!=='undefined'&&Symbol.species!=null&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true,enumerable:false,writable:false});}Buffer.poolSize=8192;// not used by this implementation\nfunction from(value,encodingOrOffset,length){if(typeof value==='string'){return fromString(value,encodingOrOffset);}if(ArrayBuffer.isView(value)){return fromArrayLike(value);}if(value==null){throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+typeof value);}if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer)){return fromArrayBuffer(value,encodingOrOffset,length);}if(typeof value==='number'){throw new TypeError('The \"value\" argument must not be of type number. Received type number');}var valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value){return Buffer.from(valueOf,encodingOrOffset,length);}var b=fromObject(value);if(b)return b;if(typeof Symbol!=='undefined'&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]==='function'){return Buffer.from(value[Symbol.toPrimitive]('string'),encodingOrOffset,length);}throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, '+'or Array-like Object. Received type '+typeof value);}/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length);};// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;function assertSize(size){if(typeof size!=='number'){throw new TypeError('\"size\" argument must be of type number');}else if(size<0){throw new RangeError('The value \"'+size+'\" is invalid for option \"size\"');}}function alloc(size,fill,encoding){assertSize(size);if(size<=0){return createBuffer(size);}if(fill!==undefined){// Only pay attention to encoding if it's a string. This\n// prevents accidentally sending in a number that would\n// be interpretted as a start offset.\nreturn typeof encoding==='string'?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill);}return createBuffer(size);}/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding);};function allocUnsafe(size){assertSize(size);return createBuffer(size<0?0:checked(size)|0);}/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */Buffer.allocUnsafe=function(size){return allocUnsafe(size);};/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size);};function fromString(string,encoding){if(typeof encoding!=='string'||encoding===''){encoding='utf8';}if(!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}var length=byteLength(string,encoding)|0;var buf=createBuffer(length);var actual=buf.write(string,encoding);if(actual!==length){// Writing a hex string, for example, that contains invalid characters will\n// cause everything after the first invalid character to be ignored. (e.g.\n// 'abxxcd' will be treated as 'ab')\nbuf=buf.slice(0,actual);}return buf;}function fromArrayLike(array){var length=array.length<0?0:checked(array.length)|0;var buf=createBuffer(length);for(var i=0;i<length;i+=1){buf[i]=array[i]&255;}return buf;}function fromArrayBuffer(array,byteOffset,length){if(byteOffset<0||array.byteLength<byteOffset){throw new RangeError('\"offset\" is outside of buffer bounds');}if(array.byteLength<byteOffset+(length||0)){throw new RangeError('\"length\" is outside of buffer bounds');}var buf;if(byteOffset===undefined&&length===undefined){buf=new Uint8Array(array);}else if(length===undefined){buf=new Uint8Array(array,byteOffset);}else{buf=new Uint8Array(array,byteOffset,length);}// Return an augmented `Uint8Array` instance\nbuf.__proto__=Buffer.prototype;return buf;}function fromObject(obj){if(Buffer.isBuffer(obj)){var len=checked(obj.length)|0;var buf=createBuffer(len);if(buf.length===0){return buf;}obj.copy(buf,0,0,len);return buf;}if(obj.length!==undefined){if(typeof obj.length!=='number'||numberIsNaN(obj.length)){return createBuffer(0);}return fromArrayLike(obj);}if(obj.type==='Buffer'&&Array.isArray(obj.data)){return fromArrayLike(obj.data);}}function checked(length){// Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n// length is NaN (which is otherwise coerced to zero.)\nif(length>=K_MAX_LENGTH){throw new RangeError('Attempt to allocate Buffer larger than maximum '+'size: 0x'+K_MAX_LENGTH.toString(16)+' bytes');}return length|0;}function SlowBuffer(length){if(+length!=length){// eslint-disable-line eqeqeq\nlength=0;}return Buffer.alloc(+length);}Buffer.isBuffer=function isBuffer(b){return b!=null&&b._isBuffer===true&&b!==Buffer.prototype;// so Buffer.isBuffer(Buffer.prototype) will be false\n};Buffer.compare=function compare(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break;}}if(x<y)return-1;if(y<x)return 1;return 0;};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case'hex':case'utf8':case'utf-8':case'ascii':case'latin1':case'binary':case'base64':case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return true;default:return false;}};Buffer.concat=function concat(list,length){if(!Array.isArray(list)){throw new TypeError('\"list\" argument must be an Array of Buffers');}if(list.length===0){return Buffer.alloc(0);}var i;if(length===undefined){length=0;for(i=0;i<list.length;++i){length+=list[i].length;}}var buffer=Buffer.allocUnsafe(length);var pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(isInstance(buf,Uint8Array)){buf=Buffer.from(buf);}if(!Buffer.isBuffer(buf)){throw new TypeError('\"list\" argument must be an Array of Buffers');}buf.copy(buffer,pos);pos+=buf.length;}return buffer;};function byteLength(string,encoding){if(Buffer.isBuffer(string)){return string.length;}if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer)){return string.byteLength;}if(typeof string!=='string'){throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. '+'Received type '+typeof string);}var len=string.length;var mustMatch=arguments.length>2&&arguments[2]===true;if(!mustMatch&&len===0)return 0;// Use a for loop to avoid recursion\nvar loweredCase=false;for(;;){switch(encoding){case'ascii':case'latin1':case'binary':return len;case'utf8':case'utf-8':return utf8ToBytes(string).length;case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return len*2;case'hex':return len>>>1;case'base64':return base64ToBytes(string).length;default:if(loweredCase){return mustMatch?-1:utf8ToBytes(string).length;// assume utf8\n}encoding=(''+encoding).toLowerCase();loweredCase=true;}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;// No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n// property of a typed array.\n// This behaves neither like String nor Uint8Array in that we set start/end\n// to their upper/lower bounds if the value passed is out of range.\n// undefined is handled specially as per ECMA-262 6th Edition,\n// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\nif(start===undefined||start<0){start=0;}// Return early if start > this.length. Done here to prevent potential uint32\n// coercion fail below.\nif(start>this.length){return'';}if(end===undefined||end>this.length){end=this.length;}if(end<=0){return'';}// Force coersion to uint32. This will also coerce falsey/NaN values to 0.\nend>>>=0;start>>>=0;if(end<=start){return'';}if(!encoding)encoding='utf8';while(true){switch(encoding){case'hex':return hexSlice(this,start,end);case'utf8':case'utf-8':return utf8Slice(this,start,end);case'ascii':return asciiSlice(this,start,end);case'latin1':case'binary':return latin1Slice(this,start,end);case'base64':return base64Slice(this,start,end);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(encoding+'').toLowerCase();loweredCase=true;}}}// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i;}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError('Buffer size must be a multiple of 16-bits');}for(var i=0;i<len;i+=2){swap(this,i,i+1);}return this;};Buffer.prototype.swap32=function swap32(){var len=this.length;if(len%4!==0){throw new RangeError('Buffer size must be a multiple of 32-bits');}for(var i=0;i<len;i+=4){swap(this,i,i+3);swap(this,i+1,i+2);}return this;};Buffer.prototype.swap64=function swap64(){var len=this.length;if(len%8!==0){throw new RangeError('Buffer size must be a multiple of 64-bits');}for(var i=0;i<len;i+=8){swap(this,i,i+7);swap(this,i+1,i+6);swap(this,i+2,i+5);swap(this,i+3,i+4);}return this;};Buffer.prototype.toString=function toString(){var length=this.length;if(length===0)return'';if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments);};Buffer.prototype.toLocaleString=Buffer.prototype.toString;Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError('Argument must be a Buffer');if(this===b)return true;return Buffer.compare(this,b)===0;};Buffer.prototype.inspect=function inspect(){var str='';var max=exports.INSPECT_MAX_BYTES;str=this.toString('hex',0,max).replace(/(.{2})/g,'$1 ').trim();if(this.length>max)str+=' ... ';return'<Buffer '+str+'>';};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)){target=Buffer.from(target,target.offset,target.byteLength);}if(!Buffer.isBuffer(target)){throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. '+'Received type '+typeof target);}if(start===undefined){start=0;}if(end===undefined){end=target?target.length:0;}if(thisStart===undefined){thisStart=0;}if(thisEnd===undefined){thisEnd=this.length;}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError('out of range index');}if(thisStart>=thisEnd&&start>=end){return 0;}if(thisStart>=thisEnd){return-1;}if(start>=end){return 1;}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i<len;++i){if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i];y=targetCopy[i];break;}}if(x<y)return-1;if(y<x)return 1;return 0;};// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){// Empty buffer means no match\nif(buffer.length===0)return-1;// Normalize byteOffset\nif(typeof byteOffset==='string'){encoding=byteOffset;byteOffset=0;}else if(byteOffset>0x7fffffff){byteOffset=0x7fffffff;}else if(byteOffset<-0x80000000){byteOffset=-0x80000000;}byteOffset=+byteOffset;// Coerce to Number.\nif(numberIsNaN(byteOffset)){// byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\nbyteOffset=dir?0:buffer.length-1;}// Normalize byteOffset: negative offsets start from the end of the buffer\nif(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1;}else if(byteOffset<0){if(dir)byteOffset=0;else return-1;}// Normalize val\nif(typeof val==='string'){val=Buffer.from(val,encoding);}// Finally, search either indexOf (if dir is true) or lastIndexOf\nif(Buffer.isBuffer(val)){// Special case: looking for empty string/buffer always fails\nif(val.length===0){return-1;}return arrayIndexOf(buffer,val,byteOffset,encoding,dir);}else if(typeof val==='number'){val=val&0xFF;// Search for a byte value [0-255]\nif(typeof Uint8Array.prototype.indexOf==='function'){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir);}throw new TypeError('val must be string, number or Buffer');}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==='ucs2'||encoding==='ucs-2'||encoding==='utf16le'||encoding==='utf-16le'){if(arr.length<2||val.length<2){return-1;}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2;}}function read(buf,i){if(indexSize===1){return buf[i];}else{return buf.readUInt16BE(i*indexSize);}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++){if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===valLength)return foundIndex*indexSize;}else{if(foundIndex!==-1)i-=i-foundIndex;foundIndex=-1;}}}else{if(byteOffset+valLength>arrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;j<valLength;j++){if(read(arr,i+j)!==read(val,j)){found=false;break;}}if(found)return i;}}return-1;}Buffer.prototype.includes=function includes(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1;};Buffer.prototype.indexOf=function indexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,true);};Buffer.prototype.lastIndexOf=function lastIndexOf(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,false);};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining;}else{length=Number(length);if(length>remaining){length=remaining;}}var strLen=string.length;if(length>strLen/2){length=strLen/2;}for(var i=0;i<length;++i){var parsed=parseInt(string.substr(i*2,2),16);if(numberIsNaN(parsed))return i;buf[offset+i]=parsed;}return i;}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length);}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length);}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length);}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length);}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length);}Buffer.prototype.write=function write(string,offset,length,encoding){// Buffer#write(string)\nif(offset===undefined){encoding='utf8';length=this.length;offset=0;// Buffer#write(string, encoding)\n}else if(length===undefined&&typeof offset==='string'){encoding=offset;length=this.length;offset=0;// Buffer#write(string, offset[, length][, encoding])\n}else if(isFinite(offset)){offset=offset>>>0;if(isFinite(length)){length=length>>>0;if(encoding===undefined)encoding='utf8';}else{encoding=length;length=undefined;}}else{throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError('Attempt to write outside buffer bounds');}if(!encoding)encoding='utf8';var loweredCase=false;for(;;){switch(encoding){case'hex':return hexWrite(this,string,offset,length);case'utf8':case'utf-8':return utf8Write(this,string,offset,length);case'ascii':return asciiWrite(this,string,offset,length);case'latin1':case'binary':return latin1Write(this,string,offset,length);case'base64':// Warning: maxLength not taken into account in base64Write\nreturn base64Write(this,string,offset,length);case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError('Unknown encoding: '+encoding);encoding=(''+encoding).toLowerCase();loweredCase=true;}}};Buffer.prototype.toJSON=function toJSON(){return{type:'Buffer',data:Array.prototype.slice.call(this._arr||this,0)};};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf);}else{return base64.fromByteArray(buf.slice(start,end));}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>0xEF?4:firstByte>0xDF?3:firstByte>0xBF?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<0x80){codePoint=firstByte;}break;case 2:secondByte=buf[i+1];if((secondByte&0xC0)===0x80){tempCodePoint=(firstByte&0x1F)<<0x6|secondByte&0x3F;if(tempCodePoint>0x7F){codePoint=tempCodePoint;}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0xC|(secondByte&0x3F)<<0x6|thirdByte&0x3F;if(tempCodePoint>0x7FF&&(tempCodePoint<0xD800||tempCodePoint>0xDFFF)){codePoint=tempCodePoint;}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&0xC0)===0x80&&(thirdByte&0xC0)===0x80&&(fourthByte&0xC0)===0x80){tempCodePoint=(firstByte&0xF)<<0x12|(secondByte&0x3F)<<0xC|(thirdByte&0x3F)<<0x6|fourthByte&0x3F;if(tempCodePoint>0xFFFF&&tempCodePoint<0x110000){codePoint=tempCodePoint;}}}}if(codePoint===null){// we did not generate a valid codePoint so insert a\n// replacement char (U+FFFD) and advance only 1 byte\ncodePoint=0xFFFD;bytesPerSequence=1;}else if(codePoint>0xFFFF){// encode to utf16 (surrogate pair dance)\ncodePoint-=0x10000;res.push(codePoint>>>10&0x3FF|0xD800);codePoint=0xDC00|codePoint&0x3FF;}res.push(codePoint);i+=bytesPerSequence;}return decodeCodePointsArray(res);}// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH=0x1000;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints);// avoid extra slice()\n}// Decode in chunks to avoid \"call stack size exceeded\".\nvar res='';var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));}return res;}function asciiSlice(buf,start,end){var ret='';end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]&0x7F);}return ret;}function latin1Slice(buf,start,end){var ret='';end=Math.min(buf.length,end);for(var i=start;i<end;++i){ret+=String.fromCharCode(buf[i]);}return ret;}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out='';for(var i=start;i<end;++i){out+=toHex(buf[i]);}return out;}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res='';for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256);}return res;}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0;}else if(start>len){start=len;}if(end<0){end+=len;if(end<0)end=0;}else if(end>len){end=len;}if(end<start)end=start;var newBuf=this.subarray(start,end);// Return an augmented `Uint8Array` instance\nnewBuf.__proto__=Buffer.prototype;return newBuf;};/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError('offset is not uint');if(offset+ext>length)throw new RangeError('Trying to access beyond buffer length');}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=0x100)){val+=this[offset+i]*mul;}return val;};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){checkOffset(offset,byteLength,this.length);}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=0x100)){val+=this[offset+--byteLength]*mul;}return val;};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);return this[offset];};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8;};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1];};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*0x1000000;};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*0x1000000+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3]);};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=0x100)){val+=this[offset+i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=0x100)){val+=this[offset+--i]*mul;}mul*=0x80;if(val>=mul)val-=Math.pow(2,8*byteLength);return val;};Buffer.prototype.readInt8=function readInt8(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&0x80))return this[offset];return(0xff-this[offset]+1)*-1;};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&0x8000?val|0xFFFF0000:val;};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24;};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3];};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4);};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4);};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8);};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){offset=offset>>>0;if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8);};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('\"value\" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError('Index out of range');}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var mul=1;var i=0;this[offset]=value&0xFF;while(++i<byteLength&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;byteLength=byteLength>>>0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0);}var i=byteLength-1;var mul=1;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){this[offset+i]=value/mul&0xFF;}return offset+byteLength;};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0xff,0);this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0xffff,0);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&0xff;return offset+4;};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0xffffffff,0);this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=0;var mul=1;var sub=0;this[offset]=value&0xFF;while(++i<byteLength&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i-1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset>>>0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit);}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&0xFF;while(--i>=0&&(mul*=0x100)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1;}this[offset+i]=(value/mul>>0)-sub&0xFF;}return offset+byteLength;};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,1,0x7f,-0x80);if(value<0)value=0xff+value+1;this[offset]=value&0xff;return offset+1;};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value&0xff;this[offset+1]=value>>>8;return offset+2;};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,2,0x7fff,-0x8000);this[offset]=value>>>8;this[offset+1]=value&0xff;return offset+2;};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);this[offset]=value&0xff;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24;return offset+4;};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset>>>0;if(!noAssert)checkInt(this,value,offset,4,0x7fffffff,-0x80000000);if(value<0)value=0xffffffff+value+1;this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&0xff;return offset+4;};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError('Index out of range');if(offset<0)throw new RangeError('Index out of range');}function writeFloat(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e+38,-3.4028234663852886e+38);}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4;}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert);};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert);};function writeDouble(buf,value,offset,littleEndian,noAssert){value=+value;offset=offset>>>0;if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157E+308,-1.7976931348623157E+308);}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8;}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert);};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert);};// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy=function copy(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError('argument should be a Buffer');if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;// Copy 0 bytes; we're done\nif(end===start)return 0;if(target.length===0||this.length===0)return 0;// Fatal error conditions\nif(targetStart<0){throw new RangeError('targetStart out of bounds');}if(start<0||start>=this.length)throw new RangeError('Index out of range');if(end<0)throw new RangeError('sourceEnd out of bounds');// Are we oob?\nif(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start;}var len=end-start;if(this===target&&typeof Uint8Array.prototype.copyWithin==='function'){// Use built-in when available, missing from IE11\nthis.copyWithin(targetStart,start,end);}else if(this===target&&start<targetStart&&targetStart<end){// descending copy from end\nfor(var i=len-1;i>=0;--i){target[i+targetStart]=this[i+start];}}else{Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);}return len;};// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill=function fill(val,start,end,encoding){// Handle string cases:\nif(typeof val==='string'){if(typeof start==='string'){encoding=start;start=0;end=this.length;}else if(typeof end==='string'){encoding=end;end=this.length;}if(encoding!==undefined&&typeof encoding!=='string'){throw new TypeError('encoding must be a string');}if(typeof encoding==='string'&&!Buffer.isEncoding(encoding)){throw new TypeError('Unknown encoding: '+encoding);}if(val.length===1){var code=val.charCodeAt(0);if(encoding==='utf8'&&code<128||encoding==='latin1'){// Fast path: If `val` fits into a single byte, use that numeric value.\nval=code;}}}else if(typeof val==='number'){val=val&255;}// Invalid ranges are not set to a default, so can range check early.\nif(start<0||this.length<start||this.length<end){throw new RangeError('Out of range index');}if(end<=start){return this;}start=start>>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==='number'){for(i=start;i<end;++i){this[i]=val;}}else{var bytes=Buffer.isBuffer(val)?val:Buffer.from(val,encoding);var len=bytes.length;if(len===0){throw new TypeError('The value \"'+val+'\" is invalid for argument \"value\"');}for(i=0;i<end-start;++i){this[i+start]=bytes[i%len];}}return this;};// HELPER FUNCTIONS\n// ================\nvar INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){// Node takes equal signs as end of the Base64 encoding\nstr=str.split('=')[0];// Node strips out invalid characters like \\n and \\t from the string, base64-js does not\nstr=str.trim().replace(INVALID_BASE64_RE,'');// Node converts strings with length < 2 to ''\nif(str.length<2)return'';// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\nwhile(str.length%4!==0){str=str+'=';}return str;}function toHex(n){if(n<16)return'0'+n.toString(16);return n.toString(16);}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;++i){codePoint=string.charCodeAt(i);// is surrogate component\nif(codePoint>0xD7FF&&codePoint<0xE000){// last char was a lead\nif(!leadSurrogate){// no lead yet\nif(codePoint>0xDBFF){// unexpected trail\nif((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}else if(i+1===length){// unpaired lead\nif((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);continue;}// valid lead\nleadSurrogate=codePoint;continue;}// 2 leads in a row\nif(codePoint<0xDC00){if((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);leadSurrogate=codePoint;continue;}// valid surrogate pair\ncodePoint=(leadSurrogate-0xD800<<10|codePoint-0xDC00)+0x10000;}else if(leadSurrogate){// valid bmp char, but last char was a lead\nif((units-=3)>-1)bytes.push(0xEF,0xBF,0xBD);}leadSurrogate=null;// encode utf8\nif(codePoint<0x80){if((units-=1)<0)break;bytes.push(codePoint);}else if(codePoint<0x800){if((units-=2)<0)break;bytes.push(codePoint>>0x6|0xC0,codePoint&0x3F|0x80);}else if(codePoint<0x10000){if((units-=3)<0)break;bytes.push(codePoint>>0xC|0xE0,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else if(codePoint<0x110000){if((units-=4)<0)break;bytes.push(codePoint>>0x12|0xF0,codePoint>>0xC&0x3F|0x80,codePoint>>0x6&0x3F|0x80,codePoint&0x3F|0x80);}else{throw new Error('Invalid code point');}}return bytes;}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;++i){// Node's code seems to be doing this and not & 0x7F..\nbyteArray.push(str.charCodeAt(i)&0xFF);}return byteArray;}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;++i){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi);}return byteArray;}function base64ToBytes(str){return base64.toByteArray(base64clean(str));}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;++i){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i];}return i;}// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name;}function numberIsNaN(obj){// For IE11 support\nreturn obj!==obj;// eslint-disable-line no-self-compare\n}}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"base64-js\":13,\"buffer\":17,\"ieee754\":23}],18:[function(require,module,exports){(function(process){(function(){/* eslint-env browser */ /**\n * This is the web browser implementation of `debug()`.\n */exports.formatArgs=formatArgs;exports.save=save;exports.load=load;exports.useColors=useColors;exports.storage=localstorage();exports.destroy=(()=>{let warned=false;return()=>{if(!warned){warned=true;console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');}};})();/**\n * Colors.\n */exports.colors=['#0000CC','#0000FF','#0033CC','#0033FF','#0066CC','#0066FF','#0099CC','#0099FF','#00CC00','#00CC33','#00CC66','#00CC99','#00CCCC','#00CCFF','#3300CC','#3300FF','#3333CC','#3333FF','#3366CC','#3366FF','#3399CC','#3399FF','#33CC00','#33CC33','#33CC66','#33CC99','#33CCCC','#33CCFF','#6600CC','#6600FF','#6633CC','#6633FF','#66CC00','#66CC33','#9900CC','#9900FF','#9933CC','#9933FF','#99CC00','#99CC33','#CC0000','#CC0033','#CC0066','#CC0099','#CC00CC','#CC00FF','#CC3300','#CC3333','#CC3366','#CC3399','#CC33CC','#CC33FF','#CC6600','#CC6633','#CC9900','#CC9933','#CCCC00','#CCCC33','#FF0000','#FF0033','#FF0066','#FF0099','#FF00CC','#FF00FF','#FF3300','#FF3333','#FF3366','#FF3399','#FF33CC','#FF33FF','#FF6600','#FF6633','#FF9900','#FF9933','#FFCC00','#FFCC33'];/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */ // eslint-disable-next-line complexity\nfunction useColors(){// NB: In an Electron preload script, document will be defined but not fully\n// initialized. Since we know we're in Chrome, we'll just detect this case\n// explicitly\nif(typeof window!=='undefined'&&window.process&&(window.process.type==='renderer'||window.process.__nwjs)){return true;}// Internet Explorer and Edge do not support colors.\nif(typeof navigator!=='undefined'&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)){return false;}// Is webkit? http://stackoverflow.com/a/16459606/376773\n// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\nreturn typeof document!=='undefined'&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||// Is firebug? http://stackoverflow.com/a/398120/376773\ntypeof window!=='undefined'&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||// Is firefox >= v31?\n// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\ntypeof navigator!=='undefined'&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||// Double check webkit in userAgent just in case we are in a worker\ntypeof navigator!=='undefined'&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);}/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */function formatArgs(args){args[0]=(this.useColors?'%c':'')+this.namespace+(this.useColors?' %c':' ')+args[0]+(this.useColors?'%c ':' ')+'+'+module.exports.humanize(this.diff);if(!this.useColors){return;}const c='color: '+this.color;args.splice(1,0,c,'color: inherit');// The final \"%c\" is somewhat tricky, because there could be other\n// arguments passed either before or after the %c, so we need to\n// figure out the correct index to insert the CSS into\nlet index=0;let lastC=0;args[0].replace(/%[a-zA-Z%]/g,match=>{if(match==='%%'){return;}index++;if(match==='%c'){// We only are interested in the *last* %c\n// (the user may have provided their own)\nlastC=index;}});args.splice(lastC,0,c);}/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */exports.log=console.debug||console.log||(()=>{});/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */function save(namespaces){try{if(namespaces){exports.storage.setItem('debug',namespaces);}else{exports.storage.removeItem('debug');}}catch(error){// Swallow\n// XXX (@Qix-) should we be logging these?\n}}/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */function load(){let r;try{r=exports.storage.getItem('debug');}catch(error){// Swallow\n// XXX (@Qix-) should we be logging these?\n}// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\nif(!r&&typeof process!=='undefined'&&'env'in process){r=process.env.DEBUG;}return r;}/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */function localstorage(){try{// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n// The Browser also has localStorage in the global context.\nreturn localStorage;}catch(error){// Swallow\n// XXX (@Qix-) should we be logging these?\n}}module.exports=require('./common')(exports);const{formatters}=module.exports;/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */formatters.j=function(v){try{return JSON.stringify(v);}catch(error){return'[UnexpectedJSONParseError]: '+error.message;}};}).call(this);}).call(this,require('_process'));},{\"./common\":19,\"_process\":50}],19:[function(require,module,exports){/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */function setup(env){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=require('ms');createDebug.destroy=destroy;Object.keys(env).forEach(key=>{createDebug[key]=env[key];});/**\n\t* The currently active debug mode names, and names to skip.\n\t*/createDebug.names=[];createDebug.skips=[];/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/createDebug.formatters={};/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/function selectColor(namespace){let hash=0;for(let i=0;i<namespace.length;i++){hash=(hash<<5)-hash+namespace.charCodeAt(i);hash|=0;// Convert to 32bit integer\n}return createDebug.colors[Math.abs(hash)%createDebug.colors.length];}createDebug.selectColor=selectColor;/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/function createDebug(namespace){let prevTime;let enableOverride=null;let namespacesCache;let enabledCache;function debug(...args){// Disabled?\nif(!debug.enabled){return;}const self=debug;// Set `diff` timestamp\nconst curr=Number(new Date());const ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;args[0]=createDebug.coerce(args[0]);if(typeof args[0]!=='string'){// Anything else let's inspect with %O\nargs.unshift('%O');}// Apply any `formatters` transformations\nlet index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,(match,format)=>{// If we encounter an escaped % then don't increase the array index\nif(match==='%%'){return'%';}index++;const formatter=createDebug.formatters[format];if(typeof formatter==='function'){const val=args[index];match=formatter.call(self,val);// Now we need to remove `args[index]` since it's inlined in the `format`\nargs.splice(index,1);index--;}return match;});// Apply env-specific formatting (colors, etc.)\ncreateDebug.formatArgs.call(self,args);const logFn=self.log||createDebug.log;logFn.apply(self,args);}debug.namespace=namespace;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(namespace);debug.extend=extend;debug.destroy=createDebug.destroy;// XXX Temporary. Will be removed in the next major release.\nObject.defineProperty(debug,'enabled',{enumerable:true,configurable:false,get:()=>{if(enableOverride!==null){return enableOverride;}if(namespacesCache!==createDebug.namespaces){namespacesCache=createDebug.namespaces;enabledCache=createDebug.enabled(namespace);}return enabledCache;},set:v=>{enableOverride=v;}});// Env-specific initialization logic for debug instances\nif(typeof createDebug.init==='function'){createDebug.init(debug);}return debug;}function extend(namespace,delimiter){const newDebug=createDebug(this.namespace+(typeof delimiter==='undefined'?':':delimiter)+namespace);newDebug.log=this.log;return newDebug;}/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/function enable(namespaces){createDebug.save(namespaces);createDebug.namespaces=namespaces;createDebug.names=[];createDebug.skips=[];let i;const split=(typeof namespaces==='string'?namespaces:'').split(/[\\s,]+/);const len=split.length;for(i=0;i<len;i++){if(!split[i]){// ignore empty strings\ncontinue;}namespaces=split[i].replace(/\\*/g,'.*?');if(namespaces[0]==='-'){createDebug.skips.push(new RegExp('^'+namespaces.substr(1)+'$'));}else{createDebug.names.push(new RegExp('^'+namespaces+'$'));}}}/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/function disable(){const namespaces=[...createDebug.names.map(toNamespace),...createDebug.skips.map(toNamespace).map(namespace=>'-'+namespace)].join(',');createDebug.enable('');return namespaces;}/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/function enabled(name){if(name[name.length-1]==='*'){return true;}let i;let len;for(i=0,len=createDebug.skips.length;i<len;i++){if(createDebug.skips[i].test(name)){return false;}}for(i=0,len=createDebug.names.length;i<len;i++){if(createDebug.names[i].test(name)){return true;}}return false;}/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/function toNamespace(regexp){return regexp.toString().substring(2,regexp.toString().length-2).replace(/\\.\\*\\?$/,'*');}/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/function coerce(val){if(val instanceof Error){return val.stack||val.message;}return val;}/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/function destroy(){console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');}createDebug.enable(createDebug.load());return createDebug;}module.exports=setup;},{\"ms\":45}],20:[function(require,module,exports){(function(process,Buffer){(function(){var stream=require('readable-stream');var eos=require('end-of-stream');var inherits=require('inherits');var shift=require('stream-shift');var SIGNAL_FLUSH=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]);var onuncork=function(self,fn){if(self._corked)self.once('uncork',fn);else fn();};var autoDestroy=function(self,err){if(self._autoDestroy)self.destroy(err);};var destroyer=function(self,end){return function(err){if(err)autoDestroy(self,err.message==='premature close'?null:err);else if(end&&!self._ended)self.end();};};var end=function(ws,fn){if(!ws)return fn();if(ws._writableState&&ws._writableState.finished)return fn();if(ws._writableState)return ws.end(fn);ws.end();fn();};var noop=function(){};var toStreams2=function(rs){return new stream.Readable({objectMode:true,highWaterMark:16}).wrap(rs);};var Duplexify=function(writable,readable,opts){if(!(this instanceof Duplexify))return new Duplexify(writable,readable,opts);stream.Duplex.call(this,opts);this._writable=null;this._readable=null;this._readable2=null;this._autoDestroy=!opts||opts.autoDestroy!==false;this._forwardDestroy=!opts||opts.destroy!==false;this._forwardEnd=!opts||opts.end!==false;this._corked=1;// start corked\nthis._ondrain=null;this._drained=false;this._forwarding=false;this._unwrite=null;this._unread=null;this._ended=false;this.destroyed=false;if(writable)this.setWritable(writable);if(readable)this.setReadable(readable);};inherits(Duplexify,stream.Duplex);Duplexify.obj=function(writable,readable,opts){if(!opts)opts={};opts.objectMode=true;opts.highWaterMark=16;return new Duplexify(writable,readable,opts);};Duplexify.prototype.cork=function(){if(++this._corked===1)this.emit('cork');};Duplexify.prototype.uncork=function(){if(this._corked&&--this._corked===0)this.emit('uncork');};Duplexify.prototype.setWritable=function(writable){if(this._unwrite)this._unwrite();if(this.destroyed){if(writable&&writable.destroy)writable.destroy();return;}if(writable===null||writable===false){this.end();return;}var self=this;var unend=eos(writable,{writable:true,readable:false},destroyer(this,this._forwardEnd));var ondrain=function(){var ondrain=self._ondrain;self._ondrain=null;if(ondrain)ondrain();};var clear=function(){self._writable.removeListener('drain',ondrain);unend();};if(this._unwrite)process.nextTick(ondrain);// force a drain on stream reset to avoid livelocks\nthis._writable=writable;this._writable.on('drain',ondrain);this._unwrite=clear;this.uncork();// always uncork setWritable\n};Duplexify.prototype.setReadable=function(readable){if(this._unread)this._unread();if(this.destroyed){if(readable&&readable.destroy)readable.destroy();return;}if(readable===null||readable===false){this.push(null);this.resume();return;}var self=this;var unend=eos(readable,{writable:false,readable:true},destroyer(this));var onreadable=function(){self._forward();};var onend=function(){self.push(null);};var clear=function(){self._readable2.removeListener('readable',onreadable);self._readable2.removeListener('end',onend);unend();};this._drained=true;this._readable=readable;this._readable2=readable._readableState?readable:toStreams2(readable);this._readable2.on('readable',onreadable);this._readable2.on('end',onend);this._unread=clear;this._forward();};Duplexify.prototype._read=function(){this._drained=true;this._forward();};Duplexify.prototype._forward=function(){if(this._forwarding||!this._readable2||!this._drained)return;this._forwarding=true;var data;while(this._drained&&(data=shift(this._readable2))!==null){if(this.destroyed)continue;this._drained=this.push(data);}this._forwarding=false;};Duplexify.prototype.destroy=function(err,cb){if(!cb)cb=noop;if(this.destroyed)return cb(null);this.destroyed=true;var self=this;process.nextTick(function(){self._destroy(err);cb(null);});};Duplexify.prototype._destroy=function(err){if(err){var ondrain=this._ondrain;this._ondrain=null;if(ondrain)ondrain(err);else this.emit('error',err);}if(this._forwardDestroy){if(this._readable&&this._readable.destroy)this._readable.destroy();if(this._writable&&this._writable.destroy)this._writable.destroy();}this.emit('close');};Duplexify.prototype._write=function(data,enc,cb){if(this.destroyed)return;if(this._corked)return onuncork(this,this._write.bind(this,data,enc,cb));if(data===SIGNAL_FLUSH)return this._finish(cb);if(!this._writable)return cb();if(this._writable.write(data)===false)this._ondrain=cb;else if(!this.destroyed)cb();};Duplexify.prototype._finish=function(cb){var self=this;this.emit('preend');onuncork(this,function(){end(self._forwardEnd&&self._writable,function(){// haxx to not emit prefinish twice\nif(self._writableState.prefinished===false)self._writableState.prefinished=true;self.emit('prefinish');onuncork(self,cb);});});};Duplexify.prototype.end=function(data,enc,cb){if(typeof data==='function')return this.end(null,null,data);if(typeof enc==='function')return this.end(data,null,enc);this._ended=true;if(data)this.write(data);if(!this._writableState.ending&&!this._writableState.destroyed)this.write(SIGNAL_FLUSH);return stream.Writable.prototype.end.call(this,cb);};module.exports=Duplexify;}).call(this);}).call(this,require('_process'),require(\"buffer\").Buffer);},{\"_process\":50,\"buffer\":17,\"end-of-stream\":21,\"inherits\":24,\"readable-stream\":69,\"stream-shift\":74}],21:[function(require,module,exports){(function(process){(function(){var once=require('once');var noop=function(){};var isRequest=function(stream){return stream.setHeader&&typeof stream.abort==='function';};var isChildProcess=function(stream){return stream.stdio&&Array.isArray(stream.stdio)&&stream.stdio.length===3;};var eos=function(stream,opts,callback){if(typeof opts==='function')return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var ws=stream._writableState;var rs=stream._readableState;var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var cancelled=false;var onlegacyfinish=function(){if(!stream.writable)onfinish();};var onfinish=function(){writable=false;if(!readable)callback.call(stream);};var onend=function(){readable=false;if(!writable)callback.call(stream);};var onexit=function(exitCode){callback.call(stream,exitCode?new Error('exited with error code: '+exitCode):null);};var onerror=function(err){callback.call(stream,err);};var onclose=function(){process.nextTick(onclosenexttick);};var onclosenexttick=function(){if(cancelled)return;if(readable&&!(rs&&rs.ended&&!rs.destroyed))return callback.call(stream,new Error('premature close'));if(writable&&!(ws&&ws.ended&&!ws.destroyed))return callback.call(stream,new Error('premature close'));};var onrequest=function(){stream.req.on('finish',onfinish);};if(isRequest(stream)){stream.on('complete',onfinish);stream.on('abort',onclose);if(stream.req)onrequest();else stream.on('request',onrequest);}else if(writable&&!ws){// legacy streams\nstream.on('end',onlegacyfinish);stream.on('close',onlegacyfinish);}if(isChildProcess(stream))stream.on('exit',onexit);stream.on('end',onend);stream.on('finish',onfinish);if(opts.error!==false)stream.on('error',onerror);stream.on('close',onclose);return function(){cancelled=true;stream.removeListener('complete',onfinish);stream.removeListener('abort',onclose);stream.removeListener('request',onrequest);if(stream.req)stream.req.removeListener('finish',onfinish);stream.removeListener('end',onlegacyfinish);stream.removeListener('close',onlegacyfinish);stream.removeListener('finish',onfinish);stream.removeListener('exit',onexit);stream.removeListener('end',onend);stream.removeListener('error',onerror);stream.removeListener('close',onclose);};};module.exports=eos;}).call(this);}).call(this,require('_process'));},{\"_process\":50,\"once\":48}],22:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nvar objectCreate=Object.create||objectCreatePolyfill;var objectKeys=Object.keys||objectKeysPolyfill;var bind=Function.prototype.bind||functionBindPolyfill;function EventEmitter(){if(!this._events||!Object.prototype.hasOwnProperty.call(this,'_events')){this._events=objectCreate(null);this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;}module.exports=EventEmitter;// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners=10;var hasDefineProperty;try{var o={};if(Object.defineProperty)Object.defineProperty(o,'x',{value:0});hasDefineProperty=o.x===0;}catch(err){hasDefineProperty=false;}if(hasDefineProperty){Object.defineProperty(EventEmitter,'defaultMaxListeners',{enumerable:true,get:function(){return defaultMaxListeners;},set:function(arg){// check whether the input is a positive number (whose value is zero or\n// greater and not a NaN).\nif(typeof arg!=='number'||arg<0||arg!==arg)throw new TypeError('\"defaultMaxListeners\" must be a positive number');defaultMaxListeners=arg;}});}else{EventEmitter.defaultMaxListeners=defaultMaxListeners;}// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=='number'||n<0||isNaN(n))throw new TypeError('\"n\" argument must be a positive number');this._maxListeners=n;return this;};function $getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners;}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this);};// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler,isFn,self){if(isFn)handler.call(self);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self);}}function emitOne(handler,isFn,self,arg1){if(isFn)handler.call(self,arg1);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1);}}function emitTwo(handler,isFn,self,arg1,arg2){if(isFn)handler.call(self,arg1,arg2);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2);}}function emitThree(handler,isFn,self,arg1,arg2,arg3){if(isFn)handler.call(self,arg1,arg2,arg3);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2,arg3);}}function emitMany(handler,isFn,self,args){if(isFn)handler.apply(self,args);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].apply(self,args);}}EventEmitter.prototype.emit=function emit(type){var er,handler,len,args,i,events;var doError=type==='error';events=this._events;if(events)doError=doError&&events.error==null;else if(!doError)return false;// If there is no 'error' event listener then throw.\nif(doError){if(arguments.length>1)er=arguments[1];if(er instanceof Error){throw er;// Unhandled 'error' event\n}else{// At least give some kind of context to the user\nvar err=new Error('Unhandled \"error\" event. ('+er+')');err.context=er;throw err;}return false;}handler=events[type];if(!handler)return false;var isFn=typeof handler==='function';len=arguments.length;switch(len){// fast cases\ncase 1:emitNone(handler,isFn,this);break;case 2:emitOne(handler,isFn,this,arguments[1]);break;case 3:emitTwo(handler,isFn,this,arguments[1],arguments[2]);break;case 4:emitThree(handler,isFn,this,arguments[1],arguments[2],arguments[3]);break;// slower\ndefault:args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];emitMany(handler,isFn,this,args);}return true;};function _addListener(target,type,listener,prepend){var m;var events;var existing;if(typeof listener!=='function')throw new TypeError('\"listener\" argument must be a function');events=target._events;if(!events){events=target._events=objectCreate(null);target._eventsCount=0;}else{// To avoid recursion in the case that type === \"newListener\"! Before\n// adding it to the listeners, first emit \"newListener\".\nif(events.newListener){target.emit('newListener',type,listener.listener?listener.listener:listener);// Re-assign `events` because a newListener handler could have caused the\n// this._events to be assigned to a new object\nevents=target._events;}existing=events[type];}if(!existing){// Optimize the case of one listener. Don't need the extra array object.\nexisting=events[type]=listener;++target._eventsCount;}else{if(typeof existing==='function'){// Adding the second element, need to change to array.\nexisting=events[type]=prepend?[listener,existing]:[existing,listener];}else{// If we've already got an array, just append.\nif(prepend){existing.unshift(listener);}else{existing.push(listener);}}// Check for listener leak\nif(!existing.warned){m=$getMaxListeners(target);if(m&&m>0&&existing.length>m){existing.warned=true;var w=new Error('Possible EventEmitter memory leak detected. '+existing.length+' \"'+String(type)+'\" listeners '+'added. Use emitter.setMaxListeners() to '+'increase limit.');w.name='MaxListenersExceededWarning';w.emitter=target;w.type=type;w.count=existing.length;if(typeof console==='object'&&console.warn){console.warn('%s: %s',w.name,w.message);}}}}return target;}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false);};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true);};function onceWrapper(){if(!this.fired){this.target.removeListener(this.type,this.wrapFn);this.fired=true;switch(arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:var args=new Array(arguments.length);for(var i=0;i<args.length;++i)args[i]=arguments[i];this.listener.apply(this.target,args);}}}function _onceWrap(target,type,listener){var state={fired:false,wrapFn:undefined,target:target,type:type,listener:listener};var wrapped=bind.call(onceWrapper,state);wrapped.listener=listener;state.wrapFn=wrapped;return wrapped;}EventEmitter.prototype.once=function once(type,listener){if(typeof listener!=='function')throw new TypeError('\"listener\" argument must be a function');this.on(type,_onceWrap(this,type,listener));return this;};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){if(typeof listener!=='function')throw new TypeError('\"listener\" argument must be a function');this.prependListener(type,_onceWrap(this,type,listener));return this;};// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;if(typeof listener!=='function')throw new TypeError('\"listener\" argument must be a function');events=this._events;if(!events)return this;list=events[type];if(!list)return this;if(list===listener||list.listener===listener){if(--this._eventsCount===0)this._events=objectCreate(null);else{delete events[type];if(events.removeListener)this.emit('removeListener',type,list.listener||listener);}}else if(typeof list!=='function'){position=-1;for(i=list.length-1;i>=0;i--){if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener;position=i;break;}}if(position<0)return this;if(position===0)list.shift();else spliceOne(list,position);if(list.length===1)events[type]=list[0];if(events.removeListener)this.emit('removeListener',type,originalListener||listener);}return this;};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events,i;events=this._events;if(!events)return this;// not listening for removeListener, no need to emit\nif(!events.removeListener){if(arguments.length===0){this._events=objectCreate(null);this._eventsCount=0;}else if(events[type]){if(--this._eventsCount===0)this._events=objectCreate(null);else delete events[type];}return this;}// emit removeListener for all listeners on all events\nif(arguments.length===0){var keys=objectKeys(events);var key;for(i=0;i<keys.length;++i){key=keys[i];if(key==='removeListener')continue;this.removeAllListeners(key);}this.removeAllListeners('removeListener');this._events=objectCreate(null);this._eventsCount=0;return this;}listeners=events[type];if(typeof listeners==='function'){this.removeListener(type,listeners);}else if(listeners){// LIFO order\nfor(i=listeners.length-1;i>=0;i--){this.removeListener(type,listeners[i]);}}return this;};function _listeners(target,type,unwrap){var events=target._events;if(!events)return[];var evlistener=events[type];if(!evlistener)return[];if(typeof evlistener==='function')return unwrap?[evlistener.listener||evlistener]:[evlistener];return unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length);}EventEmitter.prototype.listeners=function listeners(type){return _listeners(this,type,true);};EventEmitter.prototype.rawListeners=function rawListeners(type){return _listeners(this,type,false);};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==='function'){return emitter.listenerCount(type);}else{return listenerCount.call(emitter,type);}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events){var evlistener=events[type];if(typeof evlistener==='function'){return 1;}else if(evlistener){return evlistener.length;}}return 0;}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[];};// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k<n;i+=1,k+=1)list[i]=list[k];list.pop();}function arrayClone(arr,n){var copy=new Array(n);for(var i=0;i<n;++i)copy[i]=arr[i];return copy;}function unwrapListeners(arr){var ret=new Array(arr.length);for(var i=0;i<ret.length;++i){ret[i]=arr[i].listener||arr[i];}return ret;}function objectCreatePolyfill(proto){var F=function(){};F.prototype=proto;return new F();}function objectKeysPolyfill(obj){var keys=[];for(var k in obj)if(Object.prototype.hasOwnProperty.call(obj,k)){keys.push(k);}return k;}function functionBindPolyfill(context){var fn=this;return function(){return fn.apply(context,arguments);};}},{}],23:[function(require,module,exports){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else{m=m+Math.pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*Math.pow(2,e-mLen);};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;};},{}],24:[function(require,module,exports){if(typeof Object.create==='function'){// implementation from standard node.js 'util' module\nmodule.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}});}};}else{// old school shim for old browsers\nmodule.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor();ctor.prototype.constructor=ctor;}};}},{}],25:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var TreeNode=/** @class */function(){function TreeNode(key,value){this.color=true;this.key=undefined;this.value=undefined;this.parent=undefined;this.brother=undefined;this.leftChild=undefined;this.rightChild=undefined;this.key=key;this.value=value;}TreeNode.prototype.rotateLeft=function(){var PP=this.parent;var PB=this.brother;var F=this.leftChild;var V=this.rightChild;if(!V)throw new Error(\"unknown error\");var R=V.leftChild;var X=V.rightChild;if(PP){if(PP.leftChild===this)PP.leftChild=V;else if(PP.rightChild===this)PP.rightChild=V;}V.parent=PP;V.brother=PB;V.leftChild=this;V.rightChild=X;if(PB)PB.brother=V;this.parent=V;this.brother=X;this.leftChild=F;this.rightChild=R;if(X){X.parent=V;X.brother=this;}if(F){F.parent=this;F.brother=R;}if(R){R.parent=this;R.brother=F;}return V;};TreeNode.prototype.rotateRight=function(){var PP=this.parent;var PB=this.brother;var F=this.leftChild;if(!F)throw new Error(\"unknown error\");var V=this.rightChild;var D=F.leftChild;var K=F.rightChild;if(PP){if(PP.leftChild===this)PP.leftChild=F;else if(PP.rightChild===this)PP.rightChild=F;}F.parent=PP;F.brother=PB;F.leftChild=D;F.rightChild=this;if(PB)PB.brother=F;if(D){D.parent=F;D.brother=this;}this.parent=F;this.brother=D;this.leftChild=K;this.rightChild=V;if(K){K.parent=this;K.brother=V;}if(V){V.parent=this;V.brother=K;}return F;};TreeNode.prototype.remove=function(){if(this.leftChild||this.rightChild)throw new Error(\"can only remove leaf node\");if(this.parent){if(this===this.parent.leftChild)this.parent.leftChild=undefined;else if(this===this.parent.rightChild)this.parent.rightChild=undefined;}if(this.brother)this.brother.brother=undefined;this.key=undefined;this.value=undefined;this.parent=undefined;this.brother=undefined;};TreeNode.TreeNodeColorType={red:true,black:false};return TreeNode;}();Object.freeze(TreeNode);exports.default=TreeNode;},{}],26:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};Object.defineProperty(exports,\"__esModule\",{value:true});Deque.sigma=3;// growth factor\nDeque.bucketSize=5000;function Deque(container){var _this=this;if(container===void 0){container=[];}var map=[];var first=0;var curFirst=0;var last=0;var curLast=0;var bucketNum=0;var len=0;this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){first=last=curFirst=curLast=bucketNum=len=0;reAllocate.call(this,Deque.bucketSize);len=0;};this.front=function(){return map[first][curFirst];};this.back=function(){return map[last][curLast];};this.forEach=function(callback){if(this.empty())return;var index=0;if(first===last){for(var i=curFirst;i<=curLast;++i){callback(map[first][i],index++);}return;}for(var i=curFirst;i<Deque.bucketSize;++i){callback(map[first][i],index++);}for(var i=first+1;i<last;++i){for(var j=0;j<Deque.bucketSize;++j){callback(map[i][j],index++);}}for(var i=0;i<=curLast;++i){callback(map[last][i],index++);}};var getElementIndex=function(pos){var curFirstIndex=first*Deque.bucketSize+curFirst;var curNodeIndex=curFirstIndex+pos;var curLastIndex=last*Deque.bucketSize+curLast;if(curNodeIndex<curFirstIndex||curNodeIndex>curLastIndex)throw new Error(\"pos should more than 0 and less than queue's size\");var curNodeBucketIndex=Math.floor(curNodeIndex/Deque.bucketSize);var curNodePointerIndex=curNodeIndex%Deque.bucketSize;return{curNodeBucketIndex:curNodeBucketIndex,curNodePointerIndex:curNodePointerIndex};};/**\n     * @param pos index from 0 to size - 1\n     */this.getElementByPos=function(pos){var _a=getElementIndex(pos),curNodeBucketIndex=_a.curNodeBucketIndex,curNodePointerIndex=_a.curNodePointerIndex;return map[curNodeBucketIndex][curNodePointerIndex];};this.eraseElementByPos=function(pos){var _this=this;if(pos<0||pos>len)throw new Error(\"pos should more than 0 and less than queue's size\");if(pos===0)this.popFront();else if(pos===this.size())this.popBack();else{var arr=[];for(var i=pos+1;i<len;++i){arr.push(this.getElementByPos(i));}this.cut(pos);this.popBack();arr.forEach(function(element){return _this.pushBack(element);});}};this.eraseElementByValue=function(value){if(this.empty())return;var arr=[];this.forEach(function(element){if(element!==value){arr.push(element);}});var _len=arr.length;for(var i=0;i<_len;++i)this.setElementByPos(i,arr[i]);this.cut(_len-1);};var reAllocate=function(originalSize){var newMap=[];var needSize=originalSize*Deque.sigma;var newBucketNum=Math.max(Math.ceil(needSize/Deque.bucketSize),2);for(var i=0;i<newBucketNum;++i){newMap.push(new Array(Deque.bucketSize));}var needBucketNum=Math.ceil(originalSize/Deque.bucketSize);var newFirst=Math.floor(newBucketNum/2)-Math.floor(needBucketNum/2);var newLast=newFirst,newCurLast=0;if(this.size()){for(var i=0;i<needBucketNum;++i){for(var j=0;j<Deque.bucketSize;++j){newMap[newFirst+i][j]=this.front();this.popFront();if(this.empty()){newLast=newFirst+i;newCurLast=j;break;}}if(this.empty())break;}}map=newMap;first=newFirst;curFirst=0;last=newLast;curLast=newCurLast;bucketNum=newBucketNum;len=originalSize;};this.pushBack=function(element){if(!this.empty()){if(last===bucketNum-1&&curLast===Deque.bucketSize-1){reAllocate.call(this,this.size());}if(curLast<Deque.bucketSize-1){++curLast;}else if(last<bucketNum-1){++last;curLast=0;}}++len;map[last][curLast]=element;};this.popBack=function(){if(this.empty())return;if(this.size()!==1){if(curLast>0){--curLast;}else if(first<last){--last;curLast=Deque.bucketSize-1;}}if(len>0)--len;};this.setElementByPos=function(pos,element){var _a=getElementIndex(pos),curNodeBucketIndex=_a.curNodeBucketIndex,curNodePointerIndex=_a.curNodePointerIndex;map[curNodeBucketIndex][curNodePointerIndex]=element;};/**\n     * @param {number} pos insert element before pos, should in [0, queue.size]\n     * @param {any} element the element you want to insert\n     * @param {number} [num = 1] the nums you want to insert\n     */this.insert=function(pos,element,num){var _this=this;if(num===void 0){num=1;}if(pos===0){while(num--)this.pushFront(element);}else if(pos===this.size()){while(num--)this.pushBack(element);}else{var arr=[];for(var i=pos;i<len;++i){arr.push(this.getElementByPos(i));}this.cut(pos-1);for(var i=0;i<num;++i)this.pushBack(element);arr.forEach(function(element){return _this.pushBack(element);});}};this.find=function(element){if(first===last){for(var i=curFirst;i<=curLast;++i){if(map[first][i]===element)return true;}return false;}for(var i=curFirst;i<Deque.bucketSize;++i){if(map[first][i]===element)return true;}for(var i=first+1;i<last;++i){for(var j=0;j<Deque.bucketSize;++j){if(map[i][j]===element)return true;}}for(var i=0;i<=curLast;++i){if(map[last][i]===element)return true;}return false;};this.reverse=function(){var l=0,r=len-1;while(l<r){var tmp=this.getElementByPos(l);this.setElementByPos(l,this.getElementByPos(r));this.setElementByPos(r,tmp);++l;--r;}};this.unique=function(){if(this.empty())return;var arr=[];var pre=this.front();this.forEach(function(element,index){if(index===0||element!==pre){arr.push(element);pre=element;}});for(var i=0;i<len;++i){this.setElementByPos(i,arr[i]);}this.cut(arr.length-1);};this.sort=function(cmp){var arr=[];this.forEach(function(element){arr.push(element);});arr.sort(cmp);for(var i=0;i<len;++i)this.setElementByPos(i,arr[i]);};this.pushFront=function(element){if(!this.empty()){if(first===0&&curFirst===0){reAllocate.call(this,this.size());}if(curFirst>0){--curFirst;}else if(first>0){--first;curFirst=Deque.bucketSize-1;}}++len;map[first][curFirst]=element;};this.popFront=function(){if(this.empty())return;if(this.size()!==1){if(curFirst<Deque.bucketSize-1){++curFirst;}else if(first<last){++first;curFirst=0;}}if(len>0)--len;};/**\n     * reduces memory usage by freeing unused memory\n     */this.shrinkToFit=function(){var _this=this;var arr=[];this.forEach(function(element){arr.push(element);});var _len=arr.length;map=[];var bucketNum=Math.ceil(_len/Deque.bucketSize);for(var i=0;i<bucketNum;++i){map.push(new Array(Deque.bucketSize));}this.clear();arr.forEach(function(element){return _this.pushBack(element);});};/**\n     * @param pos cut elements after pos\n     */this.cut=function(pos){if(pos<0){this.clear();return;}var _a=getElementIndex(pos),curNodeBucketIndex=_a.curNodeBucketIndex,curNodePointerIndex=_a.curNodePointerIndex;last=curNodeBucketIndex;curLast=curNodePointerIndex;len=pos+1;};this[Symbol.iterator]=function(){return function(){var i,i,i,j,i;return __generator(this,function(_a){switch(_a.label){case 0:if(len===0)return[2/*return*/];if(!(first===last))return[3/*break*/,5];i=curFirst;_a.label=1;case 1:if(!(i<=curLast))return[3/*break*/,4];return[4/*yield*/,map[first][i]];case 2:_a.sent();_a.label=3;case 3:++i;return[3/*break*/,1];case 4:return[2/*return*/];case 5:i=curFirst;_a.label=6;case 6:if(!(i<Deque.bucketSize))return[3/*break*/,9];return[4/*yield*/,map[first][i]];case 7:_a.sent();_a.label=8;case 8:++i;return[3/*break*/,6];case 9:i=first+1;_a.label=10;case 10:if(!(i<last))return[3/*break*/,15];j=0;_a.label=11;case 11:if(!(j<Deque.bucketSize))return[3/*break*/,14];return[4/*yield*/,map[i][j]];case 12:_a.sent();_a.label=13;case 13:++j;return[3/*break*/,11];case 14:++i;return[3/*break*/,10];case 15:i=0;_a.label=16;case 16:if(!(i<=curLast))return[3/*break*/,19];return[4/*yield*/,map[last][i]];case 17:_a.sent();_a.label=18;case 18:++i;return[3/*break*/,16];case 19:return[2/*return*/];}});}();};(function(){var _len=Deque.bucketSize;if(container.size){_len=container.size();}else if(container.length){_len=container.length;}var needSize=_len*Deque.sigma;bucketNum=Math.ceil(needSize/Deque.bucketSize);bucketNum=Math.max(bucketNum,3);for(var i=0;i<bucketNum;++i){map.push(new Array(Deque.bucketSize));}var needBucketNum=Math.ceil(_len/Deque.bucketSize);first=Math.floor(bucketNum/2)-Math.floor(needBucketNum/2);last=first;container.forEach(function(element){return _this.pushBack(element);});})();Object.freeze(this);}Object.freeze(Deque);exports.default=Deque;},{}],27:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __values=this&&this.__values||function(o){var s=typeof Symbol===\"function\"&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&typeof o.length===\"number\")return{next:function(){if(o&&i>=o.length)o=void 0;return{value:o&&o[i++],done:!o};}};throw new TypeError(s?\"Object is not iterable.\":\"Symbol.iterator is not defined.\");};Object.defineProperty(exports,\"__esModule\",{value:true});var LinkList_1=require(\"../LinkList/LinkList\");var Map_1=require(\"../Map/Map\");HashMap.initSize=1<<4;HashMap.maxSize=1<<30;HashMap.sigma=0.75;// default load factor\nHashMap.treeifyThreshold=8;HashMap.untreeifyThreshold=6;HashMap.minTreeifySize=64;/**\n * Note that resize is a time-consuming operation, please try to determine the number of buckets before use.\n * @param container Initialize the container\n * @param initBucketNum Initialize the bucket num, must be 2 to the power of n\n * @param hashFunc Function to map elements to numbers\n * @constructor\n */function HashMap(container,initBucketNum,hashFunc){var _this=this;if(container===void 0){container=[];}if(initBucketNum===void 0){initBucketNum=HashMap.initSize;}hashFunc=hashFunc||function(x){var e_1,_a;var hashCode=0;var str='';if(typeof x===\"number\"){hashCode=Math.floor(x);hashCode=(hashCode<<5)-hashCode;hashCode=hashCode&hashCode;}else{if(typeof x!==\"string\"){str=JSON.stringify(x);}else str=x;try{for(var str_1=__values(str),str_1_1=str_1.next();!str_1_1.done;str_1_1=str_1.next()){var ch=str_1_1.value;var character=ch.charCodeAt(0);hashCode=(hashCode<<5)-hashCode+character;hashCode=hashCode&hashCode;}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(str_1_1&&!str_1_1.done&&(_a=str_1.return))_a.call(str_1);}finally{if(e_1)throw e_1.error;}}}hashCode^=hashCode>>>16;return hashCode;};if((initBucketNum&initBucketNum-1)!==0){throw new Error(\"initBucketNum must be 2 to the power of n\");}var len=0;var hashTable=[];var bucketNum=Math.max(HashMap.initSize,Math.min(HashMap.maxSize,initBucketNum));this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;bucketNum=initBucketNum;hashTable=[];};this.forEach=function(callback){var index=0;hashTable.forEach(function(container){container.forEach(function(element){callback(element,index++);});});};var reAllocate=function(originalBucketNum){if(originalBucketNum>=HashMap.maxSize)return;bucketNum=originalBucketNum*2;var newHashTable=[];hashTable.forEach(function(container,index){if(container.empty())return;if(container instanceof LinkList_1.default&&container.size()===1){var _a=container.front(),key=_a.key,value=_a.value;newHashTable[hashFunc(key)&bucketNum-1]=new LinkList_1.default([{key:key,value:value}]);}else if(container instanceof Map_1.default){var lowList_1=new LinkList_1.default();var highList_1=new LinkList_1.default();container.forEach(function(pair){var hashCode=hashFunc(pair.key);if((hashCode&originalBucketNum)===0){lowList_1.pushBack(pair);}else highList_1.pushBack(pair);});if(lowList_1.size()>HashMap.untreeifyThreshold)newHashTable[index]=new Map_1.default(lowList_1);else if(lowList_1.size())newHashTable[index]=lowList_1;if(highList_1.size()>HashMap.untreeifyThreshold)newHashTable[index+originalBucketNum]=new Map_1.default(highList_1);else if(highList_1.size())newHashTable[index+originalBucketNum]=highList_1;}else{var lowList_2=new LinkList_1.default();var highList_2=new LinkList_1.default();container.forEach(function(pair){var hashCode=hashFunc(pair.key);if((hashCode&originalBucketNum)===0){lowList_2.pushBack(pair);}else highList_2.pushBack(pair);});if(lowList_2.size())newHashTable[index]=lowList_2;if(highList_2.size())newHashTable[index+originalBucketNum]=highList_2;}hashTable[index].clear();});hashTable=newHashTable;};this.setElement=function(key,value){var e_2,_a;if(key===null||key===undefined){throw new Error(\"to avoid some unnecessary errors, we don't suggest you insert null or undefined here\");}if(value===null||value===undefined){this.eraseElementByKey(key);return;}var index=hashFunc(key)&bucketNum-1;if(!hashTable[index]){++len;hashTable[index]=new LinkList_1.default([{key:key,value:value}]);}else{var preSize=hashTable[index].size();if(hashTable[index]instanceof LinkList_1.default){try{for(var _b=__values(hashTable[index]),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;if(pair.key===key){pair.value=value;return;}}}catch(e_2_1){e_2={error:e_2_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_2)throw e_2.error;}}hashTable[index].pushBack({key:key,value:value});if(hashTable[index].size()>=HashMap.treeifyThreshold){hashTable[index]=new Map_1.default(hashTable[index]);}}else hashTable[index].setElement(key,value);var curSize=hashTable[index].size();len+=curSize-preSize;}if(len>bucketNum*HashMap.sigma){reAllocate.call(this,bucketNum);}};this.getElementByKey=function(key){var e_3,_a;var index=hashFunc(key)&bucketNum-1;if(!hashTable[index])return undefined;if(hashTable[index]instanceof Map_1.default)return hashTable[index].getElementByKey(key);else{try{for(var _b=__values(hashTable[index]),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;if(pair.key===key)return pair.value;}}catch(e_3_1){e_3={error:e_3_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_3)throw e_3.error;}}return undefined;}};this.eraseElementByKey=function(key){var e_4,_a;var index=hashFunc(key)&bucketNum-1;if(!hashTable[index])return;var preSize=hashTable[index].size();if(hashTable[index]instanceof Map_1.default){hashTable[index].eraseElementByKey(key);if(hashTable[index].size()<=HashMap.untreeifyThreshold){hashTable[index]=new LinkList_1.default(hashTable[index]);}}else{var pos=-1;try{for(var _b=__values(hashTable[index]),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;++pos;if(pair.key===key){hashTable[index].eraseElementByPos(pos);break;}}}catch(e_4_1){e_4={error:e_4_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_4)throw e_4.error;}}}var curSize=hashTable[index].size();len+=curSize-preSize;};this.find=function(key){var e_5,_a;var index=hashFunc(key)&bucketNum-1;if(!hashTable[index])return false;if(hashTable[index]instanceof Map_1.default)return hashTable[index].find(key);try{for(var _b=__values(hashTable[index]),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;if(pair.key===key)return true;}}catch(e_5_1){e_5={error:e_5_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_5)throw e_5.error;}}return false;};this[Symbol.iterator]=function(){return function(){var index,_a,_b,pair,e_6_1;var e_6,_c;return __generator(this,function(_d){switch(_d.label){case 0:index=0;_d.label=1;case 1:if(!(index<bucketNum))return[3/*break*/,10];while(index<bucketNum&&!hashTable[index])++index;if(index>=bucketNum)return[3/*break*/,10];_d.label=2;case 2:_d.trys.push([2,7,8,9]);_a=(e_6=void 0,__values(hashTable[index])),_b=_a.next();_d.label=3;case 3:if(!!_b.done)return[3/*break*/,6];pair=_b.value;return[4/*yield*/,pair];case 4:_d.sent();_d.label=5;case 5:_b=_a.next();return[3/*break*/,3];case 6:return[3/*break*/,9];case 7:e_6_1=_d.sent();e_6={error:e_6_1};return[3/*break*/,9];case 8:try{if(_b&&!_b.done&&(_c=_a.return))_c.call(_a);}finally{if(e_6)throw e_6.error;}return[7/*endfinally*/];case 9:++index;return[3/*break*/,1];case 10:return[2/*return*/];}});}();};container.forEach(function(_a){var key=_a.key,value=_a.value;return _this.setElement(key,value);});Object.freeze(this);}Object.freeze(HashMap);exports.default=HashMap;},{\"../LinkList/LinkList\":29,\"../Map/Map\":30}],28:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __values=this&&this.__values||function(o){var s=typeof Symbol===\"function\"&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&typeof o.length===\"number\")return{next:function(){if(o&&i>=o.length)o=void 0;return{value:o&&o[i++],done:!o};}};throw new TypeError(s?\"Object is not iterable.\":\"Symbol.iterator is not defined.\");};Object.defineProperty(exports,\"__esModule\",{value:true});var Set_1=require(\"../Set/Set\");var LinkList_1=require(\"../LinkList/LinkList\");HashSet.initSize=1<<4;HashSet.maxSize=1<<30;HashSet.sigma=0.75;// default load factor\nHashSet.treeifyThreshold=8;HashSet.untreeifyThreshold=6;HashSet.minTreeifySize=64;/**\n * Note that resize is a time-consuming operation, please try to determine the number of buckets before use.\n * @param container Initialize the container\n * @param initBucketNum Initialize the bucket num\n * @param hashFunc Function to map elements to numbers\n * @constructor\n */function HashSet(container,initBucketNum,hashFunc){var _this=this;if(container===void 0){container=[];}if(initBucketNum===void 0){initBucketNum=HashSet.initSize;}hashFunc=hashFunc||function(x){var hashCode=0;var str='';if(typeof x===\"number\"){hashCode=Math.floor(x);hashCode=(hashCode<<5)-hashCode;hashCode=hashCode&hashCode;}else{if(typeof x!==\"string\"){str=JSON.stringify(x);}else str=x;for(var i=0;i<str.length;i++){var character=str.charCodeAt(i);hashCode=(hashCode<<5)-hashCode+character;hashCode=hashCode&hashCode;}}hashCode^=hashCode>>>16;return hashCode;};if((initBucketNum&initBucketNum-1)!==0){throw new Error(\"initBucketNum must be 2 to the power of n\");}var len=0;var hashTable=[];var bucketNum=Math.max(HashSet.initSize,Math.min(HashSet.maxSize,initBucketNum));this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;bucketNum=initBucketNum;hashTable=[];};this.forEach=function(callback){var index=0;hashTable.forEach(function(container){container.forEach(function(element){callback(element,index++);});});};var reAllocate=function(originalBucketNum){if(originalBucketNum>=HashSet.maxSize)return;bucketNum=originalBucketNum*2;var newHashTable=[];hashTable.forEach(function(container,index){if(container.empty())return;if(container instanceof LinkList_1.default&&container.size()===1){var element=container.front();if(element===undefined)throw new Error(\"unknown error\");newHashTable[hashFunc(element)&bucketNum-1]=new LinkList_1.default([element]);}else if(container instanceof Set_1.default){var lowList_1=new LinkList_1.default();var highList_1=new LinkList_1.default();container.forEach(function(element){var hashCode=hashFunc(element);if((hashCode&originalBucketNum)===0){lowList_1.pushBack(element);}else highList_1.pushBack(element);});if(lowList_1.size()>HashSet.untreeifyThreshold)newHashTable[index]=new Set_1.default(lowList_1);else if(lowList_1.size())newHashTable[index]=lowList_1;if(highList_1.size()>HashSet.untreeifyThreshold)newHashTable[index+originalBucketNum]=new Set_1.default(highList_1);else if(highList_1.size())newHashTable[index+originalBucketNum]=highList_1;}else{var lowList_2=new LinkList_1.default();var highList_2=new LinkList_1.default();container.forEach(function(element){var hashCode=hashFunc(element);if((hashCode&originalBucketNum)===0){lowList_2.pushBack(element);}else highList_2.pushBack(element);});if(lowList_2.size())newHashTable[index]=lowList_2;if(highList_2.size())newHashTable[index+originalBucketNum]=highList_2;}hashTable[index].clear();});hashTable=newHashTable;};this.insert=function(element){if(element===null||element===undefined){throw new Error(\"to avoid some unnecessary errors, we don't suggest you insert null or undefined here\");}var index=hashFunc(element)&bucketNum-1;if(!hashTable[index]){hashTable[index]=new LinkList_1.default([element]);++len;}else{var preSize=hashTable[index].size();if(hashTable[index]instanceof LinkList_1.default){if(hashTable[index].find(element))return;hashTable[index].pushBack(element);if(hashTable[index].size()>=HashSet.treeifyThreshold){hashTable[index]=new Set_1.default(hashTable[index]);}}else hashTable[index].insert(element);var curSize=hashTable[index].size();len+=curSize-preSize;}if(len>bucketNum*HashSet.sigma){reAllocate.call(this,bucketNum);}};this.eraseElementByValue=function(element){var index=hashFunc(element)&bucketNum-1;if(!hashTable[index])return;var preSize=hashTable[index].size();hashTable[index].eraseElementByValue(element);if(hashTable[index]instanceof Set_1.default){if(hashTable[index].size()<=HashSet.untreeifyThreshold){hashTable[index]=new LinkList_1.default(hashTable[index]);}}var curSize=hashTable[index].size();len+=curSize-preSize;};this.find=function(element){var index=hashFunc(element)&bucketNum-1;if(!hashTable[index])return false;return hashTable[index].find(element);};this[Symbol.iterator]=function(){return function(){var index,_a,_b,element,e_1_1;var e_1,_c;return __generator(this,function(_d){switch(_d.label){case 0:index=0;_d.label=1;case 1:if(!(index<bucketNum))return[3/*break*/,10];while(index<bucketNum&&!hashTable[index])++index;if(index>=bucketNum)return[3/*break*/,10];_d.label=2;case 2:_d.trys.push([2,7,8,9]);_a=(e_1=void 0,__values(hashTable[index])),_b=_a.next();_d.label=3;case 3:if(!!_b.done)return[3/*break*/,6];element=_b.value;return[4/*yield*/,element];case 4:_d.sent();_d.label=5;case 5:_b=_a.next();return[3/*break*/,3];case 6:return[3/*break*/,9];case 7:e_1_1=_d.sent();e_1={error:e_1_1};return[3/*break*/,9];case 8:try{if(_b&&!_b.done&&(_c=_a.return))_c.call(_a);}finally{if(e_1)throw e_1.error;}return[7/*endfinally*/];case 9:++index;return[3/*break*/,1];case 10:return[2/*return*/];}});}();};container.forEach(function(element){return _this.insert(element);});Object.freeze(this);}Object.freeze(HashSet);exports.default=HashSet;},{\"../LinkList/LinkList\":29,\"../Set/Set\":33}],29:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};Object.defineProperty(exports,\"__esModule\",{value:true});var LinkNode=/** @class */function(){function LinkNode(element){this.value=undefined;this.pre=undefined;this.next=undefined;this.value=element;}return LinkNode;}();function LinkList(container){var _this=this;if(container===void 0){container=[];}var len=0;var head=undefined;var tail=undefined;this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){head=tail=undefined;len=0;};this.front=function(){return head===null||head===void 0?void 0:head.value;};this.back=function(){return tail===null||tail===void 0?void 0:tail.value;};this.forEach=function(callback){var curNode=head;var index=0;while(curNode){if(curNode.value===undefined)throw new Error(\"unknown error\");callback(curNode.value,index++);curNode=curNode.next;}};this.getElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"pos must more then 0 and less then the list length\");var curNode=head;while(pos--){if(!curNode)break;curNode=curNode.next;}if(!curNode||curNode.value===undefined)throw new Error(\"unknown error\");return curNode.value;};this.eraseElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"erase pos must more then 0 and less then the list length\");if(pos===0)this.popFront();else if(pos===len-1)this.popBack();else{var curNode=head;while(pos--){if(!(curNode===null||curNode===void 0?void 0:curNode.next))throw new Error(\"unknown error\");curNode=curNode.next;}if(!curNode||!curNode.pre||!curNode.next){throw new Error(\"unknown error\");}var pre=curNode.pre;var next=curNode.next;next.pre=pre;pre.next=next;if(len>0)--len;}};this.eraseElementByValue=function(value){while(head&&head.value===value)this.popFront();while(tail&&tail.value===value)this.popBack();if(!head)return;var curNode=head;while(curNode){if(curNode.value===value){var pre=curNode.pre;var next=curNode.next;if(next)next.pre=pre;if(pre)pre.next=next;if(len>0)--len;}curNode=curNode.next;}};this.pushBack=function(element){if(element===null||element===undefined){throw new Error(\"you can't push null or undefined here\");}++len;var newTail=new LinkNode(element);if(!tail){head=tail=newTail;}else{tail.next=newTail;newTail.pre=tail;tail=newTail;}};this.popBack=function(){if(!tail)return;if(len>0)--len;if(!tail)return;if(head===tail){head=tail=undefined;}else{tail=tail.pre;if(tail)tail.next=undefined;}};this.setElementByPos=function(pos,element){if(element===null||element===undefined){throw new Error(\"you can't set null or undefined here\");}if(pos<0||pos>=len)throw new Error(\"pos must more then 0 and less then the list length\");var curNode=head;while(pos--){if(!curNode)throw new Error(\"unknown error\");curNode=curNode.next;}if(curNode)curNode.value=element;};/**\n     * @param {number} pos insert element before pos, should in [0, list.size]\n     * @param {any} element the element you want to insert\n     * @param {number} [num = 1] the nums you want to insert\n     */this.insert=function(pos,element,num){if(num===void 0){num=1;}if(element===null||element===undefined){throw new Error(\"you can't insert null or undefined here\");}if(pos<0||pos>len)throw new Error(\"insert pos must more then 0 and less then or equal to the list length\");if(num<0)throw new Error(\"insert size must more than 0\");if(pos===0){while(num--)this.pushFront(element);}else if(pos===len){while(num--)this.pushBack(element);}else{var curNode=head;for(var i=1;i<pos;++i){if(!(curNode===null||curNode===void 0?void 0:curNode.next))throw new Error(\"unknown error\");curNode=curNode===null||curNode===void 0?void 0:curNode.next;}if(!curNode){throw new Error(\"unknown error\");}var next=curNode.next;len+=num;while(num--){curNode.next=new LinkNode(element);curNode.next.pre=curNode;curNode=curNode.next;}curNode.next=next;if(next)next.pre=curNode;}};this.find=function(element){var curNode=head;while(curNode){if(curNode.value===element)return true;curNode=curNode.next;}return false;};this.reverse=function(){var pHead=head;var pTail=tail;var cnt=0;while(pHead&&pTail&&cnt*2<len){var tmp=pHead.value;pHead.value=pTail.value;pTail.value=tmp;pHead=pHead.next;pTail=pTail.pre;++cnt;}};this.unique=function(){var curNode=head;while(curNode){var tmpNode=curNode;while(tmpNode&&tmpNode.next&&tmpNode.value===tmpNode.next.value){tmpNode=tmpNode.next;if(len>0)--len;}curNode.next=tmpNode.next;if(curNode.next)curNode.next.pre=curNode;curNode=curNode.next;}};this.sort=function(cmp){var arr=[];this.forEach(function(element){arr.push(element);});arr.sort(cmp);var curNode=head;arr.forEach(function(element){if(curNode){curNode.value=element;curNode=curNode.next;}});};this.pushFront=function(element){if(element===null||element===undefined){throw new Error(\"you can't push null or undefined here\");}++len;var newHead=new LinkNode(element);if(!head){head=tail=newHead;}else{newHead.next=head;head.pre=newHead;head=newHead;}};this.popFront=function(){if(!head)return;if(len>0)--len;if(!head)return;if(head===tail){head=tail=undefined;}else{head=head.next;if(head)head.pre=undefined;}};/**\n     * merge two sorted lists\n     * @param list other list\n     */this.merge=function(list){var _this=this;var curNode=head;list.forEach(function(element){while(curNode&&curNode.value!==undefined&&curNode.value<=element){curNode=curNode.next;}if(curNode===undefined){_this.pushBack(element);curNode=tail;}else if(curNode===head){_this.pushFront(element);curNode=head;}else{++len;var pre=curNode.pre;if(pre){pre.next=new LinkNode(element);pre.next.pre=pre;pre.next.next=curNode;if(curNode)curNode.pre=pre.next;}}});};this[Symbol.iterator]=function(){return function(){var curNode;return __generator(this,function(_a){switch(_a.label){case 0:curNode=head;_a.label=1;case 1:if(!(curNode!==undefined))return[3/*break*/,3];if(!curNode.value)throw new Error(\"unknown error\");return[4/*yield*/,curNode.value];case 2:_a.sent();curNode=curNode.next;return[3/*break*/,1];case 3:return[2/*return*/];}});}();};container.forEach(function(element){return _this.pushBack(element);});Object.freeze(this);}Object.freeze(LinkList);exports.default=LinkList;},{}],30:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __values=this&&this.__values||function(o){var s=typeof Symbol===\"function\"&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&typeof o.length===\"number\")return{next:function(){if(o&&i>=o.length)o=void 0;return{value:o&&o[i++],done:!o};}};throw new TypeError(s?\"Object is not iterable.\":\"Symbol.iterator is not defined.\");};Object.defineProperty(exports,\"__esModule\",{value:true});var TreeNode_1=require(\"../Base/TreeNode\");function Map(container,cmp){var _this=this;if(container===void 0){container=[];}cmp=cmp||function(x,y){if(x<y)return-1;if(x>y)return 1;return 0;};var len=0;var root=new TreeNode_1.default();root.color=TreeNode_1.default.TreeNodeColorType.black;this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;root.key=root.value=undefined;root.leftChild=root.rightChild=root.brother=undefined;};var findSubTreeMinNode=function(curNode){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");return curNode.leftChild?findSubTreeMinNode(curNode.leftChild):curNode;};var findSubTreeMaxNode=function(curNode){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");return curNode.rightChild?findSubTreeMaxNode(curNode.rightChild):curNode;};this.front=function(){if(this.empty())return undefined;var minNode=findSubTreeMinNode(root);if(minNode.key===undefined||minNode.value===undefined)throw new Error(\"unknown error\");return{key:minNode.key,value:minNode.value};};this.back=function(){if(this.empty())return undefined;var maxNode=findSubTreeMaxNode(root);if(maxNode.key===undefined||maxNode.value===undefined)throw new Error(\"unknown error\");return{key:maxNode.key,value:maxNode.value};};this.forEach=function(callback){var e_1,_a;var index=0;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;callback(pair,index++);}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_1)throw e_1.error;}}};this.getElementByPos=function(pos){var e_2,_a;if(pos<0||pos>=this.size())throw new Error(\"pos must more than 0 and less than set's size\");var index=0;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var pair=_c.value;if(index===pos)return pair;++index;}}catch(e_2_1){e_2={error:e_2_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_2)throw e_2.error;}}throw new Error(\"unknown Error\");};var _lowerBound=function(curNode,key){if(!curNode||curNode.key===undefined||curNode.value===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult===0)return{key:curNode.key,value:curNode.value};if(cmpResult<0)return _lowerBound(curNode.rightChild,key);return _lowerBound(curNode.leftChild,key)||{key:curNode.key,value:curNode.value};};this.lowerBound=function(key){return _lowerBound(root,key);};var _upperBound=function(curNode,key){if(!curNode||curNode.key===undefined||curNode.value===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult<=0)return _upperBound(curNode.rightChild,key);return _upperBound(curNode.leftChild,key)||{key:curNode.key,value:curNode.value};};this.upperBound=function(key){return _upperBound(root,key);};var _reverseLowerBound=function(curNode,key){if(!curNode||curNode.key===undefined||curNode.value===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult===0)return{key:curNode.key,value:curNode.value};if(cmpResult>0)return _reverseLowerBound(curNode.leftChild,key);return _reverseLowerBound(curNode.rightChild,key)||{key:curNode.key,value:curNode.value};};this.reverseLowerBound=function(key){return _reverseLowerBound(root,key);};var _reverseUpperBound=function(curNode,key){if(!curNode||curNode.key===undefined||curNode.value===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult>=0)return _reverseUpperBound(curNode.leftChild,key);return _reverseUpperBound(curNode.rightChild,key)||{key:curNode.key,value:curNode.value};};this.reverseUpperBound=function(key){return _reverseUpperBound(root,key);};var eraseNodeSelfBalance=function(curNode){var parentNode=curNode.parent;if(!parentNode){if(curNode===root)return;throw new Error(\"unknown error\");}if(curNode.color===TreeNode_1.default.TreeNodeColorType.red){curNode.color=TreeNode_1.default.TreeNodeColorType.black;return;}var brotherNode=curNode.brother;if(!brotherNode)throw new Error(\"unknown error\");if(curNode===parentNode.leftChild){if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.black;parentNode.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=parentNode.rotateLeft();if(root===parentNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.black){if(brotherNode.rightChild&&brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=parentNode.color;parentNode.color=TreeNode_1.default.TreeNodeColorType.black;if(brotherNode.rightChild)brotherNode.rightChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=parentNode.rotateLeft();if(root===parentNode)root=newRoot;curNode.color=TreeNode_1.default.TreeNodeColorType.black;}else if((!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)&&brotherNode.leftChild&&brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;if(brotherNode.leftChild)brotherNode.leftChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=brotherNode.rotateRight();if(root===brotherNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&(!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;eraseNodeSelfBalance(parentNode);}}}else if(curNode===parentNode.rightChild){if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.black;parentNode.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=parentNode.rotateRight();if(root===parentNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.black){if(brotherNode.leftChild&&brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=parentNode.color;parentNode.color=TreeNode_1.default.TreeNodeColorType.black;if(brotherNode.leftChild)brotherNode.leftChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=parentNode.rotateRight();if(root===parentNode)root=newRoot;curNode.color=TreeNode_1.default.TreeNodeColorType.black;}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&brotherNode.rightChild&&brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;if(brotherNode.rightChild)brotherNode.rightChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=brotherNode.rotateLeft();if(root===brotherNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&(!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;eraseNodeSelfBalance(parentNode);}}}};var eraseNode=function(curNode){var swapNode=curNode;while(swapNode.leftChild||swapNode.rightChild){if(swapNode.rightChild){swapNode=findSubTreeMinNode(swapNode.rightChild);var tmpKey=curNode.key;curNode.key=swapNode.key;swapNode.key=tmpKey;var tmpValue=curNode.value;curNode.value=swapNode.value;swapNode.value=tmpValue;curNode=swapNode;}if(swapNode.leftChild){swapNode=findSubTreeMaxNode(swapNode.leftChild);var tmpKey=curNode.key;curNode.key=swapNode.key;swapNode.key=tmpKey;var tmpValue=curNode.value;curNode.value=swapNode.value;swapNode.value=tmpValue;curNode=swapNode;}}eraseNodeSelfBalance(swapNode);if(swapNode)swapNode.remove();--len;root.color=TreeNode_1.default.TreeNodeColorType.black;};var inOrderTraversal=function(curNode,callback){if(!curNode||curNode.key===undefined)return false;var ifReturn=inOrderTraversal(curNode.leftChild,callback);if(ifReturn)return true;if(callback(curNode))return true;return inOrderTraversal(curNode.rightChild,callback);};this.eraseElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"pos must more than 0 and less than set's size\");var index=0;inOrderTraversal(root,function(curNode){if(pos===index){eraseNode(curNode);return true;}++index;return false;});};this.eraseElementByKey=function(key){if(this.empty())return;var curNode=findElementPos(root,key);if(curNode===undefined||curNode.key===undefined||cmp(curNode.key,key)!==0)return;eraseNode(curNode);};var findInsertPos=function(curNode,element){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");var cmpResult=cmp(element,curNode.key);if(cmpResult<0){if(!curNode.leftChild){curNode.leftChild=new TreeNode_1.default();curNode.leftChild.parent=curNode;curNode.leftChild.brother=curNode.rightChild;if(curNode.rightChild)curNode.rightChild.brother=curNode.leftChild;return curNode.leftChild;}return findInsertPos(curNode.leftChild,element);}else if(cmpResult>0){if(!curNode.rightChild){curNode.rightChild=new TreeNode_1.default();curNode.rightChild.parent=curNode;curNode.rightChild.brother=curNode.leftChild;if(curNode.leftChild)curNode.leftChild.brother=curNode.rightChild;return curNode.rightChild;}return findInsertPos(curNode.rightChild,element);}return curNode;};var insertNodeSelfBalance=function(curNode){var parentNode=curNode.parent;if(!parentNode){if(curNode===root)return;throw new Error(\"unknown error\");}if(parentNode.color===TreeNode_1.default.TreeNodeColorType.black)return;if(parentNode.color===TreeNode_1.default.TreeNodeColorType.red){var uncleNode=parentNode.brother;var grandParent=parentNode.parent;if(!grandParent)throw new Error(\"unknown error\");if(uncleNode&&uncleNode.color===TreeNode_1.default.TreeNodeColorType.red){uncleNode.color=parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;insertNodeSelfBalance(grandParent);}else if(!uncleNode||uncleNode.color===TreeNode_1.default.TreeNodeColorType.black){if(parentNode===grandParent.leftChild){if(curNode===parentNode.leftChild){parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=grandParent.rotateRight();if(grandParent===root)root=newRoot;}else if(curNode===parentNode.rightChild){var newRoot=parentNode.rotateLeft();if(grandParent===root)root=newRoot;insertNodeSelfBalance(parentNode);}}else if(parentNode===grandParent.rightChild){if(curNode===parentNode.leftChild){var newRoot=parentNode.rotateRight();if(grandParent===root)root=newRoot;insertNodeSelfBalance(parentNode);}else if(curNode===parentNode.rightChild){parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=grandParent.rotateLeft();if(grandParent===root)root=newRoot;}}}}};this.setElement=function(key,value){if(key===null||key===undefined){throw new Error(\"to avoid some unnecessary errors, we don't suggest you insert null or undefined here\");}if(value===null||value===undefined){this.eraseElementByKey(key);return;}if(this.empty()){++len;root.key=key;root.value=value;root.color=TreeNode_1.default.TreeNodeColorType.black;return;}var curNode=findInsertPos(root,key);if(curNode.key!==undefined&&cmp(curNode.key,key)===0){curNode.value=value;return;}++len;curNode.key=key;curNode.value=value;insertNodeSelfBalance(curNode);root.color=TreeNode_1.default.TreeNodeColorType.black;};var findElementPos=function(curNode,element){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(element,curNode.key);if(cmpResult<0)return findElementPos(curNode.leftChild,element);else if(cmpResult>0)return findElementPos(curNode.rightChild,element);return curNode;};this.find=function(element){return!!findElementPos(root,element);};this.getElementByKey=function(element){var curNode=findElementPos(root,element);if((curNode===null||curNode===void 0?void 0:curNode.key)===undefined||(curNode===null||curNode===void 0?void 0:curNode.value)===undefined)throw new Error(\"unknown error\");return curNode.value;};// waiting for optimization, this is O(mlog(n+m)) algorithm now, but we expect it to be O(mlog(n/m+1)).\n// (https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Set_operations_and_bulk_operations)\nthis.union=function(other){var _this=this;other.forEach(function(_a){var key=_a.key,value=_a.value;return _this.setElement(key,value);});};this.getHeight=function(){if(this.empty())return 0;var traversal=function(curNode){if(!curNode)return 1;return Math.max(traversal(curNode.leftChild),traversal(curNode.rightChild))+1;};return traversal(root);};var iterationFunc=function(curNode){return __generator(this,function(_a){switch(_a.label){case 0:if(!curNode||curNode.key===undefined||curNode.value===undefined)return[2/*return*/];return[5/*yield**/,__values(iterationFunc(curNode.leftChild))];case 1:_a.sent();return[4/*yield*/,{key:curNode.key,value:curNode.value}];case 2:_a.sent();return[5/*yield**/,__values(iterationFunc(curNode.rightChild))];case 3:_a.sent();return[2/*return*/];}});};this[Symbol.iterator]=function(){return iterationFunc(root);};container.forEach(function(_a){var key=_a.key,value=_a.value;return _this.setElement(key,value);});Object.freeze(this);}Object.freeze(Map);exports.default=Map;},{\"../Base/TreeNode\":25}],31:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});/**\n * @param container\n * @param cmp default cmp will generate a max heap\n * @constructor\n */function PriorityQueue(container,cmp){if(container===void 0){container=[];}cmp=cmp||function(x,y){if(x>y)return-1;if(x<y)return 1;return 0;};var priorityQueue=[];container.forEach(function(element){return priorityQueue.push(element);});var len=priorityQueue.length;var swap=function(x,y){if(x<0||x>=len)throw new Error(\"unknown error\");if(y<0||y>=len)throw new Error(\"unknown error\");var tmp=priorityQueue[x];priorityQueue[x]=priorityQueue[y];priorityQueue[y]=tmp;};var adjust=function(parent){if(parent<0||parent>=len)throw new Error(\"unknown error\");var leftChild=parent*2+1;var rightChild=parent*2+2;if(leftChild<len&&cmp(priorityQueue[parent],priorityQueue[leftChild])>0)swap(parent,leftChild);if(rightChild<len&&cmp(priorityQueue[parent],priorityQueue[rightChild])>0)swap(parent,rightChild);};(function(){for(var parent_1=Math.floor((len-1)/2);parent_1>=0;--parent_1){var curParent=parent_1;var curChild=curParent*2+1;while(curChild<len){var leftChild=curChild;var rightChild=leftChild+1;var minChild=leftChild;if(rightChild<len&&cmp(priorityQueue[leftChild],priorityQueue[rightChild])>0)minChild=rightChild;if(cmp(priorityQueue[curParent],priorityQueue[minChild])<=0)break;swap(curParent,minChild);curParent=minChild;curChild=curParent*2+1;}}})();this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;priorityQueue.length=0;};this.push=function(element){priorityQueue.push(element);++len;if(len===1)return;var curNode=len-1;while(curNode>0){var parent_2=Math.floor((curNode-1)/2);if(cmp(priorityQueue[parent_2],element)<=0)break;adjust(parent_2);curNode=parent_2;}};this.pop=function(){if(this.empty())return;if(this.size()===1){--len;return;}var last=priorityQueue[len-1];--len;var parent=0;while(parent<this.size()){var leftChild=parent*2+1;var rightChild=parent*2+2;if(leftChild>=this.size())break;var minChild=leftChild;if(rightChild<this.size()&&cmp(priorityQueue[leftChild],priorityQueue[rightChild])>0)minChild=rightChild;if(cmp(priorityQueue[minChild],last)>=0)break;priorityQueue[parent]=priorityQueue[minChild];parent=minChild;}priorityQueue[parent]=last;};this.top=function(){return priorityQueue[0];};Object.freeze(this);}Object.freeze(PriorityQueue);exports.default=PriorityQueue;},{}],32:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var LinkList_1=require(\"../LinkList/LinkList\");function Queue(container){if(container===void 0){container=[];}var queue=new LinkList_1.default(container);this.size=function(){return queue.size();};this.empty=function(){return queue.empty();};this.clear=function(){queue.clear();};this.push=function(element){queue.pushBack(element);};this.pop=function(){queue.popFront();};this.front=function(){return queue.front();};Object.freeze(this);}Object.freeze(Queue);exports.default=Queue;},{\"../LinkList/LinkList\":29}],33:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __values=this&&this.__values||function(o){var s=typeof Symbol===\"function\"&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&typeof o.length===\"number\")return{next:function(){if(o&&i>=o.length)o=void 0;return{value:o&&o[i++],done:!o};}};throw new TypeError(s?\"Object is not iterable.\":\"Symbol.iterator is not defined.\");};Object.defineProperty(exports,\"__esModule\",{value:true});var TreeNode_1=require(\"../Base/TreeNode\");function Set(container,cmp){var _this=this;if(container===void 0){container=[];}cmp=cmp||function(x,y){if(x<y)return-1;if(x>y)return 1;return 0;};var len=0;var root=new TreeNode_1.default();root.color=TreeNode_1.default.TreeNodeColorType.black;this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;root.key=undefined;root.leftChild=root.rightChild=root.brother=root.parent=undefined;root.color=TreeNode_1.default.TreeNodeColorType.black;};var findSubTreeMinNode=function(curNode){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");return curNode.leftChild?findSubTreeMinNode(curNode.leftChild):curNode;};var findSubTreeMaxNode=function(curNode){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");return curNode.rightChild?findSubTreeMaxNode(curNode.rightChild):curNode;};this.front=function(){if(this.empty())return undefined;var minNode=findSubTreeMinNode(root);return minNode.key;};this.back=function(){if(this.empty())return undefined;var maxNode=findSubTreeMaxNode(root);return maxNode.key;};this.forEach=function(callback){var e_1,_a;var index=0;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var element=_c.value;callback(element,index++);}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_1)throw e_1.error;}}};this.getElementByPos=function(pos){var e_2,_a;if(pos<0||pos>=this.size())throw new Error(\"pos must more than 0 and less than set's size\");var index=0;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var element=_c.value;if(index===pos)return element;++index;}}catch(e_2_1){e_2={error:e_2_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_2)throw e_2.error;}}throw new Error(\"unknown error\");};var eraseNodeSelfBalance=function(curNode){var parentNode=curNode.parent;if(!parentNode){if(curNode===root)return;throw new Error(\"unknown error\");}if(curNode.color===TreeNode_1.default.TreeNodeColorType.red){curNode.color=TreeNode_1.default.TreeNodeColorType.black;return;}var brotherNode=curNode.brother;if(!brotherNode)throw new Error(\"unknown error\");if(curNode===parentNode.leftChild){if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.black;parentNode.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=parentNode.rotateLeft();if(root===parentNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.black){if(brotherNode.rightChild&&brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=parentNode.color;parentNode.color=TreeNode_1.default.TreeNodeColorType.black;if(brotherNode.rightChild)brotherNode.rightChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=parentNode.rotateLeft();if(root===parentNode)root=newRoot;curNode.color=TreeNode_1.default.TreeNodeColorType.black;}else if((!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)&&brotherNode.leftChild&&brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;if(brotherNode.leftChild)brotherNode.leftChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=brotherNode.rotateRight();if(root===brotherNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&(!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;eraseNodeSelfBalance(parentNode);}}}else if(curNode===parentNode.rightChild){if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.black;parentNode.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=parentNode.rotateRight();if(root===parentNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if(brotherNode.color===TreeNode_1.default.TreeNodeColorType.black){if(brotherNode.leftChild&&brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=parentNode.color;parentNode.color=TreeNode_1.default.TreeNodeColorType.black;if(brotherNode.leftChild)brotherNode.leftChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=parentNode.rotateRight();if(root===parentNode)root=newRoot;curNode.color=TreeNode_1.default.TreeNodeColorType.black;}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&brotherNode.rightChild&&brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.red){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;if(brotherNode.rightChild)brotherNode.rightChild.color=TreeNode_1.default.TreeNodeColorType.black;var newRoot=brotherNode.rotateLeft();if(root===brotherNode)root=newRoot;eraseNodeSelfBalance(curNode);}else if((!brotherNode.leftChild||brotherNode.leftChild.color===TreeNode_1.default.TreeNodeColorType.black)&&(!brotherNode.rightChild||brotherNode.rightChild.color===TreeNode_1.default.TreeNodeColorType.black)){brotherNode.color=TreeNode_1.default.TreeNodeColorType.red;eraseNodeSelfBalance(parentNode);}}}};var eraseNode=function(curNode){var swapNode=curNode;while(swapNode.leftChild||swapNode.rightChild){if(swapNode.rightChild){swapNode=findSubTreeMinNode(swapNode.rightChild);var tmpKey=curNode.key;curNode.key=swapNode.key;swapNode.key=tmpKey;curNode=swapNode;}if(swapNode.leftChild){swapNode=findSubTreeMaxNode(swapNode.leftChild);var tmpKey=curNode.key;curNode.key=swapNode.key;swapNode.key=tmpKey;curNode=swapNode;}}eraseNodeSelfBalance(swapNode);if(swapNode)swapNode.remove();--len;root.color=TreeNode_1.default.TreeNodeColorType.black;};var inOrderTraversal=function(curNode,callback){if(!curNode||curNode.key===undefined)return false;var ifReturn=inOrderTraversal(curNode.leftChild,callback);if(ifReturn)return true;if(callback(curNode))return true;return inOrderTraversal(curNode.rightChild,callback);};this.eraseElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"pos must more than 0 and less than set's size\");var index=0;inOrderTraversal(root,function(curNode){if(pos===index){eraseNode(curNode);return true;}++index;return false;});};this.eraseElementByValue=function(value){if(this.empty())return;var curNode=findElementPos(root,value);if(curNode===undefined||curNode.key===undefined||cmp(curNode.key,value)!==0)return;eraseNode(curNode);};var findInsertPos=function(curNode,element){if(!curNode||curNode.key===undefined)throw new Error(\"unknown error\");var cmpResult=cmp(element,curNode.key);if(cmpResult<0){if(!curNode.leftChild){curNode.leftChild=new TreeNode_1.default();curNode.leftChild.parent=curNode;curNode.leftChild.brother=curNode.rightChild;if(curNode.rightChild)curNode.rightChild.brother=curNode.leftChild;return curNode.leftChild;}return findInsertPos(curNode.leftChild,element);}else if(cmpResult>0){if(!curNode.rightChild){curNode.rightChild=new TreeNode_1.default();curNode.rightChild.parent=curNode;curNode.rightChild.brother=curNode.leftChild;if(curNode.leftChild)curNode.leftChild.brother=curNode.rightChild;return curNode.rightChild;}return findInsertPos(curNode.rightChild,element);}return curNode;};var insertNodeSelfBalance=function(curNode){var parentNode=curNode.parent;if(!parentNode){if(curNode===root)return;throw new Error(\"unknown error\");}if(parentNode.color===TreeNode_1.default.TreeNodeColorType.black)return;if(parentNode.color===TreeNode_1.default.TreeNodeColorType.red){var uncleNode=parentNode.brother;var grandParent=parentNode.parent;if(!grandParent)throw new Error(\"unknown error\");if(uncleNode&&uncleNode.color===TreeNode_1.default.TreeNodeColorType.red){uncleNode.color=parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;insertNodeSelfBalance(grandParent);}else if(!uncleNode||uncleNode.color===TreeNode_1.default.TreeNodeColorType.black){if(parentNode===grandParent.leftChild){if(curNode===parentNode.leftChild){parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=grandParent.rotateRight();if(grandParent===root)root=newRoot;}else if(curNode===parentNode.rightChild){var newRoot=parentNode.rotateLeft();if(grandParent===root)root=newRoot;insertNodeSelfBalance(parentNode);}}else if(parentNode===grandParent.rightChild){if(curNode===parentNode.leftChild){var newRoot=parentNode.rotateRight();if(grandParent===root)root=newRoot;insertNodeSelfBalance(parentNode);}else if(curNode===parentNode.rightChild){parentNode.color=TreeNode_1.default.TreeNodeColorType.black;grandParent.color=TreeNode_1.default.TreeNodeColorType.red;var newRoot=grandParent.rotateLeft();if(grandParent===root)root=newRoot;}}}}};this.insert=function(element){if(element===null||element===undefined){throw new Error(\"to avoid some unnecessary errors, we don't suggest you insert null or undefined here\");}if(this.empty()){++len;root.key=element;root.color=TreeNode_1.default.TreeNodeColorType.black;return;}var curNode=findInsertPos(root,element);if(curNode.key!==undefined&&cmp(curNode.key,element)===0)return;++len;curNode.key=element;insertNodeSelfBalance(curNode);root.color=TreeNode_1.default.TreeNodeColorType.black;};var findElementPos=function(curNode,element){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(element,curNode.key);if(cmpResult<0)return findElementPos(curNode.leftChild,element);else if(cmpResult>0)return findElementPos(curNode.rightChild,element);return curNode;};this.find=function(element){var curNode=findElementPos(root,element);return curNode!==undefined&&curNode.key!==undefined&&cmp(curNode.key,element)===0;};var _lowerBound=function(curNode,key){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult===0)return curNode.key;if(cmpResult<0)return _lowerBound(curNode.rightChild,key);var res=_lowerBound(curNode.leftChild,key);if(res!==undefined)return res;return curNode.key;};this.lowerBound=function(key){return _lowerBound(root,key);};var _upperBound=function(curNode,key){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult<=0)return _upperBound(curNode.rightChild,key);var res=_upperBound(curNode.leftChild,key);if(res!==undefined)return res;return curNode.key;};this.upperBound=function(key){return _upperBound(root,key);};var _reverseLowerBound=function(curNode,key){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult===0)return curNode.key;if(cmpResult>0)return _reverseLowerBound(curNode.leftChild,key);var res=_reverseLowerBound(curNode.rightChild,key);if(res!==undefined)return res;return curNode.key;};this.reverseLowerBound=function(key){return _reverseLowerBound(root,key);};var _reverseUpperBound=function(curNode,key){if(!curNode||curNode.key===undefined)return undefined;var cmpResult=cmp(curNode.key,key);if(cmpResult>=0)return _reverseUpperBound(curNode.leftChild,key);var res=_reverseUpperBound(curNode.rightChild,key);if(res!==undefined)return res;return curNode.key;};this.reverseUpperBound=function(key){return _reverseUpperBound(root,key);};// waiting for optimization, this is O(mlog(n+m)) algorithm now, but we expect it to be O(mlog(n/m+1)).\n// (https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Set_operations_and_bulk_operations)\nthis.union=function(other){var _this=this;other.forEach(function(element){return _this.insert(element);});};this.getHeight=function(){if(this.empty())return 0;var traversal=function(curNode){if(!curNode)return 1;return Math.max(traversal(curNode.leftChild),traversal(curNode.rightChild))+1;};return traversal(root);};var iterationFunc=function(curNode){return __generator(this,function(_a){switch(_a.label){case 0:if(!curNode||curNode.key===undefined)return[2/*return*/];return[5/*yield**/,__values(iterationFunc(curNode.leftChild))];case 1:_a.sent();return[4/*yield*/,curNode.key];case 2:_a.sent();return[5/*yield**/,__values(iterationFunc(curNode.rightChild))];case 3:_a.sent();return[2/*return*/];}});};this[Symbol.iterator]=function(){return iterationFunc(root);};container.forEach(function(element){return _this.insert(element);});Object.freeze(this);}Object.freeze(Set);exports.default=Set;},{\"../Base/TreeNode\":25}],34:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});function Stack(container){var _this=this;if(container===void 0){container=[];}var len=0;var stack=[];this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;stack.length=0;};this.push=function(element){stack.push(element);++len;};this.pop=function(){stack.pop();if(len>0)--len;};this.top=function(){return stack[len-1];};container.forEach(function(element){return _this.push(element);});Object.freeze(this);}Object.freeze(Stack);exports.default=Stack;},{}],35:[function(require,module,exports){\"use strict\";var __generator=this&&this.__generator||function(thisArg,body){var _={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1];},trys:[],ops:[]},f,y,t,g;return g={next:verb(0),\"throw\":verb(1),\"return\":verb(2)},typeof Symbol===\"function\"&&(g[Symbol.iterator]=function(){return this;}),g;function verb(n){return function(v){return step([n,v]);};}function step(op){if(f)throw new TypeError(\"Generator is already executing.\");while(_)try{if(f=1,y&&(t=op[0]&2?y[\"return\"]:op[0]?y[\"throw\"]||((t=y[\"return\"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break;}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break;}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break;}if(t[2])_.ops.pop();_.trys.pop();continue;}op=body.call(thisArg,_);}catch(e){op=[6,e];y=0;}finally{f=t=0;}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true};}};var __read=this&&this.__read||function(o,n){var m=typeof Symbol===\"function\"&&o[Symbol.iterator];if(!m)return o;var i=m.call(o),r,ar=[],e;try{while((n===void 0||n-->0)&&!(r=i.next()).done)ar.push(r.value);}catch(error){e={error:error};}finally{try{if(r&&!r.done&&(m=i[\"return\"]))m.call(i);}finally{if(e)throw e.error;}}return ar;};var __spreadArray=this&&this.__spreadArray||function(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++){if(ar||!(i in from)){if(!ar)ar=Array.prototype.slice.call(from,0,i);ar[i]=from[i];}}return to.concat(ar||Array.prototype.slice.call(from));};var __values=this&&this.__values||function(o){var s=typeof Symbol===\"function\"&&Symbol.iterator,m=s&&o[s],i=0;if(m)return m.call(o);if(o&&typeof o.length===\"number\")return{next:function(){if(o&&i>=o.length)o=void 0;return{value:o&&o[i++],done:!o};}};throw new TypeError(s?\"Object is not iterable.\":\"Symbol.iterator is not defined.\");};Object.defineProperty(exports,\"__esModule\",{value:true});function Vector(container){var _this=this;if(container===void 0){container=[];}var len=0;var vector=[];this.size=function(){return len;};this.empty=function(){return len===0;};this.clear=function(){len=0;vector.length=0;};this.front=function(){if(this.empty())return undefined;return vector[0];};this.back=function(){if(this.empty())return undefined;return vector[len-1];};this.forEach=function(callback){vector.forEach(callback);};this.getElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"pos must more than 0 and less than vector's size\");return vector[pos];};this.eraseElementByPos=function(pos){if(pos<0||pos>=len)throw new Error(\"pos must more than 0 and less than vector's size\");for(var i=pos;i<len-1;++i)vector[i]=vector[i+1];this.popBack();};this.eraseElementByValue=function(value){var newArr=[];this.forEach(function(element){if(element!==value)newArr.push(element);});newArr.forEach(function(element,index){vector[index]=element;});var newLen=newArr.length;while(len>newLen)this.popBack();};this.pushBack=function(element){vector.push(element);++len;};this.popBack=function(){vector.pop();if(len>0)--len;};this.setElementByPos=function(pos,element){if(pos<0||pos>=len)throw new Error(\"pos must more than 0 and less than vector's size\");vector[pos]=element;};this.insert=function(pos,element,num){if(num===void 0){num=1;}if(pos<0||pos>len)throw new Error(\"pos must more than 0 and less than or equal to vector's size\");vector.splice.apply(vector,__spreadArray([pos,0],__read(new Array(num).fill(element)),false));len+=num;};this.find=function(element){return vector.includes(element);};this.reverse=function(){vector.reverse();};this.unique=function(){var pre;var newArr=[];this.forEach(function(element,index){if(index===0||element!==pre){newArr.push(element);pre=element;}});newArr.forEach(function(element,index){vector[index]=element;});var newLen=newArr.length;while(len>newLen)this.popBack();};this.sort=function(cmp){vector.sort(cmp);};this[Symbol.iterator]=function(){return function(){return __generator(this,function(_a){switch(_a.label){case 0:return[5/*yield**/,__values(vector)];case 1:return[2/*return*/,_a.sent()];}});}();};container.forEach(function(element){return _this.pushBack(element);});Object.freeze(this);}Object.freeze(Vector);exports.default=Vector;},{}],36:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.HashMap=exports.HashSet=exports.Map=exports.Set=exports.PriorityQueue=exports.Deque=exports.LinkList=exports.Queue=exports.Stack=exports.Vector=void 0;var Vector_1=require(\"./Vector/Vector\");exports.Vector=Vector_1.default;var Stack_1=require(\"./Stack/Stack\");exports.Stack=Stack_1.default;var Queue_1=require(\"./Queue/Queue\");exports.Queue=Queue_1.default;var LinkList_1=require(\"./LinkList/LinkList\");exports.LinkList=LinkList_1.default;var Deque_1=require(\"./Deque/Deque\");exports.Deque=Deque_1.default;var PriorityQueue_1=require(\"./PriorityQueue/PriorityQueue\");exports.PriorityQueue=PriorityQueue_1.default;var Set_1=require(\"./Set/Set\");exports.Set=Set_1.default;var Map_1=require(\"./Map/Map\");exports.Map=Map_1.default;var HashSet_1=require(\"./HashSet/HashSet\");exports.HashSet=HashSet_1.default;var HashMap_1=require(\"./HashMap/HashMap\");exports.HashMap=HashMap_1.default;},{\"./Deque/Deque\":26,\"./HashMap/HashMap\":27,\"./HashSet/HashSet\":28,\"./LinkList/LinkList\":29,\"./Map/Map\":30,\"./PriorityQueue/PriorityQueue\":31,\"./Queue/Queue\":32,\"./Set/Set\":33,\"./Stack/Stack\":34,\"./Vector/Vector\":35}],37:[function(require,module,exports){'use strict';// A linked list to keep track of recently-used-ness\nconst Yallist=require('yallist');const MAX=Symbol('max');const LENGTH=Symbol('length');const LENGTH_CALCULATOR=Symbol('lengthCalculator');const ALLOW_STALE=Symbol('allowStale');const MAX_AGE=Symbol('maxAge');const DISPOSE=Symbol('dispose');const NO_DISPOSE_ON_SET=Symbol('noDisposeOnSet');const LRU_LIST=Symbol('lruList');const CACHE=Symbol('cache');const UPDATE_AGE_ON_GET=Symbol('updateAgeOnGet');const naiveLength=()=>1;// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest.  the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node.  This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache{constructor(options){if(typeof options==='number')options={max:options};if(!options)options={};if(options.max&&(typeof options.max!=='number'||options.max<0))throw new TypeError('max must be a non-negative number');// Kind of weird to have a default max of Infinity, but oh well.\nconst max=this[MAX]=options.max||Infinity;const lc=options.length||naiveLength;this[LENGTH_CALCULATOR]=typeof lc!=='function'?naiveLength:lc;this[ALLOW_STALE]=options.stale||false;if(options.maxAge&&typeof options.maxAge!=='number')throw new TypeError('maxAge must be a number');this[MAX_AGE]=options.maxAge||0;this[DISPOSE]=options.dispose;this[NO_DISPOSE_ON_SET]=options.noDisposeOnSet||false;this[UPDATE_AGE_ON_GET]=options.updateAgeOnGet||false;this.reset();}// resize the cache when the max changes.\nset max(mL){if(typeof mL!=='number'||mL<0)throw new TypeError('max must be a non-negative number');this[MAX]=mL||Infinity;trim(this);}get max(){return this[MAX];}set allowStale(allowStale){this[ALLOW_STALE]=!!allowStale;}get allowStale(){return this[ALLOW_STALE];}set maxAge(mA){if(typeof mA!=='number')throw new TypeError('maxAge must be a non-negative number');this[MAX_AGE]=mA;trim(this);}get maxAge(){return this[MAX_AGE];}// resize the cache when the lengthCalculator changes.\nset lengthCalculator(lC){if(typeof lC!=='function')lC=naiveLength;if(lC!==this[LENGTH_CALCULATOR]){this[LENGTH_CALCULATOR]=lC;this[LENGTH]=0;this[LRU_LIST].forEach(hit=>{hit.length=this[LENGTH_CALCULATOR](hit.value,hit.key);this[LENGTH]+=hit.length;});}trim(this);}get lengthCalculator(){return this[LENGTH_CALCULATOR];}get length(){return this[LENGTH];}get itemCount(){return this[LRU_LIST].length;}rforEach(fn,thisp){thisp=thisp||this;for(let walker=this[LRU_LIST].tail;walker!==null;){const prev=walker.prev;forEachStep(this,fn,walker,thisp);walker=prev;}}forEach(fn,thisp){thisp=thisp||this;for(let walker=this[LRU_LIST].head;walker!==null;){const next=walker.next;forEachStep(this,fn,walker,thisp);walker=next;}}keys(){return this[LRU_LIST].toArray().map(k=>k.key);}values(){return this[LRU_LIST].toArray().map(k=>k.value);}reset(){if(this[DISPOSE]&&this[LRU_LIST]&&this[LRU_LIST].length){this[LRU_LIST].forEach(hit=>this[DISPOSE](hit.key,hit.value));}this[CACHE]=new Map();// hash of items by key\nthis[LRU_LIST]=new Yallist();// list of items in order of use recency\nthis[LENGTH]=0;// length of items in the list\n}dump(){return this[LRU_LIST].map(hit=>isStale(this,hit)?false:{k:hit.key,v:hit.value,e:hit.now+(hit.maxAge||0)}).toArray().filter(h=>h);}dumpLru(){return this[LRU_LIST];}set(key,value,maxAge){maxAge=maxAge||this[MAX_AGE];if(maxAge&&typeof maxAge!=='number')throw new TypeError('maxAge must be a number');const now=maxAge?Date.now():0;const len=this[LENGTH_CALCULATOR](value,key);if(this[CACHE].has(key)){if(len>this[MAX]){del(this,this[CACHE].get(key));return false;}const node=this[CACHE].get(key);const item=node.value;// dispose of the old one before overwriting\n// split out into 2 ifs for better coverage tracking\nif(this[DISPOSE]){if(!this[NO_DISPOSE_ON_SET])this[DISPOSE](key,item.value);}item.now=now;item.maxAge=maxAge;item.value=value;this[LENGTH]+=len-item.length;item.length=len;this.get(key);trim(this);return true;}const hit=new Entry(key,value,len,now,maxAge);// oversized objects fall out of cache automatically.\nif(hit.length>this[MAX]){if(this[DISPOSE])this[DISPOSE](key,value);return false;}this[LENGTH]+=hit.length;this[LRU_LIST].unshift(hit);this[CACHE].set(key,this[LRU_LIST].head);trim(this);return true;}has(key){if(!this[CACHE].has(key))return false;const hit=this[CACHE].get(key).value;return!isStale(this,hit);}get(key){return get(this,key,true);}peek(key){return get(this,key,false);}pop(){const node=this[LRU_LIST].tail;if(!node)return null;del(this,node);return node.value;}del(key){del(this,this[CACHE].get(key));}load(arr){// reset the cache\nthis.reset();const now=Date.now();// A previous serialized cache has the most recent items first\nfor(let l=arr.length-1;l>=0;l--){const hit=arr[l];const expiresAt=hit.e||0;if(expiresAt===0)// the item was created without expiration in a non aged cache\nthis.set(hit.k,hit.v);else{const maxAge=expiresAt-now;// dont add already expired items\nif(maxAge>0){this.set(hit.k,hit.v,maxAge);}}}}prune(){this[CACHE].forEach((value,key)=>get(this,key,false));}}const get=(self,key,doUse)=>{const node=self[CACHE].get(key);if(node){const hit=node.value;if(isStale(self,hit)){del(self,node);if(!self[ALLOW_STALE])return undefined;}else{if(doUse){if(self[UPDATE_AGE_ON_GET])node.value.now=Date.now();self[LRU_LIST].unshiftNode(node);}}return hit.value;}};const isStale=(self,hit)=>{if(!hit||!hit.maxAge&&!self[MAX_AGE])return false;const diff=Date.now()-hit.now;return hit.maxAge?diff>hit.maxAge:self[MAX_AGE]&&diff>self[MAX_AGE];};const trim=self=>{if(self[LENGTH]>self[MAX]){for(let walker=self[LRU_LIST].tail;self[LENGTH]>self[MAX]&&walker!==null;){// We know that we're about to delete this one, and also\n// what the next least recently used key will be, so just\n// go ahead and set it now.\nconst prev=walker.prev;del(self,walker);walker=prev;}}};const del=(self,node)=>{if(node){const hit=node.value;if(self[DISPOSE])self[DISPOSE](hit.key,hit.value);self[LENGTH]-=hit.length;self[CACHE].delete(hit.key);self[LRU_LIST].removeNode(node);}};class Entry{constructor(key,value,length,now,maxAge){this.key=key;this.value=value;this.length=length;this.now=now;this.maxAge=maxAge||0;}}const forEachStep=(self,fn,node,thisp)=>{let hit=node.value;if(isStale(self,hit)){del(self,node);if(!self[ALLOW_STALE])hit=undefined;}if(hit)fn.call(thisp,hit.value,hit.key,self);};module.exports=LRUCache;},{\"yallist\":83}],38:[function(require,module,exports){(function(Buffer){(function(){/* Protocol - protocol constants */const protocol=module.exports;/* Command code => mnemonic */protocol.types={0:'reserved',1:'connect',2:'connack',3:'publish',4:'puback',5:'pubrec',6:'pubrel',7:'pubcomp',8:'subscribe',9:'suback',10:'unsubscribe',11:'unsuback',12:'pingreq',13:'pingresp',14:'disconnect',15:'auth'};/* Mnemonic => Command code */protocol.codes={};for(const k in protocol.types){const v=protocol.types[k];protocol.codes[v]=k;}/* Header */protocol.CMD_SHIFT=4;protocol.CMD_MASK=0xF0;protocol.DUP_MASK=0x08;protocol.QOS_MASK=0x03;protocol.QOS_SHIFT=1;protocol.RETAIN_MASK=0x01;/* Length */protocol.VARBYTEINT_MASK=0x7F;protocol.VARBYTEINT_FIN_MASK=0x80;protocol.VARBYTEINT_MAX=268435455;/* Connack */protocol.SESSIONPRESENT_MASK=0x01;protocol.SESSIONPRESENT_HEADER=Buffer.from([protocol.SESSIONPRESENT_MASK]);protocol.CONNACK_HEADER=Buffer.from([protocol.codes.connack<<protocol.CMD_SHIFT]);/* Connect */protocol.USERNAME_MASK=0x80;protocol.PASSWORD_MASK=0x40;protocol.WILL_RETAIN_MASK=0x20;protocol.WILL_QOS_MASK=0x18;protocol.WILL_QOS_SHIFT=3;protocol.WILL_FLAG_MASK=0x04;protocol.CLEAN_SESSION_MASK=0x02;protocol.CONNECT_HEADER=Buffer.from([protocol.codes.connect<<protocol.CMD_SHIFT]);/* Properties */protocol.properties={sessionExpiryInterval:17,willDelayInterval:24,receiveMaximum:33,maximumPacketSize:39,topicAliasMaximum:34,requestResponseInformation:25,requestProblemInformation:23,userProperties:38,authenticationMethod:21,authenticationData:22,payloadFormatIndicator:1,messageExpiryInterval:2,contentType:3,responseTopic:8,correlationData:9,maximumQoS:36,retainAvailable:37,assignedClientIdentifier:18,reasonString:31,wildcardSubscriptionAvailable:40,subscriptionIdentifiersAvailable:41,sharedSubscriptionAvailable:42,serverKeepAlive:19,responseInformation:26,serverReference:28,topicAlias:35,subscriptionIdentifier:11};protocol.propertiesCodes={};for(const prop in protocol.properties){const id=protocol.properties[prop];protocol.propertiesCodes[id]=prop;}protocol.propertiesTypes={sessionExpiryInterval:'int32',willDelayInterval:'int32',receiveMaximum:'int16',maximumPacketSize:'int32',topicAliasMaximum:'int16',requestResponseInformation:'byte',requestProblemInformation:'byte',userProperties:'pair',authenticationMethod:'string',authenticationData:'binary',payloadFormatIndicator:'byte',messageExpiryInterval:'int32',contentType:'string',responseTopic:'string',correlationData:'binary',maximumQoS:'int8',retainAvailable:'byte',assignedClientIdentifier:'string',reasonString:'string',wildcardSubscriptionAvailable:'byte',subscriptionIdentifiersAvailable:'byte',sharedSubscriptionAvailable:'byte',serverKeepAlive:'int16',responseInformation:'string',serverReference:'string',topicAlias:'int16',subscriptionIdentifier:'var'};function genHeader(type){return[0,1,2].map(qos=>{return[0,1].map(dup=>{return[0,1].map(retain=>{const buf=Buffer.alloc(1);buf.writeUInt8(protocol.codes[type]<<protocol.CMD_SHIFT|(dup?protocol.DUP_MASK:0)|qos<<protocol.QOS_SHIFT|retain,0,true);return buf;});});});}/* Publish */protocol.PUBLISH_HEADER=genHeader('publish');/* Subscribe */protocol.SUBSCRIBE_HEADER=genHeader('subscribe');protocol.SUBSCRIBE_OPTIONS_QOS_MASK=0x03;protocol.SUBSCRIBE_OPTIONS_NL_MASK=0x01;protocol.SUBSCRIBE_OPTIONS_NL_SHIFT=2;protocol.SUBSCRIBE_OPTIONS_RAP_MASK=0x01;protocol.SUBSCRIBE_OPTIONS_RAP_SHIFT=3;protocol.SUBSCRIBE_OPTIONS_RH_MASK=0x03;protocol.SUBSCRIBE_OPTIONS_RH_SHIFT=4;protocol.SUBSCRIBE_OPTIONS_RH=[0x00,0x10,0x20];protocol.SUBSCRIBE_OPTIONS_NL=0x04;protocol.SUBSCRIBE_OPTIONS_RAP=0x08;protocol.SUBSCRIBE_OPTIONS_QOS=[0x00,0x01,0x02];/* Unsubscribe */protocol.UNSUBSCRIBE_HEADER=genHeader('unsubscribe');/* Confirmations */protocol.ACKS={unsuback:genHeader('unsuback'),puback:genHeader('puback'),pubcomp:genHeader('pubcomp'),pubrel:genHeader('pubrel'),pubrec:genHeader('pubrec')};protocol.SUBACK_HEADER=Buffer.from([protocol.codes.suback<<protocol.CMD_SHIFT]);/* Protocol versions */protocol.VERSION3=Buffer.from([3]);protocol.VERSION4=Buffer.from([4]);protocol.VERSION5=Buffer.from([5]);protocol.VERSION131=Buffer.from([131]);protocol.VERSION132=Buffer.from([132]);/* QoS */protocol.QOS=[0,1,2].map(qos=>{return Buffer.from([qos]);});/* Empty packets */protocol.EMPTY={pingreq:Buffer.from([protocol.codes.pingreq<<4,0]),pingresp:Buffer.from([protocol.codes.pingresp<<4,0]),disconnect:Buffer.from([protocol.codes.disconnect<<4,0])};}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"buffer\":17}],39:[function(require,module,exports){(function(Buffer){(function(){const writeToStream=require('./writeToStream');const EventEmitter=require('events');function generate(packet,opts){const stream=new Accumulator();writeToStream(packet,stream,opts);return stream.concat();}class Accumulator extends EventEmitter{constructor(){super();this._array=new Array(20);this._i=0;}write(chunk){this._array[this._i++]=chunk;return true;}concat(){let length=0;const lengths=new Array(this._array.length);const list=this._array;let pos=0;let i;for(i=0;i<list.length&&list[i]!==undefined;i++){if(typeof list[i]!=='string')lengths[i]=list[i].length;else lengths[i]=Buffer.byteLength(list[i]);length+=lengths[i];}const result=Buffer.allocUnsafe(length);for(i=0;i<list.length&&list[i]!==undefined;i++){if(typeof list[i]!=='string'){list[i].copy(result,pos);pos+=lengths[i];}else{result.write(list[i],pos);pos+=lengths[i];}}return result;}}module.exports=generate;}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"./writeToStream\":44,\"buffer\":17,\"events\":22}],40:[function(require,module,exports){exports.parser=require('./parser').parser;exports.generate=require('./generate');exports.writeToStream=require('./writeToStream');},{\"./generate\":39,\"./parser\":43,\"./writeToStream\":44}],41:[function(require,module,exports){(function(Buffer){(function(){const max=65536;const cache={};// in node 6 Buffer.subarray returns a Uint8Array instead of a Buffer\n// later versions return a Buffer\n// alternative is Buffer.slice but that creates a new buffer\n// creating new buffers takes time\n// SubOk is only false on node < 8\nconst SubOk=Buffer.isBuffer(Buffer.from([1,2]).subarray(0,1));function generateBuffer(i){const buffer=Buffer.allocUnsafe(2);buffer.writeUInt8(i>>8,0);buffer.writeUInt8(i&0x00FF,0+1);return buffer;}function generateCache(){for(let i=0;i<max;i++){cache[i]=generateBuffer(i);}}function genBufVariableByteInt(num){const maxLength=4;// max 4 bytes\nlet digit=0;let pos=0;const buffer=Buffer.allocUnsafe(maxLength);do{digit=num%128|0;num=num/128|0;if(num>0)digit=digit|0x80;buffer.writeUInt8(digit,pos++);}while(num>0&&pos<maxLength);if(num>0){pos=0;}return SubOk?buffer.subarray(0,pos):buffer.slice(0,pos);}function generate4ByteBuffer(num){const buffer=Buffer.allocUnsafe(4);buffer.writeUInt32BE(num,0);return buffer;}module.exports={cache,generateCache,generateNumber:generateBuffer,genBufVariableByteInt,generate4ByteBuffer};}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"buffer\":17}],42:[function(require,module,exports){class Packet{constructor(){this.cmd=null;this.retain=false;this.qos=0;this.dup=false;this.length=-1;this.topic=null;this.payload=null;}}module.exports=Packet;},{}],43:[function(require,module,exports){const bl=require('bl');const EventEmitter=require('events');const Packet=require('./packet');const constants=require('./constants');const debug=require('debug')('mqtt-packet:parser');class Parser extends EventEmitter{constructor(){super();this.parser=this.constructor.parser;}static parser(opt){if(!(this instanceof Parser))return new Parser().parser(opt);this.settings=opt||{};this._states=['_parseHeader','_parseLength','_parsePayload','_newPacket'];this._resetState();return this;}_resetState(){debug('_resetState: resetting packet, error, _list, and _stateCounter');this.packet=new Packet();this.error=null;this._list=bl();this._stateCounter=0;}parse(buf){if(this.error)this._resetState();this._list.append(buf);debug('parse: current state: %s',this._states[this._stateCounter]);while((this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error){this._stateCounter++;debug('parse: state complete. _stateCounter is now: %d',this._stateCounter);debug('parse: packet.length: %d, buffer list length: %d',this.packet.length,this._list.length);if(this._stateCounter>=this._states.length)this._stateCounter=0;}debug('parse: exited while loop. packet: %d, buffer list length: %d',this.packet.length,this._list.length);return this._list.length;}_parseHeader(){// There is at least one byte in the buffer\nconst zero=this._list.readUInt8(0);this.packet.cmd=constants.types[zero>>constants.CMD_SHIFT];this.packet.retain=(zero&constants.RETAIN_MASK)!==0;this.packet.qos=zero>>constants.QOS_SHIFT&constants.QOS_MASK;this.packet.dup=(zero&constants.DUP_MASK)!==0;debug('_parseHeader: packet: %o',this.packet);this._list.consume(1);return true;}_parseLength(){// There is at least one byte in the list\nconst result=this._parseVarByteNum(true);if(result){this.packet.length=result.value;this._list.consume(result.bytes);}debug('_parseLength %d',result.value);return!!result;}_parsePayload(){debug('_parsePayload: payload %O',this._list);let result=false;// Do we have a payload? Do we have enough data to complete the payload?\n// PINGs have no payload\nif(this.packet.length===0||this._list.length>=this.packet.length){this._pos=0;switch(this.packet.cmd){case'connect':this._parseConnect();break;case'connack':this._parseConnack();break;case'publish':this._parsePublish();break;case'puback':case'pubrec':case'pubrel':case'pubcomp':this._parseConfirmation();break;case'subscribe':this._parseSubscribe();break;case'suback':this._parseSuback();break;case'unsubscribe':this._parseUnsubscribe();break;case'unsuback':this._parseUnsuback();break;case'pingreq':case'pingresp':// These are empty, nothing to do\nbreak;case'disconnect':this._parseDisconnect();break;case'auth':this._parseAuth();break;default:this._emitError(new Error('Not supported'));}result=true;}debug('_parsePayload complete result: %s',result);return result;}_parseConnect(){debug('_parseConnect');let topic;// Will topic\nlet payload;// Will payload\nlet password;// Password\nlet username;// Username\nconst flags={};const packet=this.packet;// Parse protocolId\nconst protocolId=this._parseString();if(protocolId===null)return this._emitError(new Error('Cannot parse protocolId'));if(protocolId!=='MQTT'&&protocolId!=='MQIsdp'){return this._emitError(new Error('Invalid protocolId'));}packet.protocolId=protocolId;// Parse constants version number\nif(this._pos>=this._list.length)return this._emitError(new Error('Packet too short'));packet.protocolVersion=this._list.readUInt8(this._pos);if(packet.protocolVersion>=128){packet.bridgeMode=true;packet.protocolVersion=packet.protocolVersion-128;}if(packet.protocolVersion!==3&&packet.protocolVersion!==4&&packet.protocolVersion!==5){return this._emitError(new Error('Invalid protocol version'));}this._pos++;if(this._pos>=this._list.length){return this._emitError(new Error('Packet too short'));}// Parse connect flags\nflags.username=this._list.readUInt8(this._pos)&constants.USERNAME_MASK;flags.password=this._list.readUInt8(this._pos)&constants.PASSWORD_MASK;flags.will=this._list.readUInt8(this._pos)&constants.WILL_FLAG_MASK;if(flags.will){packet.will={};packet.will.retain=(this._list.readUInt8(this._pos)&constants.WILL_RETAIN_MASK)!==0;packet.will.qos=(this._list.readUInt8(this._pos)&constants.WILL_QOS_MASK)>>constants.WILL_QOS_SHIFT;}packet.clean=(this._list.readUInt8(this._pos)&constants.CLEAN_SESSION_MASK)!==0;this._pos++;// Parse keepalive\npacket.keepalive=this._parseNum();if(packet.keepalive===-1)return this._emitError(new Error('Packet too short'));// parse properties\nif(packet.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}// Parse clientId\nconst clientId=this._parseString();if(clientId===null)return this._emitError(new Error('Packet too short'));packet.clientId=clientId;debug('_parseConnect: packet.clientId: %s',packet.clientId);if(flags.will){if(packet.protocolVersion===5){const willProperties=this._parseProperties();if(Object.getOwnPropertyNames(willProperties).length){packet.will.properties=willProperties;}}// Parse will topic\ntopic=this._parseString();if(topic===null)return this._emitError(new Error('Cannot parse will topic'));packet.will.topic=topic;debug('_parseConnect: packet.will.topic: %s',packet.will.topic);// Parse will payload\npayload=this._parseBuffer();if(payload===null)return this._emitError(new Error('Cannot parse will payload'));packet.will.payload=payload;debug('_parseConnect: packet.will.paylaod: %s',packet.will.payload);}// Parse username\nif(flags.username){username=this._parseString();if(username===null)return this._emitError(new Error('Cannot parse username'));packet.username=username;debug('_parseConnect: packet.username: %s',packet.username);}// Parse password\nif(flags.password){password=this._parseBuffer();if(password===null)return this._emitError(new Error('Cannot parse password'));packet.password=password;}// need for right parse auth packet and self set up\nthis.settings=packet;debug('_parseConnect: complete');return packet;}_parseConnack(){debug('_parseConnack');const packet=this.packet;if(this._list.length<1)return null;packet.sessionPresent=!!(this._list.readUInt8(this._pos++)&constants.SESSIONPRESENT_MASK);if(this.settings.protocolVersion===5){if(this._list.length>=2){packet.reasonCode=this._list.readUInt8(this._pos++);}else{packet.reasonCode=0;}}else{if(this._list.length<2)return null;packet.returnCode=this._list.readUInt8(this._pos++);}if(packet.returnCode===-1||packet.reasonCode===-1)return this._emitError(new Error('Cannot parse return code'));// mqtt 5 properties\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}debug('_parseConnack: complete');}_parsePublish(){debug('_parsePublish');const packet=this.packet;packet.topic=this._parseString();if(packet.topic===null)return this._emitError(new Error('Cannot parse topic'));// Parse messageId\nif(packet.qos>0)if(!this._parseMessageId()){return;}// Properties mqtt 5\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}packet.payload=this._list.slice(this._pos,packet.length);debug('_parsePublish: payload from buffer list: %o',packet.payload);}_parseSubscribe(){debug('_parseSubscribe');const packet=this.packet;let topic;let options;let qos;let rh;let rap;let nl;let subscription;if(packet.qos!==1){return this._emitError(new Error('Wrong subscribe header'));}packet.subscriptions=[];if(!this._parseMessageId()){return;}// Properties mqtt 5\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}while(this._pos<packet.length){// Parse topic\ntopic=this._parseString();if(topic===null)return this._emitError(new Error('Cannot parse topic'));if(this._pos>=packet.length)return this._emitError(new Error('Malformed Subscribe Payload'));options=this._parseByte();qos=options&constants.SUBSCRIBE_OPTIONS_QOS_MASK;nl=(options>>constants.SUBSCRIBE_OPTIONS_NL_SHIFT&constants.SUBSCRIBE_OPTIONS_NL_MASK)!==0;rap=(options>>constants.SUBSCRIBE_OPTIONS_RAP_SHIFT&constants.SUBSCRIBE_OPTIONS_RAP_MASK)!==0;rh=options>>constants.SUBSCRIBE_OPTIONS_RH_SHIFT&constants.SUBSCRIBE_OPTIONS_RH_MASK;subscription={topic,qos};// mqtt 5 options\nif(this.settings.protocolVersion===5){subscription.nl=nl;subscription.rap=rap;subscription.rh=rh;}else if(this.settings.bridgeMode){subscription.rh=0;subscription.rap=true;subscription.nl=true;}// Push pair to subscriptions\ndebug('_parseSubscribe: push subscription `%s` to subscription',subscription);packet.subscriptions.push(subscription);}}_parseSuback(){debug('_parseSuback');const packet=this.packet;this.packet.granted=[];if(!this._parseMessageId()){return;}// Properties mqtt 5\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}// Parse granted QoSes\nwhile(this._pos<this.packet.length){this.packet.granted.push(this._list.readUInt8(this._pos++));}}_parseUnsubscribe(){debug('_parseUnsubscribe');const packet=this.packet;packet.unsubscriptions=[];// Parse messageId\nif(!this._parseMessageId()){return;}// Properties mqtt 5\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}while(this._pos<packet.length){// Parse topic\nconst topic=this._parseString();if(topic===null)return this._emitError(new Error('Cannot parse topic'));// Push topic to unsubscriptions\ndebug('_parseUnsubscribe: push topic `%s` to unsubscriptions',topic);packet.unsubscriptions.push(topic);}}_parseUnsuback(){debug('_parseUnsuback');const packet=this.packet;if(!this._parseMessageId())return this._emitError(new Error('Cannot parse messageId'));// Properties mqtt 5\nif(this.settings.protocolVersion===5){const properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}// Parse granted QoSes\npacket.granted=[];while(this._pos<this.packet.length){this.packet.granted.push(this._list.readUInt8(this._pos++));}}}// parse packets like puback, pubrec, pubrel, pubcomp\n_parseConfirmation(){debug('_parseConfirmation: packet.cmd: `%s`',this.packet.cmd);const packet=this.packet;this._parseMessageId();if(this.settings.protocolVersion===5){if(packet.length>2){// response code\npacket.reasonCode=this._parseByte();debug('_parseConfirmation: packet.reasonCode `%d`',packet.reasonCode);}else{packet.reasonCode=0;}if(packet.length>3){// properies mqtt 5\nconst properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}}return true;}// parse disconnect packet\n_parseDisconnect(){const packet=this.packet;debug('_parseDisconnect');if(this.settings.protocolVersion===5){// response code\nif(this._list.length>0){packet.reasonCode=this._parseByte();}else{packet.reasonCode=0;}// properies mqtt 5\nconst properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}}debug('_parseDisconnect result: true');return true;}// parse auth packet\n_parseAuth(){debug('_parseAuth');const packet=this.packet;if(this.settings.protocolVersion!==5){return this._emitError(new Error('Not supported auth packet for this version MQTT'));}// response code\npacket.reasonCode=this._parseByte();// properies mqtt 5\nconst properties=this._parseProperties();if(Object.getOwnPropertyNames(properties).length){packet.properties=properties;}debug('_parseAuth: result: true');return true;}_parseMessageId(){const packet=this.packet;packet.messageId=this._parseNum();if(packet.messageId===null){this._emitError(new Error('Cannot parse messageId'));return false;}debug('_parseMessageId: packet.messageId %d',packet.messageId);return true;}_parseString(maybeBuffer){const length=this._parseNum();const end=length+this._pos;if(length===-1||end>this._list.length||end>this.packet.length)return null;const result=this._list.toString('utf8',this._pos,end);this._pos+=length;debug('_parseString: result: %s',result);return result;}_parseStringPair(){debug('_parseStringPair');return{name:this._parseString(),value:this._parseString()};}_parseBuffer(){const length=this._parseNum();const end=length+this._pos;if(length===-1||end>this._list.length||end>this.packet.length)return null;const result=this._list.slice(this._pos,end);this._pos+=length;debug('_parseBuffer: result: %o',result);return result;}_parseNum(){if(this._list.length-this._pos<2)return-1;const result=this._list.readUInt16BE(this._pos);this._pos+=2;debug('_parseNum: result: %s',result);return result;}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;const result=this._list.readUInt32BE(this._pos);this._pos+=4;debug('_parse4ByteNum: result: %s',result);return result;}_parseVarByteNum(fullInfoFlag){debug('_parseVarByteNum');const maxBytes=4;let bytes=0;let mul=1;let value=0;let result=false;let current;const padding=this._pos?this._pos:0;while(bytes<maxBytes&&padding+bytes<this._list.length){current=this._list.readUInt8(padding+bytes++);value+=mul*(current&constants.VARBYTEINT_MASK);mul*=0x80;if((current&constants.VARBYTEINT_FIN_MASK)===0){result=true;break;}if(this._list.length<=bytes){break;}}if(!result&&bytes===maxBytes&&this._list.length>=bytes){this._emitError(new Error('Invalid variable byte integer'));}if(padding){this._pos+=bytes;}result=result?fullInfoFlag?{bytes,value}:value:false;debug('_parseVarByteNum: result: %o',result);return result;}_parseByte(){let result;if(this._pos<this._list.length){result=this._list.readUInt8(this._pos);this._pos++;}debug('_parseByte: result: %o',result);return result;}_parseByType(type){debug('_parseByType: type: %s',type);switch(type){case'byte':{return this._parseByte()!==0;}case'int8':{return this._parseByte();}case'int16':{return this._parseNum();}case'int32':{return this._parse4ByteNum();}case'var':{return this._parseVarByteNum();}case'string':{return this._parseString();}case'pair':{return this._parseStringPair();}case'binary':{return this._parseBuffer();}}}_parseProperties(){debug('_parseProperties');const length=this._parseVarByteNum();const start=this._pos;const end=start+length;const result={};while(this._pos<end){const type=this._parseByte();if(!type){this._emitError(new Error('Cannot parse property code type'));return false;}const name=constants.propertiesCodes[type];if(!name){this._emitError(new Error('Unknown property'));return false;}// user properties process\nif(name==='userProperties'){if(!result[name]){result[name]=Object.create(null);}const currentUserProperty=this._parseByType(constants.propertiesTypes[name]);if(result[name][currentUserProperty.name]){if(Array.isArray(result[name][currentUserProperty.name])){result[name][currentUserProperty.name].push(currentUserProperty.value);}else{const currentValue=result[name][currentUserProperty.name];result[name][currentUserProperty.name]=[currentValue];result[name][currentUserProperty.name].push(currentUserProperty.value);}}else{result[name][currentUserProperty.name]=currentUserProperty.value;}continue;}if(result[name]){if(Array.isArray(result[name])){result[name].push(this._parseByType(constants.propertiesTypes[name]));}else{result[name]=[result[name]];result[name].push(this._parseByType(constants.propertiesTypes[name]));}}else{result[name]=this._parseByType(constants.propertiesTypes[name]);}}return result;}_newPacket(){debug('_newPacket');if(this.packet){this._list.consume(this.packet.length);debug('_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d',this.packet.cmd,this.packet.payload,this.packet.length);this.emit('packet',this.packet);}debug('_newPacket: new packet');this.packet=new Packet();this._pos=0;return true;}_emitError(err){debug('_emitError');this.error=err;this.emit('error',err);}}module.exports=Parser;},{\"./constants\":38,\"./packet\":42,\"bl\":15,\"debug\":18,\"events\":22}],44:[function(require,module,exports){(function(Buffer){(function(){const protocol=require('./constants');const empty=Buffer.allocUnsafe(0);const zeroBuf=Buffer.from([0]);const numbers=require('./numbers');const nextTick=require('process-nextick-args').nextTick;const debug=require('debug')('mqtt-packet:writeToStream');const numCache=numbers.cache;const generateNumber=numbers.generateNumber;const generateCache=numbers.generateCache;const genBufVariableByteInt=numbers.genBufVariableByteInt;const generate4ByteBuffer=numbers.generate4ByteBuffer;let writeNumber=writeNumberCached;let toGenerate=true;function generate(packet,stream,opts){debug('generate called');if(stream.cork){stream.cork();nextTick(uncork,stream);}if(toGenerate){toGenerate=false;generateCache();}debug('generate: packet.cmd: %s',packet.cmd);switch(packet.cmd){case'connect':return connect(packet,stream,opts);case'connack':return connack(packet,stream,opts);case'publish':return publish(packet,stream,opts);case'puback':case'pubrec':case'pubrel':case'pubcomp':return confirmation(packet,stream,opts);case'subscribe':return subscribe(packet,stream,opts);case'suback':return suback(packet,stream,opts);case'unsubscribe':return unsubscribe(packet,stream,opts);case'unsuback':return unsuback(packet,stream,opts);case'pingreq':case'pingresp':return emptyPacket(packet,stream,opts);case'disconnect':return disconnect(packet,stream,opts);case'auth':return auth(packet,stream,opts);default:stream.emit('error',new Error('Unknown command'));return false;}}/**\n * Controls numbers cache.\n * Set to \"false\" to allocate buffers on-the-flight instead of pre-generated cache\n */Object.defineProperty(generate,'cacheNumbers',{get(){return writeNumber===writeNumberCached;},set(value){if(value){if(!numCache||Object.keys(numCache).length===0)toGenerate=true;writeNumber=writeNumberCached;}else{toGenerate=false;writeNumber=writeNumberGenerated;}}});function uncork(stream){stream.uncork();}function connect(packet,stream,opts){const settings=packet||{};const protocolId=settings.protocolId||'MQTT';let protocolVersion=settings.protocolVersion||4;const will=settings.will;let clean=settings.clean;const keepalive=settings.keepalive||0;const clientId=settings.clientId||'';const username=settings.username;const password=settings.password;/* mqtt5 new oprions */const properties=settings.properties;if(clean===undefined)clean=true;let length=0;// Must be a string and non-falsy\nif(!protocolId||typeof protocolId!=='string'&&!Buffer.isBuffer(protocolId)){stream.emit('error',new Error('Invalid protocolId'));return false;}else length+=protocolId.length+2;// Must be 3 or 4 or 5\nif(protocolVersion!==3&&protocolVersion!==4&&protocolVersion!==5){stream.emit('error',new Error('Invalid protocol version'));return false;}else length+=1;// ClientId might be omitted in 3.1.1 and 5, but only if cleanSession is set to 1\nif((typeof clientId==='string'||Buffer.isBuffer(clientId))&&(clientId||protocolVersion>=4)&&(clientId||clean)){length+=Buffer.byteLength(clientId)+2;}else{if(protocolVersion<4){stream.emit('error',new Error('clientId must be supplied before 3.1.1'));return false;}if(clean*1===0){stream.emit('error',new Error('clientId must be given if cleanSession set to 0'));return false;}}// Must be a two byte number\nif(typeof keepalive!=='number'||keepalive<0||keepalive>65535||keepalive%1!==0){stream.emit('error',new Error('Invalid keepalive'));return false;}else length+=2;// Connect flags\nlength+=1;// Properties\nif(protocolVersion===5){var propertiesData=getProperties(stream,properties);if(!propertiesData){return false;}length+=propertiesData.length;}// If will exists...\nif(will){// It must be an object\nif(typeof will!=='object'){stream.emit('error',new Error('Invalid will'));return false;}// It must have topic typeof string\nif(!will.topic||typeof will.topic!=='string'){stream.emit('error',new Error('Invalid will topic'));return false;}else{length+=Buffer.byteLength(will.topic)+2;}// Payload\nlength+=2;// payload length\nif(will.payload){if(will.payload.length>=0){if(typeof will.payload==='string'){length+=Buffer.byteLength(will.payload);}else{length+=will.payload.length;}}else{stream.emit('error',new Error('Invalid will payload'));return false;}}// will properties\nvar willProperties={};if(protocolVersion===5){willProperties=getProperties(stream,will.properties);if(!willProperties){return false;}length+=willProperties.length;}}// Username\nlet providedUsername=false;if(username!=null){if(isStringOrBuffer(username)){providedUsername=true;length+=Buffer.byteLength(username)+2;}else{stream.emit('error',new Error('Invalid username'));return false;}}// Password\nif(password!=null){if(!providedUsername){stream.emit('error',new Error('Username is required to use password'));return false;}if(isStringOrBuffer(password)){length+=byteLength(password)+2;}else{stream.emit('error',new Error('Invalid password'));return false;}}// Generate header\nstream.write(protocol.CONNECT_HEADER);// Generate length\nwriteVarByteInt(stream,length);// Generate protocol ID\nwriteStringOrBuffer(stream,protocolId);if(settings.bridgeMode){protocolVersion+=128;}stream.write(protocolVersion===131?protocol.VERSION131:protocolVersion===132?protocol.VERSION132:protocolVersion===4?protocol.VERSION4:protocolVersion===5?protocol.VERSION5:protocol.VERSION3);// Connect flags\nlet flags=0;flags|=username!=null?protocol.USERNAME_MASK:0;flags|=password!=null?protocol.PASSWORD_MASK:0;flags|=will&&will.retain?protocol.WILL_RETAIN_MASK:0;flags|=will&&will.qos?will.qos<<protocol.WILL_QOS_SHIFT:0;flags|=will?protocol.WILL_FLAG_MASK:0;flags|=clean?protocol.CLEAN_SESSION_MASK:0;stream.write(Buffer.from([flags]));// Keepalive\nwriteNumber(stream,keepalive);// Properties\nif(protocolVersion===5){propertiesData.write();}// Client ID\nwriteStringOrBuffer(stream,clientId);// Will\nif(will){if(protocolVersion===5){willProperties.write();}writeString(stream,will.topic);writeStringOrBuffer(stream,will.payload);}// Username and password\nif(username!=null){writeStringOrBuffer(stream,username);}if(password!=null){writeStringOrBuffer(stream,password);}// This is a small packet that happens only once on a stream\n// We assume the stream is always free to receive more data after this\nreturn true;}function connack(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const rc=version===5?settings.reasonCode:settings.returnCode;const properties=settings.properties;let length=2;// length of rc and sessionHeader\n// Check return code\nif(typeof rc!=='number'){stream.emit('error',new Error('Invalid return code'));return false;}// mqtt5 properties\nlet propertiesData=null;if(version===5){propertiesData=getProperties(stream,properties);if(!propertiesData){return false;}length+=propertiesData.length;}stream.write(protocol.CONNACK_HEADER);// length\nwriteVarByteInt(stream,length);stream.write(settings.sessionPresent?protocol.SESSIONPRESENT_HEADER:zeroBuf);stream.write(Buffer.from([rc]));if(propertiesData!=null){propertiesData.write();}return true;}function publish(packet,stream,opts){debug('publish: packet: %o',packet);const version=opts?opts.protocolVersion:4;const settings=packet||{};const qos=settings.qos||0;const retain=settings.retain?protocol.RETAIN_MASK:0;const topic=settings.topic;const payload=settings.payload||empty;const id=settings.messageId;const properties=settings.properties;let length=0;// Topic must be a non-empty string or Buffer\nif(typeof topic==='string')length+=Buffer.byteLength(topic)+2;else if(Buffer.isBuffer(topic))length+=topic.length+2;else{stream.emit('error',new Error('Invalid topic'));return false;}// Get the payload length\nif(!Buffer.isBuffer(payload))length+=Buffer.byteLength(payload);else length+=payload.length;// Message ID must a number if qos > 0\nif(qos&&typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}else if(qos)length+=2;// mqtt5 properties\nlet propertiesData=null;if(version===5){propertiesData=getProperties(stream,properties);if(!propertiesData){return false;}length+=propertiesData.length;}// Header\nstream.write(protocol.PUBLISH_HEADER[qos][settings.dup?1:0][retain?1:0]);// Remaining length\nwriteVarByteInt(stream,length);// Topic\nwriteNumber(stream,byteLength(topic));stream.write(topic);// Message ID\nif(qos>0)writeNumber(stream,id);// Properties\nif(propertiesData!=null){propertiesData.write();}// Payload\ndebug('publish: payload: %o',payload);return stream.write(payload);}/* Puback, pubrec, pubrel and pubcomp */function confirmation(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const type=settings.cmd||'puback';const id=settings.messageId;const dup=settings.dup&&type==='pubrel'?protocol.DUP_MASK:0;let qos=0;const reasonCode=settings.reasonCode;const properties=settings.properties;let length=version===5?3:2;if(type==='pubrel')qos=1;// Check message ID\nif(typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}// properies mqtt 5\nlet propertiesData=null;if(version===5){// Confirm should not add empty property length with no properties (rfc 3.4.2.2.1)\nif(typeof properties==='object'){propertiesData=getPropertiesByMaximumPacketSize(stream,properties,opts,length);if(!propertiesData){return false;}length+=propertiesData.length;}}// Header\nstream.write(protocol.ACKS[type][qos][dup][0]);// Length\nwriteVarByteInt(stream,length);// Message ID\nwriteNumber(stream,id);// reason code in header\nif(version===5){stream.write(Buffer.from([reasonCode]));}// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}return true;}function subscribe(packet,stream,opts){debug('subscribe: packet: ');const version=opts?opts.protocolVersion:4;const settings=packet||{};const dup=settings.dup?protocol.DUP_MASK:0;const id=settings.messageId;const subs=settings.subscriptions;const properties=settings.properties;let length=0;// Check message ID\nif(typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}else length+=2;// properies mqtt 5\nlet propertiesData=null;if(version===5){propertiesData=getProperties(stream,properties);if(!propertiesData){return false;}length+=propertiesData.length;}// Check subscriptions\nif(typeof subs==='object'&&subs.length){for(let i=0;i<subs.length;i+=1){const itopic=subs[i].topic;const iqos=subs[i].qos;if(typeof itopic!=='string'){stream.emit('error',new Error('Invalid subscriptions - invalid topic'));return false;}if(typeof iqos!=='number'){stream.emit('error',new Error('Invalid subscriptions - invalid qos'));return false;}if(version===5){const nl=subs[i].nl||false;if(typeof nl!=='boolean'){stream.emit('error',new Error('Invalid subscriptions - invalid No Local'));return false;}const rap=subs[i].rap||false;if(typeof rap!=='boolean'){stream.emit('error',new Error('Invalid subscriptions - invalid Retain as Published'));return false;}const rh=subs[i].rh||0;if(typeof rh!=='number'||rh>2){stream.emit('error',new Error('Invalid subscriptions - invalid Retain Handling'));return false;}}length+=Buffer.byteLength(itopic)+2+1;}}else{stream.emit('error',new Error('Invalid subscriptions'));return false;}// Generate header\ndebug('subscribe: writing to stream: %o',protocol.SUBSCRIBE_HEADER);stream.write(protocol.SUBSCRIBE_HEADER[1][dup?1:0][0]);// Generate length\nwriteVarByteInt(stream,length);// Generate message ID\nwriteNumber(stream,id);// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}let result=true;// Generate subs\nfor(const sub of subs){const jtopic=sub.topic;const jqos=sub.qos;const jnl=+sub.nl;const jrap=+sub.rap;const jrh=sub.rh;let joptions;// Write topic string\nwriteString(stream,jtopic);// options process\njoptions=protocol.SUBSCRIBE_OPTIONS_QOS[jqos];if(version===5){joptions|=jnl?protocol.SUBSCRIBE_OPTIONS_NL:0;joptions|=jrap?protocol.SUBSCRIBE_OPTIONS_RAP:0;joptions|=jrh?protocol.SUBSCRIBE_OPTIONS_RH[jrh]:0;}// Write options\nresult=stream.write(Buffer.from([joptions]));}return result;}function suback(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const id=settings.messageId;const granted=settings.granted;const properties=settings.properties;let length=0;// Check message ID\nif(typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}else length+=2;// Check granted qos vector\nif(typeof granted==='object'&&granted.length){for(let i=0;i<granted.length;i+=1){if(typeof granted[i]!=='number'){stream.emit('error',new Error('Invalid qos vector'));return false;}length+=1;}}else{stream.emit('error',new Error('Invalid qos vector'));return false;}// properies mqtt 5\nlet propertiesData=null;if(version===5){propertiesData=getPropertiesByMaximumPacketSize(stream,properties,opts,length);if(!propertiesData){return false;}length+=propertiesData.length;}// header\nstream.write(protocol.SUBACK_HEADER);// Length\nwriteVarByteInt(stream,length);// Message ID\nwriteNumber(stream,id);// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}return stream.write(Buffer.from(granted));}function unsubscribe(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const id=settings.messageId;const dup=settings.dup?protocol.DUP_MASK:0;const unsubs=settings.unsubscriptions;const properties=settings.properties;let length=0;// Check message ID\nif(typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}else{length+=2;}// Check unsubs\nif(typeof unsubs==='object'&&unsubs.length){for(let i=0;i<unsubs.length;i+=1){if(typeof unsubs[i]!=='string'){stream.emit('error',new Error('Invalid unsubscriptions'));return false;}length+=Buffer.byteLength(unsubs[i])+2;}}else{stream.emit('error',new Error('Invalid unsubscriptions'));return false;}// properies mqtt 5\nlet propertiesData=null;if(version===5){propertiesData=getProperties(stream,properties);if(!propertiesData){return false;}length+=propertiesData.length;}// Header\nstream.write(protocol.UNSUBSCRIBE_HEADER[1][dup?1:0][0]);// Length\nwriteVarByteInt(stream,length);// Message ID\nwriteNumber(stream,id);// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}// Unsubs\nlet result=true;for(let j=0;j<unsubs.length;j++){result=writeString(stream,unsubs[j]);}return result;}function unsuback(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const id=settings.messageId;const dup=settings.dup?protocol.DUP_MASK:0;const granted=settings.granted;const properties=settings.properties;const type=settings.cmd;const qos=0;let length=2;// Check message ID\nif(typeof id!=='number'){stream.emit('error',new Error('Invalid messageId'));return false;}// Check granted\nif(version===5){if(typeof granted==='object'&&granted.length){for(let i=0;i<granted.length;i+=1){if(typeof granted[i]!=='number'){stream.emit('error',new Error('Invalid qos vector'));return false;}length+=1;}}else{stream.emit('error',new Error('Invalid qos vector'));return false;}}// properies mqtt 5\nlet propertiesData=null;if(version===5){propertiesData=getPropertiesByMaximumPacketSize(stream,properties,opts,length);if(!propertiesData){return false;}length+=propertiesData.length;}// Header\nstream.write(protocol.ACKS[type][qos][dup][0]);// Length\nwriteVarByteInt(stream,length);// Message ID\nwriteNumber(stream,id);// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}// payload\nif(version===5){stream.write(Buffer.from(granted));}return true;}function emptyPacket(packet,stream,opts){return stream.write(protocol.EMPTY[packet.cmd]);}function disconnect(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const reasonCode=settings.reasonCode;const properties=settings.properties;let length=version===5?1:0;// properies mqtt 5\nlet propertiesData=null;if(version===5){propertiesData=getPropertiesByMaximumPacketSize(stream,properties,opts,length);if(!propertiesData){return false;}length+=propertiesData.length;}// Header\nstream.write(Buffer.from([protocol.codes.disconnect<<4]));// Length\nwriteVarByteInt(stream,length);// reason code in header\nif(version===5){stream.write(Buffer.from([reasonCode]));}// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}return true;}function auth(packet,stream,opts){const version=opts?opts.protocolVersion:4;const settings=packet||{};const reasonCode=settings.reasonCode;const properties=settings.properties;let length=version===5?1:0;if(version!==5)stream.emit('error',new Error('Invalid mqtt version for auth packet'));// properies mqtt 5\nconst propertiesData=getPropertiesByMaximumPacketSize(stream,properties,opts,length);if(!propertiesData){return false;}length+=propertiesData.length;// Header\nstream.write(Buffer.from([protocol.codes.auth<<4]));// Length\nwriteVarByteInt(stream,length);// reason code in header\nstream.write(Buffer.from([reasonCode]));// properies mqtt 5\nif(propertiesData!==null){propertiesData.write();}return true;}/**\n * writeVarByteInt - write an MQTT style variable byte integer to the buffer\n *\n * @param <Buffer> buffer - destination\n * @param <Number> pos - offset\n * @param <Number> length - length (>0)\n * @returns <Number> number of bytes written\n *\n * @api private\n */const varByteIntCache={};function writeVarByteInt(stream,num){if(num>protocol.VARBYTEINT_MAX){stream.emit('error',new Error(`Invalid variable byte integer: ${num}`));return false;}let buffer=varByteIntCache[num];if(!buffer){buffer=genBufVariableByteInt(num);if(num<16384)varByteIntCache[num]=buffer;}debug('writeVarByteInt: writing to stream: %o',buffer);return stream.write(buffer);}/**\n * writeString - write a utf8 string to the buffer\n *\n * @param <Buffer> buffer - destination\n * @param <Number> pos - offset\n * @param <String> string - string to write\n * @return <Number> number of bytes written\n *\n * @api private\n */function writeString(stream,string){const strlen=Buffer.byteLength(string);writeNumber(stream,strlen);debug('writeString: %s',string);return stream.write(string,'utf8');}/**\n * writeStringPair - write a utf8 string pairs to the buffer\n *\n * @param <Buffer> buffer - destination\n * @param <String> name - string name to write\n * @param <String> value - string value to write\n * @return <Number> number of bytes written\n *\n * @api private\n */function writeStringPair(stream,name,value){writeString(stream,name);writeString(stream,value);}/**\n * writeNumber - write a two byte number to the buffer\n *\n * @param <Buffer> buffer - destination\n * @param <Number> pos - offset\n * @param <String> number - number to write\n * @return <Number> number of bytes written\n *\n * @api private\n */function writeNumberCached(stream,number){debug('writeNumberCached: number: %d',number);debug('writeNumberCached: %o',numCache[number]);return stream.write(numCache[number]);}function writeNumberGenerated(stream,number){const generatedNumber=generateNumber(number);debug('writeNumberGenerated: %o',generatedNumber);return stream.write(generatedNumber);}function write4ByteNumber(stream,number){const generated4ByteBuffer=generate4ByteBuffer(number);debug('write4ByteNumber: %o',generated4ByteBuffer);return stream.write(generated4ByteBuffer);}/**\n * writeStringOrBuffer - write a String or Buffer with the its length prefix\n *\n * @param <Buffer> buffer - destination\n * @param <Number> pos - offset\n * @param <String> toWrite - String or Buffer\n * @return <Number> number of bytes written\n */function writeStringOrBuffer(stream,toWrite){if(typeof toWrite==='string'){writeString(stream,toWrite);}else if(toWrite){writeNumber(stream,toWrite.length);stream.write(toWrite);}else writeNumber(stream,0);}function getProperties(stream,properties){/* connect properties */if(typeof properties!=='object'||properties.length!=null){return{length:1,write(){writeProperties(stream,{},0);}};}let propertiesLength=0;function getLengthProperty(name,value){const type=protocol.propertiesTypes[name];let length=0;switch(type){case'byte':{if(typeof value!=='boolean'){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+1;break;}case'int8':{if(typeof value!=='number'||value<0||value>0xff){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+1;break;}case'binary':{if(value&&value===null){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+Buffer.byteLength(value)+2;break;}case'int16':{if(typeof value!=='number'||value<0||value>0xffff){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+2;break;}case'int32':{if(typeof value!=='number'||value<0||value>0xffffffff){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+4;break;}case'var':{// var byte integer is max 24 bits packed in 32 bits\nif(typeof value!=='number'||value<0||value>0x0fffffff){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+Buffer.byteLength(genBufVariableByteInt(value));break;}case'string':{if(typeof value!=='string'){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=1+2+Buffer.byteLength(value.toString());break;}case'pair':{if(typeof value!=='object'){stream.emit('error',new Error(`Invalid ${name}: ${value}`));return false;}length+=Object.getOwnPropertyNames(value).reduce((result,name)=>{const currentValue=value[name];if(Array.isArray(currentValue)){result+=currentValue.reduce((currentLength,value)=>{currentLength+=1+2+Buffer.byteLength(name.toString())+2+Buffer.byteLength(value.toString());return currentLength;},0);}else{result+=1+2+Buffer.byteLength(name.toString())+2+Buffer.byteLength(value[name].toString());}return result;},0);break;}default:{stream.emit('error',new Error(`Invalid property ${name}: ${value}`));return false;}}return length;}if(properties){for(const propName in properties){let propLength=0;let propValueLength=0;const propValue=properties[propName];if(Array.isArray(propValue)){for(let valueIndex=0;valueIndex<propValue.length;valueIndex++){propValueLength=getLengthProperty(propName,propValue[valueIndex]);if(!propValueLength){return false;}propLength+=propValueLength;}}else{propValueLength=getLengthProperty(propName,propValue);if(!propValueLength){return false;}propLength=propValueLength;}if(!propLength)return false;propertiesLength+=propLength;}}const propertiesLengthLength=Buffer.byteLength(genBufVariableByteInt(propertiesLength));return{length:propertiesLengthLength+propertiesLength,write(){writeProperties(stream,properties,propertiesLength);}};}function getPropertiesByMaximumPacketSize(stream,properties,opts,length){const mayEmptyProps=['reasonString','userProperties'];const maximumPacketSize=opts&&opts.properties&&opts.properties.maximumPacketSize?opts.properties.maximumPacketSize:0;let propertiesData=getProperties(stream,properties);if(maximumPacketSize){while(length+propertiesData.length>maximumPacketSize){const currentMayEmptyProp=mayEmptyProps.shift();if(currentMayEmptyProp&&properties[currentMayEmptyProp]){delete properties[currentMayEmptyProp];propertiesData=getProperties(stream,properties);}else{return false;}}}return propertiesData;}function writeProperty(stream,propName,value){const type=protocol.propertiesTypes[propName];switch(type){case'byte':{stream.write(Buffer.from([protocol.properties[propName]]));stream.write(Buffer.from([+value]));break;}case'int8':{stream.write(Buffer.from([protocol.properties[propName]]));stream.write(Buffer.from([value]));break;}case'binary':{stream.write(Buffer.from([protocol.properties[propName]]));writeStringOrBuffer(stream,value);break;}case'int16':{stream.write(Buffer.from([protocol.properties[propName]]));writeNumber(stream,value);break;}case'int32':{stream.write(Buffer.from([protocol.properties[propName]]));write4ByteNumber(stream,value);break;}case'var':{stream.write(Buffer.from([protocol.properties[propName]]));writeVarByteInt(stream,value);break;}case'string':{stream.write(Buffer.from([protocol.properties[propName]]));writeString(stream,value);break;}case'pair':{Object.getOwnPropertyNames(value).forEach(name=>{const currentValue=value[name];if(Array.isArray(currentValue)){currentValue.forEach(value=>{stream.write(Buffer.from([protocol.properties[propName]]));writeStringPair(stream,name.toString(),value.toString());});}else{stream.write(Buffer.from([protocol.properties[propName]]));writeStringPair(stream,name.toString(),currentValue.toString());}});break;}default:{stream.emit('error',new Error(`Invalid property ${propName} value: ${value}`));return false;}}}function writeProperties(stream,properties,propertiesLength){/* write properties to stream */writeVarByteInt(stream,propertiesLength);for(const propName in properties){if(Object.prototype.hasOwnProperty.call(properties,propName)&&properties[propName]!==null){const value=properties[propName];if(Array.isArray(value)){for(let valueIndex=0;valueIndex<value.length;valueIndex++){writeProperty(stream,propName,value[valueIndex]);}}else{writeProperty(stream,propName,value);}}}}function byteLength(bufOrString){if(!bufOrString)return 0;else if(bufOrString instanceof Buffer)return bufOrString.length;else return Buffer.byteLength(bufOrString);}function isStringOrBuffer(field){return typeof field==='string'||field instanceof Buffer;}module.exports=generate;}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"./constants\":38,\"./numbers\":41,\"buffer\":17,\"debug\":18,\"process-nextick-args\":49}],45:[function(require,module,exports){/**\n * Helpers.\n */var s=1000;var m=s*60;var h=m*60;var d=h*24;var w=d*7;var y=d*365.25;/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */module.exports=function(val,options){options=options||{};var type=typeof val;if(type==='string'&&val.length>0){return parse(val);}else if(type==='number'&&isFinite(val)){return options.long?fmtLong(val):fmtShort(val);}throw new Error('val is not a non-empty string or a valid number. val='+JSON.stringify(val));};/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */function parse(str){str=String(str);if(str.length>100){return;}var match=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);if(!match){return;}var n=parseFloat(match[1]);var type=(match[2]||'ms').toLowerCase();switch(type){case'years':case'year':case'yrs':case'yr':case'y':return n*y;case'weeks':case'week':case'w':return n*w;case'days':case'day':case'd':return n*d;case'hours':case'hour':case'hrs':case'hr':case'h':return n*h;case'minutes':case'minute':case'mins':case'min':case'm':return n*m;case'seconds':case'second':case'secs':case'sec':case's':return n*s;case'milliseconds':case'millisecond':case'msecs':case'msec':case'ms':return n;default:return undefined;}}/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */function fmtShort(ms){var msAbs=Math.abs(ms);if(msAbs>=d){return Math.round(ms/d)+'d';}if(msAbs>=h){return Math.round(ms/h)+'h';}if(msAbs>=m){return Math.round(ms/m)+'m';}if(msAbs>=s){return Math.round(ms/s)+'s';}return ms+'ms';}/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */function fmtLong(ms){var msAbs=Math.abs(ms);if(msAbs>=d){return plural(ms,msAbs,d,'day');}if(msAbs>=h){return plural(ms,msAbs,h,'hour');}if(msAbs>=m){return plural(ms,msAbs,m,'minute');}if(msAbs>=s){return plural(ms,msAbs,s,'second');}return ms+' ms';}/**\n * Pluralization helper.\n */function plural(ms,msAbs,n,name){var isPlural=msAbs>=n*1.5;return Math.round(ms/n)+' '+name+(isPlural?'s':'');}},{}],46:[function(require,module,exports){// Copyright Takatoshi Kondo 2021\n//\n// Distributed under the MIT License\nconst NumberAllocator=require('./lib/number-allocator.js');module.exports.NumberAllocator=NumberAllocator;},{\"./lib/number-allocator.js\":47}],47:[function(require,module,exports){// Copyright Takatoshi Kondo 2021\n//\n// Distributed under the MIT License\n'use strict';const SortedSet=require('js-sdsl').Set;const debugTrace=require('debug')('number-allocator:trace');const debugError=require('debug')('number-allocator:error');/**\n * Interval constructor\n * @constructor\n * @param {Number} low  - The lowest value of the interval\n * @param {Number} high - The highest value of the interval\n */function Interval(low,high){this.low=low;this.high=high;}Interval.prototype.equals=function(other){return this.low===other.low&&this.high===other.high;};Interval.prototype.compare=function(other){if(this.low<other.low&&this.high<other.low)return-1;if(other.low<this.low&&other.high<this.low)return 1;return 0;};/**\n * NumberAllocator constructor.\n * The all numbers are set to vacant status.\n * Time Complexity O(1)\n * @constructor\n * @param {Number} min  - The maximum number of allocatable. The number must be integer.\n * @param {Number} maxh - The minimum number of allocatable. The number must be integer.\n */function NumberAllocator(min,max){if(!(this instanceof NumberAllocator)){return new NumberAllocator(min,max);}this.min=min;this.max=max;this.ss=new SortedSet([],(lhs,rhs)=>{return lhs.compare(rhs);});debugTrace('Create');this.clear();}/**\n * Get the first vacant number. The status of the number is not updated.\n * Time Complexity O(1)\n * @return {Number} - The first vacant number. If all numbers are occupied, return null.\n *                    When alloc() is called then the same value will be allocated.\n */NumberAllocator.prototype.firstVacant=function(){if(this.ss.size()===0)return null;return this.ss.front().low;};/**\n * Allocate the first vacant number. The number become occupied status.\n * Time Complexity O(1)\n * @return {Number} - The first vacant number. If all numbers are occupied, return null.\n */NumberAllocator.prototype.alloc=function(){if(this.ss.size()===0){debugTrace('alloc():empty');return null;}const it=this.ss.front();const num=it.low;if(num+1<=it.high){// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\n// x|----|\n++it.low;}else{this.ss.eraseElementByPos(0);}debugTrace('alloc():'+num);return num;};/**\n * Use the number. The number become occupied status.\n * If the number has already been occupied, then return false.\n * Time Complexity O(logN) : N is the number of intervals (not numbers)\n * @param {Number} num - The number to request use.\n * @return {Boolean} - If `num` was not occupied, then return true, otherwise return false.\n */NumberAllocator.prototype.use=function(num){const key=new Interval(num,num);const it=this.ss.lowerBound(key);if(it){if(it.equals(key)){// |x|\nthis.ss.eraseElementByValue(it);debugTrace('use():'+num);return true;}// x |-----|\nif(it.low>num)return false;// |x----|\nif(it.low===num){// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\n// x|----|\n++it.low;debugTrace('use():'+num);return true;}// |----x|\nif(it.high===num){// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\n// |----|x\n--it.high;debugTrace('use():'+num);return true;}const low=it.low;// |--x--|\n// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\n// x|--|\nit.low=num+1;// |--|x|--|\nthis.ss.insert(new Interval(low,num-1));debugTrace('use():'+num);return true;}debugTrace('use():failed');return false;};/**\n * Deallocate the number. The number become vacant status.\n * Time Complexity O(logN) : N is the number of intervals (not numbers)\n * @param {Number} num - The number to deallocate. The number must be occupied status.\n *                       In other words, the number must be allocated by alloc() or occupied be use().\n */NumberAllocator.prototype.free=function(num){if(num<this.min||num>this.max){debugError('free():'+num+' is out of range');return;}const key=new Interval(num,num);const it=this.ss.lowerBound(key);if(it){if(it.low<=num&&num<=it.high){debugError('free():'+num+' has already been vacant');return;}if(it===this.ss.front()){// v....\nif(num+1===it.low){// Concat to right\n// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\n--it.low;}else{// Insert new interval\nthis.ss.insert(key);}}else{// ..v..\nconst itl=this.ss.reverseLowerBound(key);if(itl.high+1===num){if(num+1===it.low){// Concat to left and right\nthis.ss.eraseElementByValue(itl);// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\nit.low=itl.low;}else{// Concat to left\n// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\nitl.high=num;}}else{if(num+1===it.low){// Concat to right\n// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\nit.low=num;}else{// Insert new interval\nthis.ss.insert(key);}}}}else{// ....v\nif(it===this.ss.front()){// Insert new interval\nthis.ss.insert(key);return;}const itl=this.ss.reverseLowerBound(key);if(itl.high+1===num){// Concat to left\n// Overwrite the interval in the ss but it is safe,\n// because no order violation is happened.\nitl.high=num;}else{// Insert new interval\nthis.ss.insert(key);}}debugTrace('free():'+num);};/**\n * Clear all occupied numbers.\n * The all numbers are set to vacant status.\n * Time Complexity O(1)\n */NumberAllocator.prototype.clear=function(){debugTrace('clear()');this.ss.clear();this.ss.insert(new Interval(this.min,this.max));};/**\n * Get the number of intervals. Interval is internal structure of this library.\n * This function is for debugging.\n * Time Complexity O(1)\n * @return {Number} - The number of intervals.\n */NumberAllocator.prototype.intervalCount=function(){return this.ss.size();};/**\n * Dump the internal structor of the library.\n * This function is for debugging.\n * Time Complexity O(N) : N is the number of intervals (not numbers)\n */NumberAllocator.prototype.dump=function(){console.log('length:'+this.ss.size());for(const element of this.ss){console.log(element);}};module.exports=NumberAllocator;},{\"debug\":18,\"js-sdsl\":36}],48:[function(require,module,exports){var wrappy=require('wrappy');module.exports=wrappy(once);module.exports.strict=wrappy(onceStrict);once.proto=once(function(){Object.defineProperty(Function.prototype,'once',{value:function(){return once(this);},configurable:true});Object.defineProperty(Function.prototype,'onceStrict',{value:function(){return onceStrict(this);},configurable:true});});function once(fn){var f=function(){if(f.called)return f.value;f.called=true;return f.value=fn.apply(this,arguments);};f.called=false;return f;}function onceStrict(fn){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=fn.apply(this,arguments);};var name=fn.name||'Function wrapped with `once`';f.onceError=name+\" shouldn't be called more than once\";f.called=false;return f;}},{\"wrappy\":79}],49:[function(require,module,exports){(function(process){(function(){'use strict';if(typeof process==='undefined'||!process.version||process.version.indexOf('v0.')===0||process.version.indexOf('v1.')===0&&process.version.indexOf('v1.8.')!==0){module.exports={nextTick:nextTick};}else{module.exports=process;}function nextTick(fn,arg1,arg2,arg3){if(typeof fn!=='function'){throw new TypeError('\"callback\" argument must be a function');}var len=arguments.length;var args,i;switch(len){case 0:case 1:return process.nextTick(fn);case 2:return process.nextTick(function afterTickOne(){fn.call(null,arg1);});case 3:return process.nextTick(function afterTickTwo(){fn.call(null,arg1,arg2);});case 4:return process.nextTick(function afterTickThree(){fn.call(null,arg1,arg2,arg3);});default:args=new Array(len-1);i=0;while(i<args.length){args[i++]=arguments[i];}return process.nextTick(function afterTick(){fn.apply(null,args);});}}}).call(this);}).call(this,require('_process'));},{\"_process\":50}],50:[function(require,module,exports){// shim for using process in browser\nvar process=module.exports={};// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\nvar 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\nreturn setTimeout(fun,0);}// if setTimeout wasn't available but was latter defined\nif((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout){cachedSetTimeout=setTimeout;return setTimeout(fun,0);}try{// when when somebody has screwed with setTimeout but no I.E. maddness\nreturn 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\nreturn 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\nreturn cachedSetTimeout.call(this,fun,0);}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout){//normal enviroments in sane situations\nreturn clearTimeout(marker);}// if clearTimeout wasn't available but was latter defined\nif((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout){cachedClearTimeout=clearTimeout;return clearTimeout(marker);}try{// when when somebody has screwed with setTimeout but no I.E. maddness\nreturn 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\nreturn 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.\n// Some versions of I.E. have different rules for clearTimeout vs setTimeout\nreturn 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\nfunction 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\nprocess.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;};},{}],51:[function(require,module,exports){(function(global){(function(){/*! https://mths.be/punycode v1.4.1 by @mathias */;(function(root){/** Detect free variables */var freeExports=typeof exports=='object'&&exports&&!exports.nodeType&&exports;var freeModule=typeof module=='object'&&module&&!module.nodeType&&module;var freeGlobal=typeof global=='object'&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal||freeGlobal.self===freeGlobal){root=freeGlobal;}/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */var punycode,/** Highest positive signed 32-bit float value */maxInt=2147483647,// aka. 0x7FFFFFFF or 2^31-1\n/** Bootstring parameters */base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,// 0x80\ndelimiter='-',// '\\x2D'\n/** Regular expressions */regexPunycode=/^xn--/,regexNonASCII=/[^\\x20-\\x7E]/,// unprintable ASCII chars + non-ASCII chars\nregexSeparators=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,// RFC 3490 separators\n/** Error messages */errors={'overflow':'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)','invalid-input':'Invalid input'},/** Convenience shortcuts */baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode,/** Temporary variable */key;/*--------------------------------------------------------------------------*/ /**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */function error(type){throw new RangeError(errors[type]);}/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */function map(array,fn){var length=array.length;var result=[];while(length--){result[length]=fn(array[length]);}return result;}/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */function mapDomain(string,fn){var parts=string.split('@');var result='';if(parts.length>1){// In email addresses, only the domain name should be punycoded. Leave\n// the local part (i.e. everything up to `@`) intact.\nresult=parts[0]+'@';string=parts[1];}// Avoid `split(regex)` for IE8 compatibility. See #17.\nstring=string.replace(regexSeparators,'\\x2E');var labels=string.split('.');var encoded=map(labels,fn).join('.');return result+encoded;}/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */function ucs2decode(string){var output=[],counter=0,length=string.length,value,extra;while(counter<length){value=string.charCodeAt(counter++);if(value>=0xD800&&value<=0xDBFF&&counter<length){// high surrogate, and there is a next character\nextra=string.charCodeAt(counter++);if((extra&0xFC00)==0xDC00){// low surrogate\noutput.push(((value&0x3FF)<<10)+(extra&0x3FF)+0x10000);}else{// unmatched surrogate; only append this code unit, in case the next\n// code unit is the high surrogate of a surrogate pair\noutput.push(value);counter--;}}else{output.push(value);}}return output;}/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */function ucs2encode(array){return map(array,function(value){var output='';if(value>0xFFFF){value-=0x10000;output+=stringFromCharCode(value>>>10&0x3FF|0xD800);value=0xDC00|value&0x3FF;}output+=stringFromCharCode(value);return output;}).join('');}/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */function basicToDigit(codePoint){if(codePoint-48<10){return codePoint-22;}if(codePoint-65<26){return codePoint-65;}if(codePoint-97<26){return codePoint-97;}return base;}/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */function digitToBasic(digit,flag){//  0..25 map to ASCII a..z or A..Z\n// 26..35 map to ASCII 0..9\nreturn digit+22+75*(digit<26)-((flag!=0)<<5);}/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */function adapt(delta,numPoints,firstTime){var k=0;delta=firstTime?floor(delta/damp):delta>>1;delta+=floor(delta/numPoints);for(;delta>baseMinusTMin*tMax>>1;k+=base){delta=floor(delta/baseMinusTMin);}return floor(k+(baseMinusTMin+1)*delta/(delta+skew));}/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */function decode(input){// Don't use UCS-2\nvar output=[],inputLength=input.length,out,i=0,n=initialN,bias=initialBias,basic,j,index,oldi,w,k,digit,t,/** Cached calculation results */baseMinusT;// Handle the basic code points: let `basic` be the number of input code\n// points before the last delimiter, or `0` if there is none, then copy\n// the first basic code points to the output.\nbasic=input.lastIndexOf(delimiter);if(basic<0){basic=0;}for(j=0;j<basic;++j){// if it's not a basic code point\nif(input.charCodeAt(j)>=0x80){error('not-basic');}output.push(input.charCodeAt(j));}// Main decoding loop: start just after the last delimiter if any basic code\n// points were copied; start at the beginning otherwise.\nfor(index=basic>0?basic+1:0;index<inputLength;){// `index` is the index of the next character to be consumed.\n// Decode a generalized variable-length integer into `delta`,\n// which gets added to `i`. The overflow checking is easier\n// if we increase `i` as we go, then subtract off its starting\n// value at the end to obtain `delta`.\nfor(oldi=i,w=1,k=base;;k+=base){if(index>=inputLength){error('invalid-input');}digit=basicToDigit(input.charCodeAt(index++));if(digit>=base||digit>floor((maxInt-i)/w)){error('overflow');}i+=digit*w;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(digit<t){break;}baseMinusT=base-t;if(w>floor(maxInt/baseMinusT)){error('overflow');}w*=baseMinusT;}out=output.length+1;bias=adapt(i-oldi,out,oldi==0);// `i` was supposed to wrap around from `out` to `0`,\n// incrementing `n` each time, so we'll fix that now:\nif(floor(i/out)>maxInt-n){error('overflow');}n+=floor(i/out);i%=out;// Insert `n` at position `i` of the output\noutput.splice(i++,0,n);}return ucs2encode(output);}/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,output=[],/** `inputLength` will hold the number of code points in `input`. */inputLength,/** Cached calculation results */handledCPCountPlusOne,baseMinusT,qMinusT;// Convert the input in UCS-2 to Unicode\ninput=ucs2decode(input);// Cache the length\ninputLength=input.length;// Initialize the state\nn=initialN;delta=0;bias=initialBias;// Handle the basic code points\nfor(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<0x80){output.push(stringFromCharCode(currentValue));}}handledCPCount=basicLength=output.length;// `handledCPCount` is the number of code points that have been handled;\n// `basicLength` is the number of basic code points.\n// Finish the basic string - if it is not empty - with a delimiter\nif(basicLength){output.push(delimiter);}// Main encoding loop:\nwhile(handledCPCount<inputLength){// All non-basic code points < n have been handled already. Find the next\n// larger one:\nfor(m=maxInt,j=0;j<inputLength;++j){currentValue=input[j];if(currentValue>=n&&currentValue<m){m=currentValue;}}// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n// but guard against overflow\nhandledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne)){error('overflow');}delta+=(m-n)*handledCPCountPlusOne;n=m;for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<n&&++delta>maxInt){error('overflow');}if(currentValue==n){// Represent delta as a generalized variable-length integer\nfor(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q<t){break;}qMinusT=q-t;baseMinusT=base-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0)));q=floor(qMinusT/baseMinusT);}output.push(stringFromCharCode(digitToBasic(q,0)));bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength);delta=0;++handledCPCount;}}++delta;++n;}return output.join('');}/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string;});}/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?'xn--'+encode(string):string;});}/*--------------------------------------------------------------------------*/ /** Define the public API */punycode={/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */'version':'1.4.1',/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */'ucs2':{'decode':ucs2decode,'encode':ucs2encode},'decode':decode,'encode':encode,'toASCII':toASCII,'toUnicode':toUnicode};/** Expose `punycode` */ // Some AMD build optimizers, like r.js, check for specific condition patterns\n// like the following:\nif(typeof define=='function'&&typeof define.amd=='object'&&define.amd){define('punycode',function(){return punycode;});}else if(freeExports&&freeModule){if(module.exports==freeExports){// in Node.js, io.js, or RingoJS v0.8.0+\nfreeModule.exports=punycode;}else{// in Narwhal or RingoJS v0.7.0-\nfor(key in punycode){punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);}}}else{// in Rhino or a web browser\nroot.punycode=punycode;}})(this);}).call(this);}).call(this,typeof __webpack_require__.g!==\"undefined\"?__webpack_require__.g:typeof self!==\"undefined\"?self:typeof window!==\"undefined\"?window:{});},{}],52:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports=function(qs,sep,eq,options){sep=sep||'&';eq=eq||'=';var obj={};if(typeof qs!=='string'||qs.length===0){return obj;}var regexp=/\\+/g;qs=qs.split(sep);var maxKeys=1000;if(options&&typeof options.maxKeys==='number'){maxKeys=options.maxKeys;}var len=qs.length;// maxKeys <= 0 means that we should not limit keys count\nif(maxKeys>0&&len>maxKeys){len=maxKeys;}for(var i=0;i<len;++i){var x=qs[i].replace(regexp,'%20'),idx=x.indexOf(eq),kstr,vstr,k,v;if(idx>=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1);}else{kstr=x;vstr='';}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k)){obj[k]=v;}else if(isArray(obj[k])){obj[k].push(v);}else{obj[k]=[obj[k],v];}}return obj;};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};},{}],53:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';var stringifyPrimitive=function(v){switch(typeof v){case'string':return v;case'boolean':return v?'true':'false';case'number':return isFinite(v)?v:'';default:return'';}};module.exports=function(obj,sep,eq,name){sep=sep||'&';eq=eq||'=';if(obj===null){obj=undefined;}if(typeof obj==='object'){return map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;if(isArray(obj[k])){return map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v));}).join(sep);}else{return ks+encodeURIComponent(stringifyPrimitive(obj[k]));}}).join(sep);}if(!name)return'';return encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj));};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};function map(xs,f){if(xs.map)return xs.map(f);var res=[];for(var i=0;i<xs.length;i++){res.push(f(xs[i],i));}return res;}var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))res.push(key);}return res;};},{}],54:[function(require,module,exports){'use strict';exports.decode=exports.parse=require('./decode');exports.encode=exports.stringify=require('./encode');},{\"./decode\":52,\"./encode\":53}],55:[function(require,module,exports){'use strict';function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;subClass.__proto__=superClass;}var codes={};function createErrorType(code,message,Base){if(!Base){Base=Error;}function getMessage(arg1,arg2,arg3){if(typeof message==='string'){return message;}else{return message(arg1,arg2,arg3);}}var NodeError=/*#__PURE__*/function(_Base){_inheritsLoose(NodeError,_Base);function NodeError(arg1,arg2,arg3){return _Base.call(this,getMessage(arg1,arg2,arg3))||this;}return NodeError;}(Base);NodeError.prototype.name=Base.name;NodeError.prototype.code=code;codes[code]=NodeError;}// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected,thing){if(Array.isArray(expected)){var len=expected.length;expected=expected.map(function(i){return String(i);});if(len>2){return\"one of \".concat(thing,\" \").concat(expected.slice(0,len-1).join(', '),\", or \")+expected[len-1];}else if(len===2){return\"one of \".concat(thing,\" \").concat(expected[0],\" or \").concat(expected[1]);}else{return\"of \".concat(thing,\" \").concat(expected[0]);}}else{return\"of \".concat(thing,\" \").concat(String(expected));}}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search;}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str,search,this_len){if(this_len===undefined||this_len>str.length){this_len=str.length;}return str.substring(this_len-search.length,this_len)===search;}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str,search,start){if(typeof start!=='number'){start=0;}if(start+search.length>str.length){return false;}else{return str.indexOf(search,start)!==-1;}}createErrorType('ERR_INVALID_OPT_VALUE',function(name,value){return'The value \"'+value+'\" is invalid for option \"'+name+'\"';},TypeError);createErrorType('ERR_INVALID_ARG_TYPE',function(name,expected,actual){// determiner: 'must be' or 'must not be'\nvar determiner;if(typeof expected==='string'&&startsWith(expected,'not ')){determiner='must not be';expected=expected.replace(/^not /,'');}else{determiner='must be';}var msg;if(endsWith(name,' argument')){// For cases like 'first argument'\nmsg=\"The \".concat(name,\" \").concat(determiner,\" \").concat(oneOf(expected,'type'));}else{var type=includes(name,'.')?'property':'argument';msg=\"The \\\"\".concat(name,\"\\\" \").concat(type,\" \").concat(determiner,\" \").concat(oneOf(expected,'type'));}msg+=\". Received type \".concat(typeof actual);return msg;},TypeError);createErrorType('ERR_STREAM_PUSH_AFTER_EOF','stream.push() after EOF');createErrorType('ERR_METHOD_NOT_IMPLEMENTED',function(name){return'The '+name+' method is not implemented';});createErrorType('ERR_STREAM_PREMATURE_CLOSE','Premature close');createErrorType('ERR_STREAM_DESTROYED',function(name){return'Cannot call '+name+' after a stream was destroyed';});createErrorType('ERR_MULTIPLE_CALLBACK','Callback called multiple times');createErrorType('ERR_STREAM_CANNOT_PIPE','Cannot pipe, not readable');createErrorType('ERR_STREAM_WRITE_AFTER_END','write after end');createErrorType('ERR_STREAM_NULL_VALUES','May not write null values to stream',TypeError);createErrorType('ERR_UNKNOWN_ENCODING',function(arg){return'Unknown encoding: '+arg;},TypeError);createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT','stream.unshift() after end event');module.exports.codes=codes;},{}],56:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';/*<replacement>*/var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key);}return keys;};/*</replacement>*/module.exports=Duplex;var Readable=require('./_stream_readable');var Writable=require('./_stream_writable');require('inherits')(Duplex,Readable);{// Allow the keys array to be GC'ed.\nvar keys=objectKeys(Writable.prototype);for(var v=0;v<keys.length;v++){var method=keys[v];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method];}}function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);this.allowHalfOpen=true;if(options){if(options.readable===false)this.readable=false;if(options.writable===false)this.writable=false;if(options.allowHalfOpen===false){this.allowHalfOpen=false;this.once('end',onend);}}}Object.defineProperty(Duplex.prototype,'writableHighWaterMark',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState.highWaterMark;}});Object.defineProperty(Duplex.prototype,'writableBuffer',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer();}});Object.defineProperty(Duplex.prototype,'writableLength',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState.length;}});// the no-half-open enforcer\nfunction onend(){// If the writable side ended, then we're ok.\nif(this._writableState.ended)return;// no more data can be written.\n// But allow more writes to happen in this tick.\nprocess.nextTick(onEndNT,this);}function onEndNT(self){self.end();}Object.defineProperty(Duplex.prototype,'destroyed',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){if(this._readableState===undefined||this._writableState===undefined){return false;}return this._readableState.destroyed&&this._writableState.destroyed;},set:function set(value){// we ignore the value if the stream\n// has not been initialized yet\nif(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly\n// managing destroyed\nthis._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{\"./_stream_readable\":58,\"./_stream_writable\":60,\"_process\":50,\"inherits\":24}],57:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';module.exports=PassThrough;var Transform=require('./_stream_transform');require('inherits')(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options);}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk);};},{\"./_stream_transform\":59,\"inherits\":24}],58:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';module.exports=Readable;/*<replacement>*/var Duplex;/*</replacement>*/Readable.ReadableState=ReadableState;/*<replacement>*/var EE=require('events').EventEmitter;var EElistenerCount=function EElistenerCount(emitter,type){return emitter.listeners(type).length;};/*</replacement>*/ /*<replacement>*/var Stream=require('./internal/streams/stream');/*</replacement>*/var Buffer=require('buffer').Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk);}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array;}/*<replacement>*/var debugUtil=require('util');var debug;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog('stream');}else{debug=function debug(){};}/*</replacement>*/var BufferList=require('./internal/streams/buffer_list');var destroyImpl=require('./internal/streams/destroy');var _require=require('./internal/streams/state'),getHighWaterMark=_require.getHighWaterMark;var _require$codes=require('../errors').codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_STREAM_PUSH_AFTER_EOF=_require$codes.ERR_STREAM_PUSH_AFTER_EOF,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_STREAM_UNSHIFT_AFTER_END_EVENT=_require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;// Lazy loaded to improve the startup performance.\nvar StringDecoder;var createReadableStreamAsyncIterator;var from;require('inherits')(Readable,Stream);var errorOrDestroy=destroyImpl.errorOrDestroy;var kProxyEvents=['error','close','destroy','pause','resume'];function prependListener(emitter,event,fn){// Sadly this is not cacheable as some libraries bundle their own\n// event emitter implementation with them.\nif(typeof emitter.prependListener==='function')return emitter.prependListener(event,fn);// This is a hack to make sure that our error handler is attached before any\n// userland ones.  NEVER DO THIS. This is here only because this code needs\n// to continue to work with older versions of Node.js that do not include\n// the prependListener() method. The goal is to eventually remove this hack.\nif(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(Array.isArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]];}function ReadableState(options,stream,isDuplex){Duplex=Duplex||require('./_stream_duplex');options=options||{};// Duplex streams are both readable and writable, but share\n// the same options object.\n// However, some cases require setting options to different\n// values for the readable and the writable sides of the duplex stream.\n// These options can be provided separately as readableXXX and writableXXX.\nif(typeof isDuplex!=='boolean')isDuplex=stream instanceof Duplex;// object stream flag. Used to make read(n) ignore n and to\n// make all the buffer merging and length checks go away\nthis.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.readableObjectMode;// the point at which it stops calling _read() to fill the buffer\n// Note: 0 is a valid value, means \"don't call _read preemptively ever\"\nthis.highWaterMark=getHighWaterMark(this,options,'readableHighWaterMark',isDuplex);// A linked list is used to store data chunks instead of an array because the\n// linked list can remove elements from the beginning faster than\n// array.shift()\nthis.buffer=new BufferList();this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;// a flag to be able to tell if the event 'readable'/'data' is emitted\n// immediately, or on a later tick.  We set this to true at first, because\n// any actions that shouldn't happen until \"later\" should generally also\n// not happen before the first read call.\nthis.sync=true;// whenever we return null, then we set a flag to say\n// that we're awaiting a 'readable' event emission.\nthis.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.paused=true;// Should close be emitted on destroy. Defaults to true.\nthis.emitClose=options.emitClose!==false;// Should .destroy() be called after 'end' (and potentially 'finish')\nthis.autoDestroy=!!options.autoDestroy;// has it been destroyed\nthis.destroyed=false;// Crypto is kind of old and crusty.  Historically, its default string\n// encoding is 'binary' so we have to make this configurable.\n// Everything else in the universe uses 'utf8', though.\nthis.defaultEncoding=options.defaultEncoding||'utf8';// the number of writers that are awaiting a drain event in .pipe()s\nthis.awaitDrain=0;// if true, a maybeReadMore has been scheduled\nthis.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require('string_decoder/').StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding;}}function Readable(options){Duplex=Duplex||require('./_stream_duplex');if(!(this instanceof Readable))return new Readable(options);// Checking for a Stream.Duplex instance is faster here instead of inside\n// the ReadableState constructor, at least with V8 6.5\nvar isDuplex=this instanceof Duplex;this._readableState=new ReadableState(options,this,isDuplex);// legacy\nthis.readable=true;if(options){if(typeof options.read==='function')this._read=options.read;if(typeof options.destroy==='function')this._destroy=options.destroy;}Stream.call(this);}Object.defineProperty(Readable.prototype,'destroyed',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){if(this._readableState===undefined){return false;}return this._readableState.destroyed;},set:function set(value){// we ignore the value if the stream\n// has not been initialized yet\nif(!this._readableState){return;}// backward compatibility, the user is explicitly\n// managing destroyed\nthis._readableState.destroyed=value;}});Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err);};// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push=function(chunk,encoding){var state=this._readableState;var skipChunkCheck;if(!state.objectMode){if(typeof chunk==='string'){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=Buffer.from(chunk,encoding);encoding='';}skipChunkCheck=true;}}else{skipChunkCheck=true;}return readableAddChunk(this,chunk,encoding,false,skipChunkCheck);};// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift=function(chunk){return readableAddChunk(this,chunk,null,true,false);};function readableAddChunk(stream,chunk,encoding,addToFront,skipChunkCheck){debug('readableAddChunk',chunk);var state=stream._readableState;if(chunk===null){state.reading=false;onEofChunk(stream,state);}else{var er;if(!skipChunkCheck)er=chunkInvalid(state,chunk);if(er){errorOrDestroy(stream,er);}else if(state.objectMode||chunk&&chunk.length>0){if(typeof chunk!=='string'&&!state.objectMode&&Object.getPrototypeOf(chunk)!==Buffer.prototype){chunk=_uint8ArrayToBuffer(chunk);}if(addToFront){if(state.endEmitted)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream,state,chunk,true);}else if(state.ended){errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF());}else if(state.destroyed){return false;}else{state.reading=false;if(state.decoder&&!encoding){chunk=state.decoder.write(chunk);if(state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,false);else maybeReadMore(stream,state);}else{addChunk(stream,state,chunk,false);}}}else if(!addToFront){state.reading=false;maybeReadMore(stream,state);}}// We can push more data if we are below the highWaterMark.\n// Also, if we have no data yet, we can stand some more bytes.\n// This is to work around cases where hwm=0, such as the repl.\nreturn!state.ended&&(state.length<state.highWaterMark||state.length===0);}function addChunk(stream,state,chunk,addToFront){if(state.flowing&&state.length===0&&!state.sync){state.awaitDrain=0;stream.emit('data',chunk);}else{// update the buffer info.\nstate.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream);}maybeReadMore(stream,state);}function chunkInvalid(state,chunk){var er;if(!_isUint8Array(chunk)&&typeof chunk!=='string'&&chunk!==undefined&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE('chunk',['string','Buffer','Uint8Array'],chunk);}return er;}Readable.prototype.isPaused=function(){return this._readableState.flowing===false;};// backwards compatibility.\nReadable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require('string_decoder/').StringDecoder;var decoder=new StringDecoder(enc);this._readableState.decoder=decoder;// If setEncoding(null), decoder.encoding equals utf8\nthis._readableState.encoding=this._readableState.decoder.encoding;// Iterate over current buffer to convert already stored Buffers:\nvar p=this._readableState.buffer.head;var content='';while(p!==null){content+=decoder.write(p.data);p=p.next;}this._readableState.buffer.clear();if(content!=='')this._readableState.buffer.push(content);this._readableState.length=content.length;return this;};// Don't raise the hwm > 1GB\nvar MAX_HWM=0x40000000;function computeNewHighWaterMark(n){if(n>=MAX_HWM){// TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\nn=MAX_HWM;}else{// Get the next highest power of 2 to prevent increasing hwm excessively in\n// tiny amounts\nn--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++;}return n;}// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){// Only flow one buffer at a time\nif(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length;}// If we're asking for more than the current hwm, then raise the hwm.\nif(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;// Don't have enough\nif(!state.ended){state.needReadable=true;return 0;}return state.length;}// you can override either this method, or the async _read(n) below.\nReadable.prototype.read=function(n){debug('read',n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;// if we're doing read(0) to trigger a readable event, but we\n// already have a bunch of data in the buffer, then just trigger\n// the 'readable' event and move on.\nif(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){debug('read: emitReadable',state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null;}n=howMuchToRead(n,state);// if we've ended, and we're now clear, then finish it up.\nif(n===0&&state.ended){if(state.length===0)endReadable(this);return null;}// All the actual chunk generation logic needs to be\n// *below* the call to _read.  The reason is that in certain\n// synthetic stream cases, such as passthrough streams, _read\n// may be a completely synchronous operation which may change\n// the state of the read buffer, providing enough data when\n// before there was *not* enough.\n//\n// So, the steps are:\n// 1. Figure out what the state of things will be after we do\n// a read from the buffer.\n//\n// 2. If that resulting state will trigger a _read, then call _read.\n// Note that this may be asynchronous, or synchronous.  Yes, it is\n// deeply ugly to write APIs this way, but that still doesn't mean\n// that the Readable class should behave improperly, as streams are\n// designed to be sync/async agnostic.\n// Take note if the _read call is sync or async (ie, if the read call\n// has returned yet), so that we know whether or not it's safe to emit\n// 'readable' etc.\n//\n// 3. Actually pull the requested chunks out of the buffer and return.\n// if we need a readable event, then we need to do some reading.\nvar doRead=state.needReadable;debug('need readable',doRead);// if we currently have less than the highWaterMark, then also read some\nif(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug('length less than watermark',doRead);}// however, if we've ended, then there's no point, and if we're already\n// reading, then it's unnecessary.\nif(state.ended||state.reading){doRead=false;debug('reading or ended',doRead);}else if(doRead){debug('do read');state.reading=true;state.sync=true;// if the length is currently zero, then we *need* a readable event.\nif(state.length===0)state.needReadable=true;// call internal read method\nthis._read(state.highWaterMark);state.sync=false;// If _read pushed data synchronously, then `reading` will be false,\n// and we need to re-evaluate how much data we can return to the user.\nif(!state.reading)n=howMuchToRead(nOrig,state);}var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=state.length<=state.highWaterMark;n=0;}else{state.length-=n;state.awaitDrain=0;}if(state.length===0){// If we have nothing in the buffer, then we want to know\n// as soon as we *do* get something into the buffer.\nif(!state.ended)state.needReadable=true;// If we tried to read() past the EOF, then emit end on the next tick.\nif(nOrig!==n&&state.ended)endReadable(this);}if(ret!==null)this.emit('data',ret);return ret;};function onEofChunk(stream,state){debug('onEofChunk');if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length;}}state.ended=true;if(state.sync){// if we are sync, wait until next tick to emit the data.\n// Otherwise we risk emitting data in the flow()\n// the readable code triggers during a read() call\nemitReadable(stream);}else{// emit 'readable' now to make sure it gets picked up.\nstate.needReadable=false;if(!state.emittedReadable){state.emittedReadable=true;emitReadable_(stream);}}}// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream){var state=stream._readableState;debug('emitReadable',state.needReadable,state.emittedReadable);state.needReadable=false;if(!state.emittedReadable){debug('emitReadable',state.flowing);state.emittedReadable=true;process.nextTick(emitReadable_,stream);}}function emitReadable_(stream){var state=stream._readableState;debug('emitReadable_',state.destroyed,state.length,state.ended);if(!state.destroyed&&(state.length||state.ended)){stream.emit('readable');state.emittedReadable=false;}// The stream needs another readable event if\n// 1. It is not flowing, as the flow mechanism will take\n//    care of it.\n// 2. It is not ended.\n// 3. It is below the highWaterMark, so we can schedule\n//    another readable later.\nstate.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark;flow(stream);}// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;process.nextTick(maybeReadMore_,stream,state);}}function maybeReadMore_(stream,state){// Attempt to read more data if we should.\n//\n// The conditions for reading more data are (one of):\n// - Not enough data buffered (state.length < state.highWaterMark). The loop\n//   is responsible for filling the buffer with enough data if such data\n//   is available. If highWaterMark is 0 and we are not in the flowing mode\n//   we should _not_ attempt to buffer any extra data. We'll get more data\n//   when the stream consumer calls read() instead.\n// - No data in the buffer, and the stream is in flowing mode. In this mode\n//   the loop below is responsible for ensuring read() is called. Failing to\n//   call read here would abort the flow and there's no other mechanism for\n//   continuing the flow if the stream consumer has just subscribed to the\n//   'data' event.\n//\n// In addition to the above conditions to keep reading data, the following\n// conditions prevent the data from being read:\n// - The stream has ended (state.ended).\n// - There is already a pending 'read' operation (state.reading). This is a\n//   case where the the stream has called the implementation defined _read()\n//   method, but they are processing the call asynchronously and have _not_\n//   called push() with new data. In this case we skip performing more\n//   read()s. The execution ends in this method again after the _read() ends\n//   up calling push() with more data.\nwhile(!state.reading&&!state.ended&&(state.length<state.highWaterMark||state.flowing&&state.length===0)){var len=state.length;debug('maybeReadMore read 0');stream.read(0);if(len===state.length)// didn't get any data, stop spinning.\nbreak;}state.readingMore=false;}// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED('_read()'));};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break;}state.pipesCount+=1;debug('pipe count=%d opts=%j',state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:unpipe;if(state.endEmitted)process.nextTick(endFn);else src.once('end',endFn);dest.on('unpipe',onunpipe);function onunpipe(readable,unpipeInfo){debug('onunpipe');if(readable===src){if(unpipeInfo&&unpipeInfo.hasUnpiped===false){unpipeInfo.hasUnpiped=true;cleanup();}}}function onend(){debug('onend');dest.end();}// when the dest drains, it reduces the awaitDrain counter\n// on the source.  This would be more elegant with a .once()\n// handler in flow(), but adding and removing repeatedly is\n// too slow.\nvar ondrain=pipeOnDrain(src);dest.on('drain',ondrain);var cleanedUp=false;function cleanup(){debug('cleanup');// cleanup event handlers once the pipe is broken\ndest.removeListener('close',onclose);dest.removeListener('finish',onfinish);dest.removeListener('drain',ondrain);dest.removeListener('error',onerror);dest.removeListener('unpipe',onunpipe);src.removeListener('end',onend);src.removeListener('end',unpipe);src.removeListener('data',ondata);cleanedUp=true;// if the reader is waiting for a drain event from this\n// specific writer, then it would cause it to never start\n// flowing again.\n// So, if this is awaiting a drain, then we just call it now.\n// If we don't know, then assume that we are waiting for one.\nif(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain();}src.on('data',ondata);function ondata(chunk){debug('ondata');var ret=dest.write(chunk);debug('dest.write',ret);if(ret===false){// If the user unpiped during `dest.write()`, it is possible\n// to get stuck in a permanently paused state if that write\n// also returned false.\n// => Check whether `dest` is still a piping destination.\nif((state.pipesCount===1&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug('false write response, pause',state.awaitDrain);state.awaitDrain++;}src.pause();}}// if the dest has an error, then stop piping into it.\n// however, don't suppress the throwing behavior for this.\nfunction onerror(er){debug('onerror',er);unpipe();dest.removeListener('error',onerror);if(EElistenerCount(dest,'error')===0)errorOrDestroy(dest,er);}// Make sure our error handler is attached before userland ones.\nprependListener(dest,'error',onerror);// Both close and finish should trigger unpipe, but only once.\nfunction onclose(){dest.removeListener('finish',onfinish);unpipe();}dest.once('close',onclose);function onfinish(){debug('onfinish');dest.removeListener('close',onclose);unpipe();}dest.once('finish',onfinish);function unpipe(){debug('unpipe');src.unpipe(dest);}// tell the dest that it's being piped to\ndest.emit('pipe',src);// start the flow if it hasn't been started already.\nif(!state.flowing){debug('pipe resume');src.resume();}return dest;};function pipeOnDrain(src){return function pipeOnDrainFunctionResult(){var state=src._readableState;debug('pipeOnDrain',state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,'data')){state.flowing=true;flow(src);}};}Readable.prototype.unpipe=function(dest){var state=this._readableState;var unpipeInfo={hasUnpiped:false};// if we're not piping anywhere, then do nothing.\nif(state.pipesCount===0)return this;// just one destination.  most common case.\nif(state.pipesCount===1){// passed in one, but it's not the right one.\nif(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;// got a match.\nstate.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit('unpipe',this,unpipeInfo);return this;}// slow case. multiple pipe destinations.\nif(!dest){// remove all.\nvar dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var i=0;i<len;i++){dests[i].emit('unpipe',this,{hasUnpiped:false});}return this;}// try to find the right one.\nvar index=indexOf(state.pipes,dest);if(index===-1)return this;state.pipes.splice(index,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit('unpipe',this,unpipeInfo);return this;};// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);var state=this._readableState;if(ev==='data'){// update readableListening so that resume() may be a no-op\n// a few lines down. This is needed to support once('readable').\nstate.readableListening=this.listenerCount('readable')>0;// Try start flowing on next tick if stream isn't explicitly paused\nif(state.flowing!==false)this.resume();}else if(ev==='readable'){if(!state.endEmitted&&!state.readableListening){state.readableListening=state.needReadable=true;state.flowing=false;state.emittedReadable=false;debug('on readable',state.length,state.reading);if(state.length){emitReadable(this);}else if(!state.reading){process.nextTick(nReadingNextTick,this);}}}return res;};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);if(ev==='readable'){// We need to check if there is someone still listening to\n// readable and reset the state. However this needs to happen\n// after readable has been emitted but before I/O (nextTick) to\n// support once('readable', fn) cycles. This means that calling\n// resume within the same tick will have no\n// effect.\nprocess.nextTick(updateReadableListening,this);}return res;};Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev==='readable'||ev===undefined){// We need to check if there is someone still listening to\n// readable and reset the state. However this needs to happen\n// after readable has been emitted but before I/O (nextTick) to\n// support once('readable', fn) cycles. This means that calling\n// resume within the same tick will have no\n// effect.\nprocess.nextTick(updateReadableListening,this);}return res;};function updateReadableListening(self){var state=self._readableState;state.readableListening=self.listenerCount('readable')>0;if(state.resumeScheduled&&!state.paused){// flowing needs to be set to true now, otherwise\n// the upcoming resume will not flow.\nstate.flowing=true;// crude way to check if we should resume\n}else if(self.listenerCount('data')>0){self.resume();}}function nReadingNextTick(self){debug('readable nexttick read 0');self.read(0);}// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug('resume');// we flow only if there is no one listening\n// for readable, but we still have to call\n// resume()\nstate.flowing=!state.readableListening;resume(this,state);}state.paused=false;return this;};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;process.nextTick(resume_,stream,state);}}function resume_(stream,state){debug('resume',state.reading);if(!state.reading){stream.read(0);}state.resumeScheduled=false;stream.emit('resume');flow(stream);if(state.flowing&&!state.reading)stream.read(0);}Readable.prototype.pause=function(){debug('call pause flowing=%j',this._readableState.flowing);if(this._readableState.flowing!==false){debug('pause');this._readableState.flowing=false;this.emit('pause');}this._readableState.paused=true;return this;};function flow(stream){var state=stream._readableState;debug('flow',state.flowing);while(state.flowing&&stream.read()!==null){;}}// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap=function(stream){var _this=this;var state=this._readableState;var paused=false;stream.on('end',function(){debug('wrapped end');if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)_this.push(chunk);}_this.push(null);});stream.on('data',function(chunk){debug('wrapped data');if(state.decoder)chunk=state.decoder.write(chunk);// don't skip over falsy values in objectMode\nif(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=_this.push(chunk);if(!ret){paused=true;stream.pause();}});// proxy all the other methods.\n// important when wrapping filters and duplexes.\nfor(var i in stream){if(this[i]===undefined&&typeof stream[i]==='function'){this[i]=function methodWrap(method){return function methodWrapReturnFunction(){return stream[method].apply(stream,arguments);};}(i);}}// proxy certain important events.\nfor(var n=0;n<kProxyEvents.length;n++){stream.on(kProxyEvents[n],this.emit.bind(this,kProxyEvents[n]));}// when we try to consume some more bytes, simply unpause the\n// underlying stream.\nthis._read=function(n){debug('wrapped _read',n);if(paused){paused=false;stream.resume();}};return this;};if(typeof Symbol==='function'){Readable.prototype[Symbol.asyncIterator]=function(){if(createReadableStreamAsyncIterator===undefined){createReadableStreamAsyncIterator=require('./internal/streams/async_iterator');}return createReadableStreamAsyncIterator(this);};}Object.defineProperty(Readable.prototype,'readableHighWaterMark',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._readableState.highWaterMark;}});Object.defineProperty(Readable.prototype,'readableBuffer',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._readableState&&this._readableState.buffer;}});Object.defineProperty(Readable.prototype,'readableFlowing',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._readableState.flowing;},set:function set(state){if(this._readableState){this._readableState.flowing=state;}}});// exposed for testing purposes only.\nReadable._fromList=fromList;Object.defineProperty(Readable.prototype,'readableLength',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._readableState.length;}});// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n,state){// nothing buffered\nif(state.length===0)return null;var ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){// read it all, truncate the list\nif(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear();}else{// read part of list\nret=state.buffer.consume(n,state.decoder);}return ret;}function endReadable(stream){var state=stream._readableState;debug('endReadable',state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream);}}function endReadableNT(state,stream){debug('endReadableNT',state.endEmitted,state.length);// Check that we didn't get one last unshift.\nif(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit('end');if(state.autoDestroy){// In case of duplex streams we need a way to detect\n// if the writable side is ready for autoDestroy as well\nvar wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy();}}}}if(typeof Symbol==='function'){Readable.from=function(iterable,opts){if(from===undefined){from=require('./internal/streams/from');}return from(Readable,iterable,opts);};}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this);}).call(this,require('_process'),typeof __webpack_require__.g!==\"undefined\"?__webpack_require__.g:typeof self!==\"undefined\"?self:typeof window!==\"undefined\"?window:{});},{\"../errors\":55,\"./_stream_duplex\":56,\"./internal/streams/async_iterator\":61,\"./internal/streams/buffer_list\":62,\"./internal/streams/destroy\":63,\"./internal/streams/from\":65,\"./internal/streams/state\":67,\"./internal/streams/stream\":68,\"_process\":50,\"buffer\":17,\"events\":22,\"inherits\":24,\"string_decoder/\":75,\"util\":16}],59:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';module.exports=Transform;var _require$codes=require('../errors').codes,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_TRANSFORM_ALREADY_TRANSFORMING=_require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,ERR_TRANSFORM_WITH_LENGTH_0=_require$codes.ERR_TRANSFORM_WITH_LENGTH_0;var Duplex=require('./_stream_duplex');require('inherits')(Transform,Duplex);function afterTransform(er,data){var ts=this._transformState;ts.transforming=false;var cb=ts.writecb;if(cb===null){return this.emit('error',new ERR_MULTIPLE_CALLBACK());}ts.writechunk=null;ts.writecb=null;if(data!=null)// single equals check for both `null` and `undefined`\nthis.push(data);cb(er);var rs=this._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){this._read(rs.highWaterMark);}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);this._transformState={afterTransform:afterTransform.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null};// start out asking for a readable event once data is transformed.\nthis._readableState.needReadable=true;// we have implemented the _read method, and done the other things\n// that Readable wants before the first _read call, so unset the\n// sync guard flag.\nthis._readableState.sync=false;if(options){if(typeof options.transform==='function')this._transform=options.transform;if(typeof options.flush==='function')this._flush=options.flush;}// When the writable side finishes, then flush out anything remaining.\nthis.on('prefinish',prefinish);}function prefinish(){var _this=this;if(typeof this._flush==='function'&&!this._readableState.destroyed){this._flush(function(er,data){done(_this,er,data);});}else{done(this,null,null);}}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding);};// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark);}};// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform);}else{// mark that we need a transform, so that any data that comes in\n// will get processed, now that we've asked for it.\nts.needTransform=true;}};Transform.prototype._destroy=function(err,cb){Duplex.prototype._destroy.call(this,err,function(err2){cb(err2);});};function done(stream,er,data){if(er)return stream.emit('error',er);if(data!=null)// single equals check for both `null` and `undefined`\nstream.push(data);// TODO(BridgeAR): Write a test for these two error cases\n// if there's nothing in the write buffer, then that means\n// that nothing more will ever be provided\nif(stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0();if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();return stream.push(null);}},{\"../errors\":55,\"./_stream_duplex\":56,\"inherits\":24}],60:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';module.exports=Writable;/* <replacement> */function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null;}// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(){onCorkedFinish(_this,state);};}/* </replacement> */ /*<replacement>*/var Duplex;/*</replacement>*/Writable.WritableState=WritableState;/*<replacement>*/var internalUtil={deprecate:require('util-deprecate')};/*</replacement>*/ /*<replacement>*/var Stream=require('./internal/streams/stream');/*</replacement>*/var Buffer=require('buffer').Buffer;var OurUint8Array=global.Uint8Array||function(){};function _uint8ArrayToBuffer(chunk){return Buffer.from(chunk);}function _isUint8Array(obj){return Buffer.isBuffer(obj)||obj instanceof OurUint8Array;}var destroyImpl=require('./internal/streams/destroy');var _require=require('./internal/streams/state'),getHighWaterMark=_require.getHighWaterMark;var _require$codes=require('../errors').codes,ERR_INVALID_ARG_TYPE=_require$codes.ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED=_require$codes.ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK=_require$codes.ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE=_require$codes.ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED,ERR_STREAM_NULL_VALUES=_require$codes.ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END=_require$codes.ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING=_require$codes.ERR_UNKNOWN_ENCODING;var errorOrDestroy=destroyImpl.errorOrDestroy;require('inherits')(Writable,Stream);function nop(){}function WritableState(options,stream,isDuplex){Duplex=Duplex||require('./_stream_duplex');options=options||{};// Duplex streams are both readable and writable, but share\n// the same options object.\n// However, some cases require setting options to different\n// values for the readable and the writable sides of the duplex stream,\n// e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\nif(typeof isDuplex!=='boolean')isDuplex=stream instanceof Duplex;// object stream flag to indicate whether or not this stream\n// contains buffers or objects.\nthis.objectMode=!!options.objectMode;if(isDuplex)this.objectMode=this.objectMode||!!options.writableObjectMode;// the point at which write() starts returning false\n// Note: 0 is a valid value, means that we always return false if\n// the entire buffer is not flushed immediately on write()\nthis.highWaterMark=getHighWaterMark(this,options,'writableHighWaterMark',isDuplex);// if _final has been called\nthis.finalCalled=false;// drain event flag.\nthis.needDrain=false;// at the start of calling end()\nthis.ending=false;// when end() has been called, and returned\nthis.ended=false;// when 'finish' is emitted\nthis.finished=false;// has it been destroyed\nthis.destroyed=false;// should we decode strings into buffers before passing to _write?\n// this is here so that some node-core streams can optimize string\n// handling at a lower level.\nvar noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;// Crypto is kind of old and crusty.  Historically, its default string\n// encoding is 'binary' so we have to make this configurable.\n// Everything else in the universe uses 'utf8', though.\nthis.defaultEncoding=options.defaultEncoding||'utf8';// not an actual buffer we keep track of, but a measurement\n// of how much we're waiting to get pushed to some underlying\n// socket or file.\nthis.length=0;// a flag to see when we're in the middle of a write.\nthis.writing=false;// when true all writes will be buffered until .uncork() call\nthis.corked=0;// a flag to be able to tell if the onwrite cb is called immediately,\n// or on a later tick.  We set this to true at first, because any\n// actions that shouldn't happen until \"later\" should generally also\n// not happen before the first write call.\nthis.sync=true;// a flag to know if we're processing previously buffered items, which\n// may call the _write() callback in the same tick, so that we don't\n// end up in an overlapped onwrite situation.\nthis.bufferProcessing=false;// the callback that's passed to _write(chunk,cb)\nthis.onwrite=function(er){onwrite(stream,er);};// the callback that the user supplies to write(chunk,encoding,cb)\nthis.writecb=null;// the amount that is being written when _write is called.\nthis.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;// number of pending user-supplied write callbacks\n// this must be 0 before 'finish' can be emitted\nthis.pendingcb=0;// emit prefinish if the only thing we're waiting for is _write cbs\n// This is relevant for synchronous Transform streams\nthis.prefinished=false;// True if the error was already emitted and should not be thrown again\nthis.errorEmitted=false;// Should close be emitted on destroy. Defaults to true.\nthis.emitClose=options.emitClose!==false;// Should .destroy() be called after 'finish' (and potentially 'end')\nthis.autoDestroy=!!options.autoDestroy;// count buffered requests\nthis.bufferedRequestCount=0;// allocate the first CorkedRequest, there is always\n// one allocated and free to use, and we maintain at most two\nthis.corkedRequestsFree=new CorkedRequest(this);}WritableState.prototype.getBuffer=function getBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next;}return out;};(function(){try{Object.defineProperty(WritableState.prototype,'buffer',{get:internalUtil.deprecate(function writableStateBufferGetter(){return this.getBuffer();},'_writableState.buffer is deprecated. Use _writableState.getBuffer '+'instead.','DEP0003')});}catch(_){}})();// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;if(typeof Symbol==='function'&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==='function'){realHasInstance=Function.prototype[Symbol.hasInstance];Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(object){if(realHasInstance.call(this,object))return true;if(this!==Writable)return false;return object&&object._writableState instanceof WritableState;}});}else{realHasInstance=function realHasInstance(object){return object instanceof this;};}function Writable(options){Duplex=Duplex||require('./_stream_duplex');// Writable ctor is applied to Duplexes, too.\n// `realHasInstance` is necessary because using plain `instanceof`\n// would return false, as no `_writableState` property is attached.\n// Trying to use the custom `instanceof` for Writable here will also break the\n// Node.js LazyTransform implementation, which has a non-trivial getter for\n// `_writableState` that would lead to infinite recursion.\n// Checking for a Stream.Duplex instance is faster here instead of inside\n// the WritableState constructor, at least with V8 6.5\nvar isDuplex=this instanceof Duplex;if(!isDuplex&&!realHasInstance.call(Writable,this))return new Writable(options);this._writableState=new WritableState(options,this,isDuplex);// legacy.\nthis.writable=true;if(options){if(typeof options.write==='function')this._write=options.write;if(typeof options.writev==='function')this._writev=options.writev;if(typeof options.destroy==='function')this._destroy=options.destroy;if(typeof options.final==='function')this._final=options.final;}Stream.call(this);}// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE());};function writeAfterEnd(stream,cb){var er=new ERR_STREAM_WRITE_AFTER_END();// TODO: defer error events consistently everywhere, not just the cb\nerrorOrDestroy(stream,er);process.nextTick(cb,er);}// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream,state,chunk,cb){var er;if(chunk===null){er=new ERR_STREAM_NULL_VALUES();}else if(typeof chunk!=='string'&&!state.objectMode){er=new ERR_INVALID_ARG_TYPE('chunk',['string','Buffer'],chunk);}if(er){errorOrDestroy(stream,er);process.nextTick(cb,er);return false;}return true;}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;var isBuf=!state.objectMode&&_isUint8Array(chunk);if(isBuf&&!Buffer.isBuffer(chunk)){chunk=_uint8ArrayToBuffer(chunk);}if(typeof encoding==='function'){cb=encoding;encoding=null;}if(isBuf)encoding='buffer';else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=='function')cb=nop;if(state.ending)writeAfterEnd(this,cb);else if(isBuf||validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,isBuf,chunk,encoding,cb);}return ret;};Writable.prototype.cork=function(){this._writableState.corked++;};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state);}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){// node::ParseEncoding() requires lower case.\nif(typeof encoding==='string')encoding=encoding.toLowerCase();if(!(['hex','utf8','utf-8','ascii','binary','base64','ucs2','ucs-2','utf16le','utf-16le','raw'].indexOf((encoding+'').toLowerCase())>-1))throw new ERR_UNKNOWN_ENCODING(encoding);this._writableState.defaultEncoding=encoding;return this;};Object.defineProperty(Writable.prototype,'writableBuffer',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer();}});function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==='string'){chunk=Buffer.from(chunk,encoding);}return chunk;}Object.defineProperty(Writable.prototype,'writableHighWaterMark',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState.highWaterMark;}});// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream,state,isBuf,chunk,encoding,cb){if(!isBuf){var newChunk=decodeChunk(state,chunk,encoding);if(chunk!==newChunk){isBuf=true;encoding='buffer';chunk=newChunk;}}var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;// we must ensure that previous needDrain will not be reset to false.\nif(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest={chunk:chunk,encoding:encoding,isBuf:isBuf,callback:cb,next:null};if(last){last.next=state.lastBufferedRequest;}else{state.bufferedRequest=state.lastBufferedRequest;}state.bufferedRequestCount+=1;}else{doWrite(stream,state,false,len,chunk,encoding,cb);}return ret;}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(state.destroyed)state.onwrite(new ERR_STREAM_DESTROYED('write'));else if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false;}function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync){// defer the callback if we are being called synchronously\n// to avoid piling up things on the stack\nprocess.nextTick(cb,er);// this can emit finish, and it will always happen\n// after error\nprocess.nextTick(finishMaybe,stream,state);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er);}else{// the caller expect this to happen before if\n// it is async\ncb(er);stream._writableState.errorEmitted=true;errorOrDestroy(stream,er);// this can emit finish, but finish must\n// always follow error\nfinishMaybe(stream,state);}}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0;}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;if(typeof cb!=='function')throw new ERR_MULTIPLE_CALLBACK();onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{// Check if we're actually ready to finish, but don't emit yet\nvar finished=needFinish(state)||stream.destroyed;if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state);}if(sync){process.nextTick(afterWrite,stream,state,finished,cb);}else{afterWrite(stream,state,finished,cb);}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state);}// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit('drain');}}// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){// Fast case, write everything using _writev()\nvar l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;var allBuffers=true;while(entry){buffer[count]=entry;if(!entry.isBuf)allBuffers=false;entry=entry.next;count+=1;}buffer.allBuffers=allBuffers;doWrite(stream,state,true,state.length,buffer,'',holder.finish);// doWrite is almost always async, defer these to save a bit of time\n// as the hot path ends with doWrite\nstate.pendingcb++;state.lastBufferedRequest=null;if(holder.next){state.corkedRequestsFree=holder.next;holder.next=null;}else{state.corkedRequestsFree=new CorkedRequest(state);}state.bufferedRequestCount=0;}else{// Slow case, write chunks one-by-one\nwhile(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;state.bufferedRequestCount--;// if we didn't call the onwrite immediately, then\n// it means that we need to wait until it does.\n// also, that means that the chunk and cb are currently\n// being processed, so move the buffer counter past them.\nif(state.writing){break;}}if(entry===null)state.lastBufferedRequest=null;}state.bufferedRequest=entry;state.bufferProcessing=false;}Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==='function'){cb=chunk;chunk=null;encoding=null;}else if(typeof encoding==='function'){cb=encoding;encoding=null;}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);// .end() fully uncorks\nif(state.corked){state.corked=1;this.uncork();}// ignore unnecessary end() calls.\nif(!state.ending)endWritable(this,state,cb);return this;};Object.defineProperty(Writable.prototype,'writableLength',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){return this._writableState.length;}});function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing;}function callFinal(stream,state){stream._final(function(err){state.pendingcb--;if(err){errorOrDestroy(stream,err);}state.prefinished=true;stream.emit('prefinish');finishMaybe(stream,state);});}function prefinish(stream,state){if(!state.prefinished&&!state.finalCalled){if(typeof stream._final==='function'&&!state.destroyed){state.pendingcb++;state.finalCalled=true;process.nextTick(callFinal,stream,state);}else{state.prefinished=true;stream.emit('prefinish');}}}function finishMaybe(stream,state){var need=needFinish(state);if(need){prefinish(stream,state);if(state.pendingcb===0){state.finished=true;stream.emit('finish');if(state.autoDestroy){// In case of duplex streams we need a way to detect\n// if the readable side is ready for autoDestroy as well\nvar rState=stream._readableState;if(!rState||rState.autoDestroy&&rState.endEmitted){stream.destroy();}}}}return need;}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)process.nextTick(cb);else stream.once('finish',cb);}state.ended=true;stream.writable=false;}function onCorkedFinish(corkReq,state,err){var entry=corkReq.entry;corkReq.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next;}// reuse the free corkReq.\nstate.corkedRequestsFree.next=corkReq;}Object.defineProperty(Writable.prototype,'destroyed',{// making it explicit this property is not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail\nenumerable:false,get:function get(){if(this._writableState===undefined){return false;}return this._writableState.destroyed;},set:function set(value){// we ignore the value if the stream\n// has not been initialized yet\nif(!this._writableState){return;}// backward compatibility, the user is explicitly\n// managing destroyed\nthis._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err);};}).call(this);}).call(this,require('_process'),typeof __webpack_require__.g!==\"undefined\"?__webpack_require__.g:typeof self!==\"undefined\"?self:typeof window!==\"undefined\"?window:{});},{\"../errors\":55,\"./_stream_duplex\":56,\"./internal/streams/destroy\":63,\"./internal/streams/state\":67,\"./internal/streams/stream\":68,\"_process\":50,\"buffer\":17,\"inherits\":24,\"util-deprecate\":78}],61:[function(require,module,exports){(function(process){(function(){'use strict';var _Object$setPrototypeO;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;}var finished=require('./end-of-stream');var kLastResolve=Symbol('lastResolve');var kLastReject=Symbol('lastReject');var kError=Symbol('error');var kEnded=Symbol('ended');var kLastPromise=Symbol('lastPromise');var kHandlePromise=Symbol('handlePromise');var kStream=Symbol('stream');function createIterResult(value,done){return{value:value,done:done};}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();// we defer if data is null\n// we can be expecting either 'end' or\n// 'error'\nif(data!==null){iter[kLastPromise]=null;iter[kLastResolve]=null;iter[kLastReject]=null;resolve(createIterResult(data,false));}}}function onReadable(iter){// we wait for the next tick, because it might\n// emit an error with process.nextTick\nprocess.nextTick(readAndResolve,iter);}function wrapForNext(lastPromise,iter){return function(resolve,reject){lastPromise.then(function(){if(iter[kEnded]){resolve(createIterResult(undefined,true));return;}iter[kHandlePromise](resolve,reject);},reject);};}var AsyncIteratorPrototype=Object.getPrototypeOf(function(){});var ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_Object$setPrototypeO={get stream(){return this[kStream];},next:function next(){var _this=this;// if we have detected an error in the meanwhile\n// reject straight away\nvar error=this[kError];if(error!==null){return Promise.reject(error);}if(this[kEnded]){return Promise.resolve(createIterResult(undefined,true));}if(this[kStream].destroyed){// We need to defer via nextTick because if .destroy(err) is\n// called, the error will be emitted via nextTick, and\n// we cannot guarantee that there is no error lingering around\n// waiting to be emitted.\nreturn new Promise(function(resolve,reject){process.nextTick(function(){if(_this[kError]){reject(_this[kError]);}else{resolve(createIterResult(undefined,true));}});});}// if we have multiple next() calls\n// we will wait for the previous Promise to finish\n// this logic is optimized to support for await loops,\n// where next() is only called once at a time\nvar lastPromise=this[kLastPromise];var promise;if(lastPromise){promise=new Promise(wrapForNext(lastPromise,this));}else{// fast path needed to support multiple this.push()\n// without triggering the next() queue\nvar data=this[kStream].read();if(data!==null){return Promise.resolve(createIterResult(data,false));}promise=new Promise(this[kHandlePromise]);}this[kLastPromise]=promise;return promise;}},_defineProperty(_Object$setPrototypeO,Symbol.asyncIterator,function(){return this;}),_defineProperty(_Object$setPrototypeO,\"return\",function _return(){var _this2=this;// destroy(err, cb) is a private API\n// we can guarantee we have that here, because we control the\n// Readable class this is attached to\nreturn new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return;}resolve(createIterResult(undefined,true));});});}),_Object$setPrototypeO),AsyncIteratorPrototype);var createReadableStreamAsyncIterator=function createReadableStreamAsyncIterator(stream){var _Object$create;var iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:true}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:true}),_defineProperty(_Object$create,kLastReject,{value:null,writable:true}),_defineProperty(_Object$create,kError,{value:null,writable:true}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:true}),_defineProperty(_Object$create,kHandlePromise,{value:function value(resolve,reject){var data=iterator[kStream].read();if(data){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(data,false));}else{iterator[kLastResolve]=resolve;iterator[kLastReject]=reject;}},writable:true}),_Object$create));iterator[kLastPromise]=null;finished(stream,function(err){if(err&&err.code!=='ERR_STREAM_PREMATURE_CLOSE'){var reject=iterator[kLastReject];// reject if we are waiting for data in the Promise\n// returned by next() and store the error\nif(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err);}iterator[kError]=err;return;}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true));}iterator[kEnded]=true;});stream.on('readable',onReadable.bind(null,iterator));return iterator;};module.exports=createReadableStreamAsyncIterator;}).call(this);}).call(this,require('_process'));},{\"./end-of-stream\":64,\"_process\":50}],62:[function(require,module,exports){'use strict';function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if(\"value\"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}var _require=require('buffer'),Buffer=_require.Buffer;var _require2=require('util'),inspect=_require2.inspect;var custom=inspect&&inspect.custom||'inspect';function copyBuffer(src,target,offset){Buffer.prototype.copy.call(src,target,offset);}module.exports=/*#__PURE__*/function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0;}_createClass(BufferList,[{key:\"push\",value:function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length;}},{key:\"unshift\",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length;}},{key:\"shift\",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret;}},{key:\"clear\",value:function clear(){this.head=this.tail=null;this.length=0;}},{key:\"join\",value:function join(s){if(this.length===0)return'';var p=this.head;var ret=''+p.data;while(p=p.next){ret+=s+p.data;}return ret;}},{key:\"concat\",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next;}return ret;}// Consumes a specified amount of bytes or characters from the buffered data.\n},{key:\"consume\",value:function consume(n,hasStrings){var ret;if(n<this.head.data.length){// `slice` is the same for buffers and strings.\nret=this.head.data.slice(0,n);this.head.data=this.head.data.slice(n);}else if(n===this.head.data.length){// First chunk is a perfect match.\nret=this.shift();}else{// Result spans more than one buffer.\nret=hasStrings?this._getString(n):this._getBuffer(n);}return ret;}},{key:\"first\",value:function first(){return this.head.data;}// Consumes a specified amount of characters from the buffered data.\n},{key:\"_getString\",value:function _getString(n){var p=this.head;var c=1;var ret=p.data;n-=ret.length;while(p=p.next){var str=p.data;var nb=n>str.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null;}else{this.head=p;p.data=str.slice(nb);}break;}++c;}this.length-=c;return ret;}// Consumes a specified amount of bytes from the buffered data.\n},{key:\"_getBuffer\",value:function _getBuffer(n){var ret=Buffer.allocUnsafe(n);var p=this.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null;}else{this.head=p;p.data=buf.slice(nb);}break;}++c;}this.length-=c;return ret;}// Make sure the linked list only shows the minimal necessary information.\n},{key:custom,value:function value(_,options){return inspect(this,_objectSpread({},options,{// Only inspect one level.\ndepth:0,// It should not recurse.\ncustomInspect:false}));}}]);return BufferList;}();},{\"buffer\":17,\"util\":16}],63:[function(require,module,exports){(function(process){(function(){'use strict';// undocumented cb() API, needed for core, not for public API\nfunction destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err);}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err);}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err);}}return this;}// we set destroyed to true before firing error callbacks in order\n// to make it re-entrance safe in case destroy() is called within callbacks\nif(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well\nif(this._writableState){this._writableState.destroyed=true;}this._destroy(err||null,function(err){if(!cb&&err){if(!_this._writableState){process.nextTick(emitErrorAndCloseNT,_this,err);}else if(!_this._writableState.errorEmitted){_this._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,_this,err);}else{process.nextTick(emitCloseNT,_this);}}else if(cb){process.nextTick(emitCloseNT,_this);cb(err);}else{process.nextTick(emitCloseNT,_this);}});return this;}function emitErrorAndCloseNT(self,err){emitErrorNT(self,err);emitCloseNT(self);}function emitCloseNT(self){if(self._writableState&&!self._writableState.emitClose)return;if(self._readableState&&!self._readableState.emitClose)return;self.emit('close');}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false;}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false;}}function emitErrorNT(self,err){self.emit('error',err);}function errorOrDestroy(stream,err){// We have tests that rely on errors being emitted\n// in the same tick, so changing this is semver major.\n// For now when you opt-in to autoDestroy we allow\n// the error to be emitted nextTick. In a future\n// semver major update we should change the default to this.\nvar rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy};}).call(this);}).call(this,require('_process'));},{\"_process\":50}],64:[function(require,module,exports){// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';var ERR_STREAM_PREMATURE_CLOSE=require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}callback.apply(this,args);};}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort==='function';}function eos(stream,opts,callback){if(typeof opts==='function')return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=function onlegacyfinish(){if(!stream.writable)onfinish();};var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=function onfinish(){writable=false;writableEnded=true;if(!readable)callback.call(stream);};var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=function onend(){readable=false;readableEnded=true;if(!writable)callback.call(stream);};var onerror=function onerror(err){callback.call(stream,err);};var onclose=function onclose(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE();return callback.call(stream,err);}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE();return callback.call(stream,err);}};var onrequest=function onrequest(){stream.req.on('finish',onfinish);};if(isRequest(stream)){stream.on('complete',onfinish);stream.on('abort',onclose);if(stream.req)onrequest();else stream.on('request',onrequest);}else if(writable&&!stream._writableState){// legacy streams\nstream.on('end',onlegacyfinish);stream.on('close',onlegacyfinish);}stream.on('end',onend);stream.on('finish',onfinish);if(opts.error!==false)stream.on('error',onerror);stream.on('close',onclose);return function(){stream.removeListener('complete',onfinish);stream.removeListener('abort',onclose);stream.removeListener('request',onrequest);if(stream.req)stream.req.removeListener('finish',onfinish);stream.removeListener('end',onlegacyfinish);stream.removeListener('close',onlegacyfinish);stream.removeListener('finish',onfinish);stream.removeListener('end',onend);stream.removeListener('error',onerror);stream.removeListener('close',onclose);};}module.exports=eos;},{\"../../../errors\":55}],65:[function(require,module,exports){module.exports=function(){throw new Error('Readable.from is not available in the browser');};},{}],66:[function(require,module,exports){// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';var eos;function once(callback){var called=false;return function(){if(called)return;called=true;callback.apply(void 0,arguments);};}var _require$codes=require('../../../errors').codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){// Rethrow the error if it exists to avoid swallowing it\nif(err)throw err;}function isRequest(stream){return stream.setHeader&&typeof stream.abort==='function';}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=false;stream.on('close',function(){closed=true;});if(eos===undefined)eos=require('./end-of-stream');eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=true;callback();});var destroyed=false;return function(err){if(closed)return;if(destroyed)return;destroyed=true;// request.destroy just do .end - .abort is what we want\nif(isRequest(stream))return stream.abort();if(typeof stream.destroy==='function')return stream.destroy();callback(err||new ERR_STREAM_DESTROYED('pipe'));};}function call(fn){fn();}function pipe(from,to){return from.pipe(to);}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=='function')return noop;return streams.pop();}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key];}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS('streams');}var error;var destroys=streams.map(function(stream,i){var reading=i<streams.length-1;var writing=i>0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error);});});return streams.reduce(pipe);}module.exports=pipeline;},{\"../../../errors\":55,\"./end-of-stream\":64}],67:[function(require,module,exports){'use strict';var ERR_INVALID_OPT_VALUE=require('../../../errors').codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null;}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:'highWaterMark';throw new ERR_INVALID_OPT_VALUE(name,hwm);}return Math.floor(hwm);}// Default value\nreturn state.objectMode?16:16*1024;}module.exports={getHighWaterMark:getHighWaterMark};},{\"../../../errors\":55}],68:[function(require,module,exports){module.exports=require('events').EventEmitter;},{\"events\":22}],69:[function(require,module,exports){exports=module.exports=require('./lib/_stream_readable.js');exports.Stream=exports;exports.Readable=exports;exports.Writable=require('./lib/_stream_writable.js');exports.Duplex=require('./lib/_stream_duplex.js');exports.Transform=require('./lib/_stream_transform.js');exports.PassThrough=require('./lib/_stream_passthrough.js');exports.finished=require('./lib/internal/streams/end-of-stream.js');exports.pipeline=require('./lib/internal/streams/pipeline.js');},{\"./lib/_stream_duplex.js\":56,\"./lib/_stream_passthrough.js\":57,\"./lib/_stream_readable.js\":58,\"./lib/_stream_transform.js\":59,\"./lib/_stream_writable.js\":60,\"./lib/internal/streams/end-of-stream.js\":64,\"./lib/internal/streams/pipeline.js\":66}],70:[function(require,module,exports){'use strict';function ReInterval(callback,interval,args){var self=this;this._callback=callback;this._args=args;this._interval=setInterval(callback,interval,this._args);this.reschedule=function(interval){// if no interval entered, use the interval passed in on creation\nif(!interval)interval=self._interval;if(self._interval)clearInterval(self._interval);self._interval=setInterval(self._callback,interval,self._args);};this.clear=function(){if(self._interval){clearInterval(self._interval);self._interval=undefined;}};this.destroy=function(){if(self._interval){clearInterval(self._interval);}self._callback=undefined;self._interval=undefined;self._args=undefined;};}function reInterval(){if(typeof arguments[0]!=='function')throw new Error('callback needed');if(typeof arguments[1]!=='number')throw new Error('interval needed');var args;if(arguments.length>0){args=new Array(arguments.length-2);for(var i=0;i<args.length;i++){args[i]=arguments[i+2];}}return new ReInterval(arguments[0],arguments[1],args);}module.exports=reInterval;},{}],71:[function(require,module,exports){'use strict';module.exports=require('./index.js')();},{\"./index.js\":72}],72:[function(require,module,exports){(function(Buffer){(function(){'use strict';module.exports=rfdc;function copyBuffer(cur){if(cur instanceof Buffer){return Buffer.from(cur);}return new cur.constructor(cur.buffer.slice(),cur.byteOffset,cur.length);}function rfdc(opts){opts=opts||{};if(opts.circles)return rfdcCircles(opts);return opts.proto?cloneProto:clone;function cloneArray(a,fn){var keys=Object.keys(a);var a2=new Array(keys.length);for(var i=0;i<keys.length;i++){var k=keys[i];var cur=a[k];if(typeof cur!=='object'||cur===null){a2[k]=cur;}else if(cur instanceof Date){a2[k]=new Date(cur);}else if(ArrayBuffer.isView(cur)){a2[k]=copyBuffer(cur);}else{a2[k]=fn(cur);}}return a2;}function clone(o){if(typeof o!=='object'||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return cloneArray(o,clone);if(o instanceof Map)return new Map(cloneArray(Array.from(o),clone));if(o instanceof Set)return new Set(cloneArray(Array.from(o),clone));var o2={};for(var k in o){if(Object.hasOwnProperty.call(o,k)===false)continue;var cur=o[k];if(typeof cur!=='object'||cur===null){o2[k]=cur;}else if(cur instanceof Date){o2[k]=new Date(cur);}else if(cur instanceof Map){o2[k]=new Map(cloneArray(Array.from(cur),clone));}else if(cur instanceof Set){o2[k]=new Set(cloneArray(Array.from(cur),clone));}else if(ArrayBuffer.isView(cur)){o2[k]=copyBuffer(cur);}else{o2[k]=clone(cur);}}return o2;}function cloneProto(o){if(typeof o!=='object'||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return cloneArray(o,cloneProto);if(o instanceof Map)return new Map(cloneArray(Array.from(o),cloneProto));if(o instanceof Set)return new Set(cloneArray(Array.from(o),cloneProto));var o2={};for(var k in o){var cur=o[k];if(typeof cur!=='object'||cur===null){o2[k]=cur;}else if(cur instanceof Date){o2[k]=new Date(cur);}else if(cur instanceof Map){o2[k]=new Map(cloneArray(Array.from(cur),cloneProto));}else if(cur instanceof Set){o2[k]=new Set(cloneArray(Array.from(cur),cloneProto));}else if(ArrayBuffer.isView(cur)){o2[k]=copyBuffer(cur);}else{o2[k]=cloneProto(cur);}}return o2;}}function rfdcCircles(opts){var refs=[];var refsNew=[];return opts.proto?cloneProto:clone;function cloneArray(a,fn){var keys=Object.keys(a);var a2=new Array(keys.length);for(var i=0;i<keys.length;i++){var k=keys[i];var cur=a[k];if(typeof cur!=='object'||cur===null){a2[k]=cur;}else if(cur instanceof Date){a2[k]=new Date(cur);}else if(ArrayBuffer.isView(cur)){a2[k]=copyBuffer(cur);}else{var index=refs.indexOf(cur);if(index!==-1){a2[k]=refsNew[index];}else{a2[k]=fn(cur);}}}return a2;}function clone(o){if(typeof o!=='object'||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return cloneArray(o,clone);if(o instanceof Map)return new Map(cloneArray(Array.from(o),clone));if(o instanceof Set)return new Set(cloneArray(Array.from(o),clone));var o2={};refs.push(o);refsNew.push(o2);for(var k in o){if(Object.hasOwnProperty.call(o,k)===false)continue;var cur=o[k];if(typeof cur!=='object'||cur===null){o2[k]=cur;}else if(cur instanceof Date){o2[k]=new Date(cur);}else if(cur instanceof Map){o2[k]=new Map(cloneArray(Array.from(cur),clone));}else if(cur instanceof Set){o2[k]=new Set(cloneArray(Array.from(cur),clone));}else if(ArrayBuffer.isView(cur)){o2[k]=copyBuffer(cur);}else{var i=refs.indexOf(cur);if(i!==-1){o2[k]=refsNew[i];}else{o2[k]=clone(cur);}}}refs.pop();refsNew.pop();return o2;}function cloneProto(o){if(typeof o!=='object'||o===null)return o;if(o instanceof Date)return new Date(o);if(Array.isArray(o))return cloneArray(o,cloneProto);if(o instanceof Map)return new Map(cloneArray(Array.from(o),cloneProto));if(o instanceof Set)return new Set(cloneArray(Array.from(o),cloneProto));var o2={};refs.push(o);refsNew.push(o2);for(var k in o){var cur=o[k];if(typeof cur!=='object'||cur===null){o2[k]=cur;}else if(cur instanceof Date){o2[k]=new Date(cur);}else if(cur instanceof Map){o2[k]=new Map(cloneArray(Array.from(cur),cloneProto));}else if(cur instanceof Set){o2[k]=new Set(cloneArray(Array.from(cur),cloneProto));}else if(ArrayBuffer.isView(cur)){o2[k]=copyBuffer(cur);}else{var i=refs.indexOf(cur);if(i!==-1){o2[k]=refsNew[i];}else{o2[k]=cloneProto(cur);}}}refs.pop();refsNew.pop();return o2;}}}).call(this);}).call(this,require(\"buffer\").Buffer);},{\"buffer\":17}],73:[function(require,module,exports){/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */ /* eslint-disable node/no-deprecated-api */var buffer=require('buffer');var Buffer=buffer.Buffer;// alternative to using Object.keys for old browsers\nfunction copyProps(src,dst){for(var key in src){dst[key]=src[key];}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer;}else{// Copy properties from require('buffer')\ncopyProps(buffer,exports);exports.Buffer=SafeBuffer;}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length);}SafeBuffer.prototype=Object.create(Buffer.prototype);// Copy static methods from Buffer\ncopyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==='number'){throw new TypeError('Argument must not be a number');}return Buffer(arg,encodingOrOffset,length);};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==='string'){buf.fill(fill,encoding);}else{buf.fill(fill);}}else{buf.fill(0);}return buf;};SafeBuffer.allocUnsafe=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return Buffer(size);};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return buffer.SlowBuffer(size);};},{\"buffer\":17}],74:[function(require,module,exports){module.exports=shift;function shift(stream){var rs=stream._readableState;if(!rs)return null;return rs.objectMode||typeof stream._duplexState==='number'?stream.read():stream.read(getStateLength(rs));}function getStateLength(state){if(state.buffer.length){// Since node 6.3.0 state.buffer is a BufferList not an array\nif(state.buffer.head){return state.buffer.head.data.length;}return state.buffer[0].length;}return state.length;}},{}],75:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';/*<replacement>*/var Buffer=require('safe-buffer').Buffer;/*</replacement>*/var isEncoding=Buffer.isEncoding||function(encoding){encoding=''+encoding;switch(encoding&&encoding.toLowerCase()){case'hex':case'utf8':case'utf-8':case'ascii':case'binary':case'base64':case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':case'raw':return true;default:return false;}};function _normalizeEncoding(enc){if(!enc)return'utf8';var retried;while(true){switch(enc){case'utf8':case'utf-8':return'utf8';case'ucs2':case'ucs-2':case'utf16le':case'utf-16le':return'utf16le';case'latin1':case'binary':return'latin1';case'base64':case'ascii':case'hex':return enc;default:if(retried)return;// undefined\nenc=(''+enc).toLowerCase();retried=true;}}};// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!=='string'&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error('Unknown encoding: '+enc);return nenc||enc;}// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case'utf16le':this.text=utf16Text;this.end=utf16End;nb=4;break;case'utf8':this.fillLast=utf8FillLast;nb=4;break;case'base64':this.text=base64Text;this.end=base64End;nb=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return;}this.lastNeed=0;this.lastTotal=0;this.lastChar=Buffer.allocUnsafe(nb);}StringDecoder.prototype.write=function(buf){if(buf.length===0)return'';var r;var i;if(this.lastNeed){r=this.fillLast(buf);if(r===undefined)return'';i=this.lastNeed;this.lastNeed=0;}else{i=0;}if(i<buf.length)return r?r+this.text(buf,i):this.text(buf,i);return r||'';};StringDecoder.prototype.end=utf8End;// Returns only complete characters in a Buffer\nStringDecoder.prototype.text=utf8Text;// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length){buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal);}buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length);this.lastNeed-=buf.length;};// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte){if(byte<=0x7F)return 0;else if(byte>>5===0x06)return 2;else if(byte>>4===0x0E)return 3;else if(byte>>3===0x1E)return 4;return byte>>6===0x02?-1:-2;}// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j<i)return 0;var nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-1;return nb;}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0)self.lastNeed=nb-2;return nb;}if(--j<i||nb===-2)return 0;nb=utf8CheckByte(buf[j]);if(nb>=0){if(nb>0){if(nb===2)nb=0;else self.lastNeed=nb-3;}return nb;}return 0;}// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self,buf,p){if((buf[0]&0xC0)!==0x80){self.lastNeed=0;return'\\ufffd';}if(self.lastNeed>1&&buf.length>1){if((buf[1]&0xC0)!==0x80){self.lastNeed=1;return'\\ufffd';}if(self.lastNeed>2&&buf.length>2){if((buf[2]&0xC0)!==0x80){self.lastNeed=2;return'\\ufffd';}}}}// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf){var p=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,buf,p);if(r!==undefined)return r;if(this.lastNeed<=buf.length){buf.copy(this.lastChar,p,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal);}buf.copy(this.lastChar,p,0,buf.length);this.lastNeed-=buf.length;}// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString('utf8',i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);buf.copy(this.lastChar,0,end);return buf.toString('utf8',i,end);}// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)return r+'\\ufffd';return r;}// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString('utf16le',i);if(r){var c=r.charCodeAt(r.length-1);if(c>=0xD800&&c<=0xDBFF){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1);}}return r;}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString('utf16le',i,buf.length-1);}// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString('utf16le',0,end);}return r;}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString('base64',i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1];}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];}return buf.toString('base64',i,buf.length-n);}function base64End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)return r+this.lastChar.toString('base64',0,3-this.lastNeed);return r;}// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf){return buf.toString(this.encoding);}function simpleEnd(buf){return buf&&buf.length?this.write(buf):'';}},{\"safe-buffer\":73}],76:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';var punycode=require('punycode');var util=require('./util');exports.parse=urlParse;exports.resolve=urlResolve;exports.resolveObject=urlResolveObject;exports.format=urlFormat;exports.Url=Url;function Url(){this.protocol=null;this.slashes=null;this.auth=null;this.host=null;this.port=null;this.hostname=null;this.hash=null;this.search=null;this.query=null;this.pathname=null;this.path=null;this.href=null;}// Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,// Special case for a simple path URL\nsimplePathPattern=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,// RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims=['<','>','\"','`',' ','\\r','\\n','\\t'],// RFC 2396: characters not allowed for various reasons.\nunwise=['{','}','|','\\\\','^','`'].concat(delims),// Allowed by RFCs, but cause of XSS attacks.  Always escape these.\nautoEscape=['\\''].concat(unwise),// Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nnonHostChars=['%','/','?',';','#'].concat(autoEscape),hostEndingChars=['/','?','#'],hostnameMaxLen=255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,// protocols that can allow \"unsafe\" and \"unwise\" chars.\nunsafeProtocol={'javascript':true,'javascript:':true},// protocols that never have a hostname.\nhostlessProtocol={'javascript':true,'javascript:':true},// protocols that always contain a // bit.\nslashedProtocol={'http':true,'https':true,'ftp':true,'gopher':true,'file':true,'http:':true,'https:':true,'ftp:':true,'gopher:':true,'file:':true},querystring=require('querystring');function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&util.isObject(url)&&url instanceof Url)return url;var u=new Url();u.parse(url,parseQueryString,slashesDenoteHost);return u;}Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!util.isString(url)){throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof url);}// Copy chrome, IE, opera backslash-handling behavior.\n// Back slashes before the query string get converted to forward slashes\n// See: https://code.google.com/p/chromium/issues/detail?id=25916\nvar queryIndex=url.indexOf('?'),splitter=queryIndex!==-1&&queryIndex<url.indexOf('#')?'?':'#',uSplit=url.split(splitter),slashRegex=/\\\\/g;uSplit[0]=uSplit[0].replace(slashRegex,'/');url=uSplit.join(splitter);var rest=url;// trim before proceeding.\n// This is to support parse stuff like \"  http://foo.com  \\n\"\nrest=rest.trim();if(!slashesDenoteHost&&url.split('#').length===1){// Try fast path regexp\nvar simplePath=simplePathPattern.exec(rest);if(simplePath){this.path=rest;this.href=rest;this.pathname=simplePath[1];if(simplePath[2]){this.search=simplePath[2];if(parseQueryString){this.query=querystring.parse(this.search.substr(1));}else{this.query=this.search.substr(1);}}else if(parseQueryString){this.search='';this.query={};}return this;}}var proto=protocolPattern.exec(rest);if(proto){proto=proto[0];var lowerProto=proto.toLowerCase();this.protocol=lowerProto;rest=rest.substr(proto.length);}// figure out if it's got a host\n// user@server is *always* interpreted as a hostname, and url\n// resolution will treat //foo/bar as host=foo,path=bar because that's\n// how the browser resolves relative URLs.\nif(slashesDenoteHost||proto||rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var slashes=rest.substr(0,2)==='//';if(slashes&&!(proto&&hostlessProtocol[proto])){rest=rest.substr(2);this.slashes=true;}}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){// there's a hostname.\n// the first instance of /, ?, ;, or # ends the host.\n//\n// If there is an @ in the hostname, then non-host chars *are* allowed\n// to the left of the last @ sign, unless some host-ending character\n// comes *before* the @-sign.\n// URLs are obnoxious.\n//\n// ex:\n// http://a@b@c/ => user:a@b host:c\n// http://a@b?@c => user:a host:c path:/?@c\n// v0.12 TODO(isaacs): This is not quite how Chrome does things.\n// Review our test case against browsers more comprehensively.\n// find the first instance of any hostEndingChars\nvar hostEnd=-1;for(var i=0;i<hostEndingChars.length;i++){var hec=rest.indexOf(hostEndingChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec;}// at this point, either we have an explicit point where the\n// auth portion cannot go past, or the last @ char is the decider.\nvar auth,atSign;if(hostEnd===-1){// atSign can be anywhere.\natSign=rest.lastIndexOf('@');}else{// atSign must be in auth portion.\n// http://a@b/c@d => host:b auth:a path:/c@d\natSign=rest.lastIndexOf('@',hostEnd);}// Now we have a portion which is definitely the auth.\n// Pull that off.\nif(atSign!==-1){auth=rest.slice(0,atSign);rest=rest.slice(atSign+1);this.auth=decodeURIComponent(auth);}// the host is the remaining to the left of the first non-host char\nhostEnd=-1;for(var i=0;i<nonHostChars.length;i++){var hec=rest.indexOf(nonHostChars[i]);if(hec!==-1&&(hostEnd===-1||hec<hostEnd))hostEnd=hec;}// if we still have not hit it, then the entire thing is a host.\nif(hostEnd===-1)hostEnd=rest.length;this.host=rest.slice(0,hostEnd);rest=rest.slice(hostEnd);// pull out port.\nthis.parseHost();// we've indicated that there is a hostname,\n// so even if it's empty, it has to be present.\nthis.hostname=this.hostname||'';// if hostname begins with [ and ends with ]\n// assume that it's an IPv6 address.\nvar ipv6Hostname=this.hostname[0]==='['&&this.hostname[this.hostname.length-1]===']';// validate a little.\nif(!ipv6Hostname){var hostparts=this.hostname.split(/\\./);for(var i=0,l=hostparts.length;i<l;i++){var part=hostparts[i];if(!part)continue;if(!part.match(hostnamePartPattern)){var newpart='';for(var j=0,k=part.length;j<k;j++){if(part.charCodeAt(j)>127){// we replace non-ASCII char with a temporary placeholder\n// we need this to make sure size of hostname is not\n// broken by replacing non-ASCII by nothing\nnewpart+='x';}else{newpart+=part[j];}}// we test again with ASCII char only\nif(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i);var notHost=hostparts.slice(i+1);var bit=part.match(hostnamePartStart);if(bit){validParts.push(bit[1]);notHost.unshift(bit[2]);}if(notHost.length){rest='/'+notHost.join('.')+rest;}this.hostname=validParts.join('.');break;}}}}if(this.hostname.length>hostnameMaxLen){this.hostname='';}else{// hostnames are always lower case.\nthis.hostname=this.hostname.toLowerCase();}if(!ipv6Hostname){// IDNA Support: Returns a punycoded representation of \"domain\".\n// It only converts parts of the domain name that\n// have non-ASCII characters, i.e. it doesn't matter if\n// you call it with a domain that already is ASCII-only.\nthis.hostname=punycode.toASCII(this.hostname);}var p=this.port?':'+this.port:'';var h=this.hostname||'';this.host=h+p;this.href+=this.host;// strip [ and ] from the hostname\n// the host field still retains them, though\nif(ipv6Hostname){this.hostname=this.hostname.substr(1,this.hostname.length-2);if(rest[0]!=='/'){rest='/'+rest;}}}// now rest is set to the post-host stuff.\n// chop off any delim chars.\nif(!unsafeProtocol[lowerProto]){// First, make 100% sure that any \"autoEscape\" chars get\n// escaped, even if encodeURIComponent doesn't think they\n// need to be.\nfor(var i=0,l=autoEscape.length;i<l;i++){var ae=autoEscape[i];if(rest.indexOf(ae)===-1)continue;var esc=encodeURIComponent(ae);if(esc===ae){esc=escape(ae);}rest=rest.split(ae).join(esc);}}// chop off from the tail first.\nvar hash=rest.indexOf('#');if(hash!==-1){// got a fragment string.\nthis.hash=rest.substr(hash);rest=rest.slice(0,hash);}var qm=rest.indexOf('?');if(qm!==-1){this.search=rest.substr(qm);this.query=rest.substr(qm+1);if(parseQueryString){this.query=querystring.parse(this.query);}rest=rest.slice(0,qm);}else if(parseQueryString){// no query string, but parseQueryString still requested\nthis.search='';this.query={};}if(rest)this.pathname=rest;if(slashedProtocol[lowerProto]&&this.hostname&&!this.pathname){this.pathname='/';}//to support http.request\nif(this.pathname||this.search){var p=this.pathname||'';var s=this.search||'';this.path=p+s;}// finally, reconstruct the href based on what has been validated.\nthis.href=this.format();return this;};// format a parsed object into a url string\nfunction urlFormat(obj){// ensure it's an object, and not a string url.\n// If it's an obj, this is a no-op.\n// this way, you can call url_format() on strings\n// to clean up potentially wonky urls.\nif(util.isString(obj))obj=urlParse(obj);if(!(obj instanceof Url))return Url.prototype.format.call(obj);return obj.format();}Url.prototype.format=function(){var auth=this.auth||'';if(auth){auth=encodeURIComponent(auth);auth=auth.replace(/%3A/i,':');auth+='@';}var protocol=this.protocol||'',pathname=this.pathname||'',hash=this.hash||'',host=false,query='';if(this.host){host=auth+this.host;}else if(this.hostname){host=auth+(this.hostname.indexOf(':')===-1?this.hostname:'['+this.hostname+']');if(this.port){host+=':'+this.port;}}if(this.query&&util.isObject(this.query)&&Object.keys(this.query).length){query=querystring.stringify(this.query);}var search=this.search||query&&'?'+query||'';if(protocol&&protocol.substr(-1)!==':')protocol+=':';// only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n// unless they had them to begin with.\nif(this.slashes||(!protocol||slashedProtocol[protocol])&&host!==false){host='//'+(host||'');if(pathname&&pathname.charAt(0)!=='/')pathname='/'+pathname;}else if(!host){host='';}if(hash&&hash.charAt(0)!=='#')hash='#'+hash;if(search&&search.charAt(0)!=='?')search='?'+search;pathname=pathname.replace(/[?#]/g,function(match){return encodeURIComponent(match);});search=search.replace('#','%23');return protocol+host+pathname+search+hash;};function urlResolve(source,relative){return urlParse(source,false,true).resolve(relative);}Url.prototype.resolve=function(relative){return this.resolveObject(urlParse(relative,false,true)).format();};function urlResolveObject(source,relative){if(!source)return relative;return urlParse(source,false,true).resolveObject(relative);}Url.prototype.resolveObject=function(relative){if(util.isString(relative)){var rel=new Url();rel.parse(relative,false,true);relative=rel;}var result=new Url();var tkeys=Object.keys(this);for(var tk=0;tk<tkeys.length;tk++){var tkey=tkeys[tk];result[tkey]=this[tkey];}// hash is always overridden, no matter what.\n// even href=\"\" will remove it.\nresult.hash=relative.hash;// if the relative url is empty, then there's nothing left to do here.\nif(relative.href===''){result.href=result.format();return result;}// hrefs like //foo/bar always cut to the protocol.\nif(relative.slashes&&!relative.protocol){// take everything except the protocol from relative\nvar rkeys=Object.keys(relative);for(var rk=0;rk<rkeys.length;rk++){var rkey=rkeys[rk];if(rkey!=='protocol')result[rkey]=relative[rkey];}//urlParse appends trailing / to urls like http://www.example.com\nif(slashedProtocol[result.protocol]&&result.hostname&&!result.pathname){result.path=result.pathname='/';}result.href=result.format();return result;}if(relative.protocol&&relative.protocol!==result.protocol){// if it's a known url protocol, then changing\n// the protocol does weird things\n// first, if it's not file:, then we MUST have a host,\n// and if there was a path\n// to begin with, then we MUST have a path.\n// if it is file:, then the host is dropped,\n// because that's known to be hostless.\n// anything else is assumed to be absolute.\nif(!slashedProtocol[relative.protocol]){var keys=Object.keys(relative);for(var v=0;v<keys.length;v++){var k=keys[v];result[k]=relative[k];}result.href=result.format();return result;}result.protocol=relative.protocol;if(!relative.host&&!hostlessProtocol[relative.protocol]){var relPath=(relative.pathname||'').split('/');while(relPath.length&&!(relative.host=relPath.shift()));if(!relative.host)relative.host='';if(!relative.hostname)relative.hostname='';if(relPath[0]!=='')relPath.unshift('');if(relPath.length<2)relPath.unshift('');result.pathname=relPath.join('/');}else{result.pathname=relative.pathname;}result.search=relative.search;result.query=relative.query;result.host=relative.host||'';result.auth=relative.auth;result.hostname=relative.hostname||relative.host;result.port=relative.port;// to support http.request\nif(result.pathname||result.search){var p=result.pathname||'';var s=result.search||'';result.path=p+s;}result.slashes=result.slashes||relative.slashes;result.href=result.format();return result;}var isSourceAbs=result.pathname&&result.pathname.charAt(0)==='/',isRelAbs=relative.host||relative.pathname&&relative.pathname.charAt(0)==='/',mustEndAbs=isRelAbs||isSourceAbs||result.host&&relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split('/')||[],relPath=relative.pathname&&relative.pathname.split('/')||[],psychotic=result.protocol&&!slashedProtocol[result.protocol];// if the url is a non-slashed url, then relative\n// links like ../.. should be able\n// to crawl up to the hostname, as well.  This is strange.\n// result.protocol has already been set by now.\n// Later on, put the first path part into the host field.\nif(psychotic){result.hostname='';result.port=null;if(result.host){if(srcPath[0]==='')srcPath[0]=result.host;else srcPath.unshift(result.host);}result.host='';if(relative.protocol){relative.hostname=null;relative.port=null;if(relative.host){if(relPath[0]==='')relPath[0]=relative.host;else relPath.unshift(relative.host);}relative.host=null;}mustEndAbs=mustEndAbs&&(relPath[0]===''||srcPath[0]==='');}if(isRelAbs){// it's absolute.\nresult.host=relative.host||relative.host===''?relative.host:result.host;result.hostname=relative.hostname||relative.hostname===''?relative.hostname:result.hostname;result.search=relative.search;result.query=relative.query;srcPath=relPath;// fall through to the dot-handling below.\n}else if(relPath.length){// it's relative\n// throw away the existing file, and take the new path instead.\nif(!srcPath)srcPath=[];srcPath.pop();srcPath=srcPath.concat(relPath);result.search=relative.search;result.query=relative.query;}else if(!util.isNullOrUndefined(relative.search)){// just pull out the search.\n// like href='?foo'.\n// Put this after the other two cases because it simplifies the booleans\nif(psychotic){result.hostname=result.host=srcPath.shift();//occationaly the auth can get stuck only in host\n//this especially happens in cases like\n//url.resolveObject('mailto:local1@domain1', 'local2@domain2')\nvar authInHost=result.host&&result.host.indexOf('@')>0?result.host.split('@'):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift();}}result.search=relative.search;result.query=relative.query;//to support http.request\nif(!util.isNull(result.pathname)||!util.isNull(result.search)){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.href=result.format();return result;}if(!srcPath.length){// no path at all.  easy.\n// we've already handled the other stuff above.\nresult.pathname=null;//to support http.request\nif(result.search){result.path='/'+result.search;}else{result.path=null;}result.href=result.format();return result;}// if a url ENDs in . or .., then it must get a trailing slash.\n// however, if it ends in anything else non-slashy,\n// then it must NOT get a trailing slash.\nvar last=srcPath.slice(-1)[0];var hasTrailingSlash=(result.host||relative.host||srcPath.length>1)&&(last==='.'||last==='..')||last==='';// strip single dots, resolve double dots to parent dir\n// if the path tries to go above the root, `up` ends up > 0\nvar up=0;for(var i=srcPath.length;i>=0;i--){last=srcPath[i];if(last==='.'){srcPath.splice(i,1);}else if(last==='..'){srcPath.splice(i,1);up++;}else if(up){srcPath.splice(i,1);up--;}}// if the path is allowed to go above the root, restore leading ..s\nif(!mustEndAbs&&!removeAllDots){for(;up--;up){srcPath.unshift('..');}}if(mustEndAbs&&srcPath[0]!==''&&(!srcPath[0]||srcPath[0].charAt(0)!=='/')){srcPath.unshift('');}if(hasTrailingSlash&&srcPath.join('/').substr(-1)!=='/'){srcPath.push('');}var isAbsolute=srcPath[0]===''||srcPath[0]&&srcPath[0].charAt(0)==='/';// put the host back\nif(psychotic){result.hostname=result.host=isAbsolute?'':srcPath.length?srcPath.shift():'';//occationaly the auth can get stuck only in host\n//this especially happens in cases like\n//url.resolveObject('mailto:local1@domain1', 'local2@domain2')\nvar authInHost=result.host&&result.host.indexOf('@')>0?result.host.split('@'):false;if(authInHost){result.auth=authInHost.shift();result.host=result.hostname=authInHost.shift();}}mustEndAbs=mustEndAbs||result.host&&srcPath.length;if(mustEndAbs&&!isAbsolute){srcPath.unshift('');}if(!srcPath.length){result.pathname=null;result.path=null;}else{result.pathname=srcPath.join('/');}//to support request.http\nif(!util.isNull(result.pathname)||!util.isNull(result.search)){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result;};Url.prototype.parseHost=function(){var host=this.host;var port=portPattern.exec(host);if(port){port=port[0];if(port!==':'){this.port=port.substr(1);}host=host.substr(0,host.length-port.length);}if(host)this.hostname=host;};},{\"./util\":77,\"punycode\":51,\"querystring\":54}],77:[function(require,module,exports){'use strict';module.exports={isString:function(arg){return typeof arg==='string';},isObject:function(arg){return typeof arg==='object'&&arg!==null;},isNull:function(arg){return arg===null;},isNullOrUndefined:function(arg){return arg==null;}};},{}],78:[function(require,module,exports){(function(global){(function(){/**\n * Module exports.\n */module.exports=deprecate;/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */function deprecate(fn,msg){if(config('noDeprecation')){return fn;}var warned=false;function deprecated(){if(!warned){if(config('throwDeprecation')){throw new Error(msg);}else if(config('traceDeprecation')){console.trace(msg);}else{console.warn(msg);}warned=true;}return fn.apply(this,arguments);}return deprecated;}/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */function config(name){// accessing global.localStorage can trigger a DOMException in sandboxed iframes\ntry{if(!global.localStorage)return false;}catch(_){return false;}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==='true';}}).call(this);}).call(this,typeof __webpack_require__.g!==\"undefined\"?__webpack_require__.g:typeof self!==\"undefined\"?self:typeof window!==\"undefined\"?window:{});},{}],79:[function(require,module,exports){// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports=wrappy;function wrappy(fn,cb){if(fn&&cb)return wrappy(fn)(cb);if(typeof fn!=='function')throw new TypeError('need wrapper function');Object.keys(fn).forEach(function(k){wrapper[k]=fn[k];});return wrapper;function wrapper(){var args=new Array(arguments.length);for(var i=0;i<args.length;i++){args[i]=arguments[i];}var ret=fn.apply(this,args);var cb=args[args.length-1];if(typeof ret==='function'&&ret!==cb){Object.keys(cb).forEach(function(k){ret[k]=cb[k];});}return ret;}}},{}],80:[function(require,module,exports){'use strict';module.exports=function(){throw new Error('ws does not work in the browser. Browser clients must use the native '+'WebSocket object');};},{}],81:[function(require,module,exports){module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(){var target={};for(var i=0;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;}},{}],82:[function(require,module,exports){'use strict';module.exports=function(Yallist){Yallist.prototype[Symbol.iterator]=function*(){for(let walker=this.head;walker;walker=walker.next){yield walker.value;}};};},{}],83:[function(require,module,exports){'use strict';module.exports=Yallist;Yallist.Node=Node;Yallist.create=Yallist;function Yallist(list){var self=this;if(!(self instanceof Yallist)){self=new Yallist();}self.tail=null;self.head=null;self.length=0;if(list&&typeof list.forEach==='function'){list.forEach(function(item){self.push(item);});}else if(arguments.length>0){for(var i=0,l=arguments.length;i<l;i++){self.push(arguments[i]);}}return self;}Yallist.prototype.removeNode=function(node){if(node.list!==this){throw new Error('removing node which does not belong to this list');}var next=node.next;var prev=node.prev;if(next){next.prev=prev;}if(prev){prev.next=next;}if(node===this.head){this.head=next;}if(node===this.tail){this.tail=prev;}node.list.length--;node.next=null;node.prev=null;node.list=null;return next;};Yallist.prototype.unshiftNode=function(node){if(node===this.head){return;}if(node.list){node.list.removeNode(node);}var head=this.head;node.list=this;node.next=head;if(head){head.prev=node;}this.head=node;if(!this.tail){this.tail=node;}this.length++;};Yallist.prototype.pushNode=function(node){if(node===this.tail){return;}if(node.list){node.list.removeNode(node);}var tail=this.tail;node.list=this;node.prev=tail;if(tail){tail.next=node;}this.tail=node;if(!this.head){this.head=node;}this.length++;};Yallist.prototype.push=function(){for(var i=0,l=arguments.length;i<l;i++){push(this,arguments[i]);}return this.length;};Yallist.prototype.unshift=function(){for(var i=0,l=arguments.length;i<l;i++){unshift(this,arguments[i]);}return this.length;};Yallist.prototype.pop=function(){if(!this.tail){return undefined;}var res=this.tail.value;this.tail=this.tail.prev;if(this.tail){this.tail.next=null;}else{this.head=null;}this.length--;return res;};Yallist.prototype.shift=function(){if(!this.head){return undefined;}var res=this.head.value;this.head=this.head.next;if(this.head){this.head.prev=null;}else{this.tail=null;}this.length--;return res;};Yallist.prototype.forEach=function(fn,thisp){thisp=thisp||this;for(var walker=this.head,i=0;walker!==null;i++){fn.call(thisp,walker.value,i,this);walker=walker.next;}};Yallist.prototype.forEachReverse=function(fn,thisp){thisp=thisp||this;for(var walker=this.tail,i=this.length-1;walker!==null;i--){fn.call(thisp,walker.value,i,this);walker=walker.prev;}};Yallist.prototype.get=function(n){for(var i=0,walker=this.head;walker!==null&&i<n;i++){// abort out of the list early if we hit a cycle\nwalker=walker.next;}if(i===n&&walker!==null){return walker.value;}};Yallist.prototype.getReverse=function(n){for(var i=0,walker=this.tail;walker!==null&&i<n;i++){// abort out of the list early if we hit a cycle\nwalker=walker.prev;}if(i===n&&walker!==null){return walker.value;}};Yallist.prototype.map=function(fn,thisp){thisp=thisp||this;var res=new Yallist();for(var walker=this.head;walker!==null;){res.push(fn.call(thisp,walker.value,this));walker=walker.next;}return res;};Yallist.prototype.mapReverse=function(fn,thisp){thisp=thisp||this;var res=new Yallist();for(var walker=this.tail;walker!==null;){res.push(fn.call(thisp,walker.value,this));walker=walker.prev;}return res;};Yallist.prototype.reduce=function(fn,initial){var acc;var walker=this.head;if(arguments.length>1){acc=initial;}else if(this.head){walker=this.head.next;acc=this.head.value;}else{throw new TypeError('Reduce of empty list with no initial value');}for(var i=0;walker!==null;i++){acc=fn(acc,walker.value,i);walker=walker.next;}return acc;};Yallist.prototype.reduceReverse=function(fn,initial){var acc;var walker=this.tail;if(arguments.length>1){acc=initial;}else if(this.tail){walker=this.tail.prev;acc=this.tail.value;}else{throw new TypeError('Reduce of empty list with no initial value');}for(var i=this.length-1;walker!==null;i--){acc=fn(acc,walker.value,i);walker=walker.prev;}return acc;};Yallist.prototype.toArray=function(){var arr=new Array(this.length);for(var i=0,walker=this.head;walker!==null;i++){arr[i]=walker.value;walker=walker.next;}return arr;};Yallist.prototype.toArrayReverse=function(){var arr=new Array(this.length);for(var i=0,walker=this.tail;walker!==null;i++){arr[i]=walker.value;walker=walker.prev;}return arr;};Yallist.prototype.slice=function(from,to){to=to||this.length;if(to<0){to+=this.length;}from=from||0;if(from<0){from+=this.length;}var ret=new Yallist();if(to<from||to<0){return ret;}if(from<0){from=0;}if(to>this.length){to=this.length;}for(var i=0,walker=this.head;walker!==null&&i<from;i++){walker=walker.next;}for(;walker!==null&&i<to;i++,walker=walker.next){ret.push(walker.value);}return ret;};Yallist.prototype.sliceReverse=function(from,to){to=to||this.length;if(to<0){to+=this.length;}from=from||0;if(from<0){from+=this.length;}var ret=new Yallist();if(to<from||to<0){return ret;}if(from<0){from=0;}if(to>this.length){to=this.length;}for(var i=this.length,walker=this.tail;walker!==null&&i>to;i--){walker=walker.prev;}for(;walker!==null&&i>from;i--,walker=walker.prev){ret.push(walker.value);}return ret;};Yallist.prototype.splice=function(start,deleteCount,...nodes){if(start>this.length){start=this.length-1;}if(start<0){start=this.length+start;}for(var i=0,walker=this.head;walker!==null&&i<start;i++){walker=walker.next;}var ret=[];for(var i=0;walker&&i<deleteCount;i++){ret.push(walker.value);walker=this.removeNode(walker);}if(walker===null){walker=this.tail;}if(walker!==this.head&&walker!==this.tail){walker=walker.prev;}for(var i=0;i<nodes.length;i++){walker=insert(this,walker,nodes[i]);}return ret;};Yallist.prototype.reverse=function(){var head=this.head;var tail=this.tail;for(var walker=head;walker!==null;walker=walker.prev){var p=walker.prev;walker.prev=walker.next;walker.next=p;}this.head=tail;this.tail=head;return this;};function insert(self,node,value){var inserted=node===self.head?new Node(value,null,node,self):new Node(value,node,node.next,self);if(inserted.next===null){self.tail=inserted;}if(inserted.prev===null){self.head=inserted;}self.length++;return inserted;}function push(self,item){self.tail=new Node(item,self.tail,null,self);if(!self.head){self.head=self.tail;}self.length++;}function unshift(self,item){self.head=new Node(item,null,self.head,self);if(!self.tail){self.tail=self.head;}self.length++;}function Node(value,prev,next,list){if(!(this instanceof Node)){return new Node(value,prev,next,list);}this.list=list;this.value=value;if(prev){prev.next=this;this.prev=prev;}else{this.prev=null;}if(next){next.prev=this;this.next=next;}else{this.next=null;}}try{// add if support for Symbol.iterator is present\nrequire('./iterator.js')(Yallist);}catch(er){}},{\"./iterator.js\":82}]},{},[12])(12);});\n\n//# sourceURL=webpack:///./node_modules/_mqtt@4.3.7@mqtt/dist/mqtt.js?");

/***/ }),

/***/ "./node_modules/_ssr-window@1.0.1@ssr-window/dist/ssr-window.esm.js":
/*!**************************************************************************!*\
  !*** ./node_modules/_ssr-window@1.0.1@ssr-window/dist/ssr-window.esm.js ***!
  \**************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"document\": function() { return /* binding */ doc; },\n/* harmony export */   \"window\": function() { return /* binding */ win; }\n/* harmony export */ });\n/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc = typeof document === 'undefined' ? {\n  body: {},\n  addEventListener: function addEventListener() {},\n  removeEventListener: function removeEventListener() {},\n  activeElement: {\n    blur: function blur() {},\n    nodeName: ''\n  },\n  querySelector: function querySelector() {\n    return null;\n  },\n  querySelectorAll: function querySelectorAll() {\n    return [];\n  },\n  getElementById: function getElementById() {\n    return null;\n  },\n  createEvent: function createEvent() {\n    return {\n      initEvent: function initEvent() {}\n    };\n  },\n  createElement: function createElement() {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n      setAttribute: function setAttribute() {},\n      getElementsByTagName: function getElementsByTagName() {\n        return [];\n      }\n    };\n  },\n  location: {\n    hash: ''\n  }\n} : document; // eslint-disable-line\n\nvar win = typeof window === 'undefined' ? {\n  document: doc,\n  navigator: {\n    userAgent: ''\n  },\n  location: {},\n  history: {},\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener: function addEventListener() {},\n  removeEventListener: function removeEventListener() {},\n  getComputedStyle: function getComputedStyle() {\n    return {\n      getPropertyValue: function getPropertyValue() {\n        return '';\n      }\n    };\n  },\n  Image: function Image() {},\n  Date: function Date() {},\n  screen: {},\n  setTimeout: function setTimeout() {},\n  clearTimeout: function clearTimeout() {}\n} : window; // eslint-disable-line\n\n\n\n//# sourceURL=webpack:///./node_modules/_ssr-window@1.0.1@ssr-window/dist/ssr-window.esm.js?");

/***/ }),

/***/ "./node_modules/_ssr-window@2.0.0@ssr-window/dist/ssr-window.esm.js":
/*!**************************************************************************!*\
  !*** ./node_modules/_ssr-window@2.0.0@ssr-window/dist/ssr-window.esm.js ***!
  \**************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"document\": function() { return /* binding */ doc; },\n/* harmony export */   \"extend\": function() { return /* binding */ extend; },\n/* harmony export */   \"window\": function() { return /* binding */ win; }\n/* harmony export */ });\n/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n  if (target === void 0) {\n    target = {};\n  }\n  if (src === void 0) {\n    src = {};\n  }\n  Object.keys(src).forEach(function (key) {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      extend(target[key], src[key]);\n    }\n  });\n}\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n  body: {},\n  addEventListener: function () {},\n  removeEventListener: function () {},\n  activeElement: {\n    blur: function () {},\n    nodeName: ''\n  },\n  querySelector: function () {\n    return null;\n  },\n  querySelectorAll: function () {\n    return [];\n  },\n  getElementById: function () {\n    return null;\n  },\n  createEvent: function () {\n    return {\n      initEvent: function () {}\n    };\n  },\n  createElement: function () {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n      setAttribute: function () {},\n      getElementsByTagName: function () {\n        return [];\n      }\n    };\n  },\n  createElementNS: function () {\n    return {};\n  },\n  importNode: function () {\n    return null;\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  }\n};\nextend(doc, ssrDocument);\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n  document: ssrDocument,\n  navigator: {\n    userAgent: ''\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  },\n  history: {\n    replaceState: function () {},\n    pushState: function () {},\n    go: function () {},\n    back: function () {}\n  },\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener: function () {},\n  removeEventListener: function () {},\n  getComputedStyle: function () {\n    return {\n      getPropertyValue: function () {\n        return '';\n      }\n    };\n  },\n  Image: function () {},\n  Date: function () {},\n  screen: {},\n  setTimeout: function () {},\n  clearTimeout: function () {},\n  matchMedia: function () {\n    return {};\n  }\n};\nextend(win, ssrWindow);\n\n\n//# sourceURL=webpack:///./node_modules/_ssr-window@2.0.0@ssr-window/dist/ssr-window.esm.js?");

/***/ }),

/***/ "./node_modules/_swiper@4.5.1@swiper/dist/js/swiper.esm.bundle.js":
/*!************************************************************************!*\
  !*** ./node_modules/_swiper@4.5.1@swiper/dist/js/swiper.esm.bundle.js ***!
  \************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.unshift.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.unshift.js\");\n/* harmony import */ var core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_unshift_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dom7/dist/dom7.modular */ \"./node_modules/_dom7@2.1.5@dom7/dist/dom7.modular.js\");\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ssr-window */ \"./node_modules/_ssr-window@1.0.1@ssr-window/dist/ssr-window.esm.js\");\n\n\n/**\n * Swiper 4.5.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 13, 2019\n */\n\n\n\nconst Methods = {\n  addClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.addClass,\n  removeClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.removeClass,\n  hasClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.hasClass,\n  toggleClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.toggleClass,\n  attr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.attr,\n  removeAttr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.removeAttr,\n  data: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.data,\n  transform: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.transform,\n  transition: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.transition,\n  on: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.on,\n  off: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.off,\n  trigger: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.trigger,\n  transitionEnd: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.transitionEnd,\n  outerWidth: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.outerWidth,\n  outerHeight: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.outerHeight,\n  offset: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.offset,\n  css: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.css,\n  each: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.each,\n  html: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.html,\n  text: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.text,\n  is: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.is,\n  index: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.index,\n  eq: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.eq,\n  append: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.append,\n  prepend: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.prepend,\n  next: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.next,\n  nextAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.nextAll,\n  prev: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.prev,\n  prevAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.prevAll,\n  parent: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.parent,\n  parents: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.parents,\n  closest: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.closest,\n  find: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.find,\n  children: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.children,\n  remove: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.remove,\n  add: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.add,\n  styles: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.styles\n};\nObject.keys(Methods).forEach(methodName => {\n  dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$.fn[methodName] = dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$.fn[methodName] || Methods[methodName];\n});\nconst Utils = {\n  deleteProps(obj) {\n    const object = obj;\n    Object.keys(object).forEach(key => {\n      try {\n        object[key] = null;\n      } catch (e) {\n        // no getter for object\n      }\n      try {\n        delete object[key];\n      } catch (e) {\n        // something got wrong\n      }\n    });\n  },\n  nextTick(callback, delay = 0) {\n    return setTimeout(callback, delay);\n  },\n  now() {\n    return Date.now();\n  },\n  getTranslate(el, axis = 'x') {\n    let matrix;\n    let curTransform;\n    let transformMatrix;\n    const curStyle = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.getComputedStyle(el, null);\n    if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.WebKitCSSMatrix) {\n      curTransform = curStyle.transform || curStyle.webkitTransform;\n      if (curTransform.split(',').length > 6) {\n        curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n      }\n      // Some old versions of Webkit choke when 'none' is passed; pass\n      // empty string instead in this case\n      transformMatrix = new ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n    } else {\n      transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n      matrix = transformMatrix.toString().split(',');\n    }\n    if (axis === 'x') {\n      // Latest Chrome and webkits Fix\n      if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n      // Crazy IE10 Matrix\n      else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n      // Normal Browsers\n      else curTransform = parseFloat(matrix[4]);\n    }\n    if (axis === 'y') {\n      // Latest Chrome and webkits Fix\n      if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n      // Crazy IE10 Matrix\n      else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n      // Normal Browsers\n      else curTransform = parseFloat(matrix[5]);\n    }\n    return curTransform || 0;\n  },\n  parseUrlQuery(url) {\n    const query = {};\n    let urlToParse = url || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.location.href;\n    let i;\n    let params;\n    let param;\n    let length;\n    if (typeof urlToParse === 'string' && urlToParse.length) {\n      urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n      params = urlToParse.split('&').filter(paramsPart => paramsPart !== '');\n      length = params.length;\n      for (i = 0; i < length; i += 1) {\n        param = params[i].replace(/#\\S+/g, '').split('=');\n        query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n      }\n    }\n    return query;\n  },\n  isObject(o) {\n    return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n  },\n  extend(...args) {\n    const to = Object(args[0]);\n    for (let i = 1; i < args.length; i += 1) {\n      const nextSource = args[i];\n      if (nextSource !== undefined && nextSource !== null) {\n        const keysArray = Object.keys(Object(nextSource));\n        for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n          const nextKey = keysArray[nextIndex];\n          const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n          if (desc !== undefined && desc.enumerable) {\n            if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n              Utils.extend(to[nextKey], nextSource[nextKey]);\n            } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n              to[nextKey] = {};\n              Utils.extend(to[nextKey], nextSource[nextKey]);\n            } else {\n              to[nextKey] = nextSource[nextKey];\n            }\n          }\n        }\n      }\n    }\n    return to;\n  }\n};\nconst Support = function Support() {\n  const testDiv = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.createElement('div');\n  return {\n    touch: ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Modernizr && ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Modernizr.touch === true || function checkTouch() {\n      return !!(ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.maxTouchPoints > 0 || \"ontouchstart\" in ssr_window__WEBPACK_IMPORTED_MODULE_3__.window || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.DocumentTouch && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document instanceof ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.DocumentTouch);\n    }(),\n    pointerEvents: !!(ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.pointerEnabled || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.PointerEvent || \"maxTouchPoints\" in ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator && ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.maxTouchPoints > 0),\n    prefixedPointerEvents: !!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.msPointerEnabled,\n    transition: function checkTransition() {\n      const style = testDiv.style;\n      return 'transition' in style || 'webkitTransition' in style || 'MozTransition' in style;\n    }(),\n    transforms3d: ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Modernizr && ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Modernizr.csstransforms3d === true || function checkTransforms3d() {\n      const style = testDiv.style;\n      return 'webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style;\n    }(),\n    flexbox: function checkFlexbox() {\n      const style = testDiv.style;\n      const styles = 'alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient'.split(' ');\n      for (let i = 0; i < styles.length; i += 1) {\n        if (styles[i] in style) return true;\n      }\n      return false;\n    }(),\n    observer: function checkObserver() {\n      return \"MutationObserver\" in ssr_window__WEBPACK_IMPORTED_MODULE_3__.window || \"WebkitMutationObserver\" in ssr_window__WEBPACK_IMPORTED_MODULE_3__.window;\n    }(),\n    passiveListener: function checkPassiveListener() {\n      let supportsPassive = false;\n      try {\n        const opts = Object.defineProperty({}, 'passive', {\n          // eslint-disable-next-line\n          get() {\n            supportsPassive = true;\n          }\n        });\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.addEventListener('testPassiveListener', null, opts);\n      } catch (e) {\n        // No support\n      }\n      return supportsPassive;\n    }(),\n    gestures: function checkGestures() {\n      return \"ongesturestart\" in ssr_window__WEBPACK_IMPORTED_MODULE_3__.window;\n    }()\n  };\n}();\nconst Browser = function Browser() {\n  function isSafari() {\n    const ua = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n  return {\n    isIE: !!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent.match(/Trident/g) || !!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent.match(/MSIE/g),\n    isEdge: !!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent.match(/Edge/g),\n    isSafari: isSafari(),\n    isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent)\n  };\n}();\nclass SwiperClass {\n  constructor(params = {}) {\n    const self = this;\n    self.params = params;\n\n    // Events\n    self.eventsListeners = {};\n    if (self.params && self.params.on) {\n      Object.keys(self.params.on).forEach(eventName => {\n        self.on(eventName, self.params.on[eventName]);\n      });\n    }\n  }\n  on(events, handler, priority) {\n    const self = this;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(event => {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  }\n  once(events, handler, priority) {\n    const self = this;\n    if (typeof handler !== 'function') return self;\n    function onceHandler(...args) {\n      handler.apply(self, args);\n      self.off(events, onceHandler);\n      if (onceHandler.f7proxy) {\n        delete onceHandler.f7proxy;\n      }\n    }\n    onceHandler.f7proxy = handler;\n    return self.on(events, onceHandler, priority);\n  }\n  off(events, handler) {\n    const self = this;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(event => {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n        self.eventsListeners[event].forEach((eventHandler, index) => {\n          if (eventHandler === handler || eventHandler.f7proxy && eventHandler.f7proxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  }\n  emit(...args) {\n    const self = this;\n    if (!self.eventsListeners) return self;\n    let events;\n    let data;\n    let context;\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n      events = args[0];\n      data = args.slice(1, args.length);\n      context = self;\n    } else {\n      events = args[0].events;\n      data = args[0].data;\n      context = args[0].context || self;\n    }\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(event => {\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        const handlers = [];\n        self.eventsListeners[event].forEach(eventHandler => {\n          handlers.push(eventHandler);\n        });\n        handlers.forEach(eventHandler => {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n  useModulesParams(instanceParams) {\n    const instance = this;\n    if (!instance.modules) return;\n    Object.keys(instance.modules).forEach(moduleName => {\n      const module = instance.modules[moduleName];\n      // Extend params\n      if (module.params) {\n        Utils.extend(instanceParams, module.params);\n      }\n    });\n  }\n  useModules(modulesParams = {}) {\n    const instance = this;\n    if (!instance.modules) return;\n    Object.keys(instance.modules).forEach(moduleName => {\n      const module = instance.modules[moduleName];\n      const moduleParams = modulesParams[moduleName] || {};\n      // Extend instance methods and props\n      if (module.instance) {\n        Object.keys(module.instance).forEach(modulePropName => {\n          const moduleProp = module.instance[modulePropName];\n          if (typeof moduleProp === 'function') {\n            instance[modulePropName] = moduleProp.bind(instance);\n          } else {\n            instance[modulePropName] = moduleProp;\n          }\n        });\n      }\n      // Add event listeners\n      if (module.on && instance.on) {\n        Object.keys(module.on).forEach(moduleEventName => {\n          instance.on(moduleEventName, module.on[moduleEventName]);\n        });\n      }\n\n      // Module create callback\n      if (module.create) {\n        module.create.bind(instance)(moduleParams);\n      }\n    });\n  }\n  static set components(components) {\n    const Class = this;\n    if (!Class.use) return;\n    Class.use(components);\n  }\n  static installModule(module, ...params) {\n    const Class = this;\n    if (!Class.prototype.modules) Class.prototype.modules = {};\n    const name = module.name || `${Object.keys(Class.prototype.modules).length}_${Utils.now()}`;\n    Class.prototype.modules[name] = module;\n    // Prototype\n    if (module.proto) {\n      Object.keys(module.proto).forEach(key => {\n        Class.prototype[key] = module.proto[key];\n      });\n    }\n    // Class\n    if (module.static) {\n      Object.keys(module.static).forEach(key => {\n        Class[key] = module.static[key];\n      });\n    }\n    // Callback\n    if (module.install) {\n      module.install.apply(Class, params);\n    }\n    return Class;\n  }\n  static use(module, ...params) {\n    const Class = this;\n    if (Array.isArray(module)) {\n      module.forEach(m => Class.installModule(m));\n      return Class;\n    }\n    return Class.installModule(module, ...params);\n  }\n}\nfunction updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const $el = swiper.$el;\n  if (typeof swiper.params.width !== 'undefined') {\n    width = swiper.params.width;\n  } else {\n    width = $el[0].clientWidth;\n  }\n  if (typeof swiper.params.height !== 'undefined') {\n    height = swiper.params.height;\n  } else {\n    height = $el[0].clientHeight;\n  }\n  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n    return;\n  }\n\n  // Subtract paddings\n  width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n  height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n  Utils.extend(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}\nfunction updateSlides() {\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    $wrapperEl,\n    size: swiperSize,\n    rtlTranslate: rtl,\n    wrongRTL\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  let snapGrid = [];\n  const slidesGrid = [];\n  const slidesSizesGrid = [];\n  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.snapGrid.length;\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n  }\n  swiper.virtualSize = -spaceBetween;\n\n  // reset margins\n  if (rtl) slides.css({\n    marginLeft: '',\n    marginTop: ''\n  });else slides.css({\n    marginRight: '',\n    marginBottom: ''\n  });\n  let slidesNumberEvenToRows;\n  if (params.slidesPerColumn > 1) {\n    if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n      slidesNumberEvenToRows = slidesLength;\n    } else {\n      slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n    }\n    if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n    }\n  }\n\n  // Calc slides\n  let slideSize;\n  const slidesPerColumn = params.slidesPerColumn;\n  const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n  const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    const slide = slides.eq(i);\n    if (params.slidesPerColumn > 1) {\n      // Set slides order\n      let newSlideOrderIndex;\n      let column;\n      let row;\n      if (params.slidesPerColumnFill === 'column' || params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n        if (params.slidesPerColumnFill === 'column') {\n          column = Math.floor(i / slidesPerColumn);\n          row = i - column * slidesPerColumn;\n          if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n            row += 1;\n            if (row >= slidesPerColumn) {\n              row = 0;\n              column += 1;\n            }\n          }\n        } else {\n          const groupIndex = Math.floor(i / params.slidesPerGroup);\n          row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;\n          column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;\n        }\n        newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n        slide.css({\n          '-webkit-box-ordinal-group': newSlideOrderIndex,\n          '-moz-box-ordinal-group': newSlideOrderIndex,\n          '-ms-flex-order': newSlideOrderIndex,\n          '-webkit-order': newSlideOrderIndex,\n          order: newSlideOrderIndex\n        });\n      } else {\n        row = Math.floor(i / slidesPerRow);\n        column = i - row * slidesPerRow;\n      }\n      slide.css(`margin-${swiper.isHorizontal() ? 'top' : 'left'}`, row !== 0 && params.spaceBetween && `${params.spaceBetween}px`).attr('data-swiper-column', column).attr('data-swiper-row', row);\n    }\n    if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n    if (params.slidesPerView === 'auto') {\n      const slideStyles = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.getComputedStyle(slide[0], null);\n      const currentTransform = slide[0].style.transform;\n      const currentWebKitTransform = slide[0].style.webkitTransform;\n      if (currentTransform) {\n        slide[0].style.transform = 'none';\n      }\n      if (currentWebKitTransform) {\n        slide[0].style.webkitTransform = 'none';\n      }\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n      } else {\n        // eslint-disable-next-line\n        if (swiper.isHorizontal()) {\n          const width = parseFloat(slideStyles.getPropertyValue('width'));\n          const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n          const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n          const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n          const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n          const boxSizing = slideStyles.getPropertyValue('box-sizing');\n          if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n            slideSize = width + marginLeft + marginRight;\n          } else {\n            slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n          }\n        } else {\n          const height = parseFloat(slideStyles.getPropertyValue('height'));\n          const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n          const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n          const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n          const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n          const boxSizing = slideStyles.getPropertyValue('box-sizing');\n          if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n            slideSize = height + marginTop + marginBottom;\n          } else {\n            slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n          }\n        }\n      }\n      if (currentTransform) {\n        slide[0].style.transform = currentTransform;\n      }\n      if (currentWebKitTransform) {\n        slide[0].style.webkitTransform = currentWebKitTransform;\n      }\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n      if (slides[i]) {\n        if (swiper.isHorizontal()) {\n          slides[i].style.width = `${slideSize}px`;\n        } else {\n          slides[i].style.height = `${slideSize}px`;\n        }\n      }\n    }\n    if (slides[i]) {\n      slides[i].swiperSlideSize = slideSize;\n    }\n    slidesSizesGrid.push(slideSize);\n    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n    } else {\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n  let newSlidesGrid;\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    $wrapperEl.css({\n      width: `${swiper.virtualSize + params.spaceBetween}px`\n    });\n  }\n  if (!Support.flexbox || params.setWrapperSize) {\n    if (swiper.isHorizontal()) $wrapperEl.css({\n      width: `${swiper.virtualSize + params.spaceBetween}px`\n    });else $wrapperEl.css({\n      height: `${swiper.virtualSize + params.spaceBetween}px`\n    });\n  }\n  if (params.slidesPerColumn > 1) {\n    swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n    swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n    if (swiper.isHorizontal()) $wrapperEl.css({\n      width: `${swiper.virtualSize + params.spaceBetween}px`\n    });else $wrapperEl.css({\n      height: `${swiper.virtualSize + params.spaceBetween}px`\n    });\n    if (params.centeredSlides) {\n      newSlidesGrid = [];\n      for (let i = 0; i < snapGrid.length; i += 1) {\n        let slidesGridItem = snapGrid[i];\n        if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n      }\n      snapGrid = newSlidesGrid;\n    }\n  }\n\n  // Remove last grid elements depending on width\n  if (!params.centeredSlides) {\n    newSlidesGrid = [];\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n    snapGrid = newSlidesGrid;\n    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n      snapGrid.push(swiper.virtualSize - swiperSize);\n    }\n  }\n  if (snapGrid.length === 0) snapGrid = [0];\n  if (params.spaceBetween !== 0) {\n    if (swiper.isHorizontal()) {\n      if (rtl) slides.css({\n        marginLeft: `${spaceBetween}px`\n      });else slides.css({\n        marginRight: `${spaceBetween}px`\n      });\n    } else slides.css({\n      marginBottom: `${spaceBetween}px`\n    });\n  }\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n    if (allSlidesSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n  Utils.extend(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n  if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n    swiper.updateSlidesOffset();\n  }\n}\nfunction updateAutoHeight(speed) {\n  const swiper = this;\n  const activeSlides = [];\n  let newHeight = 0;\n  let i;\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n  // Find slides currently in view\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n      const index = swiper.activeIndex + i;\n      if (index > swiper.slides.length) break;\n      activeSlides.push(swiper.slides.eq(index)[0]);\n    }\n  } else {\n    activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n  }\n\n  // Find new height from highest slide in view\n  for (i = 0; i < activeSlides.length; i += 1) {\n    if (typeof activeSlides[i] !== 'undefined') {\n      const height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  }\n\n  // Update Height\n  if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\nfunction updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n  }\n}\nfunction updateSlidesProgress(translate = this && this.translate || 0) {\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    slides,\n    rtlTranslate: rtl\n  } = swiper;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n  let offsetCenter = -translate;\n  if (rtl) offsetCenter = translate;\n\n  // Visible Slides\n  slides.removeClass(params.slideVisibleClass);\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n    if (params.watchSlidesVisibility) {\n      const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n      const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n      const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n      if (isVisible) {\n        swiper.visibleSlides.push(slide);\n        swiper.visibleSlidesIndexes.push(i);\n        slides.eq(i).addClass(params.slideVisibleClass);\n      }\n    }\n    slide.progress = rtl ? -slideProgress : slideProgress;\n  }\n  swiper.visibleSlides = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.visibleSlides);\n}\nfunction updateProgress(translate = this && this.translate || 0) {\n  const swiper = this;\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let {\n    progress,\n    isBeginning,\n    isEnd\n  } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    isBeginning = progress <= 0;\n    isEnd = progress >= 1;\n  }\n  Utils.extend(swiper, {\n    progress,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n    swiper.emit('fromEdge');\n  }\n  swiper.emit('progress', progress);\n}\nfunction updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    $wrapperEl,\n    activeIndex,\n    realIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n  let activeSlide;\n  if (isVirtual) {\n    activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n  } else {\n    activeSlide = slides.eq(activeIndex);\n  }\n\n  // Active classes\n  activeSlide.addClass(params.slideActiveClass);\n  if (params.loop) {\n    // Duplicate to all looped slides\n    if (activeSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n    }\n  }\n  // Next Slide\n  let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n  if (params.loop && nextSlide.length === 0) {\n    nextSlide = slides.eq(0);\n    nextSlide.addClass(params.slideNextClass);\n  }\n  // Prev Slide\n  let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n  if (params.loop && prevSlide.length === 0) {\n    prevSlide = slides.eq(-1);\n    prevSlide.addClass(params.slidePrevClass);\n  }\n  if (params.loop) {\n    // Duplicate to all looped slides\n    if (nextSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n    }\n    if (prevSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n    }\n  }\n}\nfunction updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    slidesGrid,\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n  if (typeof activeIndex === 'undefined') {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n          activeIndex = i;\n        } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n          activeIndex = i + 1;\n        }\n      } else if (translate >= slidesGrid[i]) {\n        activeIndex = i;\n      }\n    }\n    // Normalize slideIndex\n    if (params.normalizeSlideIndex) {\n      if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n    }\n  }\n  if (snapGrid.indexOf(translate) >= 0) {\n    snapIndex = snapGrid.indexOf(translate);\n  } else {\n    snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n  }\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if (activeIndex === previousIndex) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n    return;\n  }\n\n  // Get real index\n  const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n  Utils.extend(swiper, {\n    snapIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n  if (previousRealIndex !== realIndex) {\n    swiper.emit('realIndexChange');\n  }\n  if (swiper.initialized || swiper.runCallbacksOnInit) {\n    swiper.emit('slideChange');\n  }\n}\nfunction updateClickedSlide(e) {\n  const swiper = this;\n  const params = swiper.params;\n  const slide = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).closest(`.${params.slideClass}`)[0];\n  let slideFound = false;\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) slideFound = true;\n    }\n  }\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slide).attr('data-swiper-slide-index'), 10);\n    } else {\n      swiper.clickedIndex = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slide).index();\n    }\n  } else {\n    swiper.clickedSlide = undefined;\n    swiper.clickedIndex = undefined;\n    return;\n  }\n  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\n  }\n}\nvar update = {\n  updateSize,\n  updateSlides,\n  updateAutoHeight,\n  updateSlidesOffset,\n  updateSlidesProgress,\n  updateProgress,\n  updateSlidesClasses,\n  updateActiveIndex,\n  updateClickedSlide\n};\nfunction getTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    $wrapperEl\n  } = swiper;\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n  const swiper = this;\n  const {\n    rtlTranslate: rtl,\n    params,\n    $wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n  if (!params.virtualTranslate) {\n    if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);else $wrapperEl.transform(`translate(${x}px, ${y}px)`);\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n\n  // Check if we need to update progress\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n  return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}\nvar translate = {\n  getTranslate,\n  setTranslate,\n  minTranslate,\n  maxTranslate\n};\nfunction setTransition(duration, byController) {\n  const swiper = this;\n  swiper.$wrapperEl.transition(duration);\n  swiper.emit('setTransition', duration, byController);\n}\nfunction transitionStart(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    activeIndex,\n    params,\n    previousIndex\n  } = swiper;\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit('transitionStart');\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit('slideResetTransitionStart');\n      return;\n    }\n    swiper.emit('slideChangeTransitionStart');\n    if (dir === 'next') {\n      swiper.emit('slideNextTransitionStart');\n    } else {\n      swiper.emit('slidePrevTransitionStart');\n    }\n  }\n}\nfunction transitionEnd(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  swiper.animating = false;\n  swiper.setTransition(0);\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit('transitionEnd');\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit('slideResetTransitionEnd');\n      return;\n    }\n    swiper.emit('slideChangeTransitionEnd');\n    if (dir === 'next') {\n      swiper.emit('slideNextTransitionEnd');\n    } else {\n      swiper.emit('slidePrevTransitionEnd');\n    }\n  }\n}\nvar transition = {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};\nfunction slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  let snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n  const translate = -snapGrid[snapIndex];\n\n  // Update progress\n  swiper.updateProgress(translate);\n\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n        slideIndex = i;\n      }\n    }\n  }\n  // Directions locks\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) return false;\n    }\n  }\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n  // Update Index\n  if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n    swiper.updateActiveIndex(slideIndex);\n    // Update Height\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n    swiper.updateSlidesClasses();\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n    return false;\n  }\n  if (speed === 0 || !Support.transition) {\n    swiper.setTransition(0);\n    swiper.setTranslate(translate);\n    swiper.updateActiveIndex(slideIndex);\n    swiper.updateSlidesClasses();\n    swiper.emit('beforeTransitionStart', speed, internal);\n    swiper.transitionStart(runCallbacks, direction);\n    swiper.transitionEnd(runCallbacks, direction);\n  } else {\n    swiper.setTransition(speed);\n    swiper.setTranslate(translate);\n    swiper.updateActiveIndex(slideIndex);\n    swiper.updateSlidesClasses();\n    swiper.emit('beforeTransitionStart', speed, internal);\n    swiper.transitionStart(runCallbacks, direction);\n    if (!swiper.animating) {\n      swiper.animating = true;\n      if (!swiper.onSlideToWrapperTransitionEnd) {\n        swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n          swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n          swiper.onSlideToWrapperTransitionEnd = null;\n          delete swiper.onSlideToWrapperTransitionEnd;\n          swiper.transitionEnd(runCallbacks, direction);\n        };\n      }\n      swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n      swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n    }\n  }\n  return true;\n}\nfunction slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  let newIndex = index;\n  if (swiper.params.loop) {\n    newIndex += swiper.loopedSlides;\n  }\n  return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    animating\n  } = swiper;\n  if (params.loop) {\n    if (animating) return false;\n    swiper.loopFix();\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n    return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    animating,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate\n  } = swiper;\n  if (params.loop) {\n    if (animating) return false;\n    swiper.loopFix();\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n  const normalizedSlidesGrid = slidesGrid.map(val => normalize(val));\n  const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n  const prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n  let prevIndex;\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  let index = swiper.activeIndex;\n  const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n  if (snapIndex < swiper.snapGrid.length - 1) {\n    const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n    const currentSnap = swiper.snapGrid[snapIndex];\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\n    if (translate - currentSnap > (nextSnap - currentSnap) / 2) {\n      index = swiper.params.slidesPerGroup;\n    }\n  }\n  return swiper.slideTo(index, speed, runCallbacks, internal);\n}\nfunction slideToClickedSlide() {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl\n  } = swiper;\n  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.clickedIndex;\n  let realIndex;\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n    if (params.centeredSlides) {\n      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n        swiper.loopFix();\n        slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n        Utils.nextTick(() => {\n          swiper.slideTo(slideToIndex);\n        });\n      } else {\n        swiper.slideTo(slideToIndex);\n      }\n    } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n      swiper.loopFix();\n      slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n      Utils.nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}\nvar slide = {\n  slideTo,\n  slideToLoop,\n  slideNext,\n  slidePrev,\n  slideReset,\n  slideToClosest,\n  slideToClickedSlide\n};\nfunction loopCreate() {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl\n  } = swiper;\n  // Remove duplicated slides\n  $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n  let slides = $wrapperEl.children(`.${params.slideClass}`);\n  if (params.loopFillGroupWithBlank) {\n    const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n    if (blankSlidesNum !== params.slidesPerGroup) {\n      for (let i = 0; i < blankSlidesNum; i += 1) {\n        const blankNode = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n        $wrapperEl.append(blankNode);\n      }\n      slides = $wrapperEl.children(`.${params.slideClass}`);\n    }\n  }\n  if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n  swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n  swiper.loopedSlides += params.loopAdditionalSlides;\n  if (swiper.loopedSlides > slides.length) {\n    swiper.loopedSlides = slides.length;\n  }\n  const prependSlides = [];\n  const appendSlides = [];\n  slides.each((index, el) => {\n    const slide = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(el);\n    if (index < swiper.loopedSlides) appendSlides.push(el);\n    if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n    slide.attr('data-swiper-slide-index', index);\n  });\n  for (let i = 0; i < appendSlides.length; i += 1) {\n    $wrapperEl.append((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n  for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n    $wrapperEl.prepend((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n}\nfunction loopFix() {\n  const swiper = this;\n  const {\n    params,\n    activeIndex,\n    slides,\n    loopedSlides,\n    allowSlidePrev,\n    allowSlideNext,\n    snapGrid,\n    rtlTranslate: rtl\n  } = swiper;\n  let newIndex;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  const snapTranslate = -snapGrid[activeIndex];\n  const diff = snapTranslate - swiper.getTranslate();\n\n  // Fix For Negative Oversliding\n  if (activeIndex < loopedSlides) {\n    newIndex = slides.length - loopedSlides * 3 + activeIndex;\n    newIndex += loopedSlides;\n    const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n    if (slideChanged && diff !== 0) {\n      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n    }\n  } else if (params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2 || activeIndex >= slides.length - loopedSlides) {\n    // Fix For Positive Oversliding\n    newIndex = -slides.length + activeIndex + loopedSlides;\n    newIndex += loopedSlides;\n    const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n    if (slideChanged && diff !== 0) {\n      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n    }\n  }\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n}\nfunction loopDestroy() {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params,\n    slides\n  } = swiper;\n  $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n  slides.removeAttr('data-swiper-slide-index');\n}\nvar loop = {\n  loopCreate,\n  loopFix,\n  loopDestroy\n};\nfunction setGrabCursor(moving) {\n  const swiper = this;\n  if (Support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked) return;\n  const el = swiper.el;\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n  el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n}\nfunction unsetGrabCursor() {\n  const swiper = this;\n  if (Support.touch || swiper.params.watchOverflow && swiper.isLocked) return;\n  swiper.el.style.cursor = '';\n}\nvar grabCursor = {\n  setGrabCursor,\n  unsetGrabCursor\n};\nfunction appendSlide(slides) {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params\n  } = swiper;\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.append(slides[i]);\n    }\n  } else {\n    $wrapperEl.append(slides);\n  }\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!(params.observer && Support.observer)) {\n    swiper.update();\n  }\n}\nfunction prependSlide(slides) {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl,\n    activeIndex\n  } = swiper;\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n  let newActiveIndex = activeIndex + 1;\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.prepend(slides[i]);\n    }\n    newActiveIndex = activeIndex + slides.length;\n  } else {\n    $wrapperEl.prepend(slides);\n  }\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!(params.observer && Support.observer)) {\n    swiper.update();\n  }\n  swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction addSlide(index, slides) {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params,\n    activeIndex\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n  }\n  const baseLength = swiper.slides.length;\n  if (index <= 0) {\n    swiper.prependSlide(slides);\n    return;\n  }\n  if (index >= baseLength) {\n    swiper.appendSlide(slides);\n    return;\n  }\n  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n  const slidesBuffer = [];\n  for (let i = baseLength - 1; i >= index; i -= 1) {\n    const currentSlide = swiper.slides.eq(i);\n    currentSlide.remove();\n    slidesBuffer.unshift(currentSlide);\n  }\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.append(slides[i]);\n    }\n    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n  } else {\n    $wrapperEl.append(slides);\n  }\n  for (let i = 0; i < slidesBuffer.length; i += 1) {\n    $wrapperEl.append(slidesBuffer[i]);\n  }\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!(params.observer && Support.observer)) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\nfunction removeSlide(slidesIndexes) {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl,\n    activeIndex\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n  }\n  let newActiveIndex = activeIndexBuffer;\n  let indexToRemove;\n  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n    for (let i = 0; i < slidesIndexes.length; i += 1) {\n      indexToRemove = slidesIndexes[i];\n      if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    }\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  } else {\n    indexToRemove = slidesIndexes;\n    if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  }\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!(params.observer && Support.observer)) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\nfunction removeAllSlides() {\n  const swiper = this;\n  const slidesIndexes = [];\n  for (let i = 0; i < swiper.slides.length; i += 1) {\n    slidesIndexes.push(i);\n  }\n  swiper.removeSlide(slidesIndexes);\n}\nvar manipulation = {\n  appendSlide,\n  prependSlide,\n  addSlide,\n  removeSlide,\n  removeAllSlides\n};\nconst Device = function Device() {\n  const ua = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent;\n  const device = {\n    ios: false,\n    android: false,\n    androidChrome: false,\n    desktop: false,\n    windows: false,\n    iphone: false,\n    ipod: false,\n    ipad: false,\n    cordova: ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.cordova || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.phonegap,\n    phonegap: ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.cordova || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.phonegap\n  };\n  const windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n  const ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n  // Windows\n  if (windows) {\n    device.os = 'windows';\n    device.osVersion = windows[2];\n    device.windows = true;\n  }\n  // Android\n  if (android && !windows) {\n    device.os = 'android';\n    device.osVersion = android[2];\n    device.android = true;\n    device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n  }\n  if (ipad || iphone || ipod) {\n    device.os = 'ios';\n    device.ios = true;\n  }\n  // iOS\n  if (iphone && !ipod) {\n    device.osVersion = iphone[2].replace(/_/g, '.');\n    device.iphone = true;\n  }\n  if (ipad) {\n    device.osVersion = ipad[2].replace(/_/g, '.');\n    device.ipad = true;\n  }\n  if (ipod) {\n    device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n    device.iphone = true;\n  }\n  // iOS 8+ changed UA\n  if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n    if (device.osVersion.split('.')[0] === '10') {\n      device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n    }\n  }\n\n  // Desktop\n  device.desktop = !(device.os || device.android || device.webView);\n\n  // Webview\n  device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n  // Minimal UI\n  if (device.os && device.os === 'ios') {\n    const osVersionArr = device.osVersion.split('.');\n    const metaViewport = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.querySelector('meta[name=\"viewport\"]');\n    device.minimalUi = !device.webView && (ipod || iphone) && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n  }\n\n  // Pixel Ratio\n  device.pixelRatio = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.devicePixelRatio || 1;\n\n  // Export object\n  return device;\n}();\nfunction onTouchStart(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  data.isTouchEvent = e.type === 'touchstart';\n  if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n  if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return;\n  if (params.noSwiping && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n    swiper.allowClick = true;\n    return;\n  }\n  if (params.swipeHandler) {\n    if (!(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e).closest(params.swipeHandler)[0]) return;\n  }\n  touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n  touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY;\n\n  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n  const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n  const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.screen.width - edgeSwipeThreshold)) {\n    return;\n  }\n  Utils.extend(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\n  });\n  touches.startX = startX;\n  touches.startY = startY;\n  data.touchStartTime = Utils.now();\n  swiper.allowClick = true;\n  swiper.updateSize();\n  swiper.swipeDirection = undefined;\n  if (params.threshold > 0) data.allowThresholdMove = false;\n  if (e.type !== 'touchstart') {\n    let preventDefault = true;\n    if ((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).is(data.formElements)) preventDefault = false;\n    if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement).is(data.formElements) && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement !== e.target) {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement.blur();\n    }\n    const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n    if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n      e.preventDefault();\n    }\n  }\n  swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl\n  } = swiper;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n    return;\n  }\n  if (data.isTouchEvent && e.type === 'mousemove') return;\n  const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n  const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n  if (!swiper.allowTouchMove) {\n    // isMoved = true;\n    swiper.allowClick = false;\n    if (data.isTouched) {\n      Utils.extend(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY\n      });\n      data.touchStartTime = Utils.now();\n    }\n    return;\n  }\n  if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n    if (swiper.isVertical()) {\n      // Vertical\n      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n      return;\n    }\n  }\n  if (data.isTouchEvent && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement) {\n    if (e.target === ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).is(data.formElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\n  if (e.targetTouches && e.targetTouches.length > 1) return;\n  touches.currentX = pageX;\n  touches.currentY = pageY;\n  const diffX = touches.currentX - touches.startX;\n  const diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n      data.isScrolling = false;\n    } else {\n      // eslint-disable-next-line\n      if (diffX * diffX + diffY * diffY >= 25) {\n        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n      }\n    }\n  }\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n  if (data.isScrolling) {\n    data.isTouched = false;\n    return;\n  }\n  if (!data.startMoving) {\n    return;\n  }\n  swiper.allowClick = false;\n  e.preventDefault();\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n  if (!data.isMoved) {\n    if (params.loop) {\n      swiper.loopFix();\n    }\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n    if (swiper.animating) {\n      swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n    }\n    data.allowMomentumBounce = false;\n    // Grab Cursor\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n    swiper.emit('sliderFirstMove', e);\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) diff = -diff;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n  } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n  }\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  // Threshold\n  if (params.threshold > 0) {\n    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n      if (!data.allowThresholdMove) {\n        data.allowThresholdMove = true;\n        touches.startX = touches.currentX;\n        touches.startY = touches.currentY;\n        data.currentTranslate = data.startTranslate;\n        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n  if (!params.followFinger) return;\n\n  // Update active index in free mode\n  if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  if (params.freeMode) {\n    // Velocity\n    if (data.velocities.length === 0) {\n      data.velocities.push({\n        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n        time: data.touchStartTime\n      });\n    }\n    data.velocities.push({\n      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n      time: Utils.now()\n    });\n  }\n  // Update progress\n  swiper.updateProgress(data.currentTranslate);\n  // Update translate\n  swiper.setTranslate(data.currentTranslate);\n}\nfunction onTouchEnd(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    $wrapperEl,\n    slidesGrid,\n    snapGrid\n  } = swiper;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n  data.allowTouchCallbacks = false;\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  // Return Grab Cursor\n  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n    swiper.setGrabCursor(false);\n  }\n\n  // Time diff\n  const touchEndTime = Utils.now();\n  const timeDiff = touchEndTime - data.touchStartTime;\n\n  // Tap, doubleTap, Click\n  if (swiper.allowClick) {\n    swiper.updateClickedSlide(e);\n    swiper.emit('tap', e);\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime > 300) {\n      if (data.clickTimeout) clearTimeout(data.clickTimeout);\n      data.clickTimeout = Utils.nextTick(() => {\n        if (!swiper || swiper.destroyed) return;\n        swiper.emit('click', e);\n      }, 300);\n    }\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      if (data.clickTimeout) clearTimeout(data.clickTimeout);\n      swiper.emit('doubleTap', e);\n    }\n  }\n  data.lastClickTime = Utils.now();\n  Utils.nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n  if (params.freeMode) {\n    if (currentPos < -swiper.minTranslate()) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (currentPos > -swiper.maxTranslate()) {\n      if (swiper.slides.length < snapGrid.length) {\n        swiper.slideTo(snapGrid.length - 1);\n      } else {\n        swiper.slideTo(swiper.slides.length - 1);\n      }\n      return;\n    }\n    if (params.freeModeMomentum) {\n      if (data.velocities.length > 1) {\n        const lastMoveEvent = data.velocities.pop();\n        const velocityEvent = data.velocities.pop();\n        const distance = lastMoveEvent.position - velocityEvent.position;\n        const time = lastMoveEvent.time - velocityEvent.time;\n        swiper.velocity = distance / time;\n        swiper.velocity /= 2;\n        if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n          swiper.velocity = 0;\n        }\n        // this implies that the user stopped moving a finger then released.\n        // There would be no events with distance zero, so the last event is stale.\n        if (time > 150 || Utils.now() - lastMoveEvent.time > 300) {\n          swiper.velocity = 0;\n        }\n      } else {\n        swiper.velocity = 0;\n      }\n      swiper.velocity *= params.freeModeMomentumVelocityRatio;\n      data.velocities.length = 0;\n      let momentumDuration = 1000 * params.freeModeMomentumRatio;\n      const momentumDistance = swiper.velocity * momentumDuration;\n      let newPosition = swiper.translate + momentumDistance;\n      if (rtl) newPosition = -newPosition;\n      let doBounce = false;\n      let afterBouncePosition;\n      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n      let needsLoopFix;\n      if (newPosition < swiper.maxTranslate()) {\n        if (params.freeModeMomentumBounce) {\n          if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n            newPosition = swiper.maxTranslate() - bounceAmount;\n          }\n          afterBouncePosition = swiper.maxTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.maxTranslate();\n        }\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (newPosition > swiper.minTranslate()) {\n        if (params.freeModeMomentumBounce) {\n          if (newPosition - swiper.minTranslate() > bounceAmount) {\n            newPosition = swiper.minTranslate() + bounceAmount;\n          }\n          afterBouncePosition = swiper.minTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.minTranslate();\n        }\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (params.freeModeSticky) {\n        let nextSlide;\n        for (let j = 0; j < snapGrid.length; j += 1) {\n          if (snapGrid[j] > -newPosition) {\n            nextSlide = j;\n            break;\n          }\n        }\n        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n          newPosition = snapGrid[nextSlide];\n        } else {\n          newPosition = snapGrid[nextSlide - 1];\n        }\n        newPosition = -newPosition;\n      }\n      if (needsLoopFix) {\n        swiper.once('transitionEnd', () => {\n          swiper.loopFix();\n        });\n      }\n      // Fix duration\n      if (swiper.velocity !== 0) {\n        if (rtl) {\n          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n        } else {\n          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n        }\n      } else if (params.freeModeSticky) {\n        swiper.slideToClosest();\n        return;\n      }\n      if (params.freeModeMomentumBounce && doBounce) {\n        swiper.updateProgress(afterBouncePosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n        swiper.animating = true;\n        $wrapperEl.transitionEnd(() => {\n          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n          swiper.emit('momentumBounce');\n          swiper.setTransition(params.speed);\n          swiper.setTranslate(afterBouncePosition);\n          $wrapperEl.transitionEnd(() => {\n            if (!swiper || swiper.destroyed) return;\n            swiper.transitionEnd();\n          });\n        });\n      } else if (swiper.velocity) {\n        swiper.updateProgress(newPosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n        if (!swiper.animating) {\n          swiper.animating = true;\n          $wrapperEl.transitionEnd(() => {\n            if (!swiper || swiper.destroyed) return;\n            swiper.transitionEnd();\n          });\n        }\n      } else {\n        swiper.updateProgress(newPosition);\n      }\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    } else if (params.freeModeSticky) {\n      swiper.slideToClosest();\n      return;\n    }\n    if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n      swiper.updateProgress();\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    return;\n  }\n\n  // Find current slide\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n    if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n      if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n      }\n    } else if (currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n\n  // Find current slide size\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex);\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      swiper.slideTo(stopIndex + params.slidesPerGroup);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      swiper.slideTo(stopIndex);\n    }\n  }\n}\nfunction onResize() {\n  const swiper = this;\n  const {\n    params,\n    el\n  } = swiper;\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  if (params.freeMode) {\n    const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n    swiper.setTranslate(newTranslate);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n  } else {\n    swiper.updateSlidesClasses();\n    if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n      swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n  }\n  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    swiper.autoplay.run();\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}\nfunction onClick(e) {\n  const swiper = this;\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n    }\n  }\n}\nfunction attachEvents() {\n  const swiper = this;\n  const {\n    params,\n    touchEvents,\n    el,\n    wrapperEl\n  } = swiper;\n  {\n    swiper.onTouchStart = onTouchStart.bind(swiper);\n    swiper.onTouchMove = onTouchMove.bind(swiper);\n    swiper.onTouchEnd = onTouchEnd.bind(swiper);\n  }\n  swiper.onClick = onClick.bind(swiper);\n  const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n  const capture = !!params.nested;\n\n  // Touch Events\n  {\n    if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n      target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n    } else {\n      if (Support.touch) {\n        const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? {\n          passive: true,\n          capture: false\n        } : false;\n        target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n        target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? {\n          passive: false,\n          capture\n        } : capture);\n        target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n      }\n      if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n        target.addEventListener('mousedown', swiper.onTouchStart, false);\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener('mousemove', swiper.onTouchMove, capture);\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener('mouseup', swiper.onTouchEnd, false);\n      }\n    }\n    // Prevent Links Clicks\n    if (params.preventClicks || params.preventClicksPropagation) {\n      target.addEventListener('click', swiper.onClick, true);\n    }\n  }\n\n  // Resize handler\n  swiper.on(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n}\nfunction detachEvents() {\n  const swiper = this;\n  const {\n    params,\n    touchEvents,\n    el,\n    wrapperEl\n  } = swiper;\n  const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n  const capture = !!params.nested;\n\n  // Touch Events\n  {\n    if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n      target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n    } else {\n      if (Support.touch) {\n        const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? {\n          passive: true,\n          capture: false\n        } : false;\n        target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n        target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n        target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n      }\n      if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n        target.removeEventListener('mousedown', swiper.onTouchStart, false);\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n      }\n    }\n    // Prevent Links Clicks\n    if (params.preventClicks || params.preventClicksPropagation) {\n      target.removeEventListener('click', swiper.onClick, true);\n    }\n  }\n\n  // Resize handler\n  swiper.off(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\nvar events = {\n  attachEvents,\n  detachEvents\n};\nfunction setBreakpoint() {\n  const swiper = this;\n  const {\n    activeIndex,\n    initialized,\n    loopedSlides = 0,\n    params\n  } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n  // Set breakpoint for window width and update parameters\n  const breakpoint = swiper.getBreakpoint(breakpoints);\n  if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n    const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n    if (breakpointOnlyParams) {\n      ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(param => {\n        const paramValue = breakpointOnlyParams[param];\n        if (typeof paramValue === 'undefined') return;\n        if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n          breakpointOnlyParams[param] = 'auto';\n        } else if (param === 'slidesPerView') {\n          breakpointOnlyParams[param] = parseFloat(paramValue);\n        } else {\n          breakpointOnlyParams[param] = parseInt(paramValue, 10);\n        }\n      });\n    }\n    const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n    const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n    const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n    if (directionChanged && initialized) {\n      swiper.changeDirection();\n    }\n    Utils.extend(swiper.params, breakpointParams);\n    Utils.extend(swiper, {\n      allowTouchMove: swiper.params.allowTouchMove,\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev\n    });\n    swiper.currentBreakpoint = breakpoint;\n    if (needsReLoop && initialized) {\n      swiper.loopDestroy();\n      swiper.loopCreate();\n      swiper.updateSlides();\n      swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n    }\n    swiper.emit('breakpoint', breakpointParams);\n  }\n}\nfunction getBreakpoint(breakpoints) {\n  const swiper = this;\n  // Get breakpoint for window width\n  if (!breakpoints) return undefined;\n  let breakpoint = false;\n  const points = [];\n  Object.keys(breakpoints).forEach(point => {\n    points.push(point);\n  });\n  points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\n  for (let i = 0; i < points.length; i += 1) {\n    const point = points[i];\n    if (swiper.params.breakpointsInverse) {\n      if (point <= ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.innerWidth) {\n        breakpoint = point;\n      }\n    } else if (point >= ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.innerWidth && !breakpoint) {\n      breakpoint = point;\n    }\n  }\n  return breakpoint || 'max';\n}\nvar breakpoints = {\n  setBreakpoint,\n  getBreakpoint\n};\nfunction addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    $el\n  } = swiper;\n  const suffixes = [];\n  suffixes.push('initialized');\n  suffixes.push(params.direction);\n  if (params.freeMode) {\n    suffixes.push('free-mode');\n  }\n  if (!Support.flexbox) {\n    suffixes.push('no-flexbox');\n  }\n  if (params.autoHeight) {\n    suffixes.push('autoheight');\n  }\n  if (rtl) {\n    suffixes.push('rtl');\n  }\n  if (params.slidesPerColumn > 1) {\n    suffixes.push('multirow');\n  }\n  if (Device.android) {\n    suffixes.push('android');\n  }\n  if (Device.ios) {\n    suffixes.push('ios');\n  }\n  // WP8 Touch Events Fix\n  if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n    suffixes.push(`wp8-${params.direction}`);\n  }\n  suffixes.forEach(suffix => {\n    classNames.push(params.containerModifierClass + suffix);\n  });\n  $el.addClass(classNames.join(' '));\n}\nfunction removeClasses() {\n  const swiper = this;\n  const {\n    $el,\n    classNames\n  } = swiper;\n  $el.removeClass(classNames.join(' '));\n}\nvar classes = {\n  addClasses,\n  removeClasses\n};\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n  let image;\n  function onReady() {\n    if (callback) callback();\n  }\n  if (!imageEl.complete || !checkForComplete) {\n    if (src) {\n      image = new ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Image();\n      image.onload = onReady;\n      image.onerror = onReady;\n      if (sizes) {\n        image.sizes = sizes;\n      }\n      if (srcset) {\n        image.srcset = srcset;\n      }\n      if (src) {\n        image.src = src;\n      }\n    } else {\n      onReady();\n    }\n  } else {\n    // image already loaded...\n    onReady();\n  }\n}\nfunction preloadImages() {\n  const swiper = this;\n  swiper.imagesToLoad = swiper.$el.find('img');\n  function onReady() {\n    if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n    if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n    if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n      if (swiper.params.updateOnImagesReady) swiper.update();\n      swiper.emit('imagesReady');\n    }\n  }\n  for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n    const imageEl = swiper.imagesToLoad[i];\n    swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n  }\n}\nvar images = {\n  loadImage,\n  preloadImages\n};\nfunction checkOverflow() {\n  const swiper = this;\n  const wasLocked = swiper.isLocked;\n  swiper.isLocked = swiper.snapGrid.length === 1;\n  swiper.allowSlideNext = !swiper.isLocked;\n  swiper.allowSlidePrev = !swiper.isLocked;\n\n  // events\n  if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n    swiper.navigation.update();\n  }\n}\nvar checkOverflow$1 = {\n  checkOverflow\n};\nvar defaults = {\n  init: true,\n  direction: 'horizontal',\n  touchEventsTarget: 'container',\n  initialSlide: 0,\n  speed: 300,\n  //\n  preventInteractionOnTransition: false,\n  // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n  // Free mode\n  freeMode: false,\n  freeModeMomentum: true,\n  freeModeMomentumRatio: 1,\n  freeModeMomentumBounce: true,\n  freeModeMomentumBounceRatio: 1,\n  freeModeMomentumVelocityRatio: 1,\n  freeModeSticky: false,\n  freeModeMinimumVelocity: 0.02,\n  // Autoheight\n  autoHeight: false,\n  // Set wrapper width\n  setWrapperSize: false,\n  // Virtual Translate\n  virtualTranslate: false,\n  // Effects\n  effect: 'slide',\n  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsInverse: false,\n  // Slides grid\n  spaceBetween: 0,\n  slidesPerView: 1,\n  slidesPerColumn: 1,\n  slidesPerColumnFill: 'column',\n  slidesPerGroup: 1,\n  centeredSlides: false,\n  slidesOffsetBefore: 0,\n  // in px\n  slidesOffsetAfter: 0,\n  // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: false,\n  // Round length\n  roundLengths: false,\n  // Touches\n  touchRatio: 1,\n  touchAngle: 45,\n  simulateTouch: true,\n  shortSwipes: true,\n  longSwipes: true,\n  longSwipesRatio: 0.5,\n  longSwipesMs: 300,\n  followFinger: true,\n  allowTouchMove: true,\n  threshold: 0,\n  touchMoveStopPropagation: true,\n  touchStartPreventDefault: true,\n  touchStartForcePreventDefault: false,\n  touchReleaseOnEdges: false,\n  // Unique Navigation Elements\n  uniqueNavElements: true,\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n  // Progress\n  watchSlidesProgress: false,\n  watchSlidesVisibility: false,\n  // Cursor\n  grabCursor: false,\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n  // Images\n  preloadImages: true,\n  updateOnImagesReady: true,\n  // loop\n  loop: false,\n  loopAdditionalSlides: 0,\n  loopedSlides: null,\n  loopFillGroupWithBlank: false,\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null,\n  // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n  // Passive Listeners\n  passiveListeners: true,\n  // NS\n  containerModifierClass: 'swiper-container-',\n  // NEW\n  slideClass: 'swiper-slide',\n  slideBlankClass: 'swiper-slide-invisible-blank',\n  slideActiveClass: 'swiper-slide-active',\n  slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideDuplicateClass: 'swiper-slide-duplicate',\n  slideNextClass: 'swiper-slide-next',\n  slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n  slidePrevClass: 'swiper-slide-prev',\n  slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n  wrapperClass: 'swiper-wrapper',\n  // Callbacks\n  runCallbacksOnInit: true\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n  update,\n  translate,\n  transition,\n  slide,\n  loop,\n  grabCursor,\n  manipulation,\n  events,\n  breakpoints,\n  checkOverflow: checkOverflow$1,\n  classes,\n  images\n};\nconst extendedDefaults = {};\nclass Swiper extends SwiperClass {\n  constructor(...args) {\n    let el;\n    let params;\n    if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n    params = Utils.extend({}, params);\n    if (el && !params.el) params.el = el;\n    super(params);\n    Object.keys(prototypes).forEach(prototypeGroup => {\n      Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n        if (!Swiper.prototype[protoMethod]) {\n          Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n        }\n      });\n    });\n\n    // Swiper Instance\n    const swiper = this;\n    if (typeof swiper.modules === 'undefined') {\n      swiper.modules = {};\n    }\n    Object.keys(swiper.modules).forEach(moduleName => {\n      const module = swiper.modules[moduleName];\n      if (module.params) {\n        const moduleParamName = Object.keys(module.params)[0];\n        const moduleParams = module.params[moduleParamName];\n        if (typeof moduleParams !== 'object' || moduleParams === null) return;\n        if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n        if (params[moduleParamName] === true) {\n          params[moduleParamName] = {\n            enabled: true\n          };\n        }\n        if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n          params[moduleParamName].enabled = true;\n        }\n        if (!params[moduleParamName]) params[moduleParamName] = {\n          enabled: false\n        };\n      }\n    });\n\n    // Extend defaults with modules params\n    const swiperParams = Utils.extend({}, defaults);\n    swiper.useModulesParams(swiperParams);\n\n    // Extend defaults with passed params\n    swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = Utils.extend({}, swiper.params);\n    swiper.passedParams = Utils.extend({}, params);\n\n    // Save Dom lib\n    swiper.$ = dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$;\n\n    // Find el\n    const $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.params.el);\n    el = $el[0];\n    if (!el) {\n      return undefined;\n    }\n    if ($el.length > 1) {\n      const swipers = [];\n      $el.each((index, containerEl) => {\n        const newParams = Utils.extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      return swipers;\n    }\n    el.swiper = swiper;\n    $el.data('swiper', swiper);\n\n    // Find Wrapper\n    const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n\n    // Extend Swiper\n    Utils.extend(swiper, {\n      $el,\n      el,\n      $wrapperEl,\n      wrapperEl: $wrapperEl[0],\n      // Classes\n      classNames: [],\n      // Slides\n      slides: (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(),\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n      wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEvents: function touchEvents() {\n        const touch = ['touchstart', 'touchmove', 'touchend'];\n        let desktop = ['mousedown', 'mousemove', 'mouseup'];\n        if (Support.pointerEvents) {\n          desktop = ['pointerdown', 'pointermove', 'pointerup'];\n        } else if (Support.prefixedPointerEvents) {\n          desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n        }\n        swiper.touchEventsTouch = {\n          start: touch[0],\n          move: touch[1],\n          end: touch[2]\n        };\n        swiper.touchEventsDesktop = {\n          start: desktop[0],\n          move: desktop[1],\n          end: desktop[2]\n        };\n        return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n      }(),\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        formElements: 'input, select, option, textarea, button, video',\n        // Last click time\n        lastClickTime: Utils.now(),\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        isTouchEvent: undefined,\n        startMoving: undefined\n      },\n      // Clicks\n      allowClick: true,\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0\n      },\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0\n    });\n\n    // Install Modules\n    swiper.useModules();\n\n    // Init\n    if (swiper.params.init) {\n      swiper.init();\n    }\n\n    // Return app instance\n    return swiper;\n  }\n  slidesPerViewDynamic() {\n    const swiper = this;\n    const {\n      params,\n      slides,\n      slidesGrid,\n      size: swiperSize,\n      activeIndex\n    } = swiper;\n    let spv = 1;\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex].swiperSlideSize;\n      let breakLoop;\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n      for (let i = activeIndex - 1; i >= 0; i -= 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n    } else {\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n          spv += 1;\n        }\n      }\n    }\n    return spv;\n  }\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    let translated;\n    if (swiper.params.freeMode) {\n      setTranslate();\n      if (swiper.params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n    } else {\n      if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n        translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n      if (!translated) {\n        setTranslate();\n      }\n    }\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n    swiper.emit('update');\n  }\n  changeDirection(newDirection, needUpdate = true) {\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n    swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection} wp8-${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n    if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n      swiper.$el.addClass(`${swiper.params.containerModifierClass}wp8-${newDirection}`);\n    }\n    swiper.params.direction = newDirection;\n    swiper.slides.each((slideIndex, slideEl) => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n    return swiper;\n  }\n  init() {\n    const swiper = this;\n    if (swiper.initialized) return;\n    swiper.emit('beforeInit');\n\n    // Set breakpoint\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    // Add Classes\n    swiper.addClasses();\n\n    // Create loop\n    if (swiper.params.loop) {\n      swiper.loopCreate();\n    }\n\n    // Update size\n    swiper.updateSize();\n\n    // Update slides\n    swiper.updateSlides();\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    }\n\n    // Set Grab Cursor\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n    if (swiper.params.preloadImages) {\n      swiper.preloadImages();\n    }\n\n    // Slide To Initial Slide\n    if (swiper.params.loop) {\n      swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n    }\n\n    // Attach events\n    swiper.attachEvents();\n\n    // Init Flag\n    swiper.initialized = true;\n\n    // Emit\n    swiper.emit('init');\n  }\n  destroy(deleteInstance = true, cleanStyles = true) {\n    const swiper = this;\n    const {\n      params,\n      $el,\n      $wrapperEl,\n      slides\n    } = swiper;\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n    swiper.emit('beforeDestroy');\n\n    // Init Flag\n    swiper.initialized = false;\n\n    // Detach events\n    swiper.detachEvents();\n\n    // Destroy loop\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    // Cleanup styles\n    if (cleanStyles) {\n      swiper.removeClasses();\n      $el.removeAttr('style');\n      $wrapperEl.removeAttr('style');\n      if (slides && slides.length) {\n        slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index').removeAttr('data-swiper-column').removeAttr('data-swiper-row');\n      }\n    }\n    swiper.emit('destroy');\n\n    // Detach emitter events\n    Object.keys(swiper.eventsListeners).forEach(eventName => {\n      swiper.off(eventName);\n    });\n    if (deleteInstance !== false) {\n      swiper.$el[0].swiper = null;\n      swiper.$el.data('swiper', null);\n      Utils.deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n    return null;\n  }\n  static extendDefaults(newDefaults) {\n    Utils.extend(extendedDefaults, newDefaults);\n  }\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n  static get defaults() {\n    return defaults;\n  }\n  static get Class() {\n    return SwiperClass;\n  }\n  static get $() {\n    return dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$;\n  }\n}\nvar Device$1 = {\n  name: 'device',\n  proto: {\n    device: Device\n  },\n  static: {\n    device: Device\n  }\n};\nvar Support$1 = {\n  name: 'support',\n  proto: {\n    support: Support\n  },\n  static: {\n    support: Support\n  }\n};\nvar Browser$1 = {\n  name: 'browser',\n  proto: {\n    browser: Browser\n  },\n  static: {\n    browser: Browser\n  }\n};\nvar Resize = {\n  name: 'resize',\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      resize: {\n        resizeHandler() {\n          if (!swiper || swiper.destroyed || !swiper.initialized) return;\n          swiper.emit('beforeResize');\n          swiper.emit('resize');\n        },\n        orientationChangeHandler() {\n          if (!swiper || swiper.destroyed || !swiper.initialized) return;\n          swiper.emit('orientationchange');\n        }\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      // Emit resize\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.addEventListener('resize', swiper.resize.resizeHandler);\n\n      // Emit orientationchange\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n    },\n    destroy() {\n      const swiper = this;\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.removeEventListener('resize', swiper.resize.resizeHandler);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n    }\n  }\n};\nconst Observer = {\n  func: ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.MutationObserver || ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.WebkitMutationObserver,\n  attach(target, options = {}) {\n    const swiper = this;\n    const ObserverFunc = Observer.func;\n    const observer = new ObserverFunc(mutations => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (mutations.length === 1) {\n        swiper.emit('observerUpdate', mutations[0]);\n        return;\n      }\n      const observerUpdate = function observerUpdate() {\n        swiper.emit('observerUpdate', mutations[0]);\n      };\n      if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.requestAnimationFrame) {\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.requestAnimationFrame(observerUpdate);\n      } else {\n        ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.setTimeout(observerUpdate, 0);\n      }\n    });\n    observer.observe(target, {\n      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n      childList: typeof options.childList === 'undefined' ? true : options.childList,\n      characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n    });\n    swiper.observer.observers.push(observer);\n  },\n  init() {\n    const swiper = this;\n    if (!Support.observer || !swiper.params.observer) return;\n    if (swiper.params.observeParents) {\n      const containerParents = swiper.$el.parents();\n      for (let i = 0; i < containerParents.length; i += 1) {\n        swiper.observer.attach(containerParents[i]);\n      }\n    }\n    // Observe container\n    swiper.observer.attach(swiper.$el[0], {\n      childList: swiper.params.observeSlideChildren\n    });\n\n    // Observe wrapper\n    swiper.observer.attach(swiper.$wrapperEl[0], {\n      attributes: false\n    });\n  },\n  destroy() {\n    const swiper = this;\n    swiper.observer.observers.forEach(observer => {\n      observer.disconnect();\n    });\n    swiper.observer.observers = [];\n  }\n};\nvar Observer$1 = {\n  name: 'observer',\n  params: {\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      observer: {\n        init: Observer.init.bind(swiper),\n        attach: Observer.attach.bind(swiper),\n        destroy: Observer.destroy.bind(swiper),\n        observers: []\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      swiper.observer.init();\n    },\n    destroy() {\n      const swiper = this;\n      swiper.observer.destroy();\n    }\n  }\n};\nconst Virtual = {\n  update(force) {\n    const swiper = this;\n    const {\n      slidesPerView,\n      slidesPerGroup,\n      centeredSlides\n    } = swiper.params;\n    const {\n      addSlidesBefore,\n      addSlidesAfter\n    } = swiper.params.virtual;\n    const {\n      from: previousFrom,\n      to: previousTo,\n      slides,\n      slidesGrid: previousSlidesGrid,\n      renderSlide,\n      offset: previousOffset\n    } = swiper.virtual;\n    swiper.updateActiveIndex();\n    const activeIndex = swiper.activeIndex || 0;\n    let offsetProp;\n    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n    let slidesAfter;\n    let slidesBefore;\n    if (centeredSlides) {\n      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n    } else {\n      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n      slidesBefore = slidesPerGroup + addSlidesAfter;\n    }\n    const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n    const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n    const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n    Utils.extend(swiper.virtual, {\n      from,\n      to,\n      offset,\n      slidesGrid: swiper.slidesGrid\n    });\n    function onRendered() {\n      swiper.updateSlides();\n      swiper.updateProgress();\n      swiper.updateSlidesClasses();\n      if (swiper.lazy && swiper.params.lazy.enabled) {\n        swiper.lazy.load();\n      }\n    }\n    if (previousFrom === from && previousTo === to && !force) {\n      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n        swiper.slides.css(offsetProp, `${offset}px`);\n      }\n      swiper.updateProgress();\n      return;\n    }\n    if (swiper.params.virtual.renderExternal) {\n      swiper.params.virtual.renderExternal.call(swiper, {\n        offset,\n        from,\n        to,\n        slides: function getSlides() {\n          const slidesToRender = [];\n          for (let i = from; i <= to; i += 1) {\n            slidesToRender.push(slides[i]);\n          }\n          return slidesToRender;\n        }()\n      });\n      onRendered();\n      return;\n    }\n    const prependIndexes = [];\n    const appendIndexes = [];\n    if (force) {\n      swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n    } else {\n      for (let i = previousFrom; i <= previousTo; i += 1) {\n        if (i < from || i > to) {\n          swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n        }\n      }\n    }\n    for (let i = 0; i < slides.length; i += 1) {\n      if (i >= from && i <= to) {\n        if (typeof previousTo === 'undefined' || force) {\n          appendIndexes.push(i);\n        } else {\n          if (i > previousTo) appendIndexes.push(i);\n          if (i < previousFrom) prependIndexes.push(i);\n        }\n      }\n    }\n    appendIndexes.forEach(index => {\n      swiper.$wrapperEl.append(renderSlide(slides[index], index));\n    });\n    prependIndexes.sort((a, b) => b - a).forEach(index => {\n      swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n    });\n    swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n    onRendered();\n  },\n  renderSlide(slide, index) {\n    const swiper = this;\n    const params = swiper.params.virtual;\n    if (params.cache && swiper.virtual.cache[index]) {\n      return swiper.virtual.cache[index];\n    }\n    const $slideEl = params.renderSlide ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(params.renderSlide.call(swiper, slide, index)) : (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"${swiper.params.slideClass}\" data-swiper-slide-index=\"${index}\">${slide}</div>`);\n    if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n    if (params.cache) swiper.virtual.cache[index] = $slideEl;\n    return $slideEl;\n  },\n  appendSlide(slides) {\n    const swiper = this;\n    if (typeof slides === 'object' && 'length' in slides) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.push(slides[i]);\n      }\n    } else {\n      swiper.virtual.slides.push(slides);\n    }\n    swiper.virtual.update(true);\n  },\n  prependSlide(slides) {\n    const swiper = this;\n    const activeIndex = swiper.activeIndex;\n    let newActiveIndex = activeIndex + 1;\n    let numberOfNewSlides = 1;\n    if (Array.isArray(slides)) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n      }\n      newActiveIndex = activeIndex + slides.length;\n      numberOfNewSlides = slides.length;\n    } else {\n      swiper.virtual.slides.unshift(slides);\n    }\n    if (swiper.params.virtual.cache) {\n      const cache = swiper.virtual.cache;\n      const newCache = {};\n      Object.keys(cache).forEach(cachedIndex => {\n        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];\n      });\n      swiper.virtual.cache = newCache;\n    }\n    swiper.virtual.update(true);\n    swiper.slideTo(newActiveIndex, 0);\n  },\n  removeSlide(slidesIndexes) {\n    const swiper = this;\n    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n    let activeIndex = swiper.activeIndex;\n    if (Array.isArray(slidesIndexes)) {\n      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n        swiper.virtual.slides.splice(slidesIndexes[i], 1);\n        if (swiper.params.virtual.cache) {\n          delete swiper.virtual.cache[slidesIndexes[i]];\n        }\n        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n        activeIndex = Math.max(activeIndex, 0);\n      }\n    } else {\n      swiper.virtual.slides.splice(slidesIndexes, 1);\n      if (swiper.params.virtual.cache) {\n        delete swiper.virtual.cache[slidesIndexes];\n      }\n      if (slidesIndexes < activeIndex) activeIndex -= 1;\n      activeIndex = Math.max(activeIndex, 0);\n    }\n    swiper.virtual.update(true);\n    swiper.slideTo(activeIndex, 0);\n  },\n  removeAllSlides() {\n    const swiper = this;\n    swiper.virtual.slides = [];\n    if (swiper.params.virtual.cache) {\n      swiper.virtual.cache = {};\n    }\n    swiper.virtual.update(true);\n    swiper.slideTo(0, 0);\n  }\n};\nvar Virtual$1 = {\n  name: 'virtual',\n  params: {\n    virtual: {\n      enabled: false,\n      slides: [],\n      cache: true,\n      renderSlide: null,\n      renderExternal: null,\n      addSlidesBefore: 0,\n      addSlidesAfter: 0\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      virtual: {\n        update: Virtual.update.bind(swiper),\n        appendSlide: Virtual.appendSlide.bind(swiper),\n        prependSlide: Virtual.prependSlide.bind(swiper),\n        removeSlide: Virtual.removeSlide.bind(swiper),\n        removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n        renderSlide: Virtual.renderSlide.bind(swiper),\n        slides: swiper.params.virtual.slides,\n        cache: {}\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (!swiper.params.virtual.enabled) return;\n      swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n      const overwriteParams = {\n        watchSlidesProgress: true\n      };\n      Utils.extend(swiper.params, overwriteParams);\n      Utils.extend(swiper.originalParams, overwriteParams);\n      if (!swiper.params.initialSlide) {\n        swiper.virtual.update();\n      }\n    },\n    setTranslate() {\n      const swiper = this;\n      if (!swiper.params.virtual.enabled) return;\n      swiper.virtual.update();\n    }\n  }\n};\nconst Keyboard = {\n  handle(event) {\n    const swiper = this;\n    const {\n      rtlTranslate: rtl\n    } = swiper;\n    let e = event;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    const kc = e.keyCode || e.charCode;\n    // Directions locks\n    if (!swiper.allowSlideNext && (swiper.isHorizontal() && kc === 39 || swiper.isVertical() && kc === 40 || kc === 34)) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && kc === 37 || swiper.isVertical() && kc === 38 || kc === 33)) {\n      return false;\n    }\n    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n      return undefined;\n    }\n    if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement.nodeName && (ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement.nodeName.toLowerCase() === 'input' || ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n      return undefined;\n    }\n    if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n      let inView = false;\n      // Check that swiper should be inside of visible area of window\n      if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n        return undefined;\n      }\n      const windowWidth = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.innerWidth;\n      const windowHeight = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.innerHeight;\n      const swiperOffset = swiper.$el.offset();\n      if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n      for (let i = 0; i < swiperCoord.length; i += 1) {\n        const point = swiperCoord[i];\n        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n          inView = true;\n        }\n      }\n      if (!inView) return undefined;\n    }\n    if (swiper.isHorizontal()) {\n      if (kc === 33 || kc === 34 || kc === 37 || kc === 39) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n      if ((kc === 34 || kc === 39) && !rtl || (kc === 33 || kc === 37) && rtl) swiper.slideNext();\n      if ((kc === 33 || kc === 37) && !rtl || (kc === 34 || kc === 39) && rtl) swiper.slidePrev();\n    } else {\n      if (kc === 33 || kc === 34 || kc === 38 || kc === 40) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n      if (kc === 34 || kc === 40) swiper.slideNext();\n      if (kc === 33 || kc === 38) swiper.slidePrev();\n    }\n    swiper.emit('keyPress', kc);\n    return undefined;\n  },\n  enable() {\n    const swiper = this;\n    if (swiper.keyboard.enabled) return;\n    (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.document).on('keydown', swiper.keyboard.handle);\n    swiper.keyboard.enabled = true;\n  },\n  disable() {\n    const swiper = this;\n    if (!swiper.keyboard.enabled) return;\n    (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.document).off('keydown', swiper.keyboard.handle);\n    swiper.keyboard.enabled = false;\n  }\n};\nvar Keyboard$1 = {\n  name: 'keyboard',\n  params: {\n    keyboard: {\n      enabled: false,\n      onlyInViewport: true\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      keyboard: {\n        enabled: false,\n        enable: Keyboard.enable.bind(swiper),\n        disable: Keyboard.disable.bind(swiper),\n        handle: Keyboard.handle.bind(swiper)\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.keyboard.enabled) {\n        swiper.keyboard.enable();\n      }\n    },\n    destroy() {\n      const swiper = this;\n      if (swiper.keyboard.enabled) {\n        swiper.keyboard.disable();\n      }\n    }\n  }\n};\nfunction isEventSupported() {\n  const eventName = 'onwheel';\n  let isSupported = (eventName in ssr_window__WEBPACK_IMPORTED_MODULE_3__.document);\n  if (!isSupported) {\n    const element = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n  if (!isSupported && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.implementation && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.implementation.hasFeature\n  // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  && ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.implementation.hasFeature('', '') !== true) {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n  return isSupported;\n}\nconst Mousewheel = {\n  lastScrollTime: Utils.now(),\n  event: function getEvent() {\n    if (ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n    return isEventSupported() ? 'wheel' : 'mousewheel';\n  }(),\n  normalize(e) {\n    // Reasonable defaults\n    const PIXEL_STEP = 10;\n    const LINE_HEIGHT = 40;\n    const PAGE_HEIGHT = 800;\n    let sX = 0;\n    let sY = 0; // spinX, spinY\n    let pX = 0;\n    let pY = 0; // pixelX, pixelY\n\n    // Legacy\n    if ('detail' in e) {\n      sY = e.detail;\n    }\n    if ('wheelDelta' in e) {\n      sY = -e.wheelDelta / 120;\n    }\n    if ('wheelDeltaY' in e) {\n      sY = -e.wheelDeltaY / 120;\n    }\n    if ('wheelDeltaX' in e) {\n      sX = -e.wheelDeltaX / 120;\n    }\n\n    // side scrolling on FF with DOMMouseScroll\n    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n      sX = sY;\n      sY = 0;\n    }\n    pX = sX * PIXEL_STEP;\n    pY = sY * PIXEL_STEP;\n    if ('deltaY' in e) {\n      pY = e.deltaY;\n    }\n    if ('deltaX' in e) {\n      pX = e.deltaX;\n    }\n    if ((pX || pY) && e.deltaMode) {\n      if (e.deltaMode === 1) {\n        // delta in LINE units\n        pX *= LINE_HEIGHT;\n        pY *= LINE_HEIGHT;\n      } else {\n        // delta in PAGE units\n        pX *= PAGE_HEIGHT;\n        pY *= PAGE_HEIGHT;\n      }\n    }\n\n    // Fall-back if spin cannot be determined\n    if (pX && !sX) {\n      sX = pX < 1 ? -1 : 1;\n    }\n    if (pY && !sY) {\n      sY = pY < 1 ? -1 : 1;\n    }\n    return {\n      spinX: sX,\n      spinY: sY,\n      pixelX: pX,\n      pixelY: pY\n    };\n  },\n  handleMouseEnter() {\n    const swiper = this;\n    swiper.mouseEntered = true;\n  },\n  handleMouseLeave() {\n    const swiper = this;\n    swiper.mouseEntered = false;\n  },\n  handle(event) {\n    let e = event;\n    const swiper = this;\n    const params = swiper.params.mousewheel;\n    if (!swiper.mouseEntered && !params.releaseOnEdges) return true;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    let delta = 0;\n    const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n    const data = Mousewheel.normalize(e);\n    if (params.forceToAxis) {\n      if (swiper.isHorizontal()) {\n        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;else return true;\n      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;else return true;\n    } else {\n      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n    }\n    if (delta === 0) return true;\n    if (params.invert) delta = -delta;\n    if (!swiper.params.freeMode) {\n      if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n        if (delta < 0) {\n          if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n            swiper.slideNext();\n            swiper.emit('scroll', e);\n          } else if (params.releaseOnEdges) return true;\n        } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n          swiper.slidePrev();\n          swiper.emit('scroll', e);\n        } else if (params.releaseOnEdges) return true;\n      }\n      swiper.mousewheel.lastScrollTime = new ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.Date().getTime();\n    } else {\n      // Freemode or scrollContainer:\n      if (swiper.params.loop) {\n        swiper.loopFix();\n      }\n      let position = swiper.getTranslate() + delta * params.sensitivity;\n      const wasBeginning = swiper.isBeginning;\n      const wasEnd = swiper.isEnd;\n      if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n      if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n      swiper.setTransition(0);\n      swiper.setTranslate(position);\n      swiper.updateProgress();\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n      if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n        swiper.updateSlidesClasses();\n      }\n      if (swiper.params.freeModeSticky) {\n        clearTimeout(swiper.mousewheel.timeout);\n        swiper.mousewheel.timeout = Utils.nextTick(() => {\n          swiper.slideToClosest();\n        }, 300);\n      }\n      // Emit event\n      swiper.emit('scroll', e);\n\n      // Stop autoplay\n      if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n      // Return page scroll on edge positions\n      if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n    }\n    if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n    return false;\n  },\n  enable() {\n    const swiper = this;\n    if (!Mousewheel.event) return false;\n    if (swiper.mousewheel.enabled) return false;\n    let target = swiper.$el;\n    if (swiper.params.mousewheel.eventsTarged !== 'container') {\n      target = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.params.mousewheel.eventsTarged);\n    }\n    target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n    target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n    target.on(Mousewheel.event, swiper.mousewheel.handle);\n    swiper.mousewheel.enabled = true;\n    return true;\n  },\n  disable() {\n    const swiper = this;\n    if (!Mousewheel.event) return false;\n    if (!swiper.mousewheel.enabled) return false;\n    let target = swiper.$el;\n    if (swiper.params.mousewheel.eventsTarged !== 'container') {\n      target = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.params.mousewheel.eventsTarged);\n    }\n    target.off(Mousewheel.event, swiper.mousewheel.handle);\n    swiper.mousewheel.enabled = false;\n    return true;\n  }\n};\nvar Mousewheel$1 = {\n  name: 'mousewheel',\n  params: {\n    mousewheel: {\n      enabled: false,\n      releaseOnEdges: false,\n      invert: false,\n      forceToAxis: false,\n      sensitivity: 1,\n      eventsTarged: 'container'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      mousewheel: {\n        enabled: false,\n        enable: Mousewheel.enable.bind(swiper),\n        disable: Mousewheel.disable.bind(swiper),\n        handle: Mousewheel.handle.bind(swiper),\n        handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n        handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n        lastScrollTime: Utils.now()\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n    },\n    destroy() {\n      const swiper = this;\n      if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n    }\n  }\n};\nconst Navigation = {\n  update() {\n    // Update Navigation Buttons\n    const swiper = this;\n    const params = swiper.params.navigation;\n    if (swiper.params.loop) return;\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n    if ($prevEl && $prevEl.length > 0) {\n      if (swiper.isBeginning) {\n        $prevEl.addClass(params.disabledClass);\n      } else {\n        $prevEl.removeClass(params.disabledClass);\n      }\n      $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n    }\n    if ($nextEl && $nextEl.length > 0) {\n      if (swiper.isEnd) {\n        $nextEl.addClass(params.disabledClass);\n      } else {\n        $nextEl.removeClass(params.disabledClass);\n      }\n      $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n    }\n  },\n  onPrevClick(e) {\n    const swiper = this;\n    e.preventDefault();\n    if (swiper.isBeginning && !swiper.params.loop) return;\n    swiper.slidePrev();\n  },\n  onNextClick(e) {\n    const swiper = this;\n    e.preventDefault();\n    if (swiper.isEnd && !swiper.params.loop) return;\n    swiper.slideNext();\n  },\n  init() {\n    const swiper = this;\n    const params = swiper.params.navigation;\n    if (!(params.nextEl || params.prevEl)) return;\n    let $nextEl;\n    let $prevEl;\n    if (params.nextEl) {\n      $nextEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(params.nextEl);\n      if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n        $nextEl = swiper.$el.find(params.nextEl);\n      }\n    }\n    if (params.prevEl) {\n      $prevEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(params.prevEl);\n      if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n        $prevEl = swiper.$el.find(params.prevEl);\n      }\n    }\n    if ($nextEl && $nextEl.length > 0) {\n      $nextEl.on('click', swiper.navigation.onNextClick);\n    }\n    if ($prevEl && $prevEl.length > 0) {\n      $prevEl.on('click', swiper.navigation.onPrevClick);\n    }\n    Utils.extend(swiper.navigation, {\n      $nextEl,\n      nextEl: $nextEl && $nextEl[0],\n      $prevEl,\n      prevEl: $prevEl && $prevEl[0]\n    });\n  },\n  destroy() {\n    const swiper = this;\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n    if ($nextEl && $nextEl.length) {\n      $nextEl.off('click', swiper.navigation.onNextClick);\n      $nextEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n    if ($prevEl && $prevEl.length) {\n      $prevEl.off('click', swiper.navigation.onPrevClick);\n      $prevEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n  }\n};\nvar Navigation$1 = {\n  name: 'navigation',\n  params: {\n    navigation: {\n      nextEl: null,\n      prevEl: null,\n      hideOnClick: false,\n      disabledClass: 'swiper-button-disabled',\n      hiddenClass: 'swiper-button-hidden',\n      lockClass: 'swiper-button-lock'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      navigation: {\n        init: Navigation.init.bind(swiper),\n        update: Navigation.update.bind(swiper),\n        destroy: Navigation.destroy.bind(swiper),\n        onNextClick: Navigation.onNextClick.bind(swiper),\n        onPrevClick: Navigation.onPrevClick.bind(swiper)\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      swiper.navigation.init();\n      swiper.navigation.update();\n    },\n    toEdge() {\n      const swiper = this;\n      swiper.navigation.update();\n    },\n    fromEdge() {\n      const swiper = this;\n      swiper.navigation.update();\n    },\n    destroy() {\n      const swiper = this;\n      swiper.navigation.destroy();\n    },\n    click(e) {\n      const swiper = this;\n      const {\n        $nextEl,\n        $prevEl\n      } = swiper.navigation;\n      if (swiper.params.navigation.hideOnClick && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).is($prevEl) && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).is($nextEl)) {\n        let isHidden;\n        if ($nextEl) {\n          isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n        } else if ($prevEl) {\n          isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n        }\n        if (isHidden === true) {\n          swiper.emit('navigationShow', swiper);\n        } else {\n          swiper.emit('navigationHide', swiper);\n        }\n        if ($nextEl) {\n          $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n        }\n        if ($prevEl) {\n          $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n        }\n      }\n    }\n  }\n};\nconst Pagination = {\n  update() {\n    // Render || Update Pagination bullets/items\n    const swiper = this;\n    const rtl = swiper.rtl;\n    const params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    const $el = swiper.pagination.$el;\n    // Current/Total\n    let current;\n    const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n    if (swiper.params.loop) {\n      current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n      if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n        current -= slidesLength - swiper.loopedSlides * 2;\n      }\n      if (current > total - 1) current -= total;\n      if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n    } else if (typeof swiper.snapIndex !== 'undefined') {\n      current = swiper.snapIndex;\n    } else {\n      current = swiper.activeIndex || 0;\n    }\n    // Types\n    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n      const bullets = swiper.pagination.bullets;\n      let firstIndex;\n      let lastIndex;\n      let midIndex;\n      if (params.dynamicBullets) {\n        swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n        $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n        if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n          swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n          if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n            swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n          } else if (swiper.pagination.dynamicBulletIndex < 0) {\n            swiper.pagination.dynamicBulletIndex = 0;\n          }\n        }\n        firstIndex = current - swiper.pagination.dynamicBulletIndex;\n        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n        midIndex = (lastIndex + firstIndex) / 2;\n      }\n      bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n      if ($el.length > 1) {\n        bullets.each((index, bullet) => {\n          const $bullet = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(bullet);\n          const bulletIndex = $bullet.index();\n          if (bulletIndex === current) {\n            $bullet.addClass(params.bulletActiveClass);\n          }\n          if (params.dynamicBullets) {\n            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n              $bullet.addClass(`${params.bulletActiveClass}-main`);\n            }\n            if (bulletIndex === firstIndex) {\n              $bullet.prev().addClass(`${params.bulletActiveClass}-prev`).prev().addClass(`${params.bulletActiveClass}-prev-prev`);\n            }\n            if (bulletIndex === lastIndex) {\n              $bullet.next().addClass(`${params.bulletActiveClass}-next`).next().addClass(`${params.bulletActiveClass}-next-next`);\n            }\n          }\n        });\n      } else {\n        const $bullet = bullets.eq(current);\n        $bullet.addClass(params.bulletActiveClass);\n        if (params.dynamicBullets) {\n          const $firstDisplayedBullet = bullets.eq(firstIndex);\n          const $lastDisplayedBullet = bullets.eq(lastIndex);\n          for (let i = firstIndex; i <= lastIndex; i += 1) {\n            bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n          }\n          $firstDisplayedBullet.prev().addClass(`${params.bulletActiveClass}-prev`).prev().addClass(`${params.bulletActiveClass}-prev-prev`);\n          $lastDisplayedBullet.next().addClass(`${params.bulletActiveClass}-next`).next().addClass(`${params.bulletActiveClass}-next-next`);\n        }\n      }\n      if (params.dynamicBullets) {\n        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n        const bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n        const offsetProp = rtl ? 'right' : 'left';\n        bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n      }\n    }\n    if (params.type === 'fraction') {\n      $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n      $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n    }\n    if (params.type === 'progressbar') {\n      let progressbarDirection;\n      if (params.progressbarOpposite) {\n        progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n      } else {\n        progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n      }\n      const scale = (current + 1) / total;\n      let scaleX = 1;\n      let scaleY = 1;\n      if (progressbarDirection === 'horizontal') {\n        scaleX = scale;\n      } else {\n        scaleY = scale;\n      }\n      $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n    }\n    if (params.type === 'custom' && params.renderCustom) {\n      $el.html(params.renderCustom(swiper, current + 1, total));\n      swiper.emit('paginationRender', swiper, $el[0]);\n    } else {\n      swiper.emit('paginationUpdate', swiper, $el[0]);\n    }\n    $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n  },\n  render() {\n    // Render Container\n    const swiper = this;\n    const params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    const $el = swiper.pagination.$el;\n    let paginationHTML = '';\n    if (params.type === 'bullets') {\n      const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n      for (let i = 0; i < numberOfBullets; i += 1) {\n        if (params.renderBullet) {\n          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n        } else {\n          paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n        }\n      }\n      $el.html(paginationHTML);\n      swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n    }\n    if (params.type === 'fraction') {\n      if (params.renderFraction) {\n        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n      } else {\n        paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n      }\n      $el.html(paginationHTML);\n    }\n    if (params.type === 'progressbar') {\n      if (params.renderProgressbar) {\n        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n      } else {\n        paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n      }\n      $el.html(paginationHTML);\n    }\n    if (params.type !== 'custom') {\n      swiper.emit('paginationRender', swiper.pagination.$el[0]);\n    }\n  },\n  init() {\n    const swiper = this;\n    const params = swiper.params.pagination;\n    if (!params.el) return;\n    let $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(params.el);\n    if ($el.length === 0) return;\n    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && swiper.$el.find(params.el).length === 1) {\n      $el = swiper.$el.find(params.el);\n    }\n    if (params.type === 'bullets' && params.clickable) {\n      $el.addClass(params.clickableClass);\n    }\n    $el.addClass(params.modifierClass + params.type);\n    if (params.type === 'bullets' && params.dynamicBullets) {\n      $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n      swiper.pagination.dynamicBulletIndex = 0;\n      if (params.dynamicMainBullets < 1) {\n        params.dynamicMainBullets = 1;\n      }\n    }\n    if (params.type === 'progressbar' && params.progressbarOpposite) {\n      $el.addClass(params.progressbarOppositeClass);\n    }\n    if (params.clickable) {\n      $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n        e.preventDefault();\n        let index = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(this).index() * swiper.params.slidesPerGroup;\n        if (swiper.params.loop) index += swiper.loopedSlides;\n        swiper.slideTo(index);\n      });\n    }\n    Utils.extend(swiper.pagination, {\n      $el,\n      el: $el[0]\n    });\n  },\n  destroy() {\n    const swiper = this;\n    const params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    const $el = swiper.pagination.$el;\n    $el.removeClass(params.hiddenClass);\n    $el.removeClass(params.modifierClass + params.type);\n    if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n    if (params.clickable) {\n      $el.off('click', `.${params.bulletClass}`);\n    }\n  }\n};\nvar Pagination$1 = {\n  name: 'pagination',\n  params: {\n    pagination: {\n      el: null,\n      bulletElement: 'span',\n      clickable: false,\n      hideOnClick: false,\n      renderBullet: null,\n      renderProgressbar: null,\n      renderFraction: null,\n      renderCustom: null,\n      progressbarOpposite: false,\n      type: 'bullets',\n      // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n      dynamicBullets: false,\n      dynamicMainBullets: 1,\n      formatFractionCurrent: number => number,\n      formatFractionTotal: number => number,\n      bulletClass: 'swiper-pagination-bullet',\n      bulletActiveClass: 'swiper-pagination-bullet-active',\n      modifierClass: 'swiper-pagination-',\n      // NEW\n      currentClass: 'swiper-pagination-current',\n      totalClass: 'swiper-pagination-total',\n      hiddenClass: 'swiper-pagination-hidden',\n      progressbarFillClass: 'swiper-pagination-progressbar-fill',\n      progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n      clickableClass: 'swiper-pagination-clickable',\n      // NEW\n      lockClass: 'swiper-pagination-lock'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      pagination: {\n        init: Pagination.init.bind(swiper),\n        render: Pagination.render.bind(swiper),\n        update: Pagination.update.bind(swiper),\n        destroy: Pagination.destroy.bind(swiper),\n        dynamicBulletIndex: 0\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      swiper.pagination.init();\n      swiper.pagination.render();\n      swiper.pagination.update();\n    },\n    activeIndexChange() {\n      const swiper = this;\n      if (swiper.params.loop) {\n        swiper.pagination.update();\n      } else if (typeof swiper.snapIndex === 'undefined') {\n        swiper.pagination.update();\n      }\n    },\n    snapIndexChange() {\n      const swiper = this;\n      if (!swiper.params.loop) {\n        swiper.pagination.update();\n      }\n    },\n    slidesLengthChange() {\n      const swiper = this;\n      if (swiper.params.loop) {\n        swiper.pagination.render();\n        swiper.pagination.update();\n      }\n    },\n    snapGridLengthChange() {\n      const swiper = this;\n      if (!swiper.params.loop) {\n        swiper.pagination.render();\n        swiper.pagination.update();\n      }\n    },\n    destroy() {\n      const swiper = this;\n      swiper.pagination.destroy();\n    },\n    click(e) {\n      const swiper = this;\n      if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n        const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n        if (isHidden === true) {\n          swiper.emit('paginationShow', swiper);\n        } else {\n          swiper.emit('paginationHide', swiper);\n        }\n        swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n      }\n    }\n  }\n};\nconst Scrollbar = {\n  setTranslate() {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    const {\n      scrollbar,\n      rtlTranslate: rtl,\n      progress\n    } = swiper;\n    const {\n      dragSize,\n      trackSize,\n      $dragEl,\n      $el\n    } = scrollbar;\n    const params = swiper.params.scrollbar;\n    let newSize = dragSize;\n    let newPos = (trackSize - dragSize) * progress;\n    if (rtl) {\n      newPos = -newPos;\n      if (newPos > 0) {\n        newSize = dragSize - newPos;\n        newPos = 0;\n      } else if (-newPos + dragSize > trackSize) {\n        newSize = trackSize + newPos;\n      }\n    } else if (newPos < 0) {\n      newSize = dragSize + newPos;\n      newPos = 0;\n    } else if (newPos + dragSize > trackSize) {\n      newSize = trackSize - newPos;\n    }\n    if (swiper.isHorizontal()) {\n      if (Support.transforms3d) {\n        $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n      } else {\n        $dragEl.transform(`translateX(${newPos}px)`);\n      }\n      $dragEl[0].style.width = `${newSize}px`;\n    } else {\n      if (Support.transforms3d) {\n        $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n      } else {\n        $dragEl.transform(`translateY(${newPos}px)`);\n      }\n      $dragEl[0].style.height = `${newSize}px`;\n    }\n    if (params.hide) {\n      clearTimeout(swiper.scrollbar.timeout);\n      $el[0].style.opacity = 1;\n      swiper.scrollbar.timeout = setTimeout(() => {\n        $el[0].style.opacity = 0;\n        $el.transition(400);\n      }, 1000);\n    }\n  },\n  setTransition(duration) {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    swiper.scrollbar.$dragEl.transition(duration);\n  },\n  updateSize() {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    const {\n      scrollbar\n    } = swiper;\n    const {\n      $dragEl,\n      $el\n    } = scrollbar;\n    $dragEl[0].style.width = '';\n    $dragEl[0].style.height = '';\n    const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n    const divider = swiper.size / swiper.virtualSize;\n    const moveDivider = divider * (trackSize / swiper.size);\n    let dragSize;\n    if (swiper.params.scrollbar.dragSize === 'auto') {\n      dragSize = trackSize * divider;\n    } else {\n      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n    }\n    if (swiper.isHorizontal()) {\n      $dragEl[0].style.width = `${dragSize}px`;\n    } else {\n      $dragEl[0].style.height = `${dragSize}px`;\n    }\n    if (divider >= 1) {\n      $el[0].style.display = 'none';\n    } else {\n      $el[0].style.display = '';\n    }\n    if (swiper.params.scrollbar.hide) {\n      $el[0].style.opacity = 0;\n    }\n    Utils.extend(scrollbar, {\n      trackSize,\n      divider,\n      moveDivider,\n      dragSize\n    });\n    scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n  },\n  getPointerPosition(e) {\n    const swiper = this;\n    if (swiper.isHorizontal()) {\n      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX || e.clientX;\n    }\n    return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY || e.clientY;\n  },\n  setDragPosition(e) {\n    const swiper = this;\n    const {\n      scrollbar,\n      rtlTranslate: rtl\n    } = swiper;\n    const {\n      $el,\n      dragSize,\n      trackSize,\n      dragStartPos\n    } = scrollbar;\n    let positionRatio;\n    positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n    positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n    if (rtl) {\n      positionRatio = 1 - positionRatio;\n    }\n    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n    swiper.updateProgress(position);\n    swiper.setTranslate(position);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  },\n  onDragStart(e) {\n    const swiper = this;\n    const params = swiper.params.scrollbar;\n    const {\n      scrollbar,\n      $wrapperEl\n    } = swiper;\n    const {\n      $el,\n      $dragEl\n    } = scrollbar;\n    swiper.scrollbar.isTouched = true;\n    swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n    e.preventDefault();\n    e.stopPropagation();\n    $wrapperEl.transition(100);\n    $dragEl.transition(100);\n    scrollbar.setDragPosition(e);\n    clearTimeout(swiper.scrollbar.dragTimeout);\n    $el.transition(0);\n    if (params.hide) {\n      $el.css('opacity', 1);\n    }\n    swiper.emit('scrollbarDragStart', e);\n  },\n  onDragMove(e) {\n    const swiper = this;\n    const {\n      scrollbar,\n      $wrapperEl\n    } = swiper;\n    const {\n      $el,\n      $dragEl\n    } = scrollbar;\n    if (!swiper.scrollbar.isTouched) return;\n    if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n    scrollbar.setDragPosition(e);\n    $wrapperEl.transition(0);\n    $el.transition(0);\n    $dragEl.transition(0);\n    swiper.emit('scrollbarDragMove', e);\n  },\n  onDragEnd(e) {\n    const swiper = this;\n    const params = swiper.params.scrollbar;\n    const {\n      scrollbar\n    } = swiper;\n    const {\n      $el\n    } = scrollbar;\n    if (!swiper.scrollbar.isTouched) return;\n    swiper.scrollbar.isTouched = false;\n    if (params.hide) {\n      clearTimeout(swiper.scrollbar.dragTimeout);\n      swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n        $el.css('opacity', 0);\n        $el.transition(400);\n      }, 1000);\n    }\n    swiper.emit('scrollbarDragEnd', e);\n    if (params.snapOnRelease) {\n      swiper.slideToClosest();\n    }\n  },\n  enableDraggable() {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el) return;\n    const {\n      scrollbar,\n      touchEventsTouch,\n      touchEventsDesktop,\n      params\n    } = swiper;\n    const $el = scrollbar.$el;\n    const target = $el[0];\n    const activeListener = Support.passiveListener && params.passiveListeners ? {\n      passive: false,\n      capture: false\n    } : false;\n    const passiveListener = Support.passiveListener && params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n    if (!Support.touch) {\n      target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n    } else {\n      target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n      target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n      target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n    }\n  },\n  disableDraggable() {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el) return;\n    const {\n      scrollbar,\n      touchEventsTouch,\n      touchEventsDesktop,\n      params\n    } = swiper;\n    const $el = scrollbar.$el;\n    const target = $el[0];\n    const activeListener = Support.passiveListener && params.passiveListeners ? {\n      passive: false,\n      capture: false\n    } : false;\n    const passiveListener = Support.passiveListener && params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n    if (!Support.touch) {\n      target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n    } else {\n      target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n      target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n      target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n    }\n  },\n  init() {\n    const swiper = this;\n    if (!swiper.params.scrollbar.el) return;\n    const {\n      scrollbar,\n      $el: $swiperEl\n    } = swiper;\n    const params = swiper.params.scrollbar;\n    let $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(params.el);\n    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n      $el = $swiperEl.find(params.el);\n    }\n    let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n    if ($dragEl.length === 0) {\n      $dragEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"${swiper.params.scrollbar.dragClass}\"></div>`);\n      $el.append($dragEl);\n    }\n    Utils.extend(scrollbar, {\n      $el,\n      el: $el[0],\n      $dragEl,\n      dragEl: $dragEl[0]\n    });\n    if (params.draggable) {\n      scrollbar.enableDraggable();\n    }\n  },\n  destroy() {\n    const swiper = this;\n    swiper.scrollbar.disableDraggable();\n  }\n};\nvar Scrollbar$1 = {\n  name: 'scrollbar',\n  params: {\n    scrollbar: {\n      el: null,\n      dragSize: 'auto',\n      hide: false,\n      draggable: false,\n      snapOnRelease: true,\n      lockClass: 'swiper-scrollbar-lock',\n      dragClass: 'swiper-scrollbar-drag'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      scrollbar: {\n        init: Scrollbar.init.bind(swiper),\n        destroy: Scrollbar.destroy.bind(swiper),\n        updateSize: Scrollbar.updateSize.bind(swiper),\n        setTranslate: Scrollbar.setTranslate.bind(swiper),\n        setTransition: Scrollbar.setTransition.bind(swiper),\n        enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n        disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n        setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n        getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n        onDragStart: Scrollbar.onDragStart.bind(swiper),\n        onDragMove: Scrollbar.onDragMove.bind(swiper),\n        onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n        isTouched: false,\n        timeout: null,\n        dragTimeout: null\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      swiper.scrollbar.init();\n      swiper.scrollbar.updateSize();\n      swiper.scrollbar.setTranslate();\n    },\n    update() {\n      const swiper = this;\n      swiper.scrollbar.updateSize();\n    },\n    resize() {\n      const swiper = this;\n      swiper.scrollbar.updateSize();\n    },\n    observerUpdate() {\n      const swiper = this;\n      swiper.scrollbar.updateSize();\n    },\n    setTranslate() {\n      const swiper = this;\n      swiper.scrollbar.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      swiper.scrollbar.setTransition(duration);\n    },\n    destroy() {\n      const swiper = this;\n      swiper.scrollbar.destroy();\n    }\n  }\n};\nconst Parallax = {\n  setTransform(el, progress) {\n    const swiper = this;\n    const {\n      rtl\n    } = swiper;\n    const $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(el);\n    const rtlFactor = rtl ? -1 : 1;\n    const p = $el.attr('data-swiper-parallax') || '0';\n    let x = $el.attr('data-swiper-parallax-x');\n    let y = $el.attr('data-swiper-parallax-y');\n    const scale = $el.attr('data-swiper-parallax-scale');\n    const opacity = $el.attr('data-swiper-parallax-opacity');\n    if (x || y) {\n      x = x || '0';\n      y = y || '0';\n    } else if (swiper.isHorizontal()) {\n      x = p;\n      y = '0';\n    } else {\n      y = p;\n      x = '0';\n    }\n    if (x.indexOf('%') >= 0) {\n      x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n    } else {\n      x = `${x * progress * rtlFactor}px`;\n    }\n    if (y.indexOf('%') >= 0) {\n      y = `${parseInt(y, 10) * progress}%`;\n    } else {\n      y = `${y * progress}px`;\n    }\n    if (typeof opacity !== 'undefined' && opacity !== null) {\n      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n      $el[0].style.opacity = currentOpacity;\n    }\n    if (typeof scale === 'undefined' || scale === null) {\n      $el.transform(`translate3d(${x}, ${y}, 0px)`);\n    } else {\n      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n      $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n    }\n  },\n  setTranslate() {\n    const swiper = this;\n    const {\n      $el,\n      slides,\n      progress,\n      snapGrid\n    } = swiper;\n    $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, el) => {\n      swiper.parallax.setTransform(el, progress);\n    });\n    slides.each((slideIndex, slideEl) => {\n      let slideProgress = slideEl.progress;\n      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n      }\n      slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n      (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, el) => {\n        swiper.parallax.setTransform(el, slideProgress);\n      });\n    });\n  },\n  setTransition(duration = this.params.speed) {\n    const swiper = this;\n    const {\n      $el\n    } = swiper;\n    $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, parallaxEl) => {\n      const $parallaxEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(parallaxEl);\n      let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n      if (duration === 0) parallaxDuration = 0;\n      $parallaxEl.transition(parallaxDuration);\n    });\n  }\n};\nvar Parallax$1 = {\n  name: 'parallax',\n  params: {\n    parallax: {\n      enabled: false\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      parallax: {\n        setTransform: Parallax.setTransform.bind(swiper),\n        setTranslate: Parallax.setTranslate.bind(swiper),\n        setTransition: Parallax.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (!swiper.params.parallax.enabled) return;\n      swiper.params.watchSlidesProgress = true;\n      swiper.originalParams.watchSlidesProgress = true;\n    },\n    init() {\n      const swiper = this;\n      if (!swiper.params.parallax.enabled) return;\n      swiper.parallax.setTranslate();\n    },\n    setTranslate() {\n      const swiper = this;\n      if (!swiper.params.parallax.enabled) return;\n      swiper.parallax.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      if (!swiper.params.parallax.enabled) return;\n      swiper.parallax.setTransition(duration);\n    }\n  }\n};\nconst Zoom = {\n  // Calc Scale From Multi-touches\n  getDistanceBetweenTouches(e) {\n    if (e.targetTouches.length < 2) return 1;\n    const x1 = e.targetTouches[0].pageX;\n    const y1 = e.targetTouches[0].pageY;\n    const x2 = e.targetTouches[1].pageX;\n    const y2 = e.targetTouches[1].pageY;\n    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n    return distance;\n  },\n  // Events\n  onGestureStart(e) {\n    const swiper = this;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n    const {\n      gesture\n    } = zoom;\n    zoom.fakeGestureTouched = false;\n    zoom.fakeGestureMoved = false;\n    if (!Support.gestures) {\n      if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n        return;\n      }\n      zoom.fakeGestureTouched = true;\n      gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n    }\n    if (!gesture.$slideEl || !gesture.$slideEl.length) {\n      gesture.$slideEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target).closest('.swiper-slide');\n      if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n      gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n      gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n      if (gesture.$imageWrapEl.length === 0) {\n        gesture.$imageEl = undefined;\n        return;\n      }\n    }\n    gesture.$imageEl.transition(0);\n    swiper.zoom.isScaling = true;\n  },\n  onGestureChange(e) {\n    const swiper = this;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n    const {\n      gesture\n    } = zoom;\n    if (!Support.gestures) {\n      if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n        return;\n      }\n      zoom.fakeGestureMoved = true;\n      gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n    }\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    if (Support.gestures) {\n      zoom.scale = e.scale * zoom.currentScale;\n    } else {\n      zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n    }\n    if (zoom.scale > gesture.maxRatio) {\n      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n    }\n    if (zoom.scale < params.minRatio) {\n      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n    }\n    gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n  },\n  onGestureEnd(e) {\n    const swiper = this;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n    const {\n      gesture\n    } = zoom;\n    if (!Support.gestures) {\n      if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n        return;\n      }\n      if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android) {\n        return;\n      }\n      zoom.fakeGestureTouched = false;\n      zoom.fakeGestureMoved = false;\n    }\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n    gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n    zoom.currentScale = zoom.scale;\n    zoom.isScaling = false;\n    if (zoom.scale === 1) gesture.$slideEl = undefined;\n  },\n  onTouchStart(e) {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const {\n      gesture,\n      image\n    } = zoom;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    if (image.isTouched) return;\n    if (Device.android) e.preventDefault();\n    image.isTouched = true;\n    image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n    image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n  },\n  onTouchMove(e) {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const {\n      gesture,\n      image,\n      velocity\n    } = zoom;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    swiper.allowClick = false;\n    if (!image.isTouched || !gesture.$slideEl) return;\n    if (!image.isMoved) {\n      image.width = gesture.$imageEl[0].offsetWidth;\n      image.height = gesture.$imageEl[0].offsetHeight;\n      image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n      image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n      gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n      gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n      gesture.$imageWrapEl.transition(0);\n      if (swiper.rtl) {\n        image.startX = -image.startX;\n        image.startY = -image.startY;\n      }\n    }\n    // Define if we need image drag\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n    if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n    image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n    image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n    if (!image.isMoved && !zoom.isScaling) {\n      if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n        image.isTouched = false;\n        return;\n      }\n      if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n        image.isTouched = false;\n        return;\n      }\n    }\n    e.preventDefault();\n    e.stopPropagation();\n    image.isMoved = true;\n    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n    if (image.currentX < image.minX) {\n      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n    }\n    if (image.currentX > image.maxX) {\n      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n    }\n    if (image.currentY < image.minY) {\n      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n    }\n    if (image.currentY > image.maxY) {\n      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n    }\n\n    // Velocity\n    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n    if (!velocity.prevTime) velocity.prevTime = Date.now();\n    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n    velocity.prevPositionX = image.touchesCurrent.x;\n    velocity.prevPositionY = image.touchesCurrent.y;\n    velocity.prevTime = Date.now();\n    gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n  },\n  onTouchEnd() {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const {\n      gesture,\n      image,\n      velocity\n    } = zoom;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    if (!image.isTouched || !image.isMoved) {\n      image.isTouched = false;\n      image.isMoved = false;\n      return;\n    }\n    image.isTouched = false;\n    image.isMoved = false;\n    let momentumDurationX = 300;\n    let momentumDurationY = 300;\n    const momentumDistanceX = velocity.x * momentumDurationX;\n    const newPositionX = image.currentX + momentumDistanceX;\n    const momentumDistanceY = velocity.y * momentumDurationY;\n    const newPositionY = image.currentY + momentumDistanceY;\n\n    // Fix duration\n    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n    image.currentX = newPositionX;\n    image.currentY = newPositionY;\n\n    // Define if we need image drag\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n    gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n  },\n  onTransitionEnd() {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const {\n      gesture\n    } = zoom;\n    if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n      gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n      gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n      zoom.scale = 1;\n      zoom.currentScale = 1;\n      gesture.$slideEl = undefined;\n      gesture.$imageEl = undefined;\n      gesture.$imageWrapEl = undefined;\n    }\n  },\n  // Toggle Zoom\n  toggle(e) {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    if (zoom.scale && zoom.scale !== 1) {\n      // Zoom Out\n      zoom.out();\n    } else {\n      // Zoom In\n      zoom.in(e);\n    }\n  },\n  in(e) {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n    const {\n      gesture,\n      image\n    } = zoom;\n    if (!gesture.$slideEl) {\n      gesture.$slideEl = swiper.clickedSlide ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n      gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n    }\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n    let touchX;\n    let touchY;\n    let offsetX;\n    let offsetY;\n    let diffX;\n    let diffY;\n    let translateX;\n    let translateY;\n    let imageWidth;\n    let imageHeight;\n    let scaledWidth;\n    let scaledHeight;\n    let translateMinX;\n    let translateMinY;\n    let translateMaxX;\n    let translateMaxY;\n    let slideWidth;\n    let slideHeight;\n    if (typeof image.touchesStart.x === 'undefined' && e) {\n      touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n      touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n    } else {\n      touchX = image.touchesStart.x;\n      touchY = image.touchesStart.y;\n    }\n    zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n    zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n    if (e) {\n      slideWidth = gesture.$slideEl[0].offsetWidth;\n      slideHeight = gesture.$slideEl[0].offsetHeight;\n      offsetX = gesture.$slideEl.offset().left;\n      offsetY = gesture.$slideEl.offset().top;\n      diffX = offsetX + slideWidth / 2 - touchX;\n      diffY = offsetY + slideHeight / 2 - touchY;\n      imageWidth = gesture.$imageEl[0].offsetWidth;\n      imageHeight = gesture.$imageEl[0].offsetHeight;\n      scaledWidth = imageWidth * zoom.scale;\n      scaledHeight = imageHeight * zoom.scale;\n      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n      translateMaxX = -translateMinX;\n      translateMaxY = -translateMinY;\n      translateX = diffX * zoom.scale;\n      translateY = diffY * zoom.scale;\n      if (translateX < translateMinX) {\n        translateX = translateMinX;\n      }\n      if (translateX > translateMaxX) {\n        translateX = translateMaxX;\n      }\n      if (translateY < translateMinY) {\n        translateY = translateMinY;\n      }\n      if (translateY > translateMaxY) {\n        translateY = translateMaxY;\n      }\n    } else {\n      translateX = 0;\n      translateY = 0;\n    }\n    gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n    gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n  },\n  out() {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n    const {\n      gesture\n    } = zoom;\n    if (!gesture.$slideEl) {\n      gesture.$slideEl = swiper.clickedSlide ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n      gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n    }\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    zoom.scale = 1;\n    zoom.currentScale = 1;\n    gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n    gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n    gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n    gesture.$slideEl = undefined;\n  },\n  // Attach/Detach Events\n  enable() {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    if (zoom.enabled) return;\n    zoom.enabled = true;\n    const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n\n    // Scale image\n    if (Support.gestures) {\n      swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n      swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n      swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n    } else if (swiper.touchEvents.start === 'touchstart') {\n      swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n      swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n      swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n    }\n\n    // Move image\n    swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n  },\n  disable() {\n    const swiper = this;\n    const zoom = swiper.zoom;\n    if (!zoom.enabled) return;\n    swiper.zoom.enabled = false;\n    const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n\n    // Scale image\n    if (Support.gestures) {\n      swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n      swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n      swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n    } else if (swiper.touchEvents.start === 'touchstart') {\n      swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n      swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n      swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n    }\n\n    // Move image\n    swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n  }\n};\nvar Zoom$1 = {\n  name: 'zoom',\n  params: {\n    zoom: {\n      enabled: false,\n      maxRatio: 3,\n      minRatio: 1,\n      toggle: true,\n      containerClass: 'swiper-zoom-container',\n      zoomedSlideClass: 'swiper-slide-zoomed'\n    }\n  },\n  create() {\n    const swiper = this;\n    const zoom = {\n      enabled: false,\n      scale: 1,\n      currentScale: 1,\n      isScaling: false,\n      gesture: {\n        $slideEl: undefined,\n        slideWidth: undefined,\n        slideHeight: undefined,\n        $imageEl: undefined,\n        $imageWrapEl: undefined,\n        maxRatio: 3\n      },\n      image: {\n        isTouched: undefined,\n        isMoved: undefined,\n        currentX: undefined,\n        currentY: undefined,\n        minX: undefined,\n        minY: undefined,\n        maxX: undefined,\n        maxY: undefined,\n        width: undefined,\n        height: undefined,\n        startX: undefined,\n        startY: undefined,\n        touchesStart: {},\n        touchesCurrent: {}\n      },\n      velocity: {\n        x: undefined,\n        y: undefined,\n        prevPositionX: undefined,\n        prevPositionY: undefined,\n        prevTime: undefined\n      }\n    };\n    'onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out'.split(' ').forEach(methodName => {\n      zoom[methodName] = Zoom[methodName].bind(swiper);\n    });\n    Utils.extend(swiper, {\n      zoom\n    });\n    let scale = 1;\n    Object.defineProperty(swiper.zoom, 'scale', {\n      get() {\n        return scale;\n      },\n      set(value) {\n        if (scale !== value) {\n          const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n          const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n          swiper.emit('zoomChange', value, imageEl, slideEl);\n        }\n        scale = value;\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.zoom.enabled) {\n        swiper.zoom.enable();\n      }\n    },\n    destroy() {\n      const swiper = this;\n      swiper.zoom.disable();\n    },\n    touchStart(e) {\n      const swiper = this;\n      if (!swiper.zoom.enabled) return;\n      swiper.zoom.onTouchStart(e);\n    },\n    touchEnd(e) {\n      const swiper = this;\n      if (!swiper.zoom.enabled) return;\n      swiper.zoom.onTouchEnd(e);\n    },\n    doubleTap(e) {\n      const swiper = this;\n      if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n        swiper.zoom.toggle(e);\n      }\n    },\n    transitionEnd() {\n      const swiper = this;\n      if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n        swiper.zoom.onTransitionEnd();\n      }\n    }\n  }\n};\nconst Lazy = {\n  loadInSlide(index, loadInDuplicate = true) {\n    const swiper = this;\n    const params = swiper.params.lazy;\n    if (typeof index === 'undefined') return;\n    if (swiper.slides.length === 0) return;\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n    let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n    if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n      $images = $images.add($slideEl[0]);\n    }\n    if ($images.length === 0) return;\n    $images.each((imageIndex, imageEl) => {\n      const $imageEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(imageEl);\n      $imageEl.addClass(params.loadingClass);\n      const background = $imageEl.attr('data-background');\n      const src = $imageEl.attr('data-src');\n      const srcset = $imageEl.attr('data-srcset');\n      const sizes = $imageEl.attr('data-sizes');\n      swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n        if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n        if (background) {\n          $imageEl.css('background-image', `url(\"${background}\")`);\n          $imageEl.removeAttr('data-background');\n        } else {\n          if (srcset) {\n            $imageEl.attr('srcset', srcset);\n            $imageEl.removeAttr('data-srcset');\n          }\n          if (sizes) {\n            $imageEl.attr('sizes', sizes);\n            $imageEl.removeAttr('data-sizes');\n          }\n          if (src) {\n            $imageEl.attr('src', src);\n            $imageEl.removeAttr('data-src');\n          }\n        }\n        $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n        $slideEl.find(`.${params.preloaderClass}`).remove();\n        if (swiper.params.loop && loadInDuplicate) {\n          const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n          if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n            const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n            swiper.lazy.loadInSlide(originalSlide.index(), false);\n          } else {\n            const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n            swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n          }\n        }\n        swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n      });\n      swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n    });\n  },\n  load() {\n    const swiper = this;\n    const {\n      $wrapperEl,\n      params: swiperParams,\n      slides,\n      activeIndex\n    } = swiper;\n    const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n    const params = swiperParams.lazy;\n    let slidesPerView = swiperParams.slidesPerView;\n    if (slidesPerView === 'auto') {\n      slidesPerView = 0;\n    }\n    function slideExist(index) {\n      if (isVirtual) {\n        if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n          return true;\n        }\n      } else if (slides[index]) return true;\n      return false;\n    }\n    function slideIndex(slideEl) {\n      if (isVirtual) {\n        return (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slideEl).attr('data-swiper-slide-index');\n      }\n      return (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slideEl).index();\n    }\n    if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n    if (swiper.params.watchSlidesVisibility) {\n      $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n        const index = isVirtual ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slideEl).attr('data-swiper-slide-index') : (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(slideEl).index();\n        swiper.lazy.loadInSlide(index);\n      });\n    } else if (slidesPerView > 1) {\n      for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n        if (slideExist(i)) swiper.lazy.loadInSlide(i);\n      }\n    } else {\n      swiper.lazy.loadInSlide(activeIndex);\n    }\n    if (params.loadPrevNext) {\n      if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n        const amount = params.loadPrevNextAmount;\n        const spv = slidesPerView;\n        const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n        const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n        // Next Slides\n        for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n          if (slideExist(i)) swiper.lazy.loadInSlide(i);\n        }\n        // Prev Slides\n        for (let i = minIndex; i < activeIndex; i += 1) {\n          if (slideExist(i)) swiper.lazy.loadInSlide(i);\n        }\n      } else {\n        const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n        if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n        const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n        if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n      }\n    }\n  }\n};\nvar Lazy$1 = {\n  name: 'lazy',\n  params: {\n    lazy: {\n      enabled: false,\n      loadPrevNext: false,\n      loadPrevNextAmount: 1,\n      loadOnTransitionStart: false,\n      elementClass: 'swiper-lazy',\n      loadingClass: 'swiper-lazy-loading',\n      loadedClass: 'swiper-lazy-loaded',\n      preloaderClass: 'swiper-lazy-preloader'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      lazy: {\n        initialImageLoaded: false,\n        load: Lazy.load.bind(swiper),\n        loadInSlide: Lazy.loadInSlide.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n        swiper.params.preloadImages = false;\n      }\n    },\n    init() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n        swiper.lazy.load();\n      }\n    },\n    scroll() {\n      const swiper = this;\n      if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n        swiper.lazy.load();\n      }\n    },\n    resize() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled) {\n        swiper.lazy.load();\n      }\n    },\n    scrollbarDragMove() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled) {\n        swiper.lazy.load();\n      }\n    },\n    transitionStart() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled) {\n        if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n          swiper.lazy.load();\n        }\n      }\n    },\n    transitionEnd() {\n      const swiper = this;\n      if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n        swiper.lazy.load();\n      }\n    }\n  }\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n  LinearSpline: function LinearSpline(x, y) {\n    const binarySearch = function search() {\n      let maxIndex;\n      let minIndex;\n      let guess;\n      return (array, val) => {\n        minIndex = -1;\n        maxIndex = array.length;\n        while (maxIndex - minIndex > 1) {\n          guess = maxIndex + minIndex >> 1;\n          if (array[guess] <= val) {\n            minIndex = guess;\n          } else {\n            maxIndex = guess;\n          }\n        }\n        return maxIndex;\n      };\n    }();\n    this.x = x;\n    this.y = y;\n    this.lastIndex = x.length - 1;\n    // Given an x value (x2), return the expected y2 value:\n    // (x1,y1) is the known point before given value,\n    // (x3,y3) is the known point after given value.\n    let i1;\n    let i3;\n    this.interpolate = function interpolate(x2) {\n      if (!x2) return 0;\n\n      // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n      i3 = binarySearch(this.x, x2);\n      i1 = i3 - 1;\n\n      // We have our indexes i1 & i3, so we can calculate already:\n      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n    };\n    return this;\n  },\n  // xxx: for now i will just save one spline function to to\n  getInterpolateFunction(c) {\n    const swiper = this;\n    if (!swiper.controller.spline) {\n      swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n    }\n  },\n  setTranslate(setTranslate, byController) {\n    const swiper = this;\n    const controlled = swiper.controller.control;\n    let multiplier;\n    let controlledTranslate;\n    function setControlledTranslate(c) {\n      // this will create an Interpolate function based on the snapGrids\n      // x is the Grid of the scrolled scroller and y will be the controlled scroller\n      // it makes sense to create this only once and recall it for the interpolation\n      // the function does a lot of value caching for performance\n      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n      if (swiper.params.controller.by === 'slide') {\n        swiper.controller.getInterpolateFunction(c);\n        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n        // but it did not work out\n        controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n      }\n      if (!controlledTranslate || swiper.params.controller.by === 'container') {\n        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n      }\n      if (swiper.params.controller.inverse) {\n        controlledTranslate = c.maxTranslate() - controlledTranslate;\n      }\n      c.updateProgress(controlledTranslate);\n      c.setTranslate(controlledTranslate, swiper);\n      c.updateActiveIndex();\n      c.updateSlidesClasses();\n    }\n    if (Array.isArray(controlled)) {\n      for (let i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTranslate(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTranslate(controlled);\n    }\n  },\n  setTransition(duration, byController) {\n    const swiper = this;\n    const controlled = swiper.controller.control;\n    let i;\n    function setControlledTransition(c) {\n      c.setTransition(duration, swiper);\n      if (duration !== 0) {\n        c.transitionStart();\n        if (c.params.autoHeight) {\n          Utils.nextTick(() => {\n            c.updateAutoHeight();\n          });\n        }\n        c.$wrapperEl.transitionEnd(() => {\n          if (!controlled) return;\n          if (c.params.loop && swiper.params.controller.by === 'slide') {\n            c.loopFix();\n          }\n          c.transitionEnd();\n        });\n      }\n    }\n    if (Array.isArray(controlled)) {\n      for (i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTransition(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTransition(controlled);\n    }\n  }\n};\nvar Controller$1 = {\n  name: 'controller',\n  params: {\n    controller: {\n      control: undefined,\n      inverse: false,\n      by: 'slide' // or 'container'\n    }\n  },\n\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      controller: {\n        control: swiper.params.controller.control,\n        getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n        setTranslate: Controller.setTranslate.bind(swiper),\n        setTransition: Controller.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    update() {\n      const swiper = this;\n      if (!swiper.controller.control) return;\n      if (swiper.controller.spline) {\n        swiper.controller.spline = undefined;\n        delete swiper.controller.spline;\n      }\n    },\n    resize() {\n      const swiper = this;\n      if (!swiper.controller.control) return;\n      if (swiper.controller.spline) {\n        swiper.controller.spline = undefined;\n        delete swiper.controller.spline;\n      }\n    },\n    observerUpdate() {\n      const swiper = this;\n      if (!swiper.controller.control) return;\n      if (swiper.controller.spline) {\n        swiper.controller.spline = undefined;\n        delete swiper.controller.spline;\n      }\n    },\n    setTranslate(translate, byController) {\n      const swiper = this;\n      if (!swiper.controller.control) return;\n      swiper.controller.setTranslate(translate, byController);\n    },\n    setTransition(duration, byController) {\n      const swiper = this;\n      if (!swiper.controller.control) return;\n      swiper.controller.setTransition(duration, byController);\n    }\n  }\n};\nconst a11y = {\n  makeElFocusable($el) {\n    $el.attr('tabIndex', '0');\n    return $el;\n  },\n  addElRole($el, role) {\n    $el.attr('role', role);\n    return $el;\n  },\n  addElLabel($el, label) {\n    $el.attr('aria-label', label);\n    return $el;\n  },\n  disableEl($el) {\n    $el.attr('aria-disabled', true);\n    return $el;\n  },\n  enableEl($el) {\n    $el.attr('aria-disabled', false);\n    return $el;\n  },\n  onEnterKey(e) {\n    const swiper = this;\n    const params = swiper.params.a11y;\n    if (e.keyCode !== 13) return;\n    const $targetEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(e.target);\n    if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n      if (!(swiper.isEnd && !swiper.params.loop)) {\n        swiper.slideNext();\n      }\n      if (swiper.isEnd) {\n        swiper.a11y.notify(params.lastSlideMessage);\n      } else {\n        swiper.a11y.notify(params.nextSlideMessage);\n      }\n    }\n    if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n      if (!(swiper.isBeginning && !swiper.params.loop)) {\n        swiper.slidePrev();\n      }\n      if (swiper.isBeginning) {\n        swiper.a11y.notify(params.firstSlideMessage);\n      } else {\n        swiper.a11y.notify(params.prevSlideMessage);\n      }\n    }\n    if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n      $targetEl[0].click();\n    }\n  },\n  notify(message) {\n    const swiper = this;\n    const notification = swiper.a11y.liveRegion;\n    if (notification.length === 0) return;\n    notification.html('');\n    notification.html(message);\n  },\n  updateNavigation() {\n    const swiper = this;\n    if (swiper.params.loop) return;\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n    if ($prevEl && $prevEl.length > 0) {\n      if (swiper.isBeginning) {\n        swiper.a11y.disableEl($prevEl);\n      } else {\n        swiper.a11y.enableEl($prevEl);\n      }\n    }\n    if ($nextEl && $nextEl.length > 0) {\n      if (swiper.isEnd) {\n        swiper.a11y.disableEl($nextEl);\n      } else {\n        swiper.a11y.enableEl($nextEl);\n      }\n    }\n  },\n  updatePagination() {\n    const swiper = this;\n    const params = swiper.params.a11y;\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n        const $bulletEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(bulletEl);\n        swiper.a11y.makeElFocusable($bulletEl);\n        swiper.a11y.addElRole($bulletEl, 'button');\n        swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n      });\n    }\n  },\n  init() {\n    const swiper = this;\n    swiper.$el.append(swiper.a11y.liveRegion);\n\n    // Navigation\n    const params = swiper.params.a11y;\n    let $nextEl;\n    let $prevEl;\n    if (swiper.navigation && swiper.navigation.$nextEl) {\n      $nextEl = swiper.navigation.$nextEl;\n    }\n    if (swiper.navigation && swiper.navigation.$prevEl) {\n      $prevEl = swiper.navigation.$prevEl;\n    }\n    if ($nextEl) {\n      swiper.a11y.makeElFocusable($nextEl);\n      swiper.a11y.addElRole($nextEl, 'button');\n      swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n      $nextEl.on('keydown', swiper.a11y.onEnterKey);\n    }\n    if ($prevEl) {\n      swiper.a11y.makeElFocusable($prevEl);\n      swiper.a11y.addElRole($prevEl, 'button');\n      swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n      $prevEl.on('keydown', swiper.a11y.onEnterKey);\n    }\n\n    // Pagination\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n    }\n  },\n  destroy() {\n    const swiper = this;\n    if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n    let $nextEl;\n    let $prevEl;\n    if (swiper.navigation && swiper.navigation.$nextEl) {\n      $nextEl = swiper.navigation.$nextEl;\n    }\n    if (swiper.navigation && swiper.navigation.$prevEl) {\n      $prevEl = swiper.navigation.$prevEl;\n    }\n    if ($nextEl) {\n      $nextEl.off('keydown', swiper.a11y.onEnterKey);\n    }\n    if ($prevEl) {\n      $prevEl.off('keydown', swiper.a11y.onEnterKey);\n    }\n\n    // Pagination\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n    }\n  }\n};\nvar A11y = {\n  name: 'a11y',\n  params: {\n    a11y: {\n      enabled: true,\n      notificationClass: 'swiper-notification',\n      prevSlideMessage: 'Previous slide',\n      nextSlideMessage: 'Next slide',\n      firstSlideMessage: 'This is the first slide',\n      lastSlideMessage: 'This is the last slide',\n      paginationBulletMessage: 'Go to slide {{index}}'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      a11y: {\n        liveRegion: (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`)\n      }\n    });\n    Object.keys(a11y).forEach(methodName => {\n      swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.init();\n      swiper.a11y.updateNavigation();\n    },\n    toEdge() {\n      const swiper = this;\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updateNavigation();\n    },\n    fromEdge() {\n      const swiper = this;\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updateNavigation();\n    },\n    paginationUpdate() {\n      const swiper = this;\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updatePagination();\n    },\n    destroy() {\n      const swiper = this;\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.destroy();\n    }\n  }\n};\nconst History = {\n  init() {\n    const swiper = this;\n    if (!swiper.params.history) return;\n    if (!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history || !ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.pushState) {\n      swiper.params.history.enabled = false;\n      swiper.params.hashNavigation.enabled = true;\n      return;\n    }\n    const history = swiper.history;\n    history.initialized = true;\n    history.paths = History.getPathValues();\n    if (!history.paths.key && !history.paths.value) return;\n    history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n    if (!swiper.params.history.replaceState) {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.addEventListener('popstate', swiper.history.setHistoryPopState);\n    }\n  },\n  destroy() {\n    const swiper = this;\n    if (!swiper.params.history.replaceState) {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n    }\n  },\n  setHistoryPopState() {\n    const swiper = this;\n    swiper.history.paths = History.getPathValues();\n    swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n  },\n  getPathValues() {\n    const pathArray = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.location.pathname.slice(1).split('/').filter(part => part !== '');\n    const total = pathArray.length;\n    const key = pathArray[total - 2];\n    const value = pathArray[total - 1];\n    return {\n      key,\n      value\n    };\n  },\n  setHistory(key, index) {\n    const swiper = this;\n    if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n    const slide = swiper.slides.eq(index);\n    let value = History.slugify(slide.attr('data-history'));\n    if (!ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.location.pathname.includes(key)) {\n      value = `${key}/${value}`;\n    }\n    const currentState = ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.state;\n    if (currentState && currentState.value === value) {\n      return;\n    }\n    if (swiper.params.history.replaceState) {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.replaceState({\n        value\n      }, null, value);\n    } else {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.pushState({\n        value\n      }, null, value);\n    }\n  },\n  slugify(text) {\n    return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n  },\n  scrollToSlide(speed, value, runCallbacks) {\n    const swiper = this;\n    if (value) {\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides.eq(i);\n        const slideHistory = History.slugify(slide.attr('data-history'));\n        if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n          const index = slide.index();\n          swiper.slideTo(index, speed, runCallbacks);\n        }\n      }\n    } else {\n      swiper.slideTo(0, speed, runCallbacks);\n    }\n  }\n};\nvar History$1 = {\n  name: 'history',\n  params: {\n    history: {\n      enabled: false,\n      replaceState: false,\n      key: 'slides'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      history: {\n        init: History.init.bind(swiper),\n        setHistory: History.setHistory.bind(swiper),\n        setHistoryPopState: History.setHistoryPopState.bind(swiper),\n        scrollToSlide: History.scrollToSlide.bind(swiper),\n        destroy: History.destroy.bind(swiper)\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.history.enabled) {\n        swiper.history.init();\n      }\n    },\n    destroy() {\n      const swiper = this;\n      if (swiper.params.history.enabled) {\n        swiper.history.destroy();\n      }\n    },\n    transitionEnd() {\n      const swiper = this;\n      if (swiper.history.initialized) {\n        swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n      }\n    }\n  }\n};\nconst HashNavigation = {\n  onHashCange() {\n    const swiper = this;\n    const newHash = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.location.hash.replace('#', '');\n    const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n    if (newHash !== activeSlideHash) {\n      const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n      if (typeof newIndex === 'undefined') return;\n      swiper.slideTo(newIndex);\n    }\n  },\n  setHash() {\n    const swiper = this;\n    if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n    if (swiper.params.hashNavigation.replaceState && ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history && ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.replaceState) {\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n    } else {\n      const slide = swiper.slides.eq(swiper.activeIndex);\n      const hash = slide.attr('data-hash') || slide.attr('data-history');\n      ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.location.hash = hash || '';\n    }\n  },\n  init() {\n    const swiper = this;\n    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n    swiper.hashNavigation.initialized = true;\n    const hash = ssr_window__WEBPACK_IMPORTED_MODULE_3__.document.location.hash.replace('#', '');\n    if (hash) {\n      const speed = 0;\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides.eq(i);\n        const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n        if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n          const index = slide.index();\n          swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n        }\n      }\n    }\n    if (swiper.params.hashNavigation.watchState) {\n      (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.window).on('hashchange', swiper.hashNavigation.onHashCange);\n    }\n  },\n  destroy() {\n    const swiper = this;\n    if (swiper.params.hashNavigation.watchState) {\n      (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_3__.window).off('hashchange', swiper.hashNavigation.onHashCange);\n    }\n  }\n};\nvar HashNavigation$1 = {\n  name: 'hash-navigation',\n  params: {\n    hashNavigation: {\n      enabled: false,\n      replaceState: false,\n      watchState: false\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      hashNavigation: {\n        initialized: false,\n        init: HashNavigation.init.bind(swiper),\n        destroy: HashNavigation.destroy.bind(swiper),\n        setHash: HashNavigation.setHash.bind(swiper),\n        onHashCange: HashNavigation.onHashCange.bind(swiper)\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.hashNavigation.enabled) {\n        swiper.hashNavigation.init();\n      }\n    },\n    destroy() {\n      const swiper = this;\n      if (swiper.params.hashNavigation.enabled) {\n        swiper.hashNavigation.destroy();\n      }\n    },\n    transitionEnd() {\n      const swiper = this;\n      if (swiper.hashNavigation.initialized) {\n        swiper.hashNavigation.setHash();\n      }\n    }\n  }\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n  run() {\n    const swiper = this;\n    const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n    let delay = swiper.params.autoplay.delay;\n    if ($activeSlideEl.attr('data-swiper-autoplay')) {\n      delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n    }\n    clearTimeout(swiper.autoplay.timeout);\n    swiper.autoplay.timeout = Utils.nextTick(() => {\n      if (swiper.params.autoplay.reverseDirection) {\n        if (swiper.params.loop) {\n          swiper.loopFix();\n          swiper.slidePrev(swiper.params.speed, true, true);\n          swiper.emit('autoplay');\n        } else if (!swiper.isBeginning) {\n          swiper.slidePrev(swiper.params.speed, true, true);\n          swiper.emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n          swiper.emit('autoplay');\n        } else {\n          swiper.autoplay.stop();\n        }\n      } else if (swiper.params.loop) {\n        swiper.loopFix();\n        swiper.slideNext(swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else if (!swiper.isEnd) {\n        swiper.slideNext(swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else if (!swiper.params.autoplay.stopOnLastSlide) {\n        swiper.slideTo(0, swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else {\n        swiper.autoplay.stop();\n      }\n    }, delay);\n  },\n  start() {\n    const swiper = this;\n    if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n    if (swiper.autoplay.running) return false;\n    swiper.autoplay.running = true;\n    swiper.emit('autoplayStart');\n    swiper.autoplay.run();\n    return true;\n  },\n  stop() {\n    const swiper = this;\n    if (!swiper.autoplay.running) return false;\n    if (typeof swiper.autoplay.timeout === 'undefined') return false;\n    if (swiper.autoplay.timeout) {\n      clearTimeout(swiper.autoplay.timeout);\n      swiper.autoplay.timeout = undefined;\n    }\n    swiper.autoplay.running = false;\n    swiper.emit('autoplayStop');\n    return true;\n  },\n  pause(speed) {\n    const swiper = this;\n    if (!swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) return;\n    if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n    swiper.autoplay.paused = true;\n    if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n      swiper.autoplay.paused = false;\n      swiper.autoplay.run();\n    } else {\n      swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n      swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n    }\n  }\n};\nvar Autoplay$1 = {\n  name: 'autoplay',\n  params: {\n    autoplay: {\n      enabled: false,\n      delay: 3000,\n      waitForTransition: true,\n      disableOnInteraction: true,\n      stopOnLastSlide: false,\n      reverseDirection: false\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      autoplay: {\n        running: false,\n        paused: false,\n        run: Autoplay.run.bind(swiper),\n        start: Autoplay.start.bind(swiper),\n        stop: Autoplay.stop.bind(swiper),\n        pause: Autoplay.pause.bind(swiper),\n        onTransitionEnd(e) {\n          if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n          if (e.target !== this) return;\n          swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n          swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n          swiper.autoplay.paused = false;\n          if (!swiper.autoplay.running) {\n            swiper.autoplay.stop();\n          } else {\n            swiper.autoplay.run();\n          }\n        }\n      }\n    });\n  },\n  on: {\n    init() {\n      const swiper = this;\n      if (swiper.params.autoplay.enabled) {\n        swiper.autoplay.start();\n      }\n    },\n    beforeTransitionStart(speed, internal) {\n      const swiper = this;\n      if (swiper.autoplay.running) {\n        if (internal || !swiper.params.autoplay.disableOnInteraction) {\n          swiper.autoplay.pause(speed);\n        } else {\n          swiper.autoplay.stop();\n        }\n      }\n    },\n    sliderFirstMove() {\n      const swiper = this;\n      if (swiper.autoplay.running) {\n        if (swiper.params.autoplay.disableOnInteraction) {\n          swiper.autoplay.stop();\n        } else {\n          swiper.autoplay.pause();\n        }\n      }\n    },\n    destroy() {\n      const swiper = this;\n      if (swiper.autoplay.running) {\n        swiper.autoplay.stop();\n      }\n    }\n  }\n};\nconst Fade = {\n  setTranslate() {\n    const swiper = this;\n    const {\n      slides\n    } = swiper;\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = swiper.slides.eq(i);\n      const offset = $slideEl[0].swiperSlideOffset;\n      let tx = -offset;\n      if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n      let ty = 0;\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n      }\n      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n      $slideEl.css({\n        opacity: slideOpacity\n      }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n    }\n  },\n  setTransition(duration) {\n    const swiper = this;\n    const {\n      slides,\n      $wrapperEl\n    } = swiper;\n    slides.transition(duration);\n    if (swiper.params.virtualTranslate && duration !== 0) {\n      let eventTriggered = false;\n      slides.transitionEnd(() => {\n        if (eventTriggered) return;\n        if (!swiper || swiper.destroyed) return;\n        eventTriggered = true;\n        swiper.animating = false;\n        const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n        for (let i = 0; i < triggerEvents.length; i += 1) {\n          $wrapperEl.trigger(triggerEvents[i]);\n        }\n      });\n    }\n  }\n};\nvar EffectFade = {\n  name: 'effect-fade',\n  params: {\n    fadeEffect: {\n      crossFade: false\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      fadeEffect: {\n        setTranslate: Fade.setTranslate.bind(swiper),\n        setTransition: Fade.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (swiper.params.effect !== 'fade') return;\n      swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n      const overwriteParams = {\n        slidesPerView: 1,\n        slidesPerColumn: 1,\n        slidesPerGroup: 1,\n        watchSlidesProgress: true,\n        spaceBetween: 0,\n        virtualTranslate: true\n      };\n      Utils.extend(swiper.params, overwriteParams);\n      Utils.extend(swiper.originalParams, overwriteParams);\n    },\n    setTranslate() {\n      const swiper = this;\n      if (swiper.params.effect !== 'fade') return;\n      swiper.fadeEffect.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      if (swiper.params.effect !== 'fade') return;\n      swiper.fadeEffect.setTransition(duration);\n    }\n  }\n};\nconst Cube = {\n  setTranslate() {\n    const swiper = this;\n    const {\n      $el,\n      $wrapperEl,\n      slides,\n      width: swiperWidth,\n      height: swiperHeight,\n      rtlTranslate: rtl,\n      size: swiperSize\n    } = swiper;\n    const params = swiper.params.cubeEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    let wrapperRotate = 0;\n    let $cubeShadowEl;\n    if (params.shadow) {\n      if (isHorizontal) {\n        $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n        if ($cubeShadowEl.length === 0) {\n          $cubeShadowEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)('<div class=\"swiper-cube-shadow\"></div>');\n          $wrapperEl.append($cubeShadowEl);\n        }\n        $cubeShadowEl.css({\n          height: `${swiperWidth}px`\n        });\n      } else {\n        $cubeShadowEl = $el.find('.swiper-cube-shadow');\n        if ($cubeShadowEl.length === 0) {\n          $cubeShadowEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)('<div class=\"swiper-cube-shadow\"></div>');\n          $el.append($cubeShadowEl);\n        }\n      }\n    }\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      let slideIndex = i;\n      if (isVirtual) {\n        slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n      }\n      let slideAngle = slideIndex * 90;\n      let round = Math.floor(slideAngle / 360);\n      if (rtl) {\n        slideAngle = -slideAngle;\n        round = Math.floor(-slideAngle / 360);\n      }\n      const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n      let tx = 0;\n      let ty = 0;\n      let tz = 0;\n      if (slideIndex % 4 === 0) {\n        tx = -round * 4 * swiperSize;\n        tz = 0;\n      } else if ((slideIndex - 1) % 4 === 0) {\n        tx = 0;\n        tz = -round * 4 * swiperSize;\n      } else if ((slideIndex - 2) % 4 === 0) {\n        tx = swiperSize + round * 4 * swiperSize;\n        tz = swiperSize;\n      } else if ((slideIndex - 3) % 4 === 0) {\n        tx = -swiperSize;\n        tz = 3 * swiperSize + swiperSize * 4 * round;\n      }\n      if (rtl) {\n        tx = -tx;\n      }\n      if (!isHorizontal) {\n        ty = tx;\n        tx = 0;\n      }\n      const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n      if (progress <= 1 && progress > -1) {\n        wrapperRotate = slideIndex * 90 + progress * 90;\n        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n      }\n      $slideEl.transform(transform);\n      if (params.slideShadows) {\n        // Set shadows\n        let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n        let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n        if (shadowBefore.length === 0) {\n          shadowBefore = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n          $slideEl.append(shadowBefore);\n        }\n        if (shadowAfter.length === 0) {\n          shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n          $slideEl.append(shadowAfter);\n        }\n        if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n        if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n      }\n    }\n    $wrapperEl.css({\n      '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n      '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n      '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n      'transform-origin': `50% 50% -${swiperSize / 2}px`\n    });\n    if (params.shadow) {\n      if (isHorizontal) {\n        $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n      } else {\n        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n        const scale1 = params.shadowScale;\n        const scale2 = params.shadowScale / multiplier;\n        const offset = params.shadowOffset;\n        $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n      }\n    }\n    const zFactor = Browser.isSafari || Browser.isUiWebView ? -swiperSize / 2 : 0;\n    $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n  },\n  setTransition(duration) {\n    const swiper = this;\n    const {\n      $el,\n      slides\n    } = swiper;\n    slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n      $el.find('.swiper-cube-shadow').transition(duration);\n    }\n  }\n};\nvar EffectCube = {\n  name: 'effect-cube',\n  params: {\n    cubeEffect: {\n      slideShadows: true,\n      shadow: true,\n      shadowOffset: 20,\n      shadowScale: 0.94\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      cubeEffect: {\n        setTranslate: Cube.setTranslate.bind(swiper),\n        setTransition: Cube.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (swiper.params.effect !== 'cube') return;\n      swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n      const overwriteParams = {\n        slidesPerView: 1,\n        slidesPerColumn: 1,\n        slidesPerGroup: 1,\n        watchSlidesProgress: true,\n        resistanceRatio: 0,\n        spaceBetween: 0,\n        centeredSlides: false,\n        virtualTranslate: true\n      };\n      Utils.extend(swiper.params, overwriteParams);\n      Utils.extend(swiper.originalParams, overwriteParams);\n    },\n    setTranslate() {\n      const swiper = this;\n      if (swiper.params.effect !== 'cube') return;\n      swiper.cubeEffect.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      if (swiper.params.effect !== 'cube') return;\n      swiper.cubeEffect.setTransition(duration);\n    }\n  }\n};\nconst Flip = {\n  setTranslate() {\n    const swiper = this;\n    const {\n      slides,\n      rtlTranslate: rtl\n    } = swiper;\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      let progress = $slideEl[0].progress;\n      if (swiper.params.flipEffect.limitRotation) {\n        progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n      }\n      const offset = $slideEl[0].swiperSlideOffset;\n      const rotate = -180 * progress;\n      let rotateY = rotate;\n      let rotateX = 0;\n      let tx = -offset;\n      let ty = 0;\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n        rotateX = -rotateY;\n        rotateY = 0;\n      } else if (rtl) {\n        rotateY = -rotateY;\n      }\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n      if (swiper.params.flipEffect.slideShadows) {\n        // Set shadows\n        let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n        let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n        if (shadowBefore.length === 0) {\n          shadowBefore = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'left' : 'top'}\"></div>`);\n          $slideEl.append(shadowBefore);\n        }\n        if (shadowAfter.length === 0) {\n          shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'right' : 'bottom'}\"></div>`);\n          $slideEl.append(shadowAfter);\n        }\n        if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n        if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n      }\n      $slideEl.transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n    }\n  },\n  setTransition(duration) {\n    const swiper = this;\n    const {\n      slides,\n      activeIndex,\n      $wrapperEl\n    } = swiper;\n    slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n    if (swiper.params.virtualTranslate && duration !== 0) {\n      let eventTriggered = false;\n      // eslint-disable-next-line\n      slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n        if (eventTriggered) return;\n        if (!swiper || swiper.destroyed) return;\n        // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n        eventTriggered = true;\n        swiper.animating = false;\n        const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n        for (let i = 0; i < triggerEvents.length; i += 1) {\n          $wrapperEl.trigger(triggerEvents[i]);\n        }\n      });\n    }\n  }\n};\nvar EffectFlip = {\n  name: 'effect-flip',\n  params: {\n    flipEffect: {\n      slideShadows: true,\n      limitRotation: true\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      flipEffect: {\n        setTranslate: Flip.setTranslate.bind(swiper),\n        setTransition: Flip.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (swiper.params.effect !== 'flip') return;\n      swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n      const overwriteParams = {\n        slidesPerView: 1,\n        slidesPerColumn: 1,\n        slidesPerGroup: 1,\n        watchSlidesProgress: true,\n        spaceBetween: 0,\n        virtualTranslate: true\n      };\n      Utils.extend(swiper.params, overwriteParams);\n      Utils.extend(swiper.originalParams, overwriteParams);\n    },\n    setTranslate() {\n      const swiper = this;\n      if (swiper.params.effect !== 'flip') return;\n      swiper.flipEffect.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      if (swiper.params.effect !== 'flip') return;\n      swiper.flipEffect.setTransition(duration);\n    }\n  }\n};\nconst Coverflow = {\n  setTranslate() {\n    const swiper = this;\n    const {\n      width: swiperWidth,\n      height: swiperHeight,\n      slides,\n      $wrapperEl,\n      slidesSizesGrid\n    } = swiper;\n    const params = swiper.params.coverflowEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const transform = swiper.translate;\n    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n    const rotate = isHorizontal ? params.rotate : -params.rotate;\n    const translate = params.depth;\n    // Each slide offset from center\n    for (let i = 0, length = slides.length; i < length; i += 1) {\n      const $slideEl = slides.eq(i);\n      const slideSize = slidesSizesGrid[i];\n      const slideOffset = $slideEl[0].swiperSlideOffset;\n      const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n      // var rotateZ = 0\n      let translateZ = -translate * Math.abs(offsetMultiplier);\n      let translateY = isHorizontal ? 0 : params.stretch * offsetMultiplier;\n      let translateX = isHorizontal ? params.stretch * offsetMultiplier : 0;\n\n      // Fix for ultra small values\n      if (Math.abs(translateX) < 0.001) translateX = 0;\n      if (Math.abs(translateY) < 0.001) translateY = 0;\n      if (Math.abs(translateZ) < 0.001) translateZ = 0;\n      if (Math.abs(rotateY) < 0.001) rotateY = 0;\n      if (Math.abs(rotateX) < 0.001) rotateX = 0;\n      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n      $slideEl.transform(slideTransform);\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n      if (params.slideShadows) {\n        // Set shadows\n        let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n        let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n        if ($shadowBeforeEl.length === 0) {\n          $shadowBeforeEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n          $slideEl.append($shadowBeforeEl);\n        }\n        if ($shadowAfterEl.length === 0) {\n          $shadowAfterEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n          $slideEl.append($shadowAfterEl);\n        }\n        if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n        if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n      }\n    }\n\n    // Set correct perspective for IE10\n    if (Support.pointerEvents || Support.prefixedPointerEvents) {\n      const ws = $wrapperEl[0].style;\n      ws.perspectiveOrigin = `${center}px 50%`;\n    }\n  },\n  setTransition(duration) {\n    const swiper = this;\n    swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n  }\n};\nvar EffectCoverflow = {\n  name: 'effect-coverflow',\n  params: {\n    coverflowEffect: {\n      rotate: 50,\n      stretch: 0,\n      depth: 100,\n      modifier: 1,\n      slideShadows: true\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      coverflowEffect: {\n        setTranslate: Coverflow.setTranslate.bind(swiper),\n        setTransition: Coverflow.setTransition.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      if (swiper.params.effect !== 'coverflow') return;\n      swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n      swiper.params.watchSlidesProgress = true;\n      swiper.originalParams.watchSlidesProgress = true;\n    },\n    setTranslate() {\n      const swiper = this;\n      if (swiper.params.effect !== 'coverflow') return;\n      swiper.coverflowEffect.setTranslate();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      if (swiper.params.effect !== 'coverflow') return;\n      swiper.coverflowEffect.setTransition(duration);\n    }\n  }\n};\nconst Thumbs = {\n  init() {\n    const swiper = this;\n    const {\n      thumbs: thumbsParams\n    } = swiper.params;\n    const SwiperClass = swiper.constructor;\n    if (thumbsParams.swiper instanceof SwiperClass) {\n      swiper.thumbs.swiper = thumbsParams.swiper;\n      Utils.extend(swiper.thumbs.swiper.originalParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n      Utils.extend(swiper.thumbs.swiper.params, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n    } else if (Utils.isObject(thumbsParams.swiper)) {\n      swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n        watchSlidesVisibility: true,\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      }));\n      swiper.thumbs.swiperCreated = true;\n    }\n    swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n    swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n  },\n  onThumbClick() {\n    const swiper = this;\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper) return;\n    const clickedIndex = thumbsSwiper.clickedIndex;\n    const clickedSlide = thumbsSwiper.clickedSlide;\n    if (clickedSlide && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n    let slideToIndex;\n    if (thumbsSwiper.params.loop) {\n      slideToIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n    } else {\n      slideToIndex = clickedIndex;\n    }\n    if (swiper.params.loop) {\n      let currentIndex = swiper.activeIndex;\n      if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n        swiper.loopFix();\n        // eslint-disable-next-line\n        swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n        currentIndex = swiper.activeIndex;\n      }\n      const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n      const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n      if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n    }\n    swiper.slideTo(slideToIndex);\n  },\n  update(initial) {\n    const swiper = this;\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper) return;\n    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n    if (swiper.realIndex !== thumbsSwiper.realIndex) {\n      let currentThumbsIndex = thumbsSwiper.activeIndex;\n      let newThumbsIndex;\n      if (thumbsSwiper.params.loop) {\n        if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n          thumbsSwiper.loopFix();\n          // eslint-disable-next-line\n          thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n          currentThumbsIndex = thumbsSwiper.activeIndex;\n        }\n        // Find actual thumbs index to slide to\n        const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n        const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n        if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\n      } else {\n        newThumbsIndex = swiper.realIndex;\n      }\n      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n        if (thumbsSwiper.params.centeredSlides) {\n          if (newThumbsIndex > currentThumbsIndex) {\n            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n          } else {\n            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n          }\n        } else if (newThumbsIndex > currentThumbsIndex) {\n          newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n        }\n        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n      }\n    }\n\n    // Activate thumbs\n    let thumbsToActivate = 1;\n    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n      thumbsToActivate = swiper.params.slidesPerView;\n    }\n    thumbsSwiper.slides.removeClass(thumbActiveClass);\n    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual) {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n      }\n    } else {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n      }\n    }\n  }\n};\nvar Thumbs$1 = {\n  name: 'thumbs',\n  params: {\n    thumbs: {\n      swiper: null,\n      slideThumbActiveClass: 'swiper-slide-thumb-active',\n      thumbsContainerClass: 'swiper-container-thumbs'\n    }\n  },\n  create() {\n    const swiper = this;\n    Utils.extend(swiper, {\n      thumbs: {\n        swiper: null,\n        init: Thumbs.init.bind(swiper),\n        update: Thumbs.update.bind(swiper),\n        onThumbClick: Thumbs.onThumbClick.bind(swiper)\n      }\n    });\n  },\n  on: {\n    beforeInit() {\n      const swiper = this;\n      const {\n        thumbs\n      } = swiper.params;\n      if (!thumbs || !thumbs.swiper) return;\n      swiper.thumbs.init();\n      swiper.thumbs.update(true);\n    },\n    slideChange() {\n      const swiper = this;\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    update() {\n      const swiper = this;\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    resize() {\n      const swiper = this;\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    observerUpdate() {\n      const swiper = this;\n      if (!swiper.thumbs.swiper) return;\n      swiper.thumbs.update();\n    },\n    setTransition(duration) {\n      const swiper = this;\n      const thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper) return;\n      thumbsSwiper.setTransition(duration);\n    },\n    beforeDestroy() {\n      const swiper = this;\n      const thumbsSwiper = swiper.thumbs.swiper;\n      if (!thumbsSwiper) return;\n      if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n        thumbsSwiper.destroy();\n      }\n    }\n  }\n};\n\n// Swiper Class\n\nconst components = [Device$1, Support$1, Browser$1, Resize, Observer$1, Virtual$1, Keyboard$1, Mousewheel$1, Navigation$1, Pagination$1, Scrollbar$1, Parallax$1, Zoom$1, Lazy$1, Controller$1, A11y, History$1, HashNavigation$1, Autoplay$1, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs$1];\nif (typeof Swiper.use === 'undefined') {\n  Swiper.use = Swiper.Class.use;\n  Swiper.installModule = Swiper.Class.installModule;\n}\nSwiper.use(components);\n/* harmony default export */ __webpack_exports__[\"default\"] = (Swiper);\n\n//# sourceURL=webpack:///./node_modules/_swiper@4.5.1@swiper/dist/js/swiper.esm.bundle.js?");

/***/ }),

/***/ "./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=script&lang=js ***!
  \************************************************************************************************************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/_core-js@3.25.5@core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _api_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../api/http */ \"./src/api/http.js\");\n/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! swiper */ \"./node_modules/_swiper@4.5.1@swiper/dist/js/swiper.esm.bundle.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jquery */ \"./node_modules/_jquery@3.6.1@jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var echarts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! echarts */ \"./node_modules/_echarts@5.4.0@echarts/index.js\");\n/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/router */ \"./src/router/index.js\");\n/* harmony import */ var mqtt_dist_mqtt__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mqtt/dist/mqtt */ \"./node_modules/_mqtt@4.3.7@mqtt/dist/mqtt.js\");\n/* harmony import */ var mqtt_dist_mqtt__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(mqtt_dist_mqtt__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  data() {\n    return {\n      //MQTT请求参数-传感器\n      mtopic: \"lab/bigview\",\n      mtopicTwo: \"manage/work\" + localStorage.getItem('userId'),\n      timer: '',\n      //定时器\n      dataList: [],\n      labList: [],\n      //实验室人员\n      infoList: [],\n      //工作通知\n      planList: [],\n      //工作计划\n      planTitle: '',\n      //工作计划\n      inspectList: [],\n      //安全检查\n      inspecremark: '',\n      //安全检查时间\n      inspeccheckZs: '',\n      //安全检查隐患排查数\n      inspeccheckWzg: '',\n      //安全检查历史遗留\n      inspeccheckYzg: '',\n      //安全检查已整改\n      labInfoList: [],\n      //实验室信息\n      controlList: [],\n      //分级管控\n      controlTitle: '',\n      //分级管控标题\n      inspectBatchList: [],\n      //安全检查批次列表\n      //风险预案\n      warningList: [],\n      groupName: '',\n      roomName: '',\n      buildName: '',\n      floorName: '',\n      riskPlanId: '',\n      //风险预案id\n      subjectId: '',\n      //实验室id\n      sensorStr: '',\n      //实验室id\n      laboratoryId: '',\n      //安全检查实验室检查批次id\n      checkedNum: 0,\n      //首页总数\n      resultCount: '',\n      listcount: '',\n      planResultCount: '',\n      dangerCount: '',\n      labResultCount: '',\n      mySwiper: null,\n      labTypeList: []\n    };\n  },\n  methods: {\n    initSwiper: function () {\n      let _this = this;\n      _this.mySwiper = new swiper__WEBPACK_IMPORTED_MODULE_2__[\"default\"]('.swiper-container', {\n        //loop: true, // 循环模式选项\n        //autoplay:true,\n        autoplay: {\n          delay: 12000,\n          stopOnLastSlide: false,\n          disableOnInteraction: true\n        },\n        direction: 'vertical',\n        //监听滚动到第几页\n        on: {\n          slideChangeTransitionEnd: function () {\n            _this.checkedNum = this.realIndex;\n          }\n        }\n      });\n    },\n    //安全准入办理统计\n    left_b_t_r_btn() {\n      this.$router.push('./admittanceDetail');\n    },\n    //安全隐患统计\n    right_m_l_btn() {\n      this.$router.push('./dangerDetail');\n    },\n    //人员违规统计\n    left_b_t_l_btn() {\n      this.$router.push('./illegalDetail');\n    },\n    //工作通知\n    openInfoUrl(d) {\n      this.$router.push({\n        path: './workInfoDetail',\n        query: {\n          key: d.id\n        }\n      });\n    },\n    //工作计划\n    openPlanUrl() {\n      this.$router.push('./workPlanDetail');\n    },\n    //分级管控\n    openControlUrl() {\n      this.$router.push('./controlDetail');\n    },\n    //安全检查\n    openinspectUrl() {\n      this.$router.push({\n        path: './inspectDetail2',\n        query: {\n          key: this.laboratoryId\n        }\n      });\n    },\n    //安全检查批次\n    openinspectBatchUrl(d) {\n      this.$router.push({\n        path: './inspectDetail',\n        query: {\n          key: d.id\n        }\n      });\n    },\n    //进入实验室人员\n    right_b_btn() {\n      this.$router.push('./labPersonDetail');\n    },\n    //预案执行统计\n    right_t_btn() {\n      this.$router.push('./planDetail');\n    },\n    //危险源统计\n    right_m_r_btn() {\n      this.$router.push('./riskDetail');\n    },\n    //实验室分类分级\n    classifyGrade() {\n      this.$router.push('./classifyGradeDetail');\n    },\n    //获取报警信息\n    openRiskPlanUrl(d) {\n      this.$router.push({\n        path: './warningDetail',\n        query: {\n          key: d.id,\n          subjectId: d.subjectId\n        }\n      });\n    },\n    //跳转后台管理\n    openBackManageUrl() {\n      window.location.href = \"http://lab.sxitdlc.com/jndxlabSystem/admin/#/login\";\n    },\n    //MQTT订阅\n    subscriptionMQTT() {\n      let _this = this;\n      this.client = mqtt_dist_mqtt__WEBPACK_IMPORTED_MODULE_6___default().connect(\"ws://192.168.8.3:1884\", {\n        username: \"mqtt\",\n        password: \"mqtt@zd1883\"\n      });\n      this.client.on(\"connect\", e => {\n        console.log(\"连接成功\");\n        this.client.subscribe(this.mtopic, err => {\n          if (!err) {\n            console.log(\"警报通道订阅成功:\" + this.mtopic);\n          }\n        });\n      });\n      this.client.on(\"message\", (topic, message) => {\n        if (message) {\n          let data = JSON.parse(message);\n          if (topic == this.mtopic) {\n            //报警\n            if (data.data == 'SUB_RISKPLAN_GROUP') {\n              console.log(\"预案信息\", data);\n              _this.warningInfoFun();\n            }\n          }\n        }\n      });\n    },\n    getAjaxData: function () {\n      let _this = this;\n      //获取logo图片\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.getLogoInfo)({}).then(res => {\n        if (res.code == 200) {\n          jquery__WEBPACK_IMPORTED_MODULE_3___default()(\".header_l\").attr(\"src\", _api_http__WEBPACK_IMPORTED_MODULE_1__.requestUrl + res.data.rectangleLogo);\n          localStorage.setItem('logoImg', _api_http__WEBPACK_IMPORTED_MODULE_1__.requestUrl + res.data.rectangleLogo);\n        }\n      });\n      //安全隐患统计\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.optionCharts)({\n        type: localStorage.getItem('deptLevel')\n      }).then(res => {\n        if (res.code == 200) {\n          let dataX = [];\n          let dataCount = [];\n          let data = res.data.list;\n          _this.dangerCount = res.data.count;\n          for (var i = 0; i < 3; i++) {\n            dataX.push(data[i].optionName);\n            dataCount.push(data[i].count);\n          }\n          dataX.reverse();\n          dataCount.reverse();\n          this.safetyFun(dataX, dataCount);\n        }\n      });\n      //人员违规统计\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.newStatistics)({}).then(res => {\n        if (res.code == 200) {\n          let illegalX = [];\n          let illegalData = [];\n          let data = res.data.list;\n          _this.resultCount = res.data.resultCount; //总数\n\n          if (data.length <= 0) {\n            for (let i = 0; i < 4; i++) {\n              illegalX.push('其他');\n              illegalData.push(0);\n            }\n          } else {\n            data.forEach(function (item) {\n              console.log(item.content);\n              illegalX.push(item.content);\n              illegalData.push(item.count);\n            });\n          }\n          this.illegalFun(illegalX, illegalData);\n        }\n      });\n      //安全准入办理统计\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.listCollegeApplyColumn)({}).then(res => {\n        if (res.code == 200) {\n          let dataX = [];\n          let dataValue = [];\n          let data = res.data.listTg;\n          let applyNum;\n          _this.listcount = res.data.listcount; ////总数\n          for (var i = 0; i < data.length; i++) {\n            dataX.push(data[i].applyMonth);\n            //dataValue.push(data[i].applyNum)\n            if (data[i].applyNum == 0) {\n              applyNum = '';\n            } else {\n              applyNum = data[i].applyNum;\n            }\n            dataValue.push(applyNum);\n          }\n          this.admittanceFun(dataX, dataValue);\n        }\n      });\n      //预案执行统计\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.getYearControlInfo)({}).then(res => {\n        if (res.code == 200) {\n          let dataX = [];\n          let dataValue = [];\n          let data = res.data.list;\n          _this.planResultCount = res.data.resultCount;\n          for (var i = 0; i < data.length; i++) {\n            dataX.push(data[i].yearMonth);\n            dataValue.push(data[i].num);\n          }\n          this.planFun(dataX, dataValue);\n        }\n      });\n      //危险源统计\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.queryHazardColumnar)({}).then(res => {\n        if (res.code == 200) {\n          // let dataX=[\n          //   {\n          //     value:'73',\n          //     name:'危化品 73kg',\n          //   },\n          //   {\n          //     value:'62',\n          //     name:'气瓶 62瓶',\n          //   },\n          //   {\n          //     value:'51',\n          //     name:'冷热设备 51台',\n          //   },\n          //   {\n          //     value:'34',\n          //     name:'特种设备 34台',\n          //   },\n          //\n          // ];\n          let dataX = [];\n          let data = res.data;\n          data.forEach(function (item) {\n            if (item.totalNum == 0) {\n              dataX.push({\n                value: '',\n                name: item.dictLabel + ' ' + item.totalNum\n              });\n            } else {\n              dataX.push({\n                value: item.totalNum,\n                name: item.dictLabel + ' ' + item.totalNum\n              });\n            }\n          });\n          this.riskFun(dataX);\n        }\n      });\n      //实验室人员\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.onlineSumByBigView)({\n        pageNumStr: 1,\n        pageSizeStr: 50\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.data.list;\n          _this.labResultCount = res.data.resultCount;\n          _this.labList = data;\n        }\n      });\n      //实验室分类\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.getTypeCount)({}).then(res => {\n        if (res.code == 200) {\n          let data = res.data;\n          this.labTypeList = data;\n        }\n      });\n      //实验室分级\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.getFiedCount)({}).then(res => {\n        if (res.code == 200) {\n          let _this = this;\n          let data = res.data;\n          let dataX = [];\n          data.forEach(function (item) {\n            dataX.push({\n              name: item.classifiedName,\n              value: item.totalNum\n            });\n          });\n          _this.classifyFun(dataX);\n        }\n      });\n      //分级管控\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.workInfo)({\n        pageNum: 1,\n        pageSize: 9,\n        type: localStorage.getItem('deptLevel')\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.data;\n          _this.controlList = data.list;\n          _this.controlTitle = data.title;\n        }\n      });\n      //安全检查批次\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.indexListRelease)({\n        pageNum: 1,\n        pageSize: 10\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.rows;\n          let list = [];\n          let num = 0;\n          if (data.length < 10) {\n            for (var i = 0; i < 10; i++) {\n              if (num == data.length) {\n                num = 0;\n              }\n              list.push(data[num]);\n              num++;\n            }\n            _this.inspectBatchList = list;\n          } else {\n            _this.inspectBatchList = data;\n          }\n        }\n      });\n      //实验室信息\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.mySub)({}).then(res => {\n        if (res.code == 200) {\n          let data = res.data;\n          _this.labInfoList = data;\n          /* _this.controlList=data.list\r\n           _this.controlTitle=data.title*/\n        }\n      });\n    },\n\n    //工作通知\n    infoFun: function () {\n      let _this = this;\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.listCollegeTz)({\n        pageNum: 1,\n        pageSize: 4,\n        notifyType: 2\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.rows;\n          _this.infoList = data;\n        }\n      });\n    },\n    //工作计划\n    workPlanFun: function () {\n      let _this = this;\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.listCollegeJh)({\n        pageNum: 1,\n        pageSize: 10,\n        notifyType: 1\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.rows;\n          _this.planList = data;\n          //_this.planTitle=res.data.list.title\n        }\n      });\n    },\n\n    //安全检查\n    safetyInspectFun: function () {\n      let _this = this;\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.indexCollegeListCheck)({\n        pageNum: 1,\n        pageSize: 10\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.rows;\n          _this.inspectList = data;\n          for (var i = 0; i < data.length; i++) {\n            _this.inspecremark = data[0].remark;\n            _this.inspeccheckWzg = data[0].listVo[0].checkWzg;\n            _this.inspeccheckYzg = data[0].listVo[0].checkYzg;\n            _this.inspeccheckZs = data[0].listVo[0].checkZs;\n            _this.laboratoryId = data[0].id;\n          }\n        }\n      });\n    },\n    //获取报警信息\n    warningInfoFun: function () {\n      let _this = this;\n      (0,_api_http__WEBPACK_IMPORTED_MODULE_1__.groupGetList)({\n        status: 1\n      }).then(res => {\n        if (res.code == 200) {\n          let data = res.data;\n          if (res.data.length > 0) {\n            _this.warningList = data;\n            if (res.data.length == 1) {\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.left_b_b').css('display', 'none');\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk').css('display', 'none');\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk_one').css('display', 'block');\n            } else if (res.data.length > 1) {\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk').css('display', 'block');\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk_one').css('display', 'none');\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.left_b_t').css('display', 'none');\n              jquery__WEBPACK_IMPORTED_MODULE_3___default()('.left_b_b').css('display', 'none');\n            }\n          } else {\n            jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk').css('display', 'none');\n            jquery__WEBPACK_IMPORTED_MODULE_3___default()('.risk_one').css('display', 'none');\n            jquery__WEBPACK_IMPORTED_MODULE_3___default()('.left_b_b').css('display', 'block');\n          }\n        }\n      });\n    },\n    /*人员违规统计*/\n    illegalFun: function (illegalX, illegalData) {\n      let illegalOption = {\n        grid: {\n          left: '6%',\n          right: '14%',\n          bottom: '3%',\n          top: '14%',\n          containLabel: true\n        },\n        xAxis: {\n          type: 'category',\n          boundaryGap: false,\n          axisLabel: {\n            //rotate:(-10),\n            textStyle: {\n              //改变X轴字体颜色\n              color: '#fff',\n              fontSize: 14,\n              align: 'left' //**\n            }\n          },\n\n          axisTick: {\n            //去掉X轴刻度\n            show: false\n          },\n          axisLine: {\n            show: true,\n            lineStyle: {\n              color: '#848cae',\n              //改变X轴颜色\n              width: 2\n            }\n          },\n          data: illegalX\n        },\n        yAxis: {\n          type: 'value',\n          splitLine: {\n            show: true,\n            lineStyle: {\n              color: '#314288',\n              opacity: '.2'\n            }\n          },\n          axisLabel: {\n            formatter: '{value}',\n            textStyle: {\n              color: '#fff'\n            }\n          },\n          axisTick: {\n            show: false\n          },\n          axisLine: {\n            lineStyle: {\n              color: '#848cae',\n              width: 2\n            }\n          }\n        },\n        series: [{\n          data: illegalData,\n          label: {\n            show: true,\n            color: '#fff',\n            formatter: function (data) {\n              return data.value;\n            }\n          },\n          type: 'line',\n          smooth: true,\n          //让折线平滑\n          symbolSize: 8,\n          //拐点圆的大小\n          itemStyle: {\n            normal: {\n              color: \"#917FFF\",\n              lineStyle: {\n                width: 4,\n                type: 'solid' //'dotted'虚线 'solid'实线\n              }\n            }\n          },\n\n          areaStyle: {\n            normal: {\n              color: new echarts__WEBPACK_IMPORTED_MODULE_4__.graphic.LinearGradient(0, 0, 0, 1, [{\n                offset: 0,\n                color: '#917FFF'\n              }, {\n                offset: 1,\n                color: 'rgba(0, 0, 0, 0.5)'\n              }])\n            }\n          }\n        }]\n      };\n      var left_m_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('left_b_t_l_b'));\n      left_m_b.setOption(illegalOption);\n      //定时动画\n      clearInterval(chartReload);\n      var chartReload = setInterval(function () {\n        left_m_b.clear();\n        left_m_b.setOption(illegalOption);\n      }, 1000 * 6);\n    },\n    /*安全准入办理统计*/\n    admittanceFun: function (dataX, dataValue) {\n      var paperDataURI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAABqCAYAAAC1StHGAAAAAXNSR0IArs4c6QAAAx9JREFUWEfFmVlv00AUhc+1E6ep6AK8AC/8A/4E7zzywjPiiQdU9kVICCEEiH0pRYAoKkuhLGUTW1ERQuyV+A1tQyElblrsxok9aCYOWCVIIacSVxpFGXu+OfeM72icCHT0uQtTpfIKqchalcZKlUV75FiibDGXESrYQaTER1EqGFK26qlk0p+xprMgGCgsR6DWiS2rYallykIWFmAaYgAUEME0ieAjlHGJVH/kyFlB/1QvJFoFCx2w4zEqMbaqAZpheDEIEaYQWoOCa4VJ2FhkbtI36GZmrxN6sAb9gokrdnc+H3bai5GOLySVJxl6UC30JAGQcsOCtHeNuqUlTkd5aQqRI7/Trqmpya99KkBKCk6ugpZcqSgd60c9JchGjoWw00bYbiHMClRGAMuqyo0iSKBg+RFSxQi2G8EKIp2tL20bxjxRKmvMkViB1HFRKUAlVkX0V/GlrUsDkDXpGZOU8TGJqKVv+vUksclKtIKuMQ+IAUmTkqbVjJ3bp1NYsHHck7mAxIIkmXMXVhnApnEPtRT+svx1u6t2+NK6ub6CRlhGQesWEpDdmvvTxEamr97jS8u2XF0TG2GYFFq2s4AdJCCz8wvnQWbX/wY4rIL07gnOAwOQOdXYyENQ3aF8Se2ZaK6YqiUeA+qUc4MifLH3fuUUGACjwNpHKjAARoHs/8Z5YACMAhwgFRgApeBgngQcynMm4jCr4AgLODpJenCMBRxnASe+kymcZAGnWMBpFnCmQHrQzQLOsoAeFnDOJT0475LlfGE+ANSWdrHoAap62P7nEF9wqehBH/ebCX3cNwBKQS8LuDxNKuibJj3QAMqDKyzg6gyp4PoM6YEGUB70swpu/CAV3GQBAyzgFgu4zQLueKSJd1nAIAu4xwLu+6QHD1jAQxbwiAU89sn94MksCXjKAp6xgOfzAaD2xKFZ8ojzggUMaw+afP3Xb+/QAOqIM1wiq/FliUzh1XwAKA9eswo0gFLwJiDLWQNoBRTgrU6BeZTfsSm8ZwEfymQtGECTHuhfdfGRBXxiASPlADD/sDQTZcFIxQWU08xoQIKf1XEgxrNrNF0AAAAASUVORK5CYII=';\n      var admittanceOption = {\n        grid: {\n          left: '3%',\n          right: '4%',\n          bottom: '3%',\n          top: '16%',\n          containLabel: true\n        },\n        \"xAxis\": [{\n          \"type\": \"category\",\n          \"data\": dataX,\n          /*\"axisTick\": {\r\n              \"alignWithLabel\": true\r\n          },*/\n          axisTick: {\n            show: false\n          },\n          \"nameTextStyle\": {\n            \"color\": \"#82b0ec\"\n          },\n          \"axisLine\": {\n            show: true,\n            \"lineStyle\": {\n              \"color\": \"#486CC2\",\n              width: 2\n            }\n          },\n          \"axisLabel\": {\n            \"textStyle\": {\n              \"color\": \"#fff\",\n              fontSize: 14\n            }\n            //margin: 20\n          }\n        }],\n\n        \"yAxis\": [{\n          axisTick: {\n            show: false\n          },\n          //坐标轴\n          \"axisLine\": {\n            show: true,\n            \"lineStyle\": {\n              \"color\": \"#486CC2\",\n              width: 2\n            }\n          },\n          //坐标值标注\n          axisLabel: {\n            show: true,\n            textStyle: {\n              color: '#fff',\n              fontSize: 16\n            }\n          },\n          //分格线\n          splitLine: {\n            show: false,\n            lineStyle: {\n              color: '#4784e8',\n              type: 'dashed',\n              opacity: 0.4\n            }\n          }\n        }],\n        series: [{\n          label: {\n            normal: {\n              show: true,\n              position: 'top',\n              textStyle: {\n                color: '#fff'\n              }\n            }\n          },\n          data: dataValue,\n          type: \"pictorialBar\",\n          barMaxWidth: \"20\",\n          symbolPosition: \"end\",\n          // symbol: \"diamond\",\n          symbol: 'image://' + paperDataURI,\n          // symbolOffset: [0, \"-50%\"],\n          //symbolSize: [30, 22],\n          zlevel: 2\n        }],\n        tooltip: {\n          trigger: \"axis\",\n          show: false\n        }\n      };\n      var left_b_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('left_b_t_r_b'));\n      left_b_b.setOption(admittanceOption);\n      //定时动画\n      clearInterval(chartReload2);\n      var chartReload2 = setInterval(function () {\n        left_b_b.clear();\n        left_b_b.setOption(admittanceOption);\n      }, 1000 * 4);\n    },\n    /*预案执行统计*/\n    planFun: function (dataX, dataValue) {\n      var paperDataURI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAACECAYAAACUGttzAAAAAXNSR0IArs4c6QAABg9JREFUaEO1mktvHEUUhc/tdgLJMpuxY8dJTByyhR2IJVt2rPkZbJEgJCCeAgQCCQQCIRAg3iAEAoEgAsczjp3YIeRlO2BFkRC2FM/Y8+iLbnW1M7G7qvpW4tnYnsfnM6dO3bpV3YTND+ZkdLp1P5AcB+hegGnLe7Y8QUCSAgMJaHUFdO1i++YPMaej0937GL0nwHiACANhKHIoJUBzGenSLKi50rkBnuQdIzvXH0yYH+eM7iFCWh1KoJWrSJbmQGvX5R+1DHjkBO9KdrcfAvNjTDgiXywMJSBNAc6QXLuE5Oo58ztI1FOLRk6s7MHuXQ8T86MgHgPD4Wnf00TAQArqtJD+PQdaXgILNBkAyWtAi0anVo8x6BGAhl0qCSwqAPMzAScpY/U/Tv+ZI2ouU/4a2fcYSovuPnvlXzD2uKE3XmH5+EAK7nWzdn16jXudOylNEzNwNz9adGRuYQ3AHWFP7TvE1yzjtYlJRpISJUmZdaJ4sUmMXZXBSQIwY22ikX97+XvrIwKcJkDGWJ9omKnjBB+ei1PctmC4FMeCg1aowBILsWKzx/J8/4PQosOzcVaEFZ9ebBKUqUCFVByOAYsVJwNxG59RKrYety3YmQo12E6Q9mQjH66yuMngjU8rFRsQQxSbMNxWcCWPTy02oUmF9Xi9f/DKcjyuBVfxWOrx+JRScZ/HZq1x1YooMDPWJRW+6naooVRc5nFZPVaD+zz21uPK4GLkq3gsE+RQXWmFVez1WMB3xYJ9RciAJ5WK7ZontYKJytc8Az6pBBeDV58ycSvpKfKGJRo8acGuCTI2caUJsLqv6DSm3GVTFOdgxdKUJuCM0bUzzzmlx/640oS2EwKjEwT/rlS8MXiBWnFwW8EaK6zHnUa+5jl7t4MnIq0QsK8ex4LX63XTxZPMxLKyeeA3ZSqKvqIeGLwDvyqtsLXCeOyzYr8SbL56xmgXYEryvc3mPYgBa1JR5HgqkIr9vyjBEjdmdE418g2hqwjt/1npsVUsYGfvZjaQSnDhcXDwDFjpsVjRE8W+Qj/6kxJsc9ydDlnxY5zHQfA+JViKjin0IcUGfCseu+K274ftskILtlO6W6TCpXjk+wpW2DMQMyFsKnohjyuB+wuMnXm96Xp+ouJU/F0Fxf1gWyt6M3mhN+CyPciIFmwVm7j56nFVcCGqyHFvJgAe/lYfN6kVmVjh83j4mziw8dgL/loPloOQrs8K6Y/3fqUDG4+lbIY81oIlXsbj04GyufdLneI8t4zemRD4i0iwKJYmaOvxo+S7RUOf68CFx8YK19IUAy6syEKDN/SZTvEG+IzNcZkVsvwPfaoF56fc2exkPkGc4E+0+zw5us/Q8yk2HqvB+WGTF2ysUIDNiXcxQWZtjl1xG/xYa0U+QTIB+zqhwY8iwXOBmWfAyr7CKPaBZfAGP4wAw4K9VnwQacXZkMexYLEiqDjWY1d1kxzX3tdZYXIc8pgLcIziPz1WGPB7OsUb1U3A+S69fMsbDZbB83r8bqRiiVsQHOPxuUDcau9EKhawb2caDS4Gz9Uf196OVOyLm5kgAt4Wj9+KAMvM+yvkcQxY6rGAfUWoFgsOxu3NCCsqKX4jIhWy/DussMdDLarFgKWjP9+wF9BvLkK3DA4P3usRVojH50OpeC0CLDkWsLcex4CN4kAbWwuATb9m14iNK47M4POBNrb2qt+Kzftvc78KZ+ALIfArC7rDf3utKbsQGrwYsHh88XaDzapswfkS4lilX1ZaIeBKil9Sgu3ONGzFtoFfjFBceOwt9DHgwmNvw6IFb06Fa9dUe0FpRX8qvIqfV4KLVFwKTZBtAz+3oG9YJBUexWQ6oWeVVtjB48shKwQc02L1gUvu8mrR4DNxinshxbFgn8fmurQBa6wwZZKRzYc2kE/HWbE9YKkVPsVm9/+UUnEx8wTs6iuiwEWtCHp8fF6/Shsr7E0FZWueUawFF2XzcuA2iMFjSsUFuFDs2kurwUWOF0KKn4xUfKvgLQVG7tZFhmxBZp7nbLN29HKbQDvK2pnS5wqPfYoZbaodnV8mYKcavDhlL3SXtljX/wdq6JsQCOkG3QAAAABJRU5ErkJggg==';\n      var planOption = {\n        /*内边距*/\n        grid: {\n          top: '14%',\n          left: '2%',\n          right: '2%',\n          bottom: '5%',\n          containLabel: true\n        },\n        xAxis: {\n          data: dataX,\n          //坐标轴\n          axisLine: {\n            lineStyle: {\n              \"color\": \"#486CC2\",\n              width: 2\n            }\n          },\n          axisTick: {\n            show: false\n          },\n          //坐标值标注\n          axisLabel: {\n            show: true,\n            textStyle: {\n              color: '#fff',\n              fontSize: 14\n            }\n          }\n        },\n        yAxis: [{\n          axisTick: {\n            show: false\n          },\n          //坐标轴\n          axisLine: {\n            lineStyle: {\n              \"color\": \"#486CC2\",\n              width: 2\n            }\n          },\n          //坐标值标注\n          axisLabel: {\n            show: true,\n            textStyle: {\n              color: '#fff',\n              fontSize: 16\n            }\n          },\n          //分格线\n          splitLine: {\n            show: false,\n            lineStyle: {\n              color: '#4784e8'\n            }\n          }\n        }],\n        series: [{\n          label: {\n            normal: {\n              show: true,\n              position: 'top',\n              textStyle: {\n                color: '#fff'\n              }\n            }\n          },\n          data: dataValue,\n          type: \"pictorialBar\",\n          barMaxWidth: \"20\",\n          symbolPosition: \"end\",\n          // symbol: \"diamond\",\n          symbol: 'image://' + paperDataURI,\n          // symbolOffset: [0, \"-50%\"],\n          //symbolSize: [30, 22],\n          zlevel: 2\n        }],\n        tooltip: {\n          trigger: \"axis\",\n          show: false\n        }\n      };\n      var right_t_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('right_t_b'));\n      right_t_b.setOption(planOption);\n      //定时动画\n      clearInterval(chartReload3);\n      var chartReload3 = setInterval(function () {\n        right_t_b.clear();\n        right_t_b.setOption(planOption);\n      }, 1000 * 4);\n    },\n    /*安全隐患统计*/\n    safetyFun: function (dataX, dataValue) {\n      let safetyOption = {\n        tooltip: {\n          /*trigger: 'axis',\r\n          axisPointer: {\r\n              type: 'shadow'\r\n          }*/\n        },\n        grid: {\n          left: '3%',\n          right: '4%',\n          bottom: '3%',\n          top: '14%',\n          containLabel: true\n        },\n        xAxis: {\n          type: 'value',\n          axisLabel: {\n            show: false,\n            textStyle: {\n              //改变X轴字体颜色\n              color: '#1463E3'\n            }\n          },\n          axisTick: {\n            //去掉X轴刻度\n            show: false\n          },\n          axisLine: {\n            show: false,\n            lineStyle: {\n              color: '#fff' //改变X轴颜色\n            }\n          },\n\n          splitLine: {\n            // 分隔线\n            show: false,\n            // 默认显示，属性show控制显示与否\n            lineStyle: {\n              // 属性lineStyle（详见lineStyle）控制线条样式\n              color: ['rgba(44,118,239,1)'],\n              width: 1,\n              type: 'solid',\n              opacity: 0.1\n            }\n          },\n          boundaryGap: [0, 0.01]\n        },\n        yAxis: {\n          type: 'category',\n          axisLabel: {\n            textStyle: {\n              //改变X轴字体颜色\n              color: '#fff',\n              fontSize: 14\n            }\n          },\n          axisTick: {\n            //去掉X轴刻度\n            show: false\n          },\n          axisLine: {\n            show: false,\n            lineStyle: {\n              color: '#2C76EF' //改变X轴颜色\n            }\n          },\n\n          data: dataX\n        },\n        series: [{\n          name: '安全隐患',\n          type: 'bar',\n          barGap: 0.1,\n          barMaxWidth: '20%',\n          label: {\n            normal: {\n              show: true,\n              position: 'right',\n              fontSize: 14,\n              textStyle: {\n                color: '#fff'\n              }\n            }\n          },\n          itemStyle: {\n            normal: {\n              barBorderRadius: 5,\n              //统计条弧度\n              color: {\n                colorStops: [{\n                  offset: 0,\n                  color: '#1CC3F5' // 0% 处的颜色\n                }, {\n                  offset: 1,\n                  color: '#006FFF' // 100% 处的颜色\n                }],\n\n                globalCoord: false // 缺省为 false\n              }\n            }\n          },\n\n          data: dataValue\n        }]\n      };\n      var left_t_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('right_m_l_b'));\n      left_t_b.setOption(safetyOption);\n      //定时动画\n      clearInterval(chartReload4);\n      var chartReload4 = setInterval(function () {\n        left_t_b.clear();\n        left_t_b.setOption(safetyOption);\n      }, 1000 * 5);\n    },\n    /*危险源统计*/\n    riskFun: function (dataX) {\n      let riskOption = {\n        color: ['#58aecf', '#3b43cc', '#84bb77', '#ebb474', '#9b43ce'],\n        //颜色\n        legend: {\n          type: 'scroll',\n          orient: 'vertical',\n          itemGap: 20,\n          itemWidth: 14,\n          textStyle: {\n            color: '#fff',\n            fontSize: 14\n          },\n          left: '5%',\n          top: '20%'\n        },\n        series: [{\n          type: 'pie',\n          radius: ['30%', '70%'],\n          center: ['74%', '50%'],\n          roseType: 'area',\n          label: {\n            normal: {\n              show: false\n            }\n          },\n          itemStyle: {\n            borderRadius: 0\n          },\n          data: dataX\n          /*data: [\r\n              { value: 40, name: '危险品  40%' },\r\n              { value: 38, name: '气瓶数量  30%' },\r\n              { value: 32, name: '冷热设备数量  20%' },\r\n              { value: 30, name: '特种设备数量  15%' },\r\n              { value: 28, name: '其他' },\r\n            ]*/\n        }]\n      };\n\n      var right_m_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('right_m_r_b'));\n      right_m_b.setOption(riskOption);\n      //定时动画\n      clearInterval(chartReload5);\n      var chartReload5 = setInterval(function () {\n        right_m_b.clear();\n        right_m_b.setOption(riskOption);\n      }, 1000 * 6);\n    },\n    /*实验室分级统计*/\n    classifyFun(dataX) {\n      var colorList = ['#d02c2c', '#ff9b17', '#0183fa', '#0a9419'];\n      let classifyOption = {\n        series: [{\n          type: 'pie',\n          z: 3,\n          center: ['45%', '40%'],\n          radius: ['40%', '55%'],\n          clockwise: true,\n          avoidLabelOverlap: true,\n          hoverOffset: 15,\n          itemStyle: {\n            normal: {\n              color: function (params) {\n                return colorList[params.dataIndex];\n              }\n            }\n          },\n          label: {\n            normal: {\n              formatter: params => {\n                return '{b|' + params.name + '}' + '{c|(' + params.value + ')}' + '{a|' + params.percent.toFixed(0) + ' %}';\n              },\n              borderWidth: 0,\n              borderRadius: 4,\n              padding: [0, -10],\n              height: 30,\n              fontSize: 12,\n              align: 'center',\n              color: '#fff',\n              rich: {\n                b: {\n                  fontSize: 12,\n                  lineHeight: 12,\n                  color: '#fff'\n                },\n                c: {\n                  fontSize: 12,\n                  lineHeight: 12,\n                  color: '#fff'\n                },\n                d: {\n                  fontSize: 12,\n                  lineHeight: 12,\n                  color: '#fff'\n                }\n              }\n            }\n          },\n          labelLine: {\n            normal: {\n              length: 20,\n              length2: 16,\n              lineStyle: {\n                width: 1,\n                color: '#fff'\n              }\n            }\n          },\n          data: dataX\n        }]\n      };\n      var right_b_r_b_b = echarts__WEBPACK_IMPORTED_MODULE_4__.init(document.getElementById('right_b_r_b_b'));\n      right_b_r_b_b.setOption(classifyOption);\n      //定时动画\n      clearInterval(chartReload6);\n      var chartReload6 = setInterval(function () {\n        right_b_r_b_b.clear();\n        right_b_r_b_b.setOption(classifyOption);\n      }, 1000 * 6);\n    }\n  },\n  beforeMount: function () {\n    //获取到页面传过来的值\n    var afterUrl = window.location.search.substring(1);\n    var identity = afterUrl.substr(9, afterUrl.length);\n    if (identity.length > 0) {\n      //Authorization\n      localStorage.setItem('Authorization', identity);\n      localStorage.setItem('deptLevel', '2'); ////这个是登陆后，刘波给你的院校的类型\n    } else {}\n  },\n  mounted: function () {\n    let _this = this;\n    _this.getAjaxData();\n    _this.warningInfoFun();\n    _this.infoFun();\n    _this.workPlanFun();\n    _this.safetyInspectFun();\n    _this.initSwiper();\n    _this.subscriptionMQTT();\n    // let timer = setInterval(() => {\n    //     _this.getAjaxData();\n    //     _this.infoFun();\n    //     _this.workPlanFun();\n    //     _this.safetyInspectFun();\n    // },12000)\n    //中间部分点击方法\n    jquery__WEBPACK_IMPORTED_MODULE_3___default()(\".left_t_c li\").click(function () {\n      let index = jquery__WEBPACK_IMPORTED_MODULE_3___default()(\".left_t_c li\").index(this);\n      _this.mySwiper.slideTo(index, 1000, false);\n      jquery__WEBPACK_IMPORTED_MODULE_3___default()(this).parent().children().removeClass();\n      jquery__WEBPACK_IMPORTED_MODULE_3___default()(this).addClass(\"checked_li\");\n    });\n  }\n});\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/_vue@3.2.40@vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _assets_image_bg_png__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/assets/image/bg.png */ \"./src/assets/image/bg.png\");\n/* harmony import */ var _assets_image_index_zw_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/assets/image/index_zw.png */ \"./src/assets/image/index_zw.png\");\n/* harmony import */ var _assets_image_index_icon3_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/assets/image/index_icon3.png */ \"./src/assets/image/index_icon3.png\");\n/* harmony import */ var _assets_image_index_icon4_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/assets/image/index_icon4.png */ \"./src/assets/image/index_icon4.png\");\n/* harmony import */ var _assets_image_index_icon5_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/assets/image/index_icon5.png */ \"./src/assets/image/index_icon5.png\");\n/* harmony import */ var _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/assets/image/index_icon8.png */ \"./src/assets/image/index_icon8.png\");\n/* harmony import */ var _assets_image_index_icon12_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/assets/image/index_icon12.png */ \"./src/assets/image/index_icon12.png\");\n/* harmony import */ var _assets_image_index_icon14_png__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/assets/image/index_icon14.png */ \"./src/assets/image/index_icon14.png\");\n\n\n\n\n\n\n\n\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-7eb2bc79\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n  class: \"main\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"bg_img\",\n  src: _assets_image_bg_png__WEBPACK_IMPORTED_MODULE_1__\n}, null, -1 /* HOISTED */));\nconst _hoisted_3 = {\n  class: \"header\"\n};\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"header_l\",\n  src: _assets_image_index_zw_png__WEBPACK_IMPORTED_MODULE_2__\n}, null, -1 /* HOISTED */));\nconst _hoisted_5 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"header_c\"\n}, \"实验室安全智能监测与控制系统\", -1 /* HOISTED */));\nconst _hoisted_6 = {\n  class: \"header_r1\"\n};\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"header_r1_l\",\n  src: _assets_image_index_icon3_png__WEBPACK_IMPORTED_MODULE_3__\n}, null, -1 /* HOISTED */));\nconst _hoisted_8 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"环境与气候研究院\", -1 /* HOISTED */));\nconst _hoisted_9 = {\n  class: \"left\"\n};\nconst _hoisted_10 = {\n  class: \"left_t\"\n};\nconst _hoisted_11 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_t_l\",\n  src: _assets_image_index_icon5_png__WEBPACK_IMPORTED_MODULE_5__\n}, null, -1 /* HOISTED */));\nconst _hoisted_12 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_t_l1\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_13 = {\n  class: \"left_t_c\"\n};\nconst _hoisted_14 = {\n  class: \"left_t_n\"\n};\nconst _hoisted_15 = {\n  class: \"swiper-container\"\n};\nconst _hoisted_16 = {\n  class: \"swiper-wrapper\"\n};\nconst _hoisted_17 = {\n  class: \"swiper-slide\"\n};\nconst _hoisted_18 = {\n  key: 0,\n  class: \"left_t_r\"\n};\nconst _hoisted_19 = [\"onClick\"];\nconst _hoisted_20 = {\n  class: \"left_t_r_t\"\n};\nconst _hoisted_21 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_t_r_t_r\",\n  src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__\n}, null, -1 /* HOISTED */));\nconst _hoisted_22 = {\n  class: \"left_t_r_b over2\"\n};\nconst _hoisted_23 = {\n  class: \"swiper-slide\"\n};\nconst _hoisted_24 = {\n  key: 0,\n  class: \"left_t_r2\"\n};\nconst _hoisted_25 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_t_r2_m\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"工作内容\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"执行单位\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"执行日期\")], -1 /* HOISTED */));\nconst _hoisted_26 = [\"onClick\"];\nconst _hoisted_27 = {\n  class: \"over\"\n};\nconst _hoisted_28 = {\n  class: \"swiper-slide\"\n};\nconst _hoisted_29 = {\n  class: \"left_t_r3\"\n};\nconst _hoisted_30 = {\n  class: \"left_t_r2_t\"\n};\nconst _hoisted_31 = {\n  class: \"left_t_r2_t2\"\n};\nconst _hoisted_32 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_t_r2_m\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"实验室\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"类型\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"级别\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"隐患排查数\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"已整改\")], -1 /* HOISTED */));\nconst _hoisted_33 = {\n  key: 0,\n  class: \"left_t_r2_b\"\n};\nconst _hoisted_34 = {\n  class: \"over\"\n};\nconst _hoisted_35 = {\n  key: 1,\n  style: {\n    \"position\": \"relative\",\n    \"left\": \"44%\",\n    \"top\": \"8%\",\n    \"color\": \"#fff\"\n  }\n};\nconst _hoisted_36 = {\n  class: \"swiper-slide\"\n};\nconst _hoisted_37 = {\n  key: 0,\n  class: \"left_t_r4\"\n};\nconst _hoisted_38 = {\n  class: \"left_t_r2_t\"\n};\nconst _hoisted_39 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_t_r2_m\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"实验室\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"类型\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"级别\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"计划执行数\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"实际执行数\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"执行率\")], -1 /* HOISTED */));\nconst _hoisted_40 = {\n  key: 0\n};\nconst _hoisted_41 = {\n  key: 0,\n  class: \"controlColorOne\"\n};\nconst _hoisted_42 = {\n  key: 1,\n  class: \"controlColorTow\"\n};\nconst _hoisted_43 = {\n  key: 2,\n  class: \"controlColorThree\"\n};\nconst _hoisted_44 = {\n  key: 3,\n  class: \"controlColorFour\"\n};\nconst _hoisted_45 = {\n  class: \"left_t_r2_b_i6\"\n};\nconst _hoisted_46 = [\"value\"];\nconst _hoisted_47 = {\n  key: 0,\n  style: {\n    \"position\": \"relative\",\n    \"left\": \"44%\",\n    \"top\": \"20%\",\n    \"color\": \"#fff\"\n  }\n};\nconst _hoisted_48 = {\n  class: \"left_b\"\n};\nconst _hoisted_49 = {\n  class: \"left_b_t\"\n};\nconst _hoisted_50 = {\n  class: \"left_b_t_l\"\n};\nconst _hoisted_51 = {\n  class: \"small_title\"\n};\nconst _hoisted_52 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"违规操作统计-本月\", -1 /* HOISTED */));\nconst _hoisted_53 = {\n  class: \"small_title_r\"\n};\nconst _hoisted_54 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_b_t_l_b\",\n  id: \"left_b_t_l_b\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_55 = {\n  class: \"left_b_t_r\"\n};\nconst _hoisted_56 = {\n  class: \"small_title\"\n};\nconst _hoisted_57 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"安全准入办理统计\", -1 /* HOISTED */));\nconst _hoisted_58 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_b_t_r_btn\",\n  src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__\n}, null, -1 /* HOISTED */));\nconst _hoisted_59 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"left_b_t_r_b\",\n  id: \"left_b_t_r_b\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_60 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_b_t1\",\n  src: _assets_image_index_icon12_png__WEBPACK_IMPORTED_MODULE_7__\n}, null, -1 /* HOISTED */));\nconst _hoisted_61 = {\n  class: \"left_b_b\"\n};\nconst _hoisted_62 = {\n  key: 0\n};\nconst _hoisted_63 = {\n  class: \"left_b_b_t\"\n};\nconst _hoisted_64 = {\n  class: \"left_b_b_b\"\n};\nconst _hoisted_65 = {\n  class: \"risk\"\n};\nconst _hoisted_66 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  src: _assets_image_index_icon14_png__WEBPACK_IMPORTED_MODULE_8__\n}, null, -1 /* HOISTED */));\nconst _hoisted_67 = {\n  class: \"risk_li_l\"\n};\nconst _hoisted_68 = {\n  class: \"risk_li_l2\"\n};\nconst _hoisted_69 = {\n  class: \"risk_li_l3\"\n};\nconst _hoisted_70 = {\n  class: \"risk_li_l4\"\n};\nconst _hoisted_71 = [\"onClick\"];\nconst _hoisted_72 = {\n  class: \"risk_one\"\n};\nconst _hoisted_73 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  src: _assets_image_index_icon14_png__WEBPACK_IMPORTED_MODULE_8__\n}, null, -1 /* HOISTED */));\nconst _hoisted_74 = {\n  class: \"risk_li_l\"\n};\nconst _hoisted_75 = {\n  class: \"risk_li_l2\"\n};\nconst _hoisted_76 = {\n  class: \"risk_li_l3\"\n};\nconst _hoisted_77 = {\n  class: \"risk_li_l4\"\n};\nconst _hoisted_78 = [\"onClick\"];\nconst _hoisted_79 = {\n  class: \"right\"\n};\nconst _hoisted_80 = {\n  class: \"right_t\"\n};\nconst _hoisted_81 = {\n  class: \"small_title\"\n};\nconst _hoisted_82 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"风险预警统计\", -1 /* HOISTED */));\nconst _hoisted_83 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"right_t_btn\",\n  src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__\n}, null, -1 /* HOISTED */));\nconst _hoisted_84 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"right_t_b\",\n  id: \"right_t_b\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_85 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_b_t1\",\n  src: _assets_image_index_icon12_png__WEBPACK_IMPORTED_MODULE_7__\n}, null, -1 /* HOISTED */));\nconst _hoisted_86 = {\n  class: \"right_m\"\n};\nconst _hoisted_87 = {\n  class: \"right_m_l\"\n};\nconst _hoisted_88 = {\n  class: \"small_title\"\n};\nconst _hoisted_89 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"安全隐患统计-本月\", -1 /* HOISTED */));\nconst _hoisted_90 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"right_m_l_btn\",\n  src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__\n}, null, -1 /* HOISTED */));\nconst _hoisted_91 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"right_m_l_b\",\n  id: \"right_m_l_b\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_92 = {\n  class: \"right_m_r\"\n};\nconst _hoisted_93 = {\n  class: \"small_title\"\n};\nconst _hoisted_94 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"危险源统计\", -1 /* HOISTED */));\nconst _hoisted_95 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"right_m_r_btn\",\n  src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__\n}, null, -1 /* HOISTED */));\nconst _hoisted_96 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"right_m_r_b\",\n  id: \"right_m_r_b\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_97 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n  class: \"left_b_t1\",\n  src: _assets_image_index_icon12_png__WEBPACK_IMPORTED_MODULE_7__\n}, null, -1 /* HOISTED */));\nconst _hoisted_98 = {\n  class: \"right_b\"\n};\nconst _hoisted_99 = {\n  class: \"right_b_l\"\n};\nconst _hoisted_100 = {\n  class: \"small_title\"\n};\nconst _hoisted_101 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"进入实验室人员\", -1 /* HOISTED */));\nconst _hoisted_102 = {\n  class: \"small_title_r\"\n};\nconst _hoisted_103 = {\n  class: \"right_b_l_b\"\n};\nconst _hoisted_104 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"right_b_l_b_t\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"实验室名称\"), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"当前人数\")], -1 /* HOISTED */));\nconst _hoisted_105 = {\n  key: 0,\n  class: \"right_b_l_b_b\"\n};\nconst _hoisted_106 = {\n  key: 1,\n  style: {\n    \"position\": \"absolute\",\n    \"left\": \"36%\",\n    \"top\": \"38%\",\n    \"color\": \"#fff\"\n  }\n};\nconst _hoisted_107 = {\n  class: \"right_b_r\"\n};\nconst _hoisted_108 = {\n  class: \"small_title\"\n};\nconst _hoisted_109 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"small_title_l\"\n}, \"实验室分类分级统计\", -1 /* HOISTED */));\nconst _hoisted_110 = {\n  class: \"small_title_r\",\n  style: {\n    \"width\": \"100px\"\n  }\n};\nconst _hoisted_111 = {\n  class: \"right_b_r_b\"\n};\nconst _hoisted_112 = {\n  class: \"right_b_r_b_t\"\n};\nconst _hoisted_113 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, null, -1 /* HOISTED */));\nconst _hoisted_114 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n  class: \"right_b_r_b_b\",\n  id: \"right_b_r_b_b\"\n}, null, -1 /* HOISTED */));\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [_hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [_hoisted_4, _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [_hoisted_7, _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    class: \"header_r1_r\",\n    src: _assets_image_index_icon4_png__WEBPACK_IMPORTED_MODULE_4__,\n    onClick: _cache[0] || (_cache[0] = $event => $options.openBackManageUrl())\n  })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [_hoisted_11, _hoisted_12, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"li\", {\n    class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n      'checked_li': $data.checkedNum == 0\n    })\n  }, \"校院通知\", 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"li\", {\n    class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n      'checked_li': $data.checkedNum == 1\n    })\n  }, \"工作计划\", 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"li\", {\n    class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n      'checked_li': $data.checkedNum == 2\n    })\n  }, \"安全检查\", 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"li\", {\n    class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n      'checked_li': $data.checkedNum == 3\n    })\n  }, \"分级管控\", 2 /* CLASS */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"院校通知\"), $data.infoList ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_18, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.infoList, (item, index) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index,\n      onClick: $event => $options.openInfoUrl(item)\n    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_20, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.title), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.company), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.createTime.substring(0, 10)), 1 /* TEXT */), _hoisted_21]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_22, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.conAbstract), 1 /* TEXT */)], 8 /* PROPS */, _hoisted_19);\n  }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_23, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"工作计划\"), $data.planList ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_24, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"<div class=\\\"left_t_r2_t\\\">\\r\\n                    <i>{{planTitle}}</i>\\r\\n                  </div>\"), _hoisted_25, ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.planList, (item, index2) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n      class: \"left_t_r2_b\",\n      key: index2\n    }, [index2 < 7 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: 0,\n      onClick: $event => $options.openInfoUrl(item)\n    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.title), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.company), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.executionTime), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n      src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n      onClick: _cache[1] || (_cache[1] = $event => $options.openPlanUrl())\n    })], 8 /* PROPS */, _hoisted_26)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]);\n  }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_28, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"安全检查\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_29, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_30, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.inspecremark) + \"-安全检查\", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n    onClick: _cache[2] || (_cache[2] = $event => $options.openinspectUrl())\n  })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_31, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"本次隐患排查数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.inspeccheckZs), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"历史遗留：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.inspeccheckWzg), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"本次已整改：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.inspeccheckYzg), 1 /* TEXT */)]), _hoisted_32, $data.inspectList ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_33, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.inspectList, (item, index3) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index3\n    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_34, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.laboratoryName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.typeName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.typeLevel), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.checkZs), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.checkYzg), 1 /* TEXT */)]);\n  }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.inspectList.length <= 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_35, \"暂无数据\")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_36, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"分级管控\"), $data.controlList ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_37, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_38, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.controlTitle), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n    onClick: _cache[3] || (_cache[3] = $event => $options.openControlUrl())\n  })]), _hoisted_39, ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.controlList, (item, index4) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n      class: \"left_t_r2_b\",\n      key: index4\n    }, [index4 < 7 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", _hoisted_40, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.subName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.typeName), 1 /* TEXT */), item.levelName == '一级' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_41, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.levelName), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), item.levelName == '二级' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_42, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.levelName), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), item.levelName == '三级' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_43, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.levelName), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), item.levelName == '四级' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", _hoisted_44, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.levelName), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.planNum), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.finishedNum), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_45, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"progress\", {\n      value: item.rateNum,\n      max: \"100\"\n    }, null, 8 /* PROPS */, _hoisted_46), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.rateNum) + \"%\", 1 /* TEXT */)])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]);\n  }), 128 /* KEYED_FRAGMENT */)), $data.controlList.length <= 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_47, \"暂无数据\")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_48, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_49, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_50, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_51, [_hoisted_52, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_53, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"总违规人数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.resultCount), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    class: \"left_b_t_l_btn\",\n    src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n    onClick: _cache[4] || (_cache[4] = (...args) => $options.left_b_t_l_btn && $options.left_b_t_l_btn(...args))\n  })])]), _hoisted_54]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_55, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_56, [_hoisted_57, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n    class: \"small_title_r\",\n    onClick: _cache[5] || (_cache[5] = (...args) => $options.left_b_t_r_btn && $options.left_b_t_r_btn(...args))\n  }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"准入办理总人数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.listcount), 1 /* TEXT */), _hoisted_58])]), _hoisted_59])]), _hoisted_60, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"实验室信息\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_61, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"ul\", {\n    id: \"move_ani\",\n    style: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeStyle)(`animation-duration: ${$data.labInfoList.length / 0.1}s;height:${$data.labInfoList.length * 66 * 1.7}px;`)\n  }, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.labInfoList, (item, index8) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n      key: index8\n    }, [item.sensorFunctionStatusList.length > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", _hoisted_62, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_63, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.room), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.address), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"<i>正常</i>\")]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_64, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(item.sensorFunctionStatusList, (item2, index) => {\n      return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"i\", {\n        key: index\n      }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item2.funcName) + \"：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item2.formatVal), 1 /* TEXT */);\n    }), 128 /* KEYED_FRAGMENT */))])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n  }), 128 /* KEYED_FRAGMENT */))], 4 /* STYLE */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"风险预案\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_65, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\":class=\\\"index==1:one_top risk_li\\\"\"), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.warningList, (item, index7) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index7\n    }, [_hoisted_66, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_67, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.groupName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_68, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.roomName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_69, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.buildName) + \" \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.floorName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_70, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.sensorStr), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n      onClick: $event => $options.openRiskPlanUrl(item)\n    }, \"查看详情 >>\", 8 /* PROPS */, _hoisted_71)]);\n  }), 128 /* KEYED_FRAGMENT */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_72, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\":class=\\\"index==1:one_top risk_li\\\"\"), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.warningList, (item, index9) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index9\n    }, [_hoisted_73, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_74, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.groupName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_75, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.roomName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_76, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.buildName) + \" \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.floorName), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", _hoisted_77, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.sensorStr), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n      onClick: $event => $options.openRiskPlanUrl(item)\n    }, \"查看详情 >>\", 8 /* PROPS */, _hoisted_78)]);\n  }), 128 /* KEYED_FRAGMENT */))])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_79, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_80, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_81, [_hoisted_82, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n    class: \"small_title_r\",\n    onClick: _cache[6] || (_cache[6] = (...args) => $options.right_t_btn && $options.right_t_btn(...args))\n  }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"风险预警总数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.planResultCount), 1 /* TEXT */), _hoisted_83])]), _hoisted_84, _hoisted_85]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_86, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_87, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_88, [_hoisted_89, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n    class: \"small_title_r2\",\n    onClick: _cache[7] || (_cache[7] = (...args) => $options.right_m_l_btn && $options.right_m_l_btn(...args))\n  }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"隐患总数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.dangerCount), 1 /* TEXT */), _hoisted_90])]), _hoisted_91]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_92, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_93, [_hoisted_94, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n    class: \"small_title_r2\",\n    onClick: _cache[8] || (_cache[8] = (...args) => $options.right_m_r_btn && $options.right_m_r_btn(...args))\n  }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"<i>隐患总数：63</i>\"), _hoisted_95])]), _hoisted_96])]), _hoisted_97, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_98, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_99, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_100, [_hoisted_101, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_102, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, \"总人数：\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.labResultCount), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    class: \"right_b_btn\",\n    src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n    onClick: _cache[9] || (_cache[9] = (...args) => $options.right_b_btn && $options.right_b_btn(...args))\n  })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_103, [_hoisted_104, $data.labList ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_105, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.labList, (item, index10) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index10\n    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.name), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.online), 1 /* TEXT */)]);\n  }), 128 /* KEYED_FRAGMENT */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $data.labList.length <= 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_106, \"暂无数据\")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_107, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"公共小标题\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_108, [_hoisted_109, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_110, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n    class: \"right_b_btn\",\n    src: _assets_image_index_icon8_png__WEBPACK_IMPORTED_MODULE_6__,\n    onClick: _cache[10] || (_cache[10] = (...args) => $options.classifyGrade && $options.classifyGrade(...args))\n  })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_111, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_112, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.labTypeList, (item, index11) => {\n    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"li\", {\n      key: index11\n    }, [_hoisted_113, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.typeName) + \"(\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(item.totalNum) + \")\", 1 /* TEXT */)]);\n  }), 128 /* KEYED_FRAGMENT */))]), _hoisted_114])])])])]);\n}\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B3%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.7.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.7.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.7.1@css-loader/dist/runtime/getUrl.js */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon2.png */ \"./src/assets/image/index_icon2.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon6.png */ \"./src/assets/image/index_icon6.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon7.png */ \"./src/assets/image/index_icon7.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon9.png */ \"./src/assets/image/index_icon9.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon10.png */ \"./src/assets/image/index_icon10.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon13.png */ \"./src/assets/image/index_icon13.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __webpack_require__(/*! @/assets/image/index_icon11.png */ \"./src/assets/image/index_icon11.png\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n*[data-v-7eb2bc79] {\\n  padding: 0;\\n  margin: 0;\\n  box-sizing: border-box;\\n}\\n.over2[data-v-7eb2bc79] {\\n  overflow: hidden;\\n  display: -webkit-box;\\n  text-overflow: ellipsis;\\n  -webkit-line-clamp: 2;\\n  -webkit-box-orient: vertical;\\n}\\n.main[data-v-7eb2bc79] {\\n  width: 100vw;\\n  height: 100vh;\\n  /* background: url(\\\"../img/index_bg.png\\\") no-repeat;\\n   background-size: 100% 100%;*/\\n  position: relative;\\n  left: 0;\\n  top: 0;\\n  z-index: 50;\\n  /*公共小标题*/\\n}\\n.main .bg_img[data-v-7eb2bc79] {\\n  width: 100vw;\\n  height: 100vh;\\n  position: absolute;\\n  left: 0;\\n  top: 0;\\n  z-index: 50;\\n}\\n.main .small_title[data-v-7eb2bc79] {\\n  width: 100%;\\n  display: flex;\\n  justify-content: space-between;\\n}\\n.main .small_title .small_title_l[data-v-7eb2bc79] {\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #1ED0F8;\\n  line-height: 1.6666666667vh;\\n}\\n.main .small_title .small_title_r[data-v-7eb2bc79] {\\n  width: 15.625vw;\\n  text-align: right;\\n}\\n.main .small_title .small_title_r > i[data-v-7eb2bc79] {\\n  width: 10.4166666667vw;\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.2962962963vh;\\n  text-align: right;\\n  margin-right: 0.625vw;\\n}\\n.main .small_title .small_title_r > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n  position: relative;\\n  top: 0vh;\\n}\\n.main .small_title .small_title_r2[data-v-7eb2bc79] {\\n  width: 7.2916666667vw;\\n  text-align: right;\\n}\\n.main .small_title .small_title_r2 > i[data-v-7eb2bc79] {\\n  width: 5.2083333333vw;\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.2962962963vh;\\n  text-align: right;\\n  margin-right: 0.625vw;\\n}\\n.main .small_title .small_title_r2 > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n  position: relative;\\n  top: -0.1851851852vh;\\n}\\n.main .header[data-v-7eb2bc79] {\\n  width: 100%;\\n  position: absolute;\\n  left: 0vw;\\n  top: 0vh;\\n  z-index: 50;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .header .header_l[data-v-7eb2bc79] {\\n  width: 9.4791666667vw;\\n  height: 4.0740740741vh;\\n  margin: 0.9259259259vh 0 0 2.0833333333vw;\\n}\\n.main .header .header_c[data-v-7eb2bc79] {\\n  width: 61.4583333333vw;\\n  height: 14.0740740741vh;\\n  margin-left: 7.0833333333vw;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  font-size: 2.7777777778vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: bold;\\n  color: #FFFFFF;\\n  line-height: 2.7777777778vh;\\n  text-align: center;\\n  padding-top: 2.4074074074vh;\\n}\\n.main .header .header_r1[data-v-7eb2bc79] {\\n  margin-left: 6.0416666667vw;\\n  height: 5.9259259259vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  cursor: pointer;\\n  align-items: center;\\n}\\n.main .header .header_r1 .header_r1_l[data-v-7eb2bc79] {\\n  width: 1.25vw;\\n  height: 2.2222222222vh;\\n}\\n.main .header .header_r1 > i[data-v-7eb2bc79] {\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.6666666667vh;\\n  margin-left: 0.7291666667vw;\\n  display: inline-block;\\n  width: 8.0208333333vw;\\n}\\n.main .header .header_r1 .header_r1_r[data-v-7eb2bc79] {\\n  width: 1.25vw;\\n  height: 2.2222222222vh;\\n}\\n.main .left[data-v-7eb2bc79] {\\n  position: absolute;\\n  left: 2.7083333333vw;\\n  top: 6.1111111111vh;\\n  z-index: 50;\\n}\\n.main .left .left_t[data-v-7eb2bc79] {\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_l[data-v-7eb2bc79] {\\n  width: 0.9375vw;\\n  height: 15.3703703704vh;\\n  margin-top: 3.7037037037vh;\\n}\\n.main .left .left_t .left_t_l1[data-v-7eb2bc79] {\\n  width: 0.2083333333vw;\\n  height: 41.2962962963vh;\\n  background: #004C95;\\n  margin-left: 0.2083333333vw;\\n}\\n.main .left .left_t .left_t_c[data-v-7eb2bc79] {\\n  margin-top: 6.2962962963vh;\\n}\\n.main .left .left_t .left_t_c > li[data-v-7eb2bc79] {\\n  width: 16.0416666667vw;\\n  height: 6.8518518519vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  font-size: 3.1481481481vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  line-height: 7.4074074074vh;\\n  color: #FFFFFF;\\n  padding-left: 6.25vw;\\n  margin-bottom: 3.7037037037vh;\\n  cursor: pointer;\\n}\\n.main .left .left_t .left_t_c > li[data-v-7eb2bc79]:nth-of-type(4) {\\n  margin-bottom: 0;\\n}\\n.main .left .left_t .left_t_c .checked_li[data-v-7eb2bc79] {\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") no-repeat;\\n  background-size: 100% 100%;\\n}\\n.main .left .left_t .left_t_c .unchecked[data-v-7eb2bc79] {\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") no-repeat;\\n  background-size: 100% 100%;\\n}\\n.main .left .left_t .left_t_n[data-v-7eb2bc79] {\\n  overflow: hidden;\\n  width: 35vw;\\n  height: 37.5925925926vh;\\n  margin-left: 1.875vw;\\n  margin-top: 7.5925925926vh;\\n  /*校院通知*/\\n  /*工作计划*/\\n  /*安全检查*/\\n  /*分级管控*/\\n}\\n.main .left .left_t .left_t_n .left_t_r[data-v-7eb2bc79] {\\n  width: 35vw;\\n  height: 37.5925925926vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  padding: 1.1111111111vh 1.4583333333vw 0;\\n  box-sizing: border-box;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li[data-v-7eb2bc79] {\\n  width: 100%;\\n  height: 8.3333333333vh;\\n  border-bottom: 1px solid #2098B7;\\n  padding-top: 1.6666666667vh;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t[data-v-7eb2bc79] {\\n  height: 1.4814814815vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.4814814815vh;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 12.6041666667vw;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  margin-right: 1.0416666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 10.8333333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 6.6666666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_t > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n}\\n.main .left .left_t .left_t_n .left_t_r > li .left_t_r_b[data-v-7eb2bc79] {\\n  margin-top: 1.1111111111vh;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.6666666667vh;\\n}\\n.main .left .left_t .left_t_n .left_t_r2[data-v-7eb2bc79] {\\n  width: 35vw;\\n  height: 37.5925925926vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  padding: 0.9259259259vh 0.8333333333vw 0;\\n  box-sizing: border-box;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_t[data-v-7eb2bc79] {\\n  width: 100%;\\n  height: 4.6296296296vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_t > i[data-v-7eb2bc79] {\\n  width: 32.5vw;\\n  display: inline-block;\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 4.6296296296vh;\\n  text-align: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_t > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_m[data-v-7eb2bc79] {\\n  background: rgba(15, 96, 124, 0.2);\\n  height: 4.6296296296vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_m > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 4.6296296296vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 14.1666666667vw;\\n  margin-left: 1.1458333333vw;\\n  margin-right: 1.0416666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 11.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 5.2083333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li[data-v-7eb2bc79] {\\n  height: 3.7037037037vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 3.7037037037vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 14.1666666667vw;\\n  margin-left: 1.1458333333vw;\\n  margin-right: 1.0416666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 11.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 5.2083333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  margin-left: 0.5208333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r2 .left_t_r2_b > li[data-v-7eb2bc79]:nth-of-type(even) {\\n  background: rgba(41, 124, 158, 0.2);\\n}\\n.main .left .left_t .left_t_n .left_t_r3[data-v-7eb2bc79] {\\n  width: 35vw;\\n  height: 37.5925925926vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  padding: 0.9259259259vh 0.8333333333vw 0;\\n  box-sizing: border-box;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_t[data-v-7eb2bc79] {\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n  margin-top: 2.4074074074vh;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_t > i[data-v-7eb2bc79] {\\n  width: 32.5vw;\\n  display: inline-block;\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.6666666667vh;\\n  text-align: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_t > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_t2[data-v-7eb2bc79] {\\n  width: 100%;\\n  height: 5.1851851852vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_t2 > i[data-v-7eb2bc79] {\\n  width: 32.5vw;\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 5.1851851852vh;\\n  text-align: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m[data-v-7eb2bc79] {\\n  background: rgba(15, 96, 124, 0.2);\\n  height: 4.6296296296vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 4.6296296296vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 9.5833333333vw;\\n  margin-left: 1.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 5.7291666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 5.5208333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 8.125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 3.75vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li[data-v-7eb2bc79] {\\n  height: 3.7037037037vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 3.7037037037vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 9.5833333333vw;\\n  margin-left: 1.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 5.7291666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 5.5208333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 8.125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 3.75vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n}\\n.main .left .left_t .left_t_n .left_t_r3 .left_t_r2_b > li[data-v-7eb2bc79]:nth-of-type(even) {\\n  background: rgba(41, 124, 158, 0.2);\\n}\\n.main .left .left_t .left_t_n .left_t_r4[data-v-7eb2bc79] {\\n  width: 35vw;\\n  height: 37.5925925926vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  padding: 0.9259259259vh 0.8333333333vw 0;\\n  box-sizing: border-box;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_t[data-v-7eb2bc79] {\\n  width: 100%;\\n  height: 4.6296296296vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_t > i[data-v-7eb2bc79] {\\n  width: 32.5vw;\\n  display: inline-block;\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 4.6296296296vh;\\n  text-align: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_t > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m[data-v-7eb2bc79] {\\n  background: rgba(15, 96, 124, 0.2);\\n  height: 4.6296296296vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 4.6296296296vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 7.8125vw;\\n  margin-left: 1.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 3.5416666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 3.125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 5.3125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 5.625vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_m > i[data-v-7eb2bc79]:nth-of-type(6) {\\n  width: 7.2916666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li[data-v-7eb2bc79] {\\n  height: 3.7037037037vh;\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 3.7037037037vh;\\n  white-space: nowrap;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 7.8125vw;\\n  margin-left: 1.1458333333vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 3.5416666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 3.125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 5.3125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 5.625vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li > i[data-v-7eb2bc79]:nth-of-type(6) {\\n  width: 7.2916666667vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li .left_t_r2_b_i6[data-v-7eb2bc79] {\\n  width: 7.2916666667vw;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li .left_t_r2_b_i6 > progress[data-v-7eb2bc79] {\\n  width: 4.6875vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li .left_t_r2_b_i6 > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  width: 2.0833333333vw;\\n  font-size: 1.2962962963vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  margin-left: 0.3125vw;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b .controlColorOne[data-v-7eb2bc79] {\\n  color: #FF4448;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b .controlColorTow[data-v-7eb2bc79] {\\n  color: #F98556;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b .controlColorThree[data-v-7eb2bc79] {\\n  color: #46AF2D;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b .controlColorFour[data-v-7eb2bc79] {\\n  color: #5688F9;\\n}\\n.main .left .left_t .left_t_n .left_t_r4 .left_t_r2_b > li[data-v-7eb2bc79]:nth-of-type(even) {\\n  background: rgba(41, 124, 158, 0.2);\\n}\\n.main .left .left_b[data-v-7eb2bc79] {\\n  width: 53.4895833333vw;\\n  height: 41.8518518519vh;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  margin-top: 1.8518518519vh;\\n  margin-left: 0.8333333333vw;\\n  /*风险预案*/\\n}\\n.main .left .left_b .left_b_t[data-v-7eb2bc79] {\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_b .left_b_t .left_b_t_l[data-v-7eb2bc79] {\\n  width: 25.1041666667vw;\\n  padding-top: 2.5925925926vh;\\n  margin-left: 0.7291666667vw;\\n}\\n.main .left .left_b .left_b_t .left_b_t_l .left_b_t_l_b[data-v-7eb2bc79] {\\n  width: 25.1041666667vw;\\n  height: 24.8148148148vh;\\n}\\n.main .left .left_b .left_b_t .left_b_t_r[data-v-7eb2bc79] {\\n  width: 24.375vw;\\n  padding-top: 2.5925925926vh;\\n  margin-left: 1.7708333333vw;\\n}\\n.main .left .left_b .left_b_t .left_b_t_r .left_b_t_r_b[data-v-7eb2bc79] {\\n  width: 24.375vw;\\n  height: 24.8148148148vh;\\n}\\n.main .left .left_b .left_b_t1[data-v-7eb2bc79] {\\n  width: 49.5833333333vw;\\n  height: 0.1851851852vh;\\n  margin-left: 2.5vw;\\n}\\n.main .left .left_b .left_b_b[data-v-7eb2bc79] {\\n  width: 100%;\\n  height: 10.7407407407vh;\\n  overflow: hidden;\\n  background: 0;\\n}\\n.main .left .left_b .left_b_b > ul[data-v-7eb2bc79] {\\n  /*height: rh(2000);*/\\n  animation-name: move-7eb2bc79;\\n  /* 设置无限循环 */\\n  animation-timing-function: linear;\\n  animation-iteration-count: infinite;\\n}\\n.main .left .left_b .left_b_b > ul > li[data-v-7eb2bc79] {\\n  width: 50.3125vw;\\n  height: 6.1111111111vh;\\n  margin: 0 1.5625vw;\\n  background: rgba(30, 118, 142, 0.2);\\n  margin-bottom: 1.1111111111vh;\\n  padding-top: 1.1111111111vh;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_t[data-v-7eb2bc79] {\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_t > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #00FAFF;\\n  line-height: 1.4814814815vh;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_t > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  margin-right: 2.1875vw;\\n  margin-left: 0.625vw;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_t > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  font-weight: bold;\\n  margin-right: 0.4166666667vw;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_t > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  color: #00AA3C;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_b[data-v-7eb2bc79] {\\n  width: 100%;\\n  display: flex;\\n  justify-content: flex-start;\\n  overflow: hidden;\\n  margin-top: 1.4814814815vh;\\n  margin-left: 0.625vw;\\n}\\n.main .left .left_b .left_b_b > ul > li .left_b_b_b > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.2962962963vh;\\n  margin-right: 1.5625vw;\\n}\\n.main .left .left_b .left_b_b:hover > ul[data-v-7eb2bc79] {\\n  cursor: pointer;\\n  animation-play-state: paused;\\n}\\n.main .left .left_b .showClass[data-v-7eb2bc79] {\\n  display: block;\\n}\\n.main .left .left_b .risk[data-v-7eb2bc79] {\\n  width: 53.5416666667vw;\\n  height: 42.4074074074vh;\\n  position: absolute;\\n  left: 0vw;\\n  top: 47.4074074074vh;\\n  z-index: 200;\\n  display: flex;\\n  justify-content: flex-start;\\n  flex-wrap: wrap;\\n  align-items: center;\\n  padding-left: 1.7708333333vw;\\n  padding-top: 4.6296296296vh;\\n  overflow-y: auto;\\n  display: none;\\n}\\n.main .left .left_b .risk > li[data-v-7eb2bc79] {\\n  -webkit-animation: ani 2s linear infinite;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  width: 100%;\\n  height: 9.2592592593vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n  margin-bottom: 3.7037037037vh;\\n}\\n.main .left .left_b .risk > li > img[data-v-7eb2bc79] {\\n  width: 2.0833333333vw;\\n  height: 3.7037037037vh;\\n  margin-left: 1.4583333333vw;\\n  margin-right: 0.625vw;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #FFFFFF;\\n  line-height: 2.037037037vh;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  font-size: 2.037037037vh;\\n  width: 7.5vw;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 3.9583333333vw;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 15vw;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 12.9166666667vw;\\n}\\n.main .left .left_b .risk > li > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 6.25vw;\\n}\\n.main .left .left_b .risk .one_top[data-v-7eb2bc79] {\\n  margin-top: 25.5555555556vh;\\n}\\n.main .left .left_b .risk_one[data-v-7eb2bc79] {\\n  width: 49.7916666667vw;\\n  height: 9.2592592593vh;\\n  position: absolute;\\n  left: 1.7708333333vw;\\n  top: 77.5925925926vh;\\n  z-index: 200;\\n  justify-content: flex-start;\\n  flex-wrap: wrap;\\n  align-items: center;\\n  overflow: hidden;\\n}\\n.main .left .left_b .risk_one > li[data-v-7eb2bc79] {\\n  -webkit-animation: ani 2s linear infinite;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  width: 100%;\\n  height: 9.2592592593vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n  margin-bottom: 3.7037037037vh;\\n}\\n.main .left .left_b .risk_one > li > img[data-v-7eb2bc79] {\\n  width: 2.0833333333vw;\\n  height: 3.7037037037vh;\\n  margin-left: 1.4583333333vw;\\n  margin-right: 0.625vw;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #FFFFFF;\\n  line-height: 2.037037037vh;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  font-size: 2.037037037vh;\\n  width: 7.5vw;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 3.9583333333vw;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79]:nth-of-type(3) {\\n  width: 15vw;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79]:nth-of-type(4) {\\n  width: 12.9166666667vw;\\n}\\n.main .left .left_b .risk_one > li > i[data-v-7eb2bc79]:nth-of-type(5) {\\n  width: 6.25vw;\\n}\\n.main .right[data-v-7eb2bc79] {\\n  width: 38.9583333333vw;\\n  height: 81.4814814815vh;\\n  position: absolute;\\n  right: 3.2291666667vw;\\n  top: 13.7037037037vh;\\n  z-index: 50;\\n  background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \") no-repeat;\\n  background-size: 100% 100%;\\n  padding: 3.1481481481vh 1.5625vw 0 1.7708333333vw;\\n  box-sizing: border-box;\\n}\\n.main .right .right_t[data-v-7eb2bc79] {\\n  width: 35.625vw;\\n}\\n.main .right .right_t .right_t_b[data-v-7eb2bc79] {\\n  width: 35.625vw;\\n  height: 20.9259259259vh;\\n}\\n.main .right .right_m[data-v-7eb2bc79] {\\n  margin-top: 2.4074074074vh;\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.main .right .right_m .right_m_l[data-v-7eb2bc79] {\\n  width: 15.8333333333vw;\\n}\\n.main .right .right_m .right_m_l .right_m_l_b[data-v-7eb2bc79] {\\n  width: 15.8333333333vw;\\n  height: 19.8148148148vh;\\n}\\n.main .right .right_m .right_m_r[data-v-7eb2bc79] {\\n  margin-left: 2.3958333333vw;\\n}\\n.main .right .right_m .right_m_r .right_m_r_b[data-v-7eb2bc79] {\\n  width: 17.3958333333vw;\\n  height: 19.8148148148vh;\\n}\\n.main .right .right_b[data-v-7eb2bc79] {\\n  margin-top: 1.6666666667vh;\\n  display: flex;\\n  justify-content: space-between;\\n}\\n.main .right .right_b .right_b_l[data-v-7eb2bc79] {\\n  width: 15.8333333333vw;\\n  /*小标题*/\\n}\\n.main .right .right_b .right_b_l .small_title[data-v-7eb2bc79] {\\n  width: 100%;\\n  display: flex;\\n  justify-content: space-between;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_l[data-v-7eb2bc79] {\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #1ED0F8;\\n  line-height: 1.6666666667vh;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r[data-v-7eb2bc79] {\\n  flex: 1;\\n  text-align: right;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r > i[data-v-7eb2bc79] {\\n  width: 5.2083333333vw;\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.2962962963vh;\\n  text-align: right;\\n  margin-right: 0.625vw;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n  position: relative;\\n  top: 0vh;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r2[data-v-7eb2bc79] {\\n  width: 7.2916666667vw;\\n  text-align: right;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r2 > i[data-v-7eb2bc79] {\\n  width: 5.2083333333vw;\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 1.2962962963vh;\\n  text-align: right;\\n  margin-right: 0.625vw;\\n}\\n.main .right .right_b .right_b_l .small_title .small_title_r2 > img[data-v-7eb2bc79] {\\n  width: 0.625vw;\\n  height: 1.1111111111vh;\\n  cursor: pointer;\\n  position: relative;\\n  top: -0.1851851852vh;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b[data-v-7eb2bc79] {\\n  position: relative;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_t[data-v-7eb2bc79] {\\n  height: 4.4444444444vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  border-bottom: 1px solid #00FAFF;\\n  margin-top: 1.4814814815vh;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_t > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.4814814815vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: 400;\\n  color: #00FAFF;\\n  line-height: 4.4444444444vh;\\n  margin-left: 0.3125vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_t > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 11.6145833333vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_t > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 4.375vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b[data-v-7eb2bc79] {\\n  height: 22.3148148148vh;\\n  overflow-y: auto;\\n  background: 0;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b .str_move > li[data-v-7eb2bc79] {\\n  height: 3.7037037037vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  border-bottom: 1px solid #00DFFF;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b .str_move > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: 400;\\n  color: #fff;\\n  line-height: 3.7037037037vh;\\n  margin-left: 0.3125vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b .str_move > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 11.6145833333vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b .str_move > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 4.375vw;\\n  text-align: center;\\n  padding-right: 2.6041666667vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b > li[data-v-7eb2bc79] {\\n  height: 3.7037037037vh;\\n  display: flex;\\n  justify-content: flex-start;\\n  border-bottom: 1px solid #00DFFF;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b > li > i[data-v-7eb2bc79] {\\n  display: inline-block;\\n  font-size: 1.2962962963vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: 400;\\n  color: #fff;\\n  line-height: 3.7037037037vh;\\n  margin-left: 1.4583333333vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 28.2291666667vw;\\n}\\n.main .right .right_b .right_b_l .right_b_l_b .right_b_l_b_b > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  width: 6.0416666667vw;\\n  text-align: center;\\n  padding-right: 2.6041666667vw;\\n}\\n.main .right .right_b .right_b_r[data-v-7eb2bc79] {\\n  width: 17.3958333333vw;\\n  /*小标题*/\\n}\\n.main .right .right_b .right_b_r .small_title[data-v-7eb2bc79] {\\n  width: 100%;\\n  display: flex;\\n  justify-content: space-between;\\n}\\n.main .right .right_b .right_b_r .small_title .small_title_l[data-v-7eb2bc79] {\\n  font-size: 1.6666666667vh;\\n  font-family: Source Han Sans CN;\\n  font-weight: bold;\\n  color: #1ED0F8;\\n  line-height: 1.6666666667vh;\\n}\\n.main .right .right_b .right_b_r .right_b_r_b_t[data-v-7eb2bc79] {\\n  display: flex;\\n  justify-content: flex-start;\\n  flex-wrap: wrap;\\n  margin-top: 0.9259259259vh;\\n}\\n.main .right .right_b .right_b_r .right_b_r_b_t > li[data-v-7eb2bc79] {\\n  display: flex;\\n  justify-content: flex-start;\\n  align-items: center;\\n  margin-right: 1.5625vw;\\n}\\n.main .right .right_b .right_b_r .right_b_r_b_t > li > i[data-v-7eb2bc79]:nth-of-type(1) {\\n  width: 0.4166666667vw;\\n  height: 0.7407407407vh;\\n  background: #FFFFFF;\\n  border-radius: 0.3703703704vh;\\n  margin-right: 0.2083333333vw;\\n}\\n.main .right .right_b .right_b_r .right_b_r_b_t > li > i[data-v-7eb2bc79]:nth-of-type(2) {\\n  font-size: 1.1111111111vh;\\n  font-family: Microsoft YaHei;\\n  font-weight: 400;\\n  color: #FFFFFF;\\n  line-height: 2.962962963vh;\\n}\\n.main .right .right_b .right_b_r .right_b_r_b_b[data-v-7eb2bc79] {\\n  width: 17.9166666667vw;\\n  height: 18.8888888889vh;\\n  color: [\\\"#E9BA44\\\", \\\"#0086F1\\\", \\\"#21B532\\\", \\\"#1B96EA\\\"];\\n}\\n\\n/*滚动动画*/\\n@keyframes move-7eb2bc79 {\\n0% {\\n    transform: translateY(0);\\n}\\n100% {\\n    transform: translateY(-70%);\\n}\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.7.1@css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/_css-loader@6.7.1@css-loader/dist/runtime/api.js */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_6_7_1_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_6_7_1_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"li {\\n  list-style: none;\\n}\\ni, em, b {\\n  font-style: normal;\\n  font-weight: 100;\\n}\\nbody {\\n  margin: 0;\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./src/views/home.vue":
/*!****************************!*\
  !*** ./src/views/home.vue ***!
  \****************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_vue_vue_type_template_id_7eb2bc79_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=7eb2bc79&scoped=true */ \"./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true\");\n/* harmony import */ var _home_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js */ \"./src/views/home.vue?vue&type=script&lang=js\");\n/* harmony import */ var _home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true */ \"./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true\");\n/* harmony import */ var _home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss */ \"./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss\");\n/* harmony import */ var D_work_daping_labBigData_node_modules_vue_loader_17_0_0_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./node_modules/_vue-loader@17.0.0@vue-loader/dist/exportHelper.js */ \"./node_modules/_vue-loader@17.0.0@vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\n\n\n\nconst __exports__ = /*#__PURE__*/(0,D_work_daping_labBigData_node_modules_vue_loader_17_0_0_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_home_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_home_vue_vue_type_template_id_7eb2bc79_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render],['__scopeId',\"data-v-7eb2bc79\"],['__file',\"src/views/home.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__exports__);\n\n//# sourceURL=webpack:///./src/views/home.vue?");

/***/ }),

/***/ "./src/views/home.vue?vue&type=script&lang=js":
/*!****************************************************!*\
  !*** ./src/views/home.vue?vue&type=script&lang=js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": function() { return /* reexport safe */ _node_modules_babel_loader_8_2_5_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_8_2_5_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=script&lang=js */ \"./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=script&lang=js\");\n \n\n//# sourceURL=webpack:///./src/views/home.vue?");

/***/ }),

/***/ "./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true":
/*!**********************************************************************!*\
  !*** ./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true ***!
  \**********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"render\": function() { return /* reexport safe */ _node_modules_babel_loader_8_2_5_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_17_0_0_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_template_id_7eb2bc79_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render; }\n/* harmony export */ });\n/* harmony import */ var _node_modules_babel_loader_8_2_5_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_vue_loader_17_0_0_vue_loader_dist_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_template_id_7eb2bc79_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=template&id=7eb2bc79&scoped=true */ \"./node_modules/_babel-loader@8.2.5@babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=template&id=7eb2bc79&scoped=true\");\n\n\n//# sourceURL=webpack:///./src/views/home.vue?");

/***/ }),

/***/ "./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true":
/*!*************************************************************************************!*\
  !*** ./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true ***!
  \*************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!../../node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_0_id_7eb2bc79_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack:///./src/views/home.vue?");

/***/ }),

/***/ "./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss":
/*!*************************************************************************!*\
  !*** ./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss ***!
  \*************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!../../node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss\");\n/* harmony import */ var _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_vue_style_loader_4_1_3_vue_style_loader_index_js_clonedRuleSet_22_use_0_node_modules_css_loader_6_7_1_css_loader_dist_cjs_js_clonedRuleSet_22_use_1_node_modules_vue_loader_17_0_0_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_6_2_1_postcss_loader_dist_cjs_js_clonedRuleSet_22_use_2_node_modules_sass_loader_13_1_0_sass_loader_dist_cjs_js_clonedRuleSet_22_use_3_node_modules_vue_loader_17_0_0_vue_loader_dist_index_js_ruleSet_0_use_0_home_vue_vue_type_style_index_1_id_7eb2bc79_lang_scss__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceURL=webpack:///./src/views/home.vue?");

/***/ }),

/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !!../../node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=0&id=7eb2bc79&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = (__webpack_require__(/*! !../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\")[\"default\"])\nvar update = add(\"58b4c0c4\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use%5B0%5D!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !!../../node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!../../node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss */ \"./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet[0].use[0]!./src/views/home.vue?vue&type=style&index=1&id=7eb2bc79&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = (__webpack_require__(/*! !../../node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js */ \"./node_modules/_vue-style-loader@4.1.3@vue-style-loader/lib/addStylesClient.js\")[\"default\"])\nvar update = add(\"a7436050\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/views/home.vue?./node_modules/_vue-style-loader@4.1.3@vue-style-loader/index.js??clonedRuleSet-22.use%5B0%5D!./node_modules/_css-loader@6.7.1@css-loader/dist/cjs.js??clonedRuleSet-22.use%5B1%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/stylePostLoader.js!./node_modules/_postcss-loader@6.2.1@postcss-loader/dist/cjs.js??clonedRuleSet-22.use%5B2%5D!./node_modules/_sass-loader@13.1.0@sass-loader/dist/cjs.js??clonedRuleSet-22.use%5B3%5D!./node_modules/_vue-loader@17.0.0@vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");

/***/ }),

/***/ "./src/assets/image/bg.png":
/*!*********************************!*\
  !*** ./src/assets/image/bg.png ***!
  \*********************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/bg.06b1a9c0.png\";\n\n//# sourceURL=webpack:///./src/assets/image/bg.png?");

/***/ }),

/***/ "./src/assets/image/index_icon10.png":
/*!*******************************************!*\
  !*** ./src/assets/image/index_icon10.png ***!
  \*******************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_icon10.4808fd96.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon10.png?");

/***/ }),

/***/ "./src/assets/image/index_icon11.png":
/*!*******************************************!*\
  !*** ./src/assets/image/index_icon11.png ***!
  \*******************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_icon11.dd5c922b.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon11.png?");

/***/ }),

/***/ "./src/assets/image/index_icon12.png":
/*!*******************************************!*\
  !*** ./src/assets/image/index_icon12.png ***!
  \*******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAp4AAAADCAYAAAA6EQ8nAAAAAXNSR0IArs4c6QAACBNJREFUaEPtmN2O5LgNhUnZVd09WexFsEiAfcJcJG+ZAHmcIMhOd1XZ4uIckhLtrt68wBiYaVviv2T5K+ovf//nr+1j3bfr7fqyNZW89qZ2aWrbfY5dfN52H7M95V9E1oeKvFD7ynsR66oyZERsfajt6vb65jILnq/xfBFbfBzXBfqQu1z5bLjHWOiZtjbipc1d6RPXorrmferSl1+Uw3Paa7uK4XlXa1NOZKUtjKfeAjlc0OFgxAS9LjHW3Y7J8OE6GA8ZhAld/FNVs12l+rauZouK2CHPJWQoT9+LmPQG2zOeRUShn/F4jEvIcDz8ohijLqLuC/OLSKNMR16CGDmFuWYq0lhI/xtzkMV95hi2YccUPm3OldoJ5mgb9TjbiHrDdlzKuKBjXmNsBRM1eCnJDH+5ZmXOEAvXpEljneJZRTlHu3N907VHOmPywGOtXSiy8YlcE+aftR2JKAo+Y2YNIAk9hDRjcpXcChw/6LlpH/N1O8rk3IhpFCpuao2exVrlYy+cTfx4LhUwsz+sB3aYL9pnOby5Ty/lOHbGk2nr8Kku47ZNVRVvL9z4zpUxH3J47h7H0I0pC3/VZnHsWqdYIy/NvEYuJa7YrBklTga+dRxvxlNm5BBVymfY43nkNcDROevouXRtJp1pj4tyWfOjrZn3iL3EijHYgk06pldkZ1bXiXFzasbePS/XDc2cr+vuOU09HJdl3k9y5ASvnSeUr+Xap7+IjXJ+kh4KkLFZ45eFc+kzSv9JB7a4p6a9veO0nDkOHea/z/w7T6FYm8zf51UXju/9tHfw3HIesrNuyMnXexkx7aXemrm0ZrKdModNs36w18T07J/rgNg22bPGzWP1PXbcVIq5LZzhHrlRn4ewyaPMIXaM5bWbaVv5vGF8P9aCstV37h/IIZ+ULzZ17+F7tcdhHH4eIuHPTd2FNsqYLma6XWaMS7dDzBHDnTI3kSF7862/uH9drtPGI8bWbpf1cv+PXW7617/96y+3j/t9vS5v1Az4tOtNX7emdi3wGRAJIOUarN9UPj5EAKgA1TU+xnvTA3yOQruM7Q+VNSFWVTjmULlqn5BVIBNzEyp3ta01h9YJsQBEyKwBig5+KaNqCZfUwTPgc9cFfgBGBMcj/PF1Q0yU94/60gN4B4iFToLigC+HScLlAFzADJ4TJrn7AZ7NX1PcJ2AFUIJN/IgjCCX4+jPyM2yxCZ2Ik3bwyUmQ7C6bcAb5CQ8FVjpOZ7DQsGFJO3hPcNaB8RK0ADf0nSAG3CkQ5uCkjae+NcomMPopMuCY8OcxOUDyMxHw5GkoAdsZkf+1hERCrev6GxDw7F+ltAMebqw34q1wRdgbPzhcJ6ExYDwoL2HP9yn90pvDakJprkeOEJCLT75Aka/rTfhHmRM8Uc0KxdQrdoqeH4wOF55zyFV45Qct9sTIbxyFFWQ9p09wO8D+E/QOKz9usgKnD/8RvAIeIfMUIt3IUcfUnC5wlp9hMMARm/1g8plcXSPqQYfkF/CUwJDgGX5nZiGH1zo+mBV0hk3/Peh785TngBLSsdcBYy53pMZTjUBfWZtSR/5qG3U5gH0BJUc3cHjIgt34yqT/eIUiWdQmYkecfcimTT9UQSWhMWvjZwTeuZmPmfv3n69RG9rymEKHEBN69HkC51itCekjJ37NHM7HFbDJWMqPBQdLfN0OgDjANOvOujIPrxGALaAQHBtnz4RjAmgFz5JXgWLCHVYy60DwRMcE+QZ0jv0VOQTMa4I+DDTtssNn1BVwjCvhC9RprSe8OtyGjwKfB6itcA2YhK1aq6xt6rfFQRZffYLkMqEtQTji0aV1wjG/3IDVCZlbACWBr8JoAGKODyBMPwcYDdAUkce+mrZ+hFXWZjWApmwJixfTzUwCHjO9M3gSOgGkm1mCpgAuX19Ft+++rwM2aWO5mq7d9P5i+36/vb/qpn/+x79/br9t9tPPj4Xn2W3lB6Xf0Wnzy17nPZ8f3z99dPrDZezlJLu9h+xP9S0Qw/i3P4ltHz6ff4uUXdPWm9h207c3Z2Pbb+7r0KFFF/Z1aA84rh1bJhZdWm/Osmtra3R1E6xTpkYMWGY3F3DyItYfKlfvxI46Qabo2uI6vMb4xf1mZzeBtDeFtdrxnboB3VAtXdzh99SR5XjYX8X9eQzboSN8CJ4/5rJbjE7uyg4yYz10gEOrAD1ELWQH6A+f2Q2O7jCFd5V1He4J/nSU/o7+0dH1eQDjIpadXY6Vrl+Nszu8L/FjgcfMk4S9VmE/dGg2O8KflPDCZuc3coJ++jvEGspn+bFwT2LiOuEHUaR86ljPomU9ngV46k6HyOjUf6EyOt/L/O3HT2S9ntXxK3s/xo8VOHUxtXZzILmfWctbJF+WMeyx6xPXoWP1fzuuYftg4NR1wccZ87VT81VAhy5Y6RKdu0ojWPe/wwG6VHzYvaN1vr608aTzlrbC3h/VMIFrr93Gqs/38YuObsJNQNYMuRZ01m50wkp+BJS80Dkbc04qQwcP5zWg7CbsuuFKkKHi8475pw4fdTcBJNWSf+pyAXoeD4+JnTjv1LlbH/f1m+PDRsQ3OnTVEbuCc2DqnPbhvto9xAhRWQ+clQSu9FuMUSagai9dvDq+nMbv7kVbdPTQFwSM4TrLnuOhTPjbvOM3wMwbgn5l/Km/hmyFNc59ENpquWhzTVB8GXPv7++iK57fh7je96Pu+jqetdzL99885/WtyP9v2jmMl7W6TfvtcvSll29Pz63vj/9u1/e+/Q62oWcnI3UP/gAAAABJRU5ErkJggg==\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon12.png?");

/***/ }),

/***/ "./src/assets/image/index_icon13.png":
/*!*******************************************!*\
  !*** ./src/assets/image/index_icon13.png ***!
  \*******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64, \";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon13.png?");

/***/ }),

/***/ "./src/assets/image/index_icon14.png":
/*!*******************************************!*\
  !*** ./src/assets/image/index_icon14.png ***!
  \*******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAA1CAYAAADh5qNwAAAAAXNSR0IArs4c6QAACuxJREFUaN7tmkuMHFmVhr9z7o3IV1VmPWy3G7+67cbYHne7XW5bIBZItGAxzEgIRC+Q2PEQLGBmpJZGgIQYDaxghAYWSAixoyVeC8Rj0SAQj0EwrNCIRm5QN49+2e4uZ1ZWviLi3llERNbNcFaVy13dsCCkq8hKqW7cP/5z//Ofc1N4BS4PUnys3n14l62/9/WSVwBMODT4XF6uAFXe/X6Dk30GpMUwlREy5YAMSIu7K4C5/VqL3WdAJYgIiIthA8ZcASYBJsU9AZzfR8bsPjKuxXwxUAcaxb0WPCcrwIyKMSy+TwDvwe0HMLsPLGkFUANYCEazYK4ENQQ2gY1KWIbjrwcqEIYy5OoFkCVgeQinrx/gHUnMmUxNoz7JrrZ6/GB1xC+LZ0uwz1wRhvJy2bL7GHY1oAV0gNUx3HfjAI+MGuYhL6YOyLCuF50m7egaadvx6wJQFgy3H2zZfWIpDLulDO6+ucibBzVzCTWNIDNFE2tPdVfShxs3uBFtiUY5sv0QDbsPLEUFS01gEViewOlBi8sY0/B+Nm941Wgc6/2bsXtyacJNYFyMSVXm73Rh+jJZqopDx8FrbnZ4Q2LNwVIIqqtzVlu9Dg9N4FgRrgvFHNMU4O9wbXcMqiIOMyxtGs4OWjzg1cTbZXiPmnEs92w0WAMOFMBahdBEZcL2d2gO9A5ZmifhnRSOdBdZS8UullgkQOYD0+ckavUXuRCwtVhli1cDVMU5lBJesrSyEXP/qMFpjJq59Eo+ADDIJDJHeotcAg4C7YCt+OWwpXcQdtW9tAgsTeDoRpuLmbWLPl/MbEadI9TOmPpGkwfHcG/BVrt4SbWXw5beoTiULLWKhawOYi5MYjmOqO4wR34vAHqQJDKr6x0uObirmKsqGntmS+9Awm1FHDojOLG+zFpmo9auL6ewDBSh6NXEm03O9+F1wd4K2TK8EqDmSHhph9oODvVaXEpic9hLHnYiiohFTAxqQS2i+d9i4mk4+jzLSmqizsYyFx3cHeytqsTfNjC7RwkP7dAisDSC1/bbXPBqavjSzaX4JMW7gJ1wslhzsGVMqthRg9P9HufaGdeBPjAokvKeE7Ldo+KV4tAqWDrcXWIticzKNEQy8C4lewGfAeKmc3gUr02w6oR4S/I9SGpsu9tJLzVf4kmbO/hBUZ6MSwtVvDO3H0zNS7RtYGlTOTtocgYx+TyieD+GIf7Av34wWXjLP4GI8VkiZM7ZZitBJPvLBx5pJOvrRlt1wBVvQ82orid6dffAyohrRWmyWQAr2fK34+LtbdZKJUvNmUS7wqXM2s6UJe8g9fgMlt7zPmrnziuqgipkmZCmsvn490022igk3019lAe81YV+2601R1ytQzcANQkMr+wWhroHF14PWFrZqHP/MOakQ235CJ8lkEF86rVE9560WGtQzV+MtZoNNuNnPvpvtWwjVW3aLTDTWl91XDNH+00edPMT8m1JvO6hRA8l/Hi3zUPO2AUJe0VJjq555Y1Is6nee/G+RIzc/PpXdXL1aRULonbGaZRzODX1XoeLYzgZmN3mXuyT7oGlUhwO9ps8mETmqBfVUJ5xeQQ2X/9GEWMRkfLpPrv5kn/xC/+F1EHqFu8dZCk+TfHehfEkWWQPdjtcBA4FZve2E7LdY6JdGsPJXoeLzpp6WFf4oqOndWhcuhyYPHD9Pjc+82kG//c0CvhhiijIAmicC0z4ep1oPGxyrt/liQV4qZD4YaiEO1XIdi+1EnCo22EtNeYgni0aAJwDgej4P2BP3DtjITZ//hOuf+6z2CUwjRyDRE3s3ae82sglf/qt+mwiZe7yHplEZrW/nK0113lKZ5WwLCa3rZDtLhIeuvBOH04PGpzzamJfqf58luIzWHz4H9FWawrIg4+OH5ejX/wy2loAVbTdwbQ7bHztMb/xo+/hs8lULLZWYaJ+Izvd6nJm0XEjYGtU9gq3S8h2l1qp3Et5RbvK5dTaFS9IdSpfBMTi29+JGBOIgEj97HlqZ88jpWiokj7/HMMnfiOTP1wVaSDYeAaVBzJrOzdX0suNGzxloTeHrWweW3aHWqkWuPDlvnJ2XOM+pxqJn51FXIoKmFOnmDz9FD6Z4JME0ox0/UXMyiqtNz0MquA9k989wbMffj+bv/iZaBuwNs+oPogVD17Ujmp6ciNy55cTXihADQK2snlNULtDrTRNtBM4ur7CldTYNrLl5bZKCYfUY0QNL3zyUbKNG5BO8ANHNoS7PvaxHBSQPv8czz36IfqP/wxzGDSKt8DMYipqLm31lt2lxjV+X8/Z6lfZqiZku0OtVCba1X6DC+OaOeFFzVy9MTHeO5Jnr+Inhf8bQzaA+PQRlt/zXkSV9JlnePZfPkD/8R9jDoPU4i0QnpnPuXgqHnRcM8f6zexCfcCzgdktgWVFhpzaJ90l0S4N4J7eIhedmmb1oKlU7a0+hEXrFl20aCHXBz70Eeyx42S9Hi98/FG63/wu2gGNYwSdvl+ZcxTjC+/qxdT7bR4oKuR20M+YWyHrnNJiqngODvQWWBvXzGtKAfeVgm8KEEWN5t42TXEjiI4ts/Sud+M2+1z/z4/T/dZj2FWQeowXzRNwkHBEKmWyn24KSWJz+GabNZcn5B0LSd3J443hnkGL815M7XZOs8p1uEleLrXf9gjm0F10v/IlXvzvzyN10GacJyrvbmnKVJ8hwU5xmNqgwbkh3LNbk0YDxsLc1Erg0M0lrqS1rabkjJfZ5twT8ryvNVj94EfofeMxbnzuP9AWUCsLQzfzIiS0WhWrUKpi0c840F3hSsFWFZSG4Vc9uYiBRr/B2UGTc062mpJVVkLJKSs+n4zxBhbe+ghZd51rn/oo6XoPaSgiOg0zkVuJDwXjFnS52Y2HDc5s1DhTOfsy4TFsVShKYFFvgcupRh2Zo/nCbPNkxqmnnujAMgv//A6e/8S/M/njX5BmkYuCvbiTjM/rQJVXZmynu8SVYp22IhRSZWrm4DmJ5ZhXiUp5neqlzIpEaPh9koBCdPQ+el/7KsNf/RRt5blItrHNVTAlg9XytlyDQ6NxJCfmHJTLdqVHSXjmkZoUZqh8s0F8zyrV1Fl4tH0Qc/cR3//Jt5EYJI6n/zOvXRaGsVRbaUFUTNcAOJF4J++nc07NE2BsU/d7nMuYI+Hhxvbe4bO8NsJa/GidwU+/I2IUqdVRLXJB5mYWPs1xQRhXafNVNQTEu6yWuD/sVIbYUIkL2zEGBq0hv3JReiTFHvRFmXqL0jk3Nag+nZBeB5+UXS/wMspjJAI9aGcEZm6Tk102lXepZOn15oBfFD4wbKFNgdkKoElh7zeWevyQhNFwIX19GnGvQ6L8ZXp8sLHEKhK3cOlE7OE2iMEnYym7S9LqeOP6uFHX+2RrI5U2Py/L/PQefld+zu8+qSc8Wevzv0tD/qfoNg0DD7h1qOJvrZ/Kpn8bWEngUAorQF126BM4kOb5+6BWz4PJuXx6wbt+l8nVP+/1ZHD6sj1MFIYK6xFcI6+GewGwqWuXvBSZtsJsUHI0CldRjtBn2W16G1LJyTtknNu+qj8mGRZmthwzJb7kYTgtPcIQJDg1LyeKghM+w62/N5oHzu2Sgm6HqfD0vjzsHs85J3bB87YWFjQuNTC3tgLGzGFkvy+/A7ASXFrpsTuZByoAFibi6pBdWHolAPrqD0gqOeqWn/7INt0ktmHk1QQ0bz/66nfzukmyx9lfbUBst/C/X3+//kav/wcZ+YvStPAs5QAAAABJRU5ErkJggg==\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon14.png?");

/***/ }),

/***/ "./src/assets/image/index_icon3.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon3.png ***!
  \******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAutJREFUSEuN1lnI7WMUBvDfMs8uDBmKInOGciHcoJQImYcOmY55ily5kzsuDBcuXZilJLlCKTeGjBlCEhenDEfhmDmvHq39+Xydb+//W7t2+33f9az1Ps+z1i6rrDHGVtgeu2IfHIrDcQx2w5O4u6q+Xy1Gfq/lm2OMbbET9sXBOKgD74c9sR1yZjO8jYuq6tNJAGOMHXE+TscBnWUCbo0tNhHkA1xYVR9OBcgTPIyjsfm8S733bhKqqs+mAhyFx3HIhOA5sg534Tl8W1V/b+reEgdjjCPwaBP5F77IxeYp50Z/Dxd7YyO+wpt4Fq/iu6rK3aW1GsCPuB+PdaBw8GcTfA0ux9d4oUUQUbyDZ/Ay1ldVEvpPRSsq+AXP4xWk9HCSzEL4aTgJH+HSBj6zxZHKnsY9VbV+HkDQf8XvK941FW/TQO/jvJDc8o6s7+yK1lRVZLxqBQFI8GT9P69gy/4E4DLMfJBnvCnewFVV9do8gGT/Upsp52KskJogx+M4fNw87YK4PkARyqm4vqremAfwEx7EE/ijOQgXMd51uKQBQmoC7oAXO4kTU8kigAT7JmroSzMqQvbuSNZ5ohtbyqkwKluDs3D1IoApXnsPF1TVJzk8xgj5d+BcrF0EEHK/jHFWGC2x9mijpRfd2lWGm98CiDNw7SKAH3AvnmofzIyWLGO0tUjmcXB8sXMbbANOwM2LAKKiuDT2z9vOVBSAUzpIuugDOLC9EU727/0bFgHEByk5CvrX8r1mRossEzBOTs/K76kypJ+9GslH4pFudlNJvriq0jJCciR8e5McFb2+0geHdbuOWaaszIMAxHAzgNsa4MqqemsJYIyRN854jLFSyZSV7pm2MBs4GaW3NMAVecKq2lhjjJN7uGfu5kAG/JQVGd/Xcg5P4eAcHIuHWmU/B+DztnqaWAb+lHGZBOKVtJSobLbyLyQtPXKNQDYEIE1qr24JaRHLVTOvkignT7u82+ZummKSzN66fwBYhQcbtbB58AAAAABJRU5ErkJggg==\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon3.png?");

/***/ }),

/***/ "./src/assets/image/index_icon4.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon4.png ***!
  \******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAztJREFUSEuV1mnI5mMUBvDfse9r8kHW+EA+ELKUfRdSTCQaDD7IMrayTcpYsk6W7NRMmhRNiexLxCSN5QNNSZYsJWULg8Gt6+1+pmfe93nG61//L8//3Pd1znWuc52nTPNprW2Ni3v4vKr6cjpHa1RQay2/r4vlVbU8Ma21Q/BQjz+nql7tv6+JvMuqqk2+bwpAa21t7IYD8DFexO84Eg8PAPA81sGh2AWLsaSqErviWQmgtbYBTsCF2AnP4LKq+ra1dhgeQc6cVVUvt9a2xK04Dp/ibjxZVb8MEFYAtNbWw+m4HOH7XdwekKr6o7WWTB8dAOAVrNUvn4298DVuxoKqWhaQCYDW2mo4HHdhOzyHm/B+Vf3ZY1aqIADhvLUWkFB6NY7CF7gkd1TV3wOAbfrlx+A1XIkPquqfQamTKRoADCW4O27EwXgDF1TV0qQQas7AXPyEi/Bs0IebtSqADrI6kuCd2AzX4/4A7Iw7cFBv4pyq+mGy3P4LoINs2hOdhTczNwGYgdt6P87GS6P0PASQu2ZFRSOSCOXpw4P92xUBmNMnNKqZWVXfjDkYEQzmYFWJbIX52APzAhDtnhb9RqJV9eMYgKMnAUQlUya3tbZJn42T8FgA7sMpWIirqiqNnvK01vbEPf3D+VW1ZEzcxl1Np+LxAERa53V5nltV3405uD72698WV9WvY+K2wAOId90bgMjyGnyFGVX1yaiDQ3o3PB8j6Nyh053ZmhuAdD192Kh7ULxkpRkYBzimV5mFuO5vmakA7Jhu4wg8gUtjbtO9dNIwbo7rcCZi57MHkzyzD0h8J56yMAb3f0C6J53cGxx3CO3zB14U90wVx+OjVIHXp0tVay02sT9u6cb3VAwvW2/YTWMVmehd8RZuyBKpqnA59mmtRV25PAa5b5ZOt/ycnViNE08vMRUkMCBR0wIkm/Qk/v5XD1+jb7MsnCyoUJxeLsW1fYdMxE7eaPH2A3sG+yB2/RnewYf4vgPELbMm90ZkmX3yXjfNF4b7N2onh88cPhHHYvu+1CPdgXwTkzei+BxPY1EqqKpBlRO5jPxX0SmL9Yaq8Brj2hYb9gp+7heH77cjjFEelth/Ab2ZU7B7eHjQAAAAAElFTkSuQmCC\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon4.png?");

/***/ }),

/***/ "./src/assets/image/index_icon5.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon5.png ***!
  \******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAACnCAYAAAAR13zWAAAAAXNSR0IArs4c6QAABrlJREFUaEPtmn+MHGUZxz/PzGyvd72Da2/3DCgtVlKIBE0MGqP4B7HGBLSxRiiBAOFHCGCiUejNHlS7YEJ3Q1pJSAyairFGICnSoGBMqn8ITcOPAiFEE0NobZte2507Cpj2rtd35jF73P7o3c7OzN3sHuhtMv+9893vvPPO+37e7/sID7/7OTsIPu+Ls5eh/neY50+ckrcZKCjWrb478Jt56lEXVJ4V4Q1jZXawsf/AXIVrgnUBWWvc7N9SFNTdKtZR30z8mPs+NZZUuInDDyWMTq4i/8lDqQmivIpw2ri5ryURDXVYFTFuTlIVVBgR4YgZyn0pjrA4pfL9IJUrA+o0u0nhsD+eXQMEFGSylXDtcezi6K9F9NbWLnSPcQdb9mlN0CmO/gxhvaKrBHqbC+vrxrZvxA/ew82NNGszq8Od4uhuRNe2cqoqj/v57G1xBUugX1D0ChFZGiL8F4Jgq4H9DH9if2Ob0CFhl7yDAisj3mzBuLkHYgk6xfIWFVkhcEeYqAp/Ap7zlb/j5v5VaRc5aJ2Sp1Hjr3HqiyFYdlH6EcmHOoU/C/qWCdgeKTglUjyy0pElB6OcgqyNJ1gY6bG7nKvFkkuAB8OF4wpOKzjF8hWIvJiaIIVyb6ZLLlZhHcJPZwsndFgVsEtjtwjB46kJUtAldB1a5ljdLohbF56jw6qAVSq7grgCPUBX/LccMV7qU988HVb/xyl6lRe0zoi5O944jB7RtRbCQ2OftcW/1CfzKsPL/53g3qZN28g26NMC+4ydeYp7l8f4bps/S/vZRpXnEY744xPDFC54N2mfdpJtdA/IhMnnvpHE5QKwjep+gRGTb00M1aeIdFhpqHDId3Or4jx6G9mmVC6qcg3CeYJ0h7jZZ4JgAxr8h/vO85q1WWSbeq8sss3/LdtsHjvHWSaXocHVoMOpoUj6bLNNuxkf7Xcc7oGpa/o3T3KYva2bp2AN72rbupQEq9s6g7m9HWzjrbEd1viT1ptsGjgcZ5pv1aaNbCPyhCovB2dk13ycdoBtkGdEOWz05AMMrzqRtE87yTb8FYtxM5Rbl8RlJDmkntuA/APlqMlnY1FYpMPkbFOYCn8cu3vsMUFvDumvyq5+Athr3FzLxKSe25S8rQrXCToA0hUi/IoxfAfbPkV+xfsLxDYl7+fA5aBfDHNaAXux7C3G1kPcc/aE0sncxtumlgyI6k1hA1tVdyHWrsbIOnKCbUNu421GORfhR+FO65F1pMMpkdRzm4ePLbMD57uirEF0U/hkkXDVSz+3WWSbjxHbTG/rBL0x3sBOsEoJW46vdmC1sax/hoXdCfQajpBSP5NCfovoXn9SnmdT9kgSV41tO8E2PCXoQTN+skjh0+8lddo5tlHVSsJ0yncHr03iMpIc0mcb5TWFY34+9604TiMdzoFtDiyly+q2rZ5HBW4IcREovA/6ku8OXtVyF1DbDZXKj4LcMH0elWl+k75kgvGrOJ05TeH8UwvDNnbR+4VA5VDwMoQlzVwo/NEKePBMwAj3546e9emF9UfqZ1IVp4hmBbkmlBjQnQTsbIysIyfYNrBNJbWTc0S4q4XTWmQd6bA9bFMo99o9cr0oFwEbP8JsUzjQ73T1XI5tfRPl3tlOE9JX/TNN+0yq5PURBDlH7B8g+sO60zk6rApUy0JSE6x1Qeq5zSLbTBfwfGzYRnWHiOw3+sEj5D/TdJPdctWbPTg/bJ56vY2q/AGLk/5QNiyHaGo0khzSZxvYoyrH/Xz2ewvFNuVeMtJn22wT4boQF77CceAV382tj8c2Re8xEW4CWQJqh7DNXjOe+zoj+PxKziwY22wXkS+DVmqUmlKYIs/4tvyEyUlv5ulZ53KbqcoAS3Mo3w4lBuEJ4MnGyDqSHNJnm+LoIwp9rUq4tCGyjnTYHrYpeX0WcoulrD57HZ7ZuwnX5fRzm8LhFXbP0q9IIGubO03osH1sUzjRT29wvh3o3aL6/dRQJH22mRVZz7EPZw4WpxpZq70h3sCOM/dPtxG2jl3g+LLSSOZtNvaVE9zbetVLv5YYtoO84Euwm6HBY3N12oHcZpFt/hfZZsvB5bB0uW3ZRUGbxwGKUbRS7L3Pzw9uiMk2KRcn1/ZvadcS2yVvB6pfFWQlQkh9tuz0Az8PEydmHsh2km283wsMIoQeDGrlM1X9XWNkHTnBps42dsn7JUqvCNeH5zb1bV2kw/awTeWkp8e/S5ELBe78KOc2I1m7y7kSkSubZ2FzXJfTr7d56IOBjJy+MLC44+ya9zk6bF9uU5gZWc/TYZ0XpyNrYf1/AYpDIbhtMxZ8AAAAAElFTkSuQmCC\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon5.png?");

/***/ }),

/***/ "./src/assets/image/index_icon6.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon6.png ***!
  \******************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_icon6.6f81fe21.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon6.png?");

/***/ }),

/***/ "./src/assets/image/index_icon7.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon7.png ***!
  \******************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_icon7.3651e467.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon7.png?");

/***/ }),

/***/ "./src/assets/image/index_icon8.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon8.png ***!
  \******************************************/
/***/ (function(module) {

"use strict";
eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAS1JREFUKFNd0TFLl1EUgPHfMTEwFAmkcBP6Bm4ipJOfIBC0QTC1cBCJikRLMEEaWgwcWtoUTVwKSShQBxfBwEEIEXeXVgevnHhf+OM7Xu5zz3OeN0op+9jBSkT8K6W0YwY9+BARhxq+KKXs4QGWsI5rDOEtjjEXEX9rJoFBvERXBX3DPYxiEjnhXUScJZRAM/ryEPdTA9towwTG8RsLuIikKmgAr9CCT/iBDjzHE/zCl/9ABd3BY3zGJZ5FxGkppROzGMbmbaC/ARhrAOarEBu1Ur6eSm8alL4jE7/AU/zEai7dhF68x0MsYgutqYUpHGRenCeQGpn1EZaxhrsYwTT+5A6pV2fN7bvxEV9xVVXJzNn+NU4iotTAUZVsOSIuSynZPyfm5Pwnu/XlBG4A7GtthWRA8eEAAAAASUVORK5CYII=\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon8.png?");

/***/ }),

/***/ "./src/assets/image/index_icon9.png":
/*!******************************************!*\
  !*** ./src/assets/image/index_icon9.png ***!
  \******************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_icon9.536f2339.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_icon9.png?");

/***/ }),

/***/ "./src/assets/image/index_zw.png":
/*!***************************************!*\
  !*** ./src/assets/image/index_zw.png ***!
  \***************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

"use strict";
eval("module.exports = __webpack_require__.p + \"static/img/index_zw.360001e2.png\";\n\n//# sourceURL=webpack:///./src/assets/image/index_zw.png?");

/***/ })

}]);