/*
* 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('
:~]/)) {\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;i0){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 to \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 \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;i0){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;i0||!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;i0||!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;grantedI0){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;ibufferSize){// 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&&ithis.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;i0){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>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;ilen2?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;ithis.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;il){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;ithis.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=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\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=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);i2&&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;imax)str+=' ... ';return'';};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= `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;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining;}}var strLen=string.length;if(length>strLen/2){length=strLen/2;}for(var i=0;i>>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(i0xEF?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(ilen)end=len;var out='';for(var i=start;ilen){start=len;}if(end<0){end+=len;if(end<0)end=0;}else if(end>len){end=len;}if(endlength)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>>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=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||valuebuf.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>>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>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=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=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>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==='number'){for(i=start;i0xD7FF&&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>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=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{// 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'-'+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;i1)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;i0&&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=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=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 */exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<>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<>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<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]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;i0){--curLast;}else if(first0)--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;i0){--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(curFirst0)--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;i0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue;}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]=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];_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]=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>>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];_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]=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;i0)--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]=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(xy)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=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(leftChild0)swap(parent,leftChild);if(rightChild0)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(curChild0)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())break;var minChild=leftChild;if(rightChild0)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]=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(xy)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]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=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;inewLen)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<{return[0,1].map(dup=>{return[0,1].map(retain=>{const buf=Buffer.alloc(1);buf.writeUInt8(protocol.codes[type]<{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>8,0);buffer.writeUInt8(i&0x00FF,0+1);return buffer;}function generateCache(){for(let i=0;i0)digit=digit|0x80;buffer.writeUInt8(digit,pos++);}while(num>0&&pos0){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)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._pos2){// 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=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=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< 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;i2){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 buffer - destination\n * @param pos - offset\n * @param length - length (>0)\n * @returns 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 - destination\n * @param pos - offset\n * @param string - string to write\n * @return 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 - destination\n * @param name - string name to write\n * @param value - string value to write\n * @return 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 - destination\n * @param pos - offset\n * @param number - number to write\n * @return 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 - destination\n * @param pos - offset\n * @param toWrite - String or Buffer\n * @return 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;valueIndexmaximumPacketSize){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;valueIndex0){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{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(numthis.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(i1){for(var i=1;i= 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 \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=0xD800&&value<=0xDBFF&&counter0xFFFF){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=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){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(digitfloor(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=n&¤tValue state to ,\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;jmaxInt){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\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=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;i2){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';/**/var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key);}return keys;};/**/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*/var Duplex;/**/Readable.ReadableState=ReadableState;/**/var EE=require('events').EventEmitter;var EElistenerCount=function EElistenerCount(emitter,type){return emitter.listeners(type).length;};/**/ /**/var Stream=require('./internal/streams/stream');/**/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 debugUtil=require('util');var debug;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog('stream');}else{debug=function debug(){};}/**/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 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-n0)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 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;i0;// 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=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 */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);};}/* */ /**/var Duplex;/**/Writable.WritableState=WritableState;/**/var internalUtil={deprecate:require('util-deprecate')};/**/ /**/var Stream=require('./internal/streams/stream');/**/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.length0)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(nstr.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=i0;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 */ /* 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';/**/var Buffer=require('safe-buffer').Buffer;/**/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>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=0){if(nb>0)self.lastNeed=nb-1;return nb;}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb;}if(--j=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 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 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;i127){// 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;i0?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;i0){for(var i=0,l=arguments.length;i1){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(tothis.length){to=this.length;}for(var i=0,walker=this.head;walker!==null&&ithis.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 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__.$)(`${slide}
`);\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 = `` + ' / ' + ``;\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 = ``;\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__.$)(``);\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__.$)(``)\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__.$)('');\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__.$)('');\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__.$)(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(``);\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__.$)(``);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(``);\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__.$)(``);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_2__.$)(``);\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)(\"\\r\\n {{planTitle}}\\r\\n
\"), _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)(\"正常\")]), (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)(\"隐患总数:63\"), _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