PageSourceSearch

https://www.elektro-wandelt.de/out/WaveElektroWandelt/src/js/main.js?1790749025

js elektro-wandelt.de collected 2026-10-05 07:48:55 UTC 1,360,057 bytes, 39,866 lines download raw bytes

1(self["webpackChunk"] = self["webpackChunk"] || []).push([["main"],{
2
3/***/ "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i":
4/*!***********************************************************************************************!*\
5  !*** ./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/ sync ^(.*\.(js$))[^.]*$/i ***!
6  \***********************************************************************************************/
7/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8
9var map = {
10	"./wave.js": "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js"
11};
12
13
14function webpackContext(req) {
15	var id = webpackContextResolve(req);
16	return __webpack_require__(id);
17}
18function webpackContextResolve(req) {
19	if(!__webpack_require__.o(map, req)) {
20		var e = new Error("Cannot find module '" + req + "'");
21		e.code = 'MODULE_NOT_FOUND';
22		throw e;
23	}
24	return map[req];
25}
26webpackContext.keys = function webpackContextKeys() {
27	return Object.keys(map);
28};
29webpackContext.resolve = webpackContextResolve;
30module.exports = webpackContext;
31webpackContext.id = "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i";
32
33/***/ }),
34
35/***/ "./assets/child/WaveElektroWandelt/build/app.js":
36/*!******************************************************!*\
37  !*** ./assets/child/WaveElektroWandelt/build/app.js ***!
38  \******************************************************/
39/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
40
41"use strict";
42__webpack_require__.r(__webpack_exports__);
43/* harmony import */ var _js_main_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./js/main.js */ "./assets/child/WaveElektroWandelt/build/js/main.js");
44var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
45
46__webpack_require__.g.$ = __webpack_require__.g.jQuery = $;
47
48
49/***/ }),
50
51/***/ "./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js":
52/*!****************************************************************************!*\
53  !*** ./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs/wave.js ***!
54  \****************************************************************************/
55/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
56
57/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
58__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
59
60window.isMobileDevice = function () {
61  var check = false;
62
63  (function (a) {
64    if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
65      check = true;
66    }
67  })(navigator.userAgent || navigator.vendor || window.opera);
68
69  return check;
70};
71
72__webpack_require__.g.Wave = {
73  initEvents: function initEvents() {
74    isMobileDevice();
75  }
76};
77
78if (window.isMobileDevice()) {
79  $('body').addClass('mobile');
80} else {
81  $('body').addClass('desktop');
82}
83
84/***/ }),
85
86/***/ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js":
87/*!**********************************************************************!*\
88  !*** ./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js ***!
89  \**********************************************************************/
90/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
91
92"use strict";
93__webpack_require__.r(__webpack_exports__);
94/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js");
95/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_0__);
96
97
98var getYear = function getYear() {
99  return new Date().getFullYear();
100};
101
102/* harmony default export */ __webpack_exports__["default"] = (getYear);
103
104/***/ }),
105
106/***/ "./assets/child/WaveElektroWandelt/build/js/main.js":
107/*!**********************************************************!*\
108  !*** ./assets/child/WaveElektroWandelt/build/js/main.js ***!
109  \**********************************************************/
110/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
111
112"use strict";
113__webpack_require__.r(__webpack_exports__);
114/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js");
115/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__);
116/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
117/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
118/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
119/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__);
120/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
121/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_3__);
122/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
123/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_4__);
124/* harmony import */ var _styles_main_main_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/main/main.scss */ "./assets/child/WaveElektroWandelt/build/styles/main/main.scss");
125/* harmony import */ var jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jquery-ui/ui/widget.js */ "./node_modules/jquery-ui/ui/widget.js");
126/* harmony import */ var jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(jquery_ui_ui_widget_js__WEBPACK_IMPORTED_MODULE_6__);
127/* harmony import */ var bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bootstrap/js/dist/dropdown */ "./node_modules/bootstrap/js/dist/dropdown.js");
128/* harmony import */ var bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_dropdown__WEBPACK_IMPORTED_MODULE_7__);
129/* harmony import */ var bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! bootstrap/js/dist/popover */ "./node_modules/bootstrap/js/dist/popover.js");
130/* harmony import */ var bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_popover__WEBPACK_IMPORTED_MODULE_8__);
131/* harmony import */ var bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! bootstrap/js/dist/alert */ "./node_modules/bootstrap/js/dist/alert.js");
132/* harmony import */ var bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_alert__WEBPACK_IMPORTED_MODULE_9__);
133/* harmony import */ var bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! bootstrap/js/dist/tooltip */ "./node_modules/bootstrap/js/dist/tooltip.js");
134/* harmony import */ var bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(bootstrap_js_dist_tooltip__WEBPACK_IMPORTED_MODULE_10__);
135/* harmony import */ var bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! bootstrap-datepicker/js/bootstrap-datepicker */ "./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js");
136/* harmony import */ var bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(bootstrap_datepicker_js_bootstrap_datepicker__WEBPACK_IMPORTED_MODULE_11__);
137/* harmony import */ var bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! bootstrap-datepicker/js/locales/bootstrap-datepicker.de */ "./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js");
138/* harmony import */ var bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(bootstrap_datepicker_js_locales_bootstrap_datepicker_de__WEBPACK_IMPORTED_MODULE_12__);
139/* harmony import */ var _wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../wave/build/vendor/jquery-unveil/js/jquery.unveil */ "./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js");
140/* harmony import */ var _wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_wave_build_vendor_jquery_unveil_js_jquery_unveil__WEBPACK_IMPORTED_MODULE_13__);
141/* harmony import */ var _modules_ksbasket_index__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/ksbasket/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js");
142/* harmony import */ var _modules_ksmenu_index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/ksmenu/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js");
143/* harmony import */ var _modules_ksimageoptimizer_jquery_responsImg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/ksimageoptimizer/jquery.responsImg */ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js");
144/* harmony import */ var _modules_ksimageoptimizer_index__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/ksimageoptimizer/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js");
145/* harmony import */ var _modules_header_sticky_header__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/header/sticky-header */ "./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js");
146/* harmony import */ var _modules_header_mobile_header__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/header/mobile-header */ "./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js");
147/* harmony import */ var _modules_header_main_nav__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/header/main-nav */ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js");
148/* harmony import */ var _modules_header_main_nav_desktop__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/header/main-nav-desktop */ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js");
149/* harmony import */ var _modules_scroll_to_top__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/scroll-to-top */ "./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js");
150/* harmony import */ var _modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/page-anchor-link */ "./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js");
151/* harmony import */ var _modules_default_search_block__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/default-search-block */ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js");
152/* harmony import */ var _modules_default_search_submit__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./modules/default-search-submit */ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js");
153/* harmony import */ var _modules_minibasket_handler__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./modules/minibasket-handler */ "./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js");
154/* harmony import */ var _modules_years_of_expertise__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./modules/years-of-ex
154pertise */ "./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js");
155/* harmony import */ var _modules_copyright_year__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./modules/copyright-year */ "./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js");
156/* harmony import */ var _modules_page_not_found__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./modules/page-not-found */ "./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js");
157/* harmony import */ var _modules_add_to_cart__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./modules/add-to-cart */ "./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js");
158/* harmony import */ var _modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./modules/amount-switcher */ "./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js");
159/* harmony import */ var _modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./modules/product-price/product-price-calc */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js");
160/* harmony import */ var _modules_ksseoanalytics_index__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./modules/ksseoanalytics/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js");
161/* harmony import */ var _modules_jq_bootstrap_validation_adapter_init_submit_only_validation__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./modules/jq-bootstrap-validation-adapter/init-submit-only-validation */ "./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js");
162/* harmony import */ var _modules_ksmarketing_index__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./modules/ksmarketing/index */ "./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js");
163/* harmony import */ var _modules_close_main_menus__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./modules/close-main-menus */ "./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js");
164/* harmony import */ var _modules_ksdoofinder_trigger_doofinder_input__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./modules/ksdoofinder/trigger-doofinder-input */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js");
165
166
167
168
169
170
171
172document.querySelector('.header__container').style.visibility = 'visible';
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
208
209__webpack_require__.g.$ = __webpack_require__.g.jQuery = $; // Autoload every file in main / start folders
210
211var reqMain = __webpack_require__("./assets/child/WaveElektroWandelt/build/js/defaultOxidWaveJs sync recursive ^(.*\\.(js$))[^.]*$/i");
212
213reqMain.keys().forEach(function (key) {
214  reqMain(key);
215});
216(0,_modules_ksbasket_index__WEBPACK_IMPORTED_MODULE_14__["default"])();
217(0,_modules_ksmenu_index__WEBPACK_IMPORTED_MODULE_15__["default"])();
218(0,_modules_ksimageoptimizer_jquery_responsImg__WEBPACK_IMPORTED_MODULE_16__["default"])();
219(0,_modules_ksimageoptimizer_index__WEBPACK_IMPORTED_MODULE_17__["default"])();
220(0,_modules_minibasket_handler__WEBPACK_IMPORTED_MODULE_26__["default"])();
221(0,_modules_header_sticky_header__WEBPACK_IMPORTED_MODULE_18__["default"])();
222(0,_modules_header_mobile_header__WEBPACK_IMPORTED_MODULE_19__["default"])();
223(0,_modules_header_main_nav__WEBPACK_IMPORTED_MODULE_20__["default"])();
224(0,_modules_header_main_nav_desktop__WEBPACK_IMPORTED_MODULE_21__["default"])();
225(0,_modules_scroll_to_top__WEBPACK_IMPORTED_MODULE_22__["default"])();
226(0,_modules_default_search_block__WEBPACK_IMPORTED_MODULE_24__["default"])();
227(0,_modules_default_search_submit__WEBPACK_IMPORTED_MODULE_25__["default"])(); // for 'Doofinder', 'Emarsys' module and sliders
228
229(0,_modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__["default"])();
230(0,_modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__["default"])('.ks__toBasketForm:not([data-set-ppc-function])');
231(0,_modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__["default"])();
232window.amountSwitcher = _modules_amount_switcher__WEBPACK_IMPORTED_MODULE_31__["default"];
233window.productPriceCalc = _modules_product_price_product_price_calc__WEBPACK_IMPORTED_MODULE_32__["default"];
234window.pageAnhorLinks = _modules_page_anchor_link__WEBPACK_IMPORTED_MODULE_23__["default"]; //
235
236(0,_modules_years_of_expertise__WEBPACK_IMPORTED_MODULE_27__["default"])();
237(0,_modules_copyright_year__WEBPACK_IMPORTED_MODULE_28__["default"])();
238(0,_modules_page_not_found__WEBPACK_IMPORTED_MODULE_29__["default"])();
239window.addToCart = _modules_add_to_cart__WEBPACK_IMPORTED_MODULE_30__["default"];
240(0,_modules_ksseoanalytics_index__WEBPACK_IMPORTED_MODULE_33__["default"])();
241(0,_modules_jq_bootstrap_validation_adapter_init_submit_only_validation__WEBPACK_IMPORTED_MODULE_34__["default"])('form[n
241ame="marketing-popup-form"]');
242(0,_modules_ksmarketing_index__WEBPACK_IMPORTED_MODULE_35__["default"])();
243window.closeMainMenus = _modules_close_main_menus__WEBPACK_IMPORTED_MODULE_36__["default"];
244(0,_modules_ksdoofinder_trigger_doofinder_input__WEBPACK_IMPORTED_MODULE_37__["default"])();
245
246/***/ }),
247
248/***/ "./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js":
249/*!*************************************************************************!*\
250  !*** ./assets/child/WaveElektroWandelt/build/js/modules/add-to-cart.js ***!
251  \*************************************************************************/
252/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
253
254"use strict";
255__webpack_require__.r(__webpack_exports__);
256/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
257/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
258/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
259/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
260/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
261/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__);
262/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
263
264
265
266
267var addToCart = function addToCart(form) {
268  var addToCartLoader = function addToCartLoader(form) {
269    var formSubmitBtn = $(form).find('button.has-loader')[0];
270    $(formSubmitBtn).addClass('loading');
271  };
272
273  var addToCartMessage = function addToCartMessage() {
274    $('.add-to-cart-message').removeClass('d-none');
275    $('.add-to-cart-message').addClass('show');
276    setTimeout(function () {
277      $('.add-to-cart-message').removeClass('show');
278    }, 3000);
279  };
280
281  addToCartLoader(form);
282  addToCartMessage();
283};
284
285/* harmony default export */ __webpack_exports__["default"] = (addToCart);
286
287/***/ }),
288
289/***/ "./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js":
290/*!*****************************************************************************!*\
291  !*** ./assets/child/WaveElektroWandelt/build/js/modules/amount-switcher.js ***!
292  \*****************************************************************************/
293/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
294
295"use strict";
296__webpack_require__.r(__webpack_exports__);
297/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
298/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
299/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
300/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
301/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
302/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);
303/* harmony import */ var _ksdiscontinueditem_limit_amount_switcher_increase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ksdiscontinueditem/limit-amount-switcher-increase */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js");
304/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
305
306
307
308
309
310var amountSwitcher = function amountSwitcher() {
311  $(document).off('click.amountSwitcher', '.ks__amount__switcher_increase').on('click.amountSwitcher', '.ks__amount__switcher_increase', function () {
312    var wrapper = $(this).closest('.ks__amount__switcher');
313    var input = wrapper.find('.ks__amount__switcher_amount');
314    var discontinuedProduct = $(this).closest('[ksdiscontinueditem]');
315
316    if (!(0,_ksdiscontinueditem_limit_amount_switcher_increase__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedProduct)) {
317      input.val(Number(input.val()) + 1).trigger('change');
318    }
319  });
320  $(document).off('click.amountSwitcher', '.ks__amount__switcher_decrease').on('click.amountSwitcher', '.ks__amount__switcher_decrease', function () {
321    var wrapper = $(this).closest('.ks__amount__switcher');
322    var input = wrapper.find('.ks__amount__switcher_amount');
323
324    if (Number(input.val()) > 1) {
325      input.val(Number(input.val()) - 1).trigger('change');
326    }
327  });
328};
329
330/* harmony default export */ __webpack_exports__["default"] = (amountSwitcher);
331
332/***/ }),
333
334/***/ "./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js":
335/*!******************************************************************************!*\
336  !*** ./assets/child/WaveElektroWandelt/build/js/modules/close-main-menus.js ***!
337  \******************************************************************************/
338/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
339
340"use strict";
341__webpack_require__.r(__webpack_exports__);
342/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
343var closeMainMenus = function closeMainMenus() {
344  // "Produktsortiment" menu desktop
345  if ($('.header__mainNav').hasClass('show')) {
346    $('#header__mainNav_btn').trigger('click');
347  } // "Serviceangebot" menu desktop
348
349
350  if ($('.header__serviceNav').hasClass('show')) {
351    $('#header__serviceNav_btn').trigger('click');
352  } // Main menu mobile
353
354
355  if ($('body').hasClass('mobile-menu-open')) {
356    $('.header__mobBtn').trigger('click');
357  }
358};
359
360/* harmony default export */ __webpack_exports__["default"] = (closeMainMenus);
361
362/***/ }),
363
364/***/ "./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js":
365/*!****************************************************************************!*\
366  !*** ./assets/child/WaveElektroWandelt/build/js/modules/copyright-year.js ***!
367  \****************************************************************************/
368/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
369
370"use strict";
371__webpack_require__.r(__webpack_exports__);
372/* harmony import */ var _helpers_get_year__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/get-year */ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js");
373/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
374
375
376var copyrightYear = function copyrightYear() {
377  $('#copyrightYear').html((0,_helpers_get_year__WEBPACK_IMPORTED_MODULE_0__["default"])());
378};
379
380/* harmony default export */ __webpack_exports__["default"] = (copyrightYear);
381
382/***/ }),
383
384/***/ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js":
385/*!**********************************************************************************!*\
386  !*** ./assets/child/WaveElektroWandelt/build/js/modules/default-search-block.js ***!
387  \**********************************************************************************/
388/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
389
390"use strict";
391__webpack_require__.r(__webpack_exports__);
392/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
393var defaultSearchBlock = function defaultSearchBlock() {
394  $('#searchParam').on('keydown', function (e) {
395    if (e.key === 'Enter') {
396      e.preventDefault();
397    }
398  });
399};
400
401/* harmony default export */ __webpack_exports__["default"] = (defaultSearchBlock);
402
403/***/ }),
404
405/***/ "./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js":
406/*!***********************************************************************************!*\
407  !*** ./assets/child/WaveElektroWandelt/build/js/modules/default-search-submit.js ***!
408  \***********************************************************************************/
409/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
410
411"use strict";
412__webpack_require__.r(__webpack_exports__);
413/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
414/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
415/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
416/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
417/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
418
419
420
421var defaultSearchSubmit = function defaultSearchSubmit() {
422  $('#submitDefaultSearch').on('click', function () {
423    var searchValue = $('#searchParam').val().replace(' ', '+');
424    window.location.href = '/?cl=search&searchparam=' + searchValue;
425  });
426};
427
428/* harmony default export */ __webpack_exports__["default"] = (defaultSearchSubmit);
429
430/***/ }),
431
432/***/ "./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js":
433/*!*******************************************************************************************!*\
434  !*** ./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js ***!
435  \*******************************************************************************************/
436/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
437
438"use strict";
439__webpack_require__.r(__webpack_exports__);
440/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js");
441/* harmony import */ var swiper_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/css */ "./node_modules/swiper/swiper.min.css");
442
443
444
445var popupProductsSlider = function popupProductsSlider() {
446  var popupProductSlider = new swiper__WEBPACK_IMPORTED_MODULE_0__["default"]('.popup-productslider', {
447    modules: [swiper__WEBPACK_IMPORTED_MODULE_0__.Autoplay],
448    slidesPerView: 2,
449    spaceBetween: 30,
450    disableOnInteraction: true,
451    loop: true,
452    autoplay: {
453      delay: 4000
454    }
455  });
456};
457
458/* harmony default export */ __webpack_exports__["default"] = (popupProductsSlider);
459
460/***/ }),
461
462/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js":
463/*!*************************************************************************************!*\
464  !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav-desktop.js ***!
465  \*************************************************************************************/
466/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
467
468"use strict";
469__webpack_require__.r(__webpack_exports__);
470/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
471var mainNavDesktop = function mainNavDesktop() {
472  if (window.innerWidth >= 1360) {
473    // active by default
474    var addActive = function addActive() {
475      var hoveredItem;
476      $('.desktop-active').removeClass('desktop-active');
477      $('.mainav__list_item:first-child').addClass('desktop-active');
478      $('.mainav__list_item').hover(function () {
479        hoveredItem = this;
480        $('.desktop-active').removeClass('desktop-active');
481        $(this).addClass('desktop-active');
482      });
483      $('.header__mainNav__dropdown').on('mouseleave', function () {
484        $('.desktop-active').removeClass('desktop-active');
485        $(hoveredItem).addClass('desktop-active');
486      });
487    };
488
489    addActive();
490    $('#header__mainNav_btn').on('click', function () {
491      addActive();
492    }); // open submenu by ">" btn with keyboard
493
494    $('.header__mainNav__dropdown').on('click', function (e) {
495      e.stopPropagation();
496    });
497    $('.nav-item-btn').on('click', function () {
498      var parent = $(this).parent();
499      $('.desktop-active').removeClass('desktop-active');
500      $(parent).addClass('desktop-active');
501    });
502  }
503};
504
505/* harmony default export */ __webpack_exports__["default"] = (mainNavDesktop);
506
507/***/ }),
508
vendor: 8,009 bytes, lines 509-578
509/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js":
510/*!*****************************************************************************!*\
511  !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/main-nav.js ***!
512  \*****************************************************************************/
513/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
514
515"use strict";
516__webpack_require__.r(__webpack_exports__);
517/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
518/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_0__);
519/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
520/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
521/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
522/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_2__);
523/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
524/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__);
525/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
526/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__);
527/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
528/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__);
529/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
530/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_6__);
531/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
532/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__);
533/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
534/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_8__);
535/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
536/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_9__);
537/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
538/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_10__);
539/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.array.is-array.js */ "./node_modules/core-js/modules/es.array.is-array.js");
540/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_11__);
541/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
542
543
544
545
546
547
548
549
550
551
552
553
554
555function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
556
557function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
558
559function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
560
561var mainNav = function mainNav() {
562  $(window).on('load', function () {
563    var menu = document.querySelector('.header__mainNav .mainnavext');
564    var menuDropdown = document.getElementById('header__mainNav__dropdown');
565    var menuItemLinks = document.getElementsByClassName('mainav__list_item_link');
566    var dropDownButton = document.getElementsByClassName('nav-item-btn');
567    var showMenuBtn = document.getElementById('header__mainNav');
568
569    function showMenu() {
570      var asideMenuHTMLCollection = this.parentElement.getElementsByClassName('asideMenu');
571
572      if (asideMenuHTMLCollection) {
573        // toggling class in loop for showing aside menu
574        var _iterator = _createForOfIteratorHelper(asideMenuHTMLCollection),
575            _step;
576
577        try {
578          for (_iterator.s();
578 !(_step = _iterator.n()).done;) {
579            var _menu = _step.value;
580
581            _menu.classList.toggle('active');
582          }
583        } catch (err) {
584          _iterator.e(err);
585        } finally {
586          _iterator.f();
587        }
588
589        this.classList.toggle('active');
590        this.parentElement.classList.toggle('active');
591      }
592    }
593
594    function resizeMenu() {
595      if (menuDropdown && showMenuBtn) {
596        menuDropdown.classList.remove('show');
597        showMenuBtn.classList.remove('show');
598      }
599    }
600
601    if (typeof menu !== 'undefined' && menu !== null) {
602      if (window.innerWidth < 1360) {
603        var _iterator2 = _createForOfIteratorHelper(menuItemLinks),
604            _step2;
605
606        try {
607          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
608            var link = _step2.value;
609            link.setAttribute('data-toggle', 'dropdown');
610          } // loop all buttons for setting eventListeners
611
612        } catch (err) {
613          _iterator2.e(err);
614        } finally {
615          _iterator2.f();
616        }
617
618        var _iterator3 = _createForOfIteratorHelper(dropDownButton),
619            _step3;
620
621        try {
622          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
623            var button = _step3.value;
624            button.addEventListener('click', showMenu);
625          }
626        } catch (err) {
627          _iterator3.e(err);
628        } finally {
629          _iterator3.f();
630        }
631      }
632
633      $(window).on('resize', resizeMenu);
634    }
635  });
636};
637
638/* harmony default export */ __webpack_exports__["default"] = (mainNav);
639
640/***/ }),
641
642/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js":
643/*!**********************************************************************************!*\
644  !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/mobile-header.js ***!
645  \**********************************************************************************/
646/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
647
648"use strict";
649__webpack_require__.r(__webpack_exports__);
650/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js");
651/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_0__);
652/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
653/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
654/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
655/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__);
656/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
657/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_3__);
658/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
659/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_4__);
660/* harmony import */ var _toggle_animation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle-animation */ "./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js");
661
662
663
664
665
666
667
668var mobileHeader = function mobileHeader() {
669  document.addEventListener("DOMContentLoaded", function () {
670    var mobMobileBtn = document.getElementById('header__mobBtn');
671    var menuDropdowns = document.querySelectorAll('.header__mainNav__dropdown');
672    var body = document.querySelector('body');
673
674    var showMobileMenu = function showMobileMenu() {
675      Array.from(menuDropdowns).forEach(function (item) {
676        item.classList.toggle('show');
677        body.classList.toggle('mobile-menu-open');
678      });
679    };
680
681    var resizeMenu = function resizeMenu() {
682      Array.from(menuDropdowns).forEach(function (item) {
683        item.classList.remove('show');
684      });
685    };
686
687    mobMobileBtn.addEventListener('click', function () {
688      showMobileMenu();
689      (0,_toggle_animation__WEBPACK_IMPORTED_MODULE_5__["default"])();
690      window.closeBasket();
691    });
692    window.addEventListener('resize', resizeMenu);
693  });
694};
695
696/* harmony default export */ __webpack_exports__["default"] = (mobileHeader);
697
698/***/ }),
699
700/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js":
701/*!**********************************************************************************!*\
702  !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/sticky-header.js ***!
703  \**********************************************************************************/
704/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
705
706"use strict";
707__webpack_require__.r(__webpack_exports__);
708var stickyHeader = function stickyHeader() {
709  document.addEventListener('DOMContentLoaded', function () {
710    var body = document.body;
711    var header = document.querySelector('.header');
712    var lastScroll = 0;
713    var sticky = header.offsetTop;
714
715    function checkHeaderPosition() {
716      if (window.scrollY > sticky) {
717        header.classList.add('sticky');
718      } else {
719        header.classList.remove('sticky');
720      }
721    }
722
723    window.addEventListener('scroll', function () {
724      var currentScroll = window.scrollY;
725
726      if (currentScroll === 0 || currentScroll < 0) {
727        body.classList.remove('scroll-up');
728        body.classList.add('default-state');
729        return;
730      }
731
732      if (currentScroll > lastScroll && !body.classList.contains('scroll-down')) {
733        // down
734        body.classList.remove('scroll-up');
735        body.classList.remove('default-state');
736        body.classList.add('scroll-down');
737      } else if (currentScroll < lastScroll && body.classList.contains('scroll-down')) {
738        // up
739        body.classList.remove('scroll-down');
740        body.classList.remove('default-state');
741        body.classList.add('scroll-up');
742      }
743
744      lastScroll = currentScroll;
745    });
746
747    window.onscroll = function () {
748      checkHeaderPosition();
749    };
750  });
751};
752
753/* harmony default export */ __webpack_exports__["default"] = (stickyHeader);
754
755/***/ }),
756
757/***/ "./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js":
758/*!*************************************************************************************!*\
759  !*** ./assets/child/WaveElektroWandelt/build/js/modules/header/toggle-animation.js ***!
760  \*************************************************************************************/
761/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
762
763"use strict";
764__webpack_require__.r(__webpack_exports__);
765var toggleAnimation = function toggleAnimation() {
766  var toggleAnimationStyles = document.createElement('style');
767  toggleAnimationStyles.classList.add('toggleAnimationStyles');
768  toggleAnimationStyles.textContent = "\n            .header__mobBtn span:nth-child(1) {\n              animation: ease .7s top-2 forwards;\n            }\n            .header__mobBtn span:nth-child(2) {\n              animation: ease .7s scaled-2 forwards;\n            }\n            .header__mobBtn span:nth-child(3) {\n              animation: ease .7s bottom-2 forwards;\n            }\n\n            @keyframes top-2 {\n              0% {\n                top: 9px;\n                transform: rotate(45deg);\n              }\n              50% {\n                top: 9px;\n                transform: rotate(0deg);\n              }\n              100% {\n                top: 0;\n                transform: rotate(0deg);\n              }\n            }\n            \n            @keyframes bottom-2 {\n              0% {\n                bottom: 9px;\n                transform: rotate(135deg);\n              }\n              50% {\n                bottom: 9px;\n                transform: rotate(0);\n              }\n              100% {\n                bottom: 0;\n                transform: rotate(0);\n              }\n            }\n            \n            @keyframes scaled-2 {\n              0% {\n                transform: scale(0);\n              }\n              50% {\n                transform: scale(0);\n              }\n              100% {\n                transform: scale(1);\n              }\n            }\n        ";
769  var isToggleAnimationStyles = document.querySelector('.toggleAnimationStyles');
770
771  if (!isToggleAnimationStyles) {
772    document.head.appendChild(toggleAnimationStyles);
773  }
774};
775
776/* harmony default export */ __webpack_exports__["default"] = (toggleAnimation);
777
778/***/ }),
779
780/***/ "./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js":
781/*!*************************************************************************************************************************!*\
782  !*** ./assets/child/WaveElektroWandelt/build/js/modules/jq-bootstrap-validation-adapter/init-submit-only-validation.js ***!
783  \*************************************************************************************************************************/
784/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
785
786"use strict";
787__webpack_require__.r(__webpack_exports__);
788/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
789/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
790/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
791/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
792/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
793
794
795
796var initSubmitOnlyValidation = function initSubmitOnlyValidation(formSelector) {
797  $(document).ready(function () {
798    var $fields = $(formSelector + ' input:not([type="hidden"],.hidden),' + formSelector + ' select,' + formSelector + ' textarea').not('[type=submit]').not('altcha-widget input');
799    $fields.each(function () {
800      var $this = $(this);
801
802      var changeEvents = $._data(this, 'events')['change'];
803
804      var originalHandler = changeEvents && changeEvents.find(function (e) {
805        return e.namespace === 'validation';
806      });
807      if (!originalHandler) return;
808      var fn = originalHandler.handler;
809      $this.off('keyup.validation keydown.validation keypress.validation click.validation focus.validation blur.validation change.validation');
810      $this.on('change.validation', function (e, params) {
811        if (!params || !params.submitting) return;
812        fn.call(this, e, params);
813      });
814    });
815  });
816};
817
818/* harmony default export */ __webpack_exports__["default"] = (initSubmitOnlyValidation);
819
820/***/ }),
821
822/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js":
823/*!****************************************************************************!*\
824  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksbasket/index.js ***!
825  \****************************************************************************/
826/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
827
828"use strict";
829__webpack_require__.r(__webpack_exports__);
830/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
831/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
832/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
833/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
834/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
835/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__);
836/* harmony import */ var _details_popup_products_slider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../details/popup-products-slider */ "./assets/child/WaveElektroWandelt/build/js/modules/details/popup-products-slider.js");
837/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
838
839
840
841
842
843var ksAjaxToBasket = function ksAjaxToBasket() {
844  var ksAjaxToBasket = {
845    options: {
846      blBasketPopup: true,
847      sSelectorForm: '',
848      sCurrentProductId: ''
849    },
850    _create: function _create() {
851      var self = this,
852          options = self.options; // add product to basket vie Ajax
853
854      self.AjaxToBasketFormSubmit();
855    },
856
857    /**
858     * Add product to basket vie Ajax   
859     */
860    AjaxToBasketFormSubmit: function AjaxToBasketFormSubmit() {
861      var self = this;
862      var options = self.options;
863      var el = self.element;
864      $(el).on('submit', options.sSelectorForm, function () {
865        var form = $(this);
866        var formSubmitBtn = $(form).find('button[type="submit"]')[0];
867        options.sCurrentProductId = $('input[name=aid]', form).val(); // submit from paypa express
868
869        if ($('input[name=fnc]', this).val() === 'actionExpressCheckoutFromDetailsPage') {// trigger base handler
870        } else {
871          $('#paypalExpressCheckoutDetailsBox').hide(); // hide button paypall express
872
873          $.ajax({
874            url: '/index.php',
875            type: 'post',
876            data: $(this).serialize() + '&cl=oxwminibasket',
877            dataType: 'html',
878            success: function success(data) {
879              if (data) {
880                $('.minibasket-menu-wrapper').html(data); // update minibasket html
881
882                $('.minibasket-menu-wrapper').find("script").each(function () {
883                  eval($(this).text());
884                });
885
886                if (options.blBasketPopup && !($(window).width() < 1360)) {
887                  // update popup data from ekonda and show basket popup
888                  self.updateArticleRecommendationsPopup(formSubmitBtn);
889                } else {
890                  // window.openBasket();
891                  window.addMiniBaskethandlers();
892                  window.adaptiveMinibasketHeight();
893                  $(formSubmitBtn).removeClass('loading');
894                }
895
896                window.addToBasketDiscontinuedItem(form);
897              }
898            }
899          });
900          return false;
901        }
902      });
903    },
904
905    /**
906     * Update popup data from ekonda and show popup
907     * @uses - object oxAjax
908     */
909    updateArticleRecommendationsPopup: function updateArticleRecommendationsPopup(formSubmitBtn) {
910      var self = this;
911      var options = self.options;
912      $.ajax({
913        url: '/widget.php?cl=KsEcondaArticleRecommendations',
914        type: 'get',
915        data: 'sCurrentProductId=' + options.sCurrentProductId + '&isPopup=1',
916        dataType: 'html',
917        success: function success(response) {
918          $('#product-recommendations-popup').html(response); // Removing loading circle from "Add to cart" btn
919
920          $(formSubmitBtn).removeClass('loading'); // Left part of pupup (clone minicart)
921
922          $('.minibasket').clone().appendTo('.basket-items-wrap'); // Loading econda/emarsys slider
923          // we need setTimeout`s for emarsys loading widget
924
925          setTimeout(function () {
926            $('#econdaPopup .swiper').addClass('popup-productslider');
927            (0,_details_popup_products_slider__WEBPACK_IMPORTED_MODULE_3__["default"])();
928          }, 150); // setTimeout(() => { 
929          //     $('#econdaPopup').modal('show');
930          // }, 200)
931
932          window.addMiniBaskethandlers();
933        }
934      });
935    }
936  };
937  $.widget('ui.ksAjaxToBasket', ksAjaxToBasket);
938};
939
940/* harmony default export */ __webpack_exports__["default"] = (ksAjaxToBasket);
941
942/***/ }),
943
944/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js":
945/*!******************************************************************************************************!*\
946  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js ***!
947  \******************************************************************************************************/
948/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
949
950"use strict";
951__webpack_require__.r(__webpack_exports__);
952/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
953/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
954/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
955/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
956/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
957/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_2__);
958/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
959
960
961
962
963var showAlertInfo = function showAlertInfo(discontinuedItem, amountInputValue) {
964  var alertInfo = $(discontinuedItem).find('.ksdiscontinueditem-alert-info');
965  var productUnit = $(discontinuedItem).find('.product-unit').html();
966  $(alertInfo).html('...nur noch ' + amountInputValue + (productUnit !== undefined ? ' ' + productUnit : '') + ' verfügbar');
967  $(alertInfo).addClass('show');
968  setTimeout(function () {
969    $(alertInfo).removeClass('show');
970  }, 3000);
971};
972
973/* harmony default export */ __webpack_exports__["default"] = (showAlertInfo);
974
975/***/ }),
976
977/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js":
978/*!***********************************************************************************************************!*\
979  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js ***!
980  \***********************************************************************************************************/
981/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
982
983"use strict";
984__webpack_require__.r(__webpack_exports__);
985/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
986/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
987/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
988/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
989/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
990/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);
991/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
992
993
994
995
996var minibasketQuantity = function minibasketQuantity(discontinuedItem) {
997  var productAid = $(discontinuedItem).find('[name="aid"]').val();
998  return Number($('[aid="' + productAid + '"]').find('.minibasket__item__info_quantity span').html()) || 0;
999};
1000
1001/* harmony default export */ __webpack_exports__["default"] = (minibasketQuantity);
1002
1003/***/ }),
1004
1005/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js":
1006/*!***************************************************************************************************!*\
1007  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js ***!
1008  \***************************************************************************************************/
1009/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1010
1011"use strict";
1012__webpack_require__.r(__webpack_exports__);
1013/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
1014/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
1015/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1016
1017
1018var productMax = function productMax(discontinuedItem) {
1019  return Number($(discontinuedItem).attr('ks-max'));
1020};
1021
1022/* harmony default export */ __webpack_exports__["default"] = (productMax);
1023
1024/***/ }),
1025
1026/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js":
1027/*!***************************************************************************************************************!*\
1028  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/limit-amount-switcher-increase.js ***!
1029  \***************************************************************************************************************/
1030/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1031
1032"use strict";
1033__webpack_require__.r(__webpack_exports__);
1034/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
1035/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
1036/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
1037/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
1038/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
1039/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__);
1040/* harmony import */ var _helper_product_max__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helper/product-max */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/product-max.js");
1041/* harmony import */ var _helper_minibasket_quantity__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helper/minibasket-quantity */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/helper/minibasket-quantity.js");
1042/* harmony import */ var _alert_show_alert_info__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./alert/show-alert-info */ "./assets/child/WaveElektroWandelt/build/js/modules/ksdiscontinueditem/alert/show-alert-info.js");
1043/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1044
1045
1046
1047
1048
1049
1050
1051var limitAmountSwitcherIncrease = function limitAmountSwitcherIncrease(discontinuedItem) {
1052  if ((0,_helper_product_max__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedItem)) {
1053    var amountInput = $(discontinuedItem).find('.ks__amount__switcher_amount');
1054
1055    if ((0,_helper_product_max__WEBPACK_IMPORTED_MODULE_3__["default"])(discontinuedItem) <= (0,_helper_minibasket_quantity__WEBPACK_IMPORTED_MODULE_4__["default"])(discontinuedItem) + Number(amountInput.val())) {
1056      (0,_alert_show_alert_info__WEBPACK_IMPORTED_MODULE_5__["default"])(discontinuedItem, Number(amountInput.val()));
1057      return true;
1058    }
1059  }
1060};
1061
1062/* harmony default export */ __webpack_exports__["default"] = (limitAmountSwitcherIncrease);
1063
1064/***/ }),
1065
1066/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js":
1067/*!*************************************************************************************************!*\
1068  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksdoofinder/trigger-doofinder-input.js ***!
1069  \*************************************************************************************************/
1070/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1071
1072"use strict";
1073__webpack_require__.r(__webpack_exports__);
1074var triggerDoofinderOnInput = function triggerDoofinderOnInput() {
1075  var _document$getElementB;
1076
1077  (_document$getElementB = document.getElementById('searchParam')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.addEventListener('input', function (e) {
1078    return e.target.click();
1079  });
1080};
1081
1082/* harmony default export */ __webpack_exports__["default"] = (triggerDoofinderOnInput);
1083
1084/***/ }),
1085
1086/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js":
1087/*!************************************************************************************!*\
1088  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/index.js ***!
1089  \************************************************************************************/
1090/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1091
1092"use strict";
1093__webpack_require__.r(__webpack_exports__);
1094/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js");
1095/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__);
1096/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1097
1098
1099var ksImageOptimizer = function ksImageOptimizer() {
1100  var imageoptimizer = {
1101    setWidth: function setWidth(iCurrentWidth) {
1102      $.cookie('imageoptimizer_window_width', iCurrentWidth, {
1103        path: '/'
1104      });
1105    },
1106    getWidth: function getWidth() {
1107      var cookie = $.cookie('imageoptimizer_window_width');
1108      return cookie === null ? 0 : parseInt(cookie);
1109    },
1110    init: function init() {
1111      var iPrevWidth = this.getWidth();
1112      var iCurrentWidth = $(window).width() * window.devicePixelRatio; // init responseImg
1113
1114      $('img').not('.details-productmain-img').responsImg({
1115        allowDownsize: true
1116      });
1117      $('a.responsiveImg').responsImg({
1118        allowDownsize: true
1119      }); // send new display width for user
1120
1121      if (iPrevWidth != iCurrentWidth) {
1122        this.setWidth(iCurrentWidth);
1123      } // on window resize
1124
1125
1126      $(window).resize(function () {
1127        var iCurrentWidth = $(window).width() * window.devicePixelRatio;
1128        imageoptimizer.setWidth(iCurrentWidth);
1129      });
1130    }
1131  }; // on page ready
1132
1133  $(function () {
1134    imageoptimizer.init();
1135  });
1136};
1137
1138/* harmony default export */ __webpack_exports__["default"] = (ksImageOptimizer);
1139
1140/***/ }),
1141
1142/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js":
1143/*!************************************************************************************************!*\
1144  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksimageoptimizer/jquery.responsImg.js ***!
1145  \************************************************************************************************/
1146/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1147
1148"use strict";
1149__webpack_require__.r(__webpack_exports__);
1150/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1151/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
1152/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1153/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
1154/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js");
1155/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__);
1156/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
1157/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__);
1158/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
1159/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_4__);
1160/* harmony import */ var core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js");
1161/* harmony import */ var core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_index_of_js__WEBPACK_IMPORTED_MODULE_5__);
1162/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1163/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1164
1165
1166
1167
1168
1169
1170
1171var responsImg = function responsImg() {
1172  jQuery.responsImg = function (element, settings) {
1173    var checkSizes, config, defineWidth, determineSizes, elementType, getBackgroundImage, getElementType, getMobileWindowWidth, init, largestSize, resizeDetected, resizeTimer, retinaDisplay, rimData, setBackgroundImage, setImage, theWindow;
1174    config = {
1175      allowDownsize: false,
1176      elementQuery: false,
1177      delay: 200,
1178      breakpoints: null,
1179      considerDevice: false
1180    };
1181
1182    if (settings) {
1183      jQuery.extend(config, settings);
1184    }
1185
1186    theWindow = jQuery(window);
1187    element = jQuery(element);
1188    rimData = {};
1189    elementType = null;
1190    resizeTimer = null;
1191    largestSize = 0;
1192    retinaDisplay = false;
1193
1194    init = function init() {
1195      elementType = getElementType(element);
1196
1197      if (window.devicePixelRatio >= 1.5) {
1198        retinaDisplay = true;
1199      }
1200
1201      if (elementType === 'IMG') {
1202        rimData[0] = new Array(element.attr('src'));
1203      } else {
1204        rimData[0] = new Array(getBackgroundImage(element));
1205      }
1206
1207      theWindow.on('resize.responsImg orientationchange.responsImg', resizeDetected);
1208      determineSizes();
1209    };
1210
1211    getBackgroundImage = function getBackgroundImage(element) {
1212      var bg;
1213      bg = element.css('background-image');
1214      bg = bg.replace('url(', '');
1215      bg = bg.replace(')', '');
1216      return bg;
1217    };
1218
1219    getElementType = function getElementType(element) {
1220      return jQuery(element).prop('tagName');
1221    };
1222
1223    determineSizes = function determineSizes() {
1224      var breakKey, breakValue, elData, key, newKey, pattern, ref, value;
1225      elData = element.data();
1226      pattern = /^responsimg/;
1227
1228      for (key in elData) {
1229        value = elData[key];
1230
1231        if (pattern.test(key)) {
1232          newKey = key.replace('responsimg', '');
1233
1234          if (isNaN(newKey)) {
1235            newKey = newKey.toLowerCase();
1236            ref = config.breakpoints;
1237
1238            for (breakKey in ref) {
1239              breakValue = ref[breakKey];
1240
1241              if (newKey === breakKey) {
1242                newKey = breakValue;
1243              }
1244            }
1245          } else {
1246            newKey = parseInt(newKey, 10);
1247          }
1248
1249          rimData[newKey] = value.replace(' ', '').split(',');
1250        }
1251      }
1252
1253      checkSizes();
1254    };
1255
1256    resizeDetected = function resizeDetected() {
1257      clearTimeout(resizeTimer);
1258      resizeTimer = setTimeout(checkSizes, config.delay);
1259    };
1260
1261    defineWidth = function defineWidth() {
1262      var definedWidth, mobileWindowWidth, windowWidth;
1263      definedWidth = null;
1264
1265      if (config.elementQuery === true) {
1266        definedWidth = element.width();
1267
1268        if (window.orientation != null && config.considerDevice) {
1269          windowWidth = theWindow.width();
1270          mobileWindowWidth = getMobileWindowWidth();
1271          definedWidth = Math.ceil(mobileWindowWidth * definedWidth / windowWidth);
1272        }
1273      } else {
1274        if (window.orientation != null && config.considerDevice) {
1275          definedWidth = getMobileWindowWidth();
1276        } else {
1277          definedWidth = theWindow.width();
1278        }
1279      }
1280
1281      return definedWidth;
1282    };
1283
1284    getMobileWindowWidth = function getMobileWindowWidth() {
1285      var mobileWindowWidth;
1286
1287      if (window.orientation === 0) {
1288        mobileWindowWidth = window.screen.width;
1289      } else {
1290        mobileWindowWidth = window.screen.height;
1291      }
1292
1293      if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) {
1294        mobileWindowWidth = mobileWindowWidth / window.devicePixelRatio;
1295      }
1296
1297      return mobileWindowWidth;
1298    };
1299
1300    checkSizes = function checkSizes() {
1301      var currentSelection, doIt, key, newSrc, theWidth, value;
1302      theWidth = defineWidth(); // save width for backend checking
1303
1304      $.cookie("imageoptimizer_defined_width", theWidth, {
1305        path: '/'
1306      });
1307      currentSelection = 0;
1308      doIt = true;
1309      newSrc = '';
1310
1311      if (theWidth > largestSize) {
1312        largestSize = theWidth;
1313      } else if (config.allowDownsize === false) {
1314        doIt = false;
1315      }
1316
1317      if (doIt === true) {
1318        for (key in rimData) {
1319          value = rimData[key];
1320
1321          if (parseInt(key, 10) <= theWidth && parseInt(key, 10) >= currentSelection) {
1322            currentSelection = parseInt(key, 10);
1323            newSrc = rimData[currentSelection][0];
1324          }
1325        }
1326
1327        if (retinaDisplay === true && rimData[currentSelection][1] != null) {
1328          newSrc = rimData[currentSelection][1];
1329        }
1330
1331        if (elementType === 'IMG') {
1332          setImage(element, newSrc);
1333        } else {
1334          setBackgroundImage(element, newSrc);
1335        }
1336      }
1337    };
1338
1339    setImage = function setImage(element, newSrc) {
1340      var oldSrc;
1341      oldSrc = element.attr('src');
1342
1343      if (newSrc !== oldSrc) {
1344        element.attr('src', newSrc);
1345        element.attr('data-src', newSrc);
1346      }
1347    };
1348
1349    setBackgroundImage = function setBackgroundImage(element, newSrc) {
1350      var oldSrc;
1351      oldSrc = getBackgroundImage(element);
1352
1353      if (newSrc !== oldSrc) {
1354        element.css('background-image', 'url(' + newSrc + ')');
1355      }
1356    };
1357
1358    init();
1359
1360    this.recheck = function () {
1361      checkSizes();
1362    };
1363
1364    return this;
1365  };
1366
1367  jQuery.fn.responsImg = function (options) {
1368    return this.each(function () {
1369      var jQthis, plugin;
1370      jQthis = jQuery(this);
1371
1372      if (jQthis.data('responsImg') === void 0) {
1373        plugin = new jQuery.responsImg(this, options);
1374        jQthis.data('responsImg', plugin);
1375      }
1376    });
1377  };
1378};
1379
1380/* harmony default export */ __webpack_exports__["default"] = (responsImg);
1381
1382/***/ }),
1383
1384/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js":
1385/*!*******************************************************************************!*\
1386  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksmarketing/index.js ***!
1387  \*******************************************************************************/
1388/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1389
1390"use strict";
1391__webpack_require__.r(__webpack_exports__);
1392/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.now.js */ "./node_modules/core-js/modules/es.date.now.js");
1393/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__);
1394/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js");
1395/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
1396/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js");
1397/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_2__);
1398/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
1399/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__);
1400/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
1401/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__);
1402/* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.promise.js */ "./node_modules/core-js/modules/es.promise.js");
1403/* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_5__);
1404/* harmony import */ var core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.promise.finally.js */ "./node_modules/core-js/modules/es.promise.finally.js");
1405/* harmony import */ var core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally_js__WEBPACK_IMPORTED_MODULE_6__);
1406/* harmony import */ var _swipe_to_close_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../swipe-to-close.js */ "./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js");
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416var ksMarketing = function ksMarketing() {
1417  document.addEventListener('DOMContentLoaded', function () {
1418    var popup = document.querySelector('.ks-marketing-popup');
1419    if (!popup) return;
1420    var STORAGE_KEY = 'marketingPopupClosedUntil';
1421    var DAY_MS = 24 * 60 * 60 * 1000;
1422    var BLOCK_DURATION_LOGGED_IN = 14 * DAY_MS;
1423    var BLOCK_DURATION_GUEST = 7 * DAY_MS;
1424    var SCROLL_TRIGGER_PERCENT = 50;
1425    var TIME_TRIGGER_MS = 20 * 1000;
1426    var popupCloseBtn = popup.querySelector('.ks-marketing-popup-close');
1427    var popupSwipeHandler = popup.querySelector('.ks-marketing-popup-swipe-handler');
1428    var popupForm = popup.querySelector('form[name="marketing-popup-form"]');
1429    var popupBody = popup.querySelector('.ks-marketing-popup-body');
1430    var hasTriggered = false;
1431    var scrollTimer = null;
1432
1433    function isBlocked() {
1434      var blockedUntil = localStorage.getItem(STORAGE_KEY);
1435      if (!blockedUntil) return false;
1436      return Date.now() < parseInt(blockedUntil, 10);
1437    }
1438
1439    function setBlocked() {
1440      var duration = isUserLoggedIn ? BLOCK_DURATION_LOGGED_IN : BLOCK_DURATION_GUEST;
1441      localStorage.setItem(STORAGE_KEY, String(Date.now() + duration));
1442    }
1443
1444    function openPopup() {
1445      if (hasTriggered) return;
1446      hasTriggered = true;
1447      document.body.classList.add('ks-marketing-popup-open');
1448      window.removeEventListener('scroll', onScroll);
1449      clearTimeout(scrollTimer);
1450    }
1451
1452    function closePopup() {
1453      document.body.classList.remove('ks-marketing-popup-open');
1454      setBlocked();
1455    }
1456
1457    function getScrollPercent() {
1458      var scrollTop = window.scrollY || document.documentElement.scrollTop;
1459      var docHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
1460      if (docHeight <= 0) return 0;
1461      return scrollTop / docHeight * 100;
1462    }
1463
1464    function onScroll() {
1465      if (getScrollPercent() >= SCROLL_TRIGGER_PERCENT) {
1466        openPopup();
1467      }
1468    } // --- init triggers (only if not blocked) ---
1469
1470
1471    if (!isBlocked()) {
1472      window.addEventListener('scroll', onScroll, {
1473        passive: true
1474      });
1475      scrollTimer = setTimeout(openPopup, TIME_TRIGGER_MS);
1476    } // --- close button ---
1477
1478
1479    if (popupCloseBtn) {
1480      popupCloseBtn.addEventListener('click', closePopup);
1481    } // --- swipe to close (mobile only) ---
1482
1483
1484    if (popupSwipeHandler) {
1485      (0,_swipe_to_close_js__WEBPACK_IMPORTED_MODULE_7__["default"])({
1486        container: popup,
1487        handler: popupSwipeHandler,
1488        onClose: closePopup,
1489        closeThreshold: 150,
1490        velocityThreshold: 1,
1491        mediaQuery: '(max-width: 576px)'
1492      });
1493    } // --- form submit ---
1494
1495
1496    if (popupForm) {
1497      popupForm.addEventListener('submit', function (e) {
1498        e.preventDefault();
1499
1500        if (popupForm.querySelector('[aria-invalid="true"]')) {
1501          return;
1502        }
1503
1504        var submitBtn = popupForm.querySelector('button[type="submit"]');
1505
1506        if (submitBtn) {
1507          submitBtn.classList.add('loading');
1508        }
1509
1510        var formData = new FormData(popupForm);
1511        fetch(popupForm.getAttribute('action'), {
1512          method: 'POST',
1513          body: formData,
1514          headers: {
1515            'X-Requested-With': 'XMLHttpRequest'
1516          }
1517        }).then(function (response) {
1518          return response.json();
1519        }).then(function (data) {
1520          if (data && data.success && popupBody) {
1521            popupBody.classList.add('is-success');
1522          }
1523        })["catch"](function (err) {
1524          console.log('error: ' + err);
1525        })["finally"](function () {
1526          if (submitBtn) {
1527            submitBtn.classList.remove('loading');
1528          }
1529        });
1530      });
1531    }
1532  });
1533};
1534
1535/* harmony default export */ __webpack_exports__["default"] = (ksMarketing);
1536
1537/***/ }),
1538
1539/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js":
1540/*!**************************************************************************!*\
1541  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksmenu/index.js ***!
1542  \**************************************************************************/
1543/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1544
1545"use strict";
1546__webpack_require__.r(__webpack_exports__);
1547/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
1548/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
1549/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
1550/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
1551/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
1552/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__);
1553/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
1554/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_3__);
1555/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
1556/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__);
1557/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
1558/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__);
1559/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
1560/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__);
1561/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
1562/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__);
1563/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1574
1575var ksMenu = function ksMenu() {
1576  !function (a) {
1577    var b = {
1578      pageX: 0,
1579      pageY: 0
1580    },
1581        c = {
1582      pageX: 0,
1583      pageY: 0
1584    };
1585    a(document).on("touchstart", function (a) {
1586      b = a.originalEvent.touches[0], c = b;
1587    }).on("touchmove", function (a) {
1588      c = a.originalEvent.touches[0];
1589    }).on("touchend", function (d) {
1590      var e = 10,
1591          f = b.clientX > c.clientX ? b.clientX - c.clientX : c.clientX - b.clientX,
1592          g = b.clientY > c.clientY ? b.clientY - c.clientY : c.clientY - b.clientY;
1593      f <= e && g <= e && (d.type = "touchclick", a(d.target).trigger(d));
1594    }
1594), window.checkMenuSize = function (b, c, d) {
1595      void 0 === c && (c = !1), "object" != _typeof(d) && (d = a(".dd-menu .navbar-nav"));
1596      var e = a(".moreLinks", d),
1597          f = a(this).width() <= 750,
1598          g = 0,
1599          h = d.width();
1600
1601      if (h += 2, d.children("li:not(.moreLinks)").each(function () {
1602        g += a(this).width();
1603      }), !f && g > h) {
1604        var i = 0;
1605        e.show();
1606
1607        do {
1608          var j = d.children("li:not(.moreLinks)").last();
1609          if (!j.length) break;
1610          e.children(".dropdown-menu").prepend(j), i = 0, d.children("li").each(function () {
1611            i += a(this).width();
1612          });
1613        } while (i > h);
1614      } else {
1615        var j = d.children("li:not(.moreLinks)").last(),
1616            k = e.children(".dropdown-menu").children("li");
1617        j.length ? j.after(k) : d.prepend(k), e.hide(), f || c || this.checkMenuSize.call(this, b, !0, d);
1618      }
1619    }, void 0 !== window.blDisableMegaMenuMoreButton && 0 != window.blDisableMegaMenuMoreButton || a(window).on("resize", window.checkMenuSize).on("load", window.checkMenuSize), a(function () {
1620      a('.dd-menu .dd-nav-category-menu li[data-cat-pic!=""]').mouseenter(function () {
1621        a(".dd-nav-category-img img", a(this).closest(".dd-nav-category ")).attr("src", a(this).data("cat-pic"));
1622      }).mouseleave(function () {
1623        var b = a(".dd-nav-category-img img", a(this).closest(".dd-nav-category"));
1624        b.attr("src", b.data("main-pic"));
1625      }), a(document).on("touchclick", function (b) {
1626        a(b.target).closest(".dropdown").length || a(b.target).hasClass("dropdown") || a(".dropdown").removeClass("open");
1627      }), a(".nav li.dd-tree-dropdown>.dropdown-toggle, .nav li.dd-expand-dropdown>.dropdown-toggle").click(function (b) {
1628        if (a(window).width() < 768) {
1629          if ("object" == (typeof Flow === "undefined" ? "undefined" : _typeof(Flow)) || "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE))) {
1630            a(".caret", this).removeClass("caret").addClass("fa fa-caret-down");
1631            var c = a(this).parent("li.dd-tree-dropdown, li.dd-expand-dropdown");
1632            a(c).hasClass("open") ? (a(".nav li.dd-tree-dropdown, .nav li.dd-expand-dropdown").removeClass("open", "active"), a(".dd-menu .fa-caret-up").removeClass("fa-caret-up").addClass("fa-caret-down")) : (a(".dd-menu .fa-caret-up").removeClass("fa-caret-up").addClass("fa-caret-down"), a(".fa-caret-down", this).removeClass("fa-caret-down").addClass("fa-caret-up"), a(".nav li.dd-tree-dropdown, .nav li.dd-expand-dropdown").removeClass("open", "active"), a(c).addClass("open")), b.stopPropagation();
1633          }
1634
1635          b.preventDefault();
1636        }
1637      }), a(".dd-menu").on("shown.bs.collapse", function () {
1638        if (a(window).width() < 768 && ("object" == (typeof Flow === "undefined" ? "undefined" : _typeof(Flow)) || "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE)))) {
1639          var b = a(".dd-menu").get(0).getBoundingClientRect(),
1640              c = b.top,
1641              d = window.innerHeight || a(window).height();
1642          a(".dd-menu").css("max-height", d - c + "px");
1643        }
1644      }), "object" == (typeof RoxIVE === "undefined" ? "undefined" : _typeof(RoxIVE)) && (a(".dd-nav-content").addClass("dd-font-color"), a(".nav>li").addClass("remove-bottom-li"), a(".menu-header-span").addClass("menu-color"), a(".dd-menu .nav li").addClass("dd-menu-li-bottom")), a(".header-box").hasClass("menu-in-header") ? a(".navbar-collapse").css("padding-left", 382) : a(".header-box").hasClass("boxed") && a(".navbar-collapse").css("padding-left", 15), a(".dropdown-menu a.dropdown-toggle > .caret").on("click", function () {
1645        var b = a(this).parents("a.dropdown-toggle");
1646        return a(b).next().hasClass("show") || a(b).parents(".dropdown-menu").first().find(".show").removeClass("show"), a(b).next(".dropdown-menu").toggleClass("show"), a(b).parents("li.nav-item.dropdown.show").on("hidden.bs.dropdown", function (b) {
1647          a(".dropdown-submenu .show").removeClass("show");
1648        }), !1;
1649      });
1650    });
1651  }(jQuery);
1652};
1653
1654/* harmony default export */ __webpack_exports__["default"] = (ksMenu);
1655
1656/***/ }),
1657
1658/***/ "./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js":
1659/*!**********************************************************************************!*\
1660  !*** ./assets/child/WaveElektroWandelt/build/js/modules/ksseoanalytics/index.js ***!
1661  \**********************************************************************************/
1662/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1663
1664"use strict";
1665__webpack_require__.r(__webpack_exports__);
1666/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ "./node_modules/core-js/modules/es.parse-int.js");
1667/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_0__);
1668/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
1669/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_1__);
1670/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
1671/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);
1672/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js");
1673/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_3__);
1674/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
1675/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__);
1676/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1677/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__);
1678/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1679/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__);
1680/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
1681/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__);
1682/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692var productListEvents = function productListEvents() {
1693  window.selectItemEvent = function (e) {
1694    var currentForm = e.closest('form'); // gtm event
1695
1696    window.dataLayer = window.dataLayer || [];
1697    window.dataLayer.push({
1698      event: 'select_item',
1699      ecommerce: {
1700        items: getEventDataFromForm(currentForm)
1701      }
1702    });
1703  };
1704
1705  window.addToCartEvents = function (currentForm) {
1706    // gtm event
1707    window.dataLayer = window.dataLayer || [];
1708    window.dataLayer.push({
1709      event: 'add_to_cart',
1710      ecommerce: {
1711        items: getEventDataFromForm(currentForm, event = 'addToCartEvent')
1712      }
1713    }); // tracify event
1714
1715    tracify.captureAddToCart({
1716      quantity: setQuantity(currentForm)
1717    });
1718  }; // get data for events:
1719
1720
1721  var setQuantity = function setQuantity(form) {
1722    return parseInt($(form).find('.ks__amount__switcher_amount').val());
1723  };
1724
1725  var getEventDataFromForm = function getEventDataFromForm(form, event) {
1726    var data = {
1727      item_name: $(form).find('.ks__listDetails__title span:nth-child(1)').html(),
1728      item_id: $(form).attr('data-artnr'),
1729      quantity: event === 'addToCartEvent' ? setQuantity(form) : 1
1730    };
1731
1732    if (data.item_brand !== '') {
1733      Object.assign(data, {
1734        item_brand: $(form).find('.ks__listDetails__vendor_wrapper img').attr('alt')
1735      });
1736    }
1737
1738    if (data.price !== '') {
1739      Object.assign(data, {
1740        price: Number($(form).find('.price').html().slice(0, -2).replace('.', '').replace(',', '.').replace(' ', ''))
1741      });
1742    }
1743
1744    return [data];
1745  };
1746};
1747
1748/* harmony default export */ __webpack_exports__["default"] = (productListEvents);
1749
1750/***/ }),
1751
1752/***/ "./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js":
1753/*!********************************************************************************!*\
1754  !*** ./assets/child/WaveElektroWandelt/build/js/modules/minibasket-handler.js ***!
1755  \********************************************************************************/
1756/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1757
1758"use strict";
1759__webpack_require__.r(__webpack_exports__);
1760/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
1761/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_0__);
1762/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1763
1764
1765var minibasketHandler = function minibasketHandler() {
1766  window.openBasket = function () {
1767    $('.minibasket-menu').addClass('show');
1768    $('body').addClass('minibasket-menu-open');
1769
1770    if (typeof showButtonExpress == 'function') {
1771      showButtonExpress();
1772    }
1773  };
1774
1775  window.closeBasket = function () {
1776    $('.minibasket-menu').removeClass('show');
1777    $('body').removeClass('minibasket-menu-open');
1778  }; // Adding new click events because Doofinder and kaAjax destroy them
1779
1780
1781  window.addMiniBaskethandlers = function () {
1782    $('.minibasket__open-btn').click(function () {
1783      // window.openBasket();
1784      document.location.href = '/warenkorb/';
1785    });
1786    $('.minibasket__close-btn').click(function () {
1787      window.closeBasket();
1788    });
1789  };
1790
1791  window.addMiniBaskethandlers();
1792
1793  window.adaptiveMinibasketHeight = function () {
1794    var windowHeight = window.innerHeight;
1795    var minibasketFooterHeight = $('.minibasket__footer').outerHeight();
1796    var heightHeight = $('.header').height(); // append <style> because ksAjaxToBasket rebuild all minibasket DOM
1797    // 34 - PT for .minibasket__close-btn
1798
1799    $('.minibasket-styles').html('<style>.minibasket {max-height: ' + (windowHeight - minibasketFooterHeight - heightHeight - 36) + 'px}</style>');
1800  }; // paypal btns loaded after document ready
1801
1802
1803  setTimeout(function () {
1804    window.adaptiveMinibasketHeight();
1805  }, 500); // mobile topbar
1806
1807  $(window).on('resize', function () {
1808    window.adaptiveMinibasketHeight();
1809  });
1810};
1811
1812/* harmony default export */ __webpack_exports__["default"] = (minibasketHandler);
1813
1814/***/ }),
1815
1816/***/ "./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js":
1817/*!******************************************************************************!*\
1818  !*** ./assets/child/WaveElektroWandelt/build/js/modules/page-anchor-link.js ***!
1819  \******************************************************************************/
1820/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1821
1822"use strict";
1823__webpack_require__.r(__webpack_exports__);
1824/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1825/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
1826/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1827/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
1828/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js");
1829/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__);
1830/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers.js */ "./node_modules/core-js/modules/web.timers.js");
1831/* harmony import */ var core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers_js__WEBPACK_IMPORTED_MODULE_3__);
1832/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1833
1834
1835
1836
1837
1838var pageAnhorLinks = function pageAnhorLinks() {
1839  var PAGE_ANCHOR_LINK_CLASS = '.page-anchor-link';
1840  var PAGE_ANCHOR_LINK = 'pageAnchorLink';
1841  $(PAGE_ANCHOR_LINK_CLASS + '.availability-status').each(function () {
1842    $(this).attr('page-anchor-link', $(this).attr('page-anchor-link').replaceAll('** ', '').replaceAll(' ', '-'));
1843  });
1844  $(PAGE_ANCHOR_LINK_CLASS).click(function (e) {
1845    var pageAnhorLinkAttr = $(this).attr('page-anchor-link');
1846    var href = $(this).attr('href');
1847
1848    if (!href || href === '#' || href === window.location.href || href === window.location.pathname) {
1849      e.preventDefault();
1850
1851      if ($('body').hasClass('mobile-menu-open')) {
1852        $('.header__mobBtn').trigger('click');
1853      }
1854
1855      var target = $(pageAnhorLinkAttr);
1856
1857      if (pageAnhorLinkAttr && target.length) {
1858        $('html, body').animate({
1859          scrollTop: target.offset().top - $('.header').height()
1860        }, 500);
1861      }
1862    } else {
1863      sessionStorage.setItem(PAGE_ANCHOR_LINK, pageAnhorLinkAttr);
1864    }
1865  });
1866  setTimeout(function () {
1867    var pageAnhorLink = $(sessionStorage.getItem(PAGE_ANCHOR_LINK));
1868
1869    if (pageAnhorLink.length) {
1870      $('html, body').animate({
1871        scrollTop: pageAnhorLink.offset().top - $('.header').height()
1872      }, 500);
1873      sessionStorage.removeItem(PAGE_ANCHOR_LINK);
1874    }
1875  }, 100);
1876};
1877
1878/* harmony default export */ __webpack_exports__["default"] = (pageAnhorLinks);
1879
1880/***/ }),
1881
1882/***/ "./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js":
1883/*!****************************************************************************!*\
1884  !*** ./assets/child/WaveElektroWandelt/build/js/modules/page-not-found.js ***!
1885  \****************************************************************************/
1886/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1887
1888"use strict";
1889__webpack_require__.r(__webpack_exports__);
1890/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1891var pageNotFound = function pageNotFound() {
1892  if ($('.page-not-found').length) {
1893    if (!$('.not-found-background').length) {
1894      $('.footer').prepend('<div class="not-found-background"></div>');
1895    }
1896
1897    var notFoundBackgroundHeight = window.innerWidth / 4.1;
1898    $('.content-box').css('padding-bottom', notFoundBackgroundHeight + 'px');
1899    $('.not-found-background').css('height', notFoundBackgroundHeight + 'px');
1900    $('.not-found-background').css('top', '-' + notFoundBackgroundHeight + 'px');
1901  }
1902};
1903
1904window.addEventListener('resize', pageNotFound);
1905/* harmony default export */ __webpack_exports__["default"] = (pageNotFound);
1906
1907/***/ }),
1908
1909/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js":
1910/*!**************************************************************************************************!*\
1911  !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js ***!
1912  \**************************************************************************************************/
1913/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1914
1915"use strict";
1916__webpack_require__.r(__webpack_exports__);
1917/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1918/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
1919/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1920/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
1921/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js");
1922/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_2__);
1923
1924
1925
1926
1927var numberToPriceFormat = function numberToPriceFormat(number) {
1928  return number.toLocaleString('en-US', {
1929    minimumFractionDigits: 2
1930  }).replace('.', ' ').replaceAll(',', '.').replace(' ', ',') + " \u20AC";
1931};
1932
1933/* harmony default export */ __webpack_exports__["default"] = (numberToPriceFormat);
1934
1935/***/ }),
1936
1937/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js":
1938/*!**************************************************************************************************!*\
1939  !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js ***!
1940  \**************************************************************************************************/
1941/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1942
1943"use strict";
1944__webpack_require__.r(__webpack_exports__);
1945/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js");
1946/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
1947/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1948/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__);
1949/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1950/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__);
1951/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
1952/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_3__);
1953/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js");
1954/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_4__);
1955
1956
1957
1958
1959
1960
1961var priceFormatToNumber = function priceFormatToNumber(stringPriceContainer) {
1962  return Number(stringPriceContainer.html().replaceAll(' ', '').replaceAll('.', '').slice(0, -1).replace(',', '.'));
1963};
1964
1965/* harmony default export */ __webpack_exports__["default"] = (priceFormatToNumber);
1966
1967/***/ }),
1968
1969/***/ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js":
1970/*!**********************************************************************************************!*\
1971  !*** ./assets/child/WaveElektroWandelt/build/js/modules/product-price/product-price-calc.js ***!
1972  \**********************************************************************************************/
1973/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1974
1975"use strict";
1976__webpack_require__.r(__webpack_exports__);
1977/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
1978/* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
1979/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
1980/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
1981/* harmony import */ var core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.parse-float.js */ "./node_modules/core-js/modules/es.parse-float.js");
1982/* harmony import */ var core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_float_js__WEBPACK_IMPORTED_MODULE_2__);
1983/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
1984/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_3__);
1985/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
1986/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__);
1987/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.string.replace-all.js */ "./node_modules/core-js/modules/esnext.string.replace-all.js");
1988/* harmony import */ var core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_string_replace_all_js__WEBPACK_IMPORTED_MODULE_5__);
1989/* harmony import */ var _number_to_price_format__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number-to-price-format */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/number-to-price-format.js");
1990/* harmony import */ var _price_format_to_number__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./price-format-to-number */ "./assets/child/WaveElektroWandelt/build/js/modules/product-price/price-format-to-number.js");
1991/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001var productPriceCalc = function productPriceCalc(formClass) {
2002  $(formClass).each(function () {
2003    var _this = this;
2004
2005    $(this).attr('data-set-ppc-function', '');
2006    var priceContainer = $(this).find('.price');
2007
2008    if (priceContainer.length) {
2009      var switcherContainer = $(this).find('.ks__amount__switcher');
2010      var oldPriceContainer = $(this).find('.price-old .value');
2011      var discountPriceContainer = $(this).find('.price-discount .value');
2012      var price = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(priceContainer);
2013
2014      if (oldPriceContainer.length) {
2015        var oldPrice = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(oldPriceContainer);
2016      }
2017
2018      if (discountPriceContainer.length) {
2019        var discountPrice = (0,_price_format_to_number__WEBPACK_IMPORTED_MODULE_7__["default"])(discountPriceContainer);
2020      }
2021
2022      var getQuantityPrice = function getQuantityPrice(quantity, defaultPrice) {
2023        var priceListContainer = $(_this).find('.price-info-tooltip table');
2024        var currentPrice = defaultPrice;
2025
2026        if (priceListContainer.length) {
2027          priceListContainer.find('tr').each(function (idx, el) {
2028            if ($(el).data('min') <= quantity && $(el).data('max') >= quantity) {
2029              currentPrice = parseFloat($(el).data('value').replaceAll(' ', '').replaceAll('.', '').replace(',', '.'));
2030            }
2031          });
2032        }
2033
2034        return currentPrice;
2035      };
2036
2037      var calcPrice = function calcPrice() {
2038        var quantity = $(_this).find('.ks__amount__switcher input').val();
2039        var totalPrice = quantity * getQuantityPrice(quantity, price);
2040        priceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totalPrice));
2041
2042        if (oldPriceContainer.length) {
2043          var totaloldPrice = quantity * oldPrice;
2044          oldPriceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totaloldPrice));
2045        }
2046
2047        if (discountPriceContainer.length) {
2048          var totalDiscountPrice = quantity * discountPrice;
2049          discountPriceContainer.html((0,_number_to_price_format__WEBPACK_IMPORTED_MODULE_6__["default"])(totalDiscountPrice));
2050        }
2051      };
2052
2053      switcherContainer.change(function () {
2054        calcPrice();
2055      });
2056    }
2057  });
2058};
2059
2060/* harmony default export */ __webpack_exports__["default"] = (productPriceCalc);
2061
2062/***/ }),
2063
2064/***/ "./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js":
2065/*!***************************************************************************!*\
2066  !*** ./assets/child/WaveElektroWandelt/build/js/modules/scroll-to-top.js ***!
2067  \***************************************************************************/
2068/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2069
2070"use strict";
2071__webpack_require__.r(__webpack_exports__);
2072/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
2073var scrollToTop = function scrollToTop() {
2074  var scrollToTopEl = $('#scroll-to-top');
2075  var SHOW_CLASS = 'show';
2076  $(window).on('scroll', function () {
2077    if ($(this).scrollTop() > window.innerHeight) {
2078      $(scrollToTopEl).addClass(SHOW_CLASS);
2079    } else {
2080      $(scrollToTopEl).removeClass(SHOW_CLASS);
2081    }
2082  });
2083  $(scrollToTopEl).click(function (e) {
2084    e.preventDefault();
2085    $('html, body').animate({
2086      scrollTop: 0
2087    }, 300);
2088  });
2089};
2090
2091/* harmony default export */ __webpack_exports__["default"] = (scrollToTop);
2092
2093/***/ }),
2094
2095/***/ "./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js":
2096/*!****************************************************************************!*\
2097  !*** ./assets/child/WaveElektroWandelt/build/js/modules/swipe-to-close.js ***!
2098  \****************************************************************************/
2099/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2100
2101"use strict";
2102__webpack_require__.r(__webpack_exports__);
2103/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.date.now.js */ "./node_modules/core-js/modules/es.date.now.js");
2104/* harmony import */ var core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_now_js__WEBPACK_IMPORTED_MODULE_0__);
2105/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js");
2106/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
2107
2108
2109
2110var swipeToClose = function swipeToClose(options) {
2111  var container = options.container;
2112  var handler = options.handler;
2113  var onClose = options.onClose;
2114  var closeThreshold = options.closeThreshold || 150;
2115  var velocityThreshold = options.velocityThreshold || 1;
2116  var mql = options.mediaQuery ? window.matchMedia(options.mediaQuery) : null;
2117
2118  if (!container || !handler || typeof onClose !== 'function') {
2119    return {
2120      destroy: function destroy() {}
2121    };
2122  }
2123
2124  var startY = 0;
2125  var currentY = 0;
2126  var startTime = 0;
2127  var isDragging = false;
2128
2129  function isActive() {
2130    return !mql || mql.matches;
2131  }
2132
2133  function onPointerDown(e) {
2134    if (!isActive()) return;
2135    startY = e.clientY;
2136    startTime = Date.now();
2137    isDragging = true;
2138    container.style.transition = 'none';
2139    handler.setPointerCapture(e.pointerId);
2140  }
2141
2142  function onPointerMove(e) {
2143    if (!isDragging) return;
2144    currentY = e.clientY;
2145    var diff = currentY - startY;
2146
2147    if (diff > 0) {
2148      container.style.transform = 'translateY(' + diff + 'px)';
2149    }
2150  }
2151
2152  function onPointerUp(e) {
2153    if (!isDragging) return;
2154    isDragging = false;
2155    handler.releasePointerCapture(e.pointerId);
2156    var diff = currentY - startY;
2157    var duration = Date.now() - startTime || 1;
2158    var velocity = diff / duration;
2159    container.style.transition = '';
2160    container.style.transform = '';
2161
2162    if (diff > closeThreshold || velocity > velocityThreshold) {
2163      onClose();
2164    }
2165
2166    startY = 0;
2167    currentY = 0;
2168  }
2169
2170  handler.addEventListener('pointerdown', onPointerDown);
2171  handler.addEventListener('pointermove', onPointerMove);
2172  handler.addEventListener('pointerup', onPointerUp);
2173
2174  function destroy() {
2175    handler.removeEventListener('pointerdown', onPointerDown);
2176    handler.removeEventListener('pointermove', onPointerMove);
2177    handler.removeEventListener('pointerup', onPointerUp);
2178  }
2179
2180  return {
2181    destroy: destroy
2182  };
2183};
2184
2185/* harmony default export */ __webpack_exports__["default"] = (swipeToClose);
2186
2187/***/ }),
2188
2189/***/ "./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js":
2190/*!********************************************************************************!*\
2191  !*** ./assets/child/WaveElektroWandelt/build/js/modules/years-of-expertise.js ***!
2192  \********************************************************************************/
2193/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2194
2195"use strict";
2196__webpack_require__.r(__webpack_exports__);
2197/* harmony import */ var _helpers_get_year__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/get-year */ "./assets/child/WaveElektroWandelt/build/js/helpers/get-year.js");
2198/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
2199
2200
2201var yearsOfExpertise = function yearsOfExpertise() {
2202  var yearsOfExpertise = (0,_helpers_get_year__WEBPACK_IMPORTED_MODULE_0__["default"])() - 2005;
2203  $('.yearsOfExpertise').each(function () {
2204    $(this).html(yearsOfExpertise);
2205  });
2206};
2207
2208/* harmony default export */ __webpack_exports__["default"] = (yearsOfExpertise);
2209
2210/***/ }),
2211
vendor: 2,125 bytes, lines 2212-2273
2212/***/ "./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js":
2213/*!********************************************************************!*\
2214  !*** ./assets/wave/build/vendor/jquery-unveil/js/jquery.unveil.js ***!
2215  \********************************************************************/
2216/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
2217
2218/* provided dependency */ var __webpack_provided_window_dot_jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
2219__webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
2220
2221__webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
2222
2223/**
2224 * jQuery Unveil
2225 * A very lightweight jQuery plugin to lazy load images
2226 * http://luis-almeida.github.com/unveil
2227 *
2228 * Licensed under the MIT license.
2229 * Copyright 2013 Luís Almeida
2230 * https://github.com/luis-almeida
2231 */
2232;
2233
2234(function ($) {
2235  $.fn.unveil = function (threshold, callback) {
2236    var $w = $(window),
2237        th = threshold || 0,
2238        retina = window.devicePixelRatio > 1,
2239        attrib = retina ? "data-src-retina" : "data-src",
2240        images = this,
2241        loaded;
2242    this.one("unveil", function () {
2243      var source = this.getAttribute(attrib);
2244      source = source || this.getAttribute("data-src");
2245
2246      if (source) {
2247        this.setAttribute("src", source);
2248        if (typeof callback === "function") callback.call(this);
2249      }
2250    });
2251
2252    function unveil() {
2253      var inview = images.filter(function () {
2254        var $e = $(this);
2255        if ($e.is(":hidden")) return;
2256        var wt = $w.scrollTop(),
2257            wb = wt + $w.height(),
2258            et = $e.offset().top,
2259            eb = et + $e.height();
2260        return eb >= wt - th && et <= wb + th;
2261      });
2262      loaded = inview.trigger("unveil");
2263      images = images.not(loaded);
2264    }
2265
2266    $w.on("scroll.unveil resize.unveil lookup.unveil", unveil);
2267    unveil();
2268    return this;
2269  };
2270})(__webpack_provided_window_dot_jQuery || window.Zepto);
2271
2272/***/ }),
2273
vendor: 59,743 bytes, lines 2274-4340
2274/***/ "./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js":
2275/*!**********************************************************************!*\
2276  !*** ./node_modules/bootstrap-datepicker/js/bootstrap-datepicker.js ***!
2277  \**********************************************************************/
2278/***/ (function(module, exports, __webpack_require__) {
2279
2280var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* =========================================================
2281 * bootstrap-datepicker.js
2282 * Repo: https://github.com/uxsolutions/bootstrap-datepicker/
2283 * Demo: https://uxsolutions.github.io/bootstrap-datepicker/
2284 * Docs: https://bootstrap-datepicker.readthedocs.org/
2285 * =========================================================
2286 * Licensed under the Apache License, Version 2.0 (the "License");
2287 * you may not use this file except in compliance with the License.
2288 * You may obtain a copy of the License at
2289 *
2290 * https://www.apache.org/licenses/LICENSE-2.0
2291 *
2292 * Unless required by applicable law or agreed to in writing, software
2293 * distributed under the License is distributed on an "AS IS" BASIS,
2294 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2295 * See the License for the specific language governing permissions and
2296 * limitations under the License.
2297 * ========================================================= */
2298
2299(function(factory){
2300    if (true) {
2301        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
2302		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
2303		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
2304		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
2305    } else {}
2306}(function($, undefined){
2307	function UTCDate(){
2308		return new Date(Date.UTC.apply(Date, arguments));
2309	}
2310	function UTCToday(){
2311		var today = new Date();
2312		return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
2313	}
2314	function isUTCEquals(date1, date2) {
2315		return (
2316			date1.getUTCFullYear() === date2.getUTCFullYear() &&
2317			date1.getUTCMonth() === date2.getUTCMonth() &&
2318			date1.getUTCDate() === date2.getUTCDate()
2319		);
2320	}
2321	function alias(method, deprecationMsg){
2322		return function(){
2323			if (deprecationMsg !== undefined) {
2324				$.fn.bootstrapdatepicker.deprecated(deprecationMsg);
2325			}
2326
2327			return this[method].apply(this, arguments);
2328		};
2329	}
2330	function isValidDate(d) {
2331		return d && !isNaN(d.getTime());
2332	}
2333
2334	var DateArray = (function(){
2335		var extras = {
2336			get: function(i){
2337				return this.slice(i)[0];
2338			},
2339			contains: function(d){
2340				// Array.indexOf is not cross-browser;
2341				// $.inArray doesn't work with Dates
2342				var val = d && d.valueOf();
2343				for (var i=0, l=this.length; i < l; i++)
2344          // Use date arithmetic to allow dates with different times to match
2345          if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)
2346						return i;
2347				return -1;
2348			},
2349			remove: function(i){
2350				this.splice(i,1);
2351			},
2352			replace: function(new_array){
2353				if (!new_array)
2354					return;
2355				if (!Array.isArray(new_array))
2356					new_array = [new_array];
2357				this.clear();
2358				this.push.apply(this, new_array);
2359			},
2360			clear: function(){
2361				this.length = 0;
2362			},
2363			copy: function(){
2364				var a = new DateArray();
2365				a.replace(this);
2366				return a;
2367			}
2368		};
2369
2370		return function(){
2371			var a = [];
2372			a.push.apply(a, arguments);
2373			$.extend(a, extras);
2374			return a;
2375		};
2376	})();
2377
2378
2379	// Picker object
2380
2381	var Datepicker = function(element, options){
2382		$.data(element, 'datepicker', this);
2383
2384		this._events = [];
2385		this._secondaryEvents = [];
2386
2387		this._process_options(options);
2388
2389		this.dates = new DateArray();
2390		this.viewDate = this.o.defaultViewDate;
2391		this.focusDate = null;
2392
2393		this.element = $(element);
2394		this.isInput = this.element.is('input');
2395		this.inputField = this.isInput ? this.element : this.element.find('input');
2396		this.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;
2397		if (this.component && this.component.length === 0){
2398			this.component = false;
2399    }
2400
2401		if (this.o.isInline === null){
2402			this.isInline = !this.component && !this.isInput;
2403		} else {
2404			this.isInline = this.o.isInline;
2405		}
2406
2407		this.picker = $(DPGlobal.template);
2408
2409		// Checking templates and inserting
2410		if (this._check_template(this.o.templates.leftArrow)) {
2411			this.picker.find('.prev').html(this.o.templates.leftArrow);
2412		}
2413
2414		if (this._check_template(this.o.templates.rightArrow)) {
2415			this.picker.find('.next').html(this.o.templates.rightArrow);
2416		}
2417
2418		this._buildEvents();
2419		this._attachEvents();
2420
2421		if (this.isInline){
2422			this.picker.addClass('datepicker-inline').appendTo(this.element);
2423		}
2424		else {
2425			this.picker.addClass('datepicker-dropdown dropdown-menu');
2426		}
2427
2428		if (this.o.rtl){
2429			this.picker.addClass('datepicker-rtl');
2430		}
2431
2432		if (this.o.calendarWeeks) {
2433			this.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')
2434				.attr('colspan', function(i, val){
2435					return Number(val) + 1;
2436				});
2437		}
2438
2439		this._process_options({
2440			startDate: this._o.startDate,
2441			endDate: this._o.endDate,
2442			daysOfWeekDisabled: this.o.daysOfWeekDisabled,
2443			daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,
2444			datesDisabled: this.o.datesDisabled
2445		});
2446
2447		this._allow_update = false;
2448		this.setViewMode(this.o.startView);
2449		this._allow_update = true;
2450
2451		this.fillDow();
2452		this.fillMonths();
2453
2454		this.update();
2455
2456		if (this.isInline){
2457			this.show();
2458		}
2459	};
2460
2461	Datepicker.prototype = {
2462		constructor: Datepicker,
2463
2464		_resolveViewName: function(view){
2465			$.each(DPGlobal.viewModes, function(i, viewMode){
2466				if (view === i || $.inArray(view, viewMode.names) !== -1){
2467					view = i;
2468					return false;
2469				}
2470			});
2471
2472			return view;
2473		},
2474
2475		_resolveDaysOfWeek: function(daysOfWeek){
2476			if (!Array.isArray(daysOfWeek))
2477				daysOfWeek = daysOfWeek.split(/[,\s]*/);
2478			return $.map(daysOfWeek, Number);
2479		},
2480
2481		_check_template: function(tmp){
2482			try {
2483				// If empty
2484				if (tmp === undefined || tmp === "") {
2485					return false;
2486				}
2487				// If no html, everything ok
2488				if ((tmp.match(/[<>]/g) || []).length <= 0) {
2489					return true;
2490				}
2491				// Checking if html is fine
2492				var jDom = $(tmp);
2493				return jDom.length > 0;
2494			}
2495			catch (ex) {
2496				return false;
2497			}
2498		},
2499
2500		_process_options: function(opts){
2501			// Store raw options for reference
2502			this._o = $.extend({}, this._o, opts);
2503			// Processed options
2504			var o = this.o = $.extend({}, this._o);
2505
2506			// Check if "de-DE" style date is available, if not language should
2507			// fallback to 2 letter code eg "de"
2508			var lang = o.language;
2509			if (!dates[lang]){
2510				lang = lang.split('-')[0];
2511				if (!dates[lang])
2512					lang = defaults.language;
2513			}
2514			o.language = lang;
2515
2516			// Retrieve view index from any aliases
2517			o.startView = this._resolveViewName(o.startView);
2518			o.minViewMode = this._resolveViewName(o.minViewMode);
2519			o.maxViewMode = this._resolveViewName(o.maxViewMode);
2520
2521			// Check view is between min and max
2522			o.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));
2523
2524			// true, false, or Number > 0
2525			if (o.multidate !== true){
2526				o.multidate = Number(o.multidate) || false;
2527				if (o.multidate !== false)
2528					o.multidate = Math.max(0, o.multidate);
2529			}
2530			o.multidateSeparator = String(o.multidateSeparator);
2531
2532			o.weekStart %= 7;
2533			o.weekEnd = (o.weekStart + 6) % 7;
2534
2535			var format = DPGlobal.parseFormat(o.format);
2536			if (o.startDate !== -Infinity){
2537				if (!!o.startDate){
2538					if (o.startDate instanceof Date)
2539						o.startDate = this._local_to_utc(this._zero_time(o.startDate));
2540					else
2541						o.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);
2542				}
2543				else {
2544					o.startDate = -Infinity;
2545				}
2546			}
2547			if (o.endDate !== Infinity){
2548				if (!!o.endDate){
2549					if (o.endDate instanceof Date)
2550						o.endDate = this._local_to_utc(this._zero_time(o.endDate));
2551					else
2552						o.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);
2553				}
2554				else {
2555					o.endDate = Infinity;
2556				}
2557			}
2558
2559			o.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);
2560			o.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);
2561
2562			o.datesDisabled = o.datesDisabled||[];
2563			if (!Array.isArray(o.datesDisabled)) {
2564				o.datesDisabled = o.datesDisabled.split(',');
2565			}
2566			o.datesDisabled = $.map(o.datesDisabled, function(d){
2567				return DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);
2568			});
2569
2570			var plc = String(o.orientation).toLowerCase().split(/\s+/g),
2571				_plc = o.orientation.toLowerCase();
2572			plc = $.grep(plc, function(word){
2573				return /^auto|left|right|top|bottom$/.test(word);
2574			});
2575			o.orientation = {x: 'auto', y: 'auto'};
2576			if (!_plc || _plc === 'auto')
2577				; // no action
2578			else if (plc.length === 1){
2579				switch (plc[0]){
2580					case 'top':
2581					case 'bottom':
2582						o.orientation.y = plc[0];
2583						break;
2584					case 'left':
2585					case 'right':
2586						o.orientation.x = plc[0];
2587						break;
2588				}
2589			}
2590			else {
2591				_plc = $.grep(plc, function(word){
2592					return /^left|right$/.test(word);
2593				});
2594				o.orientation.x = _plc[0] || 'auto';
2595
2596				_plc = $.grep(plc, function(word){
2597					return /^top|bottom$/.test(word);
2598				});
2599				o.orientation.y = _plc[0] || 'auto';
2600			}
2601			if (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {
2602				o.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);
2603			} else if (o.defaultViewDate) {
2604				var year = o.defaultViewDate.year || new Date().getFullYear();
2605				var month = o.defaultViewDate.month || 0;
2606				var day = o.defaultViewDate.day || 1;
2607				o.defaultViewDate = UTCDate(year, month, day);
2608			} else {
2609				o.defaultViewDate = UTCToday();
2610			}
2611		},
2612		_applyEvents: function(evs){
2613			for (var i=0, el, ch, ev; i < evs.length; i++){
2614				el = evs[i][0];
2615				if (evs[i].length === 2){
2616					ch = undefined;
2617					ev = evs[i][1];
2618				} else if (evs[i].length === 3){
2619					ch = evs[i][1];
2620					ev = evs[i][2];
2621				}
2622				el.on(ev, ch);
2623			}
2624		},
2625		_unapplyEvents: function(evs){
2626			for (var i=0, el, ev, ch; i < evs.length; i++){
2627				el = evs[i][0];
2628				if (evs[i].length === 2){
2629					ch = undefined;
2630					ev = evs[i][1];
2631				} else if (evs[i].length === 3){
2632					ch = evs[i][1];
2633					ev = evs[i][2];
2634				}
2635				el.off(ev, ch);
2636			}
2637		},
2638		_buildEvents: function(){
2639            var events = {
2640                keyup: $.proxy(function(e){
2641                    if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)
2642                        this.update();
2643                }, this),
2644                keydown: $.proxy(this.keydown, this),
2645                paste: $.proxy(this.paste, this)
2646            };
2647
2648            if (this.o.showOnFocus === true) {
2649                events.focus = $.proxy(this.show, this);
2650            }
2651
2652            if (this.isInput) { // single input
2653                this._events = [
2654                    [this.element, events]
2655                ];
2656            }
2657            // component: input + button
2658            else if (this.component && this.inputField.length) {
2659                this._events = [
2660                    // For components that are not readonly, allow keyboard nav
2661                    [this.inputField, events],
2662                    [this.component, {
2663                        click: $.proxy(this.show, this)
2664                    }]
2665                ];
2666            }
2667			else {
2668				this._events = [
2669					[this.element, {
2670						click: $.proxy(this.show, this),
2671						keydown: $.proxy(this.keydown, this)
2672					}]
2673				];
2674			}
2675			this._events.push(
2676				// Component: listen for blur on element descendants
2677				[this.element, '*', {
2678					blur: $.proxy(function(e){
2679						this._focused_from = e.target;
2680					}, this)
2681				}],
2682				// Input: listen for blur on element
2683				[this.element, {
2684					blur: $.proxy(function(e){
2685						this._focused_from = e.target;
2686					}, this)
2687				}]
2688			);
2689
2690			if (this.o.immediateUpdates) {
2691				// Trigger input updates immediately on changed year/month
2692				this._events.push([this.element, {
2693					'changeYear changeMonth': $.proxy(function(e){
2694						this.update(e.date);
2695					}, this)
2696				}]);
2697			}
2698
2699			this._secondaryEvents = [
2700				[this.picker, {
2701					click: $.proxy(this.click, this)
2702				}],
2703				[this.picker, '.prev, .next', {
2704					click: $.proxy(this.navArrowsClick, this)
2705				}],
2706				[this.picker, '.day:not(.disabled)', {
2707					click: $.proxy(this.dayCellClick, this)
2708				}],
2709				[$(window), {
2710					resize: $.proxy(this.place, this)
2711				}],
2712				[$(document), {
2713					'mousedown touchstart': $.proxy(function(e){
2714						// Clicked outside the datepicker, hide it
2715						if (!(
2716							this.element.is(e.target) ||
2717							this.element.find(e.target).length ||
2718							this.picker.is(e.target) ||
2719							this.picker.find(e.target).length ||
2720							this.isInline
2721						)){
2722							this.hide();
2723						}
2724					}, this)
2725				}]
2726			];
2727		},
2728		_attachEvents: function(){
2729			this._detachEvents();
2730			this._applyEvents(this._events);
2731		},
2732		_detachEvents: function(){
2733			this._unapplyEvents(this._events);
2734		},
2735		_attachSecondaryEvents: function(){
2736			this._detachSecondaryEvents();
2737			this._applyEvents(this._secondaryEvents);
2738		},
2739		_detachSecondaryEvents: function(){
2740			this._unapplyEvents(this._secondaryEvents);
2741		},
2742		_trigger: function(event, altdate){
2743			var date = altdate || this.dates.get(-1),
2744				local_date = this._utc_to_local(date);
2745
2746			this.element.trigger({
2747				type: event,
2748				date: local_date,
2749				viewMode: this.viewMode,
2750				dates: $.map(this.dates, this._utc_to_local),
2751				format: $.proxy(function(ix, format){
2752					if (arguments.length === 0){
2753						ix = this.dates.length - 1;
2754						format = this.o.format;
2755					} else if (typeof ix === 'string'){
2756						format = ix;
2757						ix = this.dates.length - 1;
2758					}
2759					format = format || this.o.format;
2760					var date = this.dates.get(ix);
2761					return DPGlobal.formatDate(date, format, this.o.language);
2762				}, this)
2763			});
2764		},
2765
2766		show: function(){
2767			if (this.inputField.is(':disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false))
2768				return;
2769			if (!this.isInline)
2770				this.picker.appendTo(this.o.container);
2771			this.place();
2772			this.picker.show();
2773			this._attachSecondaryEvents();
2774			this._trigger('show');
2775			if ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {
2776				$(this.element).blur();
2777			}
2778			return this;
2779		},
2780
2781		hide: function(){
2782			if (this.isInline || !this.picker.is(':visible'))
2783				return this;
2784			this.focusDate = null;
2785			this.picker.hide().detach();
2786			this._detachSecondaryEvents();
2787			this.setViewMode(this.o.startView);
2788
2789			if (this.o.forceParse && this.inputField.val())
2790				this.setValue();
2791			this._trigger('hide');
2792			return this;
2793		},
2794
2795		destroy: function(){
2796			this.hide();
2797			this._detachEvents();
2798			this._detachSecondaryEvents();
2799			this.picker.remove();
2800			delete this.element.data().datepicker;
2801			if (!this.isInput){
2802				delete this.element.data().date;
2803			}
2804			return this;
2805		},
2806
2807		paste: function(e){
2808			var dateString;
2809			if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types
2810				&& $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {
2811				dateString = e.originalEvent.clipboardData.getData('text/plain');
2812			} else if (window.clipboardData) {
2813				dateString = window.clipboardData.getData('Text');
2814			} else {
2815				return;
2816			}
2817			this.setDate(dateString);
2818			this.update();
2819			e.preventDefault();
2820		},
2821
2822		_utc_to_local: function(utc){
2823			if (!utc) {
2824				return utc;
2825			}
2826
2827			var local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));
2828
2829			if (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {
2830				local = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));
2831			}
2832
2833			return local;
2834		},
2835		_local_to_utc: function(local){
2836			return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
2837		},
2838		_zero_time: function(local){
2839			return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
2840		},
2841		_zero_utc_time: function(utc){
2842			return utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());
2843		},
2844
2845		getDates: function(){
2846			return $.map(this.dates, this._utc_to_local);
2847		},
2848
2849		getUTCDates: function(){
2850			return $.map(this.dates, function(d){
2851				return new Date(d);
2852			});
2853		},
2854
2855		getDate: function(){
2856			return this._utc_to_local(this.getUTCDate());
2857		},
2858
2859		getUTCDate: function(){
2860			var selected_date = this.dates.get(-1);
2861			if (selected_date !== undefined) {
2862				return new Date(selected_date);
2863			} else {
2864				return null;
2865			}
2866		},
2867
2868		clearDates: function(){
2869			this.inputField.val('');
2870			this._trigger('changeDate');
2871			this.update();
2872			if (this.o.autoclose) {
2873				this.hide();
2874			}
2875		},
2876
2877		setDates: function(){
2878			var args = Array.isArray(arguments[0]) ? arguments[0] : arguments;
2879			this.update.apply(this, args);
2880			this._trigger('changeDate');
2881			this.setValue();
2882			return this;
2883		},
2884
2885		setUTCDates: function(){
2886			var args = Array.isArray(arguments[0]) ? arguments[0] : arguments;
2887			this.setDates.apply(this, $.map(args, this._utc_to_local));
2888			return this;
2889		},
2890
2891		setDate: alias('setDates'),
2892		setUTCDate: alias('setUTCDates'),
2893		remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),
2894
2895		setValue: function(){
2896			var formatted = this.getFormattedDate();
2897			this.inputField.val(formatted);
2898			return this;
2899		},
2900
2901		getFormattedDate: function(format){
2902			if (format === undefined)
2903				format = this.o.format;
2904
2905			var lang = this.o.language;
2906			return $.map(this.dates, function(d){
2907				return DPGlobal.formatDate(d, format, lang);
2908			}).join(this.o.multidateSeparator);
2909		},
2910
2911		getStartDate: function(){
2912			return this.o.startDate;
2913		},
2914
2915		setStartDate: function(startDate){
2916			this._process_options({startDate: startDate});
2917			this.update();
2918			this.updateNavArrows();
2919			return this;
2920		},
2921
2922		getEndDate: function(){
2923			return this.o.endDate;
2924		},
2925
2926		setEndDate: function(endDate){
2927			this._process_options({endDate: endDate});
2928			this.update();
2929			this.updateNavArrows();
2930			return this;
2931		},
2932
2933		setDaysOfWeekDisabled: function(daysOfWeekDisabled){
2934			this._process_options({daysOfWeekDisabled: daysOfWeekDisabled});
2935			this.update();
2936			return this;
2937		},
2938
2939		setDaysOfWeekHighlighted: function(daysOfWeekHighlighted){
2940			this._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});
2941			this.update();
2942			return this;
2943		},
2944
2945		setDatesDisabled: function(datesDisabled){
2946			this._process_options({datesDisabled: datesDisabled});
2947			this.update();
2948			return this;
2949		},
2950
2951		place: function(){
2952			if (this.isInline)
2953				return this;
2954			var calendarWidth = this.picker.outerWidth(),
2955				calendarHeight = this.picker.outerHeight(),
2956				visualPadding = 10,
2957				container = $(this.o.container),
2958				windowWidth = container.width(),
2959				scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),
2960				appendOffset = container.offset();
2961
2962			var parentsZindex = [0];
2963			this.element.parents().each(function(){
2964				var itemZIndex = $(this).css('z-index');
2965				if (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));
2966			});
2967			var zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;
2968			var offset = this.component ? this.component.parent().offset() : this.element.offset();
2969			var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
2970			var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
2971			var left = offset.left - appendOffset.left;
2972			var top = offset.top - appendOffset.top;
2973
2974			if (this.o.container !== 'body') {
2975				top += scrollTop;
2976			}
2977
2978			this.picker.removeClass(
2979				'datepicker-orient-top datepicker-orient-bottom '+
2980				'datepicker-orient-right datepicker-orient-left'
2981			);
2982
2983			if (this.o.orientation.x !== 'auto'){
2984				this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
2985				if (this.o.orientation.x === 'right')
2986					left -= calendarWidth - width;
2987			}
2988			// auto x orientation is best-placement: if it crosses a window
2989			// edge, fudge it sideways
2990			else {
2991				if (offset.left < 0) {
2992					// component is outside the window on the left side. Move it into visible range
2993					this.picker.addClass('datepicker-orient-left');
2994					left -= offset.left - visualPadding;
2995				} else if (left + calendarWidth > windowWidth) {
2996					// the calendar passes the widow right edge. Align it to component right side
2997					this.picker.addClass('datepicker-orient-right');
2998					left += width - calendarWidth;
2999				} else {
3000					if (this.o.rtl) {
3001						// Default to right
3002						this.picker.addClass('datepicker-orient-right');
3003					} else {
3004						// Default to left
3005						this.picker.addClass('datepicker-orient-left');
3006					}
3007				}
3008			}
3009
3010			// auto y orientation is best-situation: top or bottom, no fudging,
3011			// decision based on which shows more of the calendar
3012			var yorient = this.o.orientation.y,
3013				top_overflow;
3014			if (yorient === 'auto'){
3015				top_overflow = -scrollTop + top - calendarHeight;
3016				yorient = top_overflow < 0 ? 'bottom' : 'top';
3017			}
3018
3019			this.picker.addClass('datepicker-orient-' + yorient);
3020			if (yorient === 'top')
3021				top -= calendarHeight + parseInt(this.picker.css('padding-top'));
3022			else
3023				top += height;
3024
3025			if (this.o.rtl) {
3026				var right = windowWidth - (left + width);
3027				this.picker.css({
3028					top: top,
3029					right: right,
3030					zIndex: zIndex
3031				});
3032			} else {
3033				this.picker.css({
3034					top: top,
3035					left: left,
3036					zIndex: zIndex
3037				});
3038			}
3039			return this;
3040		},
3041
3042		_allow_update: true,
3043		update: function(){
3044			if (!this._allow_update)
3045				return this;
3046
3047			var oldDates = this.dates.copy(),
3048				dates = [],
3049				fromArgs = false;
3050			if (arguments.length){
3051				$.each(arguments, $.proxy(function(i, date){
3052					if (date instanceof Date)
3053						date = this._local_to_utc(date);
3054					dates.push(date);
3055				}, this));
3056				fromArgs = true;
3057			} else {
3058				dates = this.isInput
3059						? this.element.val()
3060						: this.element.data('date') || this.inputField.val();
3061				if (dates && this.o.multidate)
3062					dates = dates.split(this.o.multidateSeparator);
3063				else
3064					dates = [dates];
3065				delete this.element.data().date;
3066			}
3067
3068			dates = $.map(dates, $.proxy(function(date){
3069				return DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);
3070			}, this));
3071			dates = $.grep(dates, $.proxy(function(date){
3072				return (
3073					!this.dateWithinRange(date) ||
3074					!date
3075				);
3076			}, this), true);
3077			this.dates.replace(dates);
3078
3079			if (this.o.updateViewDate) {
3080				if (this.dates.length)
3081					this.viewDate = new Date(this.dates.get(-1));
3082				else if (this.viewDate < this.o.startDate)
3083					this.viewDate = new Date(this.o.startDate);
3084				else if (this.viewDate > this.o.endDate)
3085					this.viewDate = new Date(this.o.endDate);
3086				else
3087					this.viewDate = this.o.defaultViewDate;
3088			}
3089
3090			if (fromArgs){
3091				// setting date by clicking
3092				this.setValue();
3093				this.element.change();
3094			}
3095			else if (this.dates.length){
3096				// setting date by typing
3097				if (String(oldDates) !== String(this.dates) && fromArgs) {
3098					this._trigger('changeDate');
3099					this.element.change();
3100				}
3101			}
3102			if (!this.dates.length && oldDates.length) {
3103				this._trigger('clearDate');
3104				this.element.change();
3105			}
3106
3107			this.fill();
3108			return this;
3109		},
3110
3111		fillDow: function(){
3112      if (this.o.showWeekDays) {
3113			var dowCnt = this.o.weekStart,
3114				html = '<tr>';
3115			if (this.o.calendarWeeks){
3116				html += '<th class="cw">&#160;</th>';
3117			}
3118			while (dowCnt < this.o.weekStart + 7){
3119				html += '<th class="dow';
3120        if ($.inArray(dowCnt, this.o.daysOfWeekDisabled) !== -1)
3121          html += ' disabled';
3122        html += '">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';
3123			}
3124			html += '</tr>';
3125			this.picker.find('.datepicker-days thead').append(html);
3126      }
3127		},
3128
3129		fillMonths: function(){
3130      var localDate = this._utc_to_local(this.viewDate);
3131			var html = '';
3132			var focused;
3133			for (var i = 0; i < 12; i++){
3134				focused = localDate && localDate.getMonth() === i ? ' focused' : '';
3135				html += '<span class="month' + focused + '">' + dates[this.o.language].monthsShort[i] + '</span>';
3136			}
3137			this.picker.find('.datepicker-months td').html(html);
3138		},
3139
3140		setRange: function(range){
3141			if (!range || !range.length)
3142				delete this.range;
3143			else
3144				this.range = $.map(range, function(d){
3145					return d.valueOf();
3146				});
3147			this.fill();
3148		},
3149
3150		getClassNames: function(date){
3151			var cls = [],
3152				year = this.viewDate.getUTCFullYear(),
3153				month = this.viewDate.getUTCMonth(),
3154				today = UTCToday();
3155			if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
3156				cls.push('old');
3157			} else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
3158				cls.push('new');
3159			}
3160			if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
3161				cls.push('focused');
3162			// Compare internal UTC date with UTC today, not local today
3163			if (this.o.todayHighlight && isUTCEquals(date, today)) {
3164				cls.push('today');
3165			}
3166			if (this.dates.contains(date) !== -1)
3167				cls.push('active');
3168			if (!this.dateWithinRange(date)){
3169				cls.push('disabled');
3170			}
3171			if (this.dateIsDisabled(date)){
3172				cls.push('disabled', 'disabled-date');
3173			}
3174			if ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){
3175				cls.push('highlighted');
3176			}
3177
3178			if (this.range){
3179				if (date > this.range[0] && date < this.range[this.range.length-1]){
3180					cls.push('range');
3181				}
3182				if ($.inArray(date.valueOf(), this.range) !== -1){
3183					cls.push('selected');
3184				}
3185				if (date.valueOf() === this.range[0]){
3186          cls.push('range-start');
3187        }
3188        if (date.valueOf() === this.range[this.range.length-1]){
3189          cls.push('range-end');
3190        }
3191			}
3192			return cls;
3193		},
3194
3195		_fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){
3196			var html = '';
3197			var step = factor / 10;
3198			var view = this.picker.find(selector);
3199			var startVal = Math.floor(year / factor) * factor;
3200			var endVal = startVal + step * 9;
3201			var focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;
3202			var selected = $.map(this.dates, function(d){
3203				return Math.floor(d.getUTCFullYear() / step) * step;
3204			});
3205
3206			var classes, tooltip, before;
3207			for (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {
3208				classes = [cssClass];
3209				tooltip = null;
3210
3211				if (currVal === startVal - step) {
3212					classes.push('old');
3213				} else if (currVal === endVal + step) {
3214					classes.push('new');
3215				}
3216				if ($.inArray(currVal, selected) !== -1) {
3217					classes.push('active');
3218				}
3219				if (currVal < startYear || currVal > endYear) {
3220					classes.push('disabled');
3221				}
3222				if (currVal === focusedVal) {
3223				  classes.push('focused');
3224        }
3225
3226				if (beforeFn !== $.noop) {
3227					before = beforeFn(new Date(currVal, 0, 1));
3228					if (before === undefined) {
3229						before = {};
3230					} else if (typeof before === 'boolean') {
3231						before = {enabled: before};
3232					} else if (typeof before === 'string') {
3233						before = {classes: before};
3234					}
3235					if (before.enabled === false) {
3236						classes.push('disabled');
3237					}
3238					if (before.classes) {
3239						classes = classes.concat(before.classes.split(/\s+/));
3240					}
3241					if (before.tooltip) {
3242						tooltip = before.tooltip;
3243					}
3244				}
3245
3246				html += '<span class="' + classes.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + currVal + '</span>';
3247			}
3248
3249			view.find('.datepicker-switch').text(startVal + '-' + endVal);
3250			view.find('td').html(html);
3251		},
3252
3253		fill: function(){
3254			var d = new Date(this.viewDate),
3255				year = d.getUTCFullYear(),
3256				month = d.getUTCMonth(),
3257				startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
3258				startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
3259				endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
3260				endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
3261				todaytxt = dates[this.o.language].today || dates['en'].today || '',
3262				cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
3263        titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,
3264        todayDate = UTCToday(),
3265        titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),
3266				tooltip,
3267				before;
3268			if (isNaN(year) || isNaN(month))
3269				return;
3270			this.picker.find('.datepicker-days .datepicker-switch')
3271						.text(DPGlobal.formatDate(d, titleFormat, this.o.language));
3272			this.picker.find('tfoot .today')
3273						.text(todaytxt)
3274            .css('display', titleBtnVisible ? 'table-cell' : 'none');
3275			this.picker.find('tfoot .clear')
3276						.text(cleartxt)
3277						.css('display', this.o.clearBtn === true ? 'table-cell' : 'none');
3278			this.picker.find('thead .datepicker-title')
3279						.text(this.o.title)
3280						.css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');
3281			this.updateNavArrows();
3282			this.fillMonths();
3283			var prevMonth = UTCDate(year, month, 0),
3284				day = prevMonth.getUTCDate();
3285			prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
3286			var nextMonth = new Date(prevMonth);
3287			if (prevMonth.getUTCFullYear() < 100){
3288        nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());
3289      }
3290			nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
3291			nextMonth = nextMonth.valueOf();
3292			var html = [];
3293			var weekDay, clsName;
3294			while (prevMonth.valueOf() < nextMonth){
3295				weekDay = prevMonth.getUTCDay();
3296				if (weekDay === this.o.weekStart){
3297					html.push('<tr>');
3298					if (this.o.calendarWeeks){
3299						// ISO 8601: First week contains first thursday.
3300						// ISO also states week starts on Monday, but we can be more abstract here.
3301						var
3302							// Start of current week: based on weekstart/current date
3303							ws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),
3304							// Thursday of this week
3305							th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
3306							// First Thursday of year, year from thursday
3307							yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),
3308							// Calendar week: ms between thursdays, div ms per day, div 7 days
3309							calWeek = (th - yth) / 864e5 / 7 + 1;
3310						html.push('<td class="cw">'+ calWeek +'</td>');
3311					}
3312				}
3313				clsName = this.getClassNames(prevMonth);
3314				clsName.push('day');
3315
3316				var content = prevMonth.getUTCDate();
3317
3318				if (this.o.beforeShowDay !== $.noop){
3319					before = this.o.beforeShowDay(this._utc_to_local(prevMonth));
3320					if (before === undefined)
3321						before = {};
3322					else if (typeof before === 'boolean')
3323						before = {enabled: before};
3324					else if (typeof before === 'string')
3325						before = {classes: before};
3326					if (before.enabled === false)
3327						clsName.push('disabled');
3328					if (before.classes)
3329						clsName = clsName.concat(before.classes.split(/\s+/));
3330					if (before.tooltip)
3331						tooltip = before.tooltip;
3332					if (before.content)
3333						content = before.content;
3334				}
3335
3336				//Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)
3337				//Fallback to unique function for older jquery versions
3338				if (typeof $.uniqueSort === "function") {
3339					clsName = $.uniqueSort(clsName);
3340				} else {
3341					clsName = $.unique(clsName);
3342				}
3343
3344				html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + ' data-date="' + prevMonth.getTime().toString() + '">' + content + '</td>');
3345				tooltip = null;
3346				if (weekDay === this.o.weekEnd){
3347					html.push('</tr>');
3348				}
3349				prevMonth.setUTCDate(prevMonth.getUTCDate() + 1);
3350			}
3351			this.picker.find('.datepicker-days tbody').html(html.join(''));
3352
3353			var monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';
3354			var months = this.picker.find('.datepicker-months')
3355						.find('.datepicker-switch')
3356							.text(this.o.maxViewMode < 2 ? monthsTitle : year)
3357							.end()
3358						.find('tbody span').removeClass('active');
3359
3360			$.each(this.dates, function(i, d){
3361				if (d.getUTCFullYear() === year)
3362					months.eq(d.getUTCMonth()).addClass('active');
3363			});
3364
3365			if (year < startYear || year > endYear){
3366				months.addClass('disabled');
3367			}
3368			if (year === startYear){
3369				months.slice(0, startMonth).addClass('disabled');
3370			}
3371			if (year === endYear){
3372				months.slice(endMonth+1).addClass('disabled');
3373			}
3374
3375			if (this.o.beforeShowMonth !== $.noop){
3376				var that = this;
3377				$.each(months, function(i, month){
3378          var moDate = new Date(year, i, 1);
3379          var before = that.o.beforeShowMonth(moDate);
3380					if (before === undefined)
3381						before = {};
3382					else if (typeof before === 'boolean')
3383						before = {enabled: before};
3384					else if (typeof before === 'string')
3385						before = {classes: before};
3386					if (before.enabled === false && !$(month).hasClass('disabled'))
3387					    $(month).addClass('disabled');
3388					if (before.classes)
3389					    $(month).addClass(before.classes);
3390					if (before.tooltip)
3391					    $(month).prop('title', before.tooltip);
3392				});
3393			}
3394
3395			// Generating decade/years picker
3396			this._fill_yearsView(
3397				'.datepicker-years',
3398				'year',
3399				10,
3400				year,
3401				startYear,
3402				endYear,
3403				this.o.beforeShowYear
3404			);
3405
3406			// Generating century/decades picker
3407			this._fill_yearsView(
3408				'.datepicker-decades',
3409				'decade',
3410				100,
3411				year,
3412				startYear,
3413				endYear,
3414				this.o.beforeShowDecade
3415			);
3416
3417			// Generating millennium/centuries picker
3418			this._fill_yearsView(
3419				'.datepicker-centuries',
3420				'century',
3421				1000,
3422				year,
3423				startYear,
3424				endYear,
3425				this.o.beforeShowCentury
3426			);
3427		},
3428
3429		updateNavArrows: function(){
3430			if (!this._allow_update)
3431				return;
3432
3433			var d = new Date(this.viewDate),
3434				year = d.getUTCFullYear(),
3435				month = d.getUTCMonth(),
3436				startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,
3437				startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
3438				endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
3439				endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
3440				prevIsDisabled,
3441				nextIsDisabled,
3442				factor = 1;
3443			switch (this.viewMode){
3444				case 4:
3445					factor *= 10;
3446					/* falls through */
3447				case 3:
3448					factor *= 10;
3449					/* falls through */
3450				case 2:
3451					factor *= 10;
3452					/* falls through */
3453				case 1:
3454					prevIsDisabled = Math.floor(year / factor) * factor <= startYear;
3455					nextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;
3456					break;
3457				case 0:
3458					prevIsDisabled = year <= startYear && month <= startMonth;
3459					nextIsDisabled = year >= endYear && month >= endMonth;
3460					break;
3461			}
3462
3463			this.picker.find('.prev').toggleClass('disabled', prevIsDisabled);
3464			this.picker.find('.next').toggleClass('disabled', nextIsDisabled);
3465		},
3466
3467		click: function(e){
3468			e.preventDefault();
3469			e.stopPropagation();
3470
3471			var target, dir, day, year, month;
3472			target = $(e.target);
3473
3474			// Clicked on the switch
3475			if (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){
3476				this.setViewMode(this.viewMode + 1);
3477			}
3478
3479			// Clicked on today button
3480			if (target.hasClass('today') && !target.hasClass('day')){
3481				this.setViewMode(0);
3482				this._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');
3483			}
3484
3485			// Clicked on clear button
3486			if (target.hasClass('clear')){
3487				this.clearDates();
3488			}
3489
3490			if (!target.hasClass('disabled')){
3491				// Clicked on a month, year, decade, century
3492				if (target.hasClass('month')
3493						|| target.hasClass('year')
3494						|| target.hasClass('decade')
3495						|| target.hasClass('century')) {
3496					this.viewDate.setUTCDate(1);
3497
3498					day = 1;
3499					if (this.viewMode === 1){
3500						month = target.parent().find('span').index(target);
3501						year = this.viewDate.getUTCFullYear();
3502						this.viewDate.setUTCMonth(month);
3503					} else {
3504						month = 0;
3505						year = Number(target.text());
3506						this.viewDate.setUTCFullYear(year);
3507					}
3508
3509					this._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);
3510
3511					if (this.viewMode === this.o.minViewMode){
3512						this._setDate(UTCDate(year, month, day));
3513					} else {
3514						this.setViewMode(this.viewMode - 1);
3515						this.fill();
3516					}
3517				}
3518			}
3519
3520			if (this.picker.is(':visible') && this._focused_from){
3521				this._focused_from.focus();
3522			}
3523			delete this._focused_from;
3524		},
3525
3526		dayCellClick: function(e){
3527			var $target = $(e.currentTarget);
3528			var timestamp = $target.data('date');
3529			var date = new Date(timestamp);
3530
3531			if (this.o.updateViewDate) {
3532				if (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {
3533					this._trigger('changeYear', this.viewDate);
3534				}
3535
3536				if (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {
3537					this._trigger('changeMonth', this.viewDate);
3538				}
3539			}
3540			this._setDate(date);
3541		},
3542
3543		// Clicked on prev or next
3544		navArrowsClick: function(e){
3545			var $target = $(e.currentTarget);
3546			var dir = $target.hasClass('prev') ? -1 : 1;
3547			if (this.viewMode !== 0){
3548				dir *= DPGlobal.viewModes[this.viewMode].navStep * 12;
3549			}
3550			this.viewDate = this.moveMonth(this.viewDate, dir);
3551			this._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);
3552			this.fill();
3553		},
3554
3555		_toggle_multidate: function(date){
3556			var ix = this.dates.contains(date);
3557			if (!date){
3558				this.dates.clear();
3559			}
3560
3561			if (ix !== -1){
3562				if (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){
3563					this.dates.remove(ix);
3564				}
3565			} else if (this.o.multidate === false) {
3566				this.dates.clear();
3567				this.dates.push(date);
3568			}
3569			else {
3570				this.dates.push(date);
3571			}
3572
3573			if (typeof this.o.multidate === 'number')
3574				while (this.dates.length > this.o.multidate)
3575					this.dates.remove(0);
3576		},
3577
3578		_setDate: function(date, which){
3579			if (!which || which === 'date')
3580				this._toggle_multidate(date && new Date(date));
3581			if ((!which && this.o.updateViewDate) || which === 'view')
3582				this.viewDate = date && new Date(date);
3583
3584			this.fill();
3585			this.setValue();
3586			if (!which || which !== 'view') {
3587				this._trigger('changeDate');
3588			}
3589			this.inputField.trigger('change');
3590			if (this.o.autoclose && (!which || which === 'date')){
3591				this.hide();
3592			}
3593		},
3594
3595		moveDay: function(date, dir){
3596			var newDate = new Date(date);
3597			newDate.setUTCDate(date.getUTCDate() + dir);
3598
3599			return newDate;
3600		},
3601
3602		moveWeek: function(date, dir){
3603			return this.moveDay(date, dir * 7);
3604		},
3605
3606		moveMonth: function(date, dir){
3607			if (!isValidDate(date))
3608				return this.o.defaultViewDate;
3609			if (!dir)
3610				return date;
3611			var new_date = new Date(date.valueOf()),
3612				day = new_date.getUTCDate(),
3613				month = new_date.getUTCMonth(),
3614				mag = Math.abs(dir),
3615				new_month, test;
3616			dir = dir > 0 ? 1 : -1;
3617			if (mag === 1){
3618				test = dir === -1
3619					// If going back one month, make sure month is not current month
3620					// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
3621					? function(){
3622						return new_date.getUTCMonth() === month;
3623					}
3624					// If going forward one month, make sure month is as expected
3625					// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
3626					: function(){
3627						return new_date.getUTCMonth() !== new_month;
3628					};
3629				new_month = month + dir;
3630				new_date.setUTCMonth(new_month);
3631				// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
3632				new_month = (new_month + 12) % 12;
3633			}
3634			else {
3635				// For magnitudes >1, move one month at a time...
3636				for (var i=0; i < mag; i++)
3637					// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
3638					new_date = this.moveMonth(new_date, dir);
3639				// ...then reset the day, keeping it in the new month
3640				new_month = new_date.getUTCMonth();
3641				new_date.setUTCDate(day);
3642				test = function(){
3643					return new_month !== new_date.getUTCMonth();
3644				};
3645			}
3646			// Common date-resetting loop -- if date is beyond end of month, make it
3647			// end of month
3648			while (test()){
3649				new_date.setUTCDate(--day);
3650				new_date.setUTCMonth(new_month);
3651			}
3652			return new_date;
3653		},
3654
3655		moveYear: function(date, dir){
3656			return this.moveMonth(date, dir*12);
3657		},
3658
3659		moveAvailableDate: function(date, dir, fn){
3660			do {
3661				date = this[fn](date, dir);
3662
3663				if (!this.dateWithinRange(date))
3664					return false;
3665
3666				fn = 'moveDay';
3667			}
3668			while (this.dateIsDisabled(date));
3669
3670			return date;
3671		},
3672
3673		weekOfDateIsDisabled: function(date){
3674			return $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;
3675		},
3676
3677		dateIsDisabled: function(date){
3678			return (
3679				this.weekOfDateIsDisabled(date) ||
3680				$.grep(this.o.datesDisabled, function(d){
3681					return isUTCEquals(date, d);
3682				}).length > 0
3683			);
3684		},
3685
3686		dateWithinRange: function(date){
3687			return date >= this.o.startDate && date <= this.o.endDate;
3688		},
3689
3690		keydown: function(e){
3691			if (!this.picker.is(':visible')){
3692				if (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker
3693					this.show();
3694					e.stopPropagation();
3695        }
3696				return;
3697			}
3698			var dateChanged = false,
3699				dir, newViewDate,
3700				focusDate = this.focusDate || this.viewDate;
3701			switch (e.keyCode){
3702				case 27: // escape
3703					if (this.focusDate){
3704						this.focusDate = null;
3705						this.viewDate = this.dates.get(-1) || this.viewDate;
3706						this.fill();
3707					}
3708					else
3709						this.hide();
3710					e.preventDefault();
3711					e.stopPropagation();
3712					break;
3713				case 37: // left
3714				case 38: // up
3715				case 39: // right
3716				case 40: // down
3717					if (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)
3718						break;
3719					dir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;
3720          if (this.viewMode === 0) {
3721  					if (e.ctrlKey){
3722  						newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
3723
3724  						if (newViewDate)
3725  							this._trigger('changeYear', this.viewDate);
3726  					} else if (e.shiftKey){
3727  						newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
3728
3729  						if (newViewDate)
3730  							this._trigger('changeMonth', this.viewDate);
3731  					} else if (e.keyCode === 37 || e.keyCode === 39){
3732  						newViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');
3733  					} else if (!this.weekOfDateIsDisabled(focusDate)){
3734  						newViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');
3735  					}
3736          } else if (this.viewMode === 1) {
3737            if (e.keyCode === 38 || e.keyCode === 40) {
3738              dir = dir * 4;
3739            }
3740            newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');
3741          } else if (this.viewMode === 2) {
3742            if (e.keyCode === 38 || e.keyCode === 40) {
3743              dir = dir * 4;
3744            }
3745            newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');
3746          }
3747					if (newViewDate){
3748						this.focusDate = this.viewDate = newViewDate;
3749						this.setValue();
3750						this.fill();
3751						e.preventDefault();
3752					}
3753					break;
3754				case 13: // enter
3755					if (!this.o.forceParse)
3756						break;
3757					focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
3758					if (this.o.keyboardNavigation) {
3759						this._toggle_multidate(focusDate);
3760						dateChanged = true;
3761					}
3762					this.focusDate = null;
3763					this.viewDate = this.dates.get(-1) || this.viewDate;
3764					this.setValue();
3765					this.fill();
3766					if (this.picker.is(':visible')){
3767						e.preventDefault();
3768						e.stopPropagation();
3769						if (this.o.autoclose)
3770							this.hide();
3771					}
3772					break;
3773				case 9: // tab
3774					this.focusDate = null;
3775					this.viewDate = this.dates.get(-1) || this.viewDate;
3776					this.fill();
3777					this.hide();
3778					break;
3779			}
3780			if (dateChanged){
3781				if (this.dates.length)
3782					this._trigger('changeDate');
3783				else
3784					this._trigger('clearDate');
3785				this.inputField.trigger('change');
3786			}
3787		},
3788
3789		setViewMode: function(viewMode){
3790			this.viewMode = viewMode;
3791			this.picker
3792				.children('div')
3793				.hide()
3794				.filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName)
3795					.show();
3796			this.updateNavArrows();
3797      this._trigger('changeViewMode', new Date(this.viewDate));
3798		}
3799	};
3800
3801	var DateRangePicker = function(element, options){
3802		$.data(element, 'datepicker', this);
3803		this.element = $(element);
3804		this.inputs = $.map(options.inputs, function(i){
3805			return i.jquery ? i[0] : i;
3806		});
3807		delete options.inputs;
3808
3809		this.keepEmptyValues = options.keepEmptyValues;
3810		delete options.keepEmptyValues;
3811
3812		datepickerPlugin.call($(this.inputs), options)
3813			.on('changeDate', $.proxy(this.dateUpdated, this));
3814
3815		this.pickers = $.map(this.inputs, function(i){
3816			return $.data(i, 'datepicker');
3817		});
3818		this.updateDates();
3819	};
3820	DateRangePicker.prototype = {
3821		updateDates: function(){
3822			this.dates = $.map(this.pickers, function(i){
3823				return i.getUTCDate();
3824			});
3825			this.updateRanges();
3826		},
3827		updateRanges: function(){
3828			var range = $.map(this.dates, function(d){
3829				return d.valueOf();
3830			});
3831			$.each(this.pickers, function(i, p){
3832				p.setRange(range);
3833			});
3834		},
3835		clearDates: function(){
3836			$.each(this.pickers, function(i, p){
3837				p.clearDates();
3838			});
3839		},
3840		dateUpdated: function(e){
3841			// `this.updating` is a workaround for preventing infinite recursion
3842			// between `changeDate` triggering and `setUTCDate` calling.  Until
3843			// there is a better mechanism.
3844			if (this.updating)
3845				return;
3846			this.updating = true;
3847
3848			var dp = $.data(e.target, 'datepicker');
3849
3850			if (dp === undefined) {
3851				return;
3852			}
3853
3854			var new_date = dp.getUTCDate(),
3855				keep_empty_values = this.keepEmptyValues,
3856				i = $.inArray(e.target, this.inputs),
3857				j = i - 1,
3858				k = i + 1,
3859				l = this.inputs.length;
3860			if (i === -1)
3861				return;
3862
3863			$.each(this.pickers, function(i, p){
3864				if (!p.getUTCDate() && (p === dp || !keep_empty_values))
3865					p.setUTCDate(new_date);
3866			});
3867
3868			if (new_date < this.dates[j]){
3869				// Date being moved earlier/left
3870				while (j >= 0 && new_date < this.dates[j] && (this.pickers[j].element.val() || "").length > 0) {
3871					this.pickers[j--].setUTCDate(new_date);
3872				}
3873			} else if (new_date > this.dates[k]){
3874				// Date being moved later/right
3875				while (k < l && new_date > this.dates[k] && (this.pickers[k].element.val() || "").length > 0) {
3876					this.pickers[k++].setUTCDate(new_date);
3877				}
3878			}
3879			this.updateDates();
3880
3881			delete this.updating;
3882		},
3883		destroy: function(){
3884			$.map(this.pickers, function(p){ p.destroy(); });
3885			$(this.inputs).off('changeDate', this.dateUpdated);
3886			delete this.element.data().datepicker;
3887		},
3888		remove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')
3889	};
3890
3891	function opts_from_el(el, prefix){
3892		// Derive options from element data-attrs
3893		var data = $(el).data(),
3894			out = {}, inkey,
3895			replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
3896		prefix = new RegExp('^' + prefix.toLowerCase());
3897		function re_lower(_,a){
3898			return a.toLowerCase();
3899		}
3900		for (var key in data)
3901			if (prefix.test(key)){
3902				inkey = key.replace(replace, re_lower);
3903				out[inkey] = data[key];
3904			}
3905		return out;
3906	}
3907
3908	function opts_from_locale(lang){
3909		// Derive options from locale plugins
3910		var out = {};
3911		// Check if "de-DE" style date is available, if not language should
3912		// fallback to 2 letter code eg "de"
3913		if (!dates[lang]){
3914			lang = lang.split('-')[0];
3915			if (!dates[lang])
3916				return;
3917		}
3918		var d = dates[lang];
3919		$.each(locale_opts, function(i,k){
3920			if (k in d)
3921				out[k] = d[k];
3922		});
3923		return out;
3924	}
3925
3926	var old = $.fn.bootstrapdatepicker;
3927	var datepickerPlugin = function(option){
3928		var args = Array.apply(null, arguments);
3929		args.shift();
3930		var internal_return;
3931		this.each(function(){
3932			var $this = $(this),
3933				data = $this.data('datepicker'),
3934				options = typeof option === 'object' && option;
3935			if (!data){
3936				var elopts = opts_from_el(this, 'date'),
3937					// Preliminary otions
3938					xopts = $.extend({}, defaults, elopts, options),
3939					locopts = opts_from_locale(xopts.language),
3940					// Options priority: js args, data-attrs, locales, defaults
3941					opts = $.extend({}, defaults, locopts, elopts, options);
3942				if ($this.hasClass('input-daterange') || opts.inputs){
3943					$.extend(opts, {
3944						inputs: opts.inputs || $this.find('input').toArray()
3945					});
3946					data = new DateRangePicker(this, opts);
3947				}
3948				else {
3949					data = new Datepicker(this, opts);
3950				}
3951				$this.data('datepicker', data);
3952			}
3953			if (typeof option === 'string' && typeof data[option] === 'function'){
3954				internal_return = data[option].apply(data, args);
3955			}
3956		});
3957
3958		if (
3959			internal_return === undefined ||
3960			internal_return instanceof Datepicker ||
3961			internal_return instanceof DateRangePicker
3962		)
3963			return this;
3964
3965		if (this.length > 1)
3966			throw new Error('Using only allowed for the collection of a single element (' + option + ' function)');
3967		else
3968			return internal_return;
3969	};
3970	$.fn.bootstrapdatepicker = datepickerPlugin;
3971
3972	var defaults = $.fn.bootstrapdatepicker.defaults = {
3973		assumeNearbyYear: false,
3974		autoclose: false,
3975		beforeShowDay: $.noop,
3976		beforeShowMonth: $.noop,
3977		beforeShowYear: $.noop,
3978		beforeShowDecade: $.noop,
3979		beforeShowCentury: $.noop,
3980		calendarWeeks: false,
3981		clearBtn: false,
3982		toggleActive: false,
3983		daysOfWeekDisabled: [],
3984		daysOfWeekHighlighted: [],
3985		datesDisabled: [],
3986		endDate: Infinity,
3987		forceParse: true,
3988		format: 'mm/dd/yyyy',
3989		isInline: null,
3990		keepEmptyValues: false,
3991		keyboardNavigation: true,
3992		language: 'en',
3993		minViewMode: 0,
3994		maxViewMode: 4,
3995		multidate: false,
3996		multidateSeparator: ',',
3997		orientation: "auto",
3998		rtl: false,
3999		startDate: -Infinity,
4000		startView: 0,
4001		todayBtn: false,
4002		todayHighlight: false,
4003		updateViewDate: true,
4004		weekStart: 0,
4005		disableTouchKeyboard: false,
4006		enableOnReadonly: true,
4007		showOnFocus: true,
4008		zIndexOffset: 10,
4009		container: 'body',
4010		immediateUpdates: false,
4011		title: '',
4012		templates: {
4013			leftArrow: '&#x00AB;',
4014			rightArrow: '&#x00BB;'
4015		},
4016    showWeekDays: true
4017	};
4018	var locale_opts = $.fn.bootstrapdatepicker.locale_opts = [
4019		'format',
4020		'rtl',
4021		'weekStart'
4022	];
4023	$.fn.bootstrapdatepicker.Constructor = Datepicker;
4024	var dates = $.fn.bootstrapdatepicker.dates = {
4025		en: {
4026			days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
4027			daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
4028			daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
4029			months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
4030			monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
4031			today: "Today",
4032			clear: "Clear",
4033			titleFormat: "MM yyyy"
4034		}
4035	};
4036
4037	var DPGlobal = {
4038		viewModes: [
4039			{
4040				names: ['days', 'month'],
4041				clsName: 'days',
4042				e: 'changeMonth'
4043			},
4044			{
4045				names: ['months', 'year'],
4046				clsName: 'months',
4047				e: 'changeYear',
4048				navStep: 1
4049			},
4050			{
4051				names: ['years', 'decade'],
4052				clsName: 'years',
4053				e: 'changeDecade',
4054				navStep: 10
4055			},
4056			{
4057				names: ['decades', 'century'],
4058				clsName: 'decades',
4059				e: 'changeCentury',
4060				navStep: 100
4061			},
4062			{
4063				names: ['centuries', 'millennium'],
4064				clsName: 'centuries',
4065				e: 'changeMillennium',
4066				navStep: 1000
4067			}
4068		],
4069		validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
4070		nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
4071		parseFormat: function(format){
4072			if (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')
4073                return format;
4074            // IE treats \0 as a string end in inputs (truncating the value),
4075			// so it's a bad format delimiter, anyway
4076			var separators = format.replace(this.validParts, '\0').split('\0'),
4077				parts = format.match(this.validParts);
4078			if (!separators || !separators.length || !parts || parts.length === 0){
4079				throw new Error("Invalid date format.");
4080			}
4081			return {separators: separators, parts: parts};
4082		},
4083		parseDate: function(date, format, language, assumeNearby){
4084			if (!date)
4085				return undefined;
4086			if (date instanceof Date)
4087				return date;
4088			if (typeof format === 'string')
4089				format = DPGlobal.parseFormat(format);
4090			if (format.toValue)
4091				return format.toValue(date, format, language);
4092			var fn_map = {
4093					d: 'moveDay',
4094					m: 'moveMonth',
4095					w: 'moveWeek',
4096					y: 'moveYear'
4097				},
4098				dateAliases = {
4099					yesterday: '-1d',
4100					today: '+0d',
4101					tomorrow: '+1d'
4102				},
4103				parts, part, dir, i, fn;
4104			if (date in dateAliases){
4105				date = dateAliases[date];
4106			}
4107			if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(date)){
4108				parts = date.match(/([\-+]\d+)([dmwy])/gi);
4109				date = new Date();
4110				for (i=0; i < parts.length; i++){
4111					part = parts[i].match(/([\-+]\d+)([dmwy])/i);
4112					dir = Number(part[1]);
4113					fn = fn_map[part[2].toLowerCase()];
4114					date = Datepicker.prototype[fn](date, dir);
4115				}
4116				return Datepicker.prototype._zero_utc_time(date);
4117			}
4118
4119			parts = date && date.match(this.nonpunctuation) || [];
4120
4121			function applyNearbyYear(year, threshold){
4122				if (threshold === true)
4123					threshold = 10;
4124
4125				// if year is 2 digits or less, than the user most likely is trying to get a recent century
4126				if (year < 100){
4127					year += 2000;
4128					// if the new year is more than threshold years in advance, use last century
4129					if (year > ((new Date()).getFullYear()+threshold)){
4130						year -= 100;
4131					}
4132				}
4133
4134				return year;
4135			}
4136
4137			var parsed = {},
4138				setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
4139				setters_map = {
4140					yyyy: function(d,v){
4141						return d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);
4142					},
4143					m: function(d,v){
4144						if (isNaN(d))
4145							return d;
4146						v -= 1;
4147						while (v < 0) v += 12;
4148						v %= 12;
4149						d.setUTCMonth(v);
4150						while (d.getUTCMonth() !== v)
4151							d.setUTCDate(d.getUTCDate()-1);
4152						return d;
4153					},
4154					d: function(d,v){
4155						return d.setUTCDate(v);
4156					}
4157				},
4158				val, filtered;
4159			setters_map['yy'] = setters_map['yyyy'];
4160			setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
4161			setters_map['dd'] = setters_map['d'];
4162			date = UTCToday();
4163			var fparts = format.parts.slice();
4164			// Remove noop parts
4165			if (parts.length !== fparts.length){
4166				fparts = $(fparts).filter(function(i,p){
4167					return $.inArray(p, setters_order) !== -1;
4168				}).toArray();
4169			}
4170			// Process remainder
4171			function match_part(){
4172				var m = this.slice(0, parts[i].length),
4173					p = parts[i].slice(0, m.length);
4174				return m.toLowerCase() === p.toLowerCase();
4175			}
4176			if (parts.length === fparts.length){
4177				var cnt;
4178				for (i=0, cnt = fparts.length; i < cnt; i++){
4179					val = parseInt(parts[i], 10);
4180					part = fparts[i];
4181					if (isNaN(val)){
4182						switch (part){
4183							case 'MM':
4184								filtered = $(dates[language].months).filter(match_part);
4185								val = $.inArray(filtered[0], dates[language].months) + 1;
4186								break;
4187							case 'M':
4188								filtered = $(dates[language].monthsShort).filter(match_part);
4189								val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
4190								break;
4191						}
4192					}
4193					parsed[part] = val;
4194				}
4195				var _date, s;
4196				for (i=0; i < setters_order.length; i++){
4197					s = setters_order[i];
4198					if (s in parsed && !isNaN(parsed[s])){
4199						_date = new Date(date);
4200						setters_map[s](_date, parsed[s]);
4201						if (!isNaN(_date))
4202							date = _date;
4203					}
4204				}
4205			}
4206			return date;
4207		},
4208		formatDate: function(date, format, language){
4209			if (!date)
4210				return '';
4211			if (typeof format === 'string')
4212				format = DPGlobal.parseFormat(format);
4213			if (format.toDisplay)
4214                return format.toDisplay(date, format, language);
4215            var val = {
4216				d: date.getUTCDate(),
4217				D: dates[language].daysShort[date.getUTCDay()],
4218				DD: dates[language].days[date.getUTCDay()],
4219				m: date.getUTCMonth() + 1,
4220				M: dates[language].monthsShort[date.getUTCMonth()],
4221				MM: dates[language].months[date.getUTCMonth()],
4222				yy: date.getUTCFullYear().toString().substring(2),
4223				yyyy: date.getUTCFullYear()
4224			};
4225			val.dd = (val.d < 10 ? '0' : '') + val.d;
4226			val.mm = (val.m < 10 ? '0' : '') + val.m;
4227			date = [];
4228			var seps = $.extend([], format.separators);
4229			for (var i=0, cnt = format.parts.length; i <= cnt; i++){
4230				if (seps.length)
4231					date.push(seps.shift());
4232				date.push(val[format.parts[i]]);
4233			}
4234			return date.join('');
4235		},
4236		headTemplate: '<thead>'+
4237			              '<tr>'+
4238			                '<th colspan="7" class="datepicker-title"></th>'+
4239			              '</tr>'+
4240							'<tr>'+
4241								'<th class="prev">'+defaults.templates.leftArrow+'</th>'+
4242								'<th colspan="5" class="datepicker-switch"></th>'+
4243								'<th class="next">'+defaults.templates.rightArrow+'</th>'+
4244							'</tr>'+
4245						'</thead>',
4246		contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
4247		footTemplate: '<tfoot>'+
4248							'<tr>'+
4249								'<th colspan="7" class="today"></th>'+
4250							'</tr>'+
4251							'<tr>'+
4252								'<th colspan="7" class="clear"></th>'+
4253							'</tr>'+
4254						'</tfoot>'
4255	};
4256	DPGlobal.template = '<div class="datepicker">'+
4257							'<div class="datepicker-days">'+
4258								'<table class="table-condensed">'+
4259									DPGlobal.headTemplate+
4260									'<tbody></tbody>'+
4261									DPGlobal.footTemplate+
4262								'</table>'+
4263							'</div>'+
4264							'<div class="datepicker-months">'+
4265								'<table class="table-condensed">'+
4266									DPGlobal.headTemplate+
4267									DPGlobal.contTemplate+
4268									DPGlobal.footTemplate+
4269								'</table>'+
4270							'</div>'+
4271							'<div class="datepicker-years">'+
4272								'<table class="table-condensed">'+
4273									DPGlobal.headTemplate+
4274									DPGlobal.contTemplate+
4275									DPGlobal.footTemplate+
4276								'</table>'+
4277							'</div>'+
4278							'<div class="datepicker-decades">'+
4279								'<table class="table-condensed">'+
4280									DPGlobal.headTemplate+
4281									DPGlobal.contTemplate+
4282									DPGlobal.footTemplate+
4283								'</table>'+
4284							'</div>'+
4285							'<div class="datepicker-centuries">'+
4286								'<table class="table-condensed">'+
4287									DPGlobal.headTemplate+
4288									DPGlobal.contTemplate+
4289									DPGlobal.footTemplate+
4290								'</table>'+
4291							'</div>'+
4292						'</div>';
4293
4294	$.fn.bootstrapdatepicker.DPGlobal = DPGlobal;
4295
4296
4297	/* DATEPICKER NO CONFLICT
4298	* =================== */
4299
4300	$.fn.bootstrapdatepicker.noConflict = function(){
4301		$.fn.bootstrapdatepicker = old;
4302		return this;
4303	};
4304
4305	/* DATEPICKER VERSION
4306	 * =================== */
4307	$.fn.bootstrapdatepicker.version = '1.10.0';
4308
4309	$.fn.bootstrapdatepicker.deprecated = function(msg){
4310		var console = window.console;
4311		if (console && console.warn) {
4312			console.warn('DEPRECATED: ' + msg);
4313		}
4314	};
4315
4316
4317	/* DATEPICKER DATA-API
4318	* ================== */
4319
4320	$(document).on(
4321		'focus.datepicker.data-api click.datepicker.data-api',
4322		'[data-provide="datepicker"]',
4323		function(e){
4324			var $this = $(this);
4325			if ($this.data('datepicker'))
4326				return;
4327			e.preventDefault();
4328			// component click requires us to explicitly show it
4329			datepickerPlugin.call($this, 'show');
4330		}
4331	);
4332	$(function(){
4333		datepickerPlugin.call($('[data-provide="datepicker-inline"]'));
4334	});
4335
4336}));
4337
4338
4339/***/ }),
4340
vendor: 1,261 bytes, lines 4341-4369
4341/***/ "./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js":
4342/*!*********************************************************************************!*\
4343  !*** ./node_modules/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js ***!
4344  \*********************************************************************************/
4345/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4346
4347/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");
4348/**
4349 * German translation for bootstrap-datepicker
4350 * Sam Zurcher <[email protected]>
4351 */
4352;(function($){
4353	$.fn.bootstrapdatepicker.dates['de'] = {
4354		days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
4355		daysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
4356		daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
4357		months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
4358		monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
4359		today: "Heute",
4360		monthsTitle: "Monate",
4361		clear: "Löschen",
4362		weekStart: 1,
4363		format: "dd.mm.yyyy"
4364	};
4365}(jQuery));
4366
4367
4368/***/ }),
4369
vendor: 5,570 bytes, lines 4370-4562
4370/***/ "./node_modules/bootstrap/js/dist/alert.js":
4371/*!*************************************************!*\
4372  !*** ./node_modules/bootstrap/js/dist/alert.js ***!
4373  \*************************************************/
4374/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4375
4376/*!
4377  * Bootstrap alert.js v4.6.1 (https://getbootstrap.com/)
4378  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4379  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4380  */
4381(function (global, factory) {
4382   true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) :
4383  0;
4384})(this, (function ($, Util) { 'use strict';
4385
4386  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
4387
4388  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
4389  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
4390
4391  function _defineProperties(target, props) {
4392    for (var i = 0; i < props.length; i++) {
4393      var descriptor = props[i];
4394      descriptor.enumerable = descriptor.enumerable || false;
4395      descriptor.configurable = true;
4396      if ("value" in descriptor) descriptor.writable = true;
4397      Object.defineProperty(target, descriptor.key, descriptor);
4398    }
4399  }
4400
4401  function _createClass(Constructor, protoProps, staticProps) {
4402    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
4403    if (staticProps) _defineProperties(Constructor, staticProps);
4404    return Constructor;
4405  }
4406
4407  /**
4408   * Constants
4409   */
4410
4411  var NAME = 'alert';
4412  var VERSION = '4.6.1';
4413  var DATA_KEY = 'bs.alert';
4414  var EVENT_KEY = "." + DATA_KEY;
4415  var DATA_API_KEY = '.data-api';
4416  var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
4417  var CLASS_NAME_ALERT = 'alert';
4418  var CLASS_NAME_FADE = 'fade';
4419  var CLASS_NAME_SHOW = 'show';
4420  var EVENT_CLOSE = "close" + EVENT_KEY;
4421  var EVENT_CLOSED = "closed" + EVENT_KEY;
4422  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
4423  var SELECTOR_DISMISS = '[data-dismiss="alert"]';
4424  /**
4425   * Class definition
4426   */
4427
4428  var Alert = /*#__PURE__*/function () {
4429    function Alert(element) {
4430      this._element = element;
4431    } // Getters
4432
4433
4434    var _proto = Alert.prototype;
4435
4436    // Public
4437    _proto.close = function close(element) {
4438      var rootElement = this._element;
4439
4440      if (element) {
4441        rootElement = this._getRootElement(element);
4442      }
4443
4444      var customEvent = this._triggerCloseEvent(rootElement);
4445
4446      if (customEvent.isDefaultPrevented()) {
4447        return;
4448      }
4449
4450      this._removeElement(rootElement);
4451    };
4452
4453    _proto.dispose = function dispose() {
4454      $__default["default"].removeData(this._element, DATA_KEY);
4455      this._element = null;
4456    } // Private
4457    ;
4458
4459    _proto._getRootElement = function _getRootElement(element) {
4460      var selector = Util__default["default"].getSelectorFromElement(element);
4461      var parent = false;
4462
4463      if (selector) {
4464        parent = document.querySelector(selector);
4465      }
4466
4467      if (!parent) {
4468        parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];
4469      }
4470
4471      return parent;
4472    };
4473
4474    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
4475      var closeEvent = $__default["default"].Event(EVENT_CLOSE);
4476      $__default["default"](element).trigger(closeEvent);
4477      return closeEvent;
4478    };
4479
4480    _proto._removeElement = function _removeElement(element) {
4481      var _this = this;
4482
4483      $__default["default"](element).removeClass(CLASS_NAME_SHOW);
4484
4485      if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) {
4486        this._destroyElement(element);
4487
4488        return;
4489      }
4490
4491      var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element);
4492      $__default["default"](element).one(Util__default["default"].TRANSITION_END, function (event) {
4493        return _this._destroyElement(element, event);
4494      }).emulateTransitionEnd(transitionDuration);
4495    };
4496
4497    _proto._destroyElement = function _destroyElement(element) {
4498      $__default["default"](element).detach().trigger(EVENT_CLOSED).remove();
4499    } // Static
4500    ;
4501
4502    Alert._jQueryInterface = function _jQueryInterface(config) {
4503      return this.each(function () {
4504        var $element = $__default["default"](this);
4505        var data = $element.data(DATA_KEY);
4506
4507        if (!data) {
4508          data = new Alert(this);
4509          $element.data(DATA_KEY, data);
4510        }
4511
4512        if (config === 'close') {
4513          data[config](this);
4514        }
4515      });
4516    };
4517
4518    Alert._handleDismiss = function _handleDismiss(alertInstance) {
4519      return function (event) {
4520        if (event) {
4521          event.preventDefault();
4522        }
4523
4524        alertInstance.close(this);
4525      };
4526    };
4527
4528    _createClass(Alert, null, [{
4529      key: "VERSION",
4530      get: function get() {
4531        return VERSION;
4532      }
4533    }]);
4534
4535    return Alert;
4536  }();
4537  /**
4538   * Data API implementation
4539   */
4540
4541
4542  $__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
4543  /**
4544   * jQuery
4545   */
4546
4547  $__default["default"].fn[NAME] = Alert._jQueryInterface;
4548  $__default["default"].fn[NAME].Constructor = Alert;
4549
4550  $__default["default"].fn[NAME].noConflict = function () {
4551    $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
4552    return Alert._jQueryInterface;
4553  };
4554
4555  return Alert;
4556
4557}));
4558//# sourceMappingURL=alert.js.map
4559
4560
4561/***/ }),
4562
vendor: 18,620 bytes, lines 4563-5129
4563/***/ "./node_modules/bootstrap/js/dist/dropdown.js":
4564/*!****************************************************!*\
4565  !*** ./node_modules/bootstrap/js/dist/dropdown.js ***!
4566  \****************************************************/
4567/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4568
4569/*!
4570  * Bootstrap dropdown.js v4.6.1 (https://getbootstrap.com/)
4571  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4572  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4573  */
4574(function (global, factory) {
4575   true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) :
4576  0;
4577})(this, (function ($, Popper, Util) { 'use strict';
4578
4579  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
4580
4581  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
4582  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
4583  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
4584
4585  function _defineProperties(target, props) {
4586    for (var i = 0; i < props.length; i++) {
4587      var descriptor = props[i];
4588      descriptor.enumerable = descriptor.enumerable || false;
4589      descriptor.configurable = true;
4590      if ("value" in descriptor) descriptor.writable = true;
4591      Object.defineProperty(target, descriptor.key, descriptor);
4592    }
4593  }
4594
4595  function _createClass(Constructor, protoProps, staticProps) {
4596    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
4597    if (staticProps) _defineProperties(Constructor, staticProps);
4598    return Constructor;
4599  }
4600
4601  function _extends() {
4602    _extends = Object.assign || function (target) {
4603      for (var i = 1; i < arguments.length; i++) {
4604        var source = arguments[i];
4605
4606        for (var key in source) {
4607          if (Object.prototype.hasOwnProperty.call(source, key)) {
4608            target[key] = source[key];
4609          }
4610        }
4611      }
4612
4613      return target;
4614    };
4615
4616    return _extends.apply(this, arguments);
4617  }
4618
4619  /**
4620   * Constants
4621   */
4622
4623  var NAME = 'dropdown';
4624  var VERSION = '4.6.1';
4625  var DATA_KEY = 'bs.dropdown';
4626  var EVENT_KEY = "." + DATA_KEY;
4627  var DATA_API_KEY = '.data-api';
4628  var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
4629  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
4630
4631  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
4632
4633  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
4634
4635  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
4636
4637  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
4638
4639  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
4640
4641  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
4642  var CLASS_NAME_DISABLED = 'disabled';
4643  var CLASS_NAME_SHOW = 'show';
4644  var CLASS_NAME_DROPUP = 'dropup';
4645  var CLASS_NAME_DROPRIGHT = 'dropright';
4646  var CLASS_NAME_DROPLEFT = 'dropleft';
4647  var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
4648  var CLASS_NAME_POSITION_STATIC = 'position-static';
4649  var EVENT_HIDE = "hide" + EVENT_KEY;
4650  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
4651  var EVENT_SHOW = "show" + EVENT_KEY;
4652  var EVENT_SHOWN = "shown" + EVENT_KEY;
4653  var EVENT_CLICK = "click" + EVENT_KEY;
4654  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
4655  var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
4656  var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
4657  var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
4658  var SELECTOR_FORM_CHILD = '.dropdown form';
4659  var SELECTOR_MENU = '.dropdown-menu';
4660  var SELECTOR_NAVBAR_NAV = '.navbar-nav';
4661  var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
4662  var PLACEMENT_TOP = 'top-start';
4663  var PLACEMENT_TOPEND = 'top-end';
4664  var PLACEMENT_BOTTOM = 'bottom-start';
4665  var PLACEMENT_BOTTOMEND = 'bottom-end';
4666  var PLACEMENT_RIGHT = 'right-start';
4667  var PLACEMENT_LEFT = 'left-start';
4668  var Default = {
4669    offset: 0,
4670    flip: true,
4671    boundary: 'scrollParent',
4672    reference: 'toggle',
4673    display: 'dynamic',
4674    popperConfig: null
4675  };
4676  var DefaultType = {
4677    offset: '(number|string|function)',
4678    flip: 'boolean',
4679    boundary: '(string|element)',
4680    reference: '(string|element)',
4681    display: 'string',
4682    popperConfig: '(null|object)'
4683  };
4684  /**
4685   * Class definition
4686   */
4687
4688  var Dropdown = /*#__PURE__*/function () {
4689    function Dropdown(element, config) {
4690      this._element = element;
4691      this._popper = null;
4692      this._config = this._getConfig(config);
4693      this._menu = this._getMenuElement();
4694      this._inNavbar = this._detectNavbar();
4695
4696      this._addEventListeners();
4697    } // Getters
4698
4699
4700    var _proto = Dropdown.prototype;
4701
4702    // Public
4703    _proto.toggle = function toggle() {
4704      if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED)) {
4705        return;
4706      }
4707
4708      var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW);
4709
4710      Dropdown._clearMenus();
4711
4712      if (isActive) {
4713        return;
4714      }
4715
4716      this.show(true);
4717    };
4718
4719    _proto.show = function show(usePopper) {
4720      if (usePopper === void 0) {
4721        usePopper = false;
4722      }
4723
4724      if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) {
4725        return;
4726      }
4727
4728      var relatedTarget = {
4729        relatedTarget: this._element
4730      };
4731      var showEvent = $__default["default"].Event(EVENT_SHOW, relatedTarget);
4732
4733      var parent = Dropdown._getParentFromElement(this._element);
4734
4735      $__default["default"](parent).trigger(showEvent);
4736
4737      if (showEvent.isDefaultPrevented()) {
4738        return;
4739      } // Totally disable Popper for Dropdowns in Navbar
4740
4741
4742      if (!this._inNavbar && usePopper) {
4743        // Check for Popper dependency
4744        if (typeof Popper__default["default"] === 'undefined') {
4745          throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
4746        }
4747
4748        var referenceElement = this._element;
4749
4750        if (this._config.reference === 'parent') {
4751          referenceElement = parent;
4752        } else if (Util__default["default"].isElement(this._config.reference)) {
4753          referenceElement = this._config.reference; // Check if it's jQuery element
4754
4755          if (typeof this._config.reference.jquery !== 'undefined') {
4756            referenceElement = this._config.reference[0];
4757          }
4758        } // If boundary is not `scrollParent`, then set position to `static`
4759        // to allow the menu to "escape" the scroll parent's boundaries
4760        // https://github.com/twbs/bootstrap/issues/24251
4761
4762
4763        if (this._config.boundary !== 'scrollParent') {
4764          $__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC);
4765        }
4766
4767        this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig());
4768      } // If this is a touch-enabled device we add extra
4769      // empty mouseover listeners to the body's immediate children;
4770      // only needed because of broken event delegation on iOS
4771      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
4772
4773
4774      if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
4775        $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);
4776      }
4777
4778      this._element.focus();
4779
4780      this._element.setAttribute('aria-expanded', true);
4781
4782      $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW);
4783      $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_SHOWN, relatedTarget));
4784    };
4785
4786    _proto.hide = function hide() {
4787      if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW)) {
4788        return;
4789      }
4790
4791      var relatedTarget = {
4792        relatedTarget: this._element
4793      };
4794      var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget);
4795
4796      var parent = Dropdown._getParentFromElement(this._element);
4797
4798      $__default["default"](parent).trigger(hideEvent);
4799
4800      if (hideEvent.isDefaultPrevented()) {
4801        return;
4802      }
4803
4804      if (this._popper) {
4805        this._popper.destroy();
4806      }
4807
4808      $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW);
4809      $__default["default"](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget));
4810    };
4811
4812    _proto.dispose = function dispose() {
4813      $__default["default"].removeData(this._element, DATA_KEY);
4814      $__default["default"](this._element).off(EVENT_KEY);
4815      this._element = null;
4816      this._menu = null;
4817
4818      if (this._popper !== null) {
4819        this._popper.destroy();
4820
4821        this._popper = null;
4822      }
4823    };
4824
4825    _proto.update = function update() {
4826      this._inNavbar = this._detectNavbar();
4827
4828      if (this._popper !== null) {
4829        this._popper.scheduleUpdate();
4830      }
4831    } // Private
4832    ;
4833
4834    _proto._addEventListeners = function _addEventListeners() {
4835      var _this = this;
4836
4837      $__default["default"](this._element).on(EVENT_CLICK, function (event) {
4838        event.preventDefault();
4839        event.stopPropagation();
4840
4841        _this.toggle();
4842      });
4843    };
4844
4845    _proto._getConfig = function _getConfig(config) {
4846      config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config);
4847      Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType);
4848      return config;
4849    };
4850
4851    _proto._getMenuElement = function _getMenuElement() {
4852      if (!this._menu) {
4853        var parent = Dropdown._getParentFromElement(this._element);
4854
4855        if (parent) {
4856          this._menu = parent.querySelector(SELECTOR_MENU);
4857        }
4858      }
4859
4860      return this._menu;
4861    };
4862
4863    _proto._getPlacement = function _getPlacement() {
4864      var $parentDropdown = $__default["default"](this._element.parentNode);
4865      var placement = PLACEMENT_BOTTOM; // Handle dropup
4866
4867      if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
4868        placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
4869      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
4870        placement = PLACEMENT_RIGHT;
4871      } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
4872        placement = PLACEMENT_LEFT;
4873      } else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
4874        placement = PLACEMENT_BOTTOMEND;
4875      }
4876
4877      return placement;
4878    };
4879
4880    _proto._detectNavbar = function _detectNavbar() {
4881      return $__default["default"](this._element).closest('.navbar').length > 0;
4882    };
4883
4884    _proto._getOffset = function _getOffset() {
4885      var _this2 = this;
4886
4887      var offset = {};
4888
4889      if (typeof this._config.offset === 'function') {
4890        offset.fn = function (data) {
4891          data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));
4892          return data;
4893        };
4894      } else {
4895        offset.offset = this._config.offset;
4896      }
4897
4898      return offset;
4899    };
4900
4901    _proto._getPopperConfig = function _getPopperConfig() {
4902      var popperConfig = {
4903        placement: this._getPlacement(),
4904        modifiers: {
4905          offset: this._getOffset(),
4906          flip: {
4907            enabled: this._config.flip
4908          },
4909          preventOverflow: {
4910            boundariesElement: this._config.boundary
4911          }
4912        }
4913      }; // Disable Popper if we have a static display
4914
4915      if (this._config.display === 'static') {
4916        popperConfig.modifiers.applyStyle = {
4917          enabled: false
4918        };
4919      }
4920
4921      return _extends({}, popperConfig, this._config.popperConfig);
4922    } // Static
4923    ;
4924
4925    Dropdown._jQueryInterface = function _jQueryInterface(config) {
4926      return this.each(function () {
4927        var data = $__default["default"](this).data(DATA_KEY);
4928
4929        var _config = typeof config === 'object' ? config : null;
4930
4931        if (!data) {
4932          data = new Dropdown(this, _config);
4933          $__default["default"](this).data(DATA_KEY, data);
4934        }
4935
4936        if (typeof config === 'string') {
4937          if (typeof data[config] === 'undefined') {
4938            throw new TypeError("No method named \"" + config + "\"");
4939          }
4940
4941          data[config]();
4942        }
4943      });
4944    };
4945
4946    Dropdown._clearMenus = function _clearMenus(event) {
4947      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
4948        return;
4949      }
4950
4951      var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
4952
4953      for (var i = 0, len = toggles.length; i < len; i++) {
4954        var parent = Dropdown._getParentFromElement(toggles[i]);
4955
4956        var context = $__default["default"](toggles[i]).data(DATA_KEY);
4957        var relatedTarget = {
4958          relatedTarget: toggles[i]
4959        };
4960
4961        if (event && event.type === 'click') {
4962          relatedTarget.clickEvent = event;
4963        }
4964
4965        if (!context) {
4966          continue;
4967        }
4968
4969        var dropdownMenu = context._menu;
4970
4971        if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW)) {
4972          continue;
4973        }
4974
4975        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) {
4976          continue;
4977        }
4978
4979        var hideEvent = $__default["default"].Event(EVENT_HIDE, relatedTarget);
4980        $__default["default"](parent).trigger(hideEvent);
4981
4982        if (hideEvent.isDefaultPrevented()) {
4983          continue;
4984        } // If this is a touch-enabled device we remove the extra
4985        // empty mouseover listeners we added for iOS support
4986
4987
4988        if ('ontouchstart' in document.documentElement) {
4989          $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);
4990        }
4991
4992        toggles[i].setAttribute('aria-expanded', 'false');
4993
4994        if (context._popper) {
4995          context._popper.destroy();
4996        }
4997
4998        $__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW);
4999        $__default["default"](parent).removeClass(CLASS_NAME_SHOW).trigger($__default["default"].Event(EVENT_HIDDEN, relatedTarget));
5000      }
5001    };
5002
5003    Dropdown._getParentFromElement = function _getParentFromElement(element) {
5004      var parent;
5005      var selector = Util__default["default"].getSelectorFromElement(element);
5006
5007      if (selector) {
5008        parent = document.querySelector(selector);
5009      }
5010
5011      return parent || element.parentNode;
5012    } // eslint-disable-next-line complexity
5013    ;
5014
5015    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
5016      // If not input/textarea:
5017      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
5018      // If input/textarea:
5019      //  - If space key => not a dropdown command
5020      //  - If key is other than escape
5021      //    - If key is not up or down => not a dropdown command
5022      //    - If trigger inside the menu => not a dropdown command
5023      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
5024        return;
5025      }
5026
5027      if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED)) {
5028        return;
5029      }
5030
5031      var parent = Dropdown._getParentFromElement(this);
5032
5033      var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW);
5034
5035      if (!isActive && event.which === ESCAPE_KEYCODE) {
5036        return;
5037      }
5038
5039      event.preventDefault();
5040      event.stopPropagation();
5041
5042      if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {
5043        if (event.which === ESCAPE_KEYCODE) {
5044          $__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
5045        }
5046
5047        $__default["default"](this).trigger('click');
5048        return;
5049      }
5050
5051      var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
5052        return $__default["default"](item).is(':visible');
5053      });
5054
5055      if (items.length === 0) {
5056        return;
5057      }
5058
5059      var index = items.indexOf(event.target);
5060
5061      if (event.which === ARROW_UP_KEYCODE && index > 0) {
5062        // Up
5063        index--;
5064      }
5065
5066      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
5067        // Down
5068        index++;
5069      }
5070
5071      if (index < 0) {
5072        index = 0;
5073      }
5074
5075      items[index].focus();
5076    };
5077
5078    _createClass(Dropdown, null, [{
5079      key: "VERSION",
5080      get: function get() {
5081        return VERSION;
5082      }
5083    }, {
5084      key: "Default",
5085      get: function get() {
5086        return Default;
5087      }
5088    }, {
5089      key: "DefaultType",
5090      get: function get() {
5091        return DefaultType;
5092      }
5093    }]);
5094
5095    return Dropdown;
5096  }();
5097  /**
5098   * Data API implementation
5099   */
5100
5101
5102  $__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
5103    event.preventDefault();
5104    event.stopPropagation();
5105
5106    Dropdown._jQueryInterface.call($__default["default"](this), 'toggle');
5107  }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
5108    e.stopPropagation();
5109  });
5110  /**
5111   * jQuery
5112   */
5113
5114  $__default["default"].fn[NAME] = Dropdown._jQueryInterface;
5115  $__default["default"].fn[NAME].Constructor = Dropdown;
5116
5117  $__default["default"].fn[NAME].noConflict = function () {
5118    $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
5119    return Dropdown._jQueryInterface;
5120  };
5121
5122  return Dropdown;
5123
5124}));
5125//# sourceMappingURL=dropdown.js.map
5126
5127
5128/***/ }),
5129
vendor: 7,273 bytes, lines 5130-5382
5130/***/ "./node_modules/bootstrap/js/dist/popover.js":
5131/*!***************************************************!*\
5132  !*** ./node_modules/bootstrap/js/dist/popover.js ***!
5133  \***************************************************/
5134/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5135
5136/*!
5137  * Bootstrap popover.js v4.6.1 (https://getbootstrap.com/)
5138  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5139  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5140  */
5141(function (global, factory) {
5142   true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./tooltip.js */ "./node_modules/bootstrap/js/dist/tooltip.js")) :
5143  0;
5144})(this, (function ($, Tooltip) { 'use strict';
5145
5146  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
5147
5148  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
5149  var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
5150
5151  function _defineProperties(target, props) {
5152    for (var i = 0; i < props.length; i++) {
5153      var descriptor = props[i];
5154      descriptor.enumerable = descriptor.enumerable || false;
5155      descriptor.configurable = true;
5156      if ("value" in descriptor) descriptor.writable = true;
5157      Object.defineProperty(target, descriptor.key, descriptor);
5158    }
5159  }
5160
5161  function _createClass(Constructor, protoProps, staticProps) {
5162    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
5163    if (staticProps) _defineProperties(Constructor, staticProps);
5164    return Constructor;
5165  }
5166
5167  function _extends() {
5168    _extends = Object.assign || function (target) {
5169      for (var i = 1; i < arguments.length; i++) {
5170        var source = arguments[i];
5171
5172        for (var key in source) {
5173          if (Object.prototype.hasOwnProperty.call(source, key)) {
5174            target[key] = source[key];
5175          }
5176        }
5177      }
5178
5179      return target;
5180    };
5181
5182    return _extends.apply(this, arguments);
5183  }
5184
5185  function _inheritsLoose(subClass, superClass) {
5186    subClass.prototype = Object.create(superClass.prototype);
5187    subClass.prototype.constructor = subClass;
5188
5189    _setPrototypeOf(subClass, superClass);
5190  }
5191
5192  function _setPrototypeOf(o, p) {
5193    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
5194      o.__proto__ = p;
5195      return o;
5196    };
5197
5198    return _setPrototypeOf(o, p);
5199  }
5200
5201  /**
5202   * Constants
5203   */
5204
5205  var NAME = 'popover';
5206  var VERSION = '4.6.1';
5207  var DATA_KEY = 'bs.popover';
5208  var EVENT_KEY = "." + DATA_KEY;
5209  var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
5210  var CLASS_PREFIX = 'bs-popover';
5211  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
5212  var CLASS_NAME_FADE = 'fade';
5213  var CLASS_NAME_SHOW = 'show';
5214  var SELECTOR_TITLE = '.popover-header';
5215  var SELECTOR_CONTENT = '.popover-body';
5216
5217  var Default = _extends({}, Tooltip__default["default"].Default, {
5218    placement: 'right',
5219    trigger: 'click',
5220    content: '',
5221    template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
5222  });
5223
5224  var DefaultType = _extends({}, Tooltip__default["default"].DefaultType, {
5225    content: '(string|element|function)'
5226  });
5227
5228  var Event = {
5229    HIDE: "hide" + EVENT_KEY,
5230    HIDDEN: "hidden" + EVENT_KEY,
5231    SHOW: "show" + EVENT_KEY,
5232    SHOWN: "shown" + EVENT_KEY,
5233    INSERTED: "inserted" + EVENT_KEY,
5234    CLICK: "click" + EVENT_KEY,
5235    FOCUSIN: "focusin" + EVENT_KEY,
5236    FOCUSOUT: "focusout" + EVENT_KEY,
5237    MOUSEENTER: "mouseenter" + EVENT_KEY,
5238    MOUSELEAVE: "mouseleave" + EVENT_KEY
5239  };
5240  /**
5241   * Class definition
5242   */
5243
5244  var Popover = /*#__PURE__*/function (_Tooltip) {
5245    _inheritsLoose(Popover, _Tooltip);
5246
5247    function Popover() {
5248      return _Tooltip.apply(this, arguments) || this;
5249    }
5250
5251    var _proto = Popover.prototype;
5252
5253    // Overrides
5254    _proto.isWithContent = function isWithContent() {
5255      return this.getTitle() || this._getContent();
5256    };
5257
5258    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5259      $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
5260    };
5261
5262    _proto.getTipElement = function getTipElement() {
5263      this.tip = this.tip || $__default["default"](this.config.template)[0];
5264      return this.tip;
5265    };
5266
5267    _proto.setContent = function setContent() {
5268      var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events
5269
5270      this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
5271
5272      var content = this._getContent();
5273
5274      if (typeof content === 'function') {
5275        content = content.call(this.element);
5276      }
5277
5278      this.setElementContent($tip.find(SELECTOR_CONTENT), content);
5279      $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
5280    } // Private
5281    ;
5282
5283    _proto._getContent = function _getContent() {
5284      return this.element.getAttribute('data-content') || this.config.content;
5285    };
5286
5287    _proto._cleanTipClass = function _cleanTipClass() {
5288      var $tip = $__default["default"](this.getTipElement());
5289      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
5290
5291      if (tabClass !== null && tabClass.length > 0) {
5292        $tip.removeClass(tabClass.join(''));
5293      }
5294    } // Static
5295    ;
5296
5297    Popover._jQueryInterface = function _jQueryInterface(config) {
5298      return this.each(function () {
5299        var data = $__default["default"](this).data(DATA_KEY);
5300
5301        var _config = typeof config === 'object' ? config : null;
5302
5303        if (!data && /dispose|hide/.test(config)) {
5304          return;
5305        }
5306
5307        if (!data) {
5308          data = new Popover(this, _config);
5309          $__default["default"](this).data(DATA_KEY, data);
5310        }
5311
5312        if (typeof config === 'string') {
5313          if (typeof data[config] === 'undefined') {
5314            throw new TypeError("No method named \"" + config + "\"");
5315          }
5316
5317          data[config]();
5318        }
5319      });
5320    };
5321
5322    _createClass(Popover, null, [{
5323      key: "VERSION",
5324      get: // Getters
5325      function get() {
5326        return VERSION;
5327      }
5328    }, {
5329      key: "Default",
5330      get: function get() {
5331        return Default;
5332      }
5333    }, {
5334      key: "NAME",
5335      get: function get() {
5336        return NAME;
5337      }
5338    }, {
5339      key: "DATA_KEY",
5340      get: function get() {
5341        return DATA_KEY;
5342      }
5343    }, {
5344      key: "Event",
5345      get: function get() {
5346        return Event;
5347      }
5348    }, {
5349      key: "EVENT_KEY",
5350      get: function get() {
5351        return EVENT_KEY;
5352      }
5353    }, {
5354      key: "DefaultType",
5355      get: function get() {
5356        return DefaultType;
5357      }
5358    }]);
5359
5360    return Popover;
5361  }(Tooltip__default["default"]);
5362  /**
5363   * jQuery
5364   */
5365
5366
5367  $__default["default"].fn[NAME] = Popover._jQueryInterface;
5368  $__default["default"].fn[NAME].Constructor = Popover;
5369
5370  $__default["default"].fn[NAME].noConflict = function () {
5371    $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
5372    return Popover._jQueryInterface;
5373  };
5374
5375  return Popover;
5376
5377}));
5378//# sourceMappingURL=popover.js.map
5379
5380
5381/***/ }),
5382
vendor: 27,608 bytes, lines 5383-6278
5383/***/ "./node_modules/bootstrap/js/dist/tooltip.js":
5384/*!***************************************************!*\
5385  !*** ./node_modules/bootstrap/js/dist/tooltip.js ***!
5386  \***************************************************/
5387/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5388
5389/*!
5390  * Bootstrap tooltip.js v4.6.1 (https://getbootstrap.com/)
5391  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5392  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5393  */
5394(function (global, factory) {
5395   true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"), __webpack_require__(/*! ./util.js */ "./node_modules/bootstrap/js/dist/util.js")) :
5396  0;
5397})(this, (function ($, Popper, Util) { 'use strict';
5398
5399  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
5400
5401  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
5402  var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
5403  var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
5404
5405  function _defineProperties(target, props) {
5406    for (var i = 0; i < props.length; i++) {
5407      var descriptor = props[i];
5408      descriptor.enumerable = descriptor.enumerable || false;
5409      descriptor.configurable = true;
5410      if ("value" in descriptor) descriptor.writable = true;
5411      Object.defineProperty(target, descriptor.key, descriptor);
5412    }
5413  }
5414
5415  function _createClass(Constructor, protoProps, staticProps) {
5416    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
5417    if (staticProps) _defineProperties(Constructor, staticProps);
5418    return Constructor;
5419  }
5420
5421  function _extends() {
5422    _extends = Object.assign || function (target) {
5423      for (var i = 1; i < arguments.length; i++) {
5424        var source = arguments[i];
5425
5426        for (var key in source) {
5427          if (Object.prototype.hasOwnProperty.call(source, key)) {
5428            target[key] = source[key];
5429          }
5430        }
5431      }
5432
5433      return target;
5434    };
5435
5436    return _extends.apply(this, arguments);
5437  }
5438
5439  /**
5440   * --------------------------------------------------------------------------
5441   * Bootstrap (v4.6.1): tools/sanitizer.js
5442   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5443   * --------------------------------------------------------------------------
5444   */
5445  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
5446  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
5447  var DefaultWhitelist = {
5448    // Global attributes allowed on any supplied element below.
5449    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
5450    a: ['target', 'href', 'title', 'rel'],
5451    area: [],
5452    b: [],
5453    br: [],
5454    col: [],
5455    code: [],
5456    div: [],
5457    em: [],
5458    hr: [],
5459    h1: [],
5460    h2: [],
5461    h3: [],
5462    h4: [],
5463    h5: [],
5464    h6: [],
5465    i: [],
5466    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
5467    li: [],
5468    ol: [],
5469    p: [],
5470    pre: [],
5471    s: [],
5472    small: [],
5473    span: [],
5474    sub: [],
5475    sup: [],
5476    strong: [],
5477    u: [],
5478    ul: []
5479  };
5480  /**
5481   * A pattern that recognizes a commonly useful subset of URLs that are safe.
5482   *
5483   * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5484   */
5485
5486  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
5487  /**
5488   * A pattern that matches safe data URLs. Only matches image, video and audio types.
5489   *
5490   * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5491   */
5492
5493  var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
5494
5495  function allowedAttribute(attr, allowedAttributeList) {
5496    var attrName = attr.nodeName.toLowerCase();
5497
5498    if (allowedAttributeList.indexOf(attrName) !== -1) {
5499      if (uriAttrs.indexOf(attrName) !== -1) {
5500        return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
5501      }
5502
5503      return true;
5504    }
5505
5506    var regExp = allowedAttributeList.filter(function (attrRegex) {
5507      return attrRegex instanceof RegExp;
5508    }); // Check if a regular expression validates the attribute.
5509
5510    for (var i = 0, len = regExp.length; i < len; i++) {
5511      if (regExp[i].test(attrName)) {
5512        return true;
5513      }
5514    }
5515
5516    return false;
5517  }
5518
5519  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
5520    if (unsafeHtml.length === 0) {
5521      return unsafeHtml;
5522    }
5523
5524    if (sanitizeFn && typeof sanitizeFn === 'function') {
5525      return sanitizeFn(unsafeHtml);
5526    }
5527
5528    var domParser = new window.DOMParser();
5529    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
5530    var whitelistKeys = Object.keys(whiteList);
5531    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
5532
5533    var _loop = function _loop(i, len) {
5534      var el = elements[i];
5535      var elName = el.nodeName.toLowerCase();
5536
5537      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
5538        el.parentNode.removeChild(el);
5539        return "continue";
5540      }
5541
5542      var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread
5543
5544      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
5545      attributeList.forEach(function (attr) {
5546        if (!allowedAttribute(attr, whitelistedAttributes)) {
5547          el.removeAttribute(attr.nodeName);
5548        }
5549      });
5550    };
5551
5552    for (var i = 0, len = elements.length; i < len; i++) {
5553      var _ret = _loop(i);
5554
5555      if (_ret === "continue") continue;
5556    }
5557
5558    return createdDocument.body.innerHTML;
5559  }
5560
5561  /**
5562   * Constants
5563   */
5564
5565  var NAME = 'tooltip';
5566  var VERSION = '4.6.1';
5567  var DATA_KEY = 'bs.tooltip';
5568  var EVENT_KEY = "." + DATA_KEY;
5569  var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
5570  var CLASS_PREFIX = 'bs-tooltip';
5571  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
5572  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
5573  var CLASS_NAME_FADE = 'fade';
5574  var CLASS_NAME_SHOW = 'show';
5575  var HOVER_STATE_SHOW = 'show';
5576  var HOVER_STATE_OUT = 'out';
5577  var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
5578  var SELECTOR_ARROW = '.arrow';
5579  var TRIGGER_HOVER = 'hover';
5580  var TRIGGER_FOCUS = 'focus';
5581  var TRIGGER_CLICK = 'click';
5582  var TRIGGER_MANUAL = 'manual';
5583  var AttachmentMap = {
5584    AUTO: 'auto',
5585    TOP: 'top',
5586    RIGHT: 'right',
5587    BOTTOM: 'bottom',
5588    LEFT: 'left'
5589  };
5590  var Default = {
5591    animation: true,
5592    template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
5593    trigger: 'hover focus',
5594    title: '',
5595    delay: 0,
5596    html: false,
5597    selector: false,
5598    placement: 'top',
5599    offset: 0,
5600    container: false,
5601    fallbackPlacement: 'flip',
5602    boundary: 'scrollParent',
5603    customClass: '',
5604    sanitize: true,
5605    sanitizeFn: null,
5606    whiteList: DefaultWhitelist,
5607    popperConfig: null
5608  };
5609  var DefaultType = {
5610    animation: 'boolean',
5611    template: 'string',
5612    title: '(string|element|function)',
5613    trigger: 'string',
5614    delay: '(number|object)',
5615    html: 'boolean',
5616    selector: '(string|boolean)',
5617    placement: '(string|function)',
5618    offset: '(number|string|function)',
5619    container: '(string|element|boolean)',
5620    fallbackPlacement: '(string|array)',
5621    boundary: '(string|element)',
5622    customClass: '(string|function)',
5623    sanitize: 'boolean',
5624    sanitizeFn: '(null|function)',
5625    whiteList: 'object',
5626    popperConfig: '(null|object)'
5627  };
5628  var Event = {
5629    HIDE: "hide" + EVENT_KEY,
5630    HIDDEN: "hidden" + EVENT_KEY,
5631    SHOW: "show" + EVENT_KEY,
5632    SHOWN: "shown" + EVENT_KEY,
5633    INSERTED: "inserted" + EVENT_KEY,
5634    CLICK: "click" + EVENT_KEY,
5635    FOCUSIN: "focusin" + EVENT_KEY,
5636    FOCUSOUT: "focusout" + EVENT_KEY,
5637    MOUSEENTER: "mouseenter" + EVENT_KEY,
5638    MOUSELEAVE: "mouseleave" + EVENT_KEY
5639  };
5640  /**
5641   * Class definition
5642   */
5643
5644  var Tooltip = /*#__PURE__*/function () {
5645    function Tooltip(element, config) {
5646      if (typeof Popper__default["default"] === 'undefined') {
5647        throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
5648      } // Private
5649
5650
5651      this._isEnabled = true;
5652      this._timeout = 0;
5653      this._hoverState = '';
5654      this._activeTrigger = {};
5655      this._popper = null; // Protected
5656
5657      this.element = element;
5658      this.config = this._getConfig(config);
5659      this.tip = null;
5660
5661      this._setListeners();
5662    } // Getters
5663
5664
5665    var _proto = Tooltip.prototype;
5666
5667    // Public
5668    _proto.enable = function enable() {
5669      this._isEnabled = true;
5670    };
5671
5672    _proto.disable = function disable() {
5673      this._isEnabled = false;
5674    };
5675
5676    _proto.toggleEnabled = function toggleEnabled() {
5677      this._isEnabled = !this._isEnabled;
5678    };
5679
5680    _proto.toggle = function toggle(event) {
5681      if (!this._isEnabled) {
5682        return;
5683      }
5684
5685      if (event) {
5686        var dataKey = this.constructor.DATA_KEY;
5687        var context = $__default["default"](event.currentTarget).data(dataKey);
5688
5689        if (!context) {
5690          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
5691          $__default["default"](event.currentTarget).data(dataKey, context);
5692        }
5693
5694        context._activeTrigger.click = !context._activeTrigger.click;
5695
5696        if (context._isWithActiveTrigger()) {
5697          context._enter(null, context);
5698        } else {
5699          context._leave(null, context);
5700        }
5701      } else {
5702        if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {
5703          this._leave(null, this);
5704
5705          return;
5706        }
5707
5708        this._enter(null, this);
5709      }
5710    };
5711
5712    _proto.dispose = function dispose() {
5713      clearTimeout(this._timeout);
5714      $__default["default"].removeData(this.element, this.constructor.DATA_KEY);
5715      $__default["default"](this.element).off(this.constructor.EVENT_KEY);
5716      $__default["default"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);
5717
5718      if (this.tip) {
5719        $__default["default"](this.tip).remove();
5720      }
5721
5722      this._isEnabled = null;
5723      this._timeout = null;
5724      this._hoverState = null;
5725      this._activeTrigger = null;
5726
5727      if (this._popper) {
5728        this._popper.destroy();
5729      }
5730
5731      this._popper = null;
5732      this.element = null;
5733      this.config = null;
5734      this.tip = null;
5735    };
5736
5737    _proto.show = function show() {
5738      var _this = this;
5739
5740      if ($__default["default"](this.element).css('display') === 'none') {
5741        throw new Error('Please use show on visible elements');
5742      }
5743
5744      var showEvent = $__default["default"].Event(this.constructor.Event.SHOW);
5745
5746      if (this.isWithContent() && this._isEnabled) {
5747        $__default["default"](this.element).trigger(showEvent);
5748        var shadowRoot = Util__default["default"].findShadowRoot(this.element);
5749        var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
5750
5751        if (showEvent.isDefaultPrevented() || !isInTheDom) {
5752          return;
5753        }
5754
5755        var tip = this.getTipElement();
5756        var tipId = Util__default["default"].getUID(this.constructor.NAME);
5757        tip.setAttribute('id', tipId);
5758        this.element.setAttribute('aria-describedby', tipId);
5759        this.setContent();
5760
5761        if (this.config.animation) {
5762          $__default["default"](tip).addClass(CLASS_NAME_FADE);
5763        }
5764
5765        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
5766
5767        var attachment = this._getAttachment(placement);
5768
5769        this.addAttachmentClass(attachment);
5770
5771        var container = this._getContainer();
5772
5773        $__default["default"](tip).data(this.constructor.DATA_KEY, this);
5774
5775        if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) {
5776          $__default["default"](tip).appendTo(container);
5777        }
5778
5779        $__default["default"](this.element).trigger(this.constructor.Event.INSERTED);
5780        this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment));
5781        $__default["default"](tip).addClass(CLASS_NAME_SHOW);
5782        $__default["default"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra
5783        // empty mouseover listeners to the body's immediate children;
5784        // only needed because of broken event delegation on iOS
5785        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
5786
5787        if ('ontouchstart' in document.documentElement) {
5788          $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop);
5789        }
5790
5791        var complete = function complete() {
5792          if (_this.config.animation) {
5793            _this._fixTransition();
5794          }
5795
5796          var prevHoverState = _this._hoverState;
5797          _this._hoverState = null;
5798          $__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN);
5799
5800          if (prevHoverState === HOVER_STATE_OUT) {
5801            _this._leave(null, _this);
5802          }
5803        };
5804
5805        if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) {
5806          var transitionDuration = Util__default["default"].getTransitionDurationFromElement(this.tip);
5807          $__default["default"](this.tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5808        } else {
5809          complete();
5810        }
5811      }
5812    };
5813
5814    _proto.hide = function hide(callback) {
5815      var _this2 = this;
5816
5817      var tip = this.getTipElement();
5818      var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE);
5819
5820      var complete = function complete() {
5821        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
5822          tip.parentNode.removeChild(tip);
5823        }
5824
5825        _this2._cleanTipClass();
5826
5827        _this2.element.removeAttribute('aria-describedby');
5828
5829        $__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);
5830
5831        if (_this2._popper !== null) {
5832          _this2._popper.destroy();
5833        }
5834
5835        if (callback) {
5836          callback();
5837        }
5838      };
5839
5840      $__default["default"](this.element).trigger(hideEvent);
5841
5842      if (hideEvent.isDefaultPrevented()) {
5843        return;
5844      }
5845
5846      $__default["default"](tip).removeClass(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
5847      // empty mouseover listeners we added for iOS support
5848
5849      if ('ontouchstart' in document.documentElement) {
5850        $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop);
5851      }
5852
5853      this._activeTrigger[TRIGGER_CLICK] = false;
5854      this._activeTrigger[TRIGGER_FOCUS] = false;
5855      this._activeTrigger[TRIGGER_HOVER] = false;
5856
5857      if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE)) {
5858        var transitionDuration = Util__default["default"].getTransitionDurationFromElement(tip);
5859        $__default["default"](tip).one(Util__default["default"].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
5860      } else {
5861        complete();
5862      }
5863
5864      this._hoverState = '';
5865    };
5866
5867    _proto.update = function update() {
5868      if (this._popper !== null) {
5869        this._popper.scheduleUpdate();
5870      }
5871    } // Protected
5872    ;
5873
5874    _proto.isWithContent = function isWithContent() {
5875      return Boolean(this.getTitle());
5876    };
5877
5878    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
5879      $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
5880    };
5881
5882    _proto.getTipElement = function getTipElement() {
5883      this.tip = this.tip || $__default["default"](this.config.template)[0];
5884      return this.tip;
5885    };
5886
5887    _proto.setContent = function setContent() {
5888      var tip = this.getTipElement();
5889      this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());
5890      $__default["default"](tip).removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
5891    };
5892
5893    _proto.setElementContent = function setElementContent($element, content) {
5894      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
5895        // Content is a DOM node or a jQuery
5896        if (this.config.html) {
5897          if (!$__default["default"](content).parent().is($element)) {
5898            $element.empty().append(content);
5899          }
5900        } else {
5901          $element.text($__default["default"](content).text());
5902        }
5903
5904        return;
5905      }
5906
5907      if (this.config.html) {
5908        if (this.config.sanitize) {
5909          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
5910        }
5911
5912        $element.html(content);
5913      } else {
5914        $element.text(content);
5915      }
5916    };
5917
5918    _proto.getTitle = function getTitle() {
5919      var title = this.element.getAttribute('data-original-title');
5920
5921      if (!title) {
5922        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
5923      }
5924
5925      return title;
5926    } // Private
5927    ;
5928
5929    _proto._getPopperConfig = function _getPopperConfig(attachment) {
5930      var _this3 = this;
5931
5932      var defaultBsConfig = {
5933        placement: attachment,
5934        modifiers: {
5935          offset: this._getOffset(),
5936          flip: {
5937            behavior: this.config.fallbackPlacement
5938          },
5939          arrow: {
5940            element: SELECTOR_ARROW
5941          },
5942          preventOverflow: {
5943            boundariesElement: this.config.boundary
5944          }
5945        },
5946        onCreate: function onCreate(data) {
5947          if (data.originalPlacement !== data.placement) {
5948            _this3._handlePopperPlacementChange(data);
5949          }
5950        },
5951        onUpdate: function onUpdate(data) {
5952          return _this3._handlePopperPlacementChange(data);
5953        }
5954      };
5955      return _extends({}, defaultBsConfig, this.config.popperConfig);
5956    };
5957
5958    _proto._getOffset = function _getOffset() {
5959      var _this4 = this;
5960
5961      var offset = {};
5962
5963      if (typeof this.config.offset === 'function') {
5964        offset.fn = function (data) {
5965          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));
5966          return data;
5967        };
5968      } else {
5969        offset.offset = this.config.offset;
5970      }
5971
5972      return offset;
5973    };
5974
5975    _proto._getContainer = function _getContainer() {
5976      if (this.config.container === false) {
5977        return document.body;
5978      }
5979
5980      if (Util__default["default"].isElement(this.config.container)) {
5981        return $__default["default"](this.config.container);
5982      }
5983
5984      return $__default["default"](document).find(this.config.container);
5985    };
5986
5987    _proto._getAttachment = function _getAttachment(placement) {
5988      return AttachmentMap[placement.toUpperCase()];
5989    };
5990
5991    _proto._setListeners = function _setListeners() {
5992      var _this5 = this;
5993
5994      var triggers = this.config.trigger.split(' ');
5995      triggers.forEach(function (trigger) {
5996        if (trigger === 'click') {
5997          $__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
5998            return _this5.toggle(event);
5999          });
6000        } else if (trigger !== TRIGGER_MANUAL) {
6001          var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
6002          var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
6003          $__default["default"](_this5.element).on(eventIn, _this5.config.selector, function (event) {
6004            return _this5._enter(event);
6005          }).on(eventOut, _this5.config.selector, function (event) {
6006            return _this5._leave(event);
6007          });
6008        }
6009      });
6010
6011      this._hideModalHandler = function () {
6012        if (_this5.element) {
6013          _this5.hide();
6014        }
6015      };
6016
6017      $__default["default"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);
6018
6019      if (this.config.selector) {
6020        this.config = _extends({}, this.config, {
6021          trigger: 'manual',
6022          selector: ''
6023        });
6024      } else {
6025        this._fixTitle();
6026      }
6027    };
6028
6029    _proto._fixTitle = function _fixTitle() {
6030      var titleType = typeof this.element.getAttribute('data-original-title');
6031
6032      if (this.element.getAttribute('title') || titleType !== 'string') {
6033        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
6034        this.element.setAttribute('title', '');
6035      }
6036    };
6037
6038    _proto._enter = function _enter(event, context) {
6039      var dataKey = this.constructor.DATA_KEY;
6040      context = context || $__default["default"](event.currentTarget).data(dataKey);
6041
6042      if (!context) {
6043        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
6044        $__default["default"](event.currentTarget).data(dataKey, context);
6045      }
6046
6047      if (event) {
6048        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
6049      }
6050
6051      if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
6052        context._hoverState = HOVER_STATE_SHOW;
6053        return;
6054      }
6055
6056      clearTimeout(context._timeout);
6057      context._hoverState = HOVER_STATE_SHOW;
6058
6059      if (!context.config.delay || !context.config.delay.show) {
6060        context.show();
6061        return;
6062      }
6063
6064      context._timeout = setTimeout(function () {
6065        if (context._hoverState === HOVER_STATE_SHOW) {
6066          context.show();
6067        }
6068      }, context.config.delay.show);
6069    };
6070
6071    _proto._leave = function _leave(event, context) {
6072      var dataKey = this.constructor.DATA_KEY;
6073      context = context || $__default["default"](event.currentTarget).data(dataKey);
6074
6075      if (!context) {
6076        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
6077        $__default["default"](event.currentTarget).data(dataKey, context);
6078      }
6079
6080      if (event) {
6081        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
6082      }
6083
6084      if (context._isWithActiveTrigger()) {
6085        return;
6086      }
6087
6088      clearTimeout(context._timeout);
6089      context._hoverState = HOVER_STATE_OUT;
6090
6091      if (!context.config.delay || !context.config.delay.hide) {
6092        context.hide();
6093        return;
6094      }
6095
6096      context._timeout = setTimeout(function () {
6097        if (context._hoverState === HOVER_STATE_OUT) {
6098          context.hide();
6099        }
6100      }, context.config.delay.hide);
6101    };
6102
6103    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
6104      for (var trigger in this._activeTrigger) {
6105        if (this._activeTrigger[trigger]) {
6106          return true;
6107        }
6108      }
6109
6110      return false;
6111    };
6112
6113    _proto._getConfig = function _getConfig(config) {
6114      var dataAttributes = $__default["default"](this.element).data();
6115      Object.keys(dataAttributes).forEach(function (dataAttr) {
6116        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
6117          delete dataAttributes[dataAttr];
6118        }
6119      });
6120      config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
6121
6122      if (typeof config.delay === 'number') {
6123        config.delay = {
6124          show: config.delay,
6125          hide: config.delay
6126        };
6127      }
6128
6129      if (typeof config.title === 'number') {
6130        config.title = config.title.toString();
6131      }
6132
6133      if (typeof config.content === 'number') {
6134        config.content = config.content.toString();
6135      }
6136
6137      Util__default["default"].typeCheckConfig(NAME, config, this.constructor.DefaultType);
6138
6139      if (config.sanitize) {
6140        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
6141      }
6142
6143      return config;
6144    };
6145
6146    _proto._getDelegateConfig = function _getDelegateConfig() {
6147      var config = {};
6148
6149      if (this.config) {
6150        for (var key in this.config) {
6151          if (this.constructor.Default[key] !== this.config[key]) {
6152            config[key] = this.config[key];
6153          }
6154        }
6155      }
6156
6157      return config;
6158    };
6159
6160    _proto._cleanTipClass = function _cleanTipClass() {
6161      var $tip = $__default["default"](this.getTipElement());
6162      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
6163
6164      if (tabClass !== null && tabClass.length) {
6165        $tip.removeClass(tabClass.join(''));
6166      }
6167    };
6168
6169    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
6170      this.tip = popperData.instance.popper;
6171
6172      this._cleanTipClass();
6173
6174      this.addAttachmentClass(this._getAttachment(popperData.placement));
6175    };
6176
6177    _proto._fixTransition = function _fixTransition() {
6178      var tip = this.getTipElement();
6179      var initConfigAnimation = this.config.animation;
6180
6181      if (tip.getAttribute('x-placement') !== null) {
6182        return;
6183      }
6184
6185      $__default["default"](tip).removeClass(CLASS_NAME_FADE);
6186      this.config.animation = false;
6187      this.hide();
6188      this.show();
6189      this.config.animation = initConfigAnimation;
6190    } // Static
6191    ;
6192
6193    Tooltip._jQueryInterface = function _jQueryInterface(config) {
6194      return this.each(function () {
6195        var $element = $__default["default"](this);
6196        var data = $element.data(DATA_KEY);
6197
6198        var _config = typeof config === 'object' && config;
6199
6200        if (!data && /dispose|hide/.test(config)) {
6201          return;
6202        }
6203
6204        if (!data) {
6205          data = new Tooltip(this, _config);
6206          $element.data(DATA_KEY, data);
6207        }
6208
6209        if (typeof config === 'string') {
6210          if (typeof data[config] === 'undefined') {
6211            throw new TypeError("No method named \"" + config + "\"");
6212          }
6213
6214          data[config]();
6215        }
6216      });
6217    };
6218
6219    _createClass(Tooltip, null, [{
6220      key: "VERSION",
6221      get: function get() {
6222        return VERSION;
6223      }
6224    }, {
6225      key: "Default",
6226      get: function get() {
6227        return Default;
6228      }
6229    }, {
6230      key: "NAME",
6231      get: function get() {
6232        return NAME;
6233      }
6234    }, {
6235      key: "DATA_KEY",
6236      get: function get() {
6237        return DATA_KEY;
6238      }
6239    }, {
6240      key: "Event",
6241      get: function get() {
6242        return Event;
6243      }
6244    }, {
6245      key: "EVENT_KEY",
6246      get: function get() {
6247        return EVENT_KEY;
6248      }
6249    }, {
6250      key: "DefaultType",
6251      get: function get() {
6252        return DefaultType;
6253      }
6254    }]);
6255
6256    return Tooltip;
6257  }();
6258  /**
6259   * jQuery
6260   */
6261
6262
6263  $__default["default"].fn[NAME] = Tooltip._jQueryInterface;
6264  $__default["default"].fn[NAME].Constructor = Tooltip;
6265
6266  $__default["default"].fn[NAME].noConflict = function () {
6267    $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
6268    return Tooltip._jQueryInterface;
6269  };
6270
6271  return Tooltip;
6272
6273}));
6274//# sourceMappingURL=tooltip.js.map
6275
6276
6277/***/ }),
6278
vendor: 6,742 bytes, lines 6279-6477
6279/***/ "./node_modules/bootstrap/js/dist/util.js":
6280/*!************************************************!*\
6281  !*** ./node_modules/bootstrap/js/dist/util.js ***!
6282  \************************************************/
6283/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6284
6285/*!
6286  * Bootstrap util.js v4.6.1 (https://getbootstrap.com/)
6287  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6288  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6289  */
6290(function (global, factory) {
6291   true ? module.exports = factory(__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")) :
6292  0;
6293})(this, (function ($) { 'use strict';
6294
6295  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
6296
6297  var $__default = /*#__PURE__*/_interopDefaultLegacy($);
6298
6299  /**
6300   * --------------------------------------------------------------------------
6301   * Bootstrap (v4.6.1): util.js
6302   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6303   * --------------------------------------------------------------------------
6304   */
6305  /**
6306   * Private TransitionEnd Helpers
6307   */
6308
6309  var TRANSITION_END = 'transitionend';
6310  var MAX_UID = 1000000;
6311  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
6312
6313  function toType(obj) {
6314    if (obj === null || typeof obj === 'undefined') {
6315      return "" + obj;
6316    }
6317
6318    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
6319  }
6320
6321  function getSpecialTransitionEndEvent() {
6322    return {
6323      bindType: TRANSITION_END,
6324      delegateType: TRANSITION_END,
6325      handle: function handle(event) {
6326        if ($__default["default"](event.target).is(this)) {
6327          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
6328        }
6329
6330        return undefined;
6331      }
6332    };
6333  }
6334
6335  function transitionEndEmulator(duration) {
6336    var _this = this;
6337
6338    var called = false;
6339    $__default["default"](this).one(Util.TRANSITION_END, function () {
6340      called = true;
6341    });
6342    setTimeout(function () {
6343      if (!called) {
6344        Util.triggerTransitionEnd(_this);
6345      }
6346    }, duration);
6347    return this;
6348  }
6349
6350  function setTransitionEndSupport() {
6351    $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator;
6352    $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
6353  }
6354  /**
6355   * Public Util API
6356   */
6357
6358
6359  var Util = {
6360    TRANSITION_END: 'bsTransitionEnd',
6361    getUID: function getUID(prefix) {
6362      do {
6363        // eslint-disable-next-line no-bitwise
6364        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
6365      } while (document.getElementById(prefix));
6366
6367      return prefix;
6368    },
6369    getSelectorFromElement: function getSelectorFromElement(element) {
6370      var selector = element.getAttribute('data-target');
6371
6372      if (!selector || selector === '#') {
6373        var hrefAttr = element.getAttribute('href');
6374        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
6375      }
6376
6377      try {
6378        return document.querySelector(selector) ? selector : null;
6379      } catch (_) {
6380        return null;
6381      }
6382    },
6383    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
6384      if (!element) {
6385        return 0;
6386      } // Get transition-duration of the element
6387
6388
6389      var transitionDuration = $__default["default"](element).css('transition-duration');
6390      var transitionDelay = $__default["default"](element).css('transition-delay');
6391      var floatTransitionDuration = parseFloat(transitionDuration);
6392      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
6393
6394      if (!floatTransitionDuration && !floatTransitionDelay) {
6395        return 0;
6396      } // If multiple durations are defined, take the first
6397
6398
6399      transitionDuration = transitionDuration.split(',')[0];
6400      transitionDelay = transitionDelay.split(',')[0];
6401      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
6402    },
6403    reflow: function reflow(element) {
6404      return element.offsetHeight;
6405    },
6406    triggerTransitionEnd: function triggerTransitionEnd(element) {
6407      $__default["default"](element).trigger(TRANSITION_END);
6408    },
6409    supportsTransitionEnd: function supportsTransitionEnd() {
6410      return Boolean(TRANSITION_END);
6411    },
6412    isElement: function isElement(obj) {
6413      return (obj[0] || obj).nodeType;
6414    },
6415    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
6416      for (var property in configTypes) {
6417        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
6418          var expectedTypes = configTypes[property];
6419          var value = config[property];
6420          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
6421
6422          if (!new RegExp(expectedTypes).test(valueType)) {
6423            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
6424          }
6425        }
6426      }
6427    },
6428    findShadowRoot: function findShadowRoot(element) {
6429      if (!document.documentElement.attachShadow) {
6430        return null;
6431      } // Can find the shadow root otherwise it'll return the document
6432
6433
6434      if (typeof element.getRootNode === 'function') {
6435        var root = element.getRootNode();
6436        return root instanceof ShadowRoot ? root : null;
6437      }
6438
6439      if (element instanceof ShadowRoot) {
6440        return element;
6441      } // when we don't find a shadow root
6442
6443
6444      if (!element.parentNode) {
6445        return null;
6446      }
6447
6448      return Util.findShadowRoot(element.parentNode);
6449    },
6450    jQueryDetection: function jQueryDetection() {
6451      if (typeof $__default["default"] === 'undefined') {
6452        throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
6453      }
6454
6455      var version = $__default["default"].fn.jquery.split(' ')[0].split('.');
6456      var minMajor = 1;
6457      var ltMajor = 2;
6458      var minMinor = 9;
6459      var minPatch = 1;
6460      var maxMajor = 4;
6461
6462      if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
6463        throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
6464      }
6465    }
6466  };
6467  Util.jQueryDetection();
6468  setTransitionEndSupport();
6469
6470  return Util;
6471
6472}));
6473//# sourceMappingURL=util.js.map
6474
6475
6476/***/ }),
6477
vendor: 906 bytes, lines 6478-6498
6478/***/ "./node_modules/core-js/internals/a-callable.js":
6479/*!******************************************************!*\
6480  !*** ./node_modules/core-js/internals/a-callable.js ***!
6481  \******************************************************/
6482/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6483
6484var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6485var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
6486var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js");
6487
6488var TypeError = global.TypeError;
6489
6490// `Assert: IsCallable(argument) is true`
6491module.exports = function (argument) {
6492  if (isCallable(argument)) return argument;
6493  throw TypeError(tryToString(argument) + ' is not a function');
6494};
6495
6496
6497/***/ }),
6498
vendor: 936 bytes, lines 6499-6519
6499/***/ "./node_modules/core-js/internals/a-constructor.js":
6500/*!*********************************************************!*\
6501  !*** ./node_modules/core-js/internals/a-constructor.js ***!
6502  \*********************************************************/
6503/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6504
6505var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6506var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js");
6507var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js");
6508
6509var TypeError = global.TypeError;
6510
6511// `Assert: IsConstructor(argument) is true`
6512module.exports = function (argument) {
6513  if (isConstructor(argument)) return argument;
6514  throw TypeError(tryToString(argument) + ' is not a constructor');
6515};
6516
6517
6518/***/ }),
6519
vendor: 844 bytes, lines 6520-6539
6520/***/ "./node_modules/core-js/internals/a-possible-prototype.js":
6521/*!****************************************************************!*\
6522  !*** ./node_modules/core-js/internals/a-possible-prototype.js ***!
6523  \****************************************************************/
6524/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6525
6526var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6527var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
6528
6529var String = global.String;
6530var TypeError = global.TypeError;
6531
6532module.exports = function (argument) {
6533  if (typeof argument == 'object' || isCallable(argument)) return argument;
6534  throw TypeError("Can't set " + String(argument) + ' as a prototype');
6535};
6536
6537
6538/***/ }),
6539
vendor: 1,240 bytes, lines 6540-6569
6540/***/ "./node_modules/core-js/internals/add-to-unscopables.js":
6541/*!**************************************************************!*\
6542  !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!
6543  \**************************************************************/
6544/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6545
6546var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
6547var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
6548var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
6549
6550var UNSCOPABLES = wellKnownSymbol('unscopables');
6551var ArrayPrototype = Array.prototype;
6552
6553// Array.prototype[@@unscopables]
6554// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
6555if (ArrayPrototype[UNSCOPABLES] == undefined) {
6556  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
6557    configurable: true,
6558    value: create(null)
6559  });
6560}
6561
6562// add a key to Array.prototype[@@unscopables]
6563module.exports = function (key) {
6564  ArrayPrototype[UNSCOPABLES][key] = true;
6565};
6566
6567
6568/***/ }),
6569
vendor: 717 bytes, lines 6570-6588
6570/***/ "./node_modules/core-js/internals/advance-string-index.js":
6571/*!****************************************************************!*\
6572  !*** ./node_modules/core-js/internals/advance-string-index.js ***!
6573  \****************************************************************/
6574/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6575
6576"use strict";
6577
6578var charAt = (__webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt);
6579
6580// `AdvanceStringIndex` abstract operation
6581// https://tc39.es/ecma262/#sec-advancestringindex
6582module.exports = function (S, index, unicode) {
6583  return index + (unicode ? charAt(S, index).length : 1);
6584};
6585
6586
6587/***/ }),
6588
vendor: 752 bytes, lines 6589-6607
6589/***/ "./node_modules/core-js/internals/an-instance.js":
6590/*!*******************************************************!*\
6591  !*** ./node_modules/core-js/internals/an-instance.js ***!
6592  \*******************************************************/
6593/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6594
6595var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6596var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
6597
6598var TypeError = global.TypeError;
6599
6600module.exports = function (it, Prototype) {
6601  if (isPrototypeOf(Prototype, it)) return it;
6602  throw TypeError('Incorrect invocation');
6603};
6604
6605
6606/***/ }),
6607
vendor: 786 bytes, lines 6608-6628
6608/***/ "./node_modules/core-js/internals/an-object.js":
6609/*!*****************************************************!*\
6610  !*** ./node_modules/core-js/internals/an-object.js ***!
6611  \*****************************************************/
6612/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6613
6614var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6615var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
6616
6617var String = global.String;
6618var TypeError = global.TypeError;
6619
6620// `Assert: Type(argument) is Object`
6621module.exports = function (argument) {
6622  if (isObject(argument)) return argument;
6623  throw TypeError(String(argument) + ' is not an object');
6624};
6625
6626
6627/***/ }),
6628
vendor: 1,052 bytes, lines 6629-6651
6629/***/ "./node_modules/core-js/internals/array-for-each.js":
6630/*!**********************************************************!*\
6631  !*** ./node_modules/core-js/internals/array-for-each.js ***!
6632  \**********************************************************/
6633/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6634
6635"use strict";
6636
6637var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach);
6638var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
6639
6640var STRICT_METHOD = arrayMethodIsStrict('forEach');
6641
6642// `Array.prototype.forEach` method implementation
6643// https://tc39.es/ecma262/#sec-array.prototype.foreach
6644module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
6645  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
6646// eslint-disable-next-line es/no-array-prototype-foreach -- safe
6647} : [].forEach;
6648
6649
6650/***/ }),
6651
vendor: 3,269 bytes, lines 6652-6709
6652/***/ "./node_modules/core-js/internals/array-from.js":
6653/*!******************************************************!*\
6654  !*** ./node_modules/core-js/internals/array-from.js ***!
6655  \******************************************************/
6656/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6657
6658"use strict";
6659
6660var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6661var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
6662var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
6663var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
6664var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js");
6665var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js");
6666var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js");
6667var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
6668var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js");
6669var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "./node_modules/core-js/internals/get-iterator.js");
6670var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js");
6671
6672var Array = global.Array;
6673
6674// `Array.from` method implementation
6675// https://tc39.es/ecma262/#sec-array.from
6676module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
6677  var O = toObject(arrayLike);
6678  var IS_CONSTRUCTOR = isConstructor(this);
6679  var argumentsLength = arguments.length;
6680  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
6681  var mapping = mapfn !== undefined;
6682  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
6683  var iteratorMethod = getIteratorMethod(O);
6684  var index = 0;
6685  var length, result, step, iterator, next, value;
6686  // if the target is not iterable or it's an array with the default iterator - use a simple case
6687  if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {
6688    iterator = getIterator(O, iteratorMethod);
6689    next = iterator.next;
6690    result = IS_CONSTRUCTOR ? new this() : [];
6691    for (;!(step = call(next, iterator)).done; index++) {
6692      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
6693      createProperty(result, index, value);
6694    }
6695  } else {
6696    length = lengthOfArrayLike(O);
6697    result = IS_CONSTRUCTOR ? new this(length) : Array(length);
6698    for (;length > index; index++) {
6699      value = mapping ? mapfn(O[index], index) : O[index];
6700      createProperty(result, index, value);
6701    }
6702  }
6703  result.length = index;
6704  return result;
6705};
6706
6707
6708/***/ }),
6709
vendor: 1,877 bytes, lines 6710-6751
6710/***/ "./node_modules/core-js/internals/array-includes.js":
6711/*!**********************************************************!*\
6712  !*** ./node_modules/core-js/internals/array-includes.js ***!
6713  \**********************************************************/
6714/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6715
6716var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
6717var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
6718var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
6719
6720// `Array.prototype.{ indexOf, includes }` methods implementation
6721var createMethod = function (IS_INCLUDES) {
6722  return function ($this, el, fromIndex) {
6723    var O = toIndexedObject($this);
6724    var length = lengthOfArrayLike(O);
6725    var index = toAbsoluteIndex(fromIndex, length);
6726    var value;
6727    // Array#includes uses SameValueZero equality algorithm
6728    // eslint-disable-next-line no-self-compare -- NaN check
6729    if (IS_INCLUDES && el != el) while (length > index) {
6730      value = O[index++];
6731      // eslint-disable-next-line no-self-compare -- NaN check
6732      if (value != value) return true;
6733    // Array#indexOf ignores holes, Array#includes - not
6734    } else for (;length > index; index++) {
6735      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
6736    } return !IS_INCLUDES && -1;
6737  };
6738};
6739
6740module.exports = {
6741  // `Array.prototype.includes` method
6742  // https://tc39.es/ecma262/#sec-array.prototype.includes
6743  includes: createMethod(true),
6744  // `Array.prototype.indexOf` method
6745  // https://tc39.es/ecma262/#sec-array.prototype.indexof
6746  indexOf: createMethod(false)
6747};
6748
6749
6750/***/ }),
6751
vendor: 3,692 bytes, lines 6752-6834
6752/***/ "./node_modules/core-js/internals/array-iteration.js":
6753/*!***********************************************************!*\
6754  !*** ./node_modules/core-js/internals/array-iteration.js ***!
6755  \***********************************************************/
6756/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6757
6758var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
6759var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
6760var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
6761var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
6762var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
6763var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js");
6764
6765var push = uncurryThis([].push);
6766
6767// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
6768var createMethod = function (TYPE) {
6769  var IS_MAP = TYPE == 1;
6770  var IS_FILTER = TYPE == 2;
6771  var IS_SOME = TYPE == 3;
6772  var IS_EVERY = TYPE == 4;
6773  var IS_FIND_INDEX = TYPE == 6;
6774  var IS_FILTER_REJECT = TYPE == 7;
6775  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
6776  return function ($this, callbackfn, that, specificCreate) {
6777    var O = toObject($this);
6778    var self = IndexedObject(O);
6779    var boundFunction = bind(callbackfn, that);
6780    var length = lengthOfArrayLike(self);
6781    var index = 0;
6782    var create = specificCreate || arraySpeciesCreate;
6783    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
6784    var value, result;
6785    for (;length > index; index++) if (NO_HOLES || index in self) {
6786      value = self[index];
6787      result = boundFunction(value, index, O);
6788      if (TYPE) {
6789        if (IS_MAP) target[index] = result; // map
6790        else if (result) switch (TYPE) {
6791          case 3: return true;              // some
6792          case 5: return value;             // find
6793          case 6: return index;             // findIndex
6794          case 2: push(target, value);      // filter
6795        } else switch (TYPE) {
6796          case 4: return false;             // every
6797          case 7: push(target, value);      // filterReject
6798        }
6799      }
6800    }
6801    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
6802  };
6803};
6804
6805module.exports = {
6806  // `Array.prototype.forEach` method
6807  // https://tc39.es/ecma262/#sec-array.prototype.foreach
6808  forEach: createMethod(0),
6809  // `Array.prototype.map` method
6810  // https://tc39.es/ecma262/#sec-array.prototype.map
6811  map: createMethod(1),
6812  // `Array.prototype.filter` method
6813  // https://tc39.es/ecma262/#sec-array.prototype.filter
6814  filter: createMethod(2),
6815  // `Array.prototype.some` method
6816  // https://tc39.es/ecma262/#sec-array.prototype.some
6817  some: createMethod(3),
6818  // `Array.prototype.every` method
6819  // https://tc39.es/ecma262/#sec-array.prototype.every
6820  every: createMethod(4),
6821  // `Array.prototype.find` method
6822  // https://tc39.es/ecma262/#sec-array.prototype.find
6823  find: createMethod(5),
6824  // `Array.prototype.findIndex` method
6825  // https://tc39.es/ecma262/#sec-array.prototype.findIndex
6826  findIndex: createMethod(6),
6827  // `Array.prototype.filterReject` method
6828  // https://github.com/tc39/proposal-array-filtering
6829  filterReject: createMethod(7)
6830};
6831
6832
6833/***/ }),
6834
vendor: 1,290 bytes, lines 6835-6863
6835/***/ "./node_modules/core-js/internals/array-method-has-species-support.js":
6836/*!****************************************************************************!*\
6837  !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***!
6838  \****************************************************************************/
6839/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6840
6841var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
6842var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
6843var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
6844
6845var SPECIES = wellKnownSymbol('species');
6846
6847module.exports = function (METHOD_NAME) {
6848  // We can't use this feature detection in V8 since it causes
6849  // deoptimization and serious performance degradation
6850  // https://github.com/zloirock/core-js/issues/677
6851  return V8_VERSION >= 51 || !fails(function () {
6852    var array = [];
6853    var constructor = array.constructor = {};
6854    constructor[SPECIES] = function () {
6855      return { foo: 1 };
6856    };
6857    return array[METHOD_NAME](Boolean).foo !== 1;
6858  });
6859};
6860
6861
6862/***/ }),
6863
vendor: 777 bytes, lines 6864-6884
6864/***/ "./node_modules/core-js/internals/array-method-is-strict.js":
6865/*!******************************************************************!*\
6866  !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!
6867  \******************************************************************/
6868/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6869
6870"use strict";
6871
6872var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
6873
6874module.exports = function (METHOD_NAME, argument) {
6875  var method = [][METHOD_NAME];
6876  return !!method && fails(function () {
6877    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
6878    method.call(null, argument || function () { throw 1; }, 1);
6879  });
6880};
6881
6882
6883/***/ }),
6884
vendor: 1,270 bytes, lines 6885-6911
6885/***/ "./node_modules/core-js/internals/array-slice-simple.js":
6886/*!**************************************************************!*\
6887  !*** ./node_modules/core-js/internals/array-slice-simple.js ***!
6888  \**************************************************************/
6889/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6890
6891var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6892var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
6893var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
6894var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js");
6895
6896var Array = global.Array;
6897var max = Math.max;
6898
6899module.exports = function (O, start, end) {
6900  var length = lengthOfArrayLike(O);
6901  var k = toAbsoluteIndex(start, length);
6902  var fin = toAbsoluteIndex(end === undefined ? length : end, length);
6903  var result = Array(max(fin - k, 0));
6904  for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);
6905  result.length = n;
6906  return result;
6907};
6908
6909
6910/***/ }),
6911
vendor: 509 bytes, lines 6912-6924
6912/***/ "./node_modules/core-js/internals/array-slice.js":
6913/*!*******************************************************!*\
6914  !*** ./node_modules/core-js/internals/array-slice.js ***!
6915  \*******************************************************/
6916/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6917
6918var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
6919
6920module.exports = uncurryThis([].slice);
6921
6922
6923/***/ }),
6924
vendor: 1,524 bytes, lines 6925-6957
6925/***/ "./node_modules/core-js/internals/array-species-constructor.js":
6926/*!*********************************************************************!*\
6927  !*** ./node_modules/core-js/internals/array-species-constructor.js ***!
6928  \*********************************************************************/
6929/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6930
6931var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
6932var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
6933var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js");
6934var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
6935var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
6936
6937var SPECIES = wellKnownSymbol('species');
6938var Array = global.Array;
6939
6940// a part of `ArraySpeciesCreate` abstract operation
6941// https://tc39.es/ecma262/#sec-arrayspeciescreate
6942module.exports = function (originalArray) {
6943  var C;
6944  if (isArray(originalArray)) {
6945    C = originalArray.constructor;
6946    // cross-realm fallback
6947    if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;
6948    else if (isObject(C)) {
6949      C = C[SPECIES];
6950      if (C === null) C = undefined;
6951    }
6952  } return C === undefined ? Array : C;
6953};
6954
6955
6956/***/ }),
6957
vendor: 756 bytes, lines 6958-6974
6958/***/ "./node_modules/core-js/internals/array-species-create.js":
6959/*!****************************************************************!*\
6960  !*** ./node_modules/core-js/internals/array-species-create.js ***!
6961  \****************************************************************/
6962/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6963
6964var arraySpeciesConstructor = __webpack_require__(/*! ../internals/array-species-constructor */ "./node_modules/core-js/internals/array-species-constructor.js");
6965
6966// `ArraySpeciesCreate` abstract operation
6967// https://tc39.es/ecma262/#sec-arrayspeciescreate
6968module.exports = function (originalArray, length) {
6969  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
6970};
6971
6972
6973/***/ }),
6974
vendor: 924 bytes, lines 6975-6995
6975/***/ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js":
6976/*!****************************************************************************!*\
6977  !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***!
6978  \****************************************************************************/
6979/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
6980
6981var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
6982var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "./node_modules/core-js/internals/iterator-close.js");
6983
6984// call something on iterator step with safe closing on error
6985module.exports = function (iterator, fn, value, ENTRIES) {
6986  try {
6987    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
6988  } catch (error) {
6989    iteratorClose(iterator, 'throw', error);
6990  }
6991};
6992
6993
6994/***/ }),
6995
vendor: 1,453 bytes, lines 6996-7043
6996/***/ "./node_modules/core-js/internals/check-correctness-of-iteration.js":
6997/*!**************************************************************************!*\
6998  !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***!
6999  \**************************************************************************/
7000/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7001
7002var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
7003
7004var ITERATOR = wellKnownSymbol('iterator');
7005var SAFE_CLOSING = false;
7006
7007try {
7008  var called = 0;
7009  var iteratorWithReturn = {
7010    next: function () {
7011      return { done: !!called++ };
7012    },
7013    'return': function () {
7014      SAFE_CLOSING = true;
7015    }
7016  };
7017  iteratorWithReturn[ITERATOR] = function () {
7018    return this;
7019  };
7020  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
7021  Array.from(iteratorWithReturn, function () { throw 2; });
7022} catch (error) { /* empty */ }
7023
7024module.exports = function (exec, SKIP_CLOSING) {
7025  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
7026  var ITERATION_SUPPORT = false;
7027  try {
7028    var object = {};
7029    object[ITERATOR] = function () {
7030      return {
7031        next: function () {
7032          return { done: ITERATION_SUPPORT = true };
7033        }
7034      };
7035    };
7036    exec(object);
7037  } catch (error) { /* empty */ }
7038  return ITERATION_SUPPORT;
7039};
7040
7041
7042/***/ }),
7043
vendor: 631 bytes, lines 7044-7061
7044/***/ "./node_modules/core-js/internals/classof-raw.js":
7045/*!*******************************************************!*\
7046  !*** ./node_modules/core-js/internals/classof-raw.js ***!
7047  \*******************************************************/
7048/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7049
7050var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
7051
7052var toString = uncurryThis({}.toString);
7053var stringSlice = uncurryThis(''.slice);
7054
7055module.exports = function (it) {
7056  return stringSlice(toString(it), 8, -1);
7057};
7058
7059
7060/***/ }),
7061
vendor: 1,784 bytes, lines 7062-7101
7062/***/ "./node_modules/core-js/internals/classof.js":
7063/*!***************************************************!*\
7064  !*** ./node_modules/core-js/internals/classof.js ***!
7065  \***************************************************/
7066/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7067
7068var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7069var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
7070var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
7071var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
7072var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
7073
7074var TO_STRING_TAG = wellKnownSymbol('toStringTag');
7075var Object = global.Object;
7076
7077// ES3 wrong here
7078var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
7079
7080// fallback for IE11 Script Access Denied error
7081var tryGet = function (it, key) {
7082  try {
7083    return it[key];
7084  } catch (error) { /* empty */ }
7085};
7086
7087// getting tag from ES6+ `Object.prototype.toString`
7088module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
7089  var O, tag, result;
7090  return it === undefined ? 'Undefined' : it === null ? 'Null'
7091    // @@toStringTag case
7092    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
7093    // builtinTag case
7094    : CORRECT_ARGUMENTS ? classofRaw(O)
7095    // ES3 arguments fallback
7096    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
7097};
7098
7099
7100/***/ }),
7101
vendor: 1,399 bytes, lines 7102-7127
7102/***/ "./node_modules/core-js/internals/copy-constructor-properties.js":
7103/*!***********************************************************************!*\
7104  !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!
7105  \***********************************************************************/
7106/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7107
7108var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
7109var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js");
7110var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
7111var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
7112
7113module.exports = function (target, source, exceptions) {
7114  var keys = ownKeys(source);
7115  var defineProperty = definePropertyModule.f;
7116  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
7117  for (var i = 0; i < keys.length; i++) {
7118    var key = keys[i];
7119    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
7120      defineProperty(target, key, getOwnPropertyDescriptor(source, key));
7121    }
7122  }
7123};
7124
7125
7126/***/ }),
7127
vendor: 729 bytes, lines 7128-7145
7128/***/ "./node_modules/core-js/internals/correct-prototype-getter.js":
7129/*!********************************************************************!*\
7130  !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***!
7131  \********************************************************************/
7132/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7133
7134var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
7135
7136module.exports = !fails(function () {
7137  function F() { /* empty */ }
7138  F.prototype.constructor = null;
7139  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
7140  return Object.getPrototypeOf(new F()) !== F.prototype;
7141});
7142
7143
7144/***/ }),
7145
vendor: 1,531 bytes, lines 7146-7172
7146/***/ "./node_modules/core-js/internals/create-iterator-constructor.js":
7147/*!***********************************************************************!*\
7148  !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***!
7149  \***********************************************************************/
7150/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7151
7152"use strict";
7153
7154var IteratorPrototype = (__webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype);
7155var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
7156var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
7157var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
7158var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
7159
7160var returnThis = function () { return this; };
7161
7162module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
7163  var TO_STRING_TAG = NAME + ' Iterator';
7164  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });
7165  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
7166  Iterators[TO_STRING_TAG] = returnThis;
7167  return IteratorConstructor;
7168};
7169
7170
7171/***/ }),
7172
vendor: 1,067 bytes, lines 7173-7192
7173/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js":
7174/*!**************************************************************************!*\
7175  !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!
7176  \**************************************************************************/
7177/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7178
7179var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
7180var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
7181var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
7182
7183module.exports = DESCRIPTORS ? function (object, key, value) {
7184  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
7185} : function (object, key, value) {
7186  object[key] = value;
7187  return object;
7188};
7189
7190
7191/***/ }),
7192
vendor: 512 bytes, lines 7193-7210
7193/***/ "./node_modules/core-js/internals/create-property-descriptor.js":
7194/*!**********************************************************************!*\
7195  !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!
7196  \**********************************************************************/
7197/***/ (function(module) {
7198
7199module.exports = function (bitmap, value) {
7200  return {
7201    enumerable: !(bitmap & 1),
7202    configurable: !(bitmap & 2),
7203    writable: !(bitmap & 4),
7204    value: value
7205  };
7206};
7207
7208
7209/***/ }),
7210
vendor: 1,046 bytes, lines 7211-7231
7211/***/ "./node_modules/core-js/internals/create-property.js":
7212/*!***********************************************************!*\
7213  !*** ./node_modules/core-js/internals/create-property.js ***!
7214  \***********************************************************/
7215/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7216
7217"use strict";
7218
7219var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js");
7220var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
7221var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
7222
7223module.exports = function (object, key, value) {
7224  var propertyKey = toPropertyKey(key);
7225  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
7226  else object[propertyKey] = value;
7227};
7228
7229
7230/***/ }),
7231
vendor: 5,817 bytes, lines 7232-7341
7232/***/ "./node_modules/core-js/internals/define-iterator.js":
7233/*!***********************************************************!*\
7234  !*** ./node_modules/core-js/internals/define-iterator.js ***!
7235  \***********************************************************/
7236/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7237
7238"use strict";
7239
7240var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
7241var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
7242var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
7243var FunctionName = __webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js");
7244var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
7245var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js");
7246var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
7247var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js");
7248var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
7249var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
7250var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
7251var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
7252var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
7253var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js");
7254
7255var PROPER_FUNCTION_NAME = FunctionName.PROPER;
7256var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
7257var IteratorPrototype = IteratorsCore.IteratorPrototype;
7258var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
7259var ITERATOR = wellKnownSymbol('iterator');
7260var KEYS = 'keys';
7261var VALUES = 'values';
7262var ENTRIES = 'entries';
7263
7264var returnThis = function () { return this; };
7265
7266module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
7267  createIteratorConstructor(IteratorConstructor, NAME, next);
7268
7269  var getIterationMethod = function (KIND) {
7270    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
7271    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
7272    switch (KIND) {
7273      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
7274      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
7275      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
7276    } return function () { return new IteratorConstructor(this); };
7277  };
7278
7279  var TO_STRING_TAG = NAME + ' Iterator';
7280  var INCORRECT_VALUES_NAME = false;
7281  var IterablePrototype = Iterable.prototype;
7282  var nativeIterator = IterablePrototype[ITERATOR]
7283    || IterablePrototype['@@iterator']
7284    || DEFAULT && IterablePrototype[DEFAULT];
7285  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
7286  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
7287  var CurrentIteratorPrototype, methods, KEY;
7288
7289  // fix native
7290  if (anyNativeIterator) {
7291    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
7292    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
7293      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
7294        if (setPrototypeOf) {
7295          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
7296        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {
7297          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);
7298        }
7299      }
7300      // Set @@toStringTag to native iterators
7301      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
7302      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
7303    }
7304  }
7305
7306  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
7307  if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
7308    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {
7309      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);
7310    } else {
7311      INCORRECT_VALUES_NAME = true;
7312      defaultIterator = function values() { return call(nativeIterator, this); };
7313    }
7314  }
7315
7316  // export additional methods
7317  if (DEFAULT) {
7318    methods = {
7319      values: getIterationMethod(VALUES),
7320      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
7321      entries: getIterationMethod(ENTRIES)
7322    };
7323    if (FORCED) for (KEY in methods) {
7324      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
7325        redefine(IterablePrototype, KEY, methods[KEY]);
7326      }
7327    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
7328  }
7329
7330  // define iterator
7331  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
7332    redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });
7333  }
7334  Iterators[NAME] = defaultIterator;
7335
7336  return methods;
7337};
7338
7339
7340/***/ }),
7341
vendor: 1,127 bytes, lines 7342-7362
7342/***/ "./node_modules/core-js/internals/define-well-known-symbol.js":
7343/*!********************************************************************!*\
7344  !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***!
7345  \********************************************************************/
7346/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7347
7348var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js");
7349var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
7350var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js");
7351var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
7352
7353module.exports = function (NAME) {
7354  var Symbol = path.Symbol || (path.Symbol = {});
7355  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {
7356    value: wrappedWellKnownSymbolModule.f(NAME)
7357  });
7358};
7359
7360
7361/***/ }),
7362
vendor: 695 bytes, lines 7363-7379
7363/***/ "./node_modules/core-js/internals/descriptors.js":
7364/*!*******************************************************!*\
7365  !*** ./node_modules/core-js/internals/descriptors.js ***!
7366  \*******************************************************/
7367/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7368
7369var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
7370
7371// Detect IE8's incomplete defineProperty implementation
7372module.exports = !fails(function () {
7373  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
7374  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
7375});
7376
7377
7378/***/ }),
7379
vendor: 841 bytes, lines 7380-7399
7380/***/ "./node_modules/core-js/internals/document-create-element.js":
7381/*!*******************************************************************!*\
7382  !*** ./node_modules/core-js/internals/document-create-element.js ***!
7383  \*******************************************************************/
7384/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7385
7386var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7387var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
7388
7389var document = global.document;
7390// typeof document.createElement is 'object' in old IE
7391var EXISTS = isObject(document) && isObject(document.createElement);
7392
7393module.exports = function (it) {
7394  return EXISTS ? document.createElement(it) : {};
7395};
7396
7397
7398/***/ }),
7399
vendor: 1,040 bytes, lines 7400-7444
7400/***/ "./node_modules/core-js/internals/dom-iterables.js":
7401/*!*********************************************************!*\
7402  !*** ./node_modules/core-js/internals/dom-iterables.js ***!
7403  \*********************************************************/
7404/***/ (function(module) {
7405
7406// iterable DOM collections
7407// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
7408module.exports = {
7409  CSSRuleList: 0,
7410  CSSStyleDeclaration: 0,
7411  CSSValueList: 0,
7412  ClientRectList: 0,
7413  DOMRectList: 0,
7414  DOMStringList: 0,
7415  DOMTokenList: 1,
7416  DataTransferItemList: 0,
7417  FileList: 0,
7418  HTMLAllCollection: 0,
7419  HTMLCollection: 0,
7420  HTMLFormElement: 0,
7421  HTMLSelectElement: 0,
7422  MediaList: 0,
7423  MimeTypeArray: 0,
7424  NamedNodeMap: 0,
7425  NodeList: 1,
7426  PaintRequestList: 0,
7427  Plugin: 0,
7428  PluginArray: 0,
7429  SVGLengthList: 0,
7430  SVGNumberList: 0,
7431  SVGPathSegList: 0,
7432  SVGPointList: 0,
7433  SVGStringList: 0,
7434  SVGTransformList: 0,
7435  SourceBufferList: 0,
7436  StyleSheetList: 0,
7437  TextTrackCueList: 0,
7438  TextTrackList: 0,
7439  TouchList: 0
7440};
7441
7442
7443/***/ }),
7444
vendor: 880 bytes, lines 7445-7461
7445/***/ "./node_modules/core-js/internals/dom-token-list-prototype.js":
7446/*!********************************************************************!*\
7447  !*** ./node_modules/core-js/internals/dom-token-list-prototype.js ***!
7448  \********************************************************************/
7449/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7450
7451// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`
7452var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
7453
7454var classList = documentCreateElement('span').classList;
7455var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;
7456
7457module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;
7458
7459
7460/***/ }),
7461
vendor: 347 bytes, lines 7462-7472
7462/***/ "./node_modules/core-js/internals/engine-is-browser.js":
7463/*!*************************************************************!*\
7464  !*** ./node_modules/core-js/internals/engine-is-browser.js ***!
7465  \*************************************************************/
7466/***/ (function(module) {
7467
7468module.exports = typeof window == 'object';
7469
7470
7471/***/ }),
7472
vendor: 687 bytes, lines 7473-7486
7473/***/ "./node_modules/core-js/internals/engine-is-ios-pebble.js":
7474/*!****************************************************************!*\
7475  !*** ./node_modules/core-js/internals/engine-is-ios-pebble.js ***!
7476  \****************************************************************/
7477/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7478
7479var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
7480var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7481
7482module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;
7483
7484
7485/***/ }),
7486
vendor: 538 bytes, lines 7487-7499
7487/***/ "./node_modules/core-js/internals/engine-is-ios.js":
7488/*!*********************************************************!*\
7489  !*** ./node_modules/core-js/internals/engine-is-ios.js ***!
7490  \*********************************************************/
7491/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7492
7493var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
7494
7495module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);
7496
7497
7498/***/ }),
7499
vendor: 619 bytes, lines 7500-7513
7500/***/ "./node_modules/core-js/internals/engine-is-node.js":
7501/*!**********************************************************!*\
7502  !*** ./node_modules/core-js/internals/engine-is-node.js ***!
7503  \**********************************************************/
7504/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7505
7506var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
7507var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7508
7509module.exports = classof(global.process) == 'process';
7510
7511
7512/***/ }),
7513
vendor: 558 bytes, lines 7514-7526
7514/***/ "./node_modules/core-js/internals/engine-is-webos-webkit.js":
7515/*!******************************************************************!*\
7516  !*** ./node_modules/core-js/internals/engine-is-webos-webkit.js ***!
7517  \******************************************************************/
7518/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7519
7520var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
7521
7522module.exports = /web0s(?!.*chrome)/i.test(userAgent);
7523
7524
7525/***/ }),
7526
vendor: 535 bytes, lines 7527-7539
7527/***/ "./node_modules/core-js/internals/engine-user-agent.js":
7528/*!*************************************************************!*\
7529  !*** ./node_modules/core-js/internals/engine-user-agent.js ***!
7530  \*************************************************************/
7531/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7532
7533var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
7534
7535module.exports = getBuiltIn('navigator', 'userAgent') || '';
7536
7537
7538/***/ }),
7539
vendor: 1,335 bytes, lines 7540-7576
7540/***/ "./node_modules/core-js/internals/engine-v8-version.js":
7541/*!*************************************************************!*\
7542  !*** ./node_modules/core-js/internals/engine-v8-version.js ***!
7543  \*************************************************************/
7544/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7545
7546var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7547var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
7548
7549var process = global.process;
7550var Deno = global.Deno;
7551var versions = process && process.versions || Deno && Deno.version;
7552var v8 = versions && versions.v8;
7553var match, version;
7554
7555if (v8) {
7556  match = v8.split('.');
7557  // in old Chrome, versions of V8 isn't V8 = Chrome / 10
7558  // but their correct versions are not interesting for us
7559  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
7560}
7561
7562// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
7563// so check `userAgent` even if `.v8` exists, but 0
7564if (!version && userAgent) {
7565  match = userAgent.match(/Edge\/(\d+)/);
7566  if (!match || match[1] >= 74) {
7567    match = userAgent.match(/Chrome\/(\d+)/);
7568    if (match) version = +match[1];
7569  }
7570}
7571
7572module.exports = version;
7573
7574
7575/***/ }),
7576
vendor: 465 bytes, lines 7577-7596
7577/***/ "./node_modules/core-js/internals/enum-bug-keys.js":
7578/*!*********************************************************!*\
7579  !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!
7580  \*********************************************************/
7581/***/ (function(module) {
7582
7583// IE8- don't enum bug keys
7584module.exports = [
7585  'constructor',
7586  'hasOwnProperty',
7587  'isPrototypeOf',
7588  'propertyIsEnumerable',
7589  'toLocaleString',
7590  'toString',
7591  'valueOf'
7592];
7593
7594
7595/***/ }),
7596
vendor: 3,421 bytes, lines 7597-7661
7597/***/ "./node_modules/core-js/internals/export.js":
7598/*!**************************************************!*\
7599  !*** ./node_modules/core-js/internals/export.js ***!
7600  \**************************************************/
7601/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7602
7603var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7604var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
7605var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
7606var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
7607var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
7608var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js");
7609var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
7610
7611/*
7612  options.target      - name of the target object
7613  options.global      - target is the global object
7614  options.stat        - export as static methods of target
7615  options.proto       - export as prototype methods of target
7616  options.real        - real prototype method for the `pure` version
7617  options.forced      - export even if the native feature is available
7618  options.bind        - bind methods to the target, required for the `pure` version
7619  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
7620  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
7621  options.sham        - add a flag to not completely full polyfills
7622  options.enumerable  - export as enumerable property
7623  options.noTargetGet - prevent calling a getter on target
7624  options.name        - the .name of the function if it does not match the key
7625*/
7626module.exports = function (options, source) {
7627  var TARGET = options.target;
7628  var GLOBAL = options.global;
7629  var STATIC = options.stat;
7630  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
7631  if (GLOBAL) {
7632    target = global;
7633  } else if (STATIC) {
7634    target = global[TARGET] || setGlobal(TARGET, {});
7635  } else {
7636    target = (global[TARGET] || {}).prototype;
7637  }
7638  if (target) for (key in source) {
7639    sourceProperty = source[key];
7640    if (options.noTargetGet) {
7641      descriptor = getOwnPropertyDescriptor(target, key);
7642      targetProperty = descriptor && descriptor.value;
7643    } else targetProperty = target[key];
7644    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
7645    // contained in target
7646    if (!FORCED && targetProperty !== undefined) {
7647      if (typeof sourceProperty == typeof targetProperty) continue;
7648      copyConstructorProperties(sourceProperty, targetProperty);
7649    }
7650    // add a flag to not completely full polyfills
7651    if (options.sham || (targetProperty && targetProperty.sham)) {
7652      createNonEnumerableProperty(sourceProperty, 'sham', true);
7653    }
7654    // extend global
7655    redefine(target, key, sourceProperty, options);
7656  }
7657};
7658
7659
7660/***/ }),
7661
vendor: 363 bytes, lines 7662-7678
7662/***/ "./node_modules/core-js/internals/fails.js":
7663/*!*************************************************!*\
7664  !*** ./node_modules/core-js/internals/fails.js ***!
7665  \*************************************************/
7666/***/ (function(module) {
7667
7668module.exports = function (exec) {
7669  try {
7670    return !!exec();
7671  } catch (error) {
7672    return true;
7673  }
7674};
7675
7676
7677/***/ }),
7678
vendor: 3,668 bytes, lines 7679-7763
7679/***/ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js":
7680/*!******************************************************************************!*\
7681  !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***!
7682  \******************************************************************************/
7683/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7684
7685"use strict";
7686
7687// TODO: Remove from `core-js@4` since it's moved to entry points
7688__webpack_require__(/*! ../modules/es.regexp.exec */ "./node_modules/core-js/modules/es.regexp.exec.js");
7689var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
7690var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
7691var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
7692var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
7693var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
7694var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
7695
7696var SPECIES = wellKnownSymbol('species');
7697var RegExpPrototype = RegExp.prototype;
7698
7699module.exports = function (KEY, exec, FORCED, SHAM) {
7700  var SYMBOL = wellKnownSymbol(KEY);
7701
7702  var DELEGATES_TO_SYMBOL = !fails(function () {
7703    // String methods call symbol-named RegEp methods
7704    var O = {};
7705    O[SYMBOL] = function () { return 7; };
7706    return ''[KEY](O) != 7;
7707  });
7708
7709  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
7710    // Symbol-named RegExp methods call .exec
7711    var execCalled = false;
7712    var re = /a/;
7713
7714    if (KEY === 'split') {
7715      // We can't use real regex here since it causes deoptimization
7716      // and serious performance degradation in V8
7717      // https://github.com/zloirock/core-js/issues/306
7718      re = {};
7719      // RegExp[@@split] doesn't call the regex's exec method, but first creates
7720      // a new one. We need to return the patched regex when creating the new one.
7721      re.constructor = {};
7722      re.constructor[SPECIES] = function () { return re; };
7723      re.flags = '';
7724      re[SYMBOL] = /./[SYMBOL];
7725    }
7726
7727    re.exec = function () { execCalled = true; return null; };
7728
7729    re[SYMBOL]('');
7730    return !execCalled;
7731  });
7732
7733  if (
7734    !DELEGATES_TO_SYMBOL ||
7735    !DELEGATES_TO_EXEC ||
7736    FORCED
7737  ) {
7738    var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);
7739    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
7740      var uncurriedNativeMethod = uncurryThis(nativeMethod);
7741      var $exec = regexp.exec;
7742      if ($exec === regexpExec || $exec === RegExpPrototype.exec) {
7743        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
7744          // The native String method already delegates to @@method (this
7745          // polyfilled function), leasing to infinite recursion.
7746          // We avoid it by directly calling the native @@method method.
7747          return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };
7748        }
7749        return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };
7750      }
7751      return { done: false };
7752    });
7753
7754    redefine(String.prototype, KEY, methods[0]);
7755    redefine(RegExpPrototype, SYMBOL, methods[1]);
7756  }
7757
7758  if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
7759};
7760
7761
7762/***/ }),
7763
vendor: 641 bytes, lines 7764-7782
7764/***/ "./node_modules/core-js/internals/function-apply.js":
7765/*!**********************************************************!*\
7766  !*** ./node_modules/core-js/internals/function-apply.js ***!
7767  \**********************************************************/
7768/***/ (function(module) {
7769
7770var FunctionPrototype = Function.prototype;
7771var apply = FunctionPrototype.apply;
7772var bind = FunctionPrototype.bind;
7773var call = FunctionPrototype.call;
7774
7775// eslint-disable-next-line es/no-reflect -- safe
7776module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {
7777  return call.apply(apply, arguments);
7778});
7779
7780
7781/***/ }),
7782
vendor: 895 bytes, lines 7783-7804
7783/***/ "./node_modules/core-js/internals/function-bind-context.js":
7784/*!*****************************************************************!*\
7785  !*** ./node_modules/core-js/internals/function-bind-context.js ***!
7786  \*****************************************************************/
7787/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7788
7789var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
7790var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
7791
7792var bind = uncurryThis(uncurryThis.bind);
7793
7794// optional / simple context binding
7795module.exports = function (fn, that) {
7796  aCallable(fn);
7797  return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {
7798    return fn.apply(that, arguments);
7799  };
7800};
7801
7802
7803/***/ }),
7804
vendor: 426 bytes, lines 7805-7819
7805/***/ "./node_modules/core-js/internals/function-call.js":
7806/*!*********************************************************!*\
7807  !*** ./node_modules/core-js/internals/function-call.js ***!
7808  \*********************************************************/
7809/***/ (function(module) {
7810
7811var call = Function.prototype.call;
7812
7813module.exports = call.bind ? call.bind(call) : function () {
7814  return call.apply(call, arguments);
7815};
7816
7817
7818/***/ }),
7819
vendor: 1,184 bytes, lines 7820-7846
7820/***/ "./node_modules/core-js/internals/function-name.js":
7821/*!*********************************************************!*\
7822  !*** ./node_modules/core-js/internals/function-name.js ***!
7823  \*********************************************************/
7824/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7825
7826var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
7827var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
7828
7829var FunctionPrototype = Function.prototype;
7830// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
7831var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
7832
7833var EXISTS = hasOwn(FunctionPrototype, 'name');
7834// additional protection from minified / mangled / dropped function names
7835var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
7836var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
7837
7838module.exports = {
7839  EXISTS: EXISTS,
7840  PROPER: PROPER,
7841  CONFIGURABLE: CONFIGURABLE
7842};
7843
7844
7845/***/ }),
7846
vendor: 644 bytes, lines 7847-7868
7847/***/ "./node_modules/core-js/internals/function-uncurry-this.js":
7848/*!*****************************************************************!*\
7849  !*** ./node_modules/core-js/internals/function-uncurry-this.js ***!
7850  \*****************************************************************/
7851/***/ (function(module) {
7852
7853var FunctionPrototype = Function.prototype;
7854var bind = FunctionPrototype.bind;
7855var call = FunctionPrototype.call;
7856var callBind = bind && bind.bind(call);
7857
7858module.exports = bind ? function (fn) {
7859  return fn && callBind(call, fn);
7860} : function (fn) {
7861  return fn && function () {
7862    return call.apply(fn, arguments);
7863  };
7864};
7865
7866
7867/***/ }),
7868
vendor: 817 bytes, lines 7869-7888
7869/***/ "./node_modules/core-js/internals/get-built-in.js":
7870/*!********************************************************!*\
7871  !*** ./node_modules/core-js/internals/get-built-in.js ***!
7872  \********************************************************/
7873/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7874
7875var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7876var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
7877
7878var aFunction = function (argument) {
7879  return isCallable(argument) ? argument : undefined;
7880};
7881
7882module.exports = function (namespace, method) {
7883  return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];
7884};
7885
7886
7887/***/ }),
7888
vendor: 1,042 bytes, lines 7889-7910
7889/***/ "./node_modules/core-js/internals/get-iterator-method.js":
7890/*!***************************************************************!*\
7891  !*** ./node_modules/core-js/internals/get-iterator-method.js ***!
7892  \***************************************************************/
7893/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7894
7895var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
7896var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
7897var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
7898var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
7899
7900var ITERATOR = wellKnownSymbol('iterator');
7901
7902module.exports = function (it) {
7903  if (it != undefined) return getMethod(it, ITERATOR)
7904    || getMethod(it, '@@iterator')
7905    || Iterators[classof(it)];
7906};
7907
7908
7909/***/ }),
7910
vendor: 1,388 bytes, lines 7911-7934
7911/***/ "./node_modules/core-js/internals/get-iterator.js":
7912/*!********************************************************!*\
7913  !*** ./node_modules/core-js/internals/get-iterator.js ***!
7914  \********************************************************/
7915/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7916
7917var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
7918var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
7919var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
7920var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
7921var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js");
7922var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js");
7923
7924var TypeError = global.TypeError;
7925
7926module.exports = function (argument, usingIterator) {
7927  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
7928  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
7929  throw TypeError(tryToString(argument) + ' is not iterable');
7930};
7931
7932
7933/***/ }),
7934
vendor: 627 bytes, lines 7935-7952
7935/***/ "./node_modules/core-js/internals/get-method.js":
7936/*!******************************************************!*\
7937  !*** ./node_modules/core-js/internals/get-method.js ***!
7938  \******************************************************/
7939/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7940
7941var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
7942
7943// `GetMethod` abstract operation
7944// https://tc39.es/ecma262/#sec-getmethod
7945module.exports = function (V, P) {
7946  var func = V[P];
7947  return func == null ? undefined : aCallable(func);
7948};
7949
7950
7951/***/ }),
7952
vendor: 2,055 bytes, lines 7953-8006
7953/***/ "./node_modules/core-js/internals/get-substitution.js":
7954/*!************************************************************!*\
7955  !*** ./node_modules/core-js/internals/get-substitution.js ***!
7956  \************************************************************/
7957/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7958
7959var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
7960var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
7961
7962var floor = Math.floor;
7963var charAt = uncurryThis(''.charAt);
7964var replace = uncurryThis(''.replace);
7965var stringSlice = uncurryThis(''.slice);
7966var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
7967var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
7968
7969// `GetSubstitution` abstract operation
7970// https://tc39.es/ecma262/#sec-getsubstitution
7971module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
7972  var tailPos = position + matched.length;
7973  var m = captures.length;
7974  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
7975  if (namedCaptures !== undefined) {
7976    namedCaptures = toObject(namedCaptures);
7977    symbols = SUBSTITUTION_SYMBOLS;
7978  }
7979  return replace(replacement, symbols, function (match, ch) {
7980    var capture;
7981    switch (charAt(ch, 0)) {
7982      case '$': return '$';
7983      case '&': return matched;
7984      case '`': return stringSlice(str, 0, position);
7985      case "'": return stringSlice(str, tailPos);
7986      case '<':
7987        capture = namedCaptures[stringSlice(ch, 1, -1)];
7988        break;
7989      default: // \d\d?
7990        var n = +ch;
7991        if (n === 0) return match;
7992        if (n > m) {
7993          var f = floor(n / 10);
7994          if (f === 0) return match;
7995          if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);
7996          return match;
7997        }
7998        capture = captures[n - 1];
7999    }
8000    return capture === undefined ? '' : capture;
8001  });
8002};
8003
8004
8005/***/ }),
8006
vendor: 926 bytes, lines 8007-8030
8007/***/ "./node_modules/core-js/internals/global.js":
8008/*!**************************************************!*\
8009  !*** ./node_modules/core-js/internals/global.js ***!
8010  \**************************************************/
8011/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8012
8013var check = function (it) {
8014  return it && it.Math == Math && it;
8015};
8016
8017// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
8018module.exports =
8019  // eslint-disable-next-line es/no-global-this -- safe
8020  check(typeof globalThis == 'object' && globalThis) ||
8021  check(typeof window == 'object' && window) ||
8022  // eslint-disable-next-line no-restricted-globals -- safe
8023  check(typeof self == 'object' && self) ||
8024  check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
8025  // eslint-disable-next-line no-new-func -- fallback
8026  (function () { return this; })() || Function('return this')();
8027
8028
8029/***/ }),
8030
vendor: 852 bytes, lines 8031-8050
8031/***/ "./node_modules/core-js/internals/has-own-property.js":
8032/*!************************************************************!*\
8033  !*** ./node_modules/core-js/internals/has-own-property.js ***!
8034  \************************************************************/
8035/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8036
8037var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8038var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
8039
8040var hasOwnProperty = uncurryThis({}.hasOwnProperty);
8041
8042// `HasOwnProperty` abstract operation
8043// https://tc39.es/ecma262/#sec-hasownproperty
8044module.exports = Object.hasOwn || function hasOwn(it, key) {
8045  return hasOwnProperty(toObject(it), key);
8046};
8047
8048
8049/***/ }),
8050
vendor: 300 bytes, lines 8051-8061
8051/***/ "./node_modules/core-js/internals/hidden-keys.js":
8052/*!*******************************************************!*\
8053  !*** ./node_modules/core-js/internals/hidden-keys.js ***!
8054  \*******************************************************/
8055/***/ (function(module) {
8056
8057module.exports = {};
8058
8059
8060/***/ }),
8061
vendor: 638 bytes, lines 8062-8079
8062/***/ "./node_modules/core-js/internals/host-report-errors.js":
8063/*!**************************************************************!*\
8064  !*** ./node_modules/core-js/internals/host-report-errors.js ***!
8065  \**************************************************************/
8066/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8067
8068var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8069
8070module.exports = function (a, b) {
8071  var console = global.console;
8072  if (console && console.error) {
8073    arguments.length == 1 ? console.error(a) : console.error(a, b);
8074  }
8075};
8076
8077
8078/***/ }),
8079
vendor: 482 bytes, lines 8080-8092
8080/***/ "./node_modules/core-js/internals/html.js":
8081/*!************************************************!*\
8082  !*** ./node_modules/core-js/internals/html.js ***!
8083  \************************************************/
8084/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8085
8086var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
8087
8088module.exports = getBuiltIn('document', 'documentElement');
8089
8090
8091/***/ }),
8092
vendor: 1,005 bytes, lines 8093-8113
8093/***/ "./node_modules/core-js/internals/ie8-dom-define.js":
8094/*!**********************************************************!*\
8095  !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!
8096  \**********************************************************/
8097/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8098
8099var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
8100var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8101var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
8102
8103// Thank's IE8 for his funny defineProperty
8104module.exports = !DESCRIPTORS && !fails(function () {
8105  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
8106  return Object.defineProperty(createElement('div'), 'a', {
8107    get: function () { return 7; }
8108  }).a != 7;
8109});
8110
8111
8112/***/ }),
8113
vendor: 1,262 bytes, lines 8114-8139
8114/***/ "./node_modules/core-js/internals/indexed-object.js":
8115/*!**********************************************************!*\
8116  !*** ./node_modules/core-js/internals/indexed-object.js ***!
8117  \**********************************************************/
8118/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8119
8120var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8121var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8122var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8123var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
8124
8125var Object = global.Object;
8126var split = uncurryThis(''.split);
8127
8128// fallback for non-array-like ES3 and non-enumerable old V8 strings
8129module.exports = fails(function () {
8130  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
8131  // eslint-disable-next-line no-prototype-builtins -- safe
8132  return !Object('z').propertyIsEnumerable(0);
8133}) ? function (it) {
8134  return classof(it) == 'String' ? split(it, '') : Object(it);
8135} : Object;
8136
8137
8138/***/ }),
8139
vendor: 1,305 bytes, lines 8140-8167
8140/***/ "./node_modules/core-js/internals/inherit-if-required.js":
8141/*!***************************************************************!*\
8142  !*** ./node_modules/core-js/internals/inherit-if-required.js ***!
8143  \***************************************************************/
8144/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8145
8146var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8147var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
8148var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js");
8149
8150// makes subclassing work correct for wrapped built-ins
8151module.exports = function ($this, dummy, Wrapper) {
8152  var NewTarget, NewTargetPrototype;
8153  if (
8154    // it can work only with native `setPrototypeOf`
8155    setPrototypeOf &&
8156    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
8157    isCallable(NewTarget = dummy.constructor) &&
8158    NewTarget !== Wrapper &&
8159    isObject(NewTargetPrototype = NewTarget.prototype) &&
8160    NewTargetPrototype !== Wrapper.prototype
8161  ) setPrototypeOf($this, NewTargetPrototype);
8162  return $this;
8163};
8164
8165
8166/***/ }),
8167
vendor: 1,015 bytes, lines 8168-8191
8168/***/ "./node_modules/core-js/internals/inspect-source.js":
8169/*!**********************************************************!*\
8170  !*** ./node_modules/core-js/internals/inspect-source.js ***!
8171  \**********************************************************/
8172/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8173
8174var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8175var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8176var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
8177
8178var functionToString = uncurryThis(Function.toString);
8179
8180// this helper broken in `[email protected]`, so we can't use `shared` helper
8181if (!isCallable(store.inspectSource)) {
8182  store.inspectSource = function (it) {
8183    return functionToString(it);
8184  };
8185}
8186
8187module.exports = store.inspectSource;
8188
8189
8190/***/ }),
8191
vendor: 3,011 bytes, lines 8192-8270
8192/***/ "./node_modules/core-js/internals/internal-state.js":
8193/*!**********************************************************!*\
8194  !*** ./node_modules/core-js/internals/internal-state.js ***!
8195  \**********************************************************/
8196/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8197
8198var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js");
8199var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8200var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8201var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
8202var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
8203var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
8204var shared = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
8205var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
8206var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
8207
8208var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
8209var TypeError = global.TypeError;
8210var WeakMap = global.WeakMap;
8211var set, get, has;
8212
8213var enforce = function (it) {
8214  return has(it) ? get(it) : set(it, {});
8215};
8216
8217var getterFor = function (TYPE) {
8218  return function (it) {
8219    var state;
8220    if (!isObject(it) || (state = get(it)).type !== TYPE) {
8221      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
8222    } return state;
8223  };
8224};
8225
8226if (NATIVE_WEAK_MAP || shared.state) {
8227  var store = shared.state || (shared.state = new WeakMap());
8228  var wmget = uncurryThis(store.get);
8229  var wmhas = uncurryThis(store.has);
8230  var wmset = uncurryThis(store.set);
8231  set = function (it, metadata) {
8232    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
8233    metadata.facade = it;
8234    wmset(store, it, metadata);
8235    return metadata;
8236  };
8237  get = function (it) {
8238    return wmget(store, it) || {};
8239  };
8240  has = function (it) {
8241    return wmhas(store, it);
8242  };
8243} else {
8244  var STATE = sharedKey('state');
8245  hiddenKeys[STATE] = true;
8246  set = function (it, metadata) {
8247    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
8248    metadata.facade = it;
8249    createNonEnumerableProperty(it, STATE, metadata);
8250    return metadata;
8251  };
8252  get = function (it) {
8253    return hasOwn(it, STATE) ? it[STATE] : {};
8254  };
8255  has = function (it) {
8256    return hasOwn(it, STATE);
8257  };
8258}
8259
8260module.exports = {
8261  set: set,
8262  get: get,
8263  has: has,
8264  enforce: enforce,
8265  getterFor: getterFor
8266};
8267
8268
8269/***/ }),
8270
vendor: 877 bytes, lines 8271-8290
8271/***/ "./node_modules/core-js/internals/is-array-iterator-method.js":
8272/*!********************************************************************!*\
8273  !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***!
8274  \********************************************************************/
8275/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8276
8277var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
8278var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
8279
8280var ITERATOR = wellKnownSymbol('iterator');
8281var ArrayPrototype = Array.prototype;
8282
8283// check on default Array iterator
8284module.exports = function (it) {
8285  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
8286};
8287
8288
8289/***/ }),
8290
vendor: 666 bytes, lines 8291-8308
8291/***/ "./node_modules/core-js/internals/is-array.js":
8292/*!****************************************************!*\
8293  !*** ./node_modules/core-js/internals/is-array.js ***!
8294  \****************************************************/
8295/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8296
8297var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
8298
8299// `IsArray` abstract operation
8300// https://tc39.es/ecma262/#sec-isarray
8301// eslint-disable-next-line es/no-array-isarray -- safe
8302module.exports = Array.isArray || function isArray(argument) {
8303  return classof(argument) == 'Array';
8304};
8305
8306
8307/***/ }),
8308
vendor: 439 bytes, lines 8309-8323
8309/***/ "./node_modules/core-js/internals/is-callable.js":
8310/*!*******************************************************!*\
8311  !*** ./node_modules/core-js/internals/is-callable.js ***!
8312  \*******************************************************/
8313/***/ (function(module) {
8314
8315// `IsCallable` abstract operation
8316// https://tc39.es/ecma262/#sec-iscallable
8317module.exports = function (argument) {
8318  return typeof argument == 'function';
8319};
8320
8321
8322/***/ }),
8323
vendor: 2,545 bytes, lines 8324-8385
8324/***/ "./node_modules/core-js/internals/is-constructor.js":
8325/*!**********************************************************!*\
8326  !*** ./node_modules/core-js/internals/is-constructor.js ***!
8327  \**********************************************************/
8328/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8329
8330var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8331var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8332var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8333var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
8334var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
8335var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
8336
8337var noop = function () { /* empty */ };
8338var empty = [];
8339var construct = getBuiltIn('Reflect', 'construct');
8340var constructorRegExp = /^\s*(?:class|function)\b/;
8341var exec = uncurryThis(constructorRegExp.exec);
8342var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);
8343
8344var isConstructorModern = function isConstructor(argument) {
8345  if (!isCallable(argument)) return false;
8346  try {
8347    construct(noop, empty, argument);
8348    return true;
8349  } catch (error) {
8350    return false;
8351  }
8352};
8353
8354var isConstructorLegacy = function isConstructor(argument) {
8355  if (!isCallable(argument)) return false;
8356  switch (classof(argument)) {
8357    case 'AsyncFunction':
8358    case 'GeneratorFunction':
8359    case 'AsyncGeneratorFunction': return false;
8360  }
8361  try {
8362    // we can't check .prototype since constructors produced by .bind haven't it
8363    // `Function#toString` throws on some built-it function in some legacy engines
8364    // (for example, `DOMQuad` and similar in FF41-)
8365    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
8366  } catch (error) {
8367    return true;
8368  }
8369};
8370
8371isConstructorLegacy.sham = true;
8372
8373// `IsConstructor` abstract operation
8374// https://tc39.es/ecma262/#sec-isconstructor
8375module.exports = !construct || fails(function () {
8376  var called;
8377  return isConstructorModern(isConstructorModern.call)
8378    || !isConstructorModern(Object)
8379    || !isConstructorModern(function () { called = true; })
8380    || called;
8381}) ? isConstructorLegacy : isConstructorModern;
8382
8383
8384/***/ }),
8385
vendor: 1,064 bytes, lines 8386-8417
8386/***/ "./node_modules/core-js/internals/is-forced.js":
8387/*!*****************************************************!*\
8388  !*** ./node_modules/core-js/internals/is-forced.js ***!
8389  \*****************************************************/
8390/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8391
8392var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8393var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8394
8395var replacement = /#|\.prototype\./;
8396
8397var isForced = function (feature, detection) {
8398  var value = data[normalize(feature)];
8399  return value == POLYFILL ? true
8400    : value == NATIVE ? false
8401    : isCallable(detection) ? fails(detection)
8402    : !!detection;
8403};
8404
8405var normalize = isForced.normalize = function (string) {
8406  return String(string).replace(replacement, '.').toLowerCase();
8407};
8408
8409var data = isForced.data = {};
8410var NATIVE = isForced.NATIVE = 'N';
8411var POLYFILL = isForced.POLYFILL = 'P';
8412
8413module.exports = isForced;
8414
8415
8416/***/ }),
8417
vendor: 539 bytes, lines 8418-8432
8418/***/ "./node_modules/core-js/internals/is-object.js":
8419/*!*****************************************************!*\
8420  !*** ./node_modules/core-js/internals/is-object.js ***!
8421  \*****************************************************/
8422/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8423
8424var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8425
8426module.exports = function (it) {
8427  return typeof it == 'object' ? it !== null : isCallable(it);
8428};
8429
8430
8431/***/ }),
8432
vendor: 287 bytes, lines 8433-8443
8433/***/ "./node_modules/core-js/internals/is-pure.js":
8434/*!***************************************************!*\
8435  !*** ./node_modules/core-js/internals/is-pure.js ***!
8436  \***************************************************/
8437/***/ (function(module) {
8438
8439module.exports = false;
8440
8441
8442/***/ }),
8443
vendor: 959 bytes, lines 8444-8465
8444/***/ "./node_modules/core-js/internals/is-regexp.js":
8445/*!*****************************************************!*\
8446  !*** ./node_modules/core-js/internals/is-regexp.js ***!
8447  \*****************************************************/
8448/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8449
8450var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
8451var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
8452var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
8453
8454var MATCH = wellKnownSymbol('match');
8455
8456// `IsRegExp` abstract operation
8457// https://tc39.es/ecma262/#sec-isregexp
8458module.exports = function (it) {
8459  var isRegExp;
8460  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
8461};
8462
8463
8464/***/ }),
8465
vendor: 1,209 bytes, lines 8466-8489
8466/***/ "./node_modules/core-js/internals/is-symbol.js":
8467/*!*****************************************************!*\
8468  !*** ./node_modules/core-js/internals/is-symbol.js ***!
8469  \*****************************************************/
8470/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8471
8472var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8473var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
8474var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8475var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
8476var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js");
8477
8478var Object = global.Object;
8479
8480module.exports = USE_SYMBOL_AS_UID ? function (it) {
8481  return typeof it == 'symbol';
8482} : function (it) {
8483  var $Symbol = getBuiltIn('Symbol');
8484  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));
8485};
8486
8487
8488/***/ }),
8489
vendor: 3,553 bytes, lines 8490-8565
8490/***/ "./node_modules/core-js/internals/iterate.js":
8491/*!***************************************************!*\
8492  !*** ./node_modules/core-js/internals/iterate.js ***!
8493  \***************************************************/
8494/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8495
8496var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8497var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
8498var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
8499var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
8500var tryToString = __webpack_require__(/*! ../internals/try-to-string */ "./node_modules/core-js/internals/try-to-string.js");
8501var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js");
8502var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
8503var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
8504var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "./node_modules/core-js/internals/get-iterator.js");
8505var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js");
8506var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ "./node_modules/core-js/internals/iterator-close.js");
8507
8508var TypeError = global.TypeError;
8509
8510var Result = function (stopped, result) {
8511  this.stopped = stopped;
8512  this.result = result;
8513};
8514
8515var ResultPrototype = Result.prototype;
8516
8517module.exports = function (iterable, unboundFunction, options) {
8518  var that = options && options.that;
8519  var AS_ENTRIES = !!(options && options.AS_ENTRIES);
8520  var IS_ITERATOR = !!(options && options.IS_ITERATOR);
8521  var INTERRUPTED = !!(options && options.INTERRUPTED);
8522  var fn = bind(unboundFunction, that);
8523  var iterator, iterFn, index, length, result, next, step;
8524
8525  var stop = function (condition) {
8526    if (iterator) iteratorClose(iterator, 'normal', condition);
8527    return new Result(true, condition);
8528  };
8529
8530  var callFn = function (value) {
8531    if (AS_ENTRIES) {
8532      anObject(value);
8533      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
8534    } return INTERRUPTED ? fn(value, stop) : fn(value);
8535  };
8536
8537  if (IS_ITERATOR) {
8538    iterator = iterable;
8539  } else {
8540    iterFn = getIteratorMethod(iterable);
8541    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');
8542    // optimisation for array iterators
8543    if (isArrayIteratorMethod(iterFn)) {
8544      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
8545        result = callFn(iterable[index]);
8546        if (result && isPrototypeOf(ResultPrototype, result)) return result;
8547      } return new Result(false);
8548    }
8549    iterator = getIterator(iterable, iterFn);
8550  }
8551
8552  next = iterator.next;
8553  while (!(step = call(next, iterator)).done) {
8554    try {
8555      result = callFn(step.value);
8556    } catch (error) {
8557      iteratorClose(iterator, 'throw', error);
8558    }
8559    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
8560  } return new Result(false);
8561};
8562
8563
8564/***/ }),
8565
vendor: 1,181 bytes, lines 8566-8598
8566/***/ "./node_modules/core-js/internals/iterator-close.js":
8567/*!**********************************************************!*\
8568  !*** ./node_modules/core-js/internals/iterator-close.js ***!
8569  \**********************************************************/
8570/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8571
8572var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
8573var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
8574var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
8575
8576module.exports = function (iterator, kind, value) {
8577  var innerResult, innerError;
8578  anObject(iterator);
8579  try {
8580    innerResult = getMethod(iterator, 'return');
8581    if (!innerResult) {
8582      if (kind === 'throw') throw value;
8583      return value;
8584    }
8585    innerResult = call(innerResult, iterator);
8586  } catch (error) {
8587    innerError = true;
8588    innerResult = error;
8589  }
8590  if (kind === 'throw') throw value;
8591  if (innerError) throw innerResult;
8592  anObject(innerResult);
8593  return value;
8594};
8595
8596
8597/***/ }),
8598
vendor: 2,550 bytes, lines 8599-8657
8599/***/ "./node_modules/core-js/internals/iterators-core.js":
8600/*!**********************************************************!*\
8601  !*** ./node_modules/core-js/internals/iterators-core.js ***!
8602  \**********************************************************/
8603/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8604
8605"use strict";
8606
8607var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8608var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8609var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
8610var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
8611var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
8612var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
8613var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
8614
8615var ITERATOR = wellKnownSymbol('iterator');
8616var BUGGY_SAFARI_ITERATORS = false;
8617
8618// `%IteratorPrototype%` object
8619// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
8620var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
8621
8622/* eslint-disable es/no-array-prototype-keys -- safe */
8623if ([].keys) {
8624  arrayIterator = [].keys();
8625  // Safari 8 has buggy iterators w/o `next`
8626  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
8627  else {
8628    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
8629    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
8630  }
8631}
8632
8633var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
8634  var test = {};
8635  // FF44- legacy iterators case
8636  return IteratorPrototype[ITERATOR].call(test) !== test;
8637});
8638
8639if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
8640else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
8641
8642// `%IteratorPrototype%[@@iterator]()` method
8643// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
8644if (!isCallable(IteratorPrototype[ITERATOR])) {
8645  redefine(IteratorPrototype, ITERATOR, function () {
8646    return this;
8647  });
8648}
8649
8650module.exports = {
8651  IteratorPrototype: IteratorPrototype,
8652  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
8653};
8654
8655
8656/***/ }),
8657
vendor: 292 bytes, lines 8658-8668
8658/***/ "./node_modules/core-js/internals/iterators.js":
8659/*!*****************************************************!*\
8660  !*** ./node_modules/core-js/internals/iterators.js ***!
8661  \*****************************************************/
8662/***/ (function(module) {
8663
8664module.exports = {};
8665
8666
8667/***/ }),
8668
vendor: 638 bytes, lines 8669-8685
8669/***/ "./node_modules/core-js/internals/length-of-array-like.js":
8670/*!****************************************************************!*\
8671  !*** ./node_modules/core-js/internals/length-of-array-like.js ***!
8672  \****************************************************************/
8673/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8674
8675var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
8676
8677// `LengthOfArrayLike` abstract operation
8678// https://tc39.es/ecma262/#sec-lengthofarraylike
8679module.exports = function (obj) {
8680  return toLength(obj.length);
8681};
8682
8683
8684/***/ }),
8685
vendor: 3,829 bytes, lines 8686-8780
8686/***/ "./node_modules/core-js/internals/microtask.js":
8687/*!*****************************************************!*\
8688  !*** ./node_modules/core-js/internals/microtask.js ***!
8689  \*****************************************************/
8690/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8691
8692var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8693var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
8694var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
8695var macrotask = (__webpack_require__(/*! ../internals/task */ "./node_modules/core-js/internals/task.js").set);
8696var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ "./node_modules/core-js/internals/engine-is-ios.js");
8697var IS_IOS_PEBBLE = __webpack_require__(/*! ../internals/engine-is-ios-pebble */ "./node_modules/core-js/internals/engine-is-ios-pebble.js");
8698var IS_WEBOS_WEBKIT = __webpack_require__(/*! ../internals/engine-is-webos-webkit */ "./node_modules/core-js/internals/engine-is-webos-webkit.js");
8699var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js");
8700
8701var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
8702var document = global.document;
8703var process = global.process;
8704var Promise = global.Promise;
8705// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
8706var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
8707var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
8708
8709var flush, head, last, notify, toggle, node, promise, then;
8710
8711// modern engines have queueMicrotask method
8712if (!queueMicrotask) {
8713  flush = function () {
8714    var parent, fn;
8715    if (IS_NODE && (parent = process.domain)) parent.exit();
8716    while (head) {
8717      fn = head.fn;
8718      head = head.next;
8719      try {
8720        fn();
8721      } catch (error) {
8722        if (head) notify();
8723        else last = undefined;
8724        throw error;
8725      }
8726    } last = undefined;
8727    if (parent) parent.enter();
8728  };
8729
8730  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
8731  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898
8732  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {
8733    toggle = true;
8734    node = document.createTextNode('');
8735    new MutationObserver(flush).observe(node, { characterData: true });
8736    notify = function () {
8737      node.data = toggle = !toggle;
8738    };
8739  // environments with maybe non-completely correct, but existent Promise
8740  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {
8741    // Promise.resolve without an argument throws an error in LG WebOS 2
8742    promise = Promise.resolve(undefined);
8743    // workaround of WebKit ~ iOS Safari 10.1 bug
8744    promise.constructor = Promise;
8745    then = bind(promise.then, promise);
8746    notify = function () {
8747      then(flush);
8748    };
8749  // Node.js without promises
8750  } else if (IS_NODE) {
8751    notify = function () {
8752      process.nextTick(flush);
8753    };
8754  // for other environments - macrotask based on:
8755  // - setImmediate
8756  // - MessageChannel
8757  // - window.postMessag
8758  // - onreadystatechange
8759  // - setTimeout
8760  } else {
8761    // strange IE + webpack dev server bug - use .bind(global)
8762    macrotask = bind(macrotask, global);
8763    notify = function () {
8764      macrotask(flush);
8765    };
8766  }
8767}
8768
8769module.exports = queueMicrotask || function (fn) {
8770  var task = { fn: fn, next: undefined };
8771  if (last) last.next = task;
8772  if (!head) {
8773    head = task;
8774    notify();
8775  } last = task;
8776};
8777
8778
8779/***/ }),
8780
vendor: 527 bytes, lines 8781-8793
8781/***/ "./node_modules/core-js/internals/native-promise-constructor.js":
8782/*!**********************************************************************!*\
8783  !*** ./node_modules/core-js/internals/native-promise-constructor.js ***!
8784  \**********************************************************************/
8785/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8786
8787var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8788
8789module.exports = global.Promise;
8790
8791
8792/***/ }),
8793
vendor: 1,177 bytes, lines 8794-8816
8794/***/ "./node_modules/core-js/internals/native-symbol.js":
8795/*!*********************************************************!*\
8796  !*** ./node_modules/core-js/internals/native-symbol.js ***!
8797  \*********************************************************/
8798/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8799
8800/* eslint-disable es/no-symbol -- required for testing */
8801var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
8802var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8803
8804// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
8805module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
8806  var symbol = Symbol();
8807  // Chrome 38 Symbol has incorrect toString conversion
8808  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
8809  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
8810    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
8811    !Symbol.sham && V8_VERSION && V8_VERSION < 41;
8812});
8813
8814
8815/***/ }),
8816
vendor: 816 bytes, lines 8817-8833
8817/***/ "./node_modules/core-js/internals/native-weak-map.js":
8818/*!***********************************************************!*\
8819  !*** ./node_modules/core-js/internals/native-weak-map.js ***!
8820  \***********************************************************/
8821/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8822
8823var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8824var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
8825var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
8826
8827var WeakMap = global.WeakMap;
8828
8829module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));
8830
8831
8832/***/ }),
8833
vendor: 1,021 bytes, lines 8834-8863
8834/***/ "./node_modules/core-js/internals/new-promise-capability.js":
8835/*!******************************************************************!*\
8836  !*** ./node_modules/core-js/internals/new-promise-capability.js ***!
8837  \******************************************************************/
8838/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8839
8840"use strict";
8841
8842var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
8843
8844var PromiseCapability = function (C) {
8845  var resolve, reject;
8846  this.promise = new C(function ($$resolve, $$reject) {
8847    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
8848    resolve = $$resolve;
8849    reject = $$reject;
8850  });
8851  this.resolve = aCallable(resolve);
8852  this.reject = aCallable(reject);
8853};
8854
8855// `NewPromiseCapability` abstract operation
8856// https://tc39.es/ecma262/#sec-newpromisecapability
8857module.exports.f = function (C) {
8858  return new PromiseCapability(C);
8859};
8860
8861
8862/***/ }),
8863
vendor: 1,705 bytes, lines 8864-8895
8864/***/ "./node_modules/core-js/internals/number-parse-float.js":
8865/*!**************************************************************!*\
8866  !*** ./node_modules/core-js/internals/number-parse-float.js ***!
8867  \**************************************************************/
8868/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8869
8870var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8871var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8872var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8873var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
8874var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim);
8875var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
8876
8877var charAt = uncurryThis(''.charAt);
8878var n$ParseFloat = global.parseFloat;
8879var Symbol = global.Symbol;
8880var ITERATOR = Symbol && Symbol.iterator;
8881var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity
8882  // MS Edge 18- broken with boxed symbols
8883  || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));
8884
8885// `parseFloat` method
8886// https://tc39.es/ecma262/#sec-parsefloat-string
8887module.exports = FORCED ? function parseFloat(string) {
8888  var trimmedString = trim(toString(string));
8889  var result = n$ParseFloat(trimmedString);
8890  return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;
8891} : n$ParseFloat;
8892
8893
8894/***/ }),
8895
vendor: 1,678 bytes, lines 8896-8927
8896/***/ "./node_modules/core-js/internals/number-parse-int.js":
8897/*!************************************************************!*\
8898  !*** ./node_modules/core-js/internals/number-parse-int.js ***!
8899  \************************************************************/
8900/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8901
8902var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
8903var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8904var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8905var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
8906var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim);
8907var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
8908
8909var $parseInt = global.parseInt;
8910var Symbol = global.Symbol;
8911var ITERATOR = Symbol && Symbol.iterator;
8912var hex = /^[+-]?0x/i;
8913var exec = uncurryThis(hex.exec);
8914var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
8915  // MS Edge 18- broken with boxed symbols
8916  || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
8917
8918// `parseInt` method
8919// https://tc39.es/ecma262/#sec-parseint-string-radix
8920module.exports = FORCED ? function parseInt(string, radix) {
8921  var S = trim(toString(string));
8922  return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));
8923} : $parseInt;
8924
8925
8926/***/ }),
8927
vendor: 3,343 bytes, lines 8928-8995
8928/***/ "./node_modules/core-js/internals/object-assign.js":
8929/*!*********************************************************!*\
8930  !*** ./node_modules/core-js/internals/object-assign.js ***!
8931  \*********************************************************/
8932/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8933
8934"use strict";
8935
8936var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
8937var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
8938var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
8939var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
8940var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
8941var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
8942var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
8943var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
8944var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
8945
8946// eslint-disable-next-line es/no-object-assign -- safe
8947var $assign = Object.assign;
8948// eslint-disable-next-line es/no-object-defineproperty -- required for testing
8949var defineProperty = Object.defineProperty;
8950var concat = uncurryThis([].concat);
8951
8952// `Object.assign` method
8953// https://tc39.es/ecma262/#sec-object.assign
8954module.exports = !$assign || fails(function () {
8955  // should have correct order of operations (Edge bug)
8956  if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {
8957    enumerable: true,
8958    get: function () {
8959      defineProperty(this, 'b', {
8960        value: 3,
8961        enumerable: false
8962      });
8963    }
8964  }), { b: 2 })).b !== 1) return true;
8965  // should work with symbols and should have deterministic property order (V8 bug)
8966  var A = {};
8967  var B = {};
8968  // eslint-disable-next-line es/no-symbol -- safe
8969  var symbol = Symbol();
8970  var alphabet = 'abcdefghijklmnopqrst';
8971  A[symbol] = 7;
8972  alphabet.split('').forEach(function (chr) { B[chr] = chr; });
8973  return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;
8974}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`
8975  var T = toObject(target);
8976  var argumentsLength = arguments.length;
8977  var index = 1;
8978  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
8979  var propertyIsEnumerable = propertyIsEnumerableModule.f;
8980  while (argumentsLength > index) {
8981    var S = IndexedObject(arguments[index++]);
8982    var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);
8983    var length = keys.length;
8984    var j = 0;
8985    var key;
8986    while (length > j) {
8987      key = keys[j++];
8988      if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];
8989    }
8990  } return T;
8991} : $assign;
8992
8993
8994/***/ }),
8995
vendor: 3,821 bytes, lines 8996-9087
8996/***/ "./node_modules/core-js/internals/object-create.js":
8997/*!*********************************************************!*\
8998  !*** ./node_modules/core-js/internals/object-create.js ***!
8999  \*********************************************************/
9000/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9001
9002/* global ActiveXObject -- old IE, WSH */
9003var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9004var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js");
9005var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
9006var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
9007var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js");
9008var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
9009var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
9010
9011var GT = '>';
9012var LT = '<';
9013var PROTOTYPE = 'prototype';
9014var SCRIPT = 'script';
9015var IE_PROTO = sharedKey('IE_PROTO');
9016
9017var EmptyConstructor = function () { /* empty */ };
9018
9019var scriptTag = function (content) {
9020  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
9021};
9022
9023// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
9024var NullProtoObjectViaActiveX = function (activeXDocument) {
9025  activeXDocument.write(scriptTag(''));
9026  activeXDocument.close();
9027  var temp = activeXDocument.parentWindow.Object;
9028  activeXDocument = null; // avoid memory leak
9029  return temp;
9030};
9031
9032// Create object with fake `null` prototype: use iframe Object with cleared prototype
9033var NullProtoObjectViaIFrame = function () {
9034  // Thrash, waste and sodomy: IE GC bug
9035  var iframe = documentCreateElement('iframe');
9036  var JS = 'java' + SCRIPT + ':';
9037  var iframeDocument;
9038  iframe.style.display = 'none';
9039  html.appendChild(iframe);
9040  // https://github.com/zloirock/core-js/issues/475
9041  iframe.src = String(JS);
9042  iframeDocument = iframe.contentWindow.document;
9043  iframeDocument.open();
9044  iframeDocument.write(scriptTag('document.F=Object'));
9045  iframeDocument.close();
9046  return iframeDocument.F;
9047};
9048
9049// Check for document.domain and active x support
9050// No need to use active x approach when document.domain is not set
9051// see https://github.com/es-shims/es5-shim/issues/150
9052// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
9053// avoid IE GC bug
9054var activeXDocument;
9055var NullProtoObject = function () {
9056  try {
9057    activeXDocument = new ActiveXObject('htmlfile');
9058  } catch (error) { /* ignore */ }
9059  NullProtoObject = typeof document != 'undefined'
9060    ? document.domain && activeXDocument
9061      ? NullProtoObjectViaActiveX(activeXDocument) // old IE
9062      : NullProtoObjectViaIFrame()
9063    : NullProtoObjectViaActiveX(activeXDocument); // WSH
9064  var length = enumBugKeys.length;
9065  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
9066  return NullProtoObject();
9067};
9068
9069hiddenKeys[IE_PROTO] = true;
9070
9071// `Object.create` method
9072// https://tc39.es/ecma262/#sec-object.create
9073module.exports = Object.create || function create(O, Properties) {
9074  var result;
9075  if (O !== null) {
9076    EmptyConstructor[PROTOTYPE] = anObject(O);
9077    result = new EmptyConstructor();
9078    EmptyConstructor[PROTOTYPE] = null;
9079    // add "__proto__" for Object.getPrototypeOf polyfill
9080    result[IE_PROTO] = O;
9081  } else result = NullProtoObject();
9082  return Properties === undefined ? result : defineProperties(result, Properties);
9083};
9084
9085
9086/***/ }),
9087
vendor: 1,537 bytes, lines 9088-9116
9088/***/ "./node_modules/core-js/internals/object-define-properties.js":
9089/*!********************************************************************!*\
9090  !*** ./node_modules/core-js/internals/object-define-properties.js ***!
9091  \********************************************************************/
9092/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9093
9094var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
9095var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
9096var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9097var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
9098var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
9099
9100// `Object.defineProperties` method
9101// https://tc39.es/ecma262/#sec-object.defineproperties
9102// eslint-disable-next-line es/no-object-defineproperties -- safe
9103module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
9104  anObject(O);
9105  var props = toIndexedObject(Properties);
9106  var keys = objectKeys(Properties);
9107  var length = keys.length;
9108  var index = 0;
9109  var key;
9110  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
9111  return O;
9112};
9113
9114
9115/***/ }),
9116
vendor: 1,632 bytes, lines 9117-9149
9117/***/ "./node_modules/core-js/internals/object-define-property.js":
9118/*!******************************************************************!*\
9119  !*** ./node_modules/core-js/internals/object-define-property.js ***!
9120  \******************************************************************/
9121/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9122
9123var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9124var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
9125var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js");
9126var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9127var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js");
9128
9129var TypeError = global.TypeError;
9130// eslint-disable-next-line es/no-object-defineproperty -- safe
9131var $defineProperty = Object.defineProperty;
9132
9133// `Object.defineProperty` method
9134// https://tc39.es/ecma262/#sec-object.defineproperty
9135exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
9136  anObject(O);
9137  P = toPropertyKey(P);
9138  anObject(Attributes);
9139  if (IE8_DOM_DEFINE) try {
9140    return $defineProperty(O, P, Attributes);
9141  } catch (error) { /* empty */ }
9142  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
9143  if ('value' in Attributes) O[P] = Attributes.value;
9144  return O;
9145};
9146
9147
9148/***/ }),
9149
vendor: 2,131 bytes, lines 9150-9181
9150/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js":
9151/*!******************************************************************************!*\
9152  !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!
9153  \******************************************************************************/
9154/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9155
9156var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
9157var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
9158var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
9159var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
9160var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
9161var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js");
9162var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
9163var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js");
9164
9165// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
9166var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
9167
9168// `Object.getOwnPropertyDescriptor` method
9169// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
9170exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
9171  O = toIndexedObject(O);
9172  P = toPropertyKey(P);
9173  if (IE8_DOM_DEFINE) try {
9174    return $getOwnPropertyDescriptor(O, P);
9175  } catch (error) { /* empty */ }
9176  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
9177};
9178
9179
9180/***/ }),
9181
vendor: 1,591 bytes, lines 9182-9214
9182/***/ "./node_modules/core-js/internals/object-get-own-property-names-external.js":
9183/*!**********************************************************************************!*\
9184  !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***!
9185  \**********************************************************************************/
9186/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9187
9188/* eslint-disable es/no-object-getownpropertynames -- safe */
9189var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
9190var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
9191var $getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f);
9192var arraySlice = __webpack_require__(/*! ../internals/array-slice-simple */ "./node_modules/core-js/internals/array-slice-simple.js");
9193
9194var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
9195  ? Object.getOwnPropertyNames(window) : [];
9196
9197var getWindowNames = function (it) {
9198  try {
9199    return $getOwnPropertyNames(it);
9200  } catch (error) {
9201    return arraySlice(windowNames);
9202  }
9203};
9204
9205// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
9206module.exports.f = function getOwnPropertyNames(it) {
9207  return windowNames && classof(it) == 'Window'
9208    ? getWindowNames(it)
9209    : $getOwnPropertyNames(toIndexedObject(it));
9210};
9211
9212
9213/***/ }),
9214
vendor: 1,023 bytes, lines 9215-9235
9215/***/ "./node_modules/core-js/internals/object-get-own-property-names.js":
9216/*!*************************************************************************!*\
9217  !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!
9218  \*************************************************************************/
9219/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
9220
9221var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
9222var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
9223
9224var hiddenKeys = enumBugKeys.concat('length', 'prototype');
9225
9226// `Object.getOwnPropertyNames` method
9227// https://tc39.es/ecma262/#sec-object.getownpropertynames
9228// eslint-disable-next-line es/no-object-getownpropertynames -- safe
9229exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
9230  return internalObjectKeys(O, hiddenKeys);
9231};
9232
9233
9234/***/ }),
9235
vendor: 498 bytes, lines 9236-9247
9236/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js":
9237/*!***************************************************************************!*\
9238  !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!
9239  \***************************************************************************/
9240/***/ (function(__unused_webpack_module, exports) {
9241
9242// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
9243exports.f = Object.getOwnPropertySymbols;
9244
9245
9246/***/ }),
9247
vendor: 1,692 bytes, lines 9248-9278
9248/***/ "./node_modules/core-js/internals/object-get-prototype-of.js":
9249/*!*******************************************************************!*\
9250  !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***!
9251  \*******************************************************************/
9252/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9253
9254var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9255var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
9256var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
9257var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
9258var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
9259var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js");
9260
9261var IE_PROTO = sharedKey('IE_PROTO');
9262var Object = global.Object;
9263var ObjectPrototype = Object.prototype;
9264
9265// `Object.getPrototypeOf` method
9266// https://tc39.es/ecma262/#sec-object.getprototypeof
9267module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
9268  var object = toObject(O);
9269  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
9270  var constructor = object.constructor;
9271  if (isCallable(constructor) && object instanceof constructor) {
9272    return constructor.prototype;
9273  } return object instanceof Object ? ObjectPrototype : null;
9274};
9275
9276
9277/***/ }),
9278
vendor: 561 bytes, lines 9279-9291
9279/***/ "./node_modules/core-js/internals/object-is-prototype-of.js":
9280/*!******************************************************************!*\
9281  !*** ./node_modules/core-js/internals/object-is-prototype-of.js ***!
9282  \******************************************************************/
9283/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9284
9285var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
9286
9287module.exports = uncurryThis({}.isPrototypeOf);
9288
9289
9290/***/ }),
9291
vendor: 1,431 bytes, lines 9292-9321
9292/***/ "./node_modules/core-js/internals/object-keys-internal.js":
9293/*!****************************************************************!*\
9294  !*** ./node_modules/core-js/internals/object-keys-internal.js ***!
9295  \****************************************************************/
9296/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9297
9298var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
9299var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
9300var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
9301var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf);
9302var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
9303
9304var push = uncurryThis([].push);
9305
9306module.exports = function (object, names) {
9307  var O = toIndexedObject(object);
9308  var i = 0;
9309  var result = [];
9310  var key;
9311  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
9312  // Don't enum bug & hidden keys
9313  while (names.length > i) if (hasOwn(O, key = names[i++])) {
9314    ~indexOf(result, key) || push(result, key);
9315  }
9316  return result;
9317};
9318
9319
9320/***/ }),
9321
vendor: 821 bytes, lines 9322-9340
9322/***/ "./node_modules/core-js/internals/object-keys.js":
9323/*!*******************************************************!*\
9324  !*** ./node_modules/core-js/internals/object-keys.js ***!
9325  \*******************************************************/
9326/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9327
9328var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
9329var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
9330
9331// `Object.keys` method
9332// https://tc39.es/ecma262/#sec-object.keys
9333// eslint-disable-next-line es/no-object-keys -- safe
9334module.exports = Object.keys || function keys(O) {
9335  return internalObjectKeys(O, enumBugKeys);
9336};
9337
9338
9339/***/ }),
9340
vendor: 1,020 bytes, lines 9341-9365
9341/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js":
9342/*!*************************************************************************!*\
9343  !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!
9344  \*************************************************************************/
9345/***/ (function(__unused_webpack_module, exports) {
9346
9347"use strict";
9348
9349var $propertyIsEnumerable = {}.propertyIsEnumerable;
9350// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
9351var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
9352
9353// Nashorn ~ JDK8 bug
9354var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
9355
9356// `Object.prototype.propertyIsEnumerable` method implementation
9357// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
9358exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
9359  var descriptor = getOwnPropertyDescriptor(this, V);
9360  return !!descriptor && descriptor.enumerable;
9361} : $propertyIsEnumerable;
9362
9363
9364/***/ }),
9365
vendor: 1,662 bytes, lines 9366-9402
9366/***/ "./node_modules/core-js/internals/object-set-prototype-of.js":
9367/*!*******************************************************************!*\
9368  !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***!
9369  \*******************************************************************/
9370/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9371
9372/* eslint-disable no-proto -- safe */
9373var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
9374var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9375var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "./node_modules/core-js/internals/a-possible-prototype.js");
9376
9377// `Object.setPrototypeOf` method
9378// https://tc39.es/ecma262/#sec-object.setprototypeof
9379// Works with __proto__ only. Old v8 can't work with null proto objects.
9380// eslint-disable-next-line es/no-object-setprototypeof -- safe
9381module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
9382  var CORRECT_SETTER = false;
9383  var test = {};
9384  var setter;
9385  try {
9386    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
9387    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
9388    setter(test, []);
9389    CORRECT_SETTER = test instanceof Array;
9390  } catch (error) { /* empty */ }
9391  return function setPrototypeOf(O, proto) {
9392    anObject(O);
9393    aPossiblePrototype(proto);
9394    if (CORRECT_SETTER) setter(O, proto);
9395    else O.__proto__ = proto;
9396    return O;
9397  };
9398}() : undefined);
9399
9400
9401/***/ }),
9402
vendor: 858 bytes, lines 9403-9422
9403/***/ "./node_modules/core-js/internals/object-to-string.js":
9404/*!************************************************************!*\
9405  !*** ./node_modules/core-js/internals/object-to-string.js ***!
9406  \************************************************************/
9407/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9408
9409"use strict";
9410
9411var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
9412var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
9413
9414// `Object.prototype.toString` method implementation
9415// https://tc39.es/ecma262/#sec-object.prototype.tostring
9416module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
9417  return '[object ' + classof(this) + ']';
9418};
9419
9420
9421/***/ }),
9422
vendor: 1,384 bytes, lines 9423-9448
9423/***/ "./node_modules/core-js/internals/ordinary-to-primitive.js":
9424/*!*****************************************************************!*\
9425  !*** ./node_modules/core-js/internals/ordinary-to-primitive.js ***!
9426  \*****************************************************************/
9427/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9428
9429var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9430var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
9431var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
9432var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
9433
9434var TypeError = global.TypeError;
9435
9436// `OrdinaryToPrimitive` abstract operation
9437// https://tc39.es/ecma262/#sec-ordinarytoprimitive
9438module.exports = function (input, pref) {
9439  var fn, val;
9440  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
9441  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
9442  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
9443  throw TypeError("Can't convert object to primitive value");
9444};
9445
9446
9447/***/ }),
9448
vendor: 1,416 bytes, lines 9449-9472
9449/***/ "./node_modules/core-js/internals/own-keys.js":
9450/*!****************************************************!*\
9451  !*** ./node_modules/core-js/internals/own-keys.js ***!
9452  \****************************************************/
9453/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9454
9455var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
9456var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
9457var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js");
9458var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
9459var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9460
9461var concat = uncurryThis([].concat);
9462
9463// all object keys, includes non-enumerable and symbols
9464module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
9465  var keys = getOwnPropertyNamesModule.f(anObject(it));
9466  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
9467  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
9468};
9469
9470
9471/***/ }),
9472
vendor: 431 bytes, lines 9473-9485
9473/***/ "./node_modules/core-js/internals/path.js":
9474/*!************************************************!*\
9475  !*** ./node_modules/core-js/internals/path.js ***!
9476  \************************************************/
9477/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9478
9479var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9480
9481module.exports = global;
9482
9483
9484/***/ }),
9485
vendor: 419 bytes, lines 9486-9502
9486/***/ "./node_modules/core-js/internals/perform.js":
9487/*!***************************************************!*\
9488  !*** ./node_modules/core-js/internals/perform.js ***!
9489  \***************************************************/
9490/***/ (function(module) {
9491
9492module.exports = function (exec) {
9493  try {
9494    return { error: false, value: exec() };
9495  } catch (error) {
9496    return { error: true, value: error };
9497  }
9498};
9499
9500
9501/***/ }),
9502
vendor: 977 bytes, lines 9503-9524
9503/***/ "./node_modules/core-js/internals/promise-resolve.js":
9504/*!***********************************************************!*\
9505  !*** ./node_modules/core-js/internals/promise-resolve.js ***!
9506  \***********************************************************/
9507/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9508
9509var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9510var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
9511var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ "./node_modules/core-js/internals/new-promise-capability.js");
9512
9513module.exports = function (C, x) {
9514  anObject(C);
9515  if (isObject(x) && x.constructor === C) return x;
9516  var promiseCapability = newPromiseCapability.f(C);
9517  var resolve = promiseCapability.resolve;
9518  resolve(x);
9519  return promiseCapability.promise;
9520};
9521
9522
9523/***/ }),
9524
vendor: 720 bytes, lines 9525-9557
9525/***/ "./node_modules/core-js/internals/queue.js":
9526/*!*************************************************!*\
9527  !*** ./node_modules/core-js/internals/queue.js ***!
9528  \*************************************************/
9529/***/ (function(module) {
9530
9531var Queue = function () {
9532  this.head = null;
9533  this.tail = null;
9534};
9535
9536Queue.prototype = {
9537  add: function (item) {
9538    var entry = { item: item, next: null };
9539    if (this.head) this.tail.next = entry;
9540    else this.head = entry;
9541    this.tail = entry;
9542  },
9543  get: function () {
9544    var entry = this.head;
9545    if (entry) {
9546      this.head = entry.next;
9547      if (this.tail === entry) this.tail = null;
9548      return entry.item;
9549    }
9550  }
9551};
9552
9553module.exports = Queue;
9554
9555
9556/***/ }),
9557
vendor: 580 bytes, lines 9558-9573
9558/***/ "./node_modules/core-js/internals/redefine-all.js":
9559/*!********************************************************!*\
9560  !*** ./node_modules/core-js/internals/redefine-all.js ***!
9561  \********************************************************/
9562/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9563
9564var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
9565
9566module.exports = function (target, src, options) {
9567  for (var key in src) redefine(target, key, src[key], options);
9568  return target;
9569};
9570
9571
9572/***/ }),
9573
vendor: 2,843 bytes, lines 9574-9629
9574/***/ "./node_modules/core-js/internals/redefine.js":
9575/*!****************************************************!*\
9576  !*** ./node_modules/core-js/internals/redefine.js ***!
9577  \****************************************************/
9578/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9579
9580var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9581var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
9582var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
9583var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
9584var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
9585var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
9586var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
9587var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js").CONFIGURABLE);
9588
9589var getInternalState = InternalStateModule.get;
9590var enforceInternalState = InternalStateModule.enforce;
9591var TEMPLATE = String(String).split('String');
9592
9593(module.exports = function (O, key, value, options) {
9594  var unsafe = options ? !!options.unsafe : false;
9595  var simple = options ? !!options.enumerable : false;
9596  var noTargetGet = options ? !!options.noTargetGet : false;
9597  var name = options && options.name !== undefined ? options.name : key;
9598  var state;
9599  if (isCallable(value)) {
9600    if (String(name).slice(0, 7) === 'Symbol(') {
9601      name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
9602    }
9603    if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
9604      createNonEnumerableProperty(value, 'name', name);
9605    }
9606    state = enforceInternalState(value);
9607    if (!state.source) {
9608      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
9609    }
9610  }
9611  if (O === global) {
9612    if (simple) O[key] = value;
9613    else setGlobal(key, value);
9614    return;
9615  } else if (!unsafe) {
9616    delete O[key];
9617  } else if (!noTargetGet && O[key]) {
9618    simple = true;
9619  }
9620  if (simple) O[key] = value;
9621  else createNonEnumerableProperty(O, key, value);
9622// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
9623})(Function.prototype, 'toString', function toString() {
9624  return isCallable(this) && getInternalState(this).source || inspectSource(this);
9625});
9626
9627
9628/***/ }),
9629
vendor: 1,491 bytes, lines 9630-9660
9630/***/ "./node_modules/core-js/internals/regexp-exec-abstract.js":
9631/*!****************************************************************!*\
9632  !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***!
9633  \****************************************************************/
9634/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9635
9636var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9637var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
9638var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9639var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
9640var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
9641var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
9642
9643var TypeError = global.TypeError;
9644
9645// `RegExpExec` abstract operation
9646// https://tc39.es/ecma262/#sec-regexpexec
9647module.exports = function (R, S) {
9648  var exec = R.exec;
9649  if (isCallable(exec)) {
9650    var result = call(exec, R, S);
9651    if (result !== null) anObject(result);
9652    return result;
9653  }
9654  if (classof(R) === 'RegExp') return call(regexpExec, R, S);
9655  throw TypeError('RegExp#exec called on incompatible receiver');
9656};
9657
9658
9659/***/ }),
9660
vendor: 5,080 bytes, lines 9661-9788
9661/***/ "./node_modules/core-js/internals/regexp-exec.js":
9662/*!*******************************************************!*\
9663  !*** ./node_modules/core-js/internals/regexp-exec.js ***!
9664  \*******************************************************/
9665/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9666
9667"use strict";
9668
9669/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
9670/* eslint-disable regexp/no-useless-quantifier -- testing */
9671var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
9672var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
9673var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
9674var regexpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
9675var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
9676var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
9677var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
9678var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").get);
9679var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js");
9680var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js");
9681
9682var nativeReplace = shared('native-string-replace', String.prototype.replace);
9683var nativeExec = RegExp.prototype.exec;
9684var patchedExec = nativeExec;
9685var charAt = uncurryThis(''.charAt);
9686var indexOf = uncurryThis(''.indexOf);
9687var replace = uncurryThis(''.replace);
9688var stringSlice = uncurryThis(''.slice);
9689
9690var UPDATES_LAST_INDEX_WRONG = (function () {
9691  var re1 = /a/;
9692  var re2 = /b*/g;
9693  call(nativeExec, re1, 'a');
9694  call(nativeExec, re2, 'a');
9695  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
9696})();
9697
9698var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;
9699
9700// nonparticipating capturing group, copied from es5-shim's String#split patch.
9701var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
9702
9703var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
9704
9705if (PATCH) {
9706  patchedExec = function exec(string) {
9707    var re = this;
9708    var state = getInternalState(re);
9709    var str = toString(string);
9710    var raw = state.raw;
9711    var result, reCopy, lastIndex, match, i, object, group;
9712
9713    if (raw) {
9714      raw.lastIndex = re.lastIndex;
9715      result = call(patchedExec, raw, str);
9716      re.lastIndex = raw.lastIndex;
9717      return result;
9718    }
9719
9720    var groups = state.groups;
9721    var sticky = UNSUPPORTED_Y && re.sticky;
9722    var flags = call(regexpFlags, re);
9723    var source = re.source;
9724    var charsAdded = 0;
9725    var strCopy = str;
9726
9727    if (sticky) {
9728      flags = replace(flags, 'y', '');
9729      if (indexOf(flags, 'g') === -1) {
9730        flags += 'g';
9731      }
9732
9733      strCopy = stringSlice(str, re.lastIndex);
9734      // Support anchored sticky behavior.
9735      if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) {
9736        source = '(?: ' + source + ')';
9737        strCopy = ' ' + strCopy;
9738        charsAdded++;
9739      }
9740      // ^(? + rx + ) is needed, in combination with some str slicing, to
9741      // simulate the 'y' flag.
9742      reCopy = new RegExp('^(?:' + source + ')', flags);
9743    }
9744
9745    if (NPCG_INCLUDED) {
9746      reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
9747    }
9748    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
9749
9750    match = call(nativeExec, sticky ? reCopy : re, strCopy);
9751
9752    if (sticky) {
9753      if (match) {
9754        match.input = stringSlice(match.input, charsAdded);
9755        match[0] = stringSlice(match[0], charsAdded);
9756        match.index = re.lastIndex;
9757        re.lastIndex += match[0].length;
9758      } else re.lastIndex = 0;
9759    } else if (UPDATES_LAST_INDEX_WRONG && match) {
9760      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
9761    }
9762    if (NPCG_INCLUDED && match && match.length > 1) {
9763      // Fix browsers whose `exec` methods don't consistently return `undefined`
9764      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
9765      call(nativeReplace, match[0], reCopy, function () {
9766        for (i = 1; i < arguments.length - 2; i++) {
9767          if (arguments[i] === undefined) match[i] = undefined;
9768        }
9769      });
9770    }
9771
9772    if (match && groups) {
9773      match.groups = object = create(null);
9774      for (i = 0; i < groups.length; i++) {
9775        group = groups[i];
9776        object[group[0]] = match[group[1]];
9777      }
9778    }
9779
9780    return match;
9781  };
9782}
9783
9784module.exports = patchedExec;
9785
9786
9787/***/ }),
9788
vendor: 881 bytes, lines 9789-9815
9789/***/ "./node_modules/core-js/internals/regexp-flags.js":
9790/*!********************************************************!*\
9791  !*** ./node_modules/core-js/internals/regexp-flags.js ***!
9792  \********************************************************/
9793/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9794
9795"use strict";
9796
9797var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
9798
9799// `RegExp.prototype.flags` getter implementation
9800// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
9801module.exports = function () {
9802  var that = anObject(this);
9803  var result = '';
9804  if (that.global) result += 'g';
9805  if (that.ignoreCase) result += 'i';
9806  if (that.multiline) result += 'm';
9807  if (that.dotAll) result += 's';
9808  if (that.unicode) result += 'u';
9809  if (that.sticky) result += 'y';
9810  return result;
9811};
9812
9813
9814/***/ }),
9815
vendor: 1,321 bytes, lines 9816-9855
9816/***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js":
9817/*!*****************************************************************!*\
9818  !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***!
9819  \*****************************************************************/
9820/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9821
9822var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
9823var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9824
9825// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
9826var $RegExp = global.RegExp;
9827
9828var UNSUPPORTED_Y = fails(function () {
9829  var re = $RegExp('a', 'y');
9830  re.lastIndex = 2;
9831  return re.exec('abcd') != null;
9832});
9833
9834// UC Browser bug
9835// https://github.com/zloirock/core-js/issues/1008
9836var MISSED_STICKY = UNSUPPORTED_Y || fails(function () {
9837  return !$RegExp('a', 'y').sticky;
9838});
9839
9840var BROKEN_CARET = UNSUPPORTED_Y || fails(function () {
9841  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
9842  var re = $RegExp('^r', 'gy');
9843  re.lastIndex = 2;
9844  return re.exec('str') != null;
9845});
9846
9847module.exports = {
9848  BROKEN_CARET: BROKEN_CARET,
9849  MISSED_STICKY: MISSED_STICKY,
9850  UNSUPPORTED_Y: UNSUPPORTED_Y
9851};
9852
9853
9854/***/ }),
9855
vendor: 858 bytes, lines 9856-9875
9856/***/ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js":
9857/*!**********************************************************************!*\
9858  !*** ./node_modules/core-js/internals/regexp-unsupported-dot-all.js ***!
9859  \**********************************************************************/
9860/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9861
9862var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
9863var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9864
9865// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
9866var $RegExp = global.RegExp;
9867
9868module.exports = fails(function () {
9869  var re = $RegExp('.', 's');
9870  return !(re.dotAll && re.exec('\n') && re.flags === 's');
9871});
9872
9873
9874/***/ }),
9875
vendor: 881 bytes, lines 9876-9896
9876/***/ "./node_modules/core-js/internals/regexp-unsupported-ncg.js":
9877/*!******************************************************************!*\
9878  !*** ./node_modules/core-js/internals/regexp-unsupported-ncg.js ***!
9879  \******************************************************************/
9880/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9881
9882var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
9883var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9884
9885// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
9886var $RegExp = global.RegExp;
9887
9888module.exports = fails(function () {
9889  var re = $RegExp('(?<a>b)', 'g');
9890  return re.exec('b').groups.a !== 'b' ||
9891    'b'.replace(re, '$<a>c') !== 'bc';
9892});
9893
9894
9895/***/ }),
9896
vendor: 742 bytes, lines 9897-9916
9897/***/ "./node_modules/core-js/internals/require-object-coercible.js":
9898/*!********************************************************************!*\
9899  !*** ./node_modules/core-js/internals/require-object-coercible.js ***!
9900  \********************************************************************/
9901/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9902
9903var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9904
9905var TypeError = global.TypeError;
9906
9907// `RequireObjectCoercible` abstract operation
9908// https://tc39.es/ecma262/#sec-requireobjectcoercible
9909module.exports = function (it) {
9910  if (it == undefined) throw TypeError("Can't call method on " + it);
9911  return it;
9912};
9913
9914
9915/***/ }),
9916
vendor: 741 bytes, lines 9917-9938
9917/***/ "./node_modules/core-js/internals/set-global.js":
9918/*!******************************************************!*\
9919  !*** ./node_modules/core-js/internals/set-global.js ***!
9920  \******************************************************/
9921/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9922
9923var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
9924
9925// eslint-disable-next-line es/no-object-defineproperty -- safe
9926var defineProperty = Object.defineProperty;
9927
9928module.exports = function (key, value) {
9929  try {
9930    defineProperty(global, key, { value: value, configurable: true, writable: true });
9931  } catch (error) {
9932    global[key] = value;
9933  } return value;
9934};
9935
9936
9937/***/ }),
9938
vendor: 1,251 bytes, lines 9939-9968
9939/***/ "./node_modules/core-js/internals/set-species.js":
9940/*!*******************************************************!*\
9941  !*** ./node_modules/core-js/internals/set-species.js ***!
9942  \*******************************************************/
9943/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9944
9945"use strict";
9946
9947var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
9948var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
9949var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
9950var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
9951
9952var SPECIES = wellKnownSymbol('species');
9953
9954module.exports = function (CONSTRUCTOR_NAME) {
9955  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
9956  var defineProperty = definePropertyModule.f;
9957
9958  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
9959    defineProperty(Constructor, SPECIES, {
9960      configurable: true,
9961      get: function () { return this; }
9962    });
9963  }
9964};
9965
9966
9967/***/ }),
9968
vendor: 1,058 bytes, lines 9969-9990
9969/***/ "./node_modules/core-js/internals/set-to-string-tag.js":
9970/*!*************************************************************!*\
9971  !*** ./node_modules/core-js/internals/set-to-string-tag.js ***!
9972  \*************************************************************/
9973/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9974
9975var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
9976var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
9977var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
9978
9979var TO_STRING_TAG = wellKnownSymbol('toStringTag');
9980
9981module.exports = function (target, TAG, STATIC) {
9982  if (target && !STATIC) target = target.prototype;
9983  if (target && !hasOwn(target, TO_STRING_TAG)) {
9984    defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });
9985  }
9986};
9987
9988
9989/***/ }),
9990
vendor: 639 bytes, lines 9991-10008
9991/***/ "./node_modules/core-js/internals/shared-key.js":
9992/*!******************************************************!*\
9993  !*** ./node_modules/core-js/internals/shared-key.js ***!
9994  \******************************************************/
9995/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
9996
9997var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
9998var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
9999
10000var keys = shared('keys');
10001
10002module.exports = function (key) {
10003  return keys[key] || (keys[key] = uid(key));
10004};
10005
10006
10007/***/ }),
10008
vendor: 669 bytes, lines 10009-10025
10009/***/ "./node_modules/core-js/internals/shared-store.js":
10010/*!********************************************************!*\
10011  !*** ./node_modules/core-js/internals/shared-store.js ***!
10012  \********************************************************/
10013/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10014
10015var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10016var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
10017
10018var SHARED = '__core-js_shared__';
10019var store = global[SHARED] || setGlobal(SHARED, {});
10020
10021module.exports = store;
10022
10023
10024/***/ }),
10025
vendor: 790 bytes, lines 10026-10045
10026/***/ "./node_modules/core-js/internals/shared.js":
10027/*!**************************************************!*\
10028  !*** ./node_modules/core-js/internals/shared.js ***!
10029  \**************************************************/
10030/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10031
10032var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
10033var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
10034
10035(module.exports = function (key, value) {
10036  return store[key] || (store[key] = value !== undefined ? value : {});
10037})('versions', []).push({
10038  version: '3.20.1',
10039  mode: IS_PURE ? 'pure' : 'global',
10040  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10041});
10042
10043
10044/***/ }),
10045
vendor: 1,083 bytes, lines 10046-10068
10046/***/ "./node_modules/core-js/internals/species-constructor.js":
10047/*!***************************************************************!*\
10048  !*** ./node_modules/core-js/internals/species-constructor.js ***!
10049  \***************************************************************/
10050/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10051
10052var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
10053var aConstructor = __webpack_require__(/*! ../internals/a-constructor */ "./node_modules/core-js/internals/a-constructor.js");
10054var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
10055
10056var SPECIES = wellKnownSymbol('species');
10057
10058// `SpeciesConstructor` abstract operation
10059// https://tc39.es/ecma262/#sec-speciesconstructor
10060module.exports = function (O, defaultConstructor) {
10061  var C = anObject(O).constructor;
10062  var S;
10063  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
10064};
10065
10066
10067/***/ }),
10068
vendor: 2,047 bytes, lines 10069-10114
10069/***/ "./node_modules/core-js/internals/string-multibyte.js":
10070/*!************************************************************!*\
10071  !*** ./node_modules/core-js/internals/string-multibyte.js ***!
10072  \************************************************************/
10073/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10074
10075var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10076var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js");
10077var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
10078var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
10079
10080var charAt = uncurryThis(''.charAt);
10081var charCodeAt = uncurryThis(''.charCodeAt);
10082var stringSlice = uncurryThis(''.slice);
10083
10084var createMethod = function (CONVERT_TO_STRING) {
10085  return function ($this, pos) {
10086    var S = toString(requireObjectCoercible($this));
10087    var position = toIntegerOrInfinity(pos);
10088    var size = S.length;
10089    var first, second;
10090    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
10091    first = charCodeAt(S, position);
10092    return first < 0xD800 || first > 0xDBFF || position + 1 === size
10093      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF
10094        ? CONVERT_TO_STRING
10095          ? charAt(S, position)
10096          : first
10097        : CONVERT_TO_STRING
10098          ? stringSlice(S, position, position + 2)
10099          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
10100  };
10101};
10102
10103module.exports = {
10104  // `String.prototype.codePointAt` method
10105  // https://tc39.es/ecma262/#sec-string.prototype.codepointat
10106  codeAt: createMethod(false),
10107  // `String.prototype.at` method
10108  // https://github.com/mathiasbynens/String.prototype.at
10109  charAt: createMethod(true)
10110};
10111
10112
10113/***/ }),
10114
vendor: 1,831 bytes, lines 10115-10155
10115/***/ "./node_modules/core-js/internals/string-trim.js":
10116/*!*******************************************************!*\
10117  !*** ./node_modules/core-js/internals/string-trim.js ***!
10118  \*******************************************************/
10119/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10120
10121var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10122var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
10123var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
10124var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
10125
10126var replace = uncurryThis(''.replace);
10127var whitespace = '[' + whitespaces + ']';
10128var ltrim = RegExp('^' + whitespace + whitespace + '*');
10129var rtrim = RegExp(whitespace + whitespace + '*$');
10130
10131// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
10132var createMethod = function (TYPE) {
10133  return function ($this) {
10134    var string = toString(requireObjectCoercible($this));
10135    if (TYPE & 1) string = replace(string, ltrim, '');
10136    if (TYPE & 2) string = replace(string, rtrim, '');
10137    return string;
10138  };
10139};
10140
10141module.exports = {
10142  // `String.prototype.{ trimLeft, trimStart }` methods
10143  // https://tc39.es/ecma262/#sec-string.prototype.trimstart
10144  start: createMethod(1),
10145  // `String.prototype.{ trimRight, trimEnd }` methods
10146  // https://tc39.es/ecma262/#sec-string.prototype.trimend
10147  end: createMethod(2),
10148  // `String.prototype.trim` method
10149  // https://tc39.es/ecma262/#sec-string.prototype.trim
10150  trim: createMethod(3)
10151};
10152
10153
10154/***/ }),
10155
vendor: 4,253 bytes, lines 10156-10278
10156/***/ "./node_modules/core-js/internals/task.js":
10157/*!************************************************!*\
10158  !*** ./node_modules/core-js/internals/task.js ***!
10159  \************************************************/
10160/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10161
10162var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10163var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js");
10164var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
10165var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
10166var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
10167var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
10168var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js");
10169var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js");
10170var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
10171var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ "./node_modules/core-js/internals/engine-is-ios.js");
10172var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js");
10173
10174var set = global.setImmediate;
10175var clear = global.clearImmediate;
10176var process = global.process;
10177var Dispatch = global.Dispatch;
10178var Function = global.Function;
10179var MessageChannel = global.MessageChannel;
10180var String = global.String;
10181var counter = 0;
10182var queue = {};
10183var ONREADYSTATECHANGE = 'onreadystatechange';
10184var location, defer, channel, port;
10185
10186try {
10187  // Deno throws a ReferenceError on `location` access without `--location` flag
10188  location = global.location;
10189} catch (error) { /* empty */ }
10190
10191var run = function (id) {
10192  if (hasOwn(queue, id)) {
10193    var fn = queue[id];
10194    delete queue[id];
10195    fn();
10196  }
10197};
10198
10199var runner = function (id) {
10200  return function () {
10201    run(id);
10202  };
10203};
10204
10205var listener = function (event) {
10206  run(event.data);
10207};
10208
10209var post = function (id) {
10210  // old engines have not location.origin
10211  global.postMessage(String(id), location.protocol + '//' + location.host);
10212};
10213
10214// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
10215if (!set || !clear) {
10216  set = function setImmediate(fn) {
10217    var args = arraySlice(arguments, 1);
10218    queue[++counter] = function () {
10219      apply(isCallable(fn) ? fn : Function(fn), undefined, args);
10220    };
10221    defer(counter);
10222    return counter;
10223  };
10224  clear = function clearImmediate(id) {
10225    delete queue[id];
10226  };
10227  // Node.js 0.8-
10228  if (IS_NODE) {
10229    defer = function (id) {
10230      process.nextTick(runner(id));
10231    };
10232  // Sphere (JS game engine) Dispatch API
10233  } else if (Dispatch && Dispatch.now) {
10234    defer = function (id) {
10235      Dispatch.now(runner(id));
10236    };
10237  // Browsers with MessageChannel, includes WebWorkers
10238  // except iOS - https://github.com/zloirock/core-js/issues/624
10239  } else if (MessageChannel && !IS_IOS) {
10240    channel = new MessageChannel();
10241    port = channel.port2;
10242    channel.port1.onmessage = listener;
10243    defer = bind(port.postMessage, port);
10244  // Browsers with postMessage, skip WebWorkers
10245  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
10246  } else if (
10247    global.addEventListener &&
10248    isCallable(global.postMessage) &&
10249    !global.importScripts &&
10250    location && location.protocol !== 'file:' &&
10251    !fails(post)
10252  ) {
10253    defer = post;
10254    global.addEventListener('message', listener, false);
10255  // IE8-
10256  } else if (ONREADYSTATECHANGE in createElement('script')) {
10257    defer = function (id) {
10258      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
10259        html.removeChild(this);
10260        run(id);
10261      };
10262    };
10263  // Rest old browsers
10264  } else {
10265    defer = function (id) {
10266      setTimeout(runner(id), 0);
10267    };
10268  }
10269}
10270
10271module.exports = {
10272  set: set,
10273  clear: clear
10274};
10275
10276
10277/***/ }),
10278
vendor: 624 bytes, lines 10279-10293
10279/***/ "./node_modules/core-js/internals/this-number-value.js":
10280/*!*************************************************************!*\
10281  !*** ./node_modules/core-js/internals/this-number-value.js ***!
10282  \*************************************************************/
10283/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10284
10285var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10286
10287// `thisNumberValue` abstract operation
10288// https://tc39.es/ecma262/#sec-thisnumbervalue
10289module.exports = uncurryThis(1.0.valueOf);
10290
10291
10292/***/ }),
10293
vendor: 899 bytes, lines 10294-10315
10294/***/ "./node_modules/core-js/internals/to-absolute-index.js":
10295/*!*************************************************************!*\
10296  !*** ./node_modules/core-js/internals/to-absolute-index.js ***!
10297  \*************************************************************/
10298/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10299
10300var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js");
10301
10302var max = Math.max;
10303var min = Math.min;
10304
10305// Helper for a popular repeating case of the spec:
10306// Let integer be ? ToInteger(index).
10307// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
10308module.exports = function (index, length) {
10309  var integer = toIntegerOrInfinity(index);
10310  return integer < 0 ? max(integer + length, 0) : min(integer, length);
10311};
10312
10313
10314/***/ }),
10315
vendor: 785 bytes, lines 10316-10332
10316/***/ "./node_modules/core-js/internals/to-indexed-object.js":
10317/*!*************************************************************!*\
10318  !*** ./node_modules/core-js/internals/to-indexed-object.js ***!
10319  \*************************************************************/
10320/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10321
10322// toObject with fallback for non-array-like ES3 strings
10323var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
10324var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
10325
10326module.exports = function (it) {
10327  return IndexedObject(requireObjectCoercible(it));
10328};
10329
10330
10331/***/ }),
10332
vendor: 674 bytes, lines 10333-10352
10333/***/ "./node_modules/core-js/internals/to-integer-or-infinity.js":
10334/*!******************************************************************!*\
10335  !*** ./node_modules/core-js/internals/to-integer-or-infinity.js ***!
10336  \******************************************************************/
10337/***/ (function(module) {
10338
10339var ceil = Math.ceil;
10340var floor = Math.floor;
10341
10342// `ToIntegerOrInfinity` abstract operation
10343// https://tc39.es/ecma262/#sec-tointegerorinfinity
10344module.exports = function (argument) {
10345  var number = +argument;
10346  // eslint-disable-next-line no-self-compare -- safe
10347  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);
10348};
10349
10350
10351/***/ }),
10352
vendor: 725 bytes, lines 10353-10371
10353/***/ "./node_modules/core-js/internals/to-length.js":
10354/*!*****************************************************!*\
10355  !*** ./node_modules/core-js/internals/to-length.js ***!
10356  \*****************************************************/
10357/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10358
10359var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js");
10360
10361var min = Math.min;
10362
10363// `ToLength` abstract operation
10364// https://tc39.es/ecma262/#sec-tolength
10365module.exports = function (argument) {
10366  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
10367};
10368
10369
10370/***/ }),
10371
vendor: 781 bytes, lines 10372-10391
10372/***/ "./node_modules/core-js/internals/to-object.js":
10373/*!*****************************************************!*\
10374  !*** ./node_modules/core-js/internals/to-object.js ***!
10375  \*****************************************************/
10376/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10377
10378var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10379var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
10380
10381var Object = global.Object;
10382
10383// `ToObject` abstract operation
10384// https://tc39.es/ecma262/#sec-toobject
10385module.exports = function (argument) {
10386  return Object(requireObjectCoercible(argument));
10387};
10388
10389
10390/***/ }),
10391
vendor: 1,858 bytes, lines 10392-10427
10392/***/ "./node_modules/core-js/internals/to-primitive.js":
10393/*!********************************************************!*\
10394  !*** ./node_modules/core-js/internals/to-primitive.js ***!
10395  \********************************************************/
10396/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10397
10398var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10399var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
10400var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
10401var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js");
10402var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
10403var ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ "./node_modules/core-js/internals/ordinary-to-primitive.js");
10404var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
10405
10406var TypeError = global.TypeError;
10407var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
10408
10409// `ToPrimitive` abstract operation
10410// https://tc39.es/ecma262/#sec-toprimitive
10411module.exports = function (input, pref) {
10412  if (!isObject(input) || isSymbol(input)) return input;
10413  var exoticToPrim = getMethod(input, TO_PRIMITIVE);
10414  var result;
10415  if (exoticToPrim) {
10416    if (pref === undefined) pref = 'default';
10417    result = call(exoticToPrim, input, pref);
10418    if (!isObject(result) || isSymbol(result)) return result;
10419    throw TypeError("Can't convert object to primitive value");
10420  }
10421  if (pref === undefined) pref = 'number';
10422  return ordinaryToPrimitive(input, pref);
10423};
10424
10425
10426/***/ }),
10427
vendor: 794 bytes, lines 10428-10446
10428/***/ "./node_modules/core-js/internals/to-property-key.js":
10429/*!***********************************************************!*\
10430  !*** ./node_modules/core-js/internals/to-property-key.js ***!
10431  \***********************************************************/
10432/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10433
10434var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
10435var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js");
10436
10437// `ToPropertyKey` abstract operation
10438// https://tc39.es/ecma262/#sec-topropertykey
10439module.exports = function (argument) {
10440  var key = toPrimitive(argument, 'string');
10441  return isSymbol(key) ? key : key + '';
10442};
10443
10444
10445/***/ }),
10446
vendor: 649 bytes, lines 10447-10464
10447/***/ "./node_modules/core-js/internals/to-string-tag-support.js":
10448/*!*****************************************************************!*\
10449  !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!
10450  \*****************************************************************/
10451/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10452
10453var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
10454
10455var TO_STRING_TAG = wellKnownSymbol('toStringTag');
10456var test = {};
10457
10458test[TO_STRING_TAG] = 'z';
10459
10460module.exports = String(test) === '[object z]';
10461
10462
10463/***/ }),
10464
vendor: 734 bytes, lines 10465-10483
10465/***/ "./node_modules/core-js/internals/to-string.js":
10466/*!*****************************************************!*\
10467  !*** ./node_modules/core-js/internals/to-string.js ***!
10468  \*****************************************************/
10469/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10470
10471var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10472var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
10473
10474var String = global.String;
10475
10476module.exports = function (argument) {
10477  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
10478  return String(argument);
10479};
10480
10481
10482/***/ }),
10483
vendor: 595 bytes, lines 10484-10504
10484/***/ "./node_modules/core-js/internals/try-to-string.js":
10485/*!*********************************************************!*\
10486  !*** ./node_modules/core-js/internals/try-to-string.js ***!
10487  \*********************************************************/
10488/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10489
10490var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10491
10492var String = global.String;
10493
10494module.exports = function (argument) {
10495  try {
10496    return String(argument);
10497  } catch (error) {
10498    return 'Object';
10499  }
10500};
10501
10502
10503/***/ }),
10504
vendor: 649 bytes, lines 10505-10523
10505/***/ "./node_modules/core-js/internals/uid.js":
10506/*!***********************************************!*\
10507  !*** ./node_modules/core-js/internals/uid.js ***!
10508  \***********************************************/
10509/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10510
10511var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10512
10513var id = 0;
10514var postfix = Math.random();
10515var toString = uncurryThis(1.0.toString);
10516
10517module.exports = function (key) {
10518  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
10519};
10520
10521
10522/***/ }),
10523
vendor: 627 bytes, lines 10524-10539
10524/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js":
10525/*!*************************************************************!*\
10526  !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!
10527  \*************************************************************/
10528/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10529
10530/* eslint-disable es/no-symbol -- required for testing */
10531var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
10532
10533module.exports = NATIVE_SYMBOL
10534  && !Symbol.sham
10535  && typeof Symbol.iterator == 'symbol';
10536
10537
10538/***/ }),
10539
vendor: 550 bytes, lines 10540-10552
10540/***/ "./node_modules/core-js/internals/well-known-symbol-wrapped.js":
10541/*!*********************************************************************!*\
10542  !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***!
10543  \*********************************************************************/
10544/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
10545
10546var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
10547
10548exports.f = wellKnownSymbol;
10549
10550
10551/***/ }),
10552
vendor: 1,800 bytes, lines 10553-10586
10553/***/ "./node_modules/core-js/internals/well-known-symbol.js":
10554/*!*************************************************************!*\
10555  !*** ./node_modules/core-js/internals/well-known-symbol.js ***!
10556  \*************************************************************/
10557/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10558
10559var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10560var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
10561var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
10562var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
10563var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
10564var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js");
10565
10566var WellKnownSymbolsStore = shared('wks');
10567var Symbol = global.Symbol;
10568var symbolFor = Symbol && Symbol['for'];
10569var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
10570
10571module.exports = function (name) {
10572  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
10573    var description = 'Symbol.' + name;
10574    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {
10575      WellKnownSymbolsStore[name] = Symbol[name];
10576    } else if (USE_SYMBOL_AS_UID && symbolFor) {
10577      WellKnownSymbolsStore[name] = symbolFor(description);
10578    } else {
10579      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
10580    }
10581  } return WellKnownSymbolsStore[name];
10582};
10583
10584
10585/***/ }),
10586
vendor: 502 bytes, lines 10587-10599
10587/***/ "./node_modules/core-js/internals/whitespaces.js":
10588/*!*******************************************************!*\
10589  !*** ./node_modules/core-js/internals/whitespaces.js ***!
10590  \*******************************************************/
10591/***/ (function(module) {
10592
10593// a string of all valid unicode whitespaces
10594module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
10595  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
10596
10597
10598/***/ }),
10599
vendor: 1,197 bytes, lines 10600-10625
10600/***/ "./node_modules/core-js/modules/es.array.filter.js":
10601/*!*********************************************************!*\
10602  !*** ./node_modules/core-js/modules/es.array.filter.js ***!
10603  \*********************************************************/
10604/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10605
10606"use strict";
10607
10608var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10609var $filter = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").filter);
10610var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
10611
10612var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
10613
10614// `Array.prototype.filter` method
10615// https://tc39.es/ecma262/#sec-array.prototype.filter
10616// with adding support of @@species
10617$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
10618  filter: function filter(callbackfn /* , thisArg */) {
10619    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
10620  }
10621});
10622
10623
10624/***/ }),
10625
vendor: 1,258 bytes, lines 10626-10657
10626/***/ "./node_modules/core-js/modules/es.array.find.js":
10627/*!*******************************************************!*\
10628  !*** ./node_modules/core-js/modules/es.array.find.js ***!
10629  \*******************************************************/
10630/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10631
10632"use strict";
10633
10634var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10635var $find = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").find);
10636var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js");
10637
10638var FIND = 'find';
10639var SKIPS_HOLES = true;
10640
10641// Shouldn't skip holes
10642if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
10643
10644// `Array.prototype.find` method
10645// https://tc39.es/ecma262/#sec-array.prototype.find
10646$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
10647  find: function find(callbackfn /* , that = undefined */) {
10648    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
10649  }
10650});
10651
10652// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
10653addToUnscopables(FIND);
10654
10655
10656/***/ }),
10657
vendor: 851 bytes, lines 10658-10678
10658/***/ "./node_modules/core-js/modules/es.array.for-each.js":
10659/*!***********************************************************!*\
10660  !*** ./node_modules/core-js/modules/es.array.for-each.js ***!
10661  \***********************************************************/
10662/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10663
10664"use strict";
10665
10666var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10667var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js");
10668
10669// `Array.prototype.forEach` method
10670// https://tc39.es/ecma262/#sec-array.prototype.foreach
10671// eslint-disable-next-line es/no-array-prototype-foreach -- safe
10672$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {
10673  forEach: forEach
10674});
10675
10676
10677/***/ }),
10678
vendor: 1,061 bytes, lines 10679-10702
10679/***/ "./node_modules/core-js/modules/es.array.from.js":
10680/*!*******************************************************!*\
10681  !*** ./node_modules/core-js/modules/es.array.from.js ***!
10682  \*******************************************************/
10683/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10684
10685var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10686var from = __webpack_require__(/*! ../internals/array-from */ "./node_modules/core-js/internals/array-from.js");
10687var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ "./node_modules/core-js/internals/check-correctness-of-iteration.js");
10688
10689var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
10690  // eslint-disable-next-line es/no-array-from -- required for testing
10691  Array.from(iterable);
10692});
10693
10694// `Array.from` method
10695// https://tc39.es/ecma262/#sec-array.from
10696$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
10697  from: from
10698});
10699
10700
10701/***/ }),
10702
vendor: 1,617 bytes, lines 10703-10736
10703/***/ "./node_modules/core-js/modules/es.array.index-of.js":
10704/*!***********************************************************!*\
10705  !*** ./node_modules/core-js/modules/es.array.index-of.js ***!
10706  \***********************************************************/
10707/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10708
10709"use strict";
10710
10711/* eslint-disable es/no-array-prototype-indexof -- required for testing */
10712var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10713var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10714var $IndexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf);
10715var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
10716
10717var un$IndexOf = uncurryThis([].indexOf);
10718
10719var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;
10720var STRICT_METHOD = arrayMethodIsStrict('indexOf');
10721
10722// `Array.prototype.indexOf` method
10723// https://tc39.es/ecma262/#sec-array.prototype.indexof
10724$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
10725  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
10726    var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
10727    return NEGATIVE_ZERO
10728      // convert -0 to +0
10729      ? un$IndexOf(this, searchElement, fromIndex) || 0
10730      : $IndexOf(this, searchElement, fromIndex);
10731  }
10732});
10733
10734
10735/***/ }),
10736
vendor: 706 bytes, lines 10737-10754
10737/***/ "./node_modules/core-js/modules/es.array.is-array.js":
10738/*!***********************************************************!*\
10739  !*** ./node_modules/core-js/modules/es.array.is-array.js ***!
10740  \***********************************************************/
10741/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10742
10743var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10744var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
10745
10746// `Array.isArray` method
10747// https://tc39.es/ecma262/#sec-array.isarray
10748$({ target: 'Array', stat: true }, {
10749  isArray: isArray
10750});
10751
10752
10753/***/ }),
10754
vendor: 3,419 bytes, lines 10755-10826
10755/***/ "./node_modules/core-js/modules/es.array.iterator.js":
10756/*!***********************************************************!*\
10757  !*** ./node_modules/core-js/modules/es.array.iterator.js ***!
10758  \***********************************************************/
10759/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10760
10761"use strict";
10762
10763var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
10764var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js");
10765var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js");
10766var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
10767var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
10768var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js");
10769var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
10770var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
10771
10772var ARRAY_ITERATOR = 'Array Iterator';
10773var setInternalState = InternalStateModule.set;
10774var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
10775
10776// `Array.prototype.entries` method
10777// https://tc39.es/ecma262/#sec-array.prototype.entries
10778// `Array.prototype.keys` method
10779// https://tc39.es/ecma262/#sec-array.prototype.keys
10780// `Array.prototype.values` method
10781// https://tc39.es/ecma262/#sec-array.prototype.values
10782// `Array.prototype[@@iterator]` method
10783// https://tc39.es/ecma262/#sec-array.prototype-@@iterator
10784// `CreateArrayIterator` internal method
10785// https://tc39.es/ecma262/#sec-createarrayiterator
10786module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
10787  setInternalState(this, {
10788    type: ARRAY_ITERATOR,
10789    target: toIndexedObject(iterated), // target
10790    index: 0,                          // next index
10791    kind: kind                         // kind
10792  });
10793// `%ArrayIteratorPrototype%.next` method
10794// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
10795}, function () {
10796  var state = getInternalState(this);
10797  var target = state.target;
10798  var kind = state.kind;
10799  var index = state.index++;
10800  if (!target || index >= target.length) {
10801    state.target = undefined;
10802    return { value: undefined, done: true };
10803  }
10804  if (kind == 'keys') return { value: index, done: false };
10805  if (kind == 'values') return { value: target[index], done: false };
10806  return { value: [index, target[index]], done: false };
10807}, 'values');
10808
10809// argumentsList[@@iterator] is %ArrayProto_values%
10810// https://tc39.es/ecma262/#sec-createunmappedargumentsobject
10811// https://tc39.es/ecma262/#sec-createmappedargumentsobject
10812var values = Iterators.Arguments = Iterators.Array;
10813
10814// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
10815addToUnscopables('keys');
10816addToUnscopables('values');
10817addToUnscopables('entries');
10818
10819// V8 ~ Chrome 45- bug
10820if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {
10821  defineProperty(values, 'name', { value: 'values' });
10822} catch (error) { /* empty */ }
10823
10824
10825/***/ }),
10826
vendor: 3,342 bytes, lines 10827-10887
10827/***/ "./node_modules/core-js/modules/es.array.slice.js":
10828/*!********************************************************!*\
10829  !*** ./node_modules/core-js/modules/es.array.slice.js ***!
10830  \********************************************************/
10831/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10832
10833"use strict";
10834
10835var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10836var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10837var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
10838var isConstructor = __webpack_require__(/*! ../internals/is-constructor */ "./node_modules/core-js/internals/is-constructor.js");
10839var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
10840var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
10841var lengthOfArrayLike = __webpack_require__(/*! ../internals/length-of-array-like */ "./node_modules/core-js/internals/length-of-array-like.js");
10842var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
10843var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js");
10844var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
10845var arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ "./node_modules/core-js/internals/array-method-has-species-support.js");
10846var un$Slice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js");
10847
10848var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
10849
10850var SPECIES = wellKnownSymbol('species');
10851var Array = global.Array;
10852var max = Math.max;
10853
10854// `Array.prototype.slice` method
10855// https://tc39.es/ecma262/#sec-array.prototype.slice
10856// fallback for not array-like ES3 strings and DOM objects
10857$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
10858  slice: function slice(start, end) {
10859    var O = toIndexedObject(this);
10860    var length = lengthOfArrayLike(O);
10861    var k = toAbsoluteIndex(start, length);
10862    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
10863    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
10864    var Constructor, result, n;
10865    if (isArray(O)) {
10866      Constructor = O.constructor;
10867      // cross-realm fallback
10868      if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {
10869        Constructor = undefined;
10870      } else if (isObject(Constructor)) {
10871        Constructor = Constructor[SPECIES];
10872        if (Constructor === null) Constructor = undefined;
10873      }
10874      if (Constructor === Array || Constructor === undefined) {
10875        return un$Slice(O, k, fin);
10876      }
10877    }
10878    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
10879    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
10880    result.length = n;
10881    return result;
10882  }
10883});
10884
10885
10886/***/ }),
10887
vendor: 925 bytes, lines 10888-10911
10888/***/ "./node_modules/core-js/modules/es.date.now.js":
10889/*!*****************************************************!*\
10890  !*** ./node_modules/core-js/modules/es.date.now.js ***!
10891  \*****************************************************/
10892/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10893
10894var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
10895var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10896var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10897
10898var Date = global.Date;
10899var getTime = uncurryThis(Date.prototype.getTime);
10900
10901// `Date.now` method
10902// https://tc39.es/ecma262/#sec-date.now
10903$({ target: 'Date', stat: true }, {
10904  now: function now() {
10905    return getTime(new Date());
10906  }
10907});
10908
10909
10910/***/ }),
10911
vendor: 1,189 bytes, lines 10912-10939
10912/***/ "./node_modules/core-js/modules/es.date.to-string.js":
10913/*!***********************************************************!*\
10914  !*** ./node_modules/core-js/modules/es.date.to-string.js ***!
10915  \***********************************************************/
10916/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10917
10918var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10919var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
10920
10921var DatePrototype = Date.prototype;
10922var INVALID_DATE = 'Invalid Date';
10923var TO_STRING = 'toString';
10924var un$DateToString = uncurryThis(DatePrototype[TO_STRING]);
10925var getTime = uncurryThis(DatePrototype.getTime);
10926
10927// `Date.prototype.toString` method
10928// https://tc39.es/ecma262/#sec-date.prototype.tostring
10929if (String(new Date(NaN)) != INVALID_DATE) {
10930  redefine(DatePrototype, TO_STRING, function toString() {
10931    var value = getTime(this);
10932    // eslint-disable-next-line no-self-compare -- NaN check
10933    return value === value ? un$DateToString(this) : INVALID_DATE;
10934  });
10935}
10936
10937
10938/***/ }),
10939
vendor: 1,536 bytes, lines 10940-10974
10940/***/ "./node_modules/core-js/modules/es.function.name.js":
10941/*!**********************************************************!*\
10942  !*** ./node_modules/core-js/modules/es.function.name.js ***!
10943  \**********************************************************/
10944/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10945
10946var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
10947var FUNCTION_NAME_EXISTS = (__webpack_require__(/*! ../internals/function-name */ "./node_modules/core-js/internals/function-name.js").EXISTS);
10948var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10949var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
10950
10951var FunctionPrototype = Function.prototype;
10952var functionToString = uncurryThis(FunctionPrototype.toString);
10953var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/;
10954var regExpExec = uncurryThis(nameRE.exec);
10955var NAME = 'name';
10956
10957// Function instances `.name` property
10958// https://tc39.es/ecma262/#sec-function-instances-name
10959if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
10960  defineProperty(FunctionPrototype, NAME, {
10961    configurable: true,
10962    get: function () {
10963      try {
10964        return regExpExec(nameRE, functionToString(this))[1];
10965      } catch (error) {
10966        return '';
10967      }
10968    }
10969  });
10970}
10971
10972
10973/***/ }),
10974
vendor: 5,511 bytes, lines 10975-11073
10975/***/ "./node_modules/core-js/modules/es.number.constructor.js":
10976/*!***************************************************************!*\
10977  !*** ./node_modules/core-js/modules/es.number.constructor.js ***!
10978  \***************************************************************/
10979/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
10980
10981"use strict";
10982
10983var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
10984var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
10985var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
10986var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
10987var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
10988var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
10989var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "./node_modules/core-js/internals/inherit-if-required.js");
10990var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
10991var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js");
10992var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
10993var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
10994var getOwnPropertyNames = (__webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f);
10995var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
10996var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
10997var thisNumberValue = __webpack_require__(/*! ../internals/this-number-value */ "./node_modules/core-js/internals/this-number-value.js");
10998var trim = (__webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim);
10999
11000var NUMBER = 'Number';
11001var NativeNumber = global[NUMBER];
11002var NumberPrototype = NativeNumber.prototype;
11003var TypeError = global.TypeError;
11004var arraySlice = uncurryThis(''.slice);
11005var charCodeAt = uncurryThis(''.charCodeAt);
11006
11007// `ToNumeric` abstract operation
11008// https://tc39.es/ecma262/#sec-tonumeric
11009var toNumeric = function (value) {
11010  var primValue = toPrimitive(value, 'number');
11011  return typeof primValue == 'bigint' ? primValue : toNumber(primValue);
11012};
11013
11014// `ToNumber` abstract operation
11015// https://tc39.es/ecma262/#sec-tonumber
11016var toNumber = function (argument) {
11017  var it = toPrimitive(argument, 'number');
11018  var first, third, radix, maxCode, digits, length, index, code;
11019  if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');
11020  if (typeof it == 'string' && it.length > 2) {
11021    it = trim(it);
11022    first = charCodeAt(it, 0);
11023    if (first === 43 || first === 45) {
11024      third = charCodeAt(it, 2);
11025      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
11026    } else if (first === 48) {
11027      switch (charCodeAt(it, 1)) {
11028        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i
11029        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i
11030        default: return +it;
11031      }
11032      digits = arraySlice(it, 2);
11033      length = digits.length;
11034      for (index = 0; index < length; index++) {
11035        code = charCodeAt(digits, index);
11036        // parseInt parses a string to a first unavailable symbol
11037        // but ToNumber should return NaN if a string contains unavailable symbols
11038        if (code < 48 || code > maxCode) return NaN;
11039      } return parseInt(digits, radix);
11040    }
11041  } return +it;
11042};
11043
11044// `Number` constructor
11045// https://tc39.es/ecma262/#sec-number-constructor
11046if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
11047  var NumberWrapper = function Number(value) {
11048    var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));
11049    var dummy = this;
11050    // check on 1..constructor(foo) case
11051    return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })
11052      ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;
11053  };
11054  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
11055    // ES3:
11056    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
11057    // ES2015 (in case, if modules with ES2015 Number statics required before):
11058    'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +
11059    // ESNext
11060    'fromString,range'
11061  ).split(','), j = 0, key; keys.length > j; j++) {
11062    if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {
11063      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
11064    }
11065  }
11066  NumberWrapper.prototype = NumberPrototype;
11067  NumberPrototype.constructor = NumberWrapper;
11068  redefine(global, NUMBER, NumberWrapper);
11069}
11070
11071
11072/***/ }),
11073
vendor: 816 bytes, lines 11074-11092
11074/***/ "./node_modules/core-js/modules/es.object.assign.js":
11075/*!**********************************************************!*\
11076  !*** ./node_modules/core-js/modules/es.object.assign.js ***!
11077  \**********************************************************/
11078/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11079
11080var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11081var assign = __webpack_require__(/*! ../internals/object-assign */ "./node_modules/core-js/internals/object-assign.js");
11082
11083// `Object.assign` method
11084// https://tc39.es/ecma262/#sec-object.assign
11085// eslint-disable-next-line es/no-object-assign -- required for testing
11086$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
11087  assign: assign
11088});
11089
11090
11091/***/ }),
11092
vendor: 960 bytes, lines 11093-11111
11093/***/ "./node_modules/core-js/modules/es.object.to-string.js":
11094/*!*************************************************************!*\
11095  !*** ./node_modules/core-js/modules/es.object.to-string.js ***!
11096  \*************************************************************/
11097/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11098
11099var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
11100var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
11101var toString = __webpack_require__(/*! ../internals/object-to-string */ "./node_modules/core-js/internals/object-to-string.js");
11102
11103// `Object.prototype.toString` method
11104// https://tc39.es/ecma262/#sec-object.prototype.tostring
11105if (!TO_STRING_TAG_SUPPORT) {
11106  redefine(Object.prototype, 'toString', toString, { unsafe: true });
11107}
11108
11109
11110/***/ }),
11111
vendor: 746 bytes, lines 11112-11129
11112/***/ "./node_modules/core-js/modules/es.parse-float.js":
11113/*!********************************************************!*\
11114  !*** ./node_modules/core-js/modules/es.parse-float.js ***!
11115  \********************************************************/
11116/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11117
11118var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11119var $parseFloat = __webpack_require__(/*! ../internals/number-parse-float */ "./node_modules/core-js/internals/number-parse-float.js");
11120
11121// `parseFloat` method
11122// https://tc39.es/ecma262/#sec-parsefloat-string
11123$({ global: true, forced: parseFloat != $parseFloat }, {
11124  parseFloat: $parseFloat
11125});
11126
11127
11128/***/ }),
11129
vendor: 726 bytes, lines 11130-11147
11130/***/ "./node_modules/core-js/modules/es.parse-int.js":
11131/*!******************************************************!*\
11132  !*** ./node_modules/core-js/modules/es.parse-int.js ***!
11133  \******************************************************/
11134/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11135
11136var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11137var $parseInt = __webpack_require__(/*! ../internals/number-parse-int */ "./node_modules/core-js/internals/number-parse-int.js");
11138
11139// `parseInt` method
11140// https://tc39.es/ecma262/#sec-parseint-string-radix
11141$({ global: true, forced: parseInt != $parseInt }, {
11142  parseInt: $parseInt
11143});
11144
11145
11146/***/ }),
11147
vendor: 2,679 bytes, lines 11148-11198
11148/***/ "./node_modules/core-js/modules/es.promise.finally.js":
11149/*!************************************************************!*\
11150  !*** ./node_modules/core-js/modules/es.promise.finally.js ***!
11151  \************************************************************/
11152/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11153
11154"use strict";
11155
11156var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11157var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
11158var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ "./node_modules/core-js/internals/native-promise-constructor.js");
11159var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
11160var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
11161var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
11162var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js");
11163var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ "./node_modules/core-js/internals/promise-resolve.js");
11164var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
11165
11166// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
11167var NON_GENERIC = !!NativePromise && fails(function () {
11168  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });
11169});
11170
11171// `Promise.prototype.finally` method
11172// https://tc39.es/ecma262/#sec-promise.prototype.finally
11173$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
11174  'finally': function (onFinally) {
11175    var C = speciesConstructor(this, getBuiltIn('Promise'));
11176    var isFunction = isCallable(onFinally);
11177    return this.then(
11178      isFunction ? function (x) {
11179        return promiseResolve(C, onFinally()).then(function () { return x; });
11180      } : onFinally,
11181      isFunction ? function (e) {
11182        return promiseResolve(C, onFinally()).then(function () { throw e; });
11183      } : onFinally
11184    );
11185  }
11186});
11187
11188// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
11189if (!IS_PURE && isCallable(NativePromise)) {
11190  var method = getBuiltIn('Promise').prototype['finally'];
11191  if (NativePromise.prototype['finally'] !== method) {
11192    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
11193  }
11194}
11195
11196
11197/***/ }),
11198
vendor: 16,828 bytes, lines 11199-11610
11199/***/ "./node_modules/core-js/modules/es.promise.js":
11200/*!****************************************************!*\
11201  !*** ./node_modules/core-js/modules/es.promise.js ***!
11202  \****************************************************/
11203/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11204
11205"use strict";
11206
11207var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11208var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
11209var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
11210var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
11211var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
11212var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ "./node_modules/core-js/internals/native-promise-constructor.js");
11213var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
11214var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js");
11215var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js");
11216var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
11217var setSpecies = __webpack_require__(/*! ../internals/set-species */ "./node_modules/core-js/internals/set-species.js");
11218var aCallable = __webpack_require__(/*! ../internals/a-callable */ "./node_modules/core-js/internals/a-callable.js");
11219var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
11220var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
11221var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js");
11222var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
11223var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js");
11224var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ "./node_modules/core-js/internals/check-correctness-of-iteration.js");
11225var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js");
11226var task = (__webpack_require__(/*! ../internals/task */ "./node_modules/core-js/internals/task.js").set);
11227var microtask = __webpack_require__(/*! ../internals/microtask */ "./node_modules/core-js/internals/microtask.js");
11228var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ "./node_modules/core-js/internals/promise-resolve.js");
11229var hostReportErrors = __webpack_require__(/*! ../internals/host-report-errors */ "./node_modules/core-js/internals/host-report-errors.js");
11230var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ "./node_modules/core-js/internals/new-promise-capability.js");
11231var perform = __webpack_require__(/*! ../internals/perform */ "./node_modules/core-js/internals/perform.js");
11232var Queue = __webpack_require__(/*! ../internals/queue */ "./node_modules/core-js/internals/queue.js");
11233var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
11234var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
11235var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
11236var IS_BROWSER = __webpack_require__(/*! ../internals/engine-is-browser */ "./node_modules/core-js/internals/engine-is-browser.js");
11237var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ "./node_modules/core-js/internals/engine-is-node.js");
11238var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
11239
11240var SPECIES = wellKnownSymbol('species');
11241var PROMISE = 'Promise';
11242
11243var getInternalState = InternalStateModule.getterFor(PROMISE);
11244var setInternalState = InternalStateModule.set;
11245var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
11246var NativePromisePrototype = NativePromise && NativePromise.prototype;
11247var PromiseConstructor = NativePromise;
11248var PromisePrototype = NativePromisePrototype;
11249var TypeError = global.TypeError;
11250var document = global.document;
11251var process = global.process;
11252var newPromiseCapability = newPromiseCapabilityModule.f;
11253var newGenericPromiseCapability = newPromiseCapability;
11254
11255var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
11256var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
11257var UNHANDLED_REJECTION = 'unhandledrejection';
11258var REJECTION_HANDLED = 'rejectionhandled';
11259var PENDING = 0;
11260var FULFILLED = 1;
11261var REJECTED = 2;
11262var HANDLED = 1;
11263var UNHANDLED = 2;
11264var SUBCLASSING = false;
11265
11266var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
11267
11268var FORCED = isForced(PROMISE, function () {
11269  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);
11270  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);
11271  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
11272  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
11273  // We can't detect it synchronously, so just check versions
11274  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
11275  // We need Promise#finally in the pure version for preventing prototype pollution
11276  if (IS_PURE && !PromisePrototype['finally']) return true;
11277  // We can't use @@species feature detection in V8 since it causes
11278  // deoptimization and performance degradation
11279  // https://github.com/zloirock/core-js/issues/679
11280  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;
11281  // Detect correctness of subclassing with @@species support
11282  var promise = new PromiseConstructor(function (resolve) { resolve(1); });
11283  var FakePromise = function (exec) {
11284    exec(function () { /* empty */ }, function () { /* empty */ });
11285  };
11286  var constructor = promise.constructor = {};
11287  constructor[SPECIES] = FakePromise;
11288  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;
11289  if (!SUBCLASSING) return true;
11290  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
11291  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;
11292});
11293
11294var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
11295  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });
11296});
11297
11298// helpers
11299var isThenable = function (it) {
11300  var then;
11301  return isObject(it) && isCallable(then = it.then) ? then : false;
11302};
11303
11304var callReaction = function (reaction, state) {
11305  var value = state.value;
11306  var ok = state.state == FULFILLED;
11307  var handler = ok ? reaction.ok : reaction.fail;
11308  var resolve = reaction.resolve;
11309  var reject = reaction.reject;
11310  var domain = reaction.domain;
11311  var result, then, exited;
11312  try {
11313    if (handler) {
11314      if (!ok) {
11315        if (state.rejection === UNHANDLED) onHandleUnhandled(state);
11316        state.rejection = HANDLED;
11317      }
11318      if (handler === true) result = value;
11319      else {
11320        if (domain) domain.enter();
11321        result = handler(value); // can throw
11322        if (domain) {
11323          domain.exit();
11324          exited = true;
11325        }
11326      }
11327      if (result === reaction.promise) {
11328        reject(TypeError('Promise-chain cycle'));
11329      } else if (then = isThenable(result)) {
11330        call(then, result, resolve, reject);
11331      } else resolve(result);
11332    } else reject(value);
11333  } catch (error) {
11334    if (domain && !exited) domain.exit();
11335    reject(error);
11336  }
11337};
11338
11339var notify = function (state, isReject) {
11340  if (state.notified) return;
11341  state.notified = true;
11342  microtask(function () {
11343    var reactions = state.reactions;
11344    var reaction;
11345    while (reaction = reactions.get()) {
11346      callReaction(reaction, state);
11347    }
11348    state.notified = false;
11349    if (isReject && !state.rejection) onUnhandled(state);
11350  });
11351};
11352
11353var dispatchEvent = function (name, promise, reason) {
11354  var event, handler;
11355  if (DISPATCH_EVENT) {
11356    event = document.createEvent('Event');
11357    event.promise = promise;
11358    event.reason = reason;
11359    event.initEvent(name, false, true);
11360    global.dispatchEvent(event);
11361  } else event = { promise: promise, reason: reason };
11362  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);
11363  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
11364};
11365
11366var onUnhandled = function (state) {
11367  call(task, global, function () {
11368    var promise = state.facade;
11369    var value = state.value;
11370    var IS_UNHANDLED = isUnhandled(state);
11371    var result;
11372    if (IS_UNHANDLED) {
11373      result = perform(function () {
11374        if (IS_NODE) {
11375          process.emit('unhandledRejection', value, promise);
11376        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
11377      });
11378      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
11379      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
11380      if (result.error) throw result.value;
11381    }
11382  });
11383};
11384
11385var isUnhandled = function (state) {
11386  return state.rejection !== HANDLED && !state.parent;
11387};
11388
11389var onHandleUnhandled = function (state) {
11390  call(task, global, function () {
11391    var promise = state.facade;
11392    if (IS_NODE) {
11393      process.emit('rejectionHandled', promise);
11394    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
11395  });
11396};
11397
11398var bind = function (fn, state, unwrap) {
11399  return function (value) {
11400    fn(state, value, unwrap);
11401  };
11402};
11403
11404var internalReject = function (state, value, unwrap) {
11405  if (state.done) return;
11406  state.done = true;
11407  if (unwrap) state = unwrap;
11408  state.value = value;
11409  state.state = REJECTED;
11410  notify(state, true);
11411};
11412
11413var internalResolve = function (state, value, unwrap) {
11414  if (state.done) return;
11415  state.done = true;
11416  if (unwrap) state = unwrap;
11417  try {
11418    if (state.facade === value) throw TypeError("Promise can't be resolved itself");
11419    var then = isThenable(value);
11420    if (then) {
11421      microtask(function () {
11422        var wrapper = { done: false };
11423        try {
11424          call(then, value,
11425            bind(internalResolve, wrapper, state),
11426            bind(internalReject, wrapper, state)
11427          );
11428        } catch (error) {
11429          internalReject(wrapper, error, state);
11430        }
11431      });
11432    } else {
11433      state.value = value;
11434      state.state = FULFILLED;
11435      notify(state, false);
11436    }
11437  } catch (error) {
11438    internalReject({ done: false }, error, state);
11439  }
11440};
11441
11442// constructor polyfill
11443if (FORCED) {
11444  // 25.4.3.1 Promise(executor)
11445  PromiseConstructor = function Promise(executor) {
11446    anInstance(this, PromisePrototype);
11447    aCallable(executor);
11448    call(Internal, this);
11449    var state = getInternalState(this);
11450    try {
11451      executor(bind(internalResolve, state), bind(internalReject, state));
11452    } catch (error) {
11453      internalReject(state, error);
11454    }
11455  };
11456  PromisePrototype = PromiseConstructor.prototype;
11457  // eslint-disable-next-line no-unused-vars -- required for `.length`
11458  Internal = function Promise(executor) {
11459    setInternalState(this, {
11460      type: PROMISE,
11461      done: false,
11462      notified: false,
11463      parent: false,
11464      reactions: new Queue(),
11465      rejection: false,
11466      state: PENDING,
11467      value: undefined
11468    });
11469  };
11470  Internal.prototype = redefineAll(PromisePrototype, {
11471    // `Promise.prototype.then` method
11472    // https://tc39.es/ecma262/#sec-promise.prototype.then
11473    then: function then(onFulfilled, onRejected) {
11474      var state = getInternalPromiseState(this);
11475      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
11476      state.parent = true;
11477      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
11478      reaction.fail = isCallable(onRejected) && onRejected;
11479      reaction.domain = IS_NODE ? process.domain : undefined;
11480      if (state.state == PENDING) state.reactions.add(reaction);
11481      else microtask(function () {
11482        callReaction(reaction, state);
11483      });
11484      return reaction.promise;
11485    },
11486    // `Promise.prototype.catch` method
11487    // https://tc39.es/ecma262/#sec-promise.prototype.catch
11488    'catch': function (onRejected) {
11489      return this.then(undefined, onRejected);
11490    }
11491  });
11492  OwnPromiseCapability = function () {
11493    var promise = new Internal();
11494    var state = getInternalState(promise);
11495    this.promise = promise;
11496    this.resolve = bind(internalResolve, state);
11497    this.reject = bind(internalReject, state);
11498  };
11499  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
11500    return C === PromiseConstructor || C === PromiseWrapper
11501      ? new OwnPromiseCapability(C)
11502      : newGenericPromiseCapability(C);
11503  };
11504
11505  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {
11506    nativeThen = NativePromisePrototype.then;
11507
11508    if (!SUBCLASSING) {
11509      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
11510      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
11511        var that = this;
11512        return new PromiseConstructor(function (resolve, reject) {
11513          call(nativeThen, that, resolve, reject);
11514        }).then(onFulfilled, onRejected);
11515      // https://github.com/zloirock/core-js/issues/640
11516      }, { unsafe: true });
11517
11518      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`
11519      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });
11520    }
11521
11522    // make `.constructor === Promise` work for native promise-based APIs
11523    try {
11524      delete NativePromisePrototype.constructor;
11525    } catch (error) { /* empty */ }
11526
11527    // make `instanceof Promise` work for native promise-based APIs
11528    if (setPrototypeOf) {
11529      setPrototypeOf(NativePromisePrototype, PromisePrototype);
11530    }
11531  }
11532}
11533
11534$({ global: true, wrap: true, forced: FORCED }, {
11535  Promise: PromiseConstructor
11536});
11537
11538setToStringTag(PromiseConstructor, PROMISE, false, true);
11539setSpecies(PROMISE);
11540
11541PromiseWrapper = getBuiltIn(PROMISE);
11542
11543// statics
11544$({ target: PROMISE, stat: true, forced: FORCED }, {
11545  // `Promise.reject` method
11546  // https://tc39.es/ecma262/#sec-promise.reject
11547  reject: function reject(r) {
11548    var capability = newPromiseCapability(this);
11549    call(capability.reject, undefined, r);
11550    return capability.promise;
11551  }
11552});
11553
11554$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {
11555  // `Promise.resolve` method
11556  // https://tc39.es/ecma262/#sec-promise.resolve
11557  resolve: function resolve(x) {
11558    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
11559  }
11560});
11561
11562$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
11563  // `Promise.all` method
11564  // https://tc39.es/ecma262/#sec-promise.all
11565  all: function all(iterable) {
11566    var C = this;
11567    var capability = newPromiseCapability(C);
11568    var resolve = capability.resolve;
11569    var reject = capability.reject;
11570    var result = perform(function () {
11571      var $promiseResolve = aCallable(C.resolve);
11572      var values = [];
11573      var counter = 0;
11574      var remaining = 1;
11575      iterate(iterable, function (promise) {
11576        var index = counter++;
11577        var alreadyCalled = false;
11578        remaining++;
11579        call($promiseResolve, C, promise).then(function (value) {
11580          if (alreadyCalled) return;
11581          alreadyCalled = true;
11582          values[index] = value;
11583          --remaining || resolve(values);
11584        }, reject);
11585      });
11586      --remaining || resolve(values);
11587    });
11588    if (result.error) reject(result.value);
11589    return capability.promise;
11590  },
11591  // `Promise.race` method
11592  // https://tc39.es/ecma262/#sec-promise.race
11593  race: function race(iterable) {
11594    var C = this;
11595    var capability = newPromiseCapability(C);
11596    var reject = capability.reject;
11597    var result = perform(function () {
11598      var $promiseResolve = aCallable(C.resolve);
11599      iterate(iterable, function (promise) {
11600        call($promiseResolve, C, promise).then(capability.resolve, reject);
11601      });
11602    });
11603    if (result.error) reject(result.value);
11604    return capability.promise;
11605  }
11606});
11607
11608
11609/***/ }),
11610
vendor: 751 bytes, lines 11611-11630
11611/***/ "./node_modules/core-js/modules/es.regexp.exec.js":
11612/*!********************************************************!*\
11613  !*** ./node_modules/core-js/modules/es.regexp.exec.js ***!
11614  \********************************************************/
11615/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11616
11617"use strict";
11618
11619var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11620var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
11621
11622// `RegExp.prototype.exec` method
11623// https://tc39.es/ecma262/#sec-regexp.prototype.exec
11624$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
11625  exec: exec
11626});
11627
11628
11629/***/ }),
11630
vendor: 1,734 bytes, lines 11631-11671
11631/***/ "./node_modules/core-js/modules/es.string.iterator.js":
11632/*!************************************************************!*\
11633  !*** ./node_modules/core-js/modules/es.string.iterator.js ***!
11634  \************************************************************/
11635/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11636
11637"use strict";
11638
11639var charAt = (__webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt);
11640var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
11641var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
11642var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js");
11643
11644var STRING_ITERATOR = 'String Iterator';
11645var setInternalState = InternalStateModule.set;
11646var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
11647
11648// `String.prototype[@@iterator]` method
11649// https://tc39.es/ecma262/#sec-string.prototype-@@iterator
11650defineIterator(String, 'String', function (iterated) {
11651  setInternalState(this, {
11652    type: STRING_ITERATOR,
11653    string: toString(iterated),
11654    index: 0
11655  });
11656// `%StringIteratorPrototype%.next` method
11657// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
11658}, function next() {
11659  var state = getInternalState(this);
11660  var string = state.string;
11661  var index = state.index;
11662  var point;
11663  if (index >= string.length) return { value: undefined, done: true };
11664  point = charAt(string, index);
11665  state.index += point.length;
11666  return { value: point, done: false };
11667});
11668
11669
11670/***/ }),
11671
vendor: 4,417 bytes, lines 11672-11758
11672/***/ "./node_modules/core-js/modules/es.string.replace-all.js":
11673/*!***************************************************************!*\
11674  !*** ./node_modules/core-js/modules/es.string.replace-all.js ***!
11675  \***************************************************************/
11676/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11677
11678"use strict";
11679
11680var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
11681var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
11682var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
11683var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
11684var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
11685var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
11686var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
11687var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
11688var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
11689var regExpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
11690var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ "./node_modules/core-js/internals/get-substitution.js");
11691var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
11692var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
11693
11694var REPLACE = wellKnownSymbol('replace');
11695var RegExpPrototype = RegExp.prototype;
11696var TypeError = global.TypeError;
11697var getFlags = uncurryThis(regExpFlags);
11698var indexOf = uncurryThis(''.indexOf);
11699var replace = uncurryThis(''.replace);
11700var stringSlice = uncurryThis(''.slice);
11701var max = Math.max;
11702
11703var stringIndexOf = function (string, searchValue, fromIndex) {
11704  if (fromIndex > string.length) return -1;
11705  if (searchValue === '') return fromIndex;
11706  return indexOf(string, searchValue, fromIndex);
11707};
11708
11709// `String.prototype.replaceAll` method
11710// https://tc39.es/ecma262/#sec-string.prototype.replaceall
11711$({ target: 'String', proto: true }, {
11712  replaceAll: function replaceAll(searchValue, replaceValue) {
11713    var O = requireObjectCoercible(this);
11714    var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;
11715    var position = 0;
11716    var endOfLastMatch = 0;
11717    var result = '';
11718    if (searchValue != null) {
11719      IS_REG_EXP = isRegExp(searchValue);
11720      if (IS_REG_EXP) {
11721        flags = toString(requireObjectCoercible('flags' in RegExpPrototype
11722          ? searchValue.flags
11723          : getFlags(searchValue)
11724        ));
11725        if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
11726      }
11727      replacer = getMethod(searchValue, REPLACE);
11728      if (replacer) {
11729        return call(replacer, searchValue, O, replaceValue);
11730      } else if (IS_PURE && IS_REG_EXP) {
11731        return replace(toString(O), searchValue, replaceValue);
11732      }
11733    }
11734    string = toString(O);
11735    searchString = toString(searchValue);
11736    functionalReplace = isCallable(replaceValue);
11737    if (!functionalReplace) replaceValue = toString(replaceValue);
11738    searchLength = searchString.length;
11739    advanceBy = max(1, searchLength);
11740    position = stringIndexOf(string, searchString, 0);
11741    while (position !== -1) {
11742      replacement = functionalReplace
11743        ? toString(replaceValue(searchString, position, string))
11744        : getSubstitution(searchString, string, position, [], undefined, replaceValue);
11745      result += stringSlice(string, endOfLastMatch, position) + replacement;
11746      endOfLastMatch = position + searchLength;
11747      position = stringIndexOf(string, searchString, position + advanceBy);
11748    }
11749    if (endOfLastMatch < string.length) {
11750      result += stringSlice(string, endOfLastMatch);
11751    }
11752    return result;
11753  }
11754});
11755
11756
11757/***/ }),
11758
vendor: 7,045 bytes, lines 11759-11905
11759/***/ "./node_modules/core-js/modules/es.string.replace.js":
11760/*!***********************************************************!*\
11761  !*** ./node_modules/core-js/modules/es.string.replace.js ***!
11762  \***********************************************************/
11763/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11764
11765"use strict";
11766
11767var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js");
11768var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
11769var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
11770var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
11771var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
11772var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
11773var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
11774var toIntegerOrInfinity = __webpack_require__(/*! ../internals/to-integer-or-infinity */ "./node_modules/core-js/internals/to-integer-or-infinity.js");
11775var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
11776var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
11777var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
11778var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
11779var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
11780var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ "./node_modules/core-js/internals/get-substitution.js");
11781var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
11782var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
11783
11784var REPLACE = wellKnownSymbol('replace');
11785var max = Math.max;
11786var min = Math.min;
11787var concat = uncurryThis([].concat);
11788var push = uncurryThis([].push);
11789var stringIndexOf = uncurryThis(''.indexOf);
11790var stringSlice = uncurryThis(''.slice);
11791
11792var maybeToString = function (it) {
11793  return it === undefined ? it : String(it);
11794};
11795
11796// IE <= 11 replaces $0 with the whole match, as if it was $&
11797// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
11798var REPLACE_KEEPS_$0 = (function () {
11799  // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
11800  return 'a'.replace(/./, '$0') === '$0';
11801})();
11802
11803// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
11804var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
11805  if (/./[REPLACE]) {
11806    return /./[REPLACE]('a', '$0') === '';
11807  }
11808  return false;
11809})();
11810
11811var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
11812  var re = /./;
11813  re.exec = function () {
11814    var result = [];
11815    result.groups = { a: '7' };
11816    return result;
11817  };
11818  // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive
11819  return ''.replace(re, '$<a>') !== '7';
11820});
11821
11822// @@replace logic
11823fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {
11824  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
11825
11826  return [
11827    // `String.prototype.replace` method
11828    // https://tc39.es/ecma262/#sec-string.prototype.replace
11829    function replace(searchValue, replaceValue) {
11830      var O = requireObjectCoercible(this);
11831      var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);
11832      return replacer
11833        ? call(replacer, searchValue, O, replaceValue)
11834        : call(nativeReplace, toString(O), searchValue, replaceValue);
11835    },
11836    // `RegExp.prototype[@@replace]` method
11837    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
11838    function (string, replaceValue) {
11839      var rx = anObject(this);
11840      var S = toString(string);
11841
11842      if (
11843        typeof replaceValue == 'string' &&
11844        stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&
11845        stringIndexOf(replaceValue, '$<') === -1
11846      ) {
11847        var res = maybeCallNative(nativeReplace, rx, S, replaceValue);
11848        if (res.done) return res.value;
11849      }
11850
11851      var functionalReplace = isCallable(replaceValue);
11852      if (!functionalReplace) replaceValue = toString(replaceValue);
11853
11854      var global = rx.global;
11855      if (global) {
11856        var fullUnicode = rx.unicode;
11857        rx.lastIndex = 0;
11858      }
11859      var results = [];
11860      while (true) {
11861        var result = regExpExec(rx, S);
11862        if (result === null) break;
11863
11864        push(results, result);
11865        if (!global) break;
11866
11867        var matchStr = toString(result[0]);
11868        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
11869      }
11870
11871      var accumulatedResult = '';
11872      var nextSourcePosition = 0;
11873      for (var i = 0; i < results.length; i++) {
11874        result = results[i];
11875
11876        var matched = toString(result[0]);
11877        var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);
11878        var captures = [];
11879        // NOTE: This is equivalent to
11880        //   captures = result.slice(1).map(maybeToString)
11881        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
11882        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
11883        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
11884        for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));
11885        var namedCaptures = result.groups;
11886        if (functionalReplace) {
11887          var replacerArgs = concat([matched], captures, position, S);
11888          if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);
11889          var replacement = toString(apply(replaceValue, undefined, replacerArgs));
11890        } else {
11891          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
11892        }
11893        if (position >= nextSourcePosition) {
11894          accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;
11895          nextSourcePosition = position + matched.length;
11896        }
11897      }
11898      return accumulatedResult + stringSlice(S, nextSourcePosition);
11899    }
11900  ];
11901}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
11902
11903
11904/***/ }),
11905
vendor: 8,222 bytes, lines 11906-12072
11906/***/ "./node_modules/core-js/modules/es.string.split.js":
11907/*!*********************************************************!*\
11908  !*** ./node_modules/core-js/modules/es.string.split.js ***!
11909  \*********************************************************/
11910/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
11911
11912"use strict";
11913
11914var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js");
11915var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
11916var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
11917var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
11918var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
11919var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
11920var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
11921var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js");
11922var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
11923var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
11924var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
11925var getMethod = __webpack_require__(/*! ../internals/get-method */ "./node_modules/core-js/internals/get-method.js");
11926var arraySlice = __webpack_require__(/*! ../internals/array-slice-simple */ "./node_modules/core-js/internals/array-slice-simple.js");
11927var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
11928var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
11929var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
11930var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
11931
11932var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
11933var MAX_UINT32 = 0xFFFFFFFF;
11934var min = Math.min;
11935var $push = [].push;
11936var exec = uncurryThis(/./.exec);
11937var push = uncurryThis($push);
11938var stringSlice = uncurryThis(''.slice);
11939
11940// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
11941// Weex JS has frozen built-in prototypes, so use try / catch wrapper
11942var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
11943  // eslint-disable-next-line regexp/no-empty-group -- required for testing
11944  var re = /(?:)/;
11945  var originalExec = re.exec;
11946  re.exec = function () { return originalExec.apply(this, arguments); };
11947  var result = 'ab'.split(re);
11948  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
11949});
11950
11951// @@split logic
11952fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {
11953  var internalSplit;
11954  if (
11955    'abbc'.split(/(b)*/)[1] == 'c' ||
11956    // eslint-disable-next-line regexp/no-empty-group -- required for testing
11957    'test'.split(/(?:)/, -1).length != 4 ||
11958    'ab'.split(/(?:ab)*/).length != 2 ||
11959    '.'.split(/(.?)(.?)/).length != 4 ||
11960    // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
11961    '.'.split(/()()/).length > 1 ||
11962    ''.split(/.?/).length
11963  ) {
11964    // based on es5-shim implementation, need to rework it
11965    internalSplit = function (separator, limit) {
11966      var string = toString(requireObjectCoercible(this));
11967      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
11968      if (lim === 0) return [];
11969      if (separator === undefined) return [string];
11970      // If `separator` is not a regex, use native split
11971      if (!isRegExp(separator)) {
11972        return call(nativeSplit, string, separator, lim);
11973      }
11974      var output = [];
11975      var flags = (separator.ignoreCase ? 'i' : '') +
11976                  (separator.multiline ? 'm' : '') +
11977                  (separator.unicode ? 'u' : '') +
11978                  (separator.sticky ? 'y' : '');
11979      var lastLastIndex = 0;
11980      // Make `global` and avoid `lastIndex` issues by working with a copy
11981      var separatorCopy = new RegExp(separator.source, flags + 'g');
11982      var match, lastIndex, lastLength;
11983      while (match = call(regexpExec, separatorCopy, string)) {
11984        lastIndex = separatorCopy.lastIndex;
11985        if (lastIndex > lastLastIndex) {
11986          push(output, stringSlice(string, lastLastIndex, match.index));
11987          if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));
11988          lastLength = match[0].length;
11989          lastLastIndex = lastIndex;
11990          if (output.length >= lim) break;
11991        }
11992        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
11993      }
11994      if (lastLastIndex === string.length) {
11995        if (lastLength || !exec(separatorCopy, '')) push(output, '');
11996      } else push(output, stringSlice(string, lastLastIndex));
11997      return output.length > lim ? arraySlice(output, 0, lim) : output;
11998    };
11999  // Chakra, V8
12000  } else if ('0'.split(undefined, 0).length) {
12001    internalSplit = function (separator, limit) {
12002      return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);
12003    };
12004  } else internalSplit = nativeSplit;
12005
12006  return [
12007    // `String.prototype.split` method
12008    // https://tc39.es/ecma262/#sec-string.prototype.split
12009    function split(separator, limit) {
12010      var O = requireObjectCoercible(this);
12011      var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);
12012      return splitter
12013        ? call(splitter, separator, O, limit)
12014        : call(internalSplit, toString(O), separator, limit);
12015    },
12016    // `RegExp.prototype[@@split]` method
12017    // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
12018    //
12019    // NOTE: This cannot be properly polyfilled in engines that don't support
12020    // the 'y' flag.
12021    function (string, limit) {
12022      var rx = anObject(this);
12023      var S = toString(string);
12024      var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);
12025
12026      if (res.done) return res.value;
12027
12028      var C = speciesConstructor(rx, RegExp);
12029
12030      var unicodeMatching = rx.unicode;
12031      var flags = (rx.ignoreCase ? 'i' : '') +
12032                  (rx.multiline ? 'm' : '') +
12033                  (rx.unicode ? 'u' : '') +
12034                  (UNSUPPORTED_Y ? 'g' : 'y');
12035
12036      // ^(? + rx + ) is needed, in combination with some S slicing, to
12037      // simulate the 'y' flag.
12038      var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);
12039      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
12040      if (lim === 0) return [];
12041      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
12042      var p = 0;
12043      var q = 0;
12044      var A = [];
12045      while (q < S.length) {
12046        splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;
12047        var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);
12048        var e;
12049        if (
12050          z === null ||
12051          (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p
12052        ) {
12053          q = advanceStringIndex(S, q, unicodeMatching);
12054        } else {
12055          push(A, stringSlice(S, p, q));
12056          if (A.length === lim) return A;
12057          for (var i = 1; i <= z.length - 1; i++) {
12058            push(A, z[i]);
12059            if (A.length === lim) return A;
12060          }
12061          q = p = e;
12062        }
12063      }
12064      push(A, stringSlice(S, p));
12065      return A;
12066    }
12067  ];
12068}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
12069
12070
12071/***/ }),
12072
vendor: 3,600 bytes, lines 12073-12142
12073/***/ "./node_modules/core-js/modules/es.symbol.description.js":
12074/*!***************************************************************!*\
12075  !*** ./node_modules/core-js/modules/es.symbol.description.js ***!
12076  \***************************************************************/
12077/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12078
12079"use strict";
12080// `Symbol.prototype.description` getter
12081// https://tc39.es/ecma262/#sec-symbol.prototype.description
12082
12083var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
12084var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
12085var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
12086var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
12087var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
12088var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
12089var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
12090var toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
12091var defineProperty = (__webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f);
12092var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js");
12093
12094var NativeSymbol = global.Symbol;
12095var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
12096
12097if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
12098  // Safari 12 bug
12099  NativeSymbol().description !== undefined
12100)) {
12101  var EmptyStringDescriptionStore = {};
12102  // wrap Symbol constructor for correct work with undefined description
12103  var SymbolWrapper = function Symbol() {
12104    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
12105    var result = isPrototypeOf(SymbolPrototype, this)
12106      ? new NativeSymbol(description)
12107      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
12108      : description === undefined ? NativeSymbol() : NativeSymbol(description);
12109    if (description === '') EmptyStringDescriptionStore[result] = true;
12110    return result;
12111  };
12112
12113  copyConstructorProperties(SymbolWrapper, NativeSymbol);
12114  SymbolWrapper.prototype = SymbolPrototype;
12115  SymbolPrototype.constructor = SymbolWrapper;
12116
12117  var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
12118  var symbolToString = uncurryThis(SymbolPrototype.toString);
12119  var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);
12120  var regexp = /^Symbol\((.*)\)[^)]+$/;
12121  var replace = uncurryThis(''.replace);
12122  var stringSlice = uncurryThis(''.slice);
12123
12124  defineProperty(SymbolPrototype, 'description', {
12125    configurable: true,
12126    get: function description() {
12127      var symbol = symbolValueOf(this);
12128      var string = symbolToString(symbol);
12129      if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
12130      var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
12131      return desc === '' ? undefined : desc;
12132    }
12133  });
12134
12135  $({ global: true, forced: true }, {
12136    Symbol: SymbolWrapper
12137  });
12138}
12139
12140
12141/***/ }),
12142
vendor: 644 bytes, lines 12143-12157
12143/***/ "./node_modules/core-js/modules/es.symbol.iterator.js":
12144/*!************************************************************!*\
12145  !*** ./node_modules/core-js/modules/es.symbol.iterator.js ***!
12146  \************************************************************/
12147/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12148
12149var defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ "./node_modules/core-js/internals/define-well-known-symbol.js");
12150
12151// `Symbol.iterator` well-known symbol
12152// https://tc39.es/ecma262/#sec-symbol.iterator
12153defineWellKnownSymbol('iterator');
12154
12155
12156/***/ }),
12157
vendor: 16,815 bytes, lines 12158-12491
12158/***/ "./node_modules/core-js/modules/es.symbol.js":
12159/*!***************************************************!*\
12160  !*** ./node_modules/core-js/modules/es.symbol.js ***!
12161  \***************************************************/
12162/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12163
12164"use strict";
12165
12166var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
12167var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
12168var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
12169var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js");
12170var call = __webpack_require__(/*! ../internals/function-call */ "./node_modules/core-js/internals/function-call.js");
12171var uncurryThis = __webpack_require__(/*! ../internals/function-uncurry-this */ "./node_modules/core-js/internals/function-uncurry-this.js");
12172var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
12173var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
12174var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
12175var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
12176var hasOwn = __webpack_require__(/*! ../internals/has-own-property */ "./node_modules/core-js/internals/has-own-property.js");
12177var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
12178var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
12179var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
12180var isPrototypeOf = __webpack_require__(/*! ../internals/object-is-prototype-of */ "./node_modules/core-js/internals/object-is-prototype-of.js");
12181var isSymbol = __webpack_require__(/*! ../internals/is-symbol */ "./node_modules/core-js/internals/is-symbol.js");
12182var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
12183var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
12184var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
12185var toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ "./node_modules/core-js/internals/to-property-key.js");
12186var $toString = __webpack_require__(/*! ../internals/to-string */ "./node_modules/core-js/internals/to-string.js");
12187var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
12188var nativeObjectCreate = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
12189var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
12190var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js");
12191var getOwnPropertyNamesExternal = __webpack_require__(/*! ../internals/object-get-own-property-names-external */ "./node_modules/core-js/internals/object-get-own-property-names-external.js");
12192var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
12193var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
12194var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
12195var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
12196var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js");
12197var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
12198var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
12199var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
12200var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
12201var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
12202var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
12203var wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ "./node_modules/core-js/internals/well-known-symbol-wrapped.js");
12204var defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ "./node_modules/core-js/internals/define-well-known-symbol.js");
12205var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js");
12206var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
12207var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach);
12208
12209var HIDDEN = sharedKey('hidden');
12210var SYMBOL = 'Symbol';
12211var PROTOTYPE = 'prototype';
12212var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
12213
12214var setInternalState = InternalStateModule.set;
12215var getInternalState = InternalStateModule.getterFor(SYMBOL);
12216
12217var ObjectPrototype = Object[PROTOTYPE];
12218var $Symbol = global.Symbol;
12219var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
12220var TypeError = global.TypeError;
12221var QObject = global.QObject;
12222var $stringify = getBuiltIn('JSON', 'stringify');
12223var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
12224var nativeDefineProperty = definePropertyModule.f;
12225var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
12226var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
12227var push = uncurryThis([].push);
12228
12229var AllSymbols = shared('symbols');
12230var ObjectPrototypeSymbols = shared('op-symbols');
12231var StringToSymbolRegistry = shared('string-to-symbol-registry');
12232var SymbolToStringRegistry = shared('symbol-to-string-registry');
12233var WellKnownSymbolsStore = shared('wks');
12234
12235// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
12236var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
12237
12238// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
12239var setSymbolDescriptor = DESCRIPTORS && fails(function () {
12240  return nativeObjectCreate(nativeDefineProperty({}, 'a', {
12241    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
12242  })).a != 7;
12243}) ? function (O, P, Attributes) {
12244  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
12245  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
12246  nativeDefineProperty(O, P, Attributes);
12247  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
12248    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
12249  }
12250} : nativeDefineProperty;
12251
12252var wrap = function (tag, description) {
12253  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);
12254  setInternalState(symbol, {
12255    type: SYMBOL,
12256    tag: tag,
12257    description: description
12258  });
12259  if (!DESCRIPTORS) symbol.description = description;
12260  return symbol;
12261};
12262
12263var $defineProperty = function defineProperty(O, P, Attributes) {
12264  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
12265  anObject(O);
12266  var key = toPropertyKey(P);
12267  anObject(Attributes);
12268  if (hasOwn(AllSymbols, key)) {
12269    if (!Attributes.enumerable) {
12270      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
12271      O[HIDDEN][key] = true;
12272    } else {
12273      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
12274      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
12275    } return setSymbolDescriptor(O, key, Attributes);
12276  } return nativeDefineProperty(O, key, Attributes);
12277};
12278
12279var $defineProperties = function defineProperties(O, Properties) {
12280  anObject(O);
12281  var properties = toIndexedObject(Properties);
12282  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
12283  $forEach(keys, function (key) {
12284    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);
12285  });
12286  return O;
12287};
12288
12289var $create = function create(O, Properties) {
12290  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
12291};
12292
12293var $propertyIsEnumerable = function propertyIsEnumerable(V) {
12294  var P = toPropertyKey(V);
12295  var enumerable = call(nativePropertyIsEnumerable, this, P);
12296  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;
12297  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]
12298    ? enumerable : true;
12299};
12300
12301var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
12302  var it = toIndexedObject(O);
12303  var key = toPropertyKey(P);
12304  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;
12305  var descriptor = nativeGetOwnPropertyDescriptor(it, key);
12306  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {
12307    descriptor.enumerable = true;
12308  }
12309  return descriptor;
12310};
12311
12312var $getOwnPropertyNames = function getOwnPropertyNames(O) {
12313  var names = nativeGetOwnPropertyNames(toIndexedObject(O));
12314  var result = [];
12315  $forEach(names, function (key) {
12316    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);
12317  });
12318  return result;
12319};
12320
12321var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
12322  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
12323  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
12324  var result = [];
12325  $forEach(names, function (key) {
12326    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {
12327      push(result, AllSymbols[key]);
12328    }
12329  });
12330  return result;
12331};
12332
12333// `Symbol` constructor
12334// https://tc39.es/ecma262/#sec-symbol-constructor
12335if (!NATIVE_SYMBOL) {
12336  $Symbol = function Symbol() {
12337    if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');
12338    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);
12339    var tag = uid(description);
12340    var setter = function (value) {
12341      if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);
12342      if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
12343      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
12344    };
12345    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
12346    return wrap(tag, description);
12347  };
12348
12349  SymbolPrototype = $Symbol[PROTOTYPE];
12350
12351  redefine(SymbolPrototype, 'toString', function toString() {
12352    return getInternalState(this).tag;
12353  });
12354
12355  redefine($Symbol, 'withoutSetter', function (description) {
12356    return wrap(uid(description), description);
12357  });
12358
12359  propertyIsEnumerableModule.f = $propertyIsEnumerable;
12360  definePropertyModule.f = $defineProperty;
12361  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
12362  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
12363  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
12364
12365  wrappedWellKnownSymbolModule.f = function (name) {
12366    return wrap(wellKnownSymbol(name), name);
12367  };
12368
12369  if (DESCRIPTORS) {
12370    // https://github.com/tc39/proposal-Symbol-description
12371    nativeDefineProperty(SymbolPrototype, 'description', {
12372      configurable: true,
12373      get: function description() {
12374        return getInternalState(this).description;
12375      }
12376    });
12377    if (!IS_PURE) {
12378      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
12379    }
12380  }
12381}
12382
12383$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
12384  Symbol: $Symbol
12385});
12386
12387$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
12388  defineWellKnownSymbol(name);
12389});
12390
12391$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
12392  // `Symbol.for` method
12393  // https://tc39.es/ecma262/#sec-symbol.for
12394  'for': function (key) {
12395    var string = $toString(key);
12396    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
12397    var symbol = $Symbol(string);
12398    StringToSymbolRegistry[string] = symbol;
12399    SymbolToStringRegistry[symbol] = string;
12400    return symbol;
12401  },
12402  // `Symbol.keyFor` method
12403  // https://tc39.es/ecma262/#sec-symbol.keyfor
12404  keyFor: function keyFor(sym) {
12405    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
12406    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
12407  },
12408  useSetter: function () { USE_SETTER = true; },
12409  useSimple: function () { USE_SETTER = false; }
12410});
12411
12412$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
12413  // `Object.create` method
12414  // https://tc39.es/ecma262/#sec-object.create
12415  create: $create,
12416  // `Object.defineProperty` method
12417  // https://tc39.es/ecma262/#sec-object.defineproperty
12418  defineProperty: $defineProperty,
12419  // `Object.defineProperties` method
12420  // https://tc39.es/ecma262/#sec-object.defineproperties
12421  defineProperties: $defineProperties,
12422  // `Object.getOwnPropertyDescriptor` method
12423  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
12424  getOwnPropertyDescriptor: $getOwnPropertyDescriptor
12425});
12426
12427$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
12428  // `Object.getOwnPropertyNames` method
12429  // https://tc39.es/ecma262/#sec-object.getownpropertynames
12430  getOwnPropertyNames: $getOwnPropertyNames,
12431  // `Object.getOwnPropertySymbols` method
12432  // https://tc39.es/ecma262/#sec-object.getownpropertysymbols
12433  getOwnPropertySymbols: $getOwnPropertySymbols
12434});
12435
12436// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
12437// https://bugs.chromium.org/p/v8/issues/detail?id=3443
12438$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
12439  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
12440    return getOwnPropertySymbolsModule.f(toObject(it));
12441  }
12442});
12443
12444// `JSON.stringify` method behavior with symbols
12445// https://tc39.es/ecma262/#sec-json.stringify
12446if ($stringify) {
12447  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
12448    var symbol = $Symbol();
12449    // MS Edge converts symbol values to JSON as {}
12450    return $stringify([symbol]) != '[null]'
12451      // WebKit converts symbol values to JSON as null
12452      || $stringify({ a: symbol }) != '{}'
12453      // V8 throws on boxed symbols
12454      || $stringify(Object(symbol)) != '{}';
12455  });
12456
12457  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
12458    // eslint-disable-next-line no-unused-vars -- required for `.length`
12459    stringify: function stringify(it, replacer, space) {
12460      var args = arraySlice(arguments);
12461      var $replacer = replacer;
12462      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
12463      if (!isArray(replacer)) replacer = function (key, value) {
12464        if (isCallable($replacer)) value = call($replacer, this, key, value);
12465        if (!isSymbol(value)) return value;
12466      };
12467      args[1] = replacer;
12468      return apply($stringify, null, args);
12469    }
12470  });
12471}
12472
12473// `Symbol.prototype[@@toPrimitive]` method
12474// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
12475if (!SymbolPrototype[TO_PRIMITIVE]) {
12476  var valueOf = SymbolPrototype.valueOf;
12477  // eslint-disable-next-line no-unused-vars -- required for .length
12478  redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {
12479    // TODO: improve hint logic
12480    return call(valueOf, this);
12481  });
12482}
12483// `Symbol.prototype[@@toStringTag]` property
12484// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
12485setToStringTag($Symbol, SYMBOL);
12486
12487hiddenKeys[HIDDEN] = true;
12488
12489
12490/***/ }),
12491
vendor: 544 bytes, lines 12492-12503
12492/***/ "./node_modules/core-js/modules/esnext.string.replace-all.js":
12493/*!*******************************************************************!*\
12494  !*** ./node_modules/core-js/modules/esnext.string.replace-all.js ***!
12495  \*******************************************************************/
12496/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12497
12498// TODO: Remove from `core-js@4`
12499__webpack_require__(/*! ../modules/es.string.replace-all */ "./node_modules/core-js/modules/es.string.replace-all.js");
12500
12501
12502/***/ }),
12503
vendor: 1,657 bytes, lines 12504-12535
12504/***/ "./node_modules/core-js/modules/web.dom-collections.for-each.js":
12505/*!**********************************************************************!*\
12506  !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***!
12507  \**********************************************************************/
12508/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12509
12510var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
12511var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js");
12512var DOMTokenListPrototype = __webpack_require__(/*! ../internals/dom-token-list-prototype */ "./node_modules/core-js/internals/dom-token-list-prototype.js");
12513var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js");
12514var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
12515
12516var handlePrototype = function (CollectionPrototype) {
12517  // some Chrome versions have non-configurable methods on DOMTokenList
12518  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
12519    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
12520  } catch (error) {
12521    CollectionPrototype.forEach = forEach;
12522  }
12523};
12524
12525for (var COLLECTION_NAME in DOMIterables) {
12526  if (DOMIterables[COLLECTION_NAME]) {
12527    handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);
12528  }
12529}
12530
12531handlePrototype(DOMTokenListPrototype);
12532
12533
12534/***/ }),
12535
vendor: 2,610 bytes, lines 12536-12583
12536/***/ "./node_modules/core-js/modules/web.dom-collections.iterator.js":
12537/*!**********************************************************************!*\
12538  !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***!
12539  \**********************************************************************/
12540/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12541
12542var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
12543var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js");
12544var DOMTokenListPrototype = __webpack_require__(/*! ../internals/dom-token-list-prototype */ "./node_modules/core-js/internals/dom-token-list-prototype.js");
12545var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ "./node_modules/core-js/modules/es.array.iterator.js");
12546var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
12547var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
12548
12549var ITERATOR = wellKnownSymbol('iterator');
12550var TO_STRING_TAG = wellKnownSymbol('toStringTag');
12551var ArrayValues = ArrayIteratorMethods.values;
12552
12553var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
12554  if (CollectionPrototype) {
12555    // some Chrome versions have non-configurable methods on DOMTokenList
12556    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
12557      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
12558    } catch (error) {
12559      CollectionPrototype[ITERATOR] = ArrayValues;
12560    }
12561    if (!CollectionPrototype[TO_STRING_TAG]) {
12562      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
12563    }
12564    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
12565      // some Chrome versions have non-configurable methods on DOMTokenList
12566      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
12567        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
12568      } catch (error) {
12569        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
12570      }
12571    }
12572  }
12573};
12574
12575for (var COLLECTION_NAME in DOMIterables) {
12576  handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);
12577}
12578
12579handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
12580
12581
12582/***/ }),
12583
vendor: 1,988 bytes, lines 12584-12623
12584/***/ "./node_modules/core-js/modules/web.timers.js":
12585/*!****************************************************!*\
12586  !*** ./node_modules/core-js/modules/web.timers.js ***!
12587  \****************************************************/
12588/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
12589
12590var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
12591var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
12592var apply = __webpack_require__(/*! ../internals/function-apply */ "./node_modules/core-js/internals/function-apply.js");
12593var isCallable = __webpack_require__(/*! ../internals/is-callable */ "./node_modules/core-js/internals/is-callable.js");
12594var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
12595var arraySlice = __webpack_require__(/*! ../internals/array-slice */ "./node_modules/core-js/internals/array-slice.js");
12596
12597var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
12598var Function = global.Function;
12599
12600var wrap = function (scheduler) {
12601  return function (handler, timeout /* , ...arguments */) {
12602    var boundArgs = arguments.length > 2;
12603    var args = boundArgs ? arraySlice(arguments, 2) : undefined;
12604    return scheduler(boundArgs ? function () {
12605      apply(isCallable(handler) ? handler : Function(handler), this, args);
12606    } : handler, timeout);
12607  };
12608};
12609
12610// ie9- setTimeout & setInterval additional parameters fix
12611// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
12612$({ global: true, bind: true, forced: MSIE }, {
12613  // `setTimeout` method
12614  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
12615  setTimeout: wrap(global.setTimeout),
12616  // `setInterval` method
12617  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
12618  setInterval: wrap(global.setInterval)
12619});
12620
12621
12622/***/ }),
12623
vendor: 1,036 bytes, lines 12624-12652
12624/***/ "./node_modules/jquery-ui/ui/version.js":
12625/*!**********************************************!*\
12626  !*** ./node_modules/jquery-ui/ui/version.js ***!
12627  \**********************************************/
12628/***/ (function(module, exports, __webpack_require__) {
12629
12630var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;( function( factory ) {
12631	"use strict";
12632
12633	if ( true ) {
12634
12635		// AMD. Register as an anonymous module.
12636		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
12637		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
12638		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
12639		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
12640	} else {}
12641} )( function( $ ) {
12642"use strict";
12643
12644$.ui = $.ui || {};
12645
12646return $.ui.version = "1.13.0";
12647
12648} );
12649
12650
12651/***/ }),
12652
vendor: 20,992 bytes, lines 12653-13413
12653/***/ "./node_modules/jquery-ui/ui/widget.js":
12654/*!*********************************************!*\
12655  !*** ./node_modules/jquery-ui/ui/widget.js ***!
12656  \*********************************************/
12657/***/ (function(module, exports, __webpack_require__) {
12658
12659var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
12660 * jQuery UI Widget 1.13.0
12661 * http://jqueryui.com
12662 *
12663 * Copyright jQuery Foundation and other contributors
12664 * Released under the MIT license.
12665 * http://jquery.org/license
12666 */
12667
12668//>>label: Widget
12669//>>group: Core
12670//>>description: Provides a factory for creating stateful widgets with a common API.
12671//>>docs: http://api.jqueryui.com/jQuery.widget/
12672//>>demos: http://jqueryui.com/widget/
12673
12674( function( factory ) {
12675	"use strict";
12676
12677	if ( true ) {
12678
12679		// AMD. Register as an anonymous module.
12680		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./version */ "./node_modules/jquery-ui/ui/version.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
12681		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
12682		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
12683		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
12684	} else {}
12685} )( function( $ ) {
12686"use strict";
12687
12688var widgetUuid = 0;
12689var widgetHasOwnProperty = Array.prototype.hasOwnProperty;
12690var widgetSlice = Array.prototype.slice;
12691
12692$.cleanData = ( function( orig ) {
12693	return function( elems ) {
12694		var events, elem, i;
12695		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
12696
12697			// Only trigger remove when necessary to save time
12698			events = $._data( elem, "events" );
12699			if ( events && events.remove ) {
12700				$( elem ).triggerHandler( "remove" );
12701			}
12702		}
12703		orig( elems );
12704	};
12705} )( $.cleanData );
12706
12707$.widget = function( name, base, prototype ) {
12708	var existingConstructor, constructor, basePrototype;
12709
12710	// ProxiedPrototype allows the provided prototype to remain unmodified
12711	// so that it can be used as a mixin for multiple widgets (#8876)
12712	var proxiedPrototype = {};
12713
12714	var namespace = name.split( "." )[ 0 ];
12715	name = name.split( "." )[ 1 ];
12716	var fullName = namespace + "-" + name;
12717
12718	if ( !prototype ) {
12719		prototype = base;
12720		base = $.Widget;
12721	}
12722
12723	if ( Array.isArray( prototype ) ) {
12724		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
12725	}
12726
12727	// Create selector for plugin
12728	$.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) {
12729		return !!$.data( elem, fullName );
12730	};
12731
12732	$[ namespace ] = $[ namespace ] || {};
12733	existingConstructor = $[ namespace ][ name ];
12734	constructor = $[ namespace ][ name ] = function( options, element ) {
12735
12736		// Allow instantiation without "new" keyword
12737		if ( !this._createWidget ) {
12738			return new constructor( options, element );
12739		}
12740
12741		// Allow instantiation without initializing for simple inheritance
12742		// must use "new" keyword (the code above always passes args)
12743		if ( arguments.length ) {
12744			this._createWidget( options, element );
12745		}
12746	};
12747
12748	// Extend with the existing constructor to carry over any static properties
12749	$.extend( constructor, existingConstructor, {
12750		version: prototype.version,
12751
12752		// Copy the object used to create the prototype in case we need to
12753		// redefine the widget later
12754		_proto: $.extend( {}, prototype ),
12755
12756		// Track widgets that inherit from this widget in case this widget is
12757		// redefined after a widget inherits from it
12758		_childConstructors: []
12759	} );
12760
12761	basePrototype = new base();
12762
12763	// We need to make the options hash a property directly on the new instance
12764	// otherwise we'll modify the options hash on the prototype that we're
12765	// inheriting from
12766	basePrototype.options = $.widget.extend( {}, basePrototype.options );
12767	$.each( prototype, function( prop, value ) {
12768		if ( typeof value !== "function" ) {
12769			proxiedPrototype[ prop ] = value;
12770			return;
12771		}
12772		proxiedPrototype[ prop ] = ( function() {
12773			function _super() {
12774				return base.prototype[ prop ].apply( this, arguments );
12775			}
12776
12777			function _superApply( args ) {
12778				return base.prototype[ prop ].apply( this, args );
12779			}
12780
12781			return function() {
12782				var __super = this._super;
12783				var __superApply = this._superApply;
12784				var returnValue;
12785
12786				this._super = _super;
12787				this._superApply = _superApply;
12788
12789				returnValue = value.apply( this, arguments );
12790
12791				this._super = __super;
12792				this._superApply = __superApply;
12793
12794				return returnValue;
12795			};
12796		} )();
12797	} );
12798	constructor.prototype = $.widget.extend( basePrototype, {
12799
12800		// TODO: remove support for widgetEventPrefix
12801		// always use the name + a colon as the prefix, e.g., draggable:start
12802		// don't prefix for widgets that aren't DOM-based
12803		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
12804	}, proxiedPrototype, {
12805		constructor: constructor,
12806		namespace: namespace,
12807		widgetName: name,
12808		widgetFullName: fullName
12809	} );
12810
12811	// If this widget is being redefined then we need to find all widgets that
12812	// are inheriting from it and redefine all of them so that they inherit from
12813	// the new version of this widget. We're essentially trying to replace one
12814	// level in the prototype chain.
12815	if ( existingConstructor ) {
12816		$.each( existingConstructor._childConstructors, function( i, child ) {
12817			var childPrototype = child.prototype;
12818
12819			// Redefine the child widget using the same prototype that was
12820			// originally used, but inherit from the new version of the base
12821			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
12822				child._proto );
12823		} );
12824
12825		// Remove the list of existing child constructors from the old constructor
12826		// so the old child constructors can be garbage collected
12827		delete existingConstructor._childConstructors;
12828	} else {
12829		base._childConstructors.push( constructor );
12830	}
12831
12832	$.widget.bridge( name, constructor );
12833
12834	return constructor;
12835};
12836
12837$.widget.extend = function( target ) {
12838	var input = widgetSlice.call( arguments, 1 );
12839	var inputIndex = 0;
12840	var inputLength = input.length;
12841	var key;
12842	var value;
12843
12844	for ( ; inputIndex < inputLength; inputIndex++ ) {
12845		for ( key in input[ inputIndex ] ) {
12846			value = input[ inputIndex ][ key ];
12847			if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) {
12848
12849				// Clone objects
12850				if ( $.isPlainObject( value ) ) {
12851					target[ key ] = $.isPlainObject( target[ key ] ) ?
12852						$.widget.extend( {}, target[ key ], value ) :
12853
12854						// Don't extend strings, arrays, etc. with objects
12855						$.widget.extend( {}, value );
12856
12857				// Copy everything else by reference
12858				} else {
12859					target[ key ] = value;
12860				}
12861			}
12862		}
12863	}
12864	return target;
12865};
12866
12867$.widget.bridge = function( name, object ) {
12868	var fullName = object.prototype.widgetFullName || name;
12869	$.fn[ name ] = function( options ) {
12870		var isMethodCall = typeof options === "string";
12871		var args = widgetSlice.call( arguments, 1 );
12872		var returnValue = this;
12873
12874		if ( isMethodCall ) {
12875
12876			// If this is an empty collection, we need to have the instance method
12877			// return undefined instead of the jQuery instance
12878			if ( !this.length && options === "instance" ) {
12879				returnValue = undefined;
12880			} else {
12881				this.each( function() {
12882					var methodValue;
12883					var instance = $.data( this, fullName );
12884
12885					if ( options === "instance" ) {
12886						returnValue = instance;
12887						return false;
12888					}
12889
12890					if ( !instance ) {
12891						return $.error( "cannot call methods on " + name +
12892							" prior to initialization; " +
12893							"attempted to call method '" + options + "'" );
12894					}
12895
12896					if ( typeof instance[ options ] !== "function" ||
12897						options.charAt( 0 ) === "_" ) {
12898						return $.error( "no such method '" + options + "' for " + name +
12899							" widget instance" );
12900					}
12901
12902					methodValue = instance[ options ].apply( instance, args );
12903
12904					if ( methodValue !== instance && methodValue !== undefined ) {
12905						returnValue = methodValue && methodValue.jquery ?
12906							returnValue.pushStack( methodValue.get() ) :
12907							methodValue;
12908						return false;
12909					}
12910				} );
12911			}
12912		} else {
12913
12914			// Allow multiple hashes to be passed on init
12915			if ( args.length ) {
12916				options = $.widget.extend.apply( null, [ options ].concat( args ) );
12917			}
12918
12919			this.each( function() {
12920				var instance = $.data( this, fullName );
12921				if ( instance ) {
12922					instance.option( options || {} );
12923					if ( instance._init ) {
12924						instance._init();
12925					}
12926				} else {
12927					$.data( this, fullName, new object( options, this ) );
12928				}
12929			} );
12930		}
12931
12932		return returnValue;
12933	};
12934};
12935
12936$.Widget = function( /* options, element */ ) {};
12937$.Widget._childConstructors = [];
12938
12939$.Widget.prototype = {
12940	widgetName: "widget",
12941	widgetEventPrefix: "",
12942	defaultElement: "<div>",
12943
12944	options: {
12945		classes: {},
12946		disabled: false,
12947
12948		// Callbacks
12949		create: null
12950	},
12951
12952	_createWidget: function( options, element ) {
12953		element = $( element || this.defaultElement || this )[ 0 ];
12954		this.element = $( element );
12955		this.uuid = widgetUuid++;
12956		this.eventNamespace = "." + this.widgetName + this.uuid;
12957
12958		this.bindings = $();
12959		this.hoverable = $();
12960		this.focusable = $();
12961		this.classesElementLookup = {};
12962
12963		if ( element !== this ) {
12964			$.data( element, this.widgetFullName, this );
12965			this._on( true, this.element, {
12966				remove: function( event ) {
12967					if ( event.target === element ) {
12968						this.destroy();
12969					}
12970				}
12971			} );
12972			this.document = $( element.style ?
12973
12974				// Element within the document
12975				element.ownerDocument :
12976
12977				// Element is window or document
12978				element.document || element );
12979			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
12980		}
12981
12982		this.options = $.widget.extend( {},
12983			this.options,
12984			this._getCreateOptions(),
12985			options );
12986
12987		this._create();
12988
12989		if ( this.options.disabled ) {
12990			this._setOptionDisabled( this.options.disabled );
12991		}
12992
12993		this._trigger( "create", null, this._getCreateEventData() );
12994		this._init();
12995	},
12996
12997	_getCreateOptions: function() {
12998		return {};
12999	},
13000
13001	_getCreateEventData: $.noop,
13002
13003	_create: $.noop,
13004
13005	_init: $.noop,
13006
13007	destroy: function() {
13008		var that = this;
13009
13010		this._destroy();
13011		$.each( this.classesElementLookup, function( key, value ) {
13012			that._removeClass( value, key );
13013		} );
13014
13015		// We can probably remove the unbind calls in 2.0
13016		// all event bindings should go through this._on()
13017		this.element
13018			.off( this.eventNamespace )
13019			.removeData( this.widgetFullName );
13020		this.widget()
13021			.off( this.eventNamespace )
13022			.removeAttr( "aria-disabled" );
13023
13024		// Clean up events and states
13025		this.bindings.off( this.eventNamespace );
13026	},
13027
13028	_destroy: $.noop,
13029
13030	widget: function() {
13031		return this.element;
13032	},
13033
13034	option: function( key, value ) {
13035		var options = key;
13036		var parts;
13037		var curOption;
13038		var i;
13039
13040		if ( arguments.length === 0 ) {
13041
13042			// Don't return a reference to the internal hash
13043			return $.widget.extend( {}, this.options );
13044		}
13045
13046		if ( typeof key === "string" ) {
13047
13048			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
13049			options = {};
13050			parts = key.split( "." );
13051			key = parts.shift();
13052			if ( parts.length ) {
13053				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
13054				for ( i = 0; i < parts.length - 1; i++ ) {
13055					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
13056					curOption = curOption[ parts[ i ] ];
13057				}
13058				key = parts.pop();
13059				if ( arguments.length === 1 ) {
13060					return curOption[ key ] === undefined ? null : curOption[ key ];
13061				}
13062				curOption[ key ] = value;
13063			} else {
13064				if ( arguments.length === 1 ) {
13065					return this.options[ key ] === undefined ? null : this.options[ key ];
13066				}
13067				options[ key ] = value;
13068			}
13069		}
13070
13071		this._setOptions( options );
13072
13073		return this;
13074	},
13075
13076	_setOptions: function( options ) {
13077		var key;
13078
13079		for ( key in options ) {
13080			this._setOption( key, options[ key ] );
13081		}
13082
13083		return this;
13084	},
13085
13086	_setOption: function( key, value ) {
13087		if ( key === "classes" ) {
13088			this._setOptionClasses( value );
13089		}
13090
13091		this.options[ key ] = value;
13092
13093		if ( key === "disabled" ) {
13094			this._setOptionDisabled( value );
13095		}
13096
13097		return this;
13098	},
13099
13100	_setOptionClasses: function( value ) {
13101		var classKey, elements, currentElements;
13102
13103		for ( classKey in value ) {
13104			currentElements = this.classesElementLookup[ classKey ];
13105			if ( value[ classKey ] === this.options.classes[ classKey ] ||
13106					!currentElements ||
13107					!currentElements.length ) {
13108				continue;
13109			}
13110
13111			// We are doing this to create a new jQuery object because the _removeClass() call
13112			// on the next line is going to destroy the reference to the current elements being
13113			// tracked. We need to save a copy of this collection so that we can add the new classes
13114			// below.
13115			elements = $( currentElements.get() );
13116			this._removeClass( currentElements, classKey );
13117
13118			// We don't use _addClass() here, because that uses this.options.classes
13119			// for generating the string of classes. We want to use the value passed in from
13120			// _setOption(), this is the new value of the classes option which was passed to
13121			// _setOption(). We pass this value directly to _classes().
13122			elements.addClass( this._classes( {
13123				element: elements,
13124				keys: classKey,
13125				classes: value,
13126				add: true
13127			} ) );
13128		}
13129	},
13130
13131	_setOptionDisabled: function( value ) {
13132		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
13133
13134		// If the widget is becoming disabled, then nothing is interactive
13135		if ( value ) {
13136			this._removeClass( this.hoverable, null, "ui-state-hover" );
13137			this._removeClass( this.focusable, null, "ui-state-focus" );
13138		}
13139	},
13140
13141	enable: function() {
13142		return this._setOptions( { disabled: false } );
13143	},
13144
13145	disable: function() {
13146		return this._setOptions( { disabled: true } );
13147	},
13148
13149	_classes: function( options ) {
13150		var full = [];
13151		var that = this;
13152
13153		options = $.extend( {
13154			element: this.element,
13155			classes: this.options.classes || {}
13156		}, options );
13157
13158		function bindRemoveEvent() {
13159			options.element.each( function( _, element ) {
13160				var isTracked = $.map( that.classesElementLookup, function( elements ) {
13161					return elements;
13162				} )
13163					.some( function( elements ) {
13164						return elements.is( element );
13165					} );
13166
13167				if ( !isTracked ) {
13168					that._on( $( element ), {
13169						remove: "_untrackClassesElement"
13170					} );
13171				}
13172			} );
13173		}
13174
13175		function processClassString( classes, checkOption ) {
13176			var current, i;
13177			for ( i = 0; i < classes.length; i++ ) {
13178				current = that.classesElementLookup[ classes[ i ] ] || $();
13179				if ( options.add ) {
13180					bindRemoveEvent();
13181					current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) );
13182				} else {
13183					current = $( current.not( options.element ).get() );
13184				}
13185				that.classesElementLookup[ classes[ i ] ] = current;
13186				full.push( classes[ i ] );
13187				if ( checkOption && options.classes[ classes[ i ] ] ) {
13188					full.push( options.classes[ classes[ i ] ] );
13189				}
13190			}
13191		}
13192
13193		if ( options.keys ) {
13194			processClassString( options.keys.match( /\S+/g ) || [], true );
13195		}
13196		if ( options.extra ) {
13197			processClassString( options.extra.match( /\S+/g ) || [] );
13198		}
13199
13200		return full.join( " " );
13201	},
13202
13203	_untrackClassesElement: function( event ) {
13204		var that = this;
13205		$.each( that.classesElementLookup, function( key, value ) {
13206			if ( $.inArray( event.target, value ) !== -1 ) {
13207				that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
13208			}
13209		} );
13210
13211		this._off( $( event.target ) );
13212	},
13213
13214	_removeClass: function( element, keys, extra ) {
13215		return this._toggleClass( element, keys, extra, false );
13216	},
13217
13218	_addClass: function( element, keys, extra ) {
13219		return this._toggleClass( element, keys, extra, true );
13220	},
13221
13222	_toggleClass: function( element, keys, extra, add ) {
13223		add = ( typeof add === "boolean" ) ? add : extra;
13224		var shift = ( typeof element === "string" || element === null ),
13225			options = {
13226				extra: shift ? keys : extra,
13227				keys: shift ? element : keys,
13228				element: shift ? this.element : element,
13229				add: add
13230			};
13231		options.element.toggleClass( this._classes( options ), add );
13232		return this;
13233	},
13234
13235	_on: function( suppressDisabledCheck, element, handlers ) {
13236		var delegateElement;
13237		var instance = this;
13238
13239		// No suppressDisabledCheck flag, shuffle arguments
13240		if ( typeof suppressDisabledCheck !== "boolean" ) {
13241			handlers = element;
13242			element = suppressDisabledCheck;
13243			suppressDisabledCheck = false;
13244		}
13245
13246		// No element argument, shuffle and use this.element
13247		if ( !handlers ) {
13248			handlers = element;
13249			element = this.element;
13250			delegateElement = this.widget();
13251		} else {
13252			element = delegateElement = $( element );
13253			this.bindings = this.bindings.add( element );
13254		}
13255
13256		$.each( handlers, function( event, handler ) {
13257			function handlerProxy() {
13258
13259				// Allow widgets to customize the disabled handling
13260				// - disabled as an array instead of boolean
13261				// - disabled class as method for disabling individual parts
13262				if ( !suppressDisabledCheck &&
13263						( instance.options.disabled === true ||
13264						$( this ).hasClass( "ui-state-disabled" ) ) ) {
13265					return;
13266				}
13267				return ( typeof handler === "string" ? instance[ handler ] : handler )
13268					.apply( instance, arguments );
13269			}
13270
13271			// Copy the guid so direct unbinding works
13272			if ( typeof handler !== "string" ) {
13273				handlerProxy.guid = handler.guid =
13274					handler.guid || handlerProxy.guid || $.guid++;
13275			}
13276
13277			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
13278			var eventName = match[ 1 ] + instance.eventNamespace;
13279			var selector = match[ 2 ];
13280
13281			if ( selector ) {
13282				delegateElement.on( eventName, selector, handlerProxy );
13283			} else {
13284				element.on( eventName, handlerProxy );
13285			}
13286		} );
13287	},
13288
13289	_off: function( element, eventName ) {
13290		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
13291			this.eventNamespace;
13292		element.off( eventName );
13293
13294		// Clear the stack to avoid memory leaks (#10056)
13295		this.bindings = $( this.bindings.not( element ).get() );
13296		this.focusable = $( this.focusable.not( element ).get() );
13297		this.hoverable = $( this.hoverable.not( element ).get() );
13298	},
13299
13300	_delay: function( handler, delay ) {
13301		function handlerProxy() {
13302			return ( typeof handler === "string" ? instance[ handler ] : handler )
13303				.apply( instance, arguments );
13304		}
13305		var instance = this;
13306		return setTimeout( handlerProxy, delay || 0 );
13307	},
13308
13309	_hoverable: function( element ) {
13310		this.hoverable = this.hoverable.add( element );
13311		this._on( element, {
13312			mouseenter: function( event ) {
13313				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
13314			},
13315			mouseleave: function( event ) {
13316				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
13317			}
13318		} );
13319	},
13320
13321	_focusable: function( element ) {
13322		this.focusable = this.focusable.add( element );
13323		this._on( element, {
13324			focusin: function( event ) {
13325				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
13326			},
13327			focusout: function( event ) {
13328				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
13329			}
13330		} );
13331	},
13332
13333	_trigger: function( type, event, data ) {
13334		var prop, orig;
13335		var callback = this.options[ type ];
13336
13337		data = data || {};
13338		event = $.Event( event );
13339		event.type = ( type === this.widgetEventPrefix ?
13340			type :
13341			this.widgetEventPrefix + type ).toLowerCase();
13342
13343		// The original event may come from any element
13344		// so we need to reset the target on the new event
13345		event.target = this.element[ 0 ];
13346
13347		// Copy original event properties over to the new event
13348		orig = event.originalEvent;
13349		if ( orig ) {
13350			for ( prop in orig ) {
13351				if ( !( prop in event ) ) {
13352					event[ prop ] = orig[ prop ];
13353				}
13354			}
13355		}
13356
13357		this.element.trigger( event, data );
13358		return !( typeof callback === "function" &&
13359			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
13360			event.isDefaultPrevented() );
13361	}
13362};
13363
13364$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
13365	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
13366		if ( typeof options === "string" ) {
13367			options = { effect: options };
13368		}
13369
13370		var hasOptions;
13371		var effectName = !options ?
13372			method :
13373			options === true || typeof options === "number" ?
13374				defaultEffect :
13375				options.effect || defaultEffect;
13376
13377		options = options || {};
13378		if ( typeof options === "number" ) {
13379			options = { duration: options };
13380		} else if ( options === true ) {
13381			options = {};
13382		}
13383
13384		hasOptions = !$.isEmptyObject( options );
13385		options.complete = callback;
13386
13387		if ( options.delay ) {
13388			element.delay( options.delay );
13389		}
13390
13391		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
13392			element[ method ]( options );
13393		} else if ( effectName !== method && element[ effectName ] ) {
13394			element[ effectName ]( options.duration, options.easing, callback );
13395		} else {
13396			element.queue( function( next ) {
13397				$( this )[ method ]();
13398				if ( callback ) {
13399					callback.call( element[ 0 ] );
13400				}
13401				next();
13402			} );
13403		}
13404	};
13405} );
13406
13407return $.widget;
13408
13409} );
13410
13411
13412/***/ }),
13413
vendor: 289,021 bytes, lines 13414-24305
13414/***/ "./node_modules/jquery/dist/jquery.js":
13415/*!********************************************!*\
13416  !*** ./node_modules/jquery/dist/jquery.js ***!
13417  \********************************************/
13418/***/ (function(module, exports) {
13419
13420var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
13421 * jQuery JavaScript Library v3.6.0
13422 * https://jquery.com/
13423 *
13424 * Includes Sizzle.js
13425 * https://sizzlejs.com/
13426 *
13427 * Copyright OpenJS Foundation and other contributors
13428 * Released under the MIT license
13429 * https://jquery.org/license
13430 *
13431 * Date: 2021-03-02T17:08Z
13432 */
13433( function( global, factory ) {
13434
13435	"use strict";
13436
13437	if (  true && typeof module.exports === "object" ) {
13438
13439		// For CommonJS and CommonJS-like environments where a proper `window`
13440		// is present, execute the factory and get jQuery.
13441		// For environments that do not have a `window` with a `document`
13442		// (such as Node.js), expose a factory as module.exports.
13443		// This accentuates the need for the creation of a real `window`.
13444		// e.g. var jQuery = require("jquery")(window);
13445		// See ticket #14549 for more info.
13446		module.exports = global.document ?
13447			factory( global, true ) :
13448			function( w ) {
13449				if ( !w.document ) {
13450					throw new Error( "jQuery requires a window with a document" );
13451				}
13452				return factory( w );
13453			};
13454	} else {
13455		factory( global );
13456	}
13457
13458// Pass this if window is not defined yet
13459} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
13460
13461// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
13462// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
13463// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
13464// enough that all such attempts are guarded in a try block.
13465"use strict";
13466
13467var arr = [];
13468
13469var getProto = Object.getPrototypeOf;
13470
13471var slice = arr.slice;
13472
13473var flat = arr.flat ? function( array ) {
13474	return arr.flat.call( array );
13475} : function( array ) {
13476	return arr.concat.apply( [], array );
13477};
13478
13479
13480var push = arr.push;
13481
13482var indexOf = arr.indexOf;
13483
13484var class2type = {};
13485
13486var toString = class2type.toString;
13487
13488var hasOwn = class2type.hasOwnProperty;
13489
13490var fnToString = hasOwn.toString;
13491
13492var ObjectFunctionString = fnToString.call( Object );
13493
13494var support = {};
13495
13496var isFunction = function isFunction( obj ) {
13497
13498		// Support: Chrome <=57, Firefox <=52
13499		// In some browsers, typeof returns "function" for HTML <object> elements
13500		// (i.e., `typeof document.createElement( "object" ) === "function"`).
13501		// We don't want to classify *any* DOM node as a function.
13502		// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
13503		// Plus for old WebKit, typeof returns "function" for HTML collections
13504		// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
13505		return typeof obj === "function" && typeof obj.nodeType !== "number" &&
13506			typeof obj.item !== "function";
13507	};
13508
13509
13510var isWindow = function isWindow( obj ) {
13511		return obj != null && obj === obj.window;
13512	};
13513
13514
13515var document = window.document;
13516
13517
13518
13519	var preservedScriptAttributes = {
13520		type: true,
13521		src: true,
13522		nonce: true,
13523		noModule: true
13524	};
13525
13526	function DOMEval( code, node, doc ) {
13527		doc = doc || document;
13528
13529		var i, val,
13530			script = doc.createElement( "script" );
13531
13532		script.text = code;
13533		if ( node ) {
13534			for ( i in preservedScriptAttributes ) {
13535
13536				// Support: Firefox 64+, Edge 18+
13537				// Some browsers don't support the "nonce" property on scripts.
13538				// On the other hand, just using `getAttribute` is not enough as
13539				// the `nonce` attribute is reset to an empty string whenever it
13540				// becomes browsing-context connected.
13541				// See https://github.com/whatwg/html/issues/2369
13542				// See https://html.spec.whatwg.org/#nonce-attributes
13543				// The `node.getAttribute` check was added for the sake of
13544				// `jQuery.globalEval` so that it can fake a nonce-containing node
13545				// via an object.
13546				val = node[ i ] || node.getAttribute && node.getAttribute( i );
13547				if ( val ) {
13548					script.setAttribute( i, val );
13549				}
13550			}
13551		}
13552		doc.head.appendChild( script ).parentNode.removeChild( script );
13553	}
13554
13555
13556function toType( obj ) {
13557	if ( obj == null ) {
13558		return obj + "";
13559	}
13560
13561	// Support: Android <=2.3 only (functionish RegExp)
13562	return typeof obj === "object" || typeof obj === "function" ?
13563		class2type[ toString.call( obj ) ] || "object" :
13564		typeof obj;
13565}
13566/* global Symbol */
13567// Defining this global in .eslintrc.json would create a danger of using the global
13568// unguarded in another place, it seems safer to define global only for this module
13569
13570
13571
13572var
13573	version = "3.6.0",
13574
13575	// Define a local copy of jQuery
13576	jQuery = function( selector, context ) {
13577
13578		// The jQuery object is actually just the init constructor 'enhanced'
13579		// Need init if jQuery is called (just allow error to be thrown if not included)
13580		return new jQuery.fn.init( selector, context );
13581	};
13582
13583jQuery.fn = jQuery.prototype = {
13584
13585	// The current version of jQuery being used
13586	jquery: version,
13587
13588	constructor: jQuery,
13589
13590	// The default length of a jQuery object is 0
13591	length: 0,
13592
13593	toArray: function() {
13594		return slice.call( this );
13595	},
13596
13597	// Get the Nth element in the matched element set OR
13598	// Get the whole matched element set as a clean array
13599	get: function( num ) {
13600
13601		// Return all the elements in a clean array
13602		if ( num == null ) {
13603			return slice.call( this );
13604		}
13605
13606		// Return just the one element from the set
13607		return num < 0 ? this[ num + this.length ] : this[ num ];
13608	},
13609
13610	// Take an array of elements and push it onto the stack
13611	// (returning the new matched element set)
13612	pushStack: function( elems ) {
13613
13614		// Build a new jQuery matched element set
13615		var ret = jQuery.merge( this.constructor(), elems );
13616
13617		// Add the old object onto the stack (as a reference)
13618		ret.prevObject = this;
13619
13620		// Return the newly-formed element set
13621		return ret;
13622	},
13623
13624	// Execute a callback for every element in the matched set.
13625	each: function( callback ) {
13626		return jQuery.each( this, callback );
13627	},
13628
13629	map: function( callback ) {
13630		return this.pushStack( jQuery.map( this, function( elem, i ) {
13631			return callback.call( elem, i, elem );
13632		} ) );
13633	},
13634
13635	slice: function() {
13636		return this.pushStack( slice.apply( this, arguments ) );
13637	},
13638
13639	first: function() {
13640		return this.eq( 0 );
13641	},
13642
13643	last: function() {
13644		return this.eq( -1 );
13645	},
13646
13647	even: function() {
13648		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
13649			return ( i + 1 ) % 2;
13650		} ) );
13651	},
13652
13653	odd: function() {
13654		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
13655			return i % 2;
13656		} ) );
13657	},
13658
13659	eq: function( i ) {
13660		var len = this.length,
13661			j = +i + ( i < 0 ? len : 0 );
13662		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
13663	},
13664
13665	end: function() {
13666		return this.prevObject || this.constructor();
13667	},
13668
13669	// For internal use only.
13670	// Behaves like an Array's method, not like a jQuery method.
13671	push: push,
13672	sort: arr.sort,
13673	splice: arr.splice
13674};
13675
13676jQuery.extend = jQuery.fn.extend = function() {
13677	var options, name, src, copy, copyIsArray, clone,
13678		target = arguments[ 0 ] || {},
13679		i = 1,
13680		length = arguments.length,
13681		deep = false;
13682
13683	// Handle a deep copy situation
13684	if ( typeof target === "boolean" ) {
13685		deep = target;
13686
13687		// Skip the boolean and the target
13688		target = arguments[ i ] || {};
13689		i++;
13690	}
13691
13692	// Handle case when target is a string or something (possible in deep copy)
13693	if ( typeof target !== "object" && !isFunction( target ) ) {
13694		target = {};
13695	}
13696
13697	// Extend jQuery itself if only one argument is passed
13698	if ( i === length ) {
13699		target = this;
13700		i--;
13701	}
13702
13703	for ( ; i < length; i++ ) {
13704
13705		// Only deal with non-null/undefined values
13706		if ( ( options = arguments[ i ] ) != null ) {
13707
13708			// Extend the base object
13709			for ( name in options ) {
13710				copy = options[ name ];
13711
13712				// Prevent Object.prototype pollution
13713				// Prevent never-ending loop
13714				if ( name === "__proto__" || target === copy ) {
13715					continue;
13716				}
13717
13718				// Recurse if we're merging plain objects or arrays
13719				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
13720					( copyIsArray = Array.isArray( copy ) ) ) ) {
13721					src = target[ name ];
13722
13723					// Ensure proper type for the source value
13724					if ( copyIsArray && !Array.isArray( src ) ) {
13725						clone = [];
13726					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
13727						clone = {};
13728					} else {
13729						clone = src;
13730					}
13731					copyIsArray = false;
13732
13733					// Never move original objects, clone them
13734					target[ name ] = jQuery.extend( deep, clone, copy );
13735
13736				// Don't bring in undefined values
13737				} else if ( copy !== undefined ) {
13738					target[ name ] = copy;
13739				}
13740			}
13741		}
13742	}
13743
13744	// Return the modified object
13745	return target;
13746};
13747
13748jQuery.extend( {
13749
13750	// Unique for each copy of jQuery on the page
13751	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
13752
13753	// Assume jQuery is ready without the ready module
13754	isReady: true,
13755
13756	error: function( msg ) {
13757		throw new Error( msg );
13758	},
13759
13760	noop: function() {},
13761
13762	isPlainObject: function( obj ) {
13763		var proto, Ctor;
13764
13765		// Detect obvious negatives
13766		// Use toString instead of jQuery.type to catch host objects
13767		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
13768			return false;
13769		}
13770
13771		proto = getProto( obj );
13772
13773		// Objects with no prototype (e.g., `Object.create( null )`) are plain
13774		if ( !proto ) {
13775			return true;
13776		}
13777
13778		// Objects with prototype are plain iff they were constructed by a global Object function
13779		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
13780		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
13781	},
13782
13783	isEmptyObject: function( obj ) {
13784		var name;
13785
13786		for ( name in obj ) {
13787			return false;
13788		}
13789		return true;
13790	},
13791
13792	// Evaluates a script in a provided context; falls back to the global one
13793	// if not specified.
13794	globalEval: function( code, options, doc ) {
13795		DOMEval( code, { nonce: options && options.nonce }, doc );
13796	},
13797
13798	each: function( obj, callback ) {
13799		var length, i = 0;
13800
13801		if ( isArrayLike( obj ) ) {
13802			length = obj.length;
13803			for ( ; i < length; i++ ) {
13804				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
13805					break;
13806				}
13807			}
13808		} else {
13809			for ( i in obj ) {
13810				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
13811					break;
13812				}
13813			}
13814		}
13815
13816		return obj;
13817	},
13818
13819	// results is for internal usage only
13820	makeArray: function( arr, results ) {
13821		var ret = results || [];
13822
13823		if ( arr != null ) {
13824			if ( isArrayLike( Object( arr ) ) ) {
13825				jQuery.merge( ret,
13826					typeof arr === "string" ?
13827						[ arr ] : arr
13828				);
13829			} else {
13830				push.call( ret, arr );
13831			}
13832		}
13833
13834		return ret;
13835	},
13836
13837	inArray: function( elem, arr, i ) {
13838		return arr == null ? -1 : indexOf.call( arr, elem, i );
13839	},
13840
13841	// Support: Android <=4.0 only, PhantomJS 1 only
13842	// push.apply(_, arraylike) throws on ancient WebKit
13843	merge: function( first, second ) {
13844		var len = +second.length,
13845			j = 0,
13846			i = first.length;
13847
13848		for ( ; j < len; j++ ) {
13849			first[ i++ ] = second[ j ];
13850		}
13851
13852		first.length = i;
13853
13854		return first;
13855	},
13856
13857	grep: function( elems, callback, invert ) {
13858		var callbackInverse,
13859			matches = [],
13860			i = 0,
13861			length = elems.length,
13862			callbackExpect = !invert;
13863
13864		// Go through the array, only saving the items
13865		// that pass the validator function
13866		for ( ; i < length; i++ ) {
13867			callbackInverse = !callback( elems[ i ], i );
13868			if ( callbackInverse !== callbackExpect ) {
13869				matches.push( elems[ i ] );
13870			}
13871		}
13872
13873		return matches;
13874	},
13875
13876	// arg is for internal usage only
13877	map: function( elems, callback, arg ) {
13878		var length, value,
13879			i = 0,
13880			ret = [];
13881
13882		// Go through the array, translating each of the items to their new values
13883		if ( isArrayLike( elems ) ) {
13884			length = elems.length;
13885			for ( ; i < length; i++ ) {
13886				value = callback( elems[ i ], i, arg );
13887
13888				if ( value != null ) {
13889					ret.push( value );
13890				}
13891			}
13892
13893		// Go through every key on the object,
13894		} else {
13895			for ( i in elems ) {
13896				value = callback( elems[ i ], i, arg );
13897
13898				if ( value != null ) {
13899					ret.push( value );
13900				}
13901			}
13902		}
13903
13904		// Flatten any nested arrays
13905		return flat( ret );
13906	},
13907
13908	// A global GUID counter for objects
13909	guid: 1,
13910
13911	// jQuery.support is not used in Core but other projects attach their
13912	// properties to it so it needs to exist.
13913	support: support
13914} );
13915
13916if ( typeof Symbol === "function" ) {
13917	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
13918}
13919
13920// Populate the class2type map
13921jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
13922	function( _i, name ) {
13923		class2type[ "[object " + name + "]" ] = name.toLowerCase();
13924	} );
13925
13926function isArrayLike( obj ) {
13927
13928	// Support: real iOS 8.2 only (not reproducible in simulator)
13929	// `in` check used to prevent JIT error (gh-2145)
13930	// hasOwn isn't used here due to false negatives
13931	// regarding Nodelist length in IE
13932	var length = !!obj && "length" in obj && obj.length,
13933		type = toType( obj );
13934
13935	if ( isFunction( obj ) || isWindow( obj ) ) {
13936		return false;
13937	}
13938
13939	return type === "array" || length === 0 ||
13940		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
13941}
13942var Sizzle =
13943/*!
13944 * Sizzle CSS Selector Engine v2.3.6
13945 * https://sizzlejs.com/
13946 *
13947 * Copyright JS Foundation and other contributors
13948 * Released under the MIT license
13949 * https://js.foundation/
13950 *
13951 * Date: 2021-02-16
13952 */
13953( function( window ) {
13954var i,
13955	support,
13956	Expr,
13957	getText,
13958	isXML,
13959	tokenize,
13960	compile,
13961	select,
13962	outermostContext,
13963	sortInput,
13964	hasDuplicate,
13965
13966	// Local document vars
13967	setDocument,
13968	document,
13969	docElem,
13970	documentIsHTML,
13971	rbuggyQSA,
13972	rbuggyMatches,
13973	matches,
13974	contains,
13975
13976	// Instance-specific data
13977	expando = "sizzle" + 1 * new Date(),
13978	preferredDoc = window.document,
13979	dirruns = 0,
13980	done = 0,
13981	classCache = createCache(),
13982	tokenCache = createCache(),
13983	compilerCache = createCache(),
13984	nonnativeSelectorCache = createCache(),
13985	sortOrder = function( a, b ) {
13986		if ( a === b ) {
13987			hasDuplicate = true;
13988		}
13989		return 0;
13990	},
13991
13992	// Instance methods
13993	hasOwn = ( {} ).hasOwnProperty,
13994	arr = [],
13995	pop = arr.pop,
13996	pushNative = arr.push,
13997	push = arr.push,
13998	slice = arr.slice,
13999
14000	// Use a stripped-down indexOf as it's faster than native
14001	// https://jsperf.com/thor-indexof-vs-for/5
14002	indexOf = function( list, elem ) {
14003		var i = 0,
14004			len = list.length;
14005		for ( ; i < len; i++ ) {
14006			if ( list[ i ] === elem ) {
14007				return i;
14008			}
14009		}
14010		return -1;
14011	},
14012
14013	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
14014		"ismap|loop|multiple|open|readonly|required|scoped",
14015
14016	// Regular expressions
14017
14018	// http://www.w3.org/TR/css3-selectors/#whitespace
14019	whitespace = "[\\x20\\t\\r\\n\\f]",
14020
14021	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
14022	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
14023		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
14024
14025	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
14026	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
14027
14028		// Operator (capture 2)
14029		"*([*^$|!~]?=)" + whitespace +
14030
14031		// "Attribute values must be CSS identifiers [capture 5]
14032		// or strings [capture 3 or capture 4]"
14033		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
14034		whitespace + "*\\]",
14035
14036	pseudos = ":(" + identifier + ")(?:\\((" +
14037
14038		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
14039		// 1. quoted (capture 3; capture 4 or capture 5)
14040		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
14041
14042		// 2. simple (capture 6)
14043		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
14044
14045		// 3. anything else (capture 2)
14046		".*" +
14047		")\\)|)",
14048
14049	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
14050	rwhitespace = new RegExp( whitespace + "+", "g" ),
14051	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
14052		whitespace + "+$", "g" ),
14053
14054	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
14055	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
14056		"*" ),
14057	rdescend = new RegExp( whitespace + "|>" ),
14058
14059	rpseudo = new RegExp( pseudos ),
14060	ridentifier = new RegExp( "^" + identifier + "$" ),
14061
14062	matchExpr = {
14063		"ID": new RegExp( "^#(" + identifier + ")" ),
14064		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
14065		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
14066		"ATTR": new RegExp( "^" + attributes ),
14067		"PSEUDO": new RegExp( "^" + pseudos ),
14068		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
14069			whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
14070			whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
14071		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
14072
14073		// For use in libraries implementing .is()
14074		// We use this for POS matching in `select`
14075		"needsContext": new RegExp( "^" + whitespace +
14076			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
14077			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
14078	},
14079
14080	rhtml = /HTML$/i,
14081	rinputs = /^(?:input|select|textarea|button)$/i,
14082	rheader = /^h\d$/i,
14083
14084	rnative = /^[^{]+\{\s*\[native \w/,
14085
14086	// Easily-parseable/retrievable ID or TAG or CLASS selectors
14087	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
14088
14089	rsibling = /[+~]/,
14090
14091	// CSS escapes
14092	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
14093	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
14094	funescape = function( escape, nonHex ) {
14095		var high = "0x" + escape.slice( 1 ) - 0x10000;
14096
14097		return nonHex ?
14098
14099			// Strip the backslash prefix from a non-hex escape sequence
14100			nonHex :
14101
14102			// Replace a hexadecimal escape sequence with the encoded Unicode code point
14103			// Support: IE <=11+
14104			// For values outside the Basic Multilingual Plane (BMP), manually construct a
14105			// surrogate pair
14106			high < 0 ?
14107				String.fromCharCode( high + 0x10000 ) :
14108				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
14109	},
14110
14111	// CSS string/identifier serialization
14112	// https://drafts.csswg.org/cssom/#common-serializing-idioms
14113	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
14114	fcssescape = function( ch, asCodePoint ) {
14115		if ( asCodePoint ) {
14116
14117			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
14118			if ( ch === "\0" ) {
14119				return "\uFFFD";
14120			}
14121
14122			// Control characters and (dependent upon position) numbers get escaped as code points
14123			return ch.slice( 0, -1 ) + "\\" +
14124				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
14125		}
14126
14127		// Other potentially-special ASCII characters get backslash-escaped
14128		return "\\" + ch;
14129	},
14130
14131	// Used for iframes
14132	// See setDocument()
14133	// Removing the function wrapper causes a "Permission Denied"
14134	// error in IE
14135	unloadHandler = function() {
14136		setDocument();
14137	},
14138
14139	inDisabledFieldset = addCombinator(
14140		function( elem ) {
14141			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
14142		},
14143		{ dir: "parentNode", next: "legend" }
14144	);
14145
14146// Optimize for push.apply( _, NodeList )
14147try {
14148	push.apply(
14149		( arr = slice.call( preferredDoc.childNodes ) ),
14150		preferredDoc.childNodes
14151	);
14152
14153	// Support: Android<4.0
14154	// Detect silently failing push.apply
14155	// eslint-disable-next-line no-unused-expressions
14156	arr[ preferredDoc.childNodes.length ].nodeType;
14157} catch ( e ) {
14158	push = { apply: arr.length ?
14159
14160		// Leverage slice if possible
14161		function( target, els ) {
14162			pushNative.apply( target, slice.call( els ) );
14163		} :
14164
14165		// Support: IE<9
14166		// Otherwise append directly
14167		function( target, els ) {
14168			var j = target.length,
14169				i = 0;
14170
14171			// Can't trust NodeList.length
14172			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
14173			target.length = j - 1;
14174		}
14175	};
14176}
14177
14178function Sizzle( selector, context, results, seed ) {
14179	var m, i, elem, nid, match, groups, newSelector,
14180		newContext = context && context.ownerDocument,
14181
14182		// nodeType defaults to 9, since context defaults to document
14183		nodeType = context ? context.nodeType : 9;
14184
14185	results = results || [];
14186
14187	// Return early from calls with invalid selector or context
14188	if ( typeof selector !== "string" || !selector ||
14189		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
14190
14191		return results;
14192	}
14193
14194	// Try to shortcut find operations (as opposed to filters) in HTML documents
14195	if ( !seed ) {
14196		setDocument( context );
14197		context = context || document;
14198
14199		if ( documentIsHTML ) {
14200
14201			// If the selector is sufficiently simple, try using a "get*By*" DOM method
14202			// (excepting DocumentFragment context, where the methods don't exist)
14203			if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
14204
14205				// ID selector
14206				if ( ( m = match[ 1 ] ) ) {
14207
14208					// Document context
14209					if ( nodeType === 9 ) {
14210						if ( ( elem = context.getElementById( m ) ) ) {
14211
14212							// Support: IE, Opera, Webkit
14213							// TODO: identify versions
14214							// getElementById can match elements by name instead of ID
14215							if ( elem.id === m ) {
14216								results.push( elem );
14217								return results;
14218							}
14219						} else {
14220							return results;
14221						}
14222
14223					// Element context
14224					} else {
14225
14226						// Support: IE, Opera, Webkit
14227						// TODO: identify versions
14228						// getElementById can match elements by name instead of ID
14229						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
14230							contains( context, elem ) &&
14231							elem.id === m ) {
14232
14233							results.push( elem );
14234							return results;
14235						}
14236					}
14237
14238				// Type selector
14239				} else if ( match[ 2 ] ) {
14240					push.apply( results, context.getElementsByTagName( selector ) );
14241					return results;
14242
14243				// Class selector
14244				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
14245					context.getElementsByClassName ) {
14246
14247					push.apply( results, context.getElementsByClassName( m ) );
14248					return results;
14249				}
14250			}
14251
14252			// Take advantage of querySelectorAll
14253			if ( support.qsa &&
14254				!nonnativeSelectorCache[ selector + " " ] &&
14255				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
14256
14257				// Support: IE 8 only
14258				// Exclude object elements
14259				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
14260
14261				newSelector = selector;
14262				newContext = context;
14263
14264				// qSA considers elements outside a scoping root when evaluating child or
14265				// descendant combinators, which is not what we want.
14266				// In such cases, we work around the behavior by prefixing every selector in the
14267				// list with an ID selector referencing the scope context.
14268				// The technique has to be used as well when a leading combinator is used
14269				// as such selectors are not recognized by querySelectorAll.
14270				// Thanks to Andrew Dupont for this technique.
14271				if ( nodeType === 1 &&
14272					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
14273
14274					// Expand context for sibling selectors
14275					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
14276						context;
14277
14278					// We can use :scope instead of the ID hack if the browser
14279					// supports it & if we're not changing the context.
14280					if ( newContext !== context || !support.scope ) {
14281
14282						// Capture the context ID, setting it first if necessary
14283						if ( ( nid = context.getAttribute( "id" ) ) ) {
14284							nid = nid.replace( rcssescape, fcssescape );
14285						} else {
14286							context.setAttribute( "id", ( nid = expando ) );
14287						}
14288					}
14289
14290					// Prefix every selector in the list
14291					groups = tokenize( selector );
14292					i = groups.length;
14293					while ( i-- ) {
14294						groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
14295							toSelector( groups[ i ] );
14296					}
14297					newSelector = groups.join( "," );
14298				}
14299
14300				try {
14301					push.apply( results,
14302						newContext.querySelectorAll( newSelector )
14303					);
14304					return results;
14305				} catch ( qsaError ) {
14306					nonnativeSelectorCache( selector, true );
14307				} finally {
14308					if ( nid === expando ) {
14309						context.removeAttribute( "id" );
14310					}
14311				}
14312			}
14313		}
14314	}
14315
14316	// All others
14317	return select( selector.replace( rtrim, "$1" ), context, results, seed );
14318}
14319
14320/**
14321 * Create key-value caches of limited size
14322 * @returns {function(string, object)} Returns the Object data after storing it on itself with
14323 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
14324 *	deleting the oldest entry
14325 */
14326function createCache() {
14327	var keys = [];
14328
14329	function cache( key, value ) {
14330
14331		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
14332		if ( keys.push( key + " " ) > Expr.cacheLength ) {
14333
14334			// Only keep the most recent entries
14335			delete cache[ keys.shift() ];
14336		}
14337		return ( cache[ key + " " ] = value );
14338	}
14339	return cache;
14340}
14341
14342/**
14343 * Mark a function for special use by Sizzle
14344 * @param {Function} fn The function to mark
14345 */
14346function markFunction( fn ) {
14347	fn[ expando ] = true;
14348	return fn;
14349}
14350
14351/**
14352 * Support testing using an element
14353 * @param {Function} fn Passed the created element and returns a boolean result
14354 */
14355function assert( fn ) {
14356	var el = document.createElement( "fieldset" );
14357
14358	try {
14359		return !!fn( el );
14360	} catch ( e ) {
14361		return false;
14362	} finally {
14363
14364		// Remove from its parent by default
14365		if ( el.parentNode ) {
14366			el.parentNode.removeChild( el );
14367		}
14368
14369		// release memory in IE
14370		el = null;
14371	}
14372}
14373
14374/**
14375 * Adds the same handler for all of the specified attrs
14376 * @param {String} attrs Pipe-separated list of attributes
14377 * @param {Function} handler The method that will be applied
14378 */
14379function addHandle( attrs, handler ) {
14380	var arr = attrs.split( "|" ),
14381		i = arr.length;
14382
14383	while ( i-- ) {
14384		Expr.attrHandle[ arr[ i ] ] = handler;
14385	}
14386}
14387
14388/**
14389 * Checks document order of two siblings
14390 * @param {Element} a
14391 * @param {Element} b
14392 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
14393 */
14394function siblingCheck( a, b ) {
14395	var cur = b && a,
14396		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
14397			a.sourceIndex - b.sourceIndex;
14398
14399	// Use IE sourceIndex if available on both nodes
14400	if ( diff ) {
14401		return diff;
14402	}
14403
14404	// Check if b follows a
14405	if ( cur ) {
14406		while ( ( cur = cur.nextSibling ) ) {
14407			if ( cur === b ) {
14408				return -1;
14409			}
14410		}
14411	}
14412
14413	return a ? 1 : -1;
14414}
14415
14416/**
14417 * Returns a function to use in pseudos for input types
14418 * @param {String} type
14419 */
14420function createInputPseudo( type ) {
14421	return function( elem ) {
14422		var name = elem.nodeName.toLowerCase();
14423		return name === "input" && elem.type === type;
14424	};
14425}
14426
14427/**
14428 * Returns a function to use in pseudos for buttons
14429 * @param {String} type
14430 */
14431function createButtonPseudo( type ) {
14432	return function( elem ) {
14433		var name = elem.nodeName.toLowerCase();
14434		return ( name === "input" || name === "button" ) && elem.type === type;
14435	};
14436}
14437
14438/**
14439 * Returns a function to use in pseudos for :enabled/:disabled
14440 * @param {Boolean} disabled true for :disabled; false for :enabled
14441 */
14442function createDisabledPseudo( disabled ) {
14443
14444	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
14445	return function( elem ) {
14446
14447		// Only certain elements can match :enabled or :disabled
14448		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
14449		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
14450		if ( "form" in elem ) {
14451
14452			// Check for inherited disabledness on relevant non-disabled elements:
14453			// * listed form-associated elements in a disabled fieldset
14454			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
14455			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
14456			// * option elements in a disabled optgroup
14457			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
14458			// All such elements have a "form" property.
14459			if ( elem.parentNode && elem.disabled === false ) {
14460
14461				// Option elements defer to a parent optgroup if present
14462				if ( "label" in elem ) {
14463					if ( "label" in elem.parentNode ) {
14464						return elem.parentNode.disabled === disabled;
14465					} else {
14466						return elem.disabled === disabled;
14467					}
14468				}
14469
14470				// Support: IE 6 - 11
14471				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
14472				return elem.isDisabled === disabled ||
14473
14474					// Where there is no isDisabled, check manually
14475					/* jshint -W018 */
14476					elem.isDisabled !== !disabled &&
14477					inDisabledFieldset( elem ) === disabled;
14478			}
14479
14480			return elem.disabled === disabled;
14481
14482		// Try to winnow out elements that can't be disabled before trusting the disabled property.
14483		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
14484		// even exist on them, let alone have a boolean value.
14485		} else if ( "label" in elem ) {
14486			return elem.disabled === disabled;
14487		}
14488
14489		// Remaining elements are neither :enabled nor :disabled
14490		return false;
14491	};
14492}
14493
14494/**
14495 * Returns a function to use in pseudos for positionals
14496 * @param {Function} fn
14497 */
14498function createPositionalPseudo( fn ) {
14499	return markFunction( function( argument ) {
14500		argument = +argument;
14501		return markFunction( function( seed, matches ) {
14502			var j,
14503				matchIndexes = fn( [], seed.length, argument ),
14504				i = matchIndexes.length;
14505
14506			// Match elements found at the specified indexes
14507			while ( i-- ) {
14508				if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
14509					seed[ j ] = !( matches[ j ] = seed[ j ] );
14510				}
14511			}
14512		} );
14513	} );
14514}
14515
14516/**
14517 * Checks a node for validity as a Sizzle context
14518 * @param {Element|Object=} context
14519 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
14520 */
14521function testContext( context ) {
14522	return context && typeof context.getElementsByTagName !== "undefined" && context;
14523}
14524
14525// Expose support vars for convenience
14526support = Sizzle.support = {};
14527
14528/**
14529 * Detects XML nodes
14530 * @param {Element|Object} elem An element or a document
14531 * @returns {Boolean} True iff elem is a non-HTML XML node
14532 */
14533isXML = Sizzle.isXML = function( elem ) {
14534	var namespace = elem && elem.namespaceURI,
14535		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
14536
14537	// Support: IE <=8
14538	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
14539	// https://bugs.jquery.com/ticket/4833
14540	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
14541};
14542
14543/**
14544 * Sets document-related variables once based on the current document
14545 * @param {Element|Object} [doc] An element or document object to use to set the document
14546 * @returns {Object} Returns the current document
14547 */
14548setDocument = Sizzle.setDocument = function( node ) {
14549	var hasCompare, subWindow,
14550		doc = node ? node.ownerDocument || node : preferredDoc;
14551
14552	// Return early if doc is invalid or already selected
14553	// Support: IE 11+, Edge 17 - 18+
14554	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14555	// two documents; shallow comparisons work.
14556	// eslint-disable-next-line eqeqeq
14557	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
14558		return document;
14559	}
14560
14561	// Update global variables
14562	document = doc;
14563	docElem = document.documentElement;
14564	documentIsHTML = !isXML( document );
14565
14566	// Support: IE 9 - 11+, Edge 12 - 18+
14567	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
14568	// Support: IE 11+, Edge 17 - 18+
14569	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14570	// two documents; shallow comparisons work.
14571	// eslint-disable-next-line eqeqeq
14572	if ( preferredDoc != document &&
14573		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
14574
14575		// Support: IE 11, Edge
14576		if ( subWindow.addEventListener ) {
14577			subWindow.addEventListener( "unload", unloadHandler, false );
14578
14579		// Support: IE 9 - 10 only
14580		} else if ( subWindow.attachEvent ) {
14581			subWindow.attachEvent( "onunload", unloadHandler );
14582		}
14583	}
14584
14585	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
14586	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
14587	// IE/Edge & older browsers don't support the :scope pseudo-class.
14588	// Support: Safari 6.0 only
14589	// Safari 6.0 supports :scope but it's an alias of :root there.
14590	support.scope = assert( function( el ) {
14591		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
14592		return typeof el.querySelectorAll !== "undefined" &&
14593			!el.querySelectorAll( ":scope fieldset div" ).length;
14594	} );
14595
14596	/* Attributes
14597	---------------------------------------------------------------------- */
14598
14599	// Support: IE<8
14600	// Verify that getAttribute really returns attributes and not properties
14601	// (excepting IE8 booleans)
14602	support.attributes = assert( function( el ) {
14603		el.className = "i";
14604		return !el.getAttribute( "className" );
14605	} );
14606
14607	/* getElement(s)By*
14608	---------------------------------------------------------------------- */
14609
14610	// Check if getElementsByTagName("*") returns only elements
14611	support.getElementsByTagName = assert( function( el ) {
14612		el.appendChild( document.createComment( "" ) );
14613		return !el.getElementsByTagName( "*" ).length;
14614	} );
14615
14616	// Support: IE<9
14617	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
14618
14619	// Support: IE<10
14620	// Check if getElementById returns elements by name
14621	// The broken getElementById methods don't pick up programmatically-set names,
14622	// so use a roundabout getElementsByName test
14623	support.getById = assert( function( el ) {
14624		docElem.appendChild( el ).id = expando;
14625		return !document.getElementsByName || !document.getElementsByName( expando ).length;
14626	} );
14627
14628	// ID filter and find
14629	if ( support.getById ) {
14630		Expr.filter[ "ID" ] = function( id ) {
14631			var attrId = id.replace( runescape, funescape );
14632			return function( elem ) {
14633				return elem.getAttribute( "id" ) === attrId;
14634			};
14635		};
14636		Expr.find[ "ID" ] = function( id, context ) {
14637			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
14638				var elem = context.getElementById( id );
14639				return elem ? [ elem ] : [];
14640			}
14641		};
14642	} else {
14643		Expr.filter[ "ID" ] =  function( id ) {
14644			var attrId = id.replace( runescape, funescape );
14645			return function( elem ) {
14646				var node = typeof elem.getAttributeNode !== "undefined" &&
14647					elem.getAttributeNode( "id" );
14648				return node && node.value === attrId;
14649			};
14650		};
14651
14652		// Support: IE 6 - 7 only
14653		// getElementById is not reliable as a find shortcut
14654		Expr.find[ "ID" ] = function( id, context ) {
14655			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
14656				var node, i, elems,
14657					elem = context.getElementById( id );
14658
14659				if ( elem ) {
14660
14661					// Verify the id attribute
14662					node = elem.getAttributeNode( "id" );
14663					if ( node && node.value === id ) {
14664						return [ elem ];
14665					}
14666
14667					// Fall back on getElementsByName
14668					elems = context.getElementsByName( id );
14669					i = 0;
14670					while ( ( elem = elems[ i++ ] ) ) {
14671						node = elem.getAttributeNode( "id" );
14672						if ( node && node.value === id ) {
14673							return [ elem ];
14674						}
14675					}
14676				}
14677
14678				return [];
14679			}
14680		};
14681	}
14682
14683	// Tag
14684	Expr.find[ "TAG" ] = support.getElementsByTagName ?
14685		function( tag, context ) {
14686			if ( typeof context.getElementsByTagName !== "undefined" ) {
14687				return context.getElementsByTagName( tag );
14688
14689			// DocumentFragment nodes don't have gEBTN
14690			} else if ( support.qsa ) {
14691				return context.querySelectorAll( tag );
14692			}
14693		} :
14694
14695		function( tag, context ) {
14696			var elem,
14697				tmp = [],
14698				i = 0,
14699
14700				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
14701				results = context.getElementsByTagName( tag );
14702
14703			// Filter out possible comments
14704			if ( tag === "*" ) {
14705				while ( ( elem = results[ i++ ] ) ) {
14706					if ( elem.nodeType === 1 ) {
14707						tmp.push( elem );
14708					}
14709				}
14710
14711				return tmp;
14712			}
14713			return results;
14714		};
14715
14716	// Class
14717	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
14718		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
14719			return context.getElementsByClassName( className );
14720		}
14721	};
14722
14723	/* QSA/matchesSelector
14724	---------------------------------------------------------------------- */
14725
14726	// QSA and matchesSelector support
14727
14728	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
14729	rbuggyMatches = [];
14730
14731	// qSa(:focus) reports false when true (Chrome 21)
14732	// We allow this because of a bug in IE8/9 that throws an error
14733	// whenever `document.activeElement` is accessed on an iframe
14734	// So, we allow :focus to pass through QSA all the time to avoid the IE error
14735	// See https://bugs.jquery.com/ticket/13378
14736	rbuggyQSA = [];
14737
14738	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
14739
14740		// Build QSA regex
14741		// Regex strategy adopted from Diego Perini
14742		assert( function( el ) {
14743
14744			var input;
14745
14746			// Select is set to empty string on purpose
14747			// This is to test IE's treatment of not explicitly
14748			// setting a boolean content attribute,
14749			// since its presence should be enough
14750			// https://bugs.jquery.com/ticket/12359
14751			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
14752				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
14753				"<option selected=''></option></select>";
14754
14755			// Support: IE8, Opera 11-12.16
14756			// Nothing should be selected when empty strings follow ^= or $= or *=
14757			// The test attribute must be unknown in Opera but "safe" for WinRT
14758			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
14759			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
14760				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
14761			}
14762
14763			// Support: IE8
14764			// Boolean attributes and "value" are not treated correctly
14765			if ( !el.querySelectorAll( "[selected]" ).length ) {
14766				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
14767			}
14768
14769			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
14770			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
14771				rbuggyQSA.push( "~=" );
14772			}
14773
14774			// Support: IE 11+, Edge 15 - 18+
14775			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
14776			// Adding a temporary attribute to the document before the selection works
14777			// around the issue.
14778			// Interestingly, IE 10 & older don't seem to have the issue.
14779			input = document.createElement( "input" );
14780			input.setAttribute( "name", "" );
14781			el.appendChild( input );
14782			if ( !el.querySelectorAll( "[name='']" ).length ) {
14783				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
14784					whitespace + "*(?:''|\"\")" );
14785			}
14786
14787			// Webkit/Opera - :checked should return selected option elements
14788			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
14789			// IE8 throws error here and will not see later tests
14790			if ( !el.querySelectorAll( ":checked" ).length ) {
14791				rbuggyQSA.push( ":checked" );
14792			}
14793
14794			// Support: Safari 8+, iOS 8+
14795			// https://bugs.webkit.org/show_bug.cgi?id=136851
14796			// In-page `selector#id sibling-combinator selector` fails
14797			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
14798				rbuggyQSA.push( ".#.+[+~]" );
14799			}
14800
14801			// Support: Firefox <=3.6 - 5 only
14802			// Old Firefox doesn't throw on a badly-escaped identifier.
14803			el.querySelectorAll( "\\\f" );
14804			rbuggyQSA.push( "[\\r\\n\\f]" );
14805		} );
14806
14807		assert( function( el ) {
14808			el.innerHTML = "<a href='' disabled='disabled'></a>" +
14809				"<select disabled='disabled'><option/></select>";
14810
14811			// Support: Windows 8 Native Apps
14812			// The type and name attributes are restricted during .innerHTML assignment
14813			var input = document.createElement( "input" );
14814			input.setAttribute( "type", "hidden" );
14815			el.appendChild( input ).setAttribute( "name", "D" );
14816
14817			// Support: IE8
14818			// Enforce case-sensitivity of name attribute
14819			if ( el.querySelectorAll( "[name=d]" ).length ) {
14820				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
14821			}
14822
14823			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
14824			// IE8 throws error here and will not see later tests
14825			if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
14826				rbuggyQSA.push( ":enabled", ":disabled" );
14827			}
14828
14829			// Support: IE9-11+
14830			// IE's :disabled selector does not pick up the children of disabled fieldsets
14831			docElem.appendChild( el ).disabled = true;
14832			if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
14833				rbuggyQSA.push( ":enabled", ":disabled" );
14834			}
14835
14836			// Support: Opera 10 - 11 only
14837			// Opera 10-11 does not throw on post-comma invalid pseudos
14838			el.querySelectorAll( "*,:x" );
14839			rbuggyQSA.push( ",.*:" );
14840		} );
14841	}
14842
14843	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
14844		docElem.webkitMatchesSelector ||
14845		docElem.mozMatchesSelector ||
14846		docElem.oMatchesSelector ||
14847		docElem.msMatchesSelector ) ) ) ) {
14848
14849		assert( function( el ) {
14850
14851			// Check to see if it's possible to do matchesSelector
14852			// on a disconnected node (IE 9)
14853			support.disconnectedMatch = matches.call( el, "*" );
14854
14855			// This should fail with an exception
14856			// Gecko does not error, returns false instead
14857			matches.call( el, "[s!='']:x" );
14858			rbuggyMatches.push( "!=", pseudos );
14859		} );
14860	}
14861
14862	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
14863	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
14864
14865	/* Contains
14866	---------------------------------------------------------------------- */
14867	hasCompare = rnative.test( docElem.compareDocumentPosition );
14868
14869	// Element contains another
14870	// Purposefully self-exclusive
14871	// As in, an element does not contain itself
14872	contains = hasCompare || rnative.test( docElem.contains ) ?
14873		function( a, b ) {
14874			var adown = a.nodeType === 9 ? a.documentElement : a,
14875				bup = b && b.parentNode;
14876			return a === bup || !!( bup && bup.nodeType === 1 && (
14877				adown.contains ?
14878					adown.contains( bup ) :
14879					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
14880			) );
14881		} :
14882		function( a, b ) {
14883			if ( b ) {
14884				while ( ( b = b.parentNode ) ) {
14885					if ( b === a ) {
14886						return true;
14887					}
14888				}
14889			}
14890			return false;
14891		};
14892
14893	/* Sorting
14894	---------------------------------------------------------------------- */
14895
14896	// Document order sorting
14897	sortOrder = hasCompare ?
14898	function( a, b ) {
14899
14900		// Flag for duplicate removal
14901		if ( a === b ) {
14902			hasDuplicate = true;
14903			return 0;
14904		}
14905
14906		// Sort on method existence if only one input has compareDocumentPosition
14907		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
14908		if ( compare ) {
14909			return compare;
14910		}
14911
14912		// Calculate position if both inputs belong to the same document
14913		// Support: IE 11+, Edge 17 - 18+
14914		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14915		// two documents; shallow comparisons work.
14916		// eslint-disable-next-line eqeqeq
14917		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
14918			a.compareDocumentPosition( b ) :
14919
14920			// Otherwise we know they are disconnected
14921			1;
14922
14923		// Disconnected nodes
14924		if ( compare & 1 ||
14925			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
14926
14927			// Choose the first element that is related to our preferred document
14928			// Support: IE 11+, Edge 17 - 18+
14929			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14930			// two documents; shallow comparisons work.
14931			// eslint-disable-next-line eqeqeq
14932			if ( a == document || a.ownerDocument == preferredDoc &&
14933				contains( preferredDoc, a ) ) {
14934				return -1;
14935			}
14936
14937			// Support: IE 11+, Edge 17 - 18+
14938			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14939			// two documents; shallow comparisons work.
14940			// eslint-disable-next-line eqeqeq
14941			if ( b == document || b.ownerDocument == preferredDoc &&
14942				contains( preferredDoc, b ) ) {
14943				return 1;
14944			}
14945
14946			// Maintain original order
14947			return sortInput ?
14948				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
14949				0;
14950		}
14951
14952		return compare & 4 ? -1 : 1;
14953	} :
14954	function( a, b ) {
14955
14956		// Exit early if the nodes are identical
14957		if ( a === b ) {
14958			hasDuplicate = true;
14959			return 0;
14960		}
14961
14962		var cur,
14963			i = 0,
14964			aup = a.parentNode,
14965			bup = b.parentNode,
14966			ap = [ a ],
14967			bp = [ b ];
14968
14969		// Parentless nodes are either documents or disconnected
14970		if ( !aup || !bup ) {
14971
14972			// Support: IE 11+, Edge 17 - 18+
14973			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
14974			// two documents; shallow comparisons work.
14975			/* eslint-disable eqeqeq */
14976			return a == document ? -1 :
14977				b == document ? 1 :
14978				/* eslint-enable eqeqeq */
14979				aup ? -1 :
14980				bup ? 1 :
14981				sortInput ?
14982				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
14983				0;
14984
14985		// If the nodes are siblings, we can do a quick check
14986		} else if ( aup === bup ) {
14987			return siblingCheck( a, b );
14988		}
14989
14990		// Otherwise we need full lists of their ancestors for comparison
14991		cur = a;
14992		while ( ( cur = cur.parentNode ) ) {
14993			ap.unshift( cur );
14994		}
14995		cur = b;
14996		while ( ( cur = cur.parentNode ) ) {
14997			bp.unshift( cur );
14998		}
14999
15000		// Walk down the tree looking for a discrepancy
15001		while ( ap[ i ] === bp[ i ] ) {
15002			i++;
15003		}
15004
15005		return i ?
15006
15007			// Do a sibling check if the nodes have a common ancestor
15008			siblingCheck( ap[ i ], bp[ i ] ) :
15009
15010			// Otherwise nodes in our document sort first
15011			// Support: IE 11+, Edge 17 - 18+
15012			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
15013			// two documents; shallow comparisons work.
15014			/* eslint-disable eqeqeq */
15015			ap[ i ] == preferredDoc ? -1 :
15016			bp[ i ] == preferredDoc ? 1 :
15017			/* eslint-enable eqeqeq */
15018			0;
15019	};
15020
15021	return document;
15022};
15023
15024Sizzle.matches = function( expr, elements ) {
15025	return Sizzle( expr, null, null, elements );
15026};
15027
15028Sizzle.matchesSelector = function( elem, expr ) {
15029	setDocument( elem );
15030
15031	if ( support.matchesSelector && documentIsHTML &&
15032		!nonnativeSelectorCache[ expr + " " ] &&
15033		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
15034		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
15035
15036		try {
15037			var ret = matches.call( elem, expr );
15038
15039			// IE 9's matchesSelector returns false on disconnected nodes
15040			if ( ret || support.disconnectedMatch ||
15041
15042				// As well, disconnected nodes are said to be in a document
15043				// fragment in IE 9
15044				elem.document && elem.document.nodeType !== 11 ) {
15045				return ret;
15046			}
15047		} catch ( e ) {
15048			nonnativeSelectorCache( expr, true );
15049		}
15050	}
15051
15052	return Sizzle( expr, document, null, [ elem ] ).length > 0;
15053};
15054
15055Sizzle.contains = function( context, elem ) {
15056
15057	// Set document vars if needed
15058	// Support: IE 11+, Edge 17 - 18+
15059	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
15060	// two documents; shallow comparisons work.
15061	// eslint-disable-next-line eqeqeq
15062	if ( ( context.ownerDocument || context ) != document ) {
15063		setDocument( context );
15064	}
15065	return contains( context, elem );
15066};
15067
15068Sizzle.attr = function( elem, name ) {
15069
15070	// Set document vars if needed
15071	// Support: IE 11+, Edge 17 - 18+
15072	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
15073	// two documents; shallow comparisons work.
15074	// eslint-disable-next-line eqeqeq
15075	if ( ( elem.ownerDocument || elem ) != document ) {
15076		setDocument( elem );
15077	}
15078
15079	var fn = Expr.attrHandle[ name.toLowerCase() ],
15080
15081		// Don't get fooled by Object.prototype properties (jQuery #13807)
15082		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
15083			fn( elem, name, !documentIsHTML ) :
15084			undefined;
15085
15086	return val !== undefined ?
15087		val :
15088		support.attributes || !documentIsHTML ?
15089			elem.getAttribute( name ) :
15090			( val = elem.getAttributeNode( name ) ) && val.specified ?
15091				val.value :
15092				null;
15093};
15094
15095Sizzle.escape = function( sel ) {
15096	return ( sel + "" ).replace( rcssescape, fcssescape );
15097};
15098
15099Sizzle.error = function( msg ) {
15100	throw new Error( "Syntax error, unrecognized expression: " + msg );
15101};
15102
15103/**
15104 * Document sorting and removing duplicates
15105 * @param {ArrayLike} results
15106 */
15107Sizzle.uniqueSort = function( results ) {
15108	var elem,
15109		duplicates = [],
15110		j = 0,
15111		i = 0;
15112
15113	// Unless we *know* we can detect duplicates, assume their presence
15114	hasDuplicate = !support.detectDuplicates;
15115	sortInput = !support.sortStable && results.slice( 0 );
15116	results.sort( sortOrder );
15117
15118	if ( hasDuplicate ) {
15119		while ( ( elem = results[ i++ ] ) ) {
15120			if ( elem === results[ i ] ) {
15121				j = duplicates.push( i );
15122			}
15123		}
15124		while ( j-- ) {
15125			results.splice( duplicates[ j ], 1 );
15126		}
15127	}
15128
15129	// Clear input after sorting to release objects
15130	// See https://github.com/jquery/sizzle/pull/225
15131	sortInput = null;
15132
15133	return results;
15134};
15135
15136/**
15137 * Utility function for retrieving the text value of an array of DOM nodes
15138 * @param {Array|Element} elem
15139 */
15140getText = Sizzle.getText = function( elem ) {
15141	var node,
15142		ret = "",
15143		i = 0,
15144		nodeType = elem.nodeType;
15145
15146	if ( !nodeType ) {
15147
15148		// If no nodeType, this is expected to be an array
15149		while ( ( node = elem[ i++ ] ) ) {
15150
15151			// Do not traverse comment nodes
15152			ret += getText( node );
15153		}
15154	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
15155
15156		// Use textContent for elements
15157		// innerText usage removed for consistency of new lines (jQuery #11153)
15158		if ( typeof elem.textContent === "string" ) {
15159			return elem.textContent;
15160		} else {
15161
15162			// Traverse its children
15163			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
15164				ret += getText( elem );
15165			}
15166		}
15167	} else if ( nodeType === 3 || nodeType === 4 ) {
15168		return elem.nodeValue;
15169	}
15170
15171	// Do not include comment or processing instruction nodes
15172
15173	return ret;
15174};
15175
15176Expr = Sizzle.selectors = {
15177
15178	// Can be adjusted by the user
15179	cacheLength: 50,
15180
15181	createPseudo: markFunction,
15182
15183	match: matchExpr,
15184
15185	attrHandle: {},
15186
15187	find: {},
15188
15189	relative: {
15190		">": { dir: "parentNode", first: true },
15191		" ": { dir: "parentNode" },
15192		"+": { dir: "previousSibling", first: true },
15193		"~": { dir: "previousSibling" }
15194	},
15195
15196	preFilter: {
15197		"ATTR": function( match ) {
15198			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
15199
15200			// Move the given value to match[3] whether quoted or unquoted
15201			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
15202				match[ 5 ] || "" ).replace( runescape, funescape );
15203
15204			if ( match[ 2 ] === "~=" ) {
15205				match[ 3 ] = " " + match[ 3 ] + " ";
15206			}
15207
15208			return match.slice( 0, 4 );
15209		},
15210
15211		"CHILD": function( match ) {
15212
15213			/* matches from matchExpr["CHILD"]
15214				1 type (only|nth|...)
15215				2 what (child|of-type)
15216				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
15217				4 xn-component of xn+y argument ([+-]?\d*n|)
15218				5 sign of xn-component
15219				6 x of xn-component
15220				7 sign of y-component
15221				8 y of y-component
15222			*/
15223			match[ 1 ] = match[ 1 ].toLowerCase();
15224
15225			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
15226
15227				// nth-* requires argument
15228				if ( !match[ 3 ] ) {
15229					Sizzle.error( match[ 0 ] );
15230				}
15231
15232				// numeric x and y parameters for Expr.filter.CHILD
15233				// remember that false/true cast respectively to 0/1
15234				match[ 4 ] = +( match[ 4 ] ?
15235					match[ 5 ] + ( match[ 6 ] || 1 ) :
15236					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
15237				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
15238
15239				// other types prohibit arguments
15240			} else if ( match[ 3 ] ) {
15241				Sizzle.error( match[ 0 ] );
15242			}
15243
15244			return match;
15245		},
15246
15247		"PSEUDO": function( match ) {
15248			var excess,
15249				unquoted = !match[ 6 ] && match[ 2 ];
15250
15251			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
15252				return null;
15253			}
15254
15255			// Accept quoted arguments as-is
15256			if ( match[ 3 ] ) {
15257				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
15258
15259			// Strip excess characters from unquoted arguments
15260			} else if ( unquoted && rpseudo.test( unquoted ) &&
15261
15262				// Get excess from tokenize (recursively)
15263				( excess = tokenize( unquoted, true ) ) &&
15264
15265				// advance to the next closing parenthesis
15266				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
15267
15268				// excess is a negative index
15269				match[ 0 ] = match[ 0 ].slice( 0, excess );
15270				match[ 2 ] = unquoted.slice( 0, excess );
15271			}
15272
15273			// Return only captures needed by the pseudo filter method (type and argument)
15274			return match.slice( 0, 3 );
15275		}
15276	},
15277
15278	filter: {
15279
15280		"TAG": function( nodeNameSelector ) {
15281			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
15282			return nodeNameSelector === "*" ?
15283				function() {
15284					return true;
15285				} :
15286				function( elem ) {
15287					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
15288				};
15289		},
15290
15291		"CLASS": function( className ) {
15292			var pattern = classCache[ className + " " ];
15293
15294			return pattern ||
15295				( pattern = new RegExp( "(^|" + whitespace +
15296					")" + className + "(" + whitespace + "|$)" ) ) && classCache(
15297						className, function( elem ) {
15298							return pattern.test(
15299								typeof elem.className === "string" && elem.className ||
15300								typeof elem.getAttribute !== "undefined" &&
15301									elem.getAttribute( "class" ) ||
15302								""
15303							);
15304				} );
15305		},
15306
15307		"ATTR": function( name, operator, check ) {
15308			return function( elem ) {
15309				var result = Sizzle.attr( elem, name );
15310
15311				if ( result == null ) {
15312					return operator === "!=";
15313				}
15314				if ( !operator ) {
15315					return true;
15316				}
15317
15318				result += "";
15319
15320				/* eslint-disable max-len */
15321
15322				return operator === "=" ? result === check :
15323					operator === "!=" ? result !== check :
15324					operator === "^=" ? check && result.indexOf( check ) === 0 :
15325					operator === "*=" ? check && result.indexOf( check ) > -1 :
15326					operator === "$=" ? check && result.slice( -check.length ) === check :
15327					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
15328					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
15329					false;
15330				/* eslint-enable max-len */
15331
15332			};
15333		},
15334
15335		"CHILD": function( type, what, _argument, first, last ) {
15336			var simple = type.slice( 0, 3 ) !== "nth",
15337				forward = type.slice( -4 ) !== "last",
15338				ofType = what === "of-type";
15339
15340			return first === 1 && last === 0 ?
15341
15342				// Shortcut for :nth-*(n)
15343				function( elem ) {
15344					return !!elem.parentNode;
15345				} :
15346
15347				function( elem, _context, xml ) {
15348					var cache, uniqueCache, outerCache, node, nodeIndex, start,
15349						dir = simple !== forward ? "nextSibling" : "previousSibling",
15350						parent = elem.parentNode,
15351						name = ofType && elem.nodeName.toLowerCase(),
15352						useCache = !xml && !ofType,
15353						diff = false;
15354
15355					if ( parent ) {
15356
15357						// :(first|last|only)-(child|of-type)
15358						if ( simple ) {
15359							while ( dir ) {
15360								node = elem;
15361								while ( ( node = node[ dir ] ) ) {
15362									if ( ofType ?
15363										node.nodeName.toLowerCase() === name :
15364										node.nodeType === 1 ) {
15365
15366										return false;
15367									}
15368								}
15369
15370								// Reverse direction for :only-* (if we haven't yet done so)
15371								start = dir = type === "only" && !start && "nextSibling";
15372							}
15373							return true;
15374						}
15375
15376						start = [ forward ? parent.firstChild : parent.lastChild ];
15377
15378						// non-xml :nth-child(...) stores cache data on `parent`
15379						if ( forward && useCache ) {
15380
15381							// Seek `elem` from a previously-cached index
15382
15383							// ...in a gzip-friendly way
15384							node = parent;
15385							outerCache = node[ expando ] || ( node[ expando ] = {} );
15386
15387							// Support: IE <9 only
15388							// Defend against cloned attroperties (jQuery gh-1709)
15389							uniqueCache = outerCache[ node.uniqueID ] ||
15390								( outerCache[ node.uniqueID ] = {} );
15391
15392							cache = uniqueCache[ type ] || [];
15393							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
15394							diff = nodeIndex && cache[ 2 ];
15395							node = nodeIndex && parent.childNodes[ nodeIndex ];
15396
15397							while ( ( node = ++nodeIndex && node && node[ dir ] ||
15398
15399								// Fallback to seeking `elem` from the start
15400								( diff = nodeIndex = 0 ) || start.pop() ) ) {
15401
15402								// When found, cache indexes on `parent` and break
15403								if ( node.nodeType === 1 && ++diff && node === elem ) {
15404									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
15405									break;
15406								}
15407							}
15408
15409						} else {
15410
15411							// Use previously-cached element index if available
15412							if ( useCache ) {
15413
15414								// ...in a gzip-friendly way
15415								node = elem;
15416								outerCache = node[ expando ] || ( node[ expando ] = {} );
15417
15418								// Support: IE <9 only
15419								// Defend against cloned attroperties (jQuery gh-1709)
15420								uniqueCache = outerCache[ node.uniqueID ] ||
15421									( outerCache[ node.uniqueID ] = {} );
15422
15423								cache = uniqueCache[ type ] || [];
15424								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
15425								diff = nodeIndex;
15426							}
15427
15428							// xml :nth-child(...)
15429							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
15430							if ( diff === false ) {
15431
15432								// Use the same loop as above to seek `elem` from the start
15433								while ( ( node = ++nodeIndex && node && node[ dir ] ||
15434									( diff = nodeIndex = 0 ) || start.pop() ) ) {
15435
15436									if ( ( ofType ?
15437										node.nodeName.toLowerCase() === name :
15438										node.nodeType === 1 ) &&
15439										++diff ) {
15440
15441										// Cache the index of each encountered element
15442										if ( useCache ) {
15443											outerCache = node[ expando ] ||
15444												( node[ expando ] = {} );
15445
15446											// Support: IE <9 only
15447											// Defend against cloned attroperties (jQuery gh-1709)
15448											uniqueCache = outerCache[ node.uniqueID ] ||
15449												( outerCache[ node.uniqueID ] = {} );
15450
15451											uniqueCache[ type ] = [ dirruns, diff ];
15452										}
15453
15454										if ( node === elem ) {
15455											break;
15456										}
15457									}
15458								}
15459							}
15460						}
15461
15462						// Incorporate the offset, then check against cycle size
15463						diff -= last;
15464						return diff === first || ( diff % first === 0 && diff / first >= 0 );
15465					}
15466				};
15467		},
15468
15469		"PSEUDO": function( pseudo, argument ) {
15470
15471			// pseudo-class names are case-insensitive
15472			// http://www.w3.org/TR/selectors/#pseudo-classes
15473			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
15474			// Remember that setFilters inherits from pseudos
15475			var args,
15476				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
15477					Sizzle.error( "unsupported pseudo: " + pseudo );
15478
15479			// The user may use createPseudo to indicate that
15480			// arguments are needed to create the filter function
15481			// just as Sizzle does
15482			if ( fn[ expando ] ) {
15483				return fn( argument );
15484			}
15485
15486			// But maintain support for old signatures
15487			if ( fn.length > 1 ) {
15488				args = [ pseudo, pseudo, "", argument ];
15489				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
15490					markFunction( function( seed, matches ) {
15491						var idx,
15492							matched = fn( seed, argument ),
15493							i = matched.length;
15494						while ( i-- ) {
15495							idx = indexOf( seed, matched[ i ] );
15496							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
15497						}
15498					} ) :
15499					function( elem ) {
15500						return fn( elem, 0, args );
15501					};
15502			}
15503
15504			return fn;
15505		}
15506	},
15507
15508	pseudos: {
15509
15510		// Potentially complex pseudos
15511		"not": markFunction( function( selector ) {
15512
15513			// Trim the selector passed to compile
15514			// to avoid treating leading and trailing
15515			// spaces as combinators
15516			var input = [],
15517				results = [],
15518				matcher = compile( selector.replace( rtrim, "$1" ) );
15519
15520			return matcher[ expando ] ?
15521				markFunction( function( seed, matches, _context, xml ) {
15522					var elem,
15523						unmatched = matcher( seed, null, xml, [] ),
15524						i = seed.length;
15525
15526					// Match elements unmatched by `matcher`
15527					while ( i-- ) {
15528						if ( ( elem = unmatched[ i ] ) ) {
15529							seed[ i ] = !( matches[ i ] = elem );
15530						}
15531					}
15532				} ) :
15533				function( elem, _context, xml ) {
15534					input[ 0 ] = elem;
15535					matcher( input, null, xml, results );
15536
15537					// Don't keep the element (issue #299)
15538					input[ 0 ] = null;
15539					return !results.pop();
15540				};
15541		} ),
15542
15543		"has": markFunction( function( selector ) {
15544			return function( elem ) {
15545				return Sizzle( selector, elem ).length > 0;
15546			};
15547		} ),
15548
15549		"contains": markFunction( function( text ) {
15550			text = text.replace( runescape, funescape );
15551			return function( elem ) {
15552				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
15553			};
15554		} ),
15555
15556		// "Whether an element is represented by a :lang() selector
15557		// is based solely on the element's language value
15558		// being equal to the identifier C,
15559		// or beginning with the identifier C immediately followed by "-".
15560		// The matching of C against the element's language value is performed case-insensitively.
15561		// The identifier C does not have to be a valid language name."
15562		// http://www.w3.org/TR/selectors/#lang-pseudo
15563		"lang": markFunction( function( lang ) {
15564
15565			// lang value must be a valid identifier
15566			if ( !ridentifier.test( lang || "" ) ) {
15567				Sizzle.error( "unsupported lang: " + lang );
15568			}
15569			lang = lang.replace( runescape, funescape ).toLowerCase();
15570			return function( elem ) {
15571				var elemLang;
15572				do {
15573					if ( ( elemLang = documentIsHTML ?
15574						elem.lang :
15575						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
15576
15577						elemLang = elemLang.toLowerCase();
15578						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
15579					}
15580				} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
15581				return false;
15582			};
15583		} ),
15584
15585		// Miscellaneous
15586		"target": function( elem ) {
15587			var hash = window.location && window.location.hash;
15588			return hash && hash.slice( 1 ) === elem.id;
15589		},
15590
15591		"root": function( elem ) {
15592			return elem === docElem;
15593		},
15594
15595		"focus": function( elem ) {
15596			return elem === document.activeElement &&
15597				( !document.hasFocus || document.hasFocus() ) &&
15598				!!( elem.type || elem.href || ~elem.tabIndex );
15599		},
15600
15601		// Boolean properties
15602		"enabled": createDisabledPseudo( false ),
15603		"disabled": createDisabledPseudo( true ),
15604
15605		"checked": function( elem ) {
15606
15607			// In CSS3, :checked should return both checked and selected elements
15608			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
15609			var nodeName = elem.nodeName.toLowerCase();
15610			return ( nodeName === "input" && !!elem.checked ) ||
15611				( nodeName === "option" && !!elem.selected );
15612		},
15613
15614		"selected": function( elem ) {
15615
15616			// Accessing this property makes selected-by-default
15617			// options in Safari work properly
15618			if ( elem.parentNode ) {
15619				// eslint-disable-next-line no-unused-expressions
15620				elem.parentNode.selectedIndex;
15621			}
15622
15623			return elem.selected === true;
15624		},
15625
15626		// Contents
15627		"empty": function( elem ) {
15628
15629			// http://www.w3.org/TR/selectors/#empty-pseudo
15630			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
15631			//   but not by others (comment: 8; processing instruction: 7; etc.)
15632			// nodeType < 6 works because attributes (2) do not appear as children
15633			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
15634				if ( elem.nodeType < 6 ) {
15635					return false;
15636				}
15637			}
15638			return true;
15639		},
15640
15641		"parent": function( elem ) {
15642			return !Expr.pseudos[ "empty" ]( elem );
15643		},
15644
15645		// Element/input types
15646		"header": function( elem ) {
15647			return rheader.test( elem.nodeName );
15648		},
15649
15650		"input": function( elem ) {
15651			return rinputs.test( elem.nodeName );
15652		},
15653
15654		"button": function( elem ) {
15655			var name = elem.nodeName.toLowerCase();
15656			return name === "input" && elem.type === "button" || name === "button";
15657		},
15658
15659		"text": function( elem ) {
15660			var attr;
15661			return elem.nodeName.toLowerCase() === "input" &&
15662				elem.type === "text" &&
15663
15664				// Support: IE<8
15665				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
15666				( ( attr = elem.getAttribute( "type" ) ) == null ||
15667					attr.toLowerCase() === "text" );
15668		},
15669
15670		// Position-in-collection
15671		"first": createPositionalPseudo( function() {
15672			return [ 0 ];
15673		} ),
15674
15675		"last": createPositionalPseudo( function( _matchIndexes, length ) {
15676			return [ length - 1 ];
15677		} ),
15678
15679		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
15680			return [ argument < 0 ? argument + length : argument ];
15681		} ),
15682
15683		"even": createPositionalPseudo( function( matchIndexes, length ) {
15684			var i = 0;
15685			for ( ; i < length; i += 2 ) {
15686				matchIndexes.push( i );
15687			}
15688			return matchIndexes;
15689		} ),
15690
15691		"odd": createPositionalPseudo( function( matchIndexes, length ) {
15692			var i = 1;
15693			for ( ; i < length; i += 2 ) {
15694				matchIndexes.push( i );
15695			}
15696			return matchIndexes;
15697		} ),
15698
15699		"lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
15700			var i = argument < 0 ?
15701				argument + length :
15702				argument > length ?
15703					length :
15704					argument;
15705			for ( ; --i >= 0; ) {
15706				matchIndexes.push( i );
15707			}
15708			return matchIndexes;
15709		} ),
15710
15711		"gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
15712			var i = argument < 0 ? argument + length : argument;
15713			for ( ; ++i < length; ) {
15714				matchIndexes.push( i );
15715			}
15716			return matchIndexes;
15717		} )
15718	}
15719};
15720
15721Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
15722
15723// Add button/input type pseudos
15724for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
15725	Expr.pseudos[ i ] = createInputPseudo( i );
15726}
15727for ( i in { submit: true, reset: true } ) {
15728	Expr.pseudos[ i ] = createButtonPseudo( i );
15729}
15730
15731// Easy API for creating new setFilters
15732function setFilters() {}
15733setFilters.prototype = Expr.filters = Expr.pseudos;
15734Expr.setFilters = new setFilters();
15735
15736tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
15737	var matched, match, tokens, type,
15738		soFar, groups, preFilters,
15739		cached = tokenCache[ selector + " " ];
15740
15741	if ( cached ) {
15742		return parseOnly ? 0 : cached.slice( 0 );
15743	}
15744
15745	soFar = selector;
15746	groups = [];
15747	preFilters = Expr.preFilter;
15748
15749	while ( soFar ) {
15750
15751		// Comma and first run
15752		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
15753			if ( match ) {
15754
15755				// Don't consume trailing commas as valid
15756				soFar = soFar.slice( match[ 0 ].length ) || soFar;
15757			}
15758			groups.push( ( tokens = [] ) );
15759		}
15760
15761		matched = false;
15762
15763		// Combinators
15764		if ( ( match = rcombinators.exec( soFar ) ) ) {
15765			matched = match.shift();
15766			tokens.push( {
15767				value: matched,
15768
15769				// Cast descendant combinators to space
15770				type: match[ 0 ].replace( rtrim, " " )
15771			} );
15772			soFar = soFar.slice( matched.length );
15773		}
15774
15775		// Filters
15776		for ( type in Expr.filter ) {
15777			if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
15778				( match = preFilters[ type ]( match ) ) ) ) {
15779				matched = match.shift();
15780				tokens.push( {
15781					value: matched,
15782					type: type,
15783					matches: match
15784				} );
15785				soFar = soFar.slice( matched.length );
15786			}
15787		}
15788
15789		if ( !matched ) {
15790			break;
15791		}
15792	}
15793
15794	// Return the length of the invalid excess
15795	// if we're just parsing
15796	// Otherwise, throw an error or return tokens
15797	return parseOnly ?
15798		soFar.length :
15799		soFar ?
15800			Sizzle.error( selector ) :
15801
15802			// Cache the tokens
15803			tokenCache( selector, groups ).slice( 0 );
15804};
15805
15806function toSelector( tokens ) {
15807	var i = 0,
15808		len = tokens.length,
15809		selector = "";
15810	for ( ; i < len; i++ ) {
15811		selector += tokens[ i ].value;
15812	}
15813	return selector;
15814}
15815
15816function addCombinator( matcher, combinator, base ) {
15817	var dir = combinator.dir,
15818		skip = combinator.next,
15819		key = skip || dir,
15820		checkNonElements = base && key === "parentNode",
15821		doneName = done++;
15822
15823	return combinator.first ?
15824
15825		// Check against closest ancestor/preceding element
15826		function( elem, context, xml ) {
15827			while ( ( elem = elem[ dir ] ) ) {
15828				if ( elem.nodeType === 1 || checkNonElements ) {
15829					return matcher( elem, context, xml );
15830				}
15831			}
15832			return false;
15833		} :
15834
15835		// Check against all ancestor/preceding elements
15836		function( elem, context, xml ) {
15837			var oldCache, uniqueCache, outerCache,
15838				newCache = [ dirruns, doneName ];
15839
15840			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
15841			if ( xml ) {
15842				while ( ( elem = elem[ dir ] ) ) {
15843					if ( elem.nodeType === 1 || checkNonElements ) {
15844						if ( matcher( elem, context, xml ) ) {
15845							return true;
15846						}
15847					}
15848				}
15849			} else {
15850				while ( ( elem = elem[ dir ] ) ) {
15851					if ( elem.nodeType === 1 || checkNonElements ) {
15852						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
15853
15854						// Support: IE <9 only
15855						// Defend against cloned attroperties (jQuery gh-1709)
15856						uniqueCache = outerCache[ elem.uniqueID ] ||
15857							( outerCache[ elem.uniqueID ] = {} );
15858
15859						if ( skip && skip === elem.nodeName.toLowerCase() ) {
15860							elem = elem[ dir ] || elem;
15861						} else if ( ( oldCache = uniqueCache[ key ] ) &&
15862							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
15863
15864							// Assign to newCache so results back-propagate to previous elements
15865							return ( newCache[ 2 ] = oldCache[ 2 ] );
15866						} else {
15867
15868							// Reuse newcache so results back-propagate to previous elements
15869							uniqueCache[ key ] = newCache;
15870
15871							// A match means we're done; a fail means we have to keep checking
15872							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
15873								return true;
15874							}
15875						}
15876					}
15877				}
15878			}
15879			return false;
15880		};
15881}
15882
15883function elementMatcher( matchers ) {
15884	return matchers.length > 1 ?
15885		function( elem, context, xml ) {
15886			var i = matchers.length;
15887			while ( i-- ) {
15888				if ( !matchers[ i ]( elem, context, xml ) ) {
15889					return false;
15890				}
15891			}
15892			return true;
15893		} :
15894		matchers[ 0 ];
15895}
15896
15897function multipleContexts( selector, contexts, results ) {
15898	var i = 0,
15899		len = contexts.length;
15900	for ( ; i < len; i++ ) {
15901		Sizzle( selector, contexts[ i ], results );
15902	}
15903	return results;
15904}
15905
15906function condense( unmatched, map, filter, context, xml ) {
15907	var elem,
15908		newUnmatched = [],
15909		i = 0,
15910		len = unmatched.length,
15911		mapped = map != null;
15912
15913	for ( ; i < len; i++ ) {
15914		if ( ( elem = unmatched[ i ] ) ) {
15915			if ( !filter || filter( elem, context, xml ) ) {
15916				newUnmatched.push( elem );
15917				if ( mapped ) {
15918					map.push( i );
15919				}
15920			}
15921		}
15922	}
15923
15924	return newUnmatched;
15925}
15926
15927function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
15928	if ( postFilter && !postFilter[ expando ] ) {
15929		postFilter = setMatcher( postFilter );
15930	}
15931	if ( postFinder && !postFinder[ expando ] ) {
15932		postFinder = setMatcher( postFinder, postSelector );
15933	}
15934	return markFunction( function( seed, results, context, xml ) {
15935		var temp, i, elem,
15936			preMap = [],
15937			postMap = [],
15938			preexisting = results.length,
15939
15940			// Get initial elements from seed or context
15941			elems = seed || multipleContexts(
15942				selector || "*",
15943				context.nodeType ? [ context ] : context,
15944				[]
15945			),
15946
15947			// Prefilter to get matcher input, preserving a map for seed-results synchronization
15948			matcherIn = preFilter && ( seed || !selector ) ?
15949				condense( elems, preMap, preFilter, context, xml ) :
15950				elems,
15951
15952			matcherOut = matcher ?
15953
15954				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
15955				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
15956
15957					// ...intermediate processing is necessary
15958					[] :
15959
15960					// ...otherwise use results directly
15961					results :
15962				matcherIn;
15963
15964		// Find primary matches
15965		if ( matcher ) {
15966			matcher( matcherIn, matcherOut, context, xml );
15967		}
15968
15969		// Apply postFilter
15970		if ( postFilter ) {
15971			temp = condense( matcherOut, postMap );
15972			postFilter( temp, [], context, xml );
15973
15974			// Un-match failing elements by moving them back to matcherIn
15975			i = temp.length;
15976			while ( i-- ) {
15977				if ( ( elem = temp[ i ] ) ) {
15978					matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
15979				}
15980			}
15981		}
15982
15983		if ( seed ) {
15984			if ( postFinder || preFilter ) {
15985				if ( postFinder ) {
15986
15987					// Get the final matcherOut by condensing this intermediate into postFinder contexts
15988					temp = [];
15989					i = matcherOut.length;
15990					while ( i-- ) {
15991						if ( ( elem = matcherOut[ i ] ) ) {
15992
15993							// Restore matcherIn since elem is not yet a final match
15994							temp.push( ( matcherIn[ i ] = elem ) );
15995						}
15996					}
15997					postFinder( null, ( matcherOut = [] ), temp, xml );
15998				}
15999
16000				// Move matched elements from seed to results to keep them synchronized
16001				i = matcherOut.length;
16002				while ( i-- ) {
16003					if ( ( elem = matcherOut[ i ] ) &&
16004						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
16005
16006						seed[ temp ] = !( results[ temp ] = elem );
16007					}
16008				}
16009			}
16010
16011		// Add elements to results, through postFinder if defined
16012		} else {
16013			matcherOut = condense(
16014				matcherOut === results ?
16015					matcherOut.splice( preexisting, matcherOut.length ) :
16016					matcherOut
16017			);
16018			if ( postFinder ) {
16019				postFinder( null, results, matcherOut, xml );
16020			} else {
16021				push.apply( results, matcherOut );
16022			}
16023		}
16024	} );
16025}
16026
16027function matcherFromTokens( tokens ) {
16028	var checkContext, matcher, j,
16029		len = tokens.length,
16030		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
16031		implicitRelative = leadingRelative || Expr.relative[ " " ],
16032		i = leadingRelative ? 1 : 0,
16033
16034		// The foundational matcher ensures that elements are reachable from top-level context(s)
16035		matchContext = addCombinator( function( elem ) {
16036			return elem === checkContext;
16037		}, implicitRelative, true ),
16038		matchAnyContext = addCombinator( function( elem ) {
16039			return indexOf( checkContext, elem ) > -1;
16040		}, implicitRelative, true ),
16041		matchers = [ function( elem, context, xml ) {
16042			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
16043				( checkContext = context ).nodeType ?
16044					matchContext( elem, context, xml ) :
16045					matchAnyContext( elem, context, xml ) );
16046
16047			// Avoid hanging onto element (issue #299)
16048			checkContext = null;
16049			return ret;
16050		} ];
16051
16052	for ( ; i < len; i++ ) {
16053		if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
16054			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
16055		} else {
16056			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
16057
16058			// Return special upon seeing a positional matcher
16059			if ( matcher[ expando ] ) {
16060
16061				// Find the next relative operator (if any) for proper handling
16062				j = ++i;
16063				for ( ; j < len; j++ ) {
16064					if ( Expr.relative[ tokens[ j ].type ] ) {
16065						break;
16066					}
16067				}
16068				return setMatcher(
16069					i > 1 && elementMatcher( matchers ),
16070					i > 1 && toSelector(
16071
16072					// If the preceding token was a descendant combinator, insert an implicit any-element `*`
16073					tokens
16074						.slice( 0, i - 1 )
16075						.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
16076					).replace( rtrim, "$1" ),
16077					matcher,
16078					i < j && matcherFromTokens( tokens.slice( i, j ) ),
16079					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
16080					j < len && toSelector( tokens )
16081				);
16082			}
16083			matchers.push( matcher );
16084		}
16085	}
16086
16087	return elementMatcher( matchers );
16088}
16089
16090function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
16091	var bySet = setMatchers.length > 0,
16092		byElement = elementMatchers.length > 0,
16093		superMatcher = function( seed, context, xml, results, outermost ) {
16094			var elem, j, matcher,
16095				matchedCount = 0,
16096				i = "0",
16097				unmatched = seed && [],
16098				setMatched = [],
16099				contextBackup = outermostContext,
16100
16101				// We must always have either seed elements or outermost context
16102				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
16103
16104				// Use integer dirruns iff this is the outermost matcher
16105				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
16106				len = elems.length;
16107
16108			if ( outermost ) {
16109
16110				// Support: IE 11+, Edge 17 - 18+
16111				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
16112				// two documents; shallow comparisons work.
16113				// eslint-disable-next-line eqeqeq
16114				outermostContext = context == document || context || outermost;
16115			}
16116
16117			// Add elements passing elementMatchers directly to results
16118			// Support: IE<9, Safari
16119			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
16120			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
16121				if ( byElement && elem ) {
16122					j = 0;
16123
16124					// Support: IE 11+, Edge 17 - 18+
16125					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
16126					// two documents; shallow comparisons work.
16127					// eslint-disable-next-line eqeqeq
16128					if ( !context && elem.ownerDocument != document ) {
16129						setDocument( elem );
16130						xml = !documentIsHTML;
16131					}
16132					while ( ( matcher = elementMatchers[ j++ ] ) ) {
16133						if ( matcher( elem, context || document, xml ) ) {
16134							results.push( elem );
16135							break;
16136						}
16137					}
16138					if ( outermost ) {
16139						dirruns = dirrunsUnique;
16140					}
16141				}
16142
16143				// Track unmatched elements for set filters
16144				if ( bySet ) {
16145
16146					// They will have gone through all possible matchers
16147					if ( ( elem = !matcher && elem ) ) {
16148						matchedCount--;
16149					}
16150
16151					// Lengthen the array for every element, matched or not
16152					if ( seed ) {
16153						unmatched.push( elem );
16154					}
16155				}
16156			}
16157
16158			// `i` is now the count of elements visited above, and adding it to `matchedCount`
16159			// makes the latter nonnegative.
16160			matchedCount += i;
16161
16162			// Apply set filters to unmatched elements
16163			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
16164			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
16165			// no element matchers and no seed.
16166			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
16167			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
16168			// numerically zero.
16169			if ( bySet && i !== matchedCount ) {
16170				j = 0;
16171				while ( ( matcher = setMatchers[ j++ ] ) ) {
16172					matcher( unmatched, setMatched, context, xml );
16173				}
16174
16175				if ( seed ) {
16176
16177					// Reintegrate element matches to eliminate the need for sorting
16178					if ( matchedCount > 0 ) {
16179						while ( i-- ) {
16180							if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
16181								setMatched[ i ] = pop.call( results );
16182							}
16183						}
16184					}
16185
16186					// Discard index placeholder values to get only actual matches
16187					setMatched = condense( setMatched );
16188				}
16189
16190				// Add matches to results
16191				push.apply( results, setMatched );
16192
16193				// Seedless set matches succeeding multiple successful matchers stipulate sorting
16194				if ( outermost && !seed && setMatched.length > 0 &&
16195					( matchedCount + setMatchers.length ) > 1 ) {
16196
16197					Sizzle.uniqueSort( results );
16198				}
16199			}
16200
16201			// Override manipulation of globals by nested matchers
16202			if ( outermost ) {
16203				dirruns = dirrunsUnique;
16204				outermostContext = contextBackup;
16205			}
16206
16207			return unmatched;
16208		};
16209
16210	return bySet ?
16211		markFunction( superMatcher ) :
16212		superMatcher;
16213}
16214
16215compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
16216	var i,
16217		setMatchers = [],
16218		elementMatchers = [],
16219		cached = compilerCache[ selector + " " ];
16220
16221	if ( !cached ) {
16222
16223		// Generate a function of recursive functions that can be used to check each element
16224		if ( !match ) {
16225			match = tokenize( selector );
16226		}
16227		i = match.length;
16228		while ( i-- ) {
16229			cached = matcherFromTokens( match[ i ] );
16230			if ( cached[ expando ] ) {
16231				setMatchers.push( cached );
16232			} else {
16233				elementMatchers.push( cached );
16234			}
16235		}
16236
16237		// Cache the compiled function
16238		cached = compilerCache(
16239			selector,
16240			matcherFromGroupMatchers( elementMatchers, setMatchers )
16241		);
16242
16243		// Save selector and tokenization
16244		cached.selector = selector;
16245	}
16246	return cached;
16247};
16248
16249/**
16250 * A low-level selection function that works with Sizzle's compiled
16251 *  selector functions
16252 * @param {String|Function} selector A selector or a pre-compiled
16253 *  selector function built with Sizzle.compile
16254 * @param {Element} context
16255 * @param {Array} [results]
16256 * @param {Array} [seed] A set of elements to match against
16257 */
16258select = Sizzle.select = function( selector, context, results, seed ) {
16259	var i, tokens, token, type, find,
16260		compiled = typeof selector === "function" && selector,
16261		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
16262
16263	results = results || [];
16264
16265	// Try to minimize operations if there is only one selector in the list and no seed
16266	// (the latter of which guarantees us context)
16267	if ( match.length === 1 ) {
16268
16269		// Reduce context if the leading compound selector is an ID
16270		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
16271		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
16272			context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
16273
16274			context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
16275				.replace( runescape, funescape ), context ) || [] )[ 0 ];
16276			if ( !context ) {
16277				return results;
16278
16279			// Precompiled matchers will still verify ancestry, so step up a level
16280			} else if ( compiled ) {
16281				context = context.parentNode;
16282			}
16283
16284			selector = selector.slice( tokens.shift().value.length );
16285		}
16286
16287		// Fetch a seed set for right-to-left matching
16288		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
16289		while ( i-- ) {
16290			token = tokens[ i ];
16291
16292			// Abort if we hit a combinator
16293			if ( Expr.relative[ ( type = token.type ) ] ) {
16294				break;
16295			}
16296			if ( ( find = Expr.find[ type ] ) ) {
16297
16298				// Search, expanding context for leading sibling combinators
16299				if ( ( seed = find(
16300					token.matches[ 0 ].replace( runescape, funescape ),
16301					rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
16302						context
16303				) ) ) {
16304
16305					// If seed is empty or no tokens remain, we can return early
16306					tokens.splice( i, 1 );
16307					selector = seed.length && toSelector( tokens );
16308					if ( !selector ) {
16309						push.apply( results, seed );
16310						return results;
16311					}
16312
16313					break;
16314				}
16315			}
16316		}
16317	}
16318
16319	// Compile and execute a filtering function if one is not provided
16320	// Provide `match` to avoid retokenization if we modified the selector above
16321	( compiled || compile( selector, match ) )(
16322		seed,
16323		context,
16324		!documentIsHTML,
16325		results,
16326		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
16327	);
16328	return results;
16329};
16330
16331// One-time assignments
16332
16333// Sort stability
16334support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
16335
16336// Support: Chrome 14-35+
16337// Always assume duplicates if they aren't passed to the comparison function
16338support.detectDuplicates = !!hasDuplicate;
16339
16340// Initialize against the default document
16341setDocument();
16342
16343// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
16344// Detached nodes confoundingly follow *each other*
16345support.sortDetached = assert( function( el ) {
16346
16347	// Should return 1, but returns 4 (following)
16348	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
16349} );
16350
16351// Support: IE<8
16352// Prevent attribute/property "interpolation"
16353// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
16354if ( !assert( function( el ) {
16355	el.innerHTML = "<a href='#'></a>";
16356	return el.firstChild.getAttribute( "href" ) === "#";
16357} ) ) {
16358	addHandle( "type|href|height|width", function( elem, name, isXML ) {
16359		if ( !isXML ) {
16360			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
16361		}
16362	} );
16363}
16364
16365// Support: IE<9
16366// Use defaultValue in place of getAttribute("value")
16367if ( !support.attributes || !assert( function( el ) {
16368	el.innerHTML = "<input/>";
16369	el.firstChild.setAttribute( "value", "" );
16370	return el.firstChild.getAttribute( "value" ) === "";
16371} ) ) {
16372	addHandle( "value", function( elem, _name, isXML ) {
16373		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
16374			return elem.defaultValue;
16375		}
16376	} );
16377}
16378
16379// Support: IE<9
16380// Use getAttributeNode to fetch booleans when getAttribute lies
16381if ( !assert( function( el ) {
16382	return el.getAttribute( "disabled" ) == null;
16383} ) ) {
16384	addHandle( booleans, function( elem, name, isXML ) {
16385		var val;
16386		if ( !isXML ) {
16387			return elem[ name ] === true ? name.toLowerCase() :
16388				( val = elem.getAttributeNode( name ) ) && val.specified ?
16389					val.value :
16390					null;
16391		}
16392	} );
16393}
16394
16395return Sizzle;
16396
16397} )( window );
16398
16399
16400
16401jQuery.find = Sizzle;
16402jQuery.expr = Sizzle.selectors;
16403
16404// Deprecated
16405jQuery.expr[ ":" ] = jQuery.expr.pseudos;
16406jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
16407jQuery.text = Sizzle.getText;
16408jQuery.isXMLDoc = Sizzle.isXML;
16409jQuery.contains = Sizzle.contains;
16410jQuery.escapeSelector = Sizzle.escape;
16411
16412
16413
16414
16415var dir = function( elem, dir, until ) {
16416	var matched = [],
16417		truncate = until !== undefined;
16418
16419	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
16420		if ( elem.nodeType === 1 ) {
16421			if ( truncate && jQuery( elem ).is( until ) ) {
16422				break;
16423			}
16424			matched.push( elem );
16425		}
16426	}
16427	return matched;
16428};
16429
16430
16431var siblings = function( n, elem ) {
16432	var matched = [];
16433
16434	for ( ; n; n = n.nextSibling ) {
16435		if ( n.nodeType === 1 && n !== elem ) {
16436			matched.push( n );
16437		}
16438	}
16439
16440	return matched;
16441};
16442
16443
16444var rneedsContext = jQuery.expr.match.needsContext;
16445
16446
16447
16448function nodeName( elem, name ) {
16449
16450	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
16451
16452}
16453var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
16454
16455
16456
16457// Implement the identical functionality for filter and not
16458function winnow( elements, qualifier, not ) {
16459	if ( isFunction( qualifier ) ) {
16460		return jQuery.grep( elements, function( elem, i ) {
16461			return !!qualifier.call( elem, i, elem ) !== not;
16462		} );
16463	}
16464
16465	// Single element
16466	if ( qualifier.nodeType ) {
16467		return jQuery.grep( elements, function( elem ) {
16468			return ( elem === qualifier ) !== not;
16469		} );
16470	}
16471
16472	// Arraylike of elements (jQuery, arguments, Array)
16473	if ( typeof qualifier !== "string" ) {
16474		return jQuery.grep( elements, function( elem ) {
16475			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
16476		} );
16477	}
16478
16479	// Filtered directly for both simple and complex selectors
16480	return jQuery.filter( qualifier, elements, not );
16481}
16482
16483jQuery.filter = function( expr, elems, not ) {
16484	var elem = elems[ 0 ];
16485
16486	if ( not ) {
16487		expr = ":not(" + expr + ")";
16488	}
16489
16490	if ( elems.length === 1 && elem.nodeType === 1 ) {
16491		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
16492	}
16493
16494	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
16495		return elem.nodeType === 1;
16496	} ) );
16497};
16498
16499jQuery.fn.extend( {
16500	find: function( selector ) {
16501		var i, ret,
16502			len = this.length,
16503			self = this;
16504
16505		if ( typeof selector !== "string" ) {
16506			return this.pushStack( jQuery( selector ).filter( function() {
16507				for ( i = 0; i < len; i++ ) {
16508					if ( jQuery.contains( self[ i ], this ) ) {
16509						return true;
16510					}
16511				}
16512			} ) );
16513		}
16514
16515		ret = this.pushStack( [] );
16516
16517		for ( i = 0; i < len; i++ ) {
16518			jQuery.find( selector, self[ i ], ret );
16519		}
16520
16521		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
16522	},
16523	filter: function( selector ) {
16524		return this.pushStack( winnow( this, selector || [], false ) );
16525	},
16526	not: function( selector ) {
16527		return this.pushStack( winnow( this, selector || [], true ) );
16528	},
16529	is: function( selector ) {
16530		return !!winnow(
16531			this,
16532
16533			// If this is a positional/relative selector, check membership in the returned set
16534			// so $("p:first").is("p:last") won't return true for a doc with two "p".
16535			typeof selector === "string" && rneedsContext.test( selector ) ?
16536				jQuery( selector ) :
16537				selector || [],
16538			false
16539		).length;
16540	}
16541} );
16542
16543
16544// Initialize a jQuery object
16545
16546
16547// A central reference to the root jQuery(document)
16548var rootjQuery,
16549
16550	// A simple way to check for HTML strings
16551	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
16552	// Strict HTML recognition (#11290: must start with <)
16553	// Shortcut simple #id case for speed
16554	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
16555
16556	init = jQuery.fn.init = function( selector, context, root ) {
16557		var match, elem;
16558
16559		// HANDLE: $(""), $(null), $(undefined), $(false)
16560		if ( !selector ) {
16561			return this;
16562		}
16563
16564		// Method init() accepts an alternate rootjQuery
16565		// so migrate can support jQuery.sub (gh-2101)
16566		root = root || rootjQuery;
16567
16568		// Handle HTML strings
16569		if ( typeof selector === "string" ) {
16570			if ( selector[ 0 ] === "<" &&
16571				selector[ selector.length - 1 ] === ">" &&
16572				selector.length >= 3 ) {
16573
16574				// Assume that strings that start and end with <> are HTML and skip the regex check
16575				match = [ null, selector, null ];
16576
16577			} else {
16578				match = rquickExpr.exec( selector );
16579			}
16580
16581			// Match html or make sure no context is specified for #id
16582			if ( match && ( match[ 1 ] || !context ) ) {
16583
16584				// HANDLE: $(html) -> $(array)
16585				if ( match[ 1 ] ) {
16586					context = context instanceof jQuery ? context[ 0 ] : context;
16587
16588					// Option to run scripts is true for back-compat
16589					// Intentionally let the error be thrown if parseHTML is not present
16590					jQuery.merge( this, jQuery.parseHTML(
16591						match[ 1 ],
16592						context && context.nodeType ? context.ownerDocument || context : document,
16593						true
16594					) );
16595
16596					// HANDLE: $(html, props)
16597					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
16598						for ( match in context ) {
16599
16600							// Properties of context are called as methods if possible
16601							if ( isFunction( this[ match ] ) ) {
16602								this[ match ]( context[ match ] );
16603
16604							// ...and otherwise set as attributes
16605							} else {
16606								this.attr( match, context[ match ] );
16607							}
16608						}
16609					}
16610
16611					return this;
16612
16613				// HANDLE: $(#id)
16614				} else {
16615					elem = document.getElementById( match[ 2 ] );
16616
16617					if ( elem ) {
16618
16619						// Inject the element directly into the jQuery object
16620						this[ 0 ] = elem;
16621						this.length = 1;
16622					}
16623					return this;
16624				}
16625
16626			// HANDLE: $(expr, $(...))
16627			} else if ( !context || context.jquery ) {
16628				return ( context || root ).find( selector );
16629
16630			// HANDLE: $(expr, context)
16631			// (which is just equivalent to: $(context).find(expr)
16632			} else {
16633				return this.constructor( context ).find( selector );
16634			}
16635
16636		// HANDLE: $(DOMElement)
16637		} else if ( selector.nodeType ) {
16638			this[ 0 ] = selector;
16639			this.length = 1;
16640			return this;
16641
16642		// HANDLE: $(function)
16643		// Shortcut for document ready
16644		} else if ( isFunction( selector ) ) {
16645			return root.ready !== undefined ?
16646				root.ready( selector ) :
16647
16648				// Execute immediately if ready is not present
16649				selector( jQuery );
16650		}
16651
16652		return jQuery.makeArray( selector, this );
16653	};
16654
16655// Give the init function the jQuery prototype for later instantiation
16656init.prototype = jQuery.fn;
16657
16658// Initialize central reference
16659rootjQuery = jQuery( document );
16660
16661
16662var rparentsprev = /^(?:parents|prev(?:Until|All))/,
16663
16664	// Methods guaranteed to produce a unique set when starting from a unique set
16665	guaranteedUnique = {
16666		children: true,
16667		contents: true,
16668		next: true,
16669		prev: true
16670	};
16671
16672jQuery.fn.extend( {
16673	has: function( target ) {
16674		var targets = jQuery( target, this ),
16675			l = targets.length;
16676
16677		return this.filter( function() {
16678			var i = 0;
16679			for ( ; i < l; i++ ) {
16680				if ( jQuery.contains( this, targets[ i ] ) ) {
16681					return true;
16682				}
16683			}
16684		} );
16685	},
16686
16687	closest: function( selectors, context ) {
16688		var cur,
16689			i = 0,
16690			l = this.length,
16691			matched = [],
16692			targets = typeof selectors !== "string" && jQuery( selectors );
16693
16694		// Positional selectors never match, since there's no _selection_ context
16695		if ( !rneedsContext.test( selectors ) ) {
16696			for ( ; i < l; i++ ) {
16697				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
16698
16699					// Always skip document fragments
16700					if ( cur.nodeType < 11 && ( targets ?
16701						targets.index( cur ) > -1 :
16702
16703						// Don't pass non-elements to Sizzle
16704						cur.nodeType === 1 &&
16705							jQuery.find.matchesSelector( cur, selectors ) ) ) {
16706
16707						matched.push( cur );
16708						break;
16709					}
16710				}
16711			}
16712		}
16713
16714		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
16715	},
16716
16717	// Determine the position of an element within the set
16718	index: function( elem ) {
16719
16720		// No argument, return index in parent
16721		if ( !elem ) {
16722			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
16723		}
16724
16725		// Index in selector
16726		if ( typeof elem === "string" ) {
16727			return indexOf.call( jQuery( elem ), this[ 0 ] );
16728		}
16729
16730		// Locate the position of the desired element
16731		return indexOf.call( this,
16732
16733			// If it receives a jQuery object, the first element is used
16734			elem.jquery ? elem[ 0 ] : elem
16735		);
16736	},
16737
16738	add: function( selector, context ) {
16739		return this.pushStack(
16740			jQuery.uniqueSort(
16741				jQuery.merge( this.get(), jQuery( selector, context ) )
16742			)
16743		);
16744	},
16745
16746	addBack: function( selector ) {
16747		return this.add( selector == null ?
16748			this.prevObject : this.prevObject.filter( selector )
16749		);
16750	}
16751} );
16752
16753function sibling( cur, dir ) {
16754	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
16755	return cur;
16756}
16757
16758jQuery.each( {
16759	parent: function( elem ) {
16760		var parent = elem.parentNode;
16761		return parent && parent.nodeType !== 11 ? parent : null;
16762	},
16763	parents: function( elem ) {
16764		return dir( elem, "parentNode" );
16765	},
16766	parentsUntil: function( elem, _i, until ) {
16767		return dir( elem, "parentNode", until );
16768	},
16769	next: function( elem ) {
16770		return sibling( elem, "nextSibling" );
16771	},
16772	prev: function( elem ) {
16773		return sibling( elem, "previousSibling" );
16774	},
16775	nextAll: function( elem ) {
16776		return dir( elem, "nextSibling" );
16777	},
16778	prevAll: function( elem ) {
16779		return dir( elem, "previousSibling" );
16780	},
16781	nextUntil: function( elem, _i, until ) {
16782		return dir( elem, "nextSibling", until );
16783	},
16784	prevUntil: function( elem, _i, until ) {
16785		return dir( elem, "previousSibling", until );
16786	},
16787	siblings: function( elem ) {
16788		return siblings( ( elem.parentNode || {} ).firstChild, elem );
16789	},
16790	children: function( elem ) {
16791		return siblings( elem.firstChild );
16792	},
16793	contents: function( elem ) {
16794		if ( elem.contentDocument != null &&
16795
16796			// Support: IE 11+
16797			// <object> elements with no `data` attribute has an object
16798			// `contentDocument` with a `null` prototype.
16799			getProto( elem.contentDocument ) ) {
16800
16801			return elem.contentDocument;
16802		}
16803
16804		// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
16805		// Treat the template element as a regular one in browsers that
16806		// don't support it.
16807		if ( nodeName( elem, "template" ) ) {
16808			elem = elem.content || elem;
16809		}
16810
16811		return jQuery.merge( [], elem.childNodes );
16812	}
16813}, function( name, fn ) {
16814	jQuery.fn[ name ] = function( until, selector ) {
16815		var matched = jQuery.map( this, fn, until );
16816
16817		if ( name.slice( -5 ) !== "Until" ) {
16818			selector = until;
16819		}
16820
16821		if ( selector && typeof selector === "string" ) {
16822			matched = jQuery.filter( selector, matched );
16823		}
16824
16825		if ( this.length > 1 ) {
16826
16827			// Remove duplicates
16828			if ( !guaranteedUnique[ name ] ) {
16829				jQuery.uniqueSort( matched );
16830			}
16831
16832			// Reverse order for parents* and prev-derivatives
16833			if ( rparentsprev.test( name ) ) {
16834				matched.reverse();
16835			}
16836		}
16837
16838		return this.pushStack( matched );
16839	};
16840} );
16841var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
16842
16843
16844
16845// Convert String-formatted options into Object-formatted ones
16846function createOptions( options ) {
16847	var object = {};
16848	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
16849		object[ flag ] = true;
16850	} );
16851	return object;
16852}
16853
16854/*
16855 * Create a callback list using the following parameters:
16856 *
16857 *	options: an optional list of space-separated options that will change how
16858 *			the callback list behaves or a more traditional option object
16859 *
16860 * By default a callback list will act like an event callback list and can be
16861 * "fired" multiple times.
16862 *
16863 * Possible options:
16864 *
16865 *	once:			will ensure the callback list can only be fired once (like a Deferred)
16866 *
16867 *	memory:			will keep track of previous values and will call any callback added
16868 *					after the list has been fired right away with the latest "memorized"
16869 *					values (like a Deferred)
16870 *
16871 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
16872 *
16873 *	stopOnFalse:	interrupt callings when a callback returns false
16874 *
16875 */
16876jQuery.Callbacks = function( options ) {
16877
16878	// Convert options from String-formatted to Object-formatted if needed
16879	// (we check in cache first)
16880	options = typeof options === "string" ?
16881		createOptions( options ) :
16882		jQuery.extend( {}, options );
16883
16884	var // Flag to know if list is currently firing
16885		firing,
16886
16887		// Last fire value for non-forgettable lists
16888		memory,
16889
16890		// Flag to know if list was already fired
16891		fired,
16892
16893		// Flag to prevent firing
16894		locked,
16895
16896		// Actual callback list
16897		list = [],
16898
16899		// Queue of execution data for repeatable lists
16900		queue = [],
16901
16902		// Index of currently firing callback (modified by add/remove as needed)
16903		firingIndex = -1,
16904
16905		// Fire callbacks
16906		fire = function() {
16907
16908			// Enforce single-firing
16909			locked = locked || options.once;
16910
16911			// Execute callbacks for all pending executions,
16912			// respecting firingIndex overrides and runtime changes
16913			fired = firing = true;
16914			for ( ; queue.length; firingIndex = -1 ) {
16915				memory = queue.shift();
16916				while ( ++firingIndex < list.length ) {
16917
16918					// Run callback and check for early termination
16919					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
16920						options.stopOnFalse ) {
16921
16922						// Jump to end and forget the data so .add doesn't re-fire
16923						firingIndex = list.length;
16924						memory = false;
16925					}
16926				}
16927			}
16928
16929			// Forget the data if we're done with it
16930			if ( !options.memory ) {
16931				memory = false;
16932			}
16933
16934			firing = false;
16935
16936			// Clean up if we're done firing for good
16937			if ( locked ) {
16938
16939				// Keep an empty list if we have data for future add calls
16940				if ( memory ) {
16941					list = [];
16942
16943				// Otherwise, this object is spent
16944				} else {
16945					list = "";
16946				}
16947			}
16948		},
16949
16950		// Actual Callbacks object
16951		self = {
16952
16953			// Add a callback or a collection of callbacks to the list
16954			add: function() {
16955				if ( list ) {
16956
16957					// If we have memory from a past run, we should fire after adding
16958					if ( memory && !firing ) {
16959						firingIndex = list.length - 1;
16960						queue.push( memory );
16961					}
16962
16963					( function add( args ) {
16964						jQuery.each( args, function( _, arg ) {
16965							if ( isFunction( arg ) ) {
16966								if ( !options.unique || !self.has( arg ) ) {
16967									list.push( arg );
16968								}
16969							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
16970
16971								// Inspect recursively
16972								add( arg );
16973							}
16974						} );
16975					} )( arguments );
16976
16977					if ( memory && !firing ) {
16978						fire();
16979					}
16980				}
16981				return this;
16982			},
16983
16984			// Remove a callback from the list
16985			remove: function() {
16986				jQuery.each( arguments, function( _, arg ) {
16987					var index;
16988					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
16989						list.splice( index, 1 );
16990
16991						// Handle firing indexes
16992						if ( index <= firingIndex ) {
16993							firingIndex--;
16994						}
16995					}
16996				} );
16997				return this;
16998			},
16999
17000			// Check if a given callback is in the list.
17001			// If no argument is given, return whether or not list has callbacks attached.
17002			has: function( fn ) {
17003				return fn ?
17004					jQuery.inArray( fn, list ) > -1 :
17005					list.length > 0;
17006			},
17007
17008			// Remove all callbacks from the list
17009			empty: function() {
17010				if ( list ) {
17011					list = [];
17012				}
17013				return this;
17014			},
17015
17016			// Disable .fire and .add
17017			// Abort any current/pending executions
17018			// Clear all callbacks and values
17019			disable: function() {
17020				locked = queue = [];
17021				list = memory = "";
17022				return this;
17023			},
17024			disabled: function() {
17025				return !list;
17026			},
17027
17028			// Disable .fire
17029			// Also disable .add unless we have memory (since it would have no effect)
17030			// Abort any pending executions
17031			lock: function() {
17032				locked = queue = [];
17033				if ( !memory && !firing ) {
17034					list = memory = "";
17035				}
17036				return this;
17037			},
17038			locked: function() {
17039				return !!locked;
17040			},
17041
17042			// Call all callbacks with the given context and arguments
17043			fireWith: function( context, args ) {
17044				if ( !locked ) {
17045					args = args || [];
17046					args = [ context, args.slice ? args.slice() : args ];
17047					queue.push( args );
17048					if ( !firing ) {
17049						fire();
17050					}
17051				}
17052				return this;
17053			},
17054
17055			// Call all the callbacks with the given arguments
17056			fire: function() {
17057				self.fireWith( this, arguments );
17058				return this;
17059			},
17060
17061			// To know if the callbacks have already been called at least once
17062			fired: function() {
17063				return !!fired;
17064			}
17065		};
17066
17067	return self;
17068};
17069
17070
17071function Identity( v ) {
17072	return v;
17073}
17074function Thrower( ex ) {
17075	throw ex;
17076}
17077
17078function adoptValue( value, resolve, reject, noValue ) {
17079	var method;
17080
17081	try {
17082
17083		// Check for promise aspect first to privilege synchronous behavior
17084		if ( value && isFunction( ( method = value.promise ) ) ) {
17085			method.call( value ).done( resolve ).fail( reject );
17086
17087		// Other thenables
17088		} else if ( value && isFunction( ( method = value.then ) ) ) {
17089			method.call( value, resolve, reject );
17090
17091		// Other non-thenables
17092		} else {
17093
17094			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
17095			// * false: [ value ].slice( 0 ) => resolve( value )
17096			// * true: [ value ].slice( 1 ) => resolve()
17097			resolve.apply( undefined, [ value ].slice( noValue ) );
17098		}
17099
17100	// For Promises/A+, convert exceptions into rejections
17101	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
17102	// Deferred#then to conditionally suppress rejection.
17103	} catch ( value ) {
17104
17105		// Support: Android 4.0 only
17106		// Strict mode functions invoked without .call/.apply get global-object context
17107		reject.apply( undefined, [ value ] );
17108	}
17109}
17110
17111jQuery.extend( {
17112
17113	Deferred: function( func ) {
17114		var tuples = [
17115
17116				// action, add listener, callbacks,
17117				// ... .then handlers, argument index, [final state]
17118				[ "notify", "progress", jQuery.Callbacks( "memory" ),
17119					jQuery.Callbacks( "memory" ), 2 ],
17120				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
17121					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
17122				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
17123					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
17124			],
17125			state = "pending",
17126			promise = {
17127				state: function() {
17128					return state;
17129				},
17130				always: function() {
17131					deferred.done( arguments ).fail( arguments );
17132					return this;
17133				},
17134				"catch": function( fn ) {
17135					return promise.then( null, fn );
17136				},
17137
17138				// Keep pipe for back-compat
17139				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
17140					var fns = arguments;
17141
17142					return jQuery.Deferred( function( newDefer ) {
17143						jQuery.each( tuples, function( _i, tuple ) {
17144
17145							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
17146							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
17147
17148							// deferred.progress(function() { bind to newDefer or newDefer.notify })
17149							// deferred.done(function() { bind to newDefer or newDefer.resolve })
17150							// deferred.fail(function() { bind to newDefer or newDefer.reject })
17151							deferred[ tuple[ 1 ] ]( function() {
17152								var returned = fn && fn.apply( this, arguments );
17153								if ( returned && isFunction( returned.promise ) ) {
17154									returned.promise()
17155										.progress( newDefer.notify )
17156										.done( newDefer.resolve )
17157										.fail( newDefer.reject );
17158								} else {
17159									newDefer[ tuple[ 0 ] + "With" ](
17160										this,
17161										fn ? [ returned ] : arguments
17162									);
17163								}
17164							} );
17165						} );
17166						fns = null;
17167					} ).promise();
17168				},
17169				then: function( onFulfilled, onRejected, onProgress ) {
17170					var maxDepth = 0;
17171					function resolve( depth, deferred, handler, special ) {
17172						return function() {
17173							var that = this,
17174								args = arguments,
17175								mightThrow = function() {
17176									var returned, then;
17177
17178									// Support: Promises/A+ section 2.3.3.3.3
17179									// https://promisesaplus.com/#point-59
17180									// Ignore double-resolution attempts
17181									if ( depth < maxDepth ) {
17182										return;
17183									}
17184
17185									returned = handler.apply( that, args );
17186
17187									// Support: Promises/A+ section 2.3.1
17188									// https://promisesaplus.com/#point-48
17189									if ( returned === deferred.promise() ) {
17190										throw new TypeError( "Thenable self-resolution" );
17191									}
17192
17193									// Support: Promises/A+ sections 2.3.3.1, 3.5
17194									// https://promisesaplus.com/#point-54
17195									// https://promisesaplus.com/#point-75
17196									// Retrieve `then` only once
17197									then = returned &&
17198
17199										// Support: Promises/A+ section 2.3.4
17200										// https://promisesaplus.com/#point-64
17201										// Only check objects and functions for thenability
17202										( typeof returned === "object" ||
17203											typeof returned === "function" ) &&
17204										returned.then;
17205
17206									// Handle a returned thenable
17207									if ( isFunction( then ) ) {
17208
17209										// Special processors (notify) just wait for resolution
17210										if ( special ) {
17211											then.call(
17212												returned,
17213												resolve( maxDepth, deferred, Identity, special ),
17214												resolve( maxDepth, deferred, Thrower, special )
17215											);
17216
17217										// Normal processors (resolve) also hook into progress
17218										} else {
17219
17220											// ...and disregard older resolution values
17221											maxDepth++;
17222
17223											then.call(
17224												returned,
17225												resolve( maxDepth, deferred, Identity, special ),
17226												resolve( maxDepth, deferred, Thrower, special ),
17227												resolve( maxDepth, deferred, Identity,
17228													deferred.notifyWith )
17229											);
17230										}
17231
17232									// Handle all other returned values
17233									} else {
17234
17235										// Only substitute handlers pass on context
17236										// and multiple values (non-spec behavior)
17237										if ( handler !== Identity ) {
17238											that = undefined;
17239											args = [ returned ];
17240										}
17241
17242										// Process the value(s)
17243										// Default process is resolve
17244										( special || deferred.resolveWith )( that, args );
17245									}
17246								},
17247
17248								// Only normal processors (resolve) catch and reject exceptions
17249								process = special ?
17250									mightThrow :
17251									function() {
17252										try {
17253											mightThrow();
17254										} catch ( e ) {
17255
17256											if ( jQuery.Deferred.exceptionHook ) {
17257												jQuery.Deferred.exceptionHook( e,
17258													process.stackTrace );
17259											}
17260
17261											// Support: Promises/A+ section 2.3.3.3.4.1
17262											// https://promisesaplus.com/#point-61
17263											// Ignore post-resolution exceptions
17264											if ( depth + 1 >= maxDepth ) {
17265
17266												// Only substitute handlers pass on context
17267												// and multiple values (non-spec behavior)
17268												if ( handler !== Thrower ) {
17269													that = undefined;
17270													args = [ e ];
17271												}
17272
17273												deferred.rejectWith( that, args );
17274											}
17275										}
17276									};
17277
17278							// Support: Promises/A+ section 2.3.3.3.1
17279							// https://promisesaplus.com/#point-57
17280							// Re-resolve promises immediately to dodge false rejection from
17281							// subsequent errors
17282							if ( depth ) {
17283								process();
17284							} else {
17285
17286								// Call an optional hook to record the stack, in case of exception
17287								// since it's otherwise lost when execution goes async
17288								if ( jQuery.Deferred.getStackHook ) {
17289									process.stackTrace = jQuery.Deferred.getStackHook();
17290								}
17291								window.setTimeout( process );
17292							}
17293						};
17294					}
17295
17296					return jQuery.Deferred( function( newDefer ) {
17297
17298						// progress_handlers.add( ... )
17299						tuples[ 0 ][ 3 ].add(
17300							resolve(
17301								0,
17302								newDefer,
17303								isFunction( onProgress ) ?
17304									onProgress :
17305									Identity,
17306								newDefer.notifyWith
17307							)
17308						);
17309
17310						// fulfilled_handlers.add( ... )
17311						tuples[ 1 ][ 3 ].add(
17312							resolve(
17313								0,
17314								newDefer,
17315								isFunction( onFulfilled ) ?
17316									onFulfilled :
17317									Identity
17318							)
17319						);
17320
17321						// rejected_handlers.add( ... )
17322						tuples[ 2 ][ 3 ].add(
17323							resolve(
17324								0,
17325								newDefer,
17326								isFunction( onRejected ) ?
17327									onRejected :
17328									Thrower
17329							)
17330						);
17331					} ).promise();
17332				},
17333
17334				// Get a promise for this deferred
17335				// If obj is provided, the promise aspect is added to the object
17336				promise: function( obj ) {
17337					return obj != null ? jQuery.extend( obj, promise ) : promise;
17338				}
17339			},
17340			deferred = {};
17341
17342		// Add list-specific methods
17343		jQuery.each( tuples, function( i, tuple ) {
17344			var list = tuple[ 2 ],
17345				stateString = tuple[ 5 ];
17346
17347			// promise.progress = list.add
17348			// promise.done = list.add
17349			// promise.fail = list.add
17350			promise[ tuple[ 1 ] ] = list.add;
17351
17352			// Handle state
17353			if ( stateString ) {
17354				list.add(
17355					function() {
17356
17357						// state = "resolved" (i.e., fulfilled)
17358						// state = "rejected"
17359						state = stateString;
17360					},
17361
17362					// rejected_callbacks.disable
17363					// fulfilled_callbacks.disable
17364					tuples[ 3 - i ][ 2 ].disable,
17365
17366					// rejected_handlers.disable
17367					// fulfilled_handlers.disable
17368					tuples[ 3 - i ][ 3 ].disable,
17369
17370					// progress_callbacks.lock
17371					tuples[ 0 ][ 2 ].lock,
17372
17373					// progress_handlers.lock
17374					tuples[ 0 ][ 3 ].lock
17375				);
17376			}
17377
17378			// progress_handlers.fire
17379			// fulfilled_handlers.fire
17380			// rejected_handlers.fire
17381			list.add( tuple[ 3 ].fire );
17382
17383			// deferred.notify = function() { deferred.notifyWith(...) }
17384			// deferred.resolve = function() { deferred.resolveWith(...) }
17385			// deferred.reject = function() { deferred.rejectWith(...) }
17386			deferred[ tuple[ 0 ] ] = function() {
17387				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
17388				return this;
17389			};
17390
17391			// deferred.notifyWith = list.fireWith
17392			// deferred.resolveWith = list.fireWith
17393			// deferred.rejectWith = list.fireWith
17394			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
17395		} );
17396
17397		// Make the deferred a promise
17398		promise.promise( deferred );
17399
17400		// Call given func if any
17401		if ( func ) {
17402			func.call( deferred, deferred );
17403		}
17404
17405		// All done!
17406		return deferred;
17407	},
17408
17409	// Deferred helper
17410	when: function( singleValue ) {
17411		var
17412
17413			// count of uncompleted subordinates
17414			remaining = arguments.length,
17415
17416			// count of unprocessed arguments
17417			i = remaining,
17418
17419			// subordinate fulfillment data
17420			resolveContexts = Array( i ),
17421			resolveValues = slice.call( arguments ),
17422
17423			// the primary Deferred
17424			primary = jQuery.Deferred(),
17425
17426			// subordinate callback factory
17427			updateFunc = function( i ) {
17428				return function( value ) {
17429					resolveContexts[ i ] = this;
17430					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
17431					if ( !( --remaining ) ) {
17432						primary.resolveWith( resolveContexts, resolveValues );
17433					}
17434				};
17435			};
17436
17437		// Single- and empty arguments are adopted like Promise.resolve
17438		if ( remaining <= 1 ) {
17439			adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
17440				!remaining );
17441
17442			// Use .then() to unwrap secondary thenables (cf. gh-3000)
17443			if ( primary.state() === "pending" ||
17444				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
17445
17446				return primary.then();
17447			}
17448		}
17449
17450		// Multiple arguments are aggregated like Promise.all array elements
17451		while ( i-- ) {
17452			adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
17453		}
17454
17455		return primary.promise();
17456	}
17457} );
17458
17459
17460// These usually indicate a programmer mistake during development,
17461// warn about them ASAP rather than swallowing them by default.
17462var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
17463
17464jQuery.Deferred.exceptionHook = function( error, stack ) {
17465
17466	// Support: IE 8 - 9 only
17467	// Console exists when dev tools are open, which can happen at any time
17468	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
17469		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
17470	}
17471};
17472
17473
17474
17475
17476jQuery.readyException = function( error ) {
17477	window.setTimeout( function() {
17478		throw error;
17479	} );
17480};
17481
17482
17483
17484
17485// The deferred used on DOM ready
17486var readyList = jQuery.Deferred();
17487
17488jQuery.fn.ready = function( fn ) {
17489
17490	readyList
17491		.then( fn )
17492
17493		// Wrap jQuery.readyException in a function so that the lookup
17494		// happens at the time of error handling instead of callback
17495		// registration.
17496		.catch( function( error ) {
17497			jQuery.readyException( error );
17498		} );
17499
17500	return this;
17501};
17502
17503jQuery.extend( {
17504
17505	// Is the DOM ready to be used? Set to true once it occurs.
17506	isReady: false,
17507
17508	// A counter to track how many items to wait for before
17509	// the ready event fires. See #6781
17510	readyWait: 1,
17511
17512	// Handle when the DOM is ready
17513	ready: function( wait ) {
17514
17515		// Abort if there are pending holds or we're already ready
17516		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
17517			return;
17518		}
17519
17520		// Remember that the DOM is ready
17521		jQuery.isReady = true;
17522
17523		// If a normal DOM Ready event fired, decrement, and wait if need be
17524		if ( wait !== true && --jQuery.readyWait > 0 ) {
17525			return;
17526		}
17527
17528		// If there are functions bound, to execute
17529		readyList.resolveWith( document, [ jQuery ] );
17530	}
17531} );
17532
17533jQuery.ready.then = readyList.then;
17534
17535// The ready event handler and self cleanup method
17536function completed() {
17537	document.removeEventListener( "DOMContentLoaded", completed );
17538	window.removeEventListener( "load", completed );
17539	jQuery.ready();
17540}
17541
17542// Catch cases where $(document).ready() is called
17543// after the browser event has already occurred.
17544// Support: IE <=9 - 10 only
17545// Older IE sometimes signals "interactive" too soon
17546if ( document.readyState === "complete" ||
17547	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
17548
17549	// Handle it asynchronously to allow scripts the opportunity to delay ready
17550	window.setTimeout( jQuery.ready );
17551
17552} else {
17553
17554	// Use the handy event callback
17555	document.addEventListener( "DOMContentLoaded", completed );
17556
17557	// A fallback to window.onload, that will always work
17558	window.addEventListener( "load", completed );
17559}
17560
17561
17562
17563
17564// Multifunctional method to get and set values of a collection
17565// The value/s can optionally be executed if it's a function
17566var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
17567	var i = 0,
17568		len = elems.length,
17569		bulk = key == null;
17570
17571	// Sets many values
17572	if ( toType( key ) === "object" ) {
17573		chainable = true;
17574		for ( i in key ) {
17575			access( elems, fn, i, key[ i ], true, emptyGet, raw );
17576		}
17577
17578	// Sets one value
17579	} else if ( value !== undefined ) {
17580		chainable = true;
17581
17582		if ( !isFunction( value ) ) {
17583			raw = true;
17584		}
17585
17586		if ( bulk ) {
17587
17588			// Bulk operations run against the entire set
17589			if ( raw ) {
17590				fn.call( elems, value );
17591				fn = null;
17592
17593			// ...except when executing function values
17594			} else {
17595				bulk = fn;
17596				fn = function( elem, _key, value ) {
17597					return bulk.call( jQuery( elem ), value );
17598				};
17599			}
17600		}
17601
17602		if ( fn ) {
17603			for ( ; i < len; i++ ) {
17604				fn(
17605					elems[ i ], key, raw ?
17606						value :
17607						value.call( elems[ i ], i, fn( elems[ i ], key ) )
17608				);
17609			}
17610		}
17611	}
17612
17613	if ( chainable ) {
17614		return elems;
17615	}
17616
17617	// Gets
17618	if ( bulk ) {
17619		return fn.call( elems );
17620	}
17621
17622	return len ? fn( elems[ 0 ], key ) : emptyGet;
17623};
17624
17625
17626// Matches dashed string for camelizing
17627var rmsPrefix = /^-ms-/,
17628	rdashAlpha = /-([a-z])/g;
17629
17630// Used by camelCase as callback to replace()
17631function fcamelCase( _all, letter ) {
17632	return letter.toUpperCase();
17633}
17634
17635// Convert dashed to camelCase; used by the css and data modules
17636// Support: IE <=9 - 11, Edge 12 - 15
17637// Microsoft forgot to hump their vendor prefix (#9572)
17638function camelCase( string ) {
17639	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
17640}
17641var acceptData = function( owner ) {
17642
17643	// Accepts only:
17644	//  - Node
17645	//    - Node.ELEMENT_NODE
17646	//    - Node.DOCUMENT_NODE
17647	//  - Object
17648	//    - Any
17649	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17650};
17651
17652
17653
17654
17655function Data() {
17656	this.expando = jQuery.expando + Data.uid++;
17657}
17658
17659Data.uid = 1;
17660
17661Data.prototype = {
17662
17663	cache: function( owner ) {
17664
17665		// Check if the owner object already has a cache
17666		var value = owner[ this.expando ];
17667
17668		// If not, create one
17669		if ( !value ) {
17670			value = {};
17671
17672			// We can accept data for non-element nodes in modern browsers,
17673			// but we should not, see #8335.
17674			// Always return an empty object.
17675			if ( acceptData( owner ) ) {
17676
17677				// If it is a node unlikely to be stringify-ed or looped over
17678				// use plain assignment
17679				if ( owner.nodeType ) {
17680					owner[ this.expando ] = value;
17681
17682				// Otherwise secure it in a non-enumerable property
17683				// configurable must be true to allow the property to be
17684				// deleted when data is removed
17685				} else {
17686					Object.defineProperty( owner, this.expando, {
17687						value: value,
17688						configurable: true
17689					} );
17690				}
17691			}
17692		}
17693
17694		return value;
17695	},
17696	set: function( owner, data, value ) {
17697		var prop,
17698			cache = this.cache( owner );
17699
17700		// Handle: [ owner, key, value ] args
17701		// Always use camelCase key (gh-2257)
17702		if ( typeof data === "string" ) {
17703			cache[ camelCase( data ) ] = value;
17704
17705		// Handle: [ owner, { properties } ] args
17706		} else {
17707
17708			// Copy the properties one-by-one to the cache object
17709			for ( prop in data ) {
17710				cache[ camelCase( prop ) ] = data[ prop ];
17711			}
17712		}
17713		return cache;
17714	},
17715	get: function( owner, key ) {
17716		return key === undefined ?
17717			this.cache( owner ) :
17718
17719			// Always use camelCase key (gh-2257)
17720			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
17721	},
17722	access: function( owner, key, value ) {
17723
17724		// In cases where either:
17725		//
17726		//   1. No key was specified
17727		//   2. A string key was specified, but no value provided
17728		//
17729		// Take the "read" path and allow the get method to determine
17730		// which value to return, respectively either:
17731		//
17732		//   1. The entire cache object
17733		//   2. The data stored at the key
17734		//
17735		if ( key === undefined ||
17736				( ( key && typeof key === "string" ) && value === undefined ) ) {
17737
17738			return this.get( owner, key );
17739		}
17740
17741		// When the key is not a string, or both a key and value
17742		// are specified, set or extend (existing objects) with either:
17743		//
17744		//   1. An object of properties
17745		//   2. A key and value
17746		//
17747		this.set( owner, key, value );
17748
17749		// Since the "set" path can have two possible entry points
17750		// return the expected data based on which path was taken[*]
17751		return value !== undefined ? value : key;
17752	},
17753	remove: function( owner, key ) {
17754		var i,
17755			cache = owner[ this.expando ];
17756
17757		if ( cache === undefined ) {
17758			return;
17759		}
17760
17761		if ( key !== undefined ) {
17762
17763			// Support array or space separated string of keys
17764			if ( Array.isArray( key ) ) {
17765
17766				// If key is an array of keys...
17767				// We always set camelCase keys, so remove that.
17768				key = key.map( camelCase );
17769			} else {
17770				key = camelCase( key );
17771
17772				// If a key with the spaces exists, use it.
17773				// Otherwise, create an array by matching non-whitespace
17774				key = key in cache ?
17775					[ key ] :
17776					( key.match( rnothtmlwhite ) || [] );
17777			}
17778
17779			i = key.length;
17780
17781			while ( i-- ) {
17782				delete cache[ key[ i ] ];
17783			}
17784		}
17785
17786		// Remove the expando if there's no more data
17787		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
17788
17789			// Support: Chrome <=35 - 45
17790			// Webkit & Blink performance suffers when deleting properties
17791			// from DOM nodes, so set to undefined instead
17792			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
17793			if ( owner.nodeType ) {
17794				owner[ this.expando ] = undefined;
17795			} else {
17796				delete owner[ this.expando ];
17797			}
17798		}
17799	},
17800	hasData: function( owner ) {
17801		var cache = owner[ this.expando ];
17802		return cache !== undefined && !jQuery.isEmptyObject( cache );
17803	}
17804};
17805var dataPriv = new Data();
17806
17807var dataUser = new Data();
17808
17809
17810
17811//	Implementation Summary
17812//
17813//	1. Enforce API surface and semantic compatibility with 1.9.x branch
17814//	2. Improve the module's maintainability by reducing the storage
17815//		paths to a single mechanism.
17816//	3. Use the same single mechanism to support "private" and "user" data.
17817//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
17818//	5. Avoid exposing implementation details on user objects (eg. expando properties)
17819//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
17820
17821var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
17822	rmultiDash = /[A-Z]/g;
17823
17824function getData( data ) {
17825	if ( data === "true" ) {
17826		return true;
17827	}
17828
17829	if ( data === "false" ) {
17830		return false;
17831	}
17832
17833	if ( data === "null" ) {
17834		return null;
17835	}
17836
17837	// Only convert to a number if it doesn't change the string
17838	if ( data === +data + "" ) {
17839		return +data;
17840	}
17841
17842	if ( rbrace.test( data ) ) {
17843		return JSON.parse( data );
17844	}
17845
17846	return data;
17847}
17848
17849function dataAttr( elem, key, data ) {
17850	var name;
17851
17852	// If nothing was found internally, try to fetch any
17853	// data from the HTML5 data-* attribute
17854	if ( data === undefined && elem.nodeType === 1 ) {
17855		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
17856		data = elem.getAttribute( name );
17857
17858		if ( typeof data === "string" ) {
17859			try {
17860				data = getData( data );
17861			} catch ( e ) {}
17862
17863			// Make sure we set the data so it isn't changed later
17864			dataUser.set( elem, key, data );
17865		} else {
17866			data = undefined;
17867		}
17868	}
17869	return data;
17870}
17871
17872jQuery.extend( {
17873	hasData: function( elem ) {
17874		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
17875	},
17876
17877	data: function( elem, name, data ) {
17878		return dataUser.access( elem, name, data );
17879	},
17880
17881	removeData: function( elem, name ) {
17882		dataUser.remove( elem, name );
17883	},
17884
17885	// TODO: Now that all calls to _data and _removeData have been replaced
17886	// with direct calls to dataPriv methods, these can be deprecated.
17887	_data: function( elem, name, data ) {
17888		return dataPriv.access( elem, name, data );
17889	},
17890
17891	_removeData: function( elem, name ) {
17892		dataPriv.remove( elem, name );
17893	}
17894} );
17895
17896jQuery.fn.extend( {
17897	data: function( key, value ) {
17898		var i, name, data,
17899			elem = this[ 0 ],
17900			attrs = elem && elem.attributes;
17901
17902		// Gets all values
17903		if ( key === undefined ) {
17904			if ( this.length ) {
17905				data = dataUser.get( elem );
17906
17907				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
17908					i = attrs.length;
17909					while ( i-- ) {
17910
17911						// Support: IE 11 only
17912						// The attrs elements can be null (#14894)
17913						if ( attrs[ i ] ) {
17914							name = attrs[ i ].name;
17915							if ( name.indexOf( "data-" ) === 0 ) {
17916								name = camelCase( name.slice( 5 ) );
17917								dataAttr( elem, name, data[ name ] );
17918							}
17919						}
17920					}
17921					dataPriv.set( elem, "hasDataAttrs", true );
17922				}
17923			}
17924
17925			return data;
17926		}
17927
17928		// Sets multiple values
17929		if ( typeof key === "object" ) {
17930			return this.each( function() {
17931				dataUser.set( this, key );
17932			} );
17933		}
17934
17935		return access( this, function( value ) {
17936			var data;
17937
17938			// The calling jQuery object (element matches) is not empty
17939			// (and therefore has an element appears at this[ 0 ]) and the
17940			// `value` parameter was not undefined. An empty jQuery object
17941			// will result in `undefined` for elem = this[ 0 ] which will
17942			// throw an exception if an attempt to read a data cache is made.
17943			if ( elem && value === undefined ) {
17944
17945				// Attempt to get data from the cache
17946				// The key will always be camelCased in Data
17947				data = dataUser.get( elem, key );
17948				if ( data !== undefined ) {
17949					return data;
17950				}
17951
17952				// Attempt to "discover" the data in
17953				// HTML5 custom data-* attrs
17954				data = dataAttr( elem, key );
17955				if ( data !== undefined ) {
17956					return data;
17957				}
17958
17959				// We tried really hard, but the data doesn't exist.
17960				return;
17961			}
17962
17963			// Set the data...
17964			this.each( function() {
17965
17966				// We always store the camelCased key
17967				dataUser.set( this, key, value );
17968			} );
17969		}, null, value, arguments.length > 1, null, true );
17970	},
17971
17972	removeData: function( key ) {
17973		return this.each( function() {
17974			dataUser.remove( this, key );
17975		} );
17976	}
17977} );
17978
17979
17980jQuery.extend( {
17981	queue: function( elem, type, data ) {
17982		var queue;
17983
17984		if ( elem ) {
17985			type = ( type || "fx" ) + "queue";
17986			queue = dataPriv.get( elem, type );
17987
17988			// Speed up dequeue by getting out quickly if this is just a lookup
17989			if ( data ) {
17990				if ( !queue || Array.isArray( data ) ) {
17991					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
17992				} else {
17993					queue.push( data );
17994				}
17995			}
17996			return queue || [];
17997		}
17998	},
17999
18000	dequeue: function( elem, type ) {
18001		type = type || "fx";
18002
18003		var queue = jQuery.queue( elem, type ),
18004			startLength = queue.length,
18005			fn = queue.shift(),
18006			hooks = jQuery._queueHooks( elem, type ),
18007			next = function() {
18008				jQuery.dequeue( elem, type );
18009			};
18010
18011		// If the fx queue is dequeued, always remove the progress sentinel
18012		if ( fn === "inprogress" ) {
18013			fn = queue.shift();
18014			startLength--;
18015		}
18016
18017		if ( fn ) {
18018
18019			// Add a progress sentinel to prevent the fx queue from being
18020			// automatically dequeued
18021			if ( type === "fx" ) {
18022				queue.unshift( "inprogress" );
18023			}
18024
18025			// Clear up the last queue stop function
18026			delete hooks.stop;
18027			fn.call( elem, next, hooks );
18028		}
18029
18030		if ( !startLength && hooks ) {
18031			hooks.empty.fire();
18032		}
18033	},
18034
18035	// Not public - generate a queueHooks object, or return the current one
18036	_queueHooks: function( elem, type ) {
18037		var key = type + "queueHooks";
18038		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
18039			empty: jQuery.Callbacks( "once memory" ).add( function() {
18040				dataPriv.remove( elem, [ type + "queue", key ] );
18041			} )
18042		} );
18043	}
18044} );
18045
18046jQuery.fn.extend( {
18047	queue: function( type, data ) {
18048		var setter = 2;
18049
18050		if ( typeof type !== "string" ) {
18051			data = type;
18052			type = "fx";
18053			setter--;
18054		}
18055
18056		if ( arguments.length < setter ) {
18057			return jQuery.queue( this[ 0 ], type );
18058		}
18059
18060		return data === undefined ?
18061			this :
18062			this.each( function() {
18063				var queue = jQuery.queue( this, type, data );
18064
18065				// Ensure a hooks for this queue
18066				jQuery._queueHooks( this, type );
18067
18068				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
18069					jQuery.dequeue( this, type );
18070				}
18071			} );
18072	},
18073	dequeue: function( type ) {
18074		return this.each( function() {
18075			jQuery.dequeue( this, type );
18076		} );
18077	},
18078	clearQueue: function( type ) {
18079		return this.queue( type || "fx", [] );
18080	},
18081
18082	// Get a promise resolved when queues of a certain type
18083	// are emptied (fx is the type by default)
18084	promise: function( type, obj ) {
18085		var tmp,
18086			count = 1,
18087			defer = jQuery.Deferred(),
18088			elements = this,
18089			i = this.length,
18090			resolve = function() {
18091				if ( !( --count ) ) {
18092					defer.resolveWith( elements, [ elements ] );
18093				}
18094			};
18095
18096		if ( typeof type !== "string" ) {
18097			obj = type;
18098			type = undefined;
18099		}
18100		type = type || "fx";
18101
18102		while ( i-- ) {
18103			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
18104			if ( tmp && tmp.empty ) {
18105				count++;
18106				tmp.empty.add( resolve );
18107			}
18108		}
18109		resolve();
18110		return defer.promise( obj );
18111	}
18112} );
18113var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
18114
18115var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
18116
18117
18118var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
18119
18120var documentElement = document.documentElement;
18121
18122
18123
18124	var isAttached = function( elem ) {
18125			return jQuery.contains( elem.ownerDocument, elem );
18126		},
18127		composed = { composed: true };
18128
18129	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
18130	// Check attachment across shadow DOM boundaries when possible (gh-3504)
18131	// Support: iOS 10.0-10.2 only
18132	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
18133	// leading to errors. We need to check for `getRootNode`.
18134	if ( documentElement.getRootNode ) {
18135		isAttached = function( elem ) {
18136			return jQuery.contains( elem.ownerDocument, elem ) ||
18137				elem.getRootNode( composed ) === elem.ownerDocument;
18138		};
18139	}
18140var isHiddenWithinTree = function( elem, el ) {
18141
18142		// isHiddenWithinTree might be called from jQuery#filter function;
18143		// in that case, element will be second argument
18144		elem = el || elem;
18145
18146		// Inline style trumps all
18147		return elem.style.display === "none" ||
18148			elem.style.display === "" &&
18149
18150			// Otherwise, check computed style
18151			// Support: Firefox <=43 - 45
18152			// Disconnected elements can have computed display: none, so first confirm that elem is
18153			// in the document.
18154			isAttached( elem ) &&
18155
18156			jQuery.css( elem, "display" ) === "none";
18157	};
18158
18159
18160
18161function adjustCSS( elem, prop, valueParts, tween ) {
18162	var adjusted, scale,
18163		maxIterations = 20,
18164		currentValue = tween ?
18165			function() {
18166				return tween.cur();
18167			} :
18168			function() {
18169				return jQuery.css( elem, prop, "" );
18170			},
18171		initial = currentValue(),
18172		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
18173
18174		// Starting value computation is required for potential unit mismatches
18175		initialInUnit = elem.nodeType &&
18176			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
18177			rcssNum.exec( jQuery.css( elem, prop ) );
18178
18179	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
18180
18181		// Support: Firefox <=54
18182		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
18183		initial = initial / 2;
18184
18185		// Trust units reported by jQuery.css
18186		unit = unit || initialInUnit[ 3 ];
18187
18188		// Iteratively approximate from a nonzero starting point
18189		initialInUnit = +initial || 1;
18190
18191		while ( maxIterations-- ) {
18192
18193			// Evaluate and update our best guess (doubling guesses that zero out).
18194			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
18195			jQuery.style( elem, prop, initialInUnit + unit );
18196			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
18197				maxIterations = 0;
18198			}
18199			initialInUnit = initialInUnit / scale;
18200
18201		}
18202
18203		initialInUnit = initialInUnit * 2;
18204		jQuery.style( elem, prop, initialInUnit + unit );
18205
18206		// Make sure we update the tween properties later on
18207		valueParts = valueParts || [];
18208	}
18209
18210	if ( valueParts ) {
18211		initialInUnit = +initialInUnit || +initial || 0;
18212
18213		// Apply relative offset (+=/-=) if specified
18214		adjusted = valueParts[ 1 ] ?
18215			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
18216			+valueParts[ 2 ];
18217		if ( tween ) {
18218			tween.unit = unit;
18219			tween.start = initialInUnit;
18220			tween.end = adjusted;
18221		}
18222	}
18223	return adjusted;
18224}
18225
18226
18227var defaultDisplayMap = {};
18228
18229function getDefaultDisplay( elem ) {
18230	var temp,
18231		doc = elem.ownerDocument,
18232		nodeName = elem.nodeName,
18233		display = defaultDisplayMap[ nodeName ];
18234
18235	if ( display ) {
18236		return display;
18237	}
18238
18239	temp = doc.body.appendChild( doc.createElement( nodeName ) );
18240	display = jQuery.css( temp, "display" );
18241
18242	temp.parentNode.removeChild( temp );
18243
18244	if ( display === "none" ) {
18245		display = "block";
18246	}
18247	defaultDisplayMap[ nodeName ] = display;
18248
18249	return display;
18250}
18251
18252function showHide( elements, show ) {
18253	var display, elem,
18254		values = [],
18255		index = 0,
18256		length = elements.length;
18257
18258	// Determine new display value for elements that need to change
18259	for ( ; index < length; index++ ) {
18260		elem = elements[ index ];
18261		if ( !elem.style ) {
18262			continue;
18263		}
18264
18265		display = elem.style.display;
18266		if ( show ) {
18267
18268			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
18269			// check is required in this first loop unless we have a nonempty display value (either
18270			// inline or about-to-be-restored)
18271			if ( display === "none" ) {
18272				values[ index ] = dataPriv.get( elem, "display" ) || null;
18273				if ( !values[ index ] ) {
18274					elem.style.display = "";
18275				}
18276			}
18277			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
18278				values[ index ] = getDefaultDisplay( elem );
18279			}
18280		} else {
18281			if ( display !== "none" ) {
18282				values[ index ] = "none";
18283
18284				// Remember what we're overwriting
18285				dataPriv.set( elem, "display", display );
18286			}
18287		}
18288	}
18289
18290	// Set the display of the elements in a second loop to avoid constant reflow
18291	for ( index = 0; index < length; index++ ) {
18292		if ( values[ index ] != null ) {
18293			elements[ index ].style.display = values[ index ];
18294		}
18295	}
18296
18297	return elements;
18298}
18299
18300jQuery.fn.extend( {
18301	show: function() {
18302		return showHide( this, true );
18303	},
18304	hide: function() {
18305		return showHide( this );
18306	},
18307	toggle: function( state ) {
18308		if ( typeof state === "boolean" ) {
18309			return state ? this.show() : this.hide();
18310		}
18311
18312		return this.each( function() {
18313			if ( isHiddenWithinTree( this ) ) {
18314				jQuery( this ).show();
18315			} else {
18316				jQuery( this ).hide();
18317			}
18318		} );
18319	}
18320} );
18321var rcheckableType = ( /^(?:checkbox|radio)$/i );
18322
18323var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
18324
18325var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
18326
18327
18328
18329( function() {
18330	var fragment = document.createDocumentFragment(),
18331		div = fragment.appendChild( document.createElement( "div" ) ),
18332		input = document.createElement( "input" );
18333
18334	// Support: Android 4.0 - 4.3 only
18335	// Check state lost if the name is set (#11217)
18336	// Support: Windows Web Apps (WWA)
18337	// `name` and `type` must use .setAttribute for WWA (#14901)
18338	input.setAttribute( "type", "radio" );
18339	input.setAttribute( "checked", "checked" );
18340	input.setAttribute( "name", "t" );
18341
18342	div.appendChild( input );
18343
18344	// Support: Android <=4.1 only
18345	// Older WebKit doesn't clone checked state correctly in fragments
18346	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
18347
18348	// Support: IE <=11 only
18349	// Make sure textarea (and checkbox) defaultValue is properly cloned
18350	div.innerHTML = "<textarea>x</textarea>";
18351	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
18352
18353	// Support: IE <=9 only
18354	// IE <=9 replaces <option> tags with their contents when inserted outside of
18355	// the select element.
18356	div.innerHTML = "<option></option>";
18357	support.option = !!div.lastChild;
18358} )();
18359
18360
18361// We have to close these tags to support XHTML (#13200)
18362var wrapMap = {
18363
18364	// XHTML parsers do not magically insert elements in the
18365	// same way that tag soup parsers do. So we cannot shorten
18366	// this by omitting <tbody> or other required elements.
18367	thead: [ 1, "<table>", "</table>" ],
18368	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
18369	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
18370	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
18371
18372	_default: [ 0, "", "" ]
18373};
18374
18375wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
18376wrapMap.th = wrapMap.td;
18377
18378// Support: IE <=9 only
18379if ( !support.option ) {
18380	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
18381}
18382
18383
18384function getAll( context, tag ) {
18385
18386	// Support: IE <=9 - 11 only
18387	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
18388	var ret;
18389
18390	if ( typeof context.getElementsByTagName !== "undefined" ) {
18391		ret = context.getElementsByTagName( tag || "*" );
18392
18393	} else if ( typeof context.querySelectorAll !== "undefined" ) {
18394		ret = context.querySelectorAll( tag || "*" );
18395
18396	} else {
18397		ret = [];
18398	}
18399
18400	if ( tag === undefined || tag && nodeName( context, tag ) ) {
18401		return jQuery.merge( [ context ], ret );
18402	}
18403
18404	return ret;
18405}
18406
18407
18408// Mark scripts as having already been evaluated
18409function setGlobalEval( elems, refElements ) {
18410	var i = 0,
18411		l = elems.length;
18412
18413	for ( ; i < l; i++ ) {
18414		dataPriv.set(
18415			elems[ i ],
18416			"globalEval",
18417			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
18418		);
18419	}
18420}
18421
18422
18423var rhtml = /<|&#?\w+;/;
18424
18425function buildFragment( elems, context, scripts, selection, ignored ) {
18426	var elem, tmp, tag, wrap, attached, j,
18427		fragment = context.createDocumentFragment(),
18428		nodes = [],
18429		i = 0,
18430		l = elems.length;
18431
18432	for ( ; i < l; i++ ) {
18433		elem = elems[ i ];
18434
18435		if ( elem || elem === 0 ) {
18436
18437			// Add nodes directly
18438			if ( toType( elem ) === "object" ) {
18439
18440				// Support: Android <=4.0 only, PhantomJS 1 only
18441				// push.apply(_, arraylike) throws on ancient WebKit
18442				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
18443
18444			// Convert non-html into a text node
18445			} else if ( !rhtml.test( elem ) ) {
18446				nodes.push( context.createTextNode( elem ) );
18447
18448			// Convert html into DOM nodes
18449			} else {
18450				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
18451
18452				// Deserialize a standard representation
18453				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
18454				wrap = wrapMap[ tag ] || wrapMap._default;
18455				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
18456
18457				// Descend through wrappers to the right content
18458				j = wrap[ 0 ];
18459				while ( j-- ) {
18460					tmp = tmp.lastChild;
18461				}
18462
18463				// Support: Android <=4.0 only, PhantomJS 1 only
18464				// push.apply(_, arraylike) throws on ancient WebKit
18465				jQuery.merge( nodes, tmp.childNodes );
18466
18467				// Remember the top-level container
18468				tmp = fragment.firstChild;
18469
18470				// Ensure the created nodes are orphaned (#12392)
18471				tmp.textContent = "";
18472			}
18473		}
18474	}
18475
18476	// Remove wrapper from fragment
18477	fragment.textContent = "";
18478
18479	i = 0;
18480	while ( ( elem = nodes[ i++ ] ) ) {
18481
18482		// Skip elements already in the context collection (trac-4087)
18483		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
18484			if ( ignored ) {
18485				ignored.push( elem );
18486			}
18487			continue;
18488		}
18489
18490		attached = isAttached( elem );
18491
18492		// Append to fragment
18493		tmp = getAll( fragment.appendChild( elem ), "script" );
18494
18495		// Preserve script evaluation history
18496		if ( attached ) {
18497			setGlobalEval( tmp );
18498		}
18499
18500		// Capture executables
18501		if ( scripts ) {
18502			j = 0;
18503			while ( ( elem = tmp[ j++ ] ) ) {
18504				if ( rscriptType.test( elem.type || "" ) ) {
18505					scripts.push( elem );
18506				}
18507			}
18508		}
18509	}
18510
18511	return fragment;
18512}
18513
18514
18515var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
18516
18517function returnTrue() {
18518	return true;
18519}
18520
18521function returnFalse() {
18522	return false;
18523}
18524
18525// Support: IE <=9 - 11+
18526// focus() and blur() are asynchronous, except when they are no-op.
18527// So expect focus to be synchronous when the element is already active,
18528// and blur to be synchronous when the element is not already active.
18529// (focus and blur are always synchronous in other supported browsers,
18530// this just defines when we can count on it).
18531function expectSync( elem, type ) {
18532	return ( elem === safeActiveElement() ) === ( type === "focus" );
18533}
18534
18535// Support: IE <=9 only
18536// Accessing document.activeElement can throw unexpectedly
18537// https://bugs.jquery.com/ticket/13393
18538function safeActiveElement() {
18539	try {
18540		return document.activeElement;
18541	} catch ( err ) { }
18542}
18543
18544function on( elem, types, selector, data, fn, one ) {
18545	var origFn, type;
18546
18547	// Types can be a map of types/handlers
18548	if ( typeof types === "object" ) {
18549
18550		// ( types-Object, selector, data )
18551		if ( typeof selector !== "string" ) {
18552
18553			// ( types-Object, data )
18554			data = data || selector;
18555			selector = undefined;
18556		}
18557		for ( type in types ) {
18558			on( elem, type, selector, data, types[ type ], one );
18559		}
18560		return elem;
18561	}
18562
18563	if ( data == null && fn == null ) {
18564
18565		// ( types, fn )
18566		fn = selector;
18567		data = selector = undefined;
18568	} else if ( fn == null ) {
18569		if ( typeof selector === "string" ) {
18570
18571			// ( types, selector, fn )
18572			fn = data;
18573			data = undefined;
18574		} else {
18575
18576			// ( types, data, fn )
18577			fn = data;
18578			data = selector;
18579			selector = undefined;
18580		}
18581	}
18582	if ( fn === false ) {
18583		fn = returnFalse;
18584	} else if ( !fn ) {
18585		return elem;
18586	}
18587
18588	if ( one === 1 ) {
18589		origFn = fn;
18590		fn = function( event ) {
18591
18592			// Can use an empty set, since event contains the info
18593			jQuery().off( event );
18594			return origFn.apply( this, arguments );
18595		};
18596
18597		// Use same guid so caller can remove using origFn
18598		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
18599	}
18600	return elem.each( function() {
18601		jQuery.event.add( this, types, fn, data, selector );
18602	} );
18603}
18604
18605/*
18606 * Helper functions for managing events -- not part of the public interface.
18607 * Props to Dean Edwards' addEvent library for many of the ideas.
18608 */
18609jQuery.event = {
18610
18611	global: {},
18612
18613	add: function( elem, types, handler, data, selector ) {
18614
18615		var handleObjIn, eventHandle, tmp,
18616			events, t, handleObj,
18617			special, handlers, type, namespaces, origType,
18618			elemData = dataPriv.get( elem );
18619
18620		// Only attach events to objects that accept data
18621		if ( !acceptData( elem ) ) {
18622			return;
18623		}
18624
18625		// Caller can pass in an object of custom data in lieu of the handler
18626		if ( handler.handler ) {
18627			handleObjIn = handler;
18628			handler = handleObjIn.handler;
18629			selector = handleObjIn.selector;
18630		}
18631
18632		// Ensure that invalid selectors throw exceptions at attach time
18633		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
18634		if ( selector ) {
18635			jQuery.find.matchesSelector( documentElement, selector );
18636		}
18637
18638		// Make sure that the handler has a unique ID, used to find/remove it later
18639		if ( !handler.guid ) {
18640			handler.guid = jQuery.guid++;
18641		}
18642
18643		// Init the element's event structure and main handler, if this is the first
18644		if ( !( events = elemData.events ) ) {
18645			events = elemData.events = Object.create( null );
18646		}
18647		if ( !( eventHandle = elemData.handle ) ) {
18648			eventHandle = elemData.handle = function( e ) {
18649
18650				// Discard the second event of a jQuery.event.trigger() and
18651				// when an event is called after a page has unloaded
18652				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
18653					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
18654			};
18655		}
18656
18657		// Handle multiple events separated by a space
18658		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
18659		t = types.length;
18660		while ( t-- ) {
18661			tmp = rtypenamespace.exec( types[ t ] ) || [];
18662			type = origType = tmp[ 1 ];
18663			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
18664
18665			// There *must* be a type, no attaching namespace-only handlers
18666			if ( !type ) {
18667				continue;
18668			}
18669
18670			// If event changes its type, use the special event handlers for the changed type
18671			special = jQuery.event.special[ type ] || {};
18672
18673			// If selector defined, determine special event api type, otherwise given type
18674			type = ( selector ? special.delegateType : special.bindType ) || type;
18675
18676			// Update special based on newly reset type
18677			special = jQuery.event.special[ type ] || {};
18678
18679			// handleObj is passed to all event handlers
18680			handleObj = jQuery.extend( {
18681				type: type,
18682				origType: origType,
18683				data: data,
18684				handler: handler,
18685				guid: handler.guid,
18686				selector: selector,
18687				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
18688				namespace: namespaces.join( "." )
18689			}, handleObjIn );
18690
18691			// Init the event handler queue if we're the first
18692			if ( !( handlers = events[ type ] ) ) {
18693				handlers = events[ type ] = [];
18694				handlers.delegateCount = 0;
18695
18696				// Only use addEventListener if the special events handler returns false
18697				if ( !special.setup ||
18698					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
18699
18700					if ( elem.addEventListener ) {
18701						elem.addEventListener( type, eventHandle );
18702					}
18703				}
18704			}
18705
18706			if ( special.add ) {
18707				special.add.call( elem, handleObj );
18708
18709				if ( !handleObj.handler.guid ) {
18710					handleObj.handler.guid = handler.guid;
18711				}
18712			}
18713
18714			// Add to the element's handler list, delegates in front
18715			if ( selector ) {
18716				handlers.splice( handlers.delegateCount++, 0, handleObj );
18717			} else {
18718				handlers.push( handleObj );
18719			}
18720
18721			// Keep track of which events have ever been used, for event optimization
18722			jQuery.event.global[ type ] = true;
18723		}
18724
18725	},
18726
18727	// Detach an event or set of events from an element
18728	remove: function( elem, types, handler, selector, mappedTypes ) {
18729
18730		var j, origCount, tmp,
18731			events, t, handleObj,
18732			special, handlers, type, namespaces, origType,
18733			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
18734
18735		if ( !elemData || !( events = elemData.events ) ) {
18736			return;
18737		}
18738
18739		// Once for each type.namespace in types; type may be omitted
18740		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
18741		t = types.length;
18742		while ( t-- ) {
18743			tmp = rtypenamespace.exec( types[ t ] ) || [];
18744			type = origType = tmp[ 1 ];
18745			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
18746
18747			// Unbind all events (on this namespace, if provided) for the element
18748			if ( !type ) {
18749				for ( type in events ) {
18750					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
18751				}
18752				continue;
18753			}
18754
18755			special = jQuery.event.special[ type ] || {};
18756			type = ( selector ? special.delegateType : special.bindType ) || type;
18757			handlers = events[ type ] || [];
18758			tmp = tmp[ 2 ] &&
18759				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
18760
18761			// Remove matching events
18762			origCount = j = handlers.length;
18763			while ( j-- ) {
18764				handleObj = handlers[ j ];
18765
18766				if ( ( mappedTypes || origType === handleObj.origType ) &&
18767					( !handler || handler.guid === handleObj.guid ) &&
18768					( !tmp || tmp.test( handleObj.namespace ) ) &&
18769					( !selector || selector === handleObj.selector ||
18770						selector === "**" && handleObj.selector ) ) {
18771					handlers.splice( j, 1 );
18772
18773					if ( handleObj.selector ) {
18774						handlers.delegateCount--;
18775					}
18776					if ( special.remove ) {
18777						special.remove.call( elem, handleObj );
18778					}
18779				}
18780			}
18781
18782			// Remove generic event handler if we removed something and no more handlers exist
18783			// (avoids potential for endless recursion during removal of special event handlers)
18784			if ( origCount && !handlers.length ) {
18785				if ( !special.teardown ||
18786					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
18787
18788					jQuery.removeEvent( elem, type, elemData.handle );
18789				}
18790
18791				delete events[ type ];
18792			}
18793		}
18794
18795		// Remove data and the expando if it's no longer used
18796		if ( jQuery.isEmptyObject( events ) ) {
18797			dataPriv.remove( elem, "handle events" );
18798		}
18799	},
18800
18801	dispatch: function( nativeEvent ) {
18802
18803		var i, j, ret, matched, handleObj, handlerQueue,
18804			args = new Array( arguments.length ),
18805
18806			// Make a writable jQuery.Event from the native event object
18807			event = jQuery.event.fix( nativeEvent ),
18808
18809			handlers = (
18810				dataPriv.get( this, "events" ) || Object.create( null )
18811			)[ event.type ] || [],
18812			special = jQuery.event.special[ event.type ] || {};
18813
18814		// Use the fix-ed jQuery.Event rather than the (read-only) native event
18815		args[ 0 ] = event;
18816
18817		for ( i = 1; i < arguments.length; i++ ) {
18818			args[ i ] = arguments[ i ];
18819		}
18820
18821		event.delegateTarget = this;
18822
18823		// Call the preDispatch hook for the mapped type, and let it bail if desired
18824		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
18825			return;
18826		}
18827
18828		// Determine handlers
18829		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
18830
18831		// Run delegates first; they may want to stop propagation beneath us
18832		i = 0;
18833		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
18834			event.currentTarget = matched.elem;
18835
18836			j = 0;
18837			while ( ( handleObj = matched.handlers[ j++ ] ) &&
18838				!event.isImmediatePropagationStopped() ) {
18839
18840				// If the event is namespaced, then each handler is only invoked if it is
18841				// specially universal or its namespaces are a superset of the event's.
18842				if ( !event.rnamespace || handleObj.namespace === false ||
18843					event.rnamespace.test( handleObj.namespace ) ) {
18844
18845					event.handleObj = handleObj;
18846					event.data = handleObj.data;
18847
18848					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
18849						handleObj.handler ).apply( matched.elem, args );
18850
18851					if ( ret !== undefined ) {
18852						if ( ( event.result = ret ) === false ) {
18853							event.preventDefault();
18854							event.stopPropagation();
18855						}
18856					}
18857				}
18858			}
18859		}
18860
18861		// Call the postDispatch hook for the mapped type
18862		if ( special.postDispatch ) {
18863			special.postDispatch.call( this, event );
18864		}
18865
18866		return event.result;
18867	},
18868
18869	handlers: function( event, handlers ) {
18870		var i, handleObj, sel, matchedHandlers, matchedSelectors,
18871			handlerQueue = [],
18872			delegateCount = handlers.delegateCount,
18873			cur = event.target;
18874
18875		// Find delegate handlers
18876		if ( delegateCount &&
18877
18878			// Support: IE <=9
18879			// Black-hole SVG <use> instance trees (trac-13180)
18880			cur.nodeType &&
18881
18882			// Support: Firefox <=42
18883			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
18884			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
18885			// Support: IE 11 only
18886			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
18887			!( event.type === "click" && event.button >= 1 ) ) {
18888
18889			for ( ; cur !== this; cur = cur.parentNode || this ) {
18890
18891				// Don't check non-elements (#13208)
18892				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
18893				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
18894					matchedHandlers = [];
18895					matchedSelectors = {};
18896					for ( i = 0; i < delegateCount; i++ ) {
18897						handleObj = handlers[ i ];
18898
18899						// Don't conflict with Object.prototype properties (#13203)
18900						sel = handleObj.selector + " ";
18901
18902						if ( matchedSelectors[ sel ] === undefined ) {
18903							matchedSelectors[ sel ] = handleObj.needsContext ?
18904								jQuery( sel, this ).index( cur ) > -1 :
18905								jQuery.find( sel, this, null, [ cur ] ).length;
18906						}
18907						if ( matchedSelectors[ sel ] ) {
18908							matchedHandlers.push( handleObj );
18909						}
18910					}
18911					if ( matchedHandlers.length ) {
18912						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
18913					}
18914				}
18915			}
18916		}
18917
18918		// Add the remaining (directly-bound) handlers
18919		cur = this;
18920		if ( delegateCount < handlers.length ) {
18921			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
18922		}
18923
18924		return handlerQueue;
18925	},
18926
18927	addProp: function( name, hook ) {
18928		Object.defineProperty( jQuery.Event.prototype, name, {
18929			enumerable: true,
18930			configurable: true,
18931
18932			get: isFunction( hook ) ?
18933				function() {
18934					if ( this.originalEvent ) {
18935						return hook( this.originalEvent );
18936					}
18937				} :
18938				function() {
18939					if ( this.originalEvent ) {
18940						return this.originalEvent[ name ];
18941					}
18942				},
18943
18944			set: function( value ) {
18945				Object.defineProperty( this, name, {
18946					enumerable: true,
18947					configurable: true,
18948					writable: true,
18949					value: value
18950				} );
18951			}
18952		} );
18953	},
18954
18955	fix: function( originalEvent ) {
18956		return originalEvent[ jQuery.expando ] ?
18957			originalEvent :
18958			new jQuery.Event( originalEvent );
18959	},
18960
18961	special: {
18962		load: {
18963
18964			// Prevent triggered image.load events from bubbling to window.load
18965			noBubble: true
18966		},
18967		click: {
18968
18969			// Utilize native event to ensure correct state for checkable inputs
18970			setup: function( data ) {
18971
18972				// For mutual compressibility with _default, replace `this` access with a local var.
18973				// `|| data` is dead code meant only to preserve the variable through minification.
18974				var el = this || data;
18975
18976				// Claim the first handler
18977				if ( rcheckableType.test( el.type ) &&
18978					el.click && nodeName( el, "input" ) ) {
18979
18980					// dataPriv.set( el, "click", ... )
18981					leverageNative( el, "click", returnTrue );
18982				}
18983
18984				// Return false to allow normal processing in the caller
18985				return false;
18986			},
18987			trigger: function( data ) {
18988
18989				// For mutual compressibility with _default, replace `this` access with a local var.
18990				// `|| data` is dead code meant only to preserve the variable through minification.
18991				var el = this || data;
18992
18993				// Force setup before triggering a click
18994				if ( rcheckableType.test( el.type ) &&
18995					el.click && nodeName( el, "input" ) ) {
18996
18997					leverageNative( el, "click" );
18998				}
18999
19000				// Return non-false to allow normal event-path propagation
19001				return true;
19002			},
19003
19004			// For cross-browser consistency, suppress native .click() on links
19005			// Also prevent it if we're currently inside a leveraged native-event stack
19006			_default: function( event ) {
19007				var target = event.target;
19008				return rcheckableType.test( target.type ) &&
19009					target.click && nodeName( target, "input" ) &&
19010					dataPriv.get( target, "click" ) ||
19011					nodeName( target, "a" );
19012			}
19013		},
19014
19015		beforeunload: {
19016			postDispatch: function( event ) {
19017
19018				// Support: Firefox 20+
19019				// Firefox doesn't alert if the returnValue field is not set.
19020				if ( event.result !== undefined && event.originalEvent ) {
19021					event.originalEvent.returnValue = event.result;
19022				}
19023			}
19024		}
19025	}
19026};
19027
19028// Ensure the presence of an event listener that handles manually-triggered
19029// synthetic events by interrupting progress until reinvoked in response to
19030// *native* events that it fires directly, ensuring that state changes have
19031// already occurred before other listeners are invoked.
19032function leverageNative( el, type, expectSync ) {
19033
19034	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
19035	if ( !expectSync ) {
19036		if ( dataPriv.get( el, type ) === undefined ) {
19037			jQuery.event.add( el, type, returnTrue );
19038		}
19039		return;
19040	}
19041
19042	// Register the controller as a special universal handler for all event namespaces
19043	dataPriv.set( el, type, false );
19044	jQuery.event.add( el, type, {
19045		namespace: false,
19046		handler: function( event ) {
19047			var notAsync, result,
19048				saved = dataPriv.get( this, type );
19049
19050			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
19051
19052				// Interrupt processing of the outer synthetic .trigger()ed event
19053				// Saved data should be false in such cases, but might be a leftover capture object
19054				// from an async native handler (gh-4350)
19055				if ( !saved.length ) {
19056
19057					// Store arguments for use when handling the inner native event
19058					// There will always be at least one argument (an event object), so this array
19059					// will not be confused with a leftover capture object.
19060					saved = slice.call( arguments );
19061					dataPriv.set( this, type, saved );
19062
19063					// Trigger the native event and capture its result
19064					// Support: IE <=9 - 11+
19065					// focus() and blur() are asynchronous
19066					notAsync = expectSync( this, type );
19067					this[ type ]();
19068					result = dataPriv.get( this, type );
19069					if ( saved !== result || notAsync ) {
19070						dataPriv.set( this, type, false );
19071					} else {
19072						result = {};
19073					}
19074					if ( saved !== result ) {
19075
19076						// Cancel the outer synthetic event
19077						event.stopImmediatePropagation();
19078						event.preventDefault();
19079
19080						// Support: Chrome 86+
19081						// In Chrome, if an element having a focusout handler is blurred by
19082						// clicking outside of it, it invokes the handler synchronously. If
19083						// that handler calls `.remove()` on the element, the data is cleared,
19084						// leaving `result` undefined. We need to guard against this.
19085						return result && result.value;
19086					}
19087
19088				// If this is an inner synthetic event for an event with a bubbling surrogate
19089				// (focus or blur), assume that the surrogate already propagated from triggering the
19090				// native event and prevent that from happening again here.
19091				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
19092				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
19093				// less bad than duplication.
19094				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
19095					event.stopPropagation();
19096				}
19097
19098			// If this is a native event triggered above, everything is now in order
19099			// Fire an inner synthetic event with the original arguments
19100			} else if ( saved.length ) {
19101
19102				// ...and capture the result
19103				dataPriv.set( this, type, {
19104					value: jQuery.event.trigger(
19105
19106						// Support: IE <=9 - 11+
19107						// Extend with the prototype to reset the above stopImmediatePropagation()
19108						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
19109						saved.slice( 1 ),
19110						this
19111					)
19112				} );
19113
19114				// Abort handling of the native event
19115				event.stopImmediatePropagation();
19116			}
19117		}
19118	} );
19119}
19120
19121jQuery.removeEvent = function( elem, type, handle ) {
19122
19123	// This "if" is needed for plain objects
19124	if ( elem.removeEventListener ) {
19125		elem.removeEventListener( type, handle );
19126	}
19127};
19128
19129jQuery.Event = function( src, props ) {
19130
19131	// Allow instantiation without the 'new' keyword
19132	if ( !( this instanceof jQuery.Event ) ) {
19133		return new jQuery.Event( src, props );
19134	}
19135
19136	// Event object
19137	if ( src && src.type ) {
19138		this.originalEvent = src;
19139		this.type = src.type;
19140
19141		// Events bubbling up the document may have been marked as prevented
19142		// by a handler lower down the tree; reflect the correct value.
19143		this.isDefaultPrevented = src.defaultPrevented ||
19144				src.defaultPrevented === undefined &&
19145
19146				// Support: Android <=2.3 only
19147				src.returnValue === false ?
19148			returnTrue :
19149			returnFalse;
19150
19151		// Create target properties
19152		// Support: Safari <=6 - 7 only
19153		// Target should not be a text node (#504, #13143)
19154		this.target = ( src.target && src.target.nodeType === 3 ) ?
19155			src.target.parentNode :
19156			src.target;
19157
19158		this.currentTarget = src.currentTarget;
19159		this.relatedTarget = src.relatedTarget;
19160
19161	// Event type
19162	} else {
19163		this.type = src;
19164	}
19165
19166	// Put explicitly provided properties onto the event object
19167	if ( props ) {
19168		jQuery.extend( this, props );
19169	}
19170
19171	// Create a timestamp if incoming event doesn't have one
19172	this.timeStamp = src && src.timeStamp || Date.now();
19173
19174	// Mark it as fixed
19175	this[ jQuery.expando ] = true;
19176};
19177
19178// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
19179// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
19180jQuery.Event.prototype = {
19181	constructor: jQuery.Event,
19182	isDefaultPrevented: returnFalse,
19183	isPropagationStopped: returnFalse,
19184	isImmediatePropagationStopped: returnFalse,
19185	isSimulated: false,
19186
19187	preventDefault: function() {
19188		var e = this.originalEvent;
19189
19190		this.isDefaultPrevented = returnTrue;
19191
19192		if ( e && !this.isSimulated ) {
19193			e.preventDefault();
19194		}
19195	},
19196	stopPropagation: function() {
19197		var e = this.originalEvent;
19198
19199		this.isPropagationStopped = returnTrue;
19200
19201		if ( e && !this.isSimulated ) {
19202			e.stopPropagation();
19203		}
19204	},
19205	stopImmediatePropagation: function() {
19206		var e = this.originalEvent;
19207
19208		this.isImmediatePropagationStopped = returnTrue;
19209
19210		if ( e && !this.isSimulated ) {
19211			e.stopImmediatePropagation();
19212		}
19213
19214		this.stopPropagation();
19215	}
19216};
19217
19218// Includes all common event props including KeyEvent and MouseEvent specific props
19219jQuery.each( {
19220	altKey: true,
19221	bubbles: true,
19222	cancelable: true,
19223	changedTouches: true,
19224	ctrlKey: true,
19225	detail: true,
19226	eventPhase: true,
19227	metaKey: true,
19228	pageX: true,
19229	pageY: true,
19230	shiftKey: true,
19231	view: true,
19232	"char": true,
19233	code: true,
19234	charCode: true,
19235	key: true,
19236	keyCode: true,
19237	button: true,
19238	buttons: true,
19239	clientX: true,
19240	clientY: true,
19241	offsetX: true,
19242	offsetY: true,
19243	pointerId: true,
19244	pointerType: true,
19245	screenX: true,
19246	screenY: true,
19247	targetTouches: true,
19248	toElement: true,
19249	touches: true,
19250	which: true
19251}, jQuery.event.addProp );
19252
19253jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
19254	jQuery.event.special[ type ] = {
19255
19256		// Utilize native event if possible so blur/focus sequence is correct
19257		setup: function() {
19258
19259			// Claim the first handler
19260			// dataPriv.set( this, "focus", ... )
19261			// dataPriv.set( this, "blur", ... )
19262			leverageNative( this, type, expectSync );
19263
19264			// Return false to allow normal processing in the caller
19265			return false;
19266		},
19267		trigger: function() {
19268
19269			// Force setup before trigger
19270			leverageNative( this, type );
19271
19272			// Return non-false to allow normal event-path propagation
19273			return true;
19274		},
19275
19276		// Suppress native focus or blur as it's already being fired
19277		// in leverageNative.
19278		_default: function() {
19279			return true;
19280		},
19281
19282		delegateType: delegateType
19283	};
19284} );
19285
19286// Create mouseenter/leave events using mouseover/out and event-time checks
19287// so that event delegation works in jQuery.
19288// Do the same for pointerenter/pointerleave and pointerover/pointerout
19289//
19290// Support: Safari 7 only
19291// Safari sends mouseenter too often; see:
19292// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
19293// for the description of the bug (it existed in older Chrome versions as well).
19294jQuery.each( {
19295	mouseenter: "mouseover",
19296	mouseleave: "mouseout",
19297	pointerenter: "pointerover",
19298	pointerleave: "pointerout"
19299}, function( orig, fix ) {
19300	jQuery.event.special[ orig ] = {
19301		delegateType: fix,
19302		bindType: fix,
19303
19304		handle: function( event ) {
19305			var ret,
19306				target = this,
19307				related = event.relatedTarget,
19308				handleObj = event.handleObj;
19309
19310			// For mouseenter/leave call the handler if related is outside the target.
19311			// NB: No relatedTarget if the mouse left/entered the browser window
19312			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
19313				event.type = handleObj.origType;
19314				ret = handleObj.handler.apply( this, arguments );
19315				event.type = fix;
19316			}
19317			return ret;
19318		}
19319	};
19320} );
19321
19322jQuery.fn.extend( {
19323
19324	on: function( types, selector, data, fn ) {
19325		return on( this, types, selector, data, fn );
19326	},
19327	one: function( types, selector, data, fn ) {
19328		return on( this, types, selector, data, fn, 1 );
19329	},
19330	off: function( types, selector, fn ) {
19331		var handleObj, type;
19332		if ( types && types.preventDefault && types.handleObj ) {
19333
19334			// ( event )  dispatched jQuery.Event
19335			handleObj = types.handleObj;
19336			jQuery( types.delegateTarget ).off(
19337				handleObj.namespace ?
19338					handleObj.origType + "." + handleObj.namespace :
19339					handleObj.origType,
19340				handleObj.selector,
19341				handleObj.handler
19342			);
19343			return this;
19344		}
19345		if ( typeof types === "object" ) {
19346
19347			// ( types-object [, selector] )
19348			for ( type in types ) {
19349				this.off( type, selector, types[ type ] );
19350			}
19351			return this;
19352		}
19353		if ( selector === false || typeof selector === "function" ) {
19354
19355			// ( types [, fn] )
19356			fn = selector;
19357			selector = undefined;
19358		}
19359		if ( fn === false ) {
19360			fn = returnFalse;
19361		}
19362		return this.each( function() {
19363			jQuery.event.remove( this, types, fn, selector );
19364		} );
19365	}
19366} );
19367
19368
19369var
19370
19371	// Support: IE <=10 - 11, Edge 12 - 13 only
19372	// In IE/Edge using regex groups here causes severe slowdowns.
19373	// See https://connect.microsoft.com/IE/feedback/details/1736512/
19374	rnoInnerhtml = /<script|<style|<link/i,
19375
19376	// checked="checked" or checked
19377	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
19378	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
19379
19380// Prefer a tbody over its parent table for containing new rows
19381function manipulationTarget( elem, content ) {
19382	if ( nodeName( elem, "table" ) &&
19383		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
19384
19385		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
19386	}
19387
19388	return elem;
19389}
19390
19391// Replace/restore the type attribute of script elements for safe DOM manipulation
19392function disableScript( elem ) {
19393	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
19394	return elem;
19395}
19396function restoreScript( elem ) {
19397	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
19398		elem.type = elem.type.slice( 5 );
19399	} else {
19400		elem.removeAttribute( "type" );
19401	}
19402
19403	return elem;
19404}
19405
19406function cloneCopyEvent( src, dest ) {
19407	var i, l, type, pdataOld, udataOld, udataCur, events;
19408
19409	if ( dest.nodeType !== 1 ) {
19410		return;
19411	}
19412
19413	// 1. Copy private data: events, handlers, etc.
19414	if ( dataPriv.hasData( src ) ) {
19415		pdataOld = dataPriv.get( src );
19416		events = pdataOld.events;
19417
19418		if ( events ) {
19419			dataPriv.remove( dest, "handle events" );
19420
19421			for ( type in events ) {
19422				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
19423					jQuery.event.add( dest, type, events[ type ][ i ] );
19424				}
19425			}
19426		}
19427	}
19428
19429	// 2. Copy user data
19430	if ( dataUser.hasData( src ) ) {
19431		udataOld = dataUser.access( src );
19432		udataCur = jQuery.extend( {}, udataOld );
19433
19434		dataUser.set( dest, udataCur );
19435	}
19436}
19437
19438// Fix IE bugs, see support tests
19439function fixInput( src, dest ) {
19440	var nodeName = dest.nodeName.toLowerCase();
19441
19442	// Fails to persist the checked state of a cloned checkbox or radio button.
19443	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
19444		dest.checked = src.checked;
19445
19446	// Fails to return the selected option to the default selected state when cloning options
19447	} else if ( nodeName === "input" || nodeName === "textarea" ) {
19448		dest.defaultValue = src.defaultValue;
19449	}
19450}
19451
19452function domManip( collection, args, callback, ignored ) {
19453
19454	// Flatten any nested arrays
19455	args = flat( args );
19456
19457	var fragment, first, scripts, hasScripts, node, doc,
19458		i = 0,
19459		l = collection.length,
19460		iNoClone = l - 1,
19461		value = args[ 0 ],
19462		valueIsFunction = isFunction( value );
19463
19464	// We can't cloneNode fragments that contain checked, in WebKit
19465	if ( valueIsFunction ||
19466			( l > 1 && typeof value === "string" &&
19467				!support.checkClone && rchecked.test( value ) ) ) {
19468		return collection.each( function( index ) {
19469			var self = collection.eq( index );
19470			if ( valueIsFunction ) {
19471				args[ 0 ] = value.call( this, index, self.html() );
19472			}
19473			domManip( self, args, callback, ignored );
19474		} );
19475	}
19476
19477	if ( l ) {
19478		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
19479		first = fragment.firstChild;
19480
19481		if ( fragment.childNodes.length === 1 ) {
19482			fragment = first;
19483		}
19484
19485		// Require either new content or an interest in ignored elements to invoke the callback
19486		if ( first || ignored ) {
19487			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
19488			hasScripts = scripts.length;
19489
19490			// Use the original fragment for the last item
19491			// instead of the first because it can end up
19492			// being emptied incorrectly in certain situations (#8070).
19493			for ( ; i < l; i++ ) {
19494				node = fragment;
19495
19496				if ( i !== iNoClone ) {
19497					node = jQuery.clone( node, true, true );
19498
19499					// Keep references to cloned scripts for later restoration
19500					if ( hasScripts ) {
19501
19502						// Support: Android <=4.0 only, PhantomJS 1 only
19503						// push.apply(_, arraylike) throws on ancient WebKit
19504						jQuery.merge( scripts, getAll( node, "script" ) );
19505					}
19506				}
19507
19508				callback.call( collection[ i ], node, i );
19509			}
19510
19511			if ( hasScripts ) {
19512				doc = scripts[ scripts.length - 1 ].ownerDocument;
19513
19514				// Reenable scripts
19515				jQuery.map( scripts, restoreScript );
19516
19517				// Evaluate executable scripts on first document insertion
19518				for ( i = 0; i < hasScripts; i++ ) {
19519					node = scripts[ i ];
19520					if ( rscriptType.test( node.type || "" ) &&
19521						!dataPriv.access( node, "globalEval" ) &&
19522						jQuery.contains( doc, node ) ) {
19523
19524						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
19525
19526							// Optional AJAX dependency, but won't run scripts if not present
19527							if ( jQuery._evalUrl && !node.noModule ) {
19528								jQuery._evalUrl( node.src, {
19529									nonce: node.nonce || node.getAttribute( "nonce" )
19530								}, doc );
19531							}
19532						} else {
19533							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
19534						}
19535					}
19536				}
19537			}
19538		}
19539	}
19540
19541	return collection;
19542}
19543
19544function remove( elem, selector, keepData ) {
19545	var node,
19546		nodes = selector ? jQuery.filter( selector, elem ) : elem,
19547		i = 0;
19548
19549	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
19550		if ( !keepData && node.nodeType === 1 ) {
19551			jQuery.cleanData( getAll( node ) );
19552		}
19553
19554		if ( node.parentNode ) {
19555			if ( keepData && isAttached( node ) ) {
19556				setGlobalEval( getAll( node, "script" ) );
19557			}
19558			node.parentNode.removeChild( node );
19559		}
19560	}
19561
19562	return elem;
19563}
19564
19565jQuery.extend( {
19566	htmlPrefilter: function( html ) {
19567		return html;
19568	},
19569
19570	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
19571		var i, l, srcElements, destElements,
19572			clone = elem.cloneNode( true ),
19573			inPage = isAttached( elem );
19574
19575		// Fix IE cloning issues
19576		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
19577				!jQuery.isXMLDoc( elem ) ) {
19578
19579			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
19580			destElements = getAll( clone );
19581			srcElements = getAll( elem );
19582
19583			for ( i = 0, l = srcElements.length; i < l; i++ ) {
19584				fixInput( srcElements[ i ], destElements[ i ] );
19585			}
19586		}
19587
19588		// Copy the events from the original to the clone
19589		if ( dataAndEvents ) {
19590			if ( deepDataAndEvents ) {
19591				srcElements = srcElements || getAll( elem );
19592				destElements = destElements || getAll( clone );
19593
19594				for ( i = 0, l = srcElements.length; i < l; i++ ) {
19595					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
19596				}
19597			} else {
19598				cloneCopyEvent( elem, clone );
19599			}
19600		}
19601
19602		// Preserve script evaluation history
19603		destElements = getAll( clone, "script" );
19604		if ( destElements.length > 0 ) {
19605			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
19606		}
19607
19608		// Return the cloned set
19609		return clone;
19610	},
19611
19612	cleanData: function( elems ) {
19613		var data, elem, type,
19614			special = jQuery.event.special,
19615			i = 0;
19616
19617		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
19618			if ( acceptData( elem ) ) {
19619				if ( ( data = elem[ dataPriv.expando ] ) ) {
19620					if ( data.events ) {
19621						for ( type in data.events ) {
19622							if ( special[ type ] ) {
19623								jQuery.event.remove( elem, type );
19624
19625							// This is a shortcut to avoid jQuery.event.remove's overhead
19626							} else {
19627								jQuery.removeEvent( elem, type, data.handle );
19628							}
19629						}
19630					}
19631
19632					// Support: Chrome <=35 - 45+
19633					// Assign undefined instead of using delete, see Data#remove
19634					elem[ dataPriv.expando ] = undefined;
19635				}
19636				if ( elem[ dataUser.expando ] ) {
19637
19638					// Support: Chrome <=35 - 45+
19639					// Assign undefined instead of using delete, see Data#remove
19640					elem[ dataUser.expando ] = undefined;
19641				}
19642			}
19643		}
19644	}
19645} );
19646
19647jQuery.fn.extend( {
19648	detach: function( selector ) {
19649		return remove( this, selector, true );
19650	},
19651
19652	remove: function( selector ) {
19653		return remove( this, selector );
19654	},
19655
19656	text: function( value ) {
19657		return access( this, function( value ) {
19658			return value === undefined ?
19659				jQuery.text( this ) :
19660				this.empty().each( function() {
19661					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
19662						this.textContent = value;
19663					}
19664				} );
19665		}, null, value, arguments.length );
19666	},
19667
19668	append: function() {
19669		return domManip( this, arguments, function( elem ) {
19670			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
19671				var target = manipulationTarget( this, elem );
19672				target.appendChild( elem );
19673			}
19674		} );
19675	},
19676
19677	prepend: function() {
19678		return domManip( this, arguments, function( elem ) {
19679			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
19680				var target = manipulationTarget( this, elem );
19681				target.insertBefore( elem, target.firstChild );
19682			}
19683		} );
19684	},
19685
19686	before: function() {
19687		return domManip( this, arguments, function( elem ) {
19688			if ( this.parentNode ) {
19689				this.parentNode.insertBefore( elem, this );
19690			}
19691		} );
19692	},
19693
19694	after: function() {
19695		return domManip( this, arguments, function( elem ) {
19696			if ( this.parentNode ) {
19697				this.parentNode.insertBefore( elem, this.nextSibling );
19698			}
19699		} );
19700	},
19701
19702	empty: function() {
19703		var elem,
19704			i = 0;
19705
19706		for ( ; ( elem = this[ i ] ) != null; i++ ) {
19707			if ( elem.nodeType === 1 ) {
19708
19709				// Prevent memory leaks
19710				jQuery.cleanData( getAll( elem, false ) );
19711
19712				// Remove any remaining nodes
19713				elem.textContent = "";
19714			}
19715		}
19716
19717		return this;
19718	},
19719
19720	clone: function( dataAndEvents, deepDataAndEvents ) {
19721		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
19722		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
19723
19724		return this.map( function() {
19725			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
19726		} );
19727	},
19728
19729	html: function( value ) {
19730		return access( this, function( value ) {
19731			var elem = this[ 0 ] || {},
19732				i = 0,
19733				l = this.length;
19734
19735			if ( value === undefined && elem.nodeType === 1 ) {
19736				return elem.innerHTML;
19737			}
19738
19739			// See if we can take a shortcut and just use innerHTML
19740			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
19741				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
19742
19743				value = jQuery.htmlPrefilter( value );
19744
19745				try {
19746					for ( ; i < l; i++ ) {
19747						elem = this[ i ] || {};
19748
19749						// Remove element nodes and prevent memory leaks
19750						if ( elem.nodeType === 1 ) {
19751							jQuery.cleanData( getAll( elem, false ) );
19752							elem.innerHTML = value;
19753						}
19754					}
19755
19756					elem = 0;
19757
19758				// If using innerHTML throws an exception, use the fallback method
19759				} catch ( e ) {}
19760			}
19761
19762			if ( elem ) {
19763				this.empty().append( value );
19764			}
19765		}, null, value, arguments.length );
19766	},
19767
19768	replaceWith: function() {
19769		var ignored = [];
19770
19771		// Make the changes, replacing each non-ignored context element with the new content
19772		return domManip( this, arguments, function( elem ) {
19773			var parent = this.parentNode;
19774
19775			if ( jQuery.inArray( this, ignored ) < 0 ) {
19776				jQuery.cleanData( getAll( this ) );
19777				if ( parent ) {
19778					parent.replaceChild( elem, this );
19779				}
19780			}
19781
19782		// Force callback invocation
19783		}, ignored );
19784	}
19785} );
19786
19787jQuery.each( {
19788	appendTo: "append",
19789	prependTo: "prepend",
19790	insertBefore: "before",
19791	insertAfter: "after",
19792	replaceAll: "replaceWith"
19793}, function( name, original ) {
19794	jQuery.fn[ name ] = function( selector ) {
19795		var elems,
19796			ret = [],
19797			insert = jQuery( selector ),
19798			last = insert.length - 1,
19799			i = 0;
19800
19801		for ( ; i <= last; i++ ) {
19802			elems = i === last ? this : this.clone( true );
19803			jQuery( insert[ i ] )[ original ]( elems );
19804
19805			// Support: Android <=4.0 only, PhantomJS 1 only
19806			// .get() because push.apply(_, arraylike) throws on ancient WebKit
19807			push.apply( ret, elems.get() );
19808		}
19809
19810		return this.pushStack( ret );
19811	};
19812} );
19813var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
19814
19815var getStyles = function( elem ) {
19816
19817		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
19818		// IE throws on elements created in popups
19819		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
19820		var view = elem.ownerDocument.defaultView;
19821
19822		if ( !view || !view.opener ) {
19823			view = window;
19824		}
19825
19826		return view.getComputedStyle( elem );
19827	};
19828
19829var swap = function( elem, options, callback ) {
19830	var ret, name,
19831		old = {};
19832
19833	// Remember the old values, and insert the new ones
19834	for ( name in options ) {
19835		old[ name ] = elem.style[ name ];
19836		elem.style[ name ] = options[ name ];
19837	}
19838
19839	ret = callback.call( elem );
19840
19841	// Revert the old values
19842	for ( name in options ) {
19843		elem.style[ name ] = old[ name ];
19844	}
19845
19846	return ret;
19847};
19848
19849
19850var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
19851
19852
19853
19854( function() {
19855
19856	// Executing both pixelPosition & boxSizingReliable tests require only one layout
19857	// so they're executed at the same time to save the second computation.
19858	function computeStyleTests() {
19859
19860		// This is a singleton, we need to execute it only once
19861		if ( !div ) {
19862			return;
19863		}
19864
19865		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
19866			"margin-top:1px;padding:0;border:0";
19867		div.style.cssText =
19868			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
19869			"margin:auto;border:1px;padding:1px;" +
19870			"width:60%;top:1%";
19871		documentElement.appendChild( container ).appendChild( div );
19872
19873		var divStyle = window.getComputedStyle( div );
19874		pixelPositionVal = divStyle.top !== "1%";
19875
19876		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
19877		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
19878
19879		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
19880		// Some styles come back with percentage values, even though they shouldn't
19881		div.style.right = "60%";
19882		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
19883
19884		// Support: IE 9 - 11 only
19885		// Detect misreporting of content dimensions for box-sizing:border-box elements
19886		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
19887
19888		// Support: IE 9 only
19889		// Detect overflow:scroll screwiness (gh-3699)
19890		// Support: Chrome <=64
19891		// Don't get tricked when zoom affects offsetWidth (gh-4029)
19892		div.style.position = "absolute";
19893		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
19894
19895		documentElement.removeChild( container );
19896
19897		// Nullify the div so it wouldn't be stored in the memory and
19898		// it will also be a sign that checks already performed
19899		div = null;
19900	}
19901
19902	function roundPixelMeasures( measure ) {
19903		return Math.round( parseFloat( measure ) );
19904	}
19905
19906	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
19907		reliableTrDimensionsVal, reliableMarginLeftVal,
19908		container = document.createElement( "div" ),
19909		div = document.createElement( "div" );
19910
19911	// Finish early in limited (non-browser) environments
19912	if ( !div.style ) {
19913		return;
19914	}
19915
19916	// Support: IE <=9 - 11 only
19917	// Style of cloned element affects source element cloned (#8908)
19918	div.style.backgroundClip = "content-box";
19919	div.cloneNode( true ).style.backgroundClip = "";
19920	support.clearCloneStyle = div.style.backgroundClip === "content-box";
19921
19922	jQuery.extend( support, {
19923		boxSizingReliable: function() {
19924			computeStyleTests();
19925			return boxSizingReliableVal;
19926		},
19927		pixelBoxStyles: function() {
19928			computeStyleTests();
19929			return pixelBoxStylesVal;
19930		},
19931		pixelPosition: function() {
19932			computeStyleTests();
19933			return pixelPositionVal;
19934		},
19935		reliableMarginLeft: function() {
19936			computeStyleTests();
19937			return reliableMarginLeftVal;
19938		},
19939		scrollboxSize: function() {
19940			computeStyleTests();
19941			return scrollboxSizeVal;
19942		},
19943
19944		// Support: IE 9 - 11+, Edge 15 - 18+
19945		// IE/Edge misreport `getComputedStyle` of table rows with width/height
19946		// set in CSS while `offset*` properties report correct values.
19947		// Behavior in IE 9 is more subtle than in newer versions & it passes
19948		// some versions of this test; make sure not to make it pass there!
19949		//
19950		// Support: Firefox 70+
19951		// Only Firefox includes border widths
19952		// in computed dimensions. (gh-4529)
19953		reliableTrDimensions: function() {
19954			var table, tr, trChild, trStyle;
19955			if ( reliableTrDimensionsVal == null ) {
19956				table = document.createElement( "table" );
19957				tr = document.createElement( "tr" );
19958				trChild = document.createElement( "div" );
19959
19960				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
19961				tr.style.cssText = "border:1px solid";
19962
19963				// Support: Chrome 86+
19964				// Height set through cssText does not get applied.
19965				// Computed height then comes back as 0.
19966				tr.style.height = "1px";
19967				trChild.style.height = "9px";
19968
19969				// Support: Android 8 Chrome 86+
19970				// In our bodyBackground.html iframe,
19971				// display for all div elements is set to "inline",
19972				// which causes a problem only in Android 8 Chrome 86.
19973				// Ensuring the div is display: block
19974				// gets around this issue.
19975				trChild.style.display = "block";
19976
19977				documentElement
19978					.appendChild( table )
19979					.appendChild( tr )
19980					.appendChild( trChild );
19981
19982				trStyle = window.getComputedStyle( tr );
19983				reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
19984					parseInt( trStyle.borderTopWidth, 10 ) +
19985					parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
19986
19987				documentElement.removeChild( table );
19988			}
19989			return reliableTrDimensionsVal;
19990		}
19991	} );
19992} )();
19993
19994
19995function curCSS( elem, name, computed ) {
19996	var width, minWidth, maxWidth, ret,
19997
19998		// Support: Firefox 51+
19999		// Retrieving style before computed somehow
20000		// fixes an issue with getting wrong values
20001		// on detached elements
20002		style = elem.style;
20003
20004	computed = computed || getStyles( elem );
20005
20006	// getPropertyValue is needed for:
20007	//   .css('filter') (IE 9 only, #12537)
20008	//   .css('--customProperty) (#3144)
20009	if ( computed ) {
20010		ret = computed.getPropertyValue( name ) || computed[ name ];
20011
20012		if ( ret === "" && !isAttached( elem ) ) {
20013			ret = jQuery.style( elem, name );
20014		}
20015
20016		// A tribute to the "awesome hack by Dean Edwards"
20017		// Android Browser returns percentage for some values,
20018		// but width seems to be reliably pixels.
20019		// This is against the CSSOM draft spec:
20020		// https://drafts.csswg.org/cssom/#resolved-values
20021		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
20022
20023			// Remember the original values
20024			width = style.width;
20025			minWidth = style.minWidth;
20026			maxWidth = style.maxWidth;
20027
20028			// Put in the new values to get a computed value out
20029			style.minWidth = style.maxWidth = style.width = ret;
20030			ret = computed.width;
20031
20032			// Revert the changed values
20033			style.width = width;
20034			style.minWidth = minWidth;
20035			style.maxWidth = maxWidth;
20036		}
20037	}
20038
20039	return ret !== undefined ?
20040
20041		// Support: IE <=9 - 11 only
20042		// IE returns zIndex value as an integer.
20043		ret + "" :
20044		ret;
20045}
20046
20047
20048function addGetHookIf( conditionFn, hookFn ) {
20049
20050	// Define the hook, we'll check on the first run if it's really needed.
20051	return {
20052		get: function() {
20053			if ( conditionFn() ) {
20054
20055				// Hook not needed (or it's not possible to use it due
20056				// to missing dependency), remove it.
20057				delete this.get;
20058				return;
20059			}
20060
20061			// Hook needed; redefine it so that the support test is not executed again.
20062			return ( this.get = hookFn ).apply( this, arguments );
20063		}
20064	};
20065}
20066
20067
20068var cssPrefixes = [ "Webkit", "Moz", "ms" ],
20069	emptyStyle = document.createElement( "div" ).style,
20070	vendorProps = {};
20071
20072// Return a vendor-prefixed property or undefined
20073function vendorPropName( name ) {
20074
20075	// Check for vendor prefixed names
20076	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
20077		i = cssPrefixes.length;
20078
20079	while ( i-- ) {
20080		name = cssPrefixes[ i ] + capName;
20081		if ( name in emptyStyle ) {
20082			return name;
20083		}
20084	}
20085}
20086
20087// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
20088function finalPropName( name ) {
20089	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
20090
20091	if ( final ) {
20092		return final;
20093	}
20094	if ( name in emptyStyle ) {
20095		return name;
20096	}
20097	return vendorProps[ name ] = vendorPropName( name ) || name;
20098}
20099
20100
20101var
20102
20103	// Swappable if display is none or starts with table
20104	// except "table", "table-cell", or "table-caption"
20105	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
20106	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
20107	rcustomProp = /^--/,
20108	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
20109	cssNormalTransform = {
20110		letterSpacing: "0",
20111		fontWeight: "400"
20112	};
20113
20114function setPositiveNumber( _elem, value, subtract ) {
20115
20116	// Any relative (+/-) values have already been
20117	// normalized at this point
20118	var matches = rcssNum.exec( value );
20119	return matches ?
20120
20121		// Guard against undefined "subtract", e.g., when used as in cssHooks
20122		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
20123		value;
20124}
20125
20126function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
20127	var i = dimension === "width" ? 1 : 0,
20128		extra = 0,
20129		delta = 0;
20130
20131	// Adjustment may not be necessary
20132	if ( box === ( isBorderBox ? "border" : "content" ) ) {
20133		return 0;
20134	}
20135
20136	for ( ; i < 4; i += 2 ) {
20137
20138		// Both box models exclude margin
20139		if ( box === "margin" ) {
20140			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
20141		}
20142
20143		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
20144		if ( !isBorderBox ) {
20145
20146			// Add padding
20147			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
20148
20149			// For "border" or "margin", add border
20150			if ( box !== "padding" ) {
20151				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
20152
20153			// But still keep track of it otherwise
20154			} else {
20155				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
20156			}
20157
20158		// If we get here with a border-box (content + padding + border), we're seeking "content" or
20159		// "padding" or "margin"
20160		} else {
20161
20162			// For "content", subtract padding
20163			if ( box === "content" ) {
20164				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
20165			}
20166
20167			// For "content" or "padding", subtract border
20168			if ( box !== "margin" ) {
20169				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
20170			}
20171		}
20172	}
20173
20174	// Account for positive content-box scroll gutter when requested by providing computedVal
20175	if ( !isBorderBox && computedVal >= 0 ) {
20176
20177		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
20178		// Assuming integer scroll gutter, subtract the rest and round down
20179		delta += Math.max( 0, Math.ceil(
20180			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
20181			computedVal -
20182			delta -
20183			extra -
20184			0.5
20185
20186		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
20187		// Use an explicit zero to avoid NaN (gh-3964)
20188		) ) || 0;
20189	}
20190
20191	return delta;
20192}
20193
20194function getWidthOrHeight( elem, dimension, extra ) {
20195
20196	// Start with computed style
20197	var styles = getStyles( elem ),
20198
20199		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
20200		// Fake content-box until we know it's needed to know the true value.
20201		boxSizingNeeded = !support.boxSizingReliable() || extra,
20202		isBorderBox = boxSizingNeeded &&
20203			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
20204		valueIsBorderBox = isBorderBox,
20205
20206		val = curCSS( elem, dimension, styles ),
20207		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
20208
20209	// Support: Firefox <=54
20210	// Return a confounding non-pixel value or feign ignorance, as appropriate.
20211	if ( rnumnonpx.test( val ) ) {
20212		if ( !extra ) {
20213			return val;
20214		}
20215		val = "auto";
20216	}
20217
20218
20219	// Support: IE 9 - 11 only
20220	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
20221	// In those cases, the computed value can be trusted to be border-box.
20222	if ( ( !support.boxSizingReliable() && isBorderBox ||
20223
20224		// Support: IE 10 - 11+, Edge 15 - 18+
20225		// IE/Edge misreport `getComputedStyle` of table rows with width/height
20226		// set in CSS while `offset*` properties report correct values.
20227		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
20228		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
20229
20230		// Fall back to offsetWidth/offsetHeight when value is "auto"
20231		// This happens for inline elements with no explicit setting (gh-3571)
20232		val === "auto" ||
20233
20234		// Support: Android <=4.1 - 4.3 only
20235		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
20236		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
20237
20238		// Make sure the element is visible & connected
20239		elem.getClientRects().length ) {
20240
20241		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
20242
20243		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
20244		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
20245		// retrieved value as a content box dimension.
20246		valueIsBorderBox = offsetProp in elem;
20247		if ( valueIsBorderBox ) {
20248			val = elem[ offsetProp ];
20249		}
20250	}
20251
20252	// Normalize "" and auto
20253	val = parseFloat( val ) || 0;
20254
20255	// Adjust for the element's box model
20256	return ( val +
20257		boxModelAdjustment(
20258			elem,
20259			dimension,
20260			extra || ( isBorderBox ? "border" : "content" ),
20261			valueIsBorderBox,
20262			styles,
20263
20264			// Provide the current computed size to request scroll gutter calculation (gh-3589)
20265			val
20266		)
20267	) + "px";
20268}
20269
20270jQuery.extend( {
20271
20272	// Add in style property hooks for overriding the default
20273	// behavior of getting and setting a style property
20274	cssHooks: {
20275		opacity: {
20276			get: function( elem, computed ) {
20277				if ( computed ) {
20278
20279					// We should always get a number back from opacity
20280					var ret = curCSS( elem, "opacity" );
20281					return ret === "" ? "1" : ret;
20282				}
20283			}
20284		}
20285	},
20286
20287	// Don't automatically add "px" to these possibly-unitless properties
20288	cssNumber: {
20289		"animationIterationCount": true,
20290		"columnCount": true,
20291		"fillOpacity": true,
20292		"flexGrow": true,
20293		"flexShrink": true,
20294		"fontWeight": true,
20295		"gridArea": true,
20296		"gridColumn": true,
20297		"gridColumnEnd": true,
20298		"gridColumnStart": true,
20299		"gridRow": true,
20300		"gridRowEnd": true,
20301		"gridRowStart": true,
20302		"lineHeight": true,
20303		"opacity": true,
20304		"order": true,
20305		"orphans": true,
20306		"widows": true,
20307		"zIndex": true,
20308		"zoom": true
20309	},
20310
20311	// Add in properties whose names you wish to fix before
20312	// setting or getting the value
20313	cssProps: {},
20314
20315	// Get and set the style property on a DOM Node
20316	style: function( elem, name, value, extra ) {
20317
20318		// Don't set styles on text and comment nodes
20319		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
20320			return;
20321		}
20322
20323		// Make sure that we're working with the right name
20324		var ret, type, hooks,
20325			origName = camelCase( name ),
20326			isCustomProp = rcustomProp.test( name ),
20327			style = elem.style;
20328
20329		// Make sure that we're working with the right name. We don't
20330		// want to query the value if it is a CSS custom property
20331		// since they are user-defined.
20332		if ( !isCustomProp ) {
20333			name = finalPropName( origName );
20334		}
20335
20336		// Gets hook for the prefixed version, then unprefixed version
20337		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
20338
20339		// Check if we're setting a value
20340		if ( value !== undefined ) {
20341			type = typeof value;
20342
20343			// Convert "+=" or "-=" to relative numbers (#7345)
20344			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
20345				value = adjustCSS( elem, name, ret );
20346
20347				// Fixes bug #9237
20348				type = "number";
20349			}
20350
20351			// Make sure that null and NaN values aren't set (#7116)
20352			if ( value == null || value !== value ) {
20353				return;
20354			}
20355
20356			// If a number was passed in, add the unit (except for certain CSS properties)
20357			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
20358			// "px" to a few hardcoded values.
20359			if ( type === "number" && !isCustomProp ) {
20360				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
20361			}
20362
20363			// background-* props affect original clone's values
20364			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
20365				style[ name ] = "inherit";
20366			}
20367
20368			// If a hook was provided, use that value, otherwise just set the specified value
20369			if ( !hooks || !( "set" in hooks ) ||
20370				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
20371
20372				if ( isCustomProp ) {
20373					style.setProperty( name, value );
20374				} else {
20375					style[ name ] = value;
20376				}
20377			}
20378
20379		} else {
20380
20381			// If a hook was provided get the non-computed value from there
20382			if ( hooks && "get" in hooks &&
20383				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
20384
20385				return ret;
20386			}
20387
20388			// Otherwise just get the value from the style object
20389			return style[ name ];
20390		}
20391	},
20392
20393	css: function( elem, name, extra, styles ) {
20394		var val, num, hooks,
20395			origName = camelCase( name ),
20396			isCustomProp = rcustomProp.test( name );
20397
20398		// Make sure that we're working with the right name. We don't
20399		// want to modify the value if it is a CSS custom property
20400		// since they are user-defined.
20401		if ( !isCustomProp ) {
20402			name = finalPropName( origName );
20403		}
20404
20405		// Try prefixed name followed by the unprefixed name
20406		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
20407
20408		// If a hook was provided get the computed value from there
20409		if ( hooks && "get" in hooks ) {
20410			val = hooks.get( elem, true, extra );
20411		}
20412
20413		// Otherwise, if a way to get the computed value exists, use that
20414		if ( val === undefined ) {
20415			val = curCSS( elem, name, styles );
20416		}
20417
20418		// Convert "normal" to computed value
20419		if ( val === "normal" && name in cssNormalTransform ) {
20420			val = cssNormalTransform[ name ];
20421		}
20422
20423		// Make numeric if forced or a qualifier was provided and val looks numeric
20424		if ( extra === "" || extra ) {
20425			num = parseFloat( val );
20426			return extra === true || isFinite( num ) ? num || 0 : val;
20427		}
20428
20429		return val;
20430	}
20431} );
20432
20433jQuery.each( [ "height", "width" ], function( _i, dimension ) {
20434	jQuery.cssHooks[ dimension ] = {
20435		get: function( elem, computed, extra ) {
20436			if ( computed ) {
20437
20438				// Certain elements can have dimension info if we invisibly show them
20439				// but it must have a current display style that would benefit
20440				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
20441
20442					// Support: Safari 8+
20443					// Table columns in Safari have non-zero offsetWidth & zero
20444					// getBoundingClientRect().width unless display is changed.
20445					// Support: IE <=11 only
20446					// Running getBoundingClientRect on a disconnected node
20447					// in IE throws an error.
20448					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
20449					swap( elem, cssShow, function() {
20450						return getWidthOrHeight( elem, dimension, extra );
20451					} ) :
20452					getWidthOrHeight( elem, dimension, extra );
20453			}
20454		},
20455
20456		set: function( elem, value, extra ) {
20457			var matches,
20458				styles = getStyles( elem ),
20459
20460				// Only read styles.position if the test has a chance to fail
20461				// to avoid forcing a reflow.
20462				scrollboxSizeBuggy = !support.scrollboxSize() &&
20463					styles.position === "absolute",
20464
20465				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
20466				boxSizingNeeded = scrollboxSizeBuggy || extra,
20467				isBorderBox = boxSizingNeeded &&
20468					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
20469				subtract = extra ?
20470					boxModelAdjustment(
20471						elem,
20472						dimension,
20473						extra,
20474						isBorderBox,
20475						styles
20476					) :
20477					0;
20478
20479			// Account for unreliable border-box dimensions by comparing offset* to computed and
20480			// faking a content-box to get border and padding (gh-3699)
20481			if ( isBorderBox && scrollboxSizeBuggy ) {
20482				subtract -= Math.ceil(
20483					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
20484					parseFloat( styles[ dimension ] ) -
20485					boxModelAdjustment( elem, dimension, "border", false, styles ) -
20486					0.5
20487				);
20488			}
20489
20490			// Convert to pixels if value adjustment is needed
20491			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
20492				( matches[ 3 ] || "px" ) !== "px" ) {
20493
20494				elem.style[ dimension ] = value;
20495				value = jQuery.css( elem, dimension );
20496			}
20497
20498			return setPositiveNumber( elem, value, subtract );
20499		}
20500	};
20501} );
20502
20503jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
20504	function( elem, computed ) {
20505		if ( computed ) {
20506			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
20507				elem.getBoundingClientRect().left -
20508					swap( elem, { marginLeft: 0 }, function() {
20509						return elem.getBoundingClientRect().left;
20510					} )
20511			) + "px";
20512		}
20513	}
20514);
20515
20516// These hooks are used by animate to expand properties
20517jQuery.each( {
20518	margin: "",
20519	padding: "",
20520	border: "Width"
20521}, function( prefix, suffix ) {
20522	jQuery.cssHooks[ prefix + suffix ] = {
20523		expand: function( value ) {
20524			var i = 0,
20525				expanded = {},
20526
20527				// Assumes a single number if not a string
20528				parts = typeof value === "string" ? value.split( " " ) : [ value ];
20529
20530			for ( ; i < 4; i++ ) {
20531				expanded[ prefix + cssExpand[ i ] + suffix ] =
20532					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
20533			}
20534
20535			return expanded;
20536		}
20537	};
20538
20539	if ( prefix !== "margin" ) {
20540		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
20541	}
20542} );
20543
20544jQuery.fn.extend( {
20545	css: function( name, value ) {
20546		return access( this, function( elem, name, value ) {
20547			var styles, len,
20548				map = {},
20549				i = 0;
20550
20551			if ( Array.isArray( name ) ) {
20552				styles = getStyles( elem );
20553				len = name.length;
20554
20555				for ( ; i < len; i++ ) {
20556					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
20557				}
20558
20559				return map;
20560			}
20561
20562			return value !== undefined ?
20563				jQuery.style( elem, name, value ) :
20564				jQuery.css( elem, name );
20565		}, name, value, arguments.length > 1 );
20566	}
20567} );
20568
20569
20570function Tween( elem, options, prop, end, easing ) {
20571	return new Tween.prototype.init( elem, options, prop, end, easing );
20572}
20573jQuery.Tween = Tween;
20574
20575Tween.prototype = {
20576	constructor: Tween,
20577	init: function( elem, options, prop, end, easing, unit ) {
20578		this.elem = elem;
20579		this.prop = prop;
20580		this.easing = easing || jQuery.easing._default;
20581		this.options = options;
20582		this.start = this.now = this.cur();
20583		this.end = end;
20584		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
20585	},
20586	cur: function() {
20587		var hooks = Tween.propHooks[ this.prop ];
20588
20589		return hooks && hooks.get ?
20590			hooks.get( this ) :
20591			Tween.propHooks._default.get( this );
20592	},
20593	run: function( percent ) {
20594		var eased,
20595			hooks = Tween.propHooks[ this.prop ];
20596
20597		if ( this.options.duration ) {
20598			this.pos = eased = jQuery.easing[ this.easing ](
20599				percent, this.options.duration * percent, 0, 1, this.options.duration
20600			);
20601		} else {
20602			this.pos = eased = percent;
20603		}
20604		this.now = ( this.end - this.start ) * eased + this.start;
20605
20606		if ( this.options.step ) {
20607			this.options.step.call( this.elem, this.now, this );
20608		}
20609
20610		if ( hooks && hooks.set ) {
20611			hooks.set( this );
20612		} else {
20613			Tween.propHooks._default.set( this );
20614		}
20615		return this;
20616	}
20617};
20618
20619Tween.prototype.init.prototype = Tween.prototype;
20620
20621Tween.propHooks = {
20622	_default: {
20623		get: function( tween ) {
20624			var result;
20625
20626			// Use a property on the element directly when it is not a DOM element,
20627			// or when there is no matching style property that exists.
20628			if ( tween.elem.nodeType !== 1 ||
20629				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
20630				return tween.elem[ tween.prop ];
20631			}
20632
20633			// Passing an empty string as a 3rd parameter to .css will automatically
20634			// attempt a parseFloat and fallback to a string if the parse fails.
20635			// Simple values such as "10px" are parsed to Float;
20636			// complex values such as "rotate(1rad)" are returned as-is.
20637			result = jQuery.css( tween.elem, tween.prop, "" );
20638
20639			// Empty strings, null, undefined and "auto" are converted to 0.
20640			return !result || result === "auto" ? 0 : result;
20641		},
20642		set: function( tween ) {
20643
20644			// Use step hook for back compat.
20645			// Use cssHook if its there.
20646			// Use .style if available and use plain properties where available.
20647			if ( jQuery.fx.step[ tween.prop ] ) {
20648				jQuery.fx.step[ tween.prop ]( tween );
20649			} else if ( tween.elem.nodeType === 1 && (
20650				jQuery.cssHooks[ tween.prop ] ||
20651					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
20652				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
20653			} else {
20654				tween.elem[ tween.prop ] = tween.now;
20655			}
20656		}
20657	}
20658};
20659
20660// Support: IE <=9 only
20661// Panic based approach to setting things on disconnected nodes
20662Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
20663	set: function( tween ) {
20664		if ( tween.elem.nodeType && tween.elem.parentNode ) {
20665			tween.elem[ tween.prop ] = tween.now;
20666		}
20667	}
20668};
20669
20670jQuery.easing = {
20671	linear: function( p ) {
20672		return p;
20673	},
20674	swing: function( p ) {
20675		return 0.5 - Math.cos( p * Math.PI ) / 2;
20676	},
20677	_default: "swing"
20678};
20679
20680jQuery.fx = Tween.prototype.init;
20681
20682// Back compat <1.8 extension point
20683jQuery.fx.step = {};
20684
20685
20686
20687
20688var
20689	fxNow, inProgress,
20690	rfxtypes = /^(?:toggle|show|hide)$/,
20691	rrun = /queueHooks$/;
20692
20693function schedule() {
20694	if ( inProgress ) {
20695		if ( document.hidden === false && window.requestAnimationFrame ) {
20696			window.requestAnimationFrame( schedule );
20697		} else {
20698			window.setTimeout( schedule, jQuery.fx.interval );
20699		}
20700
20701		jQuery.fx.tick();
20702	}
20703}
20704
20705// Animations created synchronously will run synchronously
20706function createFxNow() {
20707	window.setTimeout( function() {
20708		fxNow = undefined;
20709	} );
20710	return ( fxNow = Date.now() );
20711}
20712
20713// Generate parameters to create a standard animation
20714function genFx( type, includeWidth ) {
20715	var which,
20716		i = 0,
20717		attrs = { height: type };
20718
20719	// If we include width, step value is 1 to do all cssExpand values,
20720	// otherwise step value is 2 to skip over Left and Right
20721	includeWidth = includeWidth ? 1 : 0;
20722	for ( ; i < 4; i += 2 - includeWidth ) {
20723		which = cssExpand[ i ];
20724		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
20725	}
20726
20727	if ( includeWidth ) {
20728		attrs.opacity = attrs.width = type;
20729	}
20730
20731	return attrs;
20732}
20733
20734function createTween( value, prop, animation ) {
20735	var tween,
20736		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
20737		index = 0,
20738		length = collection.length;
20739	for ( ; index < length; index++ ) {
20740		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
20741
20742			// We're done with this property
20743			return tween;
20744		}
20745	}
20746}
20747
20748function defaultPrefilter( elem, props, opts ) {
20749	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
20750		isBox = "width" in props || "height" in props,
20751		anim = this,
20752		orig = {},
20753		style = elem.style,
20754		hidden = elem.nodeType && isHiddenWithinTree( elem ),
20755		dataShow = dataPriv.get( elem, "fxshow" );
20756
20757	// Queue-skipping animations hijack the fx hooks
20758	if ( !opts.queue ) {
20759		hooks = jQuery._queueHooks( elem, "fx" );
20760		if ( hooks.unqueued == null ) {
20761			hooks.unqueued = 0;
20762			oldfire = hooks.empty.fire;
20763			hooks.empty.fire = function() {
20764				if ( !hooks.unqueued ) {
20765					oldfire();
20766				}
20767			};
20768		}
20769		hooks.unqueued++;
20770
20771		anim.always( function() {
20772
20773			// Ensure the complete handler is called before this completes
20774			anim.always( function() {
20775				hooks.unqueued--;
20776				if ( !jQuery.queue( elem, "fx" ).length ) {
20777					hooks.empty.fire();
20778				}
20779			} );
20780		} );
20781	}
20782
20783	// Detect show/hide animations
20784	for ( prop in props ) {
20785		value = props[ prop ];
20786		if ( rfxtypes.test( value ) ) {
20787			delete props[ prop ];
20788			toggle = toggle || value === "toggle";
20789			if ( value === ( hidden ? "hide" : "show" ) ) {
20790
20791				// Pretend to be hidden if this is a "show" and
20792				// there is still data from a stopped show/hide
20793				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
20794					hidden = true;
20795
20796				// Ignore all other no-op show/hide data
20797				} else {
20798					continue;
20799				}
20800			}
20801			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
20802		}
20803	}
20804
20805	// Bail out if this is a no-op like .hide().hide()
20806	propTween = !jQuery.isEmptyObject( props );
20807	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
20808		return;
20809	}
20810
20811	// Restrict "overflow" and "display" styles during box animations
20812	if ( isBox && elem.nodeType === 1 ) {
20813
20814		// Support: IE <=9 - 11, Edge 12 - 15
20815		// Record all 3 overflow attributes because IE does not infer the shorthand
20816		// from identically-valued overflowX and overflowY and Edge just mirrors
20817		// the overflowX value there.
20818		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
20819
20820		// Identify a display type, preferring old show/hide data over the CSS cascade
20821		restoreDisplay = dataShow && dataShow.display;
20822		if ( restoreDisplay == null ) {
20823			restoreDisplay = dataPriv.get( elem, "display" );
20824		}
20825		display = jQuery.css( elem, "display" );
20826		if ( display === "none" ) {
20827			if ( restoreDisplay ) {
20828				display = restoreDisplay;
20829			} else {
20830
20831				// Get nonempty value(s) by temporarily forcing visibility
20832				showHide( [ elem ], true );
20833				restoreDisplay = elem.style.display || restoreDisplay;
20834				display = jQuery.css( elem, "display" );
20835				showHide( [ elem ] );
20836			}
20837		}
20838
20839		// Animate inline elements as inline-block
20840		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
20841			if ( jQuery.css( elem, "float" ) === "none" ) {
20842
20843				// Restore the original display value at the end of pure show/hide animations
20844				if ( !propTween ) {
20845					anim.done( function() {
20846						style.display = restoreDisplay;
20847					} );
20848					if ( restoreDisplay == null ) {
20849						display = style.display;
20850						restoreDisplay = display === "none" ? "" : display;
20851					}
20852				}
20853				style.display = "inline-block";
20854			}
20855		}
20856	}
20857
20858	if ( opts.overflow ) {
20859		style.overflow = "hidden";
20860		anim.always( function() {
20861			style.overflow = opts.overflow[ 0 ];
20862			style.overflowX = opts.overflow[ 1 ];
20863			style.overflowY = opts.overflow[ 2 ];
20864		} );
20865	}
20866
20867	// Implement show/hide animations
20868	propTween = false;
20869	for ( prop in orig ) {
20870
20871		// General show/hide setup for this element animation
20872		if ( !propTween ) {
20873			if ( dataShow ) {
20874				if ( "hidden" in dataShow ) {
20875					hidden = dataShow.hidden;
20876				}
20877			} else {
20878				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
20879			}
20880
20881			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
20882			if ( toggle ) {
20883				dataShow.hidden = !hidden;
20884			}
20885
20886			// Show elements before animating them
20887			if ( hidden ) {
20888				showHide( [ elem ], true );
20889			}
20890
20891			/* eslint-disable no-loop-func */
20892
20893			anim.done( function() {
20894
20895				/* eslint-enable no-loop-func */
20896
20897				// The final step of a "hide" animation is actually hiding the element
20898				if ( !hidden ) {
20899					showHide( [ elem ] );
20900				}
20901				dataPriv.remove( elem, "fxshow" );
20902				for ( prop in orig ) {
20903					jQuery.style( elem, prop, orig[ prop ] );
20904				}
20905			} );
20906		}
20907
20908		// Per-property setup
20909		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
20910		if ( !( prop in dataShow ) ) {
20911			dataShow[ prop ] = propTween.start;
20912			if ( hidden ) {
20913				propTween.end = propTween.start;
20914				propTween.start = 0;
20915			}
20916		}
20917	}
20918}
20919
20920function propFilter( props, specialEasing ) {
20921	var index, name, easing, value, hooks;
20922
20923	// camelCase, specialEasing and expand cssHook pass
20924	for ( index in props ) {
20925		name = camelCase( index );
20926		easing = specialEasing[ name ];
20927		value = props[ index ];
20928		if ( Array.isArray( value ) ) {
20929			easing = value[ 1 ];
20930			value = props[ index ] = value[ 0 ];
20931		}
20932
20933		if ( index !== name ) {
20934			props[ name ] = value;
20935			delete props[ index ];
20936		}
20937
20938		hooks = jQuery.cssHooks[ name ];
20939		if ( hooks && "expand" in hooks ) {
20940			value = hooks.expand( value );
20941			delete props[ name ];
20942
20943			// Not quite $.extend, this won't overwrite existing keys.
20944			// Reusing 'index' because we have the correct "name"
20945			for ( index in value ) {
20946				if ( !( index in props ) ) {
20947					props[ index ] = value[ index ];
20948					specialEasing[ index ] = easing;
20949				}
20950			}
20951		} else {
20952			specialEasing[ name ] = easing;
20953		}
20954	}
20955}
20956
20957function Animation( elem, properties, options ) {
20958	var result,
20959		stopped,
20960		index = 0,
20961		length = Animation.prefilters.length,
20962		deferred = jQuery.Deferred().always( function() {
20963
20964			// Don't match elem in the :animated selector
20965			delete tick.elem;
20966		} ),
20967		tick = function() {
20968			if ( stopped ) {
20969				return false;
20970			}
20971			var currentTime = fxNow || createFxNow(),
20972				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
20973
20974				// Support: Android 2.3 only
20975				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
20976				temp = remaining / animation.duration || 0,
20977				percent = 1 - temp,
20978				index = 0,
20979				length = animation.tweens.length;
20980
20981			for ( ; index < length; index++ ) {
20982				animation.tweens[ index ].run( percent );
20983			}
20984
20985			deferred.notifyWith( elem, [ animation, percent, remaining ] );
20986
20987			// If there's more to do, yield
20988			if ( percent < 1 && length ) {
20989				return remaining;
20990			}
20991
20992			// If this was an empty animation, synthesize a final progress notification
20993			if ( !length ) {
20994				deferred.notifyWith( elem, [ animation, 1, 0 ] );
20995			}
20996
20997			// Resolve the animation and report its conclusion
20998			deferred.resolveWith( elem, [ animation ] );
20999			return false;
21000		},
21001		animation = deferred.promise( {
21002			elem: elem,
21003			props: jQuery.extend( {}, properties ),
21004			opts: jQuery.extend( true, {
21005				specialEasing: {},
21006				easing: jQuery.easing._default
21007			}, options ),
21008			originalProperties: properties,
21009			originalOptions: options,
21010			startTime: fxNow || createFxNow(),
21011			duration: options.duration,
21012			tweens: [],
21013			createTween: function( prop, end ) {
21014				var tween = jQuery.Tween( elem, animation.opts, prop, end,
21015					animation.opts.specialEasing[ prop ] || animation.opts.easing );
21016				animation.tweens.push( tween );
21017				return tween;
21018			},
21019			stop: function( gotoEnd ) {
21020				var index = 0,
21021
21022					// If we are going to the end, we want to run all the tweens
21023					// otherwise we skip this part
21024					length = gotoEnd ? animation.tweens.length : 0;
21025				if ( stopped ) {
21026					return this;
21027				}
21028				stopped = true;
21029				for ( ; index < length; index++ ) {
21030					animation.tweens[ index ].run( 1 );
21031				}
21032
21033				// Resolve when we played the last frame; otherwise, reject
21034				if ( gotoEnd ) {
21035					deferred.notifyWith( elem, [ animation, 1, 0 ] );
21036					deferred.resolveWith( elem, [ animation, gotoEnd ] );
21037				} else {
21038					deferred.rejectWith( elem, [ animation, gotoEnd ] );
21039				}
21040				return this;
21041			}
21042		} ),
21043		props = animation.props;
21044
21045	propFilter( props, animation.opts.specialEasing );
21046
21047	for ( ; index < length; index++ ) {
21048		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
21049		if ( result ) {
21050			if ( isFunction( result.stop ) ) {
21051				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
21052					result.stop.bind( result );
21053			}
21054			return result;
21055		}
21056	}
21057
21058	jQuery.map( props, createTween, animation );
21059
21060	if ( isFunction( animation.opts.start ) ) {
21061		animation.opts.start.call( elem, animation );
21062	}
21063
21064	// Attach callbacks from options
21065	animation
21066		.progress( animation.opts.progress )
21067		.done( animation.opts.done, animation.opts.complete )
21068		.fail( animation.opts.fail )
21069		.always( animation.opts.always );
21070
21071	jQuery.fx.timer(
21072		jQuery.extend( tick, {
21073			elem: elem,
21074			anim: animation,
21075			queue: animation.opts.queue
21076		} )
21077	);
21078
21079	return animation;
21080}
21081
21082jQuery.Animation = jQuery.extend( Animation, {
21083
21084	tweeners: {
21085		"*": [ function( prop, value ) {
21086			var tween = this.createTween( prop, value );
21087			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
21088			return tween;
21089		} ]
21090	},
21091
21092	tweener: function( props, callback ) {
21093		if ( isFunction( props ) ) {
21094			callback = props;
21095			props = [ "*" ];
21096		} else {
21097			props = props.match( rnothtmlwhite );
21098		}
21099
21100		var prop,
21101			index = 0,
21102			length = props.length;
21103
21104		for ( ; index < length; index++ ) {
21105			prop = props[ index ];
21106			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
21107			Animation.tweeners[ prop ].unshift( callback );
21108		}
21109	},
21110
21111	prefilters: [ defaultPrefilter ],
21112
21113	prefilter: function( callback, prepend ) {
21114		if ( prepend ) {
21115			Animation.prefilters.unshift( callback );
21116		} else {
21117			Animation.prefilters.push( callback );
21118		}
21119	}
21120} );
21121
21122jQuery.speed = function( speed, easing, fn ) {
21123	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
21124		complete: fn || !fn && easing ||
21125			isFunction( speed ) && speed,
21126		duration: speed,
21127		easing: fn && easing || easing && !isFunction( easing ) && easing
21128	};
21129
21130	// Go to the end state if fx are off
21131	if ( jQuery.fx.off ) {
21132		opt.duration = 0;
21133
21134	} else {
21135		if ( typeof opt.duration !== "number" ) {
21136			if ( opt.duration in jQuery.fx.speeds ) {
21137				opt.duration = jQuery.fx.speeds[ opt.duration ];
21138
21139			} else {
21140				opt.duration = jQuery.fx.speeds._default;
21141			}
21142		}
21143	}
21144
21145	// Normalize opt.queue - true/undefined/null -> "fx"
21146	if ( opt.queue == null || opt.queue === true ) {
21147		opt.queue = "fx";
21148	}
21149
21150	// Queueing
21151	opt.old = opt.complete;
21152
21153	opt.complete = function() {
21154		if ( isFunction( opt.old ) ) {
21155			opt.old.call( this );
21156		}
21157
21158		if ( opt.queue ) {
21159			jQuery.dequeue( this, opt.queue );
21160		}
21161	};
21162
21163	return opt;
21164};
21165
21166jQuery.fn.extend( {
21167	fadeTo: function( speed, to, easing, callback ) {
21168
21169		// Show any hidden elements after setting opacity to 0
21170		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
21171
21172			// Animate to the value specified
21173			.end().animate( { opacity: to }, speed, easing, callback );
21174	},
21175	animate: function( prop, speed, easing, callback ) {
21176		var empty = jQuery.isEmptyObject( prop ),
21177			optall = jQuery.speed( speed, easing, callback ),
21178			doAnimation = function() {
21179
21180				// Operate on a copy of prop so per-property easing won't be lost
21181				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
21182
21183				// Empty animations, or finishing resolves immediately
21184				if ( empty || dataPriv.get( this, "finish" ) ) {
21185					anim.stop( true );
21186				}
21187			};
21188
21189		doAnimation.finish = doAnimation;
21190
21191		return empty || optall.queue === false ?
21192			this.each( doAnimation ) :
21193			this.queue( optall.queue, doAnimation );
21194	},
21195	stop: function( type, clearQueue, gotoEnd ) {
21196		var stopQueue = function( hooks ) {
21197			var stop = hooks.stop;
21198			delete hooks.stop;
21199			stop( gotoEnd );
21200		};
21201
21202		if ( typeof type !== "string" ) {
21203			gotoEnd = clearQueue;
21204			clearQueue = type;
21205			type = undefined;
21206		}
21207		if ( clearQueue ) {
21208			this.queue( type || "fx", [] );
21209		}
21210
21211		return this.each( function() {
21212			var dequeue = true,
21213				index = type != null && type + "queueHooks",
21214				timers = jQuery.timers,
21215				data = dataPriv.get( this );
21216
21217			if ( index ) {
21218				if ( data[ index ] && data[ index ].stop ) {
21219					stopQueue( data[ index ] );
21220				}
21221			} else {
21222				for ( index in data ) {
21223					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
21224						stopQueue( data[ index ] );
21225					}
21226				}
21227			}
21228
21229			for ( index = timers.length; index--; ) {
21230				if ( timers[ index ].elem === this &&
21231					( type == null || timers[ index ].queue === type ) ) {
21232
21233					timers[ index ].anim.stop( gotoEnd );
21234					dequeue = false;
21235					timers.splice( index, 1 );
21236				}
21237			}
21238
21239			// Start the next in the queue if the last step wasn't forced.
21240			// Timers currently will call their complete callbacks, which
21241			// will dequeue but only if they were gotoEnd.
21242			if ( dequeue || !gotoEnd ) {
21243				jQuery.dequeue( this, type );
21244			}
21245		} );
21246	},
21247	finish: function( type ) {
21248		if ( type !== false ) {
21249			type = type || "fx";
21250		}
21251		return this.each( function() {
21252			var index,
21253				data = dataPriv.get( this ),
21254				queue = data[ type + "queue" ],
21255				hooks = data[ type + "queueHooks" ],
21256				timers = jQuery.timers,
21257				length = queue ? queue.length : 0;
21258
21259			// Enable finishing flag on private data
21260			data.finish = true;
21261
21262			// Empty the queue first
21263			jQuery.queue( this, type, [] );
21264
21265			if ( hooks && hooks.stop ) {
21266				hooks.stop.call( this, true );
21267			}
21268
21269			// Look for any active animations, and finish them
21270			for ( index = timers.length; index--; ) {
21271				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
21272					timers[ index ].anim.stop( true );
21273					timers.splice( index, 1 );
21274				}
21275			}
21276
21277			// Look for any animations in the old queue and finish them
21278			for ( index = 0; index < length; index++ ) {
21279				if ( queue[ index ] && queue[ index ].finish ) {
21280					queue[ index ].finish.call( this );
21281				}
21282			}
21283
21284			// Turn off finishing flag
21285			delete data.finish;
21286		} );
21287	}
21288} );
21289
21290jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
21291	var cssFn = jQuery.fn[ name ];
21292	jQuery.fn[ name ] = function( speed, easing, callback ) {
21293		return speed == null || typeof speed === "boolean" ?
21294			cssFn.apply( this, arguments ) :
21295			this.animate( genFx( name, true ), speed, easing, callback );
21296	};
21297} );
21298
21299// Generate shortcuts for custom animations
21300jQuery.each( {
21301	slideDown: genFx( "show" ),
21302	slideUp: genFx( "hide" ),
21303	slideToggle: genFx( "toggle" ),
21304	fadeIn: { opacity: "show" },
21305	fadeOut: { opacity: "hide" },
21306	fadeToggle: { opacity: "toggle" }
21307}, function( name, props ) {
21308	jQuery.fn[ name ] = function( speed, easing, callback ) {
21309		return this.animate( props, speed, easing, callback );
21310	};
21311} );
21312
21313jQuery.timers = [];
21314jQuery.fx.tick = function() {
21315	var timer,
21316		i = 0,
21317		timers = jQuery.timers;
21318
21319	fxNow = Date.now();
21320
21321	for ( ; i < timers.length; i++ ) {
21322		timer = timers[ i ];
21323
21324		// Run the timer and safely remove it when done (allowing for external removal)
21325		if ( !timer() && timers[ i ] === timer ) {
21326			timers.splice( i--, 1 );
21327		}
21328	}
21329
21330	if ( !timers.length ) {
21331		jQuery.fx.stop();
21332	}
21333	fxNow = undefined;
21334};
21335
21336jQuery.fx.timer = function( timer ) {
21337	jQuery.timers.push( timer );
21338	jQuery.fx.start();
21339};
21340
21341jQuery.fx.interval = 13;
21342jQuery.fx.start = function() {
21343	if ( inProgress ) {
21344		return;
21345	}
21346
21347	inProgress = true;
21348	schedule();
21349};
21350
21351jQuery.fx.stop = function() {
21352	inProgress = null;
21353};
21354
21355jQuery.fx.speeds = {
21356	slow: 600,
21357	fast: 200,
21358
21359	// Default speed
21360	_default: 400
21361};
21362
21363
21364// Based off of the plugin by Clint Helfers, with permission.
21365// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
21366jQuery.fn.delay = function( time, type ) {
21367	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
21368	type = type || "fx";
21369
21370	return this.queue( type, function( next, hooks ) {
21371		var timeout = window.setTimeout( next, time );
21372		hooks.stop = function() {
21373			window.clearTimeout( timeout );
21374		};
21375	} );
21376};
21377
21378
21379( function() {
21380	var input = document.createElement( "input" ),
21381		select = document.createElement( "select" ),
21382		opt = select.appendChild( document.createElement( "option" ) );
21383
21384	input.type = "checkbox";
21385
21386	// Support: Android <=4.3 only
21387	// Default value for a checkbox should be "on"
21388	support.checkOn = input.value !== "";
21389
21390	// Support: IE <=11 only
21391	// Must access selectedIndex to make default options select
21392	support.optSelected = opt.selected;
21393
21394	// Support: IE <=11 only
21395	// An input loses its value after becoming a radio
21396	input = document.createElement( "input" );
21397	input.value = "t";
21398	input.type = "radio";
21399	support.radioValue = input.value === "t";
21400} )();
21401
21402
21403var boolHook,
21404	attrHandle = jQuery.expr.attrHandle;
21405
21406jQuery.fn.extend( {
21407	attr: function( name, value ) {
21408		return access( this, jQuery.attr, name, value, arguments.length > 1 );
21409	},
21410
21411	removeAttr: function( name ) {
21412		return this.each( function() {
21413			jQuery.removeAttr( this, name );
21414		} );
21415	}
21416} );
21417
21418jQuery.extend( {
21419	attr: function( elem, name, value ) {
21420		var ret, hooks,
21421			nType = elem.nodeType;
21422
21423		// Don't get/set attributes on text, comment and attribute nodes
21424		if ( nType === 3 || nType === 8 || nType === 2 ) {
21425			return;
21426		}
21427
21428		// Fallback to prop when attributes are not supported
21429		if ( typeof elem.getAttribute === "undefined" ) {
21430			return jQuery.prop( elem, name, value );
21431		}
21432
21433		// Attribute hooks are determined by the lowercase version
21434		// Grab necessary hook if one is defined
21435		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
21436			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
21437				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
21438		}
21439
21440		if ( value !== undefined ) {
21441			if ( value === null ) {
21442				jQuery.removeAttr( elem, name );
21443				return;
21444			}
21445
21446			if ( hooks && "set" in hooks &&
21447				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
21448				return ret;
21449			}
21450
21451			elem.setAttribute( name, value + "" );
21452			return value;
21453		}
21454
21455		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
21456			return ret;
21457		}
21458
21459		ret = jQuery.find.attr( elem, name );
21460
21461		// Non-existent attributes return null, we normalize to undefined
21462		return ret == null ? undefined : ret;
21463	},
21464
21465	attrHooks: {
21466		type: {
21467			set: function( elem, value ) {
21468				if ( !support.radioValue && value === "radio" &&
21469					nodeName( elem, "input" ) ) {
21470					var val = elem.value;
21471					elem.setAttribute( "type", value );
21472					if ( val ) {
21473						elem.value = val;
21474					}
21475					return value;
21476				}
21477			}
21478		}
21479	},
21480
21481	removeAttr: function( elem, value ) {
21482		var name,
21483			i = 0,
21484
21485			// Attribute names can contain non-HTML whitespace characters
21486			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
21487			attrNames = value && value.match( rnothtmlwhite );
21488
21489		if ( attrNames && elem.nodeType === 1 ) {
21490			while ( ( name = attrNames[ i++ ] ) ) {
21491				elem.removeAttribute( name );
21492			}
21493		}
21494	}
21495} );
21496
21497// Hooks for boolean attributes
21498boolHook = {
21499	set: function( elem, value, name ) {
21500		if ( value === false ) {
21501
21502			// Remove boolean attributes when set to false
21503			jQuery.removeAttr( elem, name );
21504		} else {
21505			elem.setAttribute( name, name );
21506		}
21507		return name;
21508	}
21509};
21510
21511jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
21512	var getter = attrHandle[ name ] || jQuery.find.attr;
21513
21514	attrHandle[ name ] = function( elem, name, isXML ) {
21515		var ret, handle,
21516			lowercaseName = name.toLowerCase();
21517
21518		if ( !isXML ) {
21519
21520			// Avoid an infinite loop by temporarily removing this function from the getter
21521			handle = attrHandle[ lowercaseName ];
21522			attrHandle[ lowercaseName ] = ret;
21523			ret = getter( elem, name, isXML ) != null ?
21524				lowercaseName :
21525				null;
21526			attrHandle[ lowercaseName ] = handle;
21527		}
21528		return ret;
21529	};
21530} );
21531
21532
21533
21534
21535var rfocusable = /^(?:input|select|textarea|button)$/i,
21536	rclickable = /^(?:a|area)$/i;
21537
21538jQuery.fn.extend( {
21539	prop: function( name, value ) {
21540		return access( this, jQuery.prop, name, value, arguments.length > 1 );
21541	},
21542
21543	removeProp: function( name ) {
21544		return this.each( function() {
21545			delete this[ jQuery.propFix[ name ] || name ];
21546		} );
21547	}
21548} );
21549
21550jQuery.extend( {
21551	prop: function( elem, name, value ) {
21552		var ret, hooks,
21553			nType = elem.nodeType;
21554
21555		// Don't get/set properties on text, comment and attribute nodes
21556		if ( nType === 3 || nType === 8 || nType === 2 ) {
21557			return;
21558		}
21559
21560		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
21561
21562			// Fix name and attach hooks
21563			name = jQuery.propFix[ name ] || name;
21564			hooks = jQuery.propHooks[ name ];
21565		}
21566
21567		if ( value !== undefined ) {
21568			if ( hooks && "set" in hooks &&
21569				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
21570				return ret;
21571			}
21572
21573			return ( elem[ name ] = value );
21574		}
21575
21576		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
21577			return ret;
21578		}
21579
21580		return elem[ name ];
21581	},
21582
21583	propHooks: {
21584		tabIndex: {
21585			get: function( elem ) {
21586
21587				// Support: IE <=9 - 11 only
21588				// elem.tabIndex doesn't always return the
21589				// correct value when it hasn't been explicitly set
21590				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
21591				// Use proper attribute retrieval(#12072)
21592				var tabindex = jQuery.find.attr( elem, "tabindex" );
21593
21594				if ( tabindex ) {
21595					return parseInt( tabindex, 10 );
21596				}
21597
21598				if (
21599					rfocusable.test( elem.nodeName ) ||
21600					rclickable.test( elem.nodeName ) &&
21601					elem.href
21602				) {
21603					return 0;
21604				}
21605
21606				return -1;
21607			}
21608		}
21609	},
21610
21611	propFix: {
21612		"for": "htmlFor",
21613		"class": "className"
21614	}
21615} );
21616
21617// Support: IE <=11 only
21618// Accessing the selectedIndex property
21619// forces the browser to respect setting selected
21620// on the option
21621// The getter ensures a default option is selected
21622// when in an optgroup
21623// eslint rule "no-unused-expressions" is disabled for this code
21624// since it considers such accessions noop
21625if ( !support.optSelected ) {
21626	jQuery.propHooks.selected = {
21627		get: function( elem ) {
21628
21629			/* eslint no-unused-expressions: "off" */
21630
21631			var parent = elem.parentNode;
21632			if ( parent && parent.parentNode ) {
21633				parent.parentNode.selectedIndex;
21634			}
21635			return null;
21636		},
21637		set: function( elem ) {
21638
21639			/* eslint no-unused-expressions: "off" */
21640
21641			var parent = elem.parentNode;
21642			if ( parent ) {
21643				parent.selectedIndex;
21644
21645				if ( parent.parentNode ) {
21646					parent.parentNode.selectedIndex;
21647				}
21648			}
21649		}
21650	};
21651}
21652
21653jQuery.each( [
21654	"tabIndex",
21655	"readOnly",
21656	"maxLength",
21657	"cellSpacing",
21658	"cellPadding",
21659	"rowSpan",
21660	"colSpan",
21661	"useMap",
21662	"frameBorder",
21663	"contentEditable"
21664], function() {
21665	jQuery.propFix[ this.toLowerCase() ] = this;
21666} );
21667
21668
21669
21670
21671	// Strip and collapse whitespace according to HTML spec
21672	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
21673	function stripAndCollapse( value ) {
21674		var tokens = value.match( rnothtmlwhite ) || [];
21675		return tokens.join( " " );
21676	}
21677
21678
21679function getClass( elem ) {
21680	return elem.getAttribute && elem.getAttribute( "class" ) || "";
21681}
21682
21683function classesToArray( value ) {
21684	if ( Array.isArray( value ) ) {
21685		return value;
21686	}
21687	if ( typeof value === "string" ) {
21688		return value.match( rnothtmlwhite ) || [];
21689	}
21690	return [];
21691}
21692
21693jQuery.fn.extend( {
21694	addClass: function( value ) {
21695		var classes, elem, cur, curValue, clazz, j, finalValue,
21696			i = 0;
21697
21698		if ( isFunction( value ) ) {
21699			return this.each( function( j ) {
21700				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
21701			} );
21702		}
21703
21704		classes = classesToArray( value );
21705
21706		if ( classes.length ) {
21707			while ( ( elem = this[ i++ ] ) ) {
21708				curValue = getClass( elem );
21709				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
21710
21711				if ( cur ) {
21712					j = 0;
21713					while ( ( clazz = classes[ j++ ] ) ) {
21714						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
21715							cur += clazz + " ";
21716						}
21717					}
21718
21719					// Only assign if different to avoid unneeded rendering.
21720					finalValue = stripAndCollapse( cur );
21721					if ( curValue !== finalValue ) {
21722						elem.setAttribute( "class", finalValue );
21723					}
21724				}
21725			}
21726		}
21727
21728		return this;
21729	},
21730
21731	removeClass: function( value ) {
21732		var classes, elem, cur, curValue, clazz, j, finalValue,
21733			i = 0;
21734
21735		if ( isFunction( value ) ) {
21736			return this.each( function( j ) {
21737				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
21738			} );
21739		}
21740
21741		if ( !arguments.length ) {
21742			return this.attr( "class", "" );
21743		}
21744
21745		classes = classesToArray( value );
21746
21747		if ( classes.length ) {
21748			while ( ( elem = this[ i++ ] ) ) {
21749				curValue = getClass( elem );
21750
21751				// This expression is here for better compressibility (see addClass)
21752				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
21753
21754				if ( cur ) {
21755					j = 0;
21756					while ( ( clazz = classes[ j++ ] ) ) {
21757
21758						// Remove *all* instances
21759						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
21760							cur = cur.replace( " " + clazz + " ", " " );
21761						}
21762					}
21763
21764					// Only assign if different to avoid unneeded rendering.
21765					finalValue = stripAndCollapse( cur );
21766					if ( curValue !== finalValue ) {
21767						elem.setAttribute( "class", finalValue );
21768					}
21769				}
21770			}
21771		}
21772
21773		return this;
21774	},
21775
21776	toggleClass: function( value, stateVal ) {
21777		var type = typeof value,
21778			isValidValue = type === "string" || Array.isArray( value );
21779
21780		if ( typeof stateVal === "boolean" && isValidValue ) {
21781			return stateVal ? this.addClass( value ) : this.removeClass( value );
21782		}
21783
21784		if ( isFunction( value ) ) {
21785			return this.each( function( i ) {
21786				jQuery( this ).toggleClass(
21787					value.call( this, i, getClass( this ), stateVal ),
21788					stateVal
21789				);
21790			} );
21791		}
21792
21793		return this.each( function() {
21794			var className, i, self, classNames;
21795
21796			if ( isValidValue ) {
21797
21798				// Toggle individual class names
21799				i = 0;
21800				self = jQuery( this );
21801				classNames = classesToArray( value );
21802
21803				while ( ( className = classNames[ i++ ] ) ) {
21804
21805					// Check each className given, space separated list
21806					if ( self.hasClass( className ) ) {
21807						self.removeClass( className );
21808					} else {
21809						self.addClass( className );
21810					}
21811				}
21812
21813			// Toggle whole class name
21814			} else if ( value === undefined || type === "boolean" ) {
21815				className = getClass( this );
21816				if ( className ) {
21817
21818					// Store className if set
21819					dataPriv.set( this, "__className__", className );
21820				}
21821
21822				// If the element has a class name or if we're passed `false`,
21823				// then remove the whole classname (if there was one, the above saved it).
21824				// Otherwise bring back whatever was previously saved (if anything),
21825				// falling back to the empty string if nothing was stored.
21826				if ( this.setAttribute ) {
21827					this.setAttribute( "class",
21828						className || value === false ?
21829							"" :
21830							dataPriv.get( this, "__className__" ) || ""
21831					);
21832				}
21833			}
21834		} );
21835	},
21836
21837	hasClass: function( selector ) {
21838		var className, elem,
21839			i = 0;
21840
21841		className = " " + selector + " ";
21842		while ( ( elem = this[ i++ ] ) ) {
21843			if ( elem.nodeType === 1 &&
21844				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
21845				return true;
21846			}
21847		}
21848
21849		return false;
21850	}
21851} );
21852
21853
21854
21855
21856var rreturn = /\r/g;
21857
21858jQuery.fn.extend( {
21859	val: function( value ) {
21860		var hooks, ret, valueIsFunction,
21861			elem = this[ 0 ];
21862
21863		if ( !arguments.length ) {
21864			if ( elem ) {
21865				hooks = jQuery.valHooks[ elem.type ] ||
21866					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
21867
21868				if ( hooks &&
21869					"get" in hooks &&
21870					( ret = hooks.get( elem, "value" ) ) !== undefined
21871				) {
21872					return ret;
21873				}
21874
21875				ret = elem.value;
21876
21877				// Handle most common string cases
21878				if ( typeof ret === "string" ) {
21879					return ret.replace( rreturn, "" );
21880				}
21881
21882				// Handle cases where value is null/undef or number
21883				return ret == null ? "" : ret;
21884			}
21885
21886			return;
21887		}
21888
21889		valueIsFunction = isFunction( value );
21890
21891		return this.each( function( i ) {
21892			var val;
21893
21894			if ( this.nodeType !== 1 ) {
21895				return;
21896			}
21897
21898			if ( valueIsFunction ) {
21899				val = value.call( this, i, jQuery( this ).val() );
21900			} else {
21901				val = value;
21902			}
21903
21904			// Treat null/undefined as ""; convert numbers to string
21905			if ( val == null ) {
21906				val = "";
21907
21908			} else if ( typeof val === "number" ) {
21909				val += "";
21910
21911			} else if ( Array.isArray( val ) ) {
21912				val = jQuery.map( val, function( value ) {
21913					return value == null ? "" : value + "";
21914				} );
21915			}
21916
21917			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
21918
21919			// If set returns undefined, fall back to normal setting
21920			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
21921				this.value = val;
21922			}
21923		} );
21924	}
21925} );
21926
21927jQuery.extend( {
21928	valHooks: {
21929		option: {
21930			get: function( elem ) {
21931
21932				var val = jQuery.find.attr( elem, "value" );
21933				return val != null ?
21934					val :
21935
21936					// Support: IE <=10 - 11 only
21937					// option.text throws exceptions (#14686, #14858)
21938					// Strip and collapse whitespace
21939					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
21940					stripAndCollapse( jQuery.text( elem ) );
21941			}
21942		},
21943		select: {
21944			get: function( elem ) {
21945				var value, option, i,
21946					options = elem.options,
21947					index = elem.selectedIndex,
21948					one = elem.type === "select-one",
21949					values = one ? null : [],
21950					max = one ? index + 1 : options.length;
21951
21952				if ( index < 0 ) {
21953					i = max;
21954
21955				} else {
21956					i = one ? index : 0;
21957				}
21958
21959				// Loop through all the selected options
21960				for ( ; i < max; i++ ) {
21961					option = options[ i ];
21962
21963					// Support: IE <=9 only
21964					// IE8-9 doesn't update selected after form reset (#2551)
21965					if ( ( option.selected || i === index ) &&
21966
21967							// Don't return options that are disabled or in a disabled optgroup
21968							!option.disabled &&
21969							( !option.parentNode.disabled ||
21970								!nodeName( option.parentNode, "optgroup" ) ) ) {
21971
21972						// Get the specific value for the option
21973						value = jQuery( option ).val();
21974
21975						// We don't need an array for one selects
21976						if ( one ) {
21977							return value;
21978						}
21979
21980						// Multi-Selects return an array
21981						values.push( value );
21982					}
21983				}
21984
21985				return values;
21986			},
21987
21988			set: function( elem, value ) {
21989				var optionSet, option,
21990					options = elem.options,
21991					values = jQuery.makeArray( value ),
21992					i = options.length;
21993
21994				while ( i-- ) {
21995					option = options[ i ];
21996
21997					/* eslint-disable no-cond-assign */
21998
21999					if ( option.selected =
22000						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
22001					) {
22002						optionSet = true;
22003					}
22004
22005					/* eslint-enable no-cond-assign */
22006				}
22007
22008				// Force browsers to behave consistently when non-matching value is set
22009				if ( !optionSet ) {
22010					elem.selectedIndex = -1;
22011				}
22012				return values;
22013			}
22014		}
22015	}
22016} );
22017
22018// Radios and checkboxes getter/setter
22019jQuery.each( [ "radio", "checkbox" ], function() {
22020	jQuery.valHooks[ this ] = {
22021		set: function( elem, value ) {
22022			if ( Array.isArray( value ) ) {
22023				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
22024			}
22025		}
22026	};
22027	if ( !support.checkOn ) {
22028		jQuery.valHooks[ this ].get = function( elem ) {
22029			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
22030		};
22031	}
22032} );
22033
22034
22035
22036
22037// Return jQuery for attributes-only inclusion
22038
22039
22040support.focusin = "onfocusin" in window;
22041
22042
22043var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
22044	stopPropagationCallback = function( e ) {
22045		e.stopPropagation();
22046	};
22047
22048jQuery.extend( jQuery.event, {
22049
22050	trigger: function( event, data, elem, onlyHandlers ) {
22051
22052		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
22053			eventPath = [ elem || document ],
22054			type = hasOwn.call( event, "type" ) ? event.type : event,
22055			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
22056
22057		cur = lastElement = tmp = elem = elem || document;
22058
22059		// Don't do events on text and comment nodes
22060		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
22061			return;
22062		}
22063
22064		// focus/blur morphs to focusin/out; ensure we're not firing them right now
22065		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
22066			return;
22067		}
22068
22069		if ( type.indexOf( "." ) > -1 ) {
22070
22071			// Namespaced trigger; create a regexp to match event type in handle()
22072			namespaces = type.split( "." );
22073			type = namespaces.shift();
22074			namespaces.sort();
22075		}
22076		ontype = type.indexOf( ":" ) < 0 && "on" + type;
22077
22078		// Caller can pass in a jQuery.Event object, Object, or just an event type string
22079		event = event[ jQuery.expando ] ?
22080			event :
22081			new jQuery.Event( type, typeof event === "object" && event );
22082
22083		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
22084		event.isTrigger = onlyHandlers ? 2 : 3;
22085		event.namespace = namespaces.join( "." );
22086		event.rnamespace = event.namespace ?
22087			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
22088			null;
22089
22090		// Clean up the event in case it is being reused
22091		event.result = undefined;
22092		if ( !event.target ) {
22093			event.target = elem;
22094		}
22095
22096		// Clone any incoming data and prepend the event, creating the handler arg list
22097		data = data == null ?
22098			[ event ] :
22099			jQuery.makeArray( data, [ event ] );
22100
22101		// Allow special events to draw outside the lines
22102		special = jQuery.event.special[ type ] || {};
22103		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
22104			return;
22105		}
22106
22107		// Determine event propagation path in advance, per W3C events spec (#9951)
22108		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
22109		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
22110
22111			bubbleType = special.delegateType || type;
22112			if ( !rfocusMorph.test( bubbleType + type ) ) {
22113				cur = cur.parentNode;
22114			}
22115			for ( ; cur; cur = cur.parentNode ) {
22116				eventPath.push( cur );
22117				tmp = cur;
22118			}
22119
22120			// Only add window if we got to document (e.g., not plain obj or detached DOM)
22121			if ( tmp === ( elem.ownerDocument || document ) ) {
22122				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
22123			}
22124		}
22125
22126		// Fire handlers on the event path
22127		i = 0;
22128		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
22129			lastElement = cur;
22130			event.type = i > 1 ?
22131				bubbleType :
22132				special.bindType || type;
22133
22134			// jQuery handler
22135			handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
22136				dataPriv.get( cur, "handle" );
22137			if ( handle ) {
22138				handle.apply( cur, data );
22139			}
22140
22141			// Native handler
22142			handle = ontype && cur[ ontype ];
22143			if ( handle && handle.apply && acceptData( cur ) ) {
22144				event.result = handle.apply( cur, data );
22145				if ( event.result === false ) {
22146					event.preventDefault();
22147				}
22148			}
22149		}
22150		event.type = type;
22151
22152		// If nobody prevented the default action, do it now
22153		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
22154
22155			if ( ( !special._default ||
22156				special._default.apply( eventPath.pop(), data ) === false ) &&
22157				acceptData( elem ) ) {
22158
22159				// Call a native DOM method on the target with the same name as the event.
22160				// Don't do default actions on window, that's where global variables be (#6170)
22161				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
22162
22163					// Don't re-trigger an onFOO event when we call its FOO() method
22164					tmp = elem[ ontype ];
22165
22166					if ( tmp ) {
22167						elem[ ontype ] = null;
22168					}
22169
22170					// Prevent re-triggering of the same event, since we already bubbled it above
22171					jQuery.event.triggered = type;
22172
22173					if ( event.isPropagationStopped() ) {
22174						lastElement.addEventListener( type, stopPropagationCallback );
22175					}
22176
22177					elem[ type ]();
22178
22179					if ( event.isPropagationStopped() ) {
22180						lastElement.removeEventListener( type, stopPropagationCallback );
22181					}
22182
22183					jQuery.event.triggered = undefined;
22184
22185					if ( tmp ) {
22186						elem[ ontype ] = tmp;
22187					}
22188				}
22189			}
22190		}
22191
22192		return event.result;
22193	},
22194
22195	// Piggyback on a donor event to simulate a different one
22196	// Used only for `focus(in | out)` events
22197	simulate: function( type, elem, event ) {
22198		var e = jQuery.extend(
22199			new jQuery.Event(),
22200			event,
22201			{
22202				type: type,
22203				isSimulated: true
22204			}
22205		);
22206
22207		jQuery.event.trigger( e, null, elem );
22208	}
22209
22210} );
22211
22212jQuery.fn.extend( {
22213
22214	trigger: function( type, data ) {
22215		return this.each( function() {
22216			jQuery.event.trigger( type, data, this );
22217		} );
22218	},
22219	triggerHandler: function( type, data ) {
22220		var elem = this[ 0 ];
22221		if ( elem ) {
22222			return jQuery.event.trigger( type, data, elem, true );
22223		}
22224	}
22225} );
22226
22227
22228// Support: Firefox <=44
22229// Firefox doesn't have focus(in | out) events
22230// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
22231//
22232// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
22233// focus(in | out) events fire after focus & blur events,
22234// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
22235// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
22236if ( !support.focusin ) {
22237	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
22238
22239		// Attach a single capturing handler on the document while someone wants focusin/focusout
22240		var handler = function( event ) {
22241			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
22242		};
22243
22244		jQuery.event.special[ fix ] = {
22245			setup: function() {
22246
22247				// Handle: regular nodes (via `this.ownerDocument`), window
22248				// (via `this.document`) & document (via `this`).
22249				var doc = this.ownerDocument || this.document || this,
22250					attaches = dataPriv.access( doc, fix );
22251
22252				if ( !attaches ) {
22253					doc.addEventListener( orig, handler, true );
22254				}
22255				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
22256			},
22257			teardown: function() {
22258				var doc = this.ownerDocument || this.document || this,
22259					attaches = dataPriv.access( doc, fix ) - 1;
22260
22261				if ( !attaches ) {
22262					doc.removeEventListener( orig, handler, true );
22263					dataPriv.remove( doc, fix );
22264
22265				} else {
22266					dataPriv.access( doc, fix, attaches );
22267				}
22268			}
22269		};
22270	} );
22271}
22272var location = window.location;
22273
22274var nonce = { guid: Date.now() };
22275
22276var rquery = ( /\?/ );
22277
22278
22279
22280// Cross-browser xml parsing
22281jQuery.parseXML = function( data ) {
22282	var xml, parserErrorElem;
22283	if ( !data || typeof data !== "string" ) {
22284		return null;
22285	}
22286
22287	// Support: IE 9 - 11 only
22288	// IE throws on parseFromString with invalid input.
22289	try {
22290		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
22291	} catch ( e ) {}
22292
22293	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
22294	if ( !xml || parserErrorElem ) {
22295		jQuery.error( "Invalid XML: " + (
22296			parserErrorElem ?
22297				jQuery.map( parserErrorElem.childNodes, function( el ) {
22298					return el.textContent;
22299				} ).join( "\n" ) :
22300				data
22301		) );
22302	}
22303	return xml;
22304};
22305
22306
22307var
22308	rbracket = /\[\]$/,
22309	rCRLF = /\r?\n/g,
22310	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
22311	rsubmittable = /^(?:input|select|textarea|keygen)/i;
22312
22313function buildParams( prefix, obj, traditional, add ) {
22314	var name;
22315
22316	if ( Array.isArray( obj ) ) {
22317
22318		// Serialize array item.
22319		jQuery.each( obj, function( i, v ) {
22320			if ( traditional || rbracket.test( prefix ) ) {
22321
22322				// Treat each array item as a scalar.
22323				add( prefix, v );
22324
22325			} else {
22326
22327				// Item is non-scalar (array or object), encode its numeric index.
22328				buildParams(
22329					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
22330					v,
22331					traditional,
22332					add
22333				);
22334			}
22335		} );
22336
22337	} else if ( !traditional && toType( obj ) === "object" ) {
22338
22339		// Serialize object item.
22340		for ( name in obj ) {
22341			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
22342		}
22343
22344	} else {
22345
22346		// Serialize scalar item.
22347		add( prefix, obj );
22348	}
22349}
22350
22351// Serialize an array of form elements or a set of
22352// key/values into a query string
22353jQuery.param = function( a, traditional ) {
22354	var prefix,
22355		s = [],
22356		add = function( key, valueOrFunction ) {
22357
22358			// If value is a function, invoke it and use its return value
22359			var value = isFunction( valueOrFunction ) ?
22360				valueOrFunction() :
22361				valueOrFunction;
22362
22363			s[ s.length ] = encodeURIComponent( key ) + "=" +
22364				encodeURIComponent( value == null ? "" : value );
22365		};
22366
22367	if ( a == null ) {
22368		return "";
22369	}
22370
22371	// If an array was passed in, assume that it is an array of form elements.
22372	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
22373
22374		// Serialize the form elements
22375		jQuery.each( a, function() {
22376			add( this.name, this.value );
22377		} );
22378
22379	} else {
22380
22381		// If traditional, encode the "old" way (the way 1.3.2 or older
22382		// did it), otherwise encode params recursively.
22383		for ( prefix in a ) {
22384			buildParams( prefix, a[ prefix ], traditional, add );
22385		}
22386	}
22387
22388	// Return the resulting serialization
22389	return s.join( "&" );
22390};
22391
22392jQuery.fn.extend( {
22393	serialize: function() {
22394		return jQuery.param( this.serializeArray() );
22395	},
22396	serializeArray: function() {
22397		return this.map( function() {
22398
22399			// Can add propHook for "elements" to filter or add form elements
22400			var elements = jQuery.prop( this, "elements" );
22401			return elements ? jQuery.makeArray( elements ) : this;
22402		} ).filter( function() {
22403			var type = this.type;
22404
22405			// Use .is( ":disabled" ) so that fieldset[disabled] works
22406			return this.name && !jQuery( this ).is( ":disabled" ) &&
22407				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
22408				( this.checked || !rcheckableType.test( type ) );
22409		} ).map( function( _i, elem ) {
22410			var val = jQuery( this ).val();
22411
22412			if ( val == null ) {
22413				return null;
22414			}
22415
22416			if ( Array.isArray( val ) ) {
22417				return jQuery.map( val, function( val ) {
22418					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
22419				} );
22420			}
22421
22422			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
22423		} ).get();
22424	}
22425} );
22426
22427
22428var
22429	r20 = /%20/g,
22430	rhash = /#.*$/,
22431	rantiCache = /([?&])_=[^&]*/,
22432	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
22433
22434	// #7653, #8125, #8152: local protocol detection
22435	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
22436	rnoContent = /^(?:GET|HEAD)$/,
22437	rprotocol = /^\/\//,
22438
22439	/* Prefilters
22440	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
22441	 * 2) These are called:
22442	 *    - BEFORE asking for a transport
22443	 *    - AFTER param serialization (s.data is a string if s.processData is true)
22444	 * 3) key is the dataType
22445	 * 4) the catchall symbol "*" can be used
22446	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
22447	 */
22448	prefilters = {},
22449
22450	/* Transports bindings
22451	 * 1) key is the dataType
22452	 * 2) the catchall symbol "*" can be used
22453	 * 3) selection will start with transport dataType and THEN go to "*" if needed
22454	 */
22455	transports = {},
22456
22457	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
22458	allTypes = "*/".concat( "*" ),
22459
22460	// Anchor tag for parsing the document origin
22461	originAnchor = document.createElement( "a" );
22462
22463originAnchor.href = location.href;
22464
22465// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
22466function addToPrefiltersOrTransports( structure ) {
22467
22468	// dataTypeExpression is optional and defaults to "*"
22469	return function( dataTypeExpression, func ) {
22470
22471		if ( typeof dataTypeExpression !== "string" ) {
22472			func = dataTypeExpression;
22473			dataTypeExpression = "*";
22474		}
22475
22476		var dataType,
22477			i = 0,
22478			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
22479
22480		if ( isFunction( func ) ) {
22481
22482			// For each dataType in the dataTypeExpression
22483			while ( ( dataType = dataTypes[ i++ ] ) ) {
22484
22485				// Prepend if requested
22486				if ( dataType[ 0 ] === "+" ) {
22487					dataType = dataType.slice( 1 ) || "*";
22488					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
22489
22490				// Otherwise append
22491				} else {
22492					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
22493				}
22494			}
22495		}
22496	};
22497}
22498
22499// Base inspection function for prefilters and transports
22500function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
22501
22502	var inspected = {},
22503		seekingTransport = ( structure === transports );
22504
22505	function inspect( dataType ) {
22506		var selected;
22507		inspected[ dataType ] = true;
22508		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
22509			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
22510			if ( typeof dataTypeOrTransport === "string" &&
22511				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
22512
22513				options.dataTypes.unshift( dataTypeOrTransport );
22514				inspect( dataTypeOrTransport );
22515				return false;
22516			} else if ( seekingTransport ) {
22517				return !( selected = dataTypeOrTransport );
22518			}
22519		} );
22520		return selected;
22521	}
22522
22523	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
22524}
22525
22526// A special extend for ajax options
22527// that takes "flat" options (not to be deep extended)
22528// Fixes #9887
22529function ajaxExtend( target, src ) {
22530	var key, deep,
22531		flatOptions = jQuery.ajaxSettings.flatOptions || {};
22532
22533	for ( key in src ) {
22534		if ( src[ key ] !== undefined ) {
22535			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
22536		}
22537	}
22538	if ( deep ) {
22539		jQuery.extend( true, target, deep );
22540	}
22541
22542	return target;
22543}
22544
22545/* Handles responses to an ajax request:
22546 * - finds the right dataType (mediates between content-type and expected dataType)
22547 * - returns the corresponding response
22548 */
22549function ajaxHandleResponses( s, jqXHR, responses ) {
22550
22551	var ct, type, finalDataType, firstDataType,
22552		contents = s.contents,
22553		dataTypes = s.dataTypes;
22554
22555	// Remove auto dataType and get content-type in the process
22556	while ( dataTypes[ 0 ] === "*" ) {
22557		dataTypes.shift();
22558		if ( ct === undefined ) {
22559			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
22560		}
22561	}
22562
22563	// Check if we're dealing with a known content-type
22564	if ( ct ) {
22565		for ( type in contents ) {
22566			if ( contents[ type ] && contents[ type ].test( ct ) ) {
22567				dataTypes.unshift( type );
22568				break;
22569			}
22570		}
22571	}
22572
22573	// Check to see if we have a response for the expected dataType
22574	if ( dataTypes[ 0 ] in responses ) {
22575		finalDataType = dataTypes[ 0 ];
22576	} else {
22577
22578		// Try convertible dataTypes
22579		for ( type in responses ) {
22580			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
22581				finalDataType = type;
22582				break;
22583			}
22584			if ( !firstDataType ) {
22585				firstDataType = type;
22586			}
22587		}
22588
22589		// Or just use first one
22590		finalDataType = finalDataType || firstDataType;
22591	}
22592
22593	// If we found a dataType
22594	// We add the dataType to the list if needed
22595	// and return the corresponding response
22596	if ( finalDataType ) {
22597		if ( finalDataType !== dataTypes[ 0 ] ) {
22598			dataTypes.unshift( finalDataType );
22599		}
22600		return responses[ finalDataType ];
22601	}
22602}
22603
22604/* Chain conversions given the request and the original response
22605 * Also sets the responseXXX fields on the jqXHR instance
22606 */
22607function ajaxConvert( s, response, jqXHR, isSuccess ) {
22608	var conv2, current, conv, tmp, prev,
22609		converters = {},
22610
22611		// Work with a copy of dataTypes in case we need to modify it for conversion
22612		dataTypes = s.dataTypes.slice();
22613
22614	// Create converters map with lowercased keys
22615	if ( dataTypes[ 1 ] ) {
22616		for ( conv in s.converters ) {
22617			converters[ conv.toLowerCase() ] = s.converters[ conv ];
22618		}
22619	}
22620
22621	current = dataTypes.shift();
22622
22623	// Convert to each sequential dataType
22624	while ( current ) {
22625
22626		if ( s.responseFields[ current ] ) {
22627			jqXHR[ s.responseFields[ current ] ] = response;
22628		}
22629
22630		// Apply the dataFilter if provided
22631		if ( !prev && isSuccess && s.dataFilter ) {
22632			response = s.dataFilter( response, s.dataType );
22633		}
22634
22635		prev = current;
22636		current = dataTypes.shift();
22637
22638		if ( current ) {
22639
22640			// There's only work to do if current dataType is non-auto
22641			if ( current === "*" ) {
22642
22643				current = prev;
22644
22645			// Convert response if prev dataType is non-auto and differs from current
22646			} else if ( prev !== "*" && prev !== current ) {
22647
22648				// Seek a direct converter
22649				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
22650
22651				// If none found, seek a pair
22652				if ( !conv ) {
22653					for ( conv2 in converters ) {
22654
22655						// If conv2 outputs current
22656						tmp = conv2.split( " " );
22657						if ( tmp[ 1 ] === current ) {
22658
22659							// If prev can be converted to accepted input
22660							conv = converters[ prev + " " + tmp[ 0 ] ] ||
22661								converters[ "* " + tmp[ 0 ] ];
22662							if ( conv ) {
22663
22664								// Condense equivalence converters
22665								if ( conv === true ) {
22666									conv = converters[ conv2 ];
22667
22668								// Otherwise, insert the intermediate dataType
22669								} else if ( converters[ conv2 ] !== true ) {
22670									current = tmp[ 0 ];
22671									dataTypes.unshift( tmp[ 1 ] );
22672								}
22673								break;
22674							}
22675						}
22676					}
22677				}
22678
22679				// Apply converter (if not an equivalence)
22680				if ( conv !== true ) {
22681
22682					// Unless errors are allowed to bubble, catch and return them
22683					if ( conv && s.throws ) {
22684						response = conv( response );
22685					} else {
22686						try {
22687							response = conv( response );
22688						} catch ( e ) {
22689							return {
22690								state: "parsererror",
22691								error: conv ? e : "No conversion from " + prev + " to " + current
22692							};
22693						}
22694					}
22695				}
22696			}
22697		}
22698	}
22699
22700	return { state: "success", data: response };
22701}
22702
22703jQuery.extend( {
22704
22705	// Counter for holding the number of active queries
22706	active: 0,
22707
22708	// Last-Modified header cache for next request
22709	lastModified: {},
22710	etag: {},
22711
22712	ajaxSettings: {
22713		url: location.href,
22714		type: "GET",
22715		isLocal: rlocalProtocol.test( location.protocol ),
22716		global: true,
22717		processData: true,
22718		async: true,
22719		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
22720
22721		/*
22722		timeout: 0,
22723		data: null,
22724		dataType: null,
22725		username: null,
22726		password: null,
22727		cache: null,
22728		throws: false,
22729		traditional: false,
22730		headers: {},
22731		*/
22732
22733		accepts: {
22734			"*": allTypes,
22735			text: "text/plain",
22736			html: "text/html",
22737			xml: "application/xml, text/xml",
22738			json: "application/json, text/javascript"
22739		},
22740
22741		contents: {
22742			xml: /\bxml\b/,
22743			html: /\bhtml/,
22744			json: /\bjson\b/
22745		},
22746
22747		responseFields: {
22748			xml: "responseXML",
22749			text: "responseText",
22750			json: "responseJSON"
22751		},
22752
22753		// Data converters
22754		// Keys separate source (or catchall "*") and destination types with a single space
22755		converters: {
22756
22757			// Convert anything to text
22758			"* text": String,
22759
22760			// Text to html (true = no transformation)
22761			"text html": true,
22762
22763			// Evaluate text as a json expression
22764			"text json": JSON.parse,
22765
22766			// Parse text as xml
22767			"text xml": jQuery.parseXML
22768		},
22769
22770		// For options that shouldn't be deep extended:
22771		// you can add your own custom options here if
22772		// and when you create one that shouldn't be
22773		// deep extended (see ajaxExtend)
22774		flatOptions: {
22775			url: true,
22776			context: true
22777		}
22778	},
22779
22780	// Creates a full fledged settings object into target
22781	// with both ajaxSettings and settings fields.
22782	// If target is omitted, writes into ajaxSettings.
22783	ajaxSetup: function( target, settings ) {
22784		return settings ?
22785
22786			// Building a settings object
22787			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
22788
22789			// Extending ajaxSettings
22790			ajaxExtend( jQuery.ajaxSettings, target );
22791	},
22792
22793	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
22794	ajaxTransport: addToPrefiltersOrTransports( transports ),
22795
22796	// Main method
22797	ajax: function( url, options ) {
22798
22799		// If url is an object, simulate pre-1.5 signature
22800		if ( typeof url === "object" ) {
22801			options = url;
22802			url = undefined;
22803		}
22804
22805		// Force options to be an object
22806		options = options || {};
22807
22808		var transport,
22809
22810			// URL without anti-cache param
22811			cacheURL,
22812
22813			// Response headers
22814			responseHeadersString,
22815			responseHeaders,
22816
22817			// timeout handle
22818			timeoutTimer,
22819
22820			// Url cleanup var
22821			urlAnchor,
22822
22823			// Request state (becomes false upon send and true upon completion)
22824			completed,
22825
22826			// To know if global events are to be dispatched
22827			fireGlobals,
22828
22829			// Loop variable
22830			i,
22831
22832			// uncached part of the url
22833			uncached,
22834
22835			// Create the final options object
22836			s = jQuery.ajaxSetup( {}, options ),
22837
22838			// Callbacks context
22839			callbackContext = s.context || s,
22840
22841			// Context for global events is callbackContext if it is a DOM node or jQuery collection
22842			globalEventContext = s.context &&
22843				( callbackContext.nodeType || callbackContext.jquery ) ?
22844				jQuery( callbackContext ) :
22845				jQuery.event,
22846
22847			// Deferreds
22848			deferred = jQuery.Deferred(),
22849			completeDeferred = jQuery.Callbacks( "once memory" ),
22850
22851			// Status-dependent callbacks
22852			statusCode = s.statusCode || {},
22853
22854			// Headers (they are sent all at once)
22855			requestHeaders = {},
22856			requestHeadersNames = {},
22857
22858			// Default abort message
22859			strAbort = "canceled",
22860
22861			// Fake xhr
22862			jqXHR = {
22863				readyState: 0,
22864
22865				// Builds headers hashtable if needed
22866				getResponseHeader: function( key ) {
22867					var match;
22868					if ( completed ) {
22869						if ( !responseHeaders ) {
22870							responseHeaders = {};
22871							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
22872								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
22873									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
22874										.concat( match[ 2 ] );
22875							}
22876						}
22877						match = responseHeaders[ key.toLowerCase() + " " ];
22878					}
22879					return match == null ? null : match.join( ", " );
22880				},
22881
22882				// Raw string
22883				getAllResponseHeaders: function() {
22884					return completed ? responseHeadersString : null;
22885				},
22886
22887				// Caches the header
22888				setRequestHeader: function( name, value ) {
22889					if ( completed == null ) {
22890						name = requestHeadersNames[ name.toLowerCase() ] =
22891							requestHeadersNames[ name.toLowerCase() ] || name;
22892						requestHeaders[ name ] = value;
22893					}
22894					return this;
22895				},
22896
22897				// Overrides response content-type header
22898				overrideMimeType: function( type ) {
22899					if ( completed == null ) {
22900						s.mimeType = type;
22901					}
22902					return this;
22903				},
22904
22905				// Status-dependent callbacks
22906				statusCode: function( map ) {
22907					var code;
22908					if ( map ) {
22909						if ( completed ) {
22910
22911							// Execute the appropriate callbacks
22912							jqXHR.always( map[ jqXHR.status ] );
22913						} else {
22914
22915							// Lazy-add the new callbacks in a way that preserves old ones
22916							for ( code in map ) {
22917								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
22918							}
22919						}
22920					}
22921					return this;
22922				},
22923
22924				// Cancel the request
22925				abort: function( statusText ) {
22926					var finalText = statusText || strAbort;
22927					if ( transport ) {
22928						transport.abort( finalText );
22929					}
22930					done( 0, finalText );
22931					return this;
22932				}
22933			};
22934
22935		// Attach deferreds
22936		deferred.promise( jqXHR );
22937
22938		// Add protocol if not provided (prefilters might expect it)
22939		// Handle falsy url in the settings object (#10093: consistency with old signature)
22940		// We also use the url parameter if available
22941		s.url = ( ( url || s.url || location.href ) + "" )
22942			.replace( rprotocol, location.protocol + "//" );
22943
22944		// Alias method option to type as per ticket #12004
22945		s.type = options.method || options.type || s.method || s.type;
22946
22947		// Extract dataTypes list
22948		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
22949
22950		// A cross-domain request is in order when the origin doesn't match the current origin.
22951		if ( s.crossDomain == null ) {
22952			urlAnchor = document.createElement( "a" );
22953
22954			// Support: IE <=8 - 11, Edge 12 - 15
22955			// IE throws exception on accessing the href property if url is malformed,
22956			// e.g. http://example.com:80x/
22957			try {
22958				urlAnchor.href = s.url;
22959
22960				// Support: IE <=8 - 11 only
22961				// Anchor's host property isn't correctly set when s.url is relative
22962				urlAnchor.href = urlAnchor.href;
22963				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
22964					urlAnchor.protocol + "//" + urlAnchor.host;
22965			} catch ( e ) {
22966
22967				// If there is an error parsing the URL, assume it is crossDomain,
22968				// it can be rejected by the transport if it is invalid
22969				s.crossDomain = true;
22970			}
22971		}
22972
22973		// Convert data if not already a string
22974		if ( s.data && s.processData && typeof s.data !== "string" ) {
22975			s.data = jQuery.param( s.data, s.traditional );
22976		}
22977
22978		// Apply prefilters
22979		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
22980
22981		// If request was aborted inside a prefilter, stop there
22982		if ( completed ) {
22983			return jqXHR;
22984		}
22985
22986		// We can fire global events as of now if asked to
22987		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
22988		fireGlobals = jQuery.event && s.global;
22989
22990		// Watch for a new set of requests
22991		if ( fireGlobals && jQuery.active++ === 0 ) {
22992			jQuery.event.trigger( "ajaxStart" );
22993		}
22994
22995		// Uppercase the type
22996		s.type = s.type.toUpperCase();
22997
22998		// Determine if request has content
22999		s.hasContent = !rnoContent.test( s.type );
23000
23001		// Save the URL in case we're toying with the If-Modified-Since
23002		// and/or If-None-Match header later on
23003		// Remove hash to simplify url manipulation
23004		cacheURL = s.url.replace( rhash, "" );
23005
23006		// More options handling for requests with no content
23007		if ( !s.hasContent ) {
23008
23009			// Remember the hash so we can put it back
23010			uncached = s.url.slice( cacheURL.length );
23011
23012			// If data is available and should be processed, append data to url
23013			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
23014				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
23015
23016				// #9682: remove data so that it's not used in an eventual retry
23017				delete s.data;
23018			}
23019
23020			// Add or update anti-cache param if needed
23021			if ( s.cache === false ) {
23022				cacheURL = cacheURL.replace( rantiCache, "$1" );
23023				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
23024					uncached;
23025			}
23026
23027			// Put hash and anti-cache on the URL that will be requested (gh-1732)
23028			s.url = cacheURL + uncached;
23029
23030		// Change '%20' to '+' if this is encoded form body content (gh-2658)
23031		} else if ( s.data && s.processData &&
23032			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
23033			s.data = s.data.replace( r20, "+" );
23034		}
23035
23036		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
23037		if ( s.ifModified ) {
23038			if ( jQuery.lastModified[ cacheURL ] ) {
23039				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
23040			}
23041			if ( jQuery.etag[ cacheURL ] ) {
23042				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
23043			}
23044		}
23045
23046		// Set the correct header, if data is being sent
23047		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
23048			jqXHR.setRequestHeader( "Content-Type", s.contentType );
23049		}
23050
23051		// Set the Accepts header for the server, depending on the dataType
23052		jqXHR.setRequestHeader(
23053			"Accept",
23054			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
23055				s.accepts[ s.dataTypes[ 0 ] ] +
23056					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
23057				s.accepts[ "*" ]
23058		);
23059
23060		// Check for headers option
23061		for ( i in s.headers ) {
23062			jqXHR.setRequestHeader( i, s.headers[ i ] );
23063		}
23064
23065		// Allow custom headers/mimetypes and early abort
23066		if ( s.beforeSend &&
23067			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
23068
23069			// Abort if not done already and return
23070			return jqXHR.abort();
23071		}
23072
23073		// Aborting is no longer a cancellation
23074		strAbort = "abort";
23075
23076		// Install callbacks on deferreds
23077		completeDeferred.add( s.complete );
23078		jqXHR.done( s.success );
23079		jqXHR.fail( s.error );
23080
23081		// Get transport
23082		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
23083
23084		// If no transport, we auto-abort
23085		if ( !transport ) {
23086			done( -1, "No Transport" );
23087		} else {
23088			jqXHR.readyState = 1;
23089
23090			// Send global event
23091			if ( fireGlobals ) {
23092				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
23093			}
23094
23095			// If request was aborted inside ajaxSend, stop there
23096			if ( completed ) {
23097				return jqXHR;
23098			}
23099
23100			// Timeout
23101			if ( s.async && s.timeout > 0 ) {
23102				timeoutTimer = window.setTimeout( function() {
23103					jqXHR.abort( "timeout" );
23104				}, s.timeout );
23105			}
23106
23107			try {
23108				completed = false;
23109				transport.send( requestHeaders, done );
23110			} catch ( e ) {
23111
23112				// Rethrow post-completion exceptions
23113				if ( completed ) {
23114					throw e;
23115				}
23116
23117				// Propagate others as results
23118				done( -1, e );
23119			}
23120		}
23121
23122		// Callback for when everything is done
23123		function done( status, nativeStatusText, responses, headers ) {
23124			var isSuccess, success, error, response, modified,
23125				statusText = nativeStatusText;
23126
23127			// Ignore repeat invocations
23128			if ( completed ) {
23129				return;
23130			}
23131
23132			completed = true;
23133
23134			// Clear timeout if it exists
23135			if ( timeoutTimer ) {
23136				window.clearTimeout( timeoutTimer );
23137			}
23138
23139			// Dereference transport for early garbage collection
23140			// (no matter how long the jqXHR object will be used)
23141			transport = undefined;
23142
23143			// Cache response headers
23144			responseHeadersString = headers || "";
23145
23146			// Set readyState
23147			jqXHR.readyState = status > 0 ? 4 : 0;
23148
23149			// Determine if successful
23150			isSuccess = status >= 200 && status < 300 || status === 304;
23151
23152			// Get response data
23153			if ( responses ) {
23154				response = ajaxHandleResponses( s, jqXHR, responses );
23155			}
23156
23157			// Use a noop converter for missing script but not if jsonp
23158			if ( !isSuccess &&
23159				jQuery.inArray( "script", s.dataTypes ) > -1 &&
23160				jQuery.inArray( "json", s.dataTypes ) < 0 ) {
23161				s.converters[ "text script" ] = function() {};
23162			}
23163
23164			// Convert no matter what (that way responseXXX fields are always set)
23165			response = ajaxConvert( s, response, jqXHR, isSuccess );
23166
23167			// If successful, handle type chaining
23168			if ( isSuccess ) {
23169
23170				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
23171				if ( s.ifModified ) {
23172					modified = jqXHR.getResponseHeader( "Last-Modified" );
23173					if ( modified ) {
23174						jQuery.lastModified[ cacheURL ] = modified;
23175					}
23176					modified = jqXHR.getResponseHeader( "etag" );
23177					if ( modified ) {
23178						jQuery.etag[ cacheURL ] = modified;
23179					}
23180				}
23181
23182				// if no content
23183				if ( status === 204 || s.type === "HEAD" ) {
23184					statusText = "nocontent";
23185
23186				// if not modified
23187				} else if ( status === 304 ) {
23188					statusText = "notmodified";
23189
23190				// If we have data, let's convert it
23191				} else {
23192					statusText = response.state;
23193					success = response.data;
23194					error = response.error;
23195					isSuccess = !error;
23196				}
23197			} else {
23198
23199				// Extract error from statusText and normalize for non-aborts
23200				error = statusText;
23201				if ( status || !statusText ) {
23202					statusText = "error";
23203					if ( status < 0 ) {
23204						status = 0;
23205					}
23206				}
23207			}
23208
23209			// Set data for the fake xhr object
23210			jqXHR.status = status;
23211			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
23212
23213			// Success/Error
23214			if ( isSuccess ) {
23215				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
23216			} else {
23217				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
23218			}
23219
23220			// Status-dependent callbacks
23221			jqXHR.statusCode( statusCode );
23222			statusCode = undefined;
23223
23224			if ( fireGlobals ) {
23225				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
23226					[ jqXHR, s, isSuccess ? success : error ] );
23227			}
23228
23229			// Complete
23230			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
23231
23232			if ( fireGlobals ) {
23233				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
23234
23235				// Handle the global AJAX counter
23236				if ( !( --jQuery.active ) ) {
23237					jQuery.event.trigger( "ajaxStop" );
23238				}
23239			}
23240		}
23241
23242		return jqXHR;
23243	},
23244
23245	getJSON: function( url, data, callback ) {
23246		return jQuery.get( url, data, callback, "json" );
23247	},
23248
23249	getScript: function( url, callback ) {
23250		return jQuery.get( url, undefined, callback, "script" );
23251	}
23252} );
23253
23254jQuery.each( [ "get", "post" ], function( _i, method ) {
23255	jQuery[ method ] = function( url, data, callback, type ) {
23256
23257		// Shift arguments if data argument was omitted
23258		if ( isFunction( data ) ) {
23259			type = type || callback;
23260			callback = data;
23261			data = undefined;
23262		}
23263
23264		// The url can be an options object (which then must have .url)
23265		return jQuery.ajax( jQuery.extend( {
23266			url: url,
23267			type: method,
23268			dataType: type,
23269			data: data,
23270			success: callback
23271		}, jQuery.isPlainObject( url ) && url ) );
23272	};
23273} );
23274
23275jQuery.ajaxPrefilter( function( s ) {
23276	var i;
23277	for ( i in s.headers ) {
23278		if ( i.toLowerCase() === "content-type" ) {
23279			s.contentType = s.headers[ i ] || "";
23280		}
23281	}
23282} );
23283
23284
23285jQuery._evalUrl = function( url, options, doc ) {
23286	return jQuery.ajax( {
23287		url: url,
23288
23289		// Make this explicit, since user can override this through ajaxSetup (#11264)
23290		type: "GET",
23291		dataType: "script",
23292		cache: true,
23293		async: false,
23294		global: false,
23295
23296		// Only evaluate the response if it is successful (gh-4126)
23297		// dataFilter is not invoked for failure responses, so using it instead
23298		// of the default converter is kludgy but it works.
23299		converters: {
23300			"text script": function() {}
23301		},
23302		dataFilter: function( response ) {
23303			jQuery.globalEval( response, options, doc );
23304		}
23305	} );
23306};
23307
23308
23309jQuery.fn.extend( {
23310	wrapAll: function( html ) {
23311		var wrap;
23312
23313		if ( this[ 0 ] ) {
23314			if ( isFunction( html ) ) {
23315				html = html.call( this[ 0 ] );
23316			}
23317
23318			// The elements to wrap the target around
23319			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
23320
23321			if ( this[ 0 ].parentNode ) {
23322				wrap.insertBefore( this[ 0 ] );
23323			}
23324
23325			wrap.map( function() {
23326				var elem = this;
23327
23328				while ( elem.firstElementChild ) {
23329					elem = elem.firstElementChild;
23330				}
23331
23332				return elem;
23333			} ).append( this );
23334		}
23335
23336		return this;
23337	},
23338
23339	wrapInner: function( html ) {
23340		if ( isFunction( html ) ) {
23341			return this.each( function( i ) {
23342				jQuery( this ).wrapInner( html.call( this, i ) );
23343			} );
23344		}
23345
23346		return this.each( function() {
23347			var self = jQuery( this ),
23348				contents = self.contents();
23349
23350			if ( contents.length ) {
23351				contents.wrapAll( html );
23352
23353			} else {
23354				self.append( html );
23355			}
23356		} );
23357	},
23358
23359	wrap: function( html ) {
23360		var htmlIsFunction = isFunction( html );
23361
23362		return this.each( function( i ) {
23363			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
23364		} );
23365	},
23366
23367	unwrap: function( selector ) {
23368		this.parent( selector ).not( "body" ).each( function() {
23369			jQuery( this ).replaceWith( this.childNodes );
23370		} );
23371		return this;
23372	}
23373} );
23374
23375
23376jQuery.expr.pseudos.hidden = function( elem ) {
23377	return !jQuery.expr.pseudos.visible( elem );
23378};
23379jQuery.expr.pseudos.visible = function( elem ) {
23380	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
23381};
23382
23383
23384
23385
23386jQuery.ajaxSettings.xhr = function() {
23387	try {
23388		return new window.XMLHttpRequest();
23389	} catch ( e ) {}
23390};
23391
23392var xhrSuccessStatus = {
23393
23394		// File protocol always yields status code 0, assume 200
23395		0: 200,
23396
23397		// Support: IE <=9 only
23398		// #1450: sometimes IE returns 1223 when it should be 204
23399		1223: 204
23400	},
23401	xhrSupported = jQuery.ajaxSettings.xhr();
23402
23403support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
23404support.ajax = xhrSupported = !!xhrSupported;
23405
23406jQuery.ajaxTransport( function( options ) {
23407	var callback, errorCallback;
23408
23409	// Cross domain only allowed if supported through XMLHttpRequest
23410	if ( support.cors || xhrSupported && !options.crossDomain ) {
23411		return {
23412			send: function( headers, complete ) {
23413				var i,
23414					xhr = options.xhr();
23415
23416				xhr.open(
23417					options.type,
23418					options.url,
23419					options.async,
23420					options.username,
23421					options.password
23422				);
23423
23424				// Apply custom fields if provided
23425				if ( options.xhrFields ) {
23426					for ( i in options.xhrFields ) {
23427						xhr[ i ] = options.xhrFields[ i ];
23428					}
23429				}
23430
23431				// Override mime type if needed
23432				if ( options.mimeType && xhr.overrideMimeType ) {
23433					xhr.overrideMimeType( options.mimeType );
23434				}
23435
23436				// X-Requested-With header
23437				// For cross-domain requests, seeing as conditions for a preflight are
23438				// akin to a jigsaw puzzle, we simply never set it to be sure.
23439				// (it can always be set on a per-request basis or even using ajaxSetup)
23440				// For same-domain requests, won't change header if already provided.
23441				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
23442					headers[ "X-Requested-With" ] = "XMLHttpRequest";
23443				}
23444
23445				// Set headers
23446				for ( i in headers ) {
23447					xhr.setRequestHeader( i, headers[ i ] );
23448				}
23449
23450				// Callback
23451				callback = function( type ) {
23452					return function() {
23453						if ( callback ) {
23454							callback = errorCallback = xhr.onload =
23455								xhr.onerror = xhr.onabort = xhr.ontimeout =
23456									xhr.onreadystatechange = null;
23457
23458							if ( type === "abort" ) {
23459								xhr.abort();
23460							} else if ( type === "error" ) {
23461
23462								// Support: IE <=9 only
23463								// On a manual native abort, IE9 throws
23464								// errors on any property access that is not readyState
23465								if ( typeof xhr.status !== "number" ) {
23466									complete( 0, "error" );
23467								} else {
23468									complete(
23469
23470										// File: protocol always yields status 0; see #8605, #14207
23471										xhr.status,
23472										xhr.statusText
23473									);
23474								}
23475							} else {
23476								complete(
23477									xhrSuccessStatus[ xhr.status ] || xhr.status,
23478									xhr.statusText,
23479
23480									// Support: IE <=9 only
23481									// IE9 has no XHR2 but throws on binary (trac-11426)
23482									// For XHR2 non-text, let the caller handle it (gh-2498)
23483									( xhr.responseType || "text" ) !== "text"  ||
23484									typeof xhr.responseText !== "string" ?
23485										{ binary: xhr.response } :
23486										{ text: xhr.responseText },
23487									xhr.getAllResponseHeaders()
23488								);
23489							}
23490						}
23491					};
23492				};
23493
23494				// Listen to events
23495				xhr.onload = callback();
23496				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
23497
23498				// Support: IE 9 only
23499				// Use onreadystatechange to replace onabort
23500				// to handle uncaught aborts
23501				if ( xhr.onabort !== undefined ) {
23502					xhr.onabort = errorCallback;
23503				} else {
23504					xhr.onreadystatechange = function() {
23505
23506						// Check readyState before timeout as it changes
23507						if ( xhr.readyState === 4 ) {
23508
23509							// Allow onerror to be called first,
23510							// but that will not handle a native abort
23511							// Also, save errorCallback to a variable
23512							// as xhr.onerror cannot be accessed
23513							window.setTimeout( function() {
23514								if ( callback ) {
23515									errorCallback();
23516								}
23517							} );
23518						}
23519					};
23520				}
23521
23522				// Create the abort callback
23523				callback = callback( "abort" );
23524
23525				try {
23526
23527					// Do send the request (this may raise an exception)
23528					xhr.send( options.hasContent && options.data || null );
23529				} catch ( e ) {
23530
23531					// #14683: Only rethrow if this hasn't been notified as an error yet
23532					if ( callback ) {
23533						throw e;
23534					}
23535				}
23536			},
23537
23538			abort: function() {
23539				if ( callback ) {
23540					callback();
23541				}
23542			}
23543		};
23544	}
23545} );
23546
23547
23548
23549
23550// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
23551jQuery.ajaxPrefilter( function( s ) {
23552	if ( s.crossDomain ) {
23553		s.contents.script = false;
23554	}
23555} );
23556
23557// Install script dataType
23558jQuery.ajaxSetup( {
23559	accepts: {
23560		script: "text/javascript, application/javascript, " +
23561			"application/ecmascript, application/x-ecmascript"
23562	},
23563	contents: {
23564		script: /\b(?:java|ecma)script\b/
23565	},
23566	converters: {
23567		"text script": function( text ) {
23568			jQuery.globalEval( text );
23569			return text;
23570		}
23571	}
23572} );
23573
23574// Handle cache's special case and crossDomain
23575jQuery.ajaxPrefilter( "script", function( s ) {
23576	if ( s.cache === undefined ) {
23577		s.cache = false;
23578	}
23579	if ( s.crossDomain ) {
23580		s.type = "GET";
23581	}
23582} );
23583
23584// Bind script tag hack transport
23585jQuery.ajaxTransport( "script", function( s ) {
23586
23587	// This transport only deals with cross domain or forced-by-attrs requests
23588	if ( s.crossDomain || s.scriptAttrs ) {
23589		var script, callback;
23590		return {
23591			send: function( _, complete ) {
23592				script = jQuery( "<script>" )
23593					.attr( s.scriptAttrs || {} )
23594					.prop( { charset: s.scriptCharset, src: s.url } )
23595					.on( "load error", callback = function( evt ) {
23596						script.remove();
23597						callback = null;
23598						if ( evt ) {
23599							complete( evt.type === "error" ? 404 : 200, evt.type );
23600						}
23601					} );
23602
23603				// Use native DOM manipulation to avoid our domManip AJAX trickery
23604				document.head.appendChild( script[ 0 ] );
23605			},
23606			abort: function() {
23607				if ( callback ) {
23608					callback();
23609				}
23610			}
23611		};
23612	}
23613} );
23614
23615
23616
23617
23618var oldCallbacks = [],
23619	rjsonp = /(=)\?(?=&|$)|\?\?/;
23620
23621// Default jsonp settings
23622jQuery.ajaxSetup( {
23623	jsonp: "callback",
23624	jsonpCallback: function() {
23625		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
23626		this[ callback ] = true;
23627		return callback;
23628	}
23629} );
23630
23631// Detect, normalize options and install callbacks for jsonp requests
23632jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
23633
23634	var callbackName, overwritten, responseContainer,
23635		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
23636			"url" :
23637			typeof s.data === "string" &&
23638				( s.contentType || "" )
23639					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
23640				rjsonp.test( s.data ) && "data"
23641		);
23642
23643	// Handle iff the expected data type is "jsonp" or we have a parameter to set
23644	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
23645
23646		// Get callback name, remembering preexisting value associated with it
23647		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
23648			s.jsonpCallback() :
23649			s.jsonpCallback;
23650
23651		// Insert callback into url or form data
23652		if ( jsonProp ) {
23653			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
23654		} else if ( s.jsonp !== false ) {
23655			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
23656		}
23657
23658		// Use data converter to retrieve json after script execution
23659		s.converters[ "script json" ] = function() {
23660			if ( !responseContainer ) {
23661				jQuery.error( callbackName + " was not called" );
23662			}
23663			return responseContainer[ 0 ];
23664		};
23665
23666		// Force json dataType
23667		s.dataTypes[ 0 ] = "json";
23668
23669		// Install callback
23670		overwritten = window[ callbackName ];
23671		window[ callbackName ] = function() {
23672			responseContainer = arguments;
23673		};
23674
23675		// Clean-up function (fires after converters)
23676		jqXHR.always( function() {
23677
23678			// If previous value didn't exist - remove it
23679			if ( overwritten === undefined ) {
23680				jQuery( window ).removeProp( callbackName );
23681
23682			// Otherwise restore preexisting value
23683			} else {
23684				window[ callbackName ] = overwritten;
23685			}
23686
23687			// Save back as free
23688			if ( s[ callbackName ] ) {
23689
23690				// Make sure that re-using the options doesn't screw things around
23691				s.jsonpCallback = originalSettings.jsonpCallback;
23692
23693				// Save the callback name for future use
23694				oldCallbacks.push( callbackName );
23695			}
23696
23697			// Call if it was a function and we have a response
23698			if ( responseContainer && isFunction( overwritten ) ) {
23699				overwritten( responseContainer[ 0 ] );
23700			}
23701
23702			responseContainer = overwritten = undefined;
23703		} );
23704
23705		// Delegate to script
23706		return "script";
23707	}
23708} );
23709
23710
23711
23712
23713// Support: Safari 8 only
23714// In Safari 8 documents created via document.implementation.createHTMLDocument
23715// collapse sibling forms: the second one becomes a child of the first one.
23716// Because of that, this security measure has to be disabled in Safari 8.
23717// https://bugs.webkit.org/show_bug.cgi?id=137337
23718support.createHTMLDocument = ( function() {
23719	var body = document.implementation.createHTMLDocument( "" ).body;
23720	body.innerHTML = "<form></form><form></form>";
23721	return body.childNodes.length === 2;
23722} )();
23723
23724
23725// Argument "data" should be string of html
23726// context (optional): If specified, the fragment will be created in this context,
23727// defaults to document
23728// keepScripts (optional): If true, will include scripts passed in the html string
23729jQuery.parseHTML = function( data, context, keepScripts ) {
23730	if ( typeof data !== "string" ) {
23731		return [];
23732	}
23733	if ( typeof context === "boolean" ) {
23734		keepScripts = context;
23735		context = false;
23736	}
23737
23738	var base, parsed, scripts;
23739
23740	if ( !context ) {
23741
23742		// Stop scripts or inline event handlers from being executed immediately
23743		// by using document.implementation
23744		if ( support.createHTMLDocument ) {
23745			context = document.implementation.createHTMLDocument( "" );
23746
23747			// Set the base href for the created document
23748			// so any parsed elements with URLs
23749			// are based on the document's URL (gh-2965)
23750			base = context.createElement( "base" );
23751			base.href = document.location.href;
23752			context.head.appendChild( base );
23753		} else {
23754			context = document;
23755		}
23756	}
23757
23758	parsed = rsingleTag.exec( data );
23759	scripts = !keepScripts && [];
23760
23761	// Single tag
23762	if ( parsed ) {
23763		return [ context.createElement( parsed[ 1 ] ) ];
23764	}
23765
23766	parsed = buildFragment( [ data ], context, scripts );
23767
23768	if ( scripts && scripts.length ) {
23769		jQuery( scripts ).remove();
23770	}
23771
23772	return jQuery.merge( [], parsed.childNodes );
23773};
23774
23775
23776/**
23777 * Load a url into a page
23778 */
23779jQuery.fn.load = function( url, params, callback ) {
23780	var selector, type, response,
23781		self = this,
23782		off = url.indexOf( " " );
23783
23784	if ( off > -1 ) {
23785		selector = stripAndCollapse( url.slice( off ) );
23786		url = url.slice( 0, off );
23787	}
23788
23789	// If it's a function
23790	if ( isFunction( params ) ) {
23791
23792		// We assume that it's the callback
23793		callback = params;
23794		params = undefined;
23795
23796	// Otherwise, build a param string
23797	} else if ( params && typeof params === "object" ) {
23798		type = "POST";
23799	}
23800
23801	// If we have elements to modify, make the request
23802	if ( self.length > 0 ) {
23803		jQuery.ajax( {
23804			url: url,
23805
23806			// If "type" variable is undefined, then "GET" method will be used.
23807			// Make value of this field explicit since
23808			// user can override it through ajaxSetup method
23809			type: type || "GET",
23810			dataType: "html",
23811			data: params
23812		} ).done( function( responseText ) {
23813
23814			// Save response for use in complete callback
23815			response = arguments;
23816
23817			self.html( selector ?
23818
23819				// If a selector was specified, locate the right elements in a dummy div
23820				// Exclude scripts to avoid IE 'Permission Denied' errors
23821				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
23822
23823				// Otherwise use the full result
23824				responseText );
23825
23826		// If the request succeeds, this function gets "data", "status", "jqXHR"
23827		// but they are ignored because response was set above.
23828		// If it fails, this function gets "jqXHR", "status", "error"
23829		} ).always( callback && function( jqXHR, status ) {
23830			self.each( function() {
23831				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
23832			} );
23833		} );
23834	}
23835
23836	return this;
23837};
23838
23839
23840
23841
23842jQuery.expr.pseudos.animated = function( elem ) {
23843	return jQuery.grep( jQuery.timers, function( fn ) {
23844		return elem === fn.elem;
23845	} ).length;
23846};
23847
23848
23849
23850
23851jQuery.offset = {
23852	setOffset: function( elem, options, i ) {
23853		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
23854			position = jQuery.css( elem, "position" ),
23855			curElem = jQuery( elem ),
23856			props = {};
23857
23858		// Set position first, in-case top/left are set even on static elem
23859		if ( position === "static" ) {
23860			elem.style.position = "relative";
23861		}
23862
23863		curOffset = curElem.offset();
23864		curCSSTop = jQuery.css( elem, "top" );
23865		curCSSLeft = jQuery.css( elem, "left" );
23866		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
23867			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
23868
23869		// Need to be able to calculate position if either
23870		// top or left is auto and position is either absolute or fixed
23871		if ( calculatePosition ) {
23872			curPosition = curElem.position();
23873			curTop = curPosition.top;
23874			curLeft = curPosition.left;
23875
23876		} else {
23877			curTop = parseFloat( curCSSTop ) || 0;
23878			curLeft = parseFloat( curCSSLeft ) || 0;
23879		}
23880
23881		if ( isFunction( options ) ) {
23882
23883			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
23884			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
23885		}
23886
23887		if ( options.top != null ) {
23888			props.top = ( options.top - curOffset.top ) + curTop;
23889		}
23890		if ( options.left != null ) {
23891			props.left = ( options.left - curOffset.left ) + curLeft;
23892		}
23893
23894		if ( "using" in options ) {
23895			options.using.call( elem, props );
23896
23897		} else {
23898			curElem.css( props );
23899		}
23900	}
23901};
23902
23903jQuery.fn.extend( {
23904
23905	// offset() relates an element's border box to the document origin
23906	offset: function( options ) {
23907
23908		// Preserve chaining for setter
23909		if ( arguments.length ) {
23910			return options === undefined ?
23911				this :
23912				this.each( function( i ) {
23913					jQuery.offset.setOffset( this, options, i );
23914				} );
23915		}
23916
23917		var rect, win,
23918			elem = this[ 0 ];
23919
23920		if ( !elem ) {
23921			return;
23922		}
23923
23924		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
23925		// Support: IE <=11 only
23926		// Running getBoundingClientRect on a
23927		// disconnected node in IE throws an error
23928		if ( !elem.getClientRects().length ) {
23929			return { top: 0, left: 0 };
23930		}
23931
23932		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
23933		rect = elem.getBoundingClientRect();
23934		win = elem.ownerDocument.defaultView;
23935		return {
23936			top: rect.top + win.pageYOffset,
23937			left: rect.left + win.pageXOffset
23938		};
23939	},
23940
23941	// position() relates an element's margin box to its offset parent's padding box
23942	// This corresponds to the behavior of CSS absolute positioning
23943	position: function() {
23944		if ( !this[ 0 ] ) {
23945			return;
23946		}
23947
23948		var offsetParent, offset, doc,
23949			elem = this[ 0 ],
23950			parentOffset = { top: 0, left: 0 };
23951
23952		// position:fixed elements are offset from the viewport, which itself always has zero offset
23953		if ( jQuery.css( elem, "position" ) === "fixed" ) {
23954
23955			// Assume position:fixed implies availability of getBoundingClientRect
23956			offset = elem.getBoundingClientRect();
23957
23958		} else {
23959			offset = this.offset();
23960
23961			// Account for the *real* offset parent, which can be the document or its root element
23962			// when a statically positioned element is identified
23963			doc = elem.ownerDocument;
23964			offsetParent = elem.offsetParent || doc.documentElement;
23965			while ( offsetParent &&
23966				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
23967				jQuery.css( offsetParent, "position" ) === "static" ) {
23968
23969				offsetParent = offsetParent.parentNode;
23970			}
23971			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
23972
23973				// Incorporate borders into its offset, since they are outside its content origin
23974				parentOffset = jQuery( offsetParent ).offset();
23975				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
23976				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
23977			}
23978		}
23979
23980		// Subtract parent offsets and element margins
23981		return {
23982			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
23983			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
23984		};
23985	},
23986
23987	// This method will return documentElement in the following cases:
23988	// 1) For the element inside the iframe without offsetParent, this method will return
23989	//    documentElement of the parent window
23990	// 2) For the hidden or detached element
23991	// 3) For body or html element, i.e. in case of the html node - it will return itself
23992	//
23993	// but those exceptions were never presented as a real life use-cases
23994	// and might be considered as more preferable results.
23995	//
23996	// This logic, however, is not guaranteed and can change at any point in the future
23997	offsetParent: function() {
23998		return this.map( function() {
23999			var offsetParent = this.offsetParent;
24000
24001			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
24002				offsetParent = offsetParent.offsetParent;
24003			}
24004
24005			return offsetParent || documentElement;
24006		} );
24007	}
24008} );
24009
24010// Create scrollLeft and scrollTop methods
24011jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
24012	var top = "pageYOffset" === prop;
24013
24014	jQuery.fn[ method ] = function( val ) {
24015		return access( this, function( elem, method, val ) {
24016
24017			// Coalesce documents and windows
24018			var win;
24019			if ( isWindow( elem ) ) {
24020				win = elem;
24021			} else if ( elem.nodeType === 9 ) {
24022				win = elem.defaultView;
24023			}
24024
24025			if ( val === undefined ) {
24026				return win ? win[ prop ] : elem[ method ];
24027			}
24028
24029			if ( win ) {
24030				win.scrollTo(
24031					!top ? val : win.pageXOffset,
24032					top ? val : win.pageYOffset
24033				);
24034
24035			} else {
24036				elem[ method ] = val;
24037			}
24038		}, method, val, arguments.length );
24039	};
24040} );
24041
24042// Support: Safari <=7 - 9.1, Chrome <=37 - 49
24043// Add the top/left cssHooks using jQuery.fn.position
24044// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
24045// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
24046// getComputedStyle returns percent when specified for top/left/bottom/right;
24047// rather than make the css module depend on the offset module, just check for it here
24048jQuery.each( [ "top", "left" ], function( _i, prop ) {
24049	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
24050		function( elem, computed ) {
24051			if ( computed ) {
24052				computed = curCSS( elem, prop );
24053
24054				// If curCSS returns percentage, fallback to offset
24055				return rnumnonpx.test( computed ) ?
24056					jQuery( elem ).position()[ prop ] + "px" :
24057					computed;
24058			}
24059		}
24060	);
24061} );
24062
24063
24064// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
24065jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
24066	jQuery.each( {
24067		padding: "inner" + name,
24068		content: type,
24069		"": "outer" + name
24070	}, function( defaultExtra, funcName ) {
24071
24072		// Margin is only for outerHeight, outerWidth
24073		jQuery.fn[ funcName ] = function( margin, value ) {
24074			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
24075				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
24076
24077			return access( this, function( elem, type, value ) {
24078				var doc;
24079
24080				if ( isWindow( elem ) ) {
24081
24082					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
24083					return funcName.indexOf( "outer" ) === 0 ?
24084						elem[ "inner" + name ] :
24085						elem.document.documentElement[ "client" + name ];
24086				}
24087
24088				// Get document width or height
24089				if ( elem.nodeType === 9 ) {
24090					doc = elem.documentElement;
24091
24092					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
24093					// whichever is greatest
24094					return Math.max(
24095						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
24096						elem.body[ "offset" + name ], doc[ "offset" + name ],
24097						doc[ "client" + name ]
24098					);
24099				}
24100
24101				return value === undefined ?
24102
24103					// Get width or height on the element, requesting but not forcing parseFloat
24104					jQuery.css( elem, type, extra ) :
24105
24106					// Set width or height on the element
24107					jQuery.style( elem, type, value, extra );
24108			}, type, chainable ? margin : undefined, chainable );
24109		};
24110	} );
24111} );
24112
24113
24114jQuery.each( [
24115	"ajaxStart",
24116	"ajaxStop",
24117	"ajaxComplete",
24118	"ajaxError",
24119	"ajaxSuccess",
24120	"ajaxSend"
24121], function( _i, type ) {
24122	jQuery.fn[ type ] = function( fn ) {
24123		return this.on( type, fn );
24124	};
24125} );
24126
24127
24128
24129
24130jQuery.fn.extend( {
24131
24132	bind: function( types, data, fn ) {
24133		return this.on( types, null, data, fn );
24134	},
24135	unbind: function( types, fn ) {
24136		return this.off( types, null, fn );
24137	},
24138
24139	delegate: function( selector, types, data, fn ) {
24140		return this.on( types, selector, data, fn );
24141	},
24142	undelegate: function( selector, types, fn ) {
24143
24144		// ( namespace ) or ( selector, types [, fn] )
24145		return arguments.length === 1 ?
24146			this.off( selector, "**" ) :
24147			this.off( types, selector || "**", fn );
24148	},
24149
24150	hover: function( fnOver, fnOut ) {
24151		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
24152	}
24153} );
24154
24155jQuery.each(
24156	( "blur focus focusin focusout resize scroll click dblclick " +
24157	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
24158	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
24159	function( _i, name ) {
24160
24161		// Handle event binding
24162		jQuery.fn[ name ] = function( data, fn ) {
24163			return arguments.length > 0 ?
24164				this.on( name, null, data, fn ) :
24165				this.trigger( name );
24166		};
24167	}
24168);
24169
24170
24171
24172
24173// Support: Android <=4.0 only
24174// Make sure we trim BOM and NBSP
24175var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
24176
24177// Bind a function to a context, optionally partially applying any
24178// arguments.
24179// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
24180// However, it is not slated for removal any time soon
24181jQuery.proxy = function( fn, context ) {
24182	var tmp, args, proxy;
24183
24184	if ( typeof context === "string" ) {
24185		tmp = fn[ context ];
24186		context = fn;
24187		fn = tmp;
24188	}
24189
24190	// Quick check to determine if target is callable, in the spec
24191	// this throws a TypeError, but we will just return undefined.
24192	if ( !isFunction( fn ) ) {
24193		return undefined;
24194	}
24195
24196	// Simulated bind
24197	args = slice.call( arguments, 2 );
24198	proxy = function() {
24199		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
24200	};
24201
24202	// Set the guid of unique handler to the same of original handler, so it can be removed
24203	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
24204
24205	return proxy;
24206};
24207
24208jQuery.holdReady = function( hold ) {
24209	if ( hold ) {
24210		jQuery.readyWait++;
24211	} else {
24212		jQuery.ready( true );
24213	}
24214};
24215jQuery.isArray = Array.isArray;
24216jQuery.parseJSON = JSON.parse;
24217jQuery.nodeName = nodeName;
24218jQuery.isFunction = isFunction;
24219jQuery.isWindow = isWindow;
24220jQuery.camelCase = camelCase;
24221jQuery.type = toType;
24222
24223jQuery.now = Date.now;
24224
24225jQuery.isNumeric = function( obj ) {
24226
24227	// As of jQuery 3.0, isNumeric is limited to
24228	// strings and numbers (primitives or objects)
24229	// that can be coerced to finite numbers (gh-2662)
24230	var type = jQuery.type( obj );
24231	return ( type === "number" || type === "string" ) &&
24232
24233		// parseFloat NaNs numeric-cast false positives ("")
24234		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
24235		// subtraction forces infinities to NaN
24236		!isNaN( obj - parseFloat( obj ) );
24237};
24238
24239jQuery.trim = function( text ) {
24240	return text == null ?
24241		"" :
24242		( text + "" ).replace( rtrim, "" );
24243};
24244
24245
24246
24247// Register as a named AMD module, since jQuery can be concatenated with other
24248// files that may use define, but not via a proper concatenation script that
24249// understands anonymous AMD modules. A named AMD is safest and most robust
24250// way to register. Lowercase jquery is used because AMD module names are
24251// derived from file names, and jQuery is normally delivered in a lowercase
24252// file name. Do this after creating the global so that if an AMD module wants
24253// to call noConflict to hide this version of jQuery, it will work.
24254
24255// Note that for maximum portability, libraries that are not jQuery should
24256// declare themselves as anonymous modules, and avoid setting a global if an
24257// AMD loader is present. jQuery is a special case. For more information, see
24258// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
24259
24260if ( true ) {
24261	!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {
24262		return jQuery;
24263	}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
24264		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
24265}
24266
24267
24268
24269
24270var
24271
24272	// Map over jQuery in case of overwrite
24273	_jQuery = window.jQuery,
24274
24275	// Map over the $ in case of overwrite
24276	_$ = window.$;
24277
24278jQuery.noConflict = function( deep ) {
24279	if ( window.$ === jQuery ) {
24280		window.$ = _$;
24281	}
24282
24283	if ( deep && window.jQuery === jQuery ) {
24284		window.jQuery = _jQuery;
24285	}
24286
24287	return jQuery;
24288};
24289
24290// Expose jQuery and $ identifiers, even in AMD
24291// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
24292// and CommonJS for browser emulators (#13566)
24293if ( typeof noGlobal === "undefined" ) {
24294	window.jQuery = window.$ = jQuery;
24295}
24296
24297
24298
24299
24300return jQuery;
24301} );
24302
24303
24304/***/ }),
24305
vendor: 392 bytes, lines 24306-24318
24306/***/ "./node_modules/swiper/swiper.min.css":
24307/*!********************************************!*\
24308  !*** ./node_modules/swiper/swiper.min.css ***!
24309  \********************************************/
24310/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24311
24312"use strict";
24313__webpack_require__.r(__webpack_exports__);
24314// extracted by mini-css-extract-plugin
24315
24316
24317/***/ }),
24318
24319/***/ "./assets/child/WaveElektroWandelt/build/styles/main/main.scss":
24320/*!*********************************************************************!*\
24321  !*** ./assets/child/WaveElektroWandelt/build/styles/main/main.scss ***!
24322  \*********************************************************************/
24323/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24324
24325"use strict";
24326__webpack_require__.r(__webpack_exports__);
24327// extracted by mini-css-extract-plugin
24328
24329
24330/***/ }),
24331
vendor: 88,926 bytes, lines 24332-26959
24332/***/ "./node_modules/popper.js/dist/esm/popper.js":
24333/*!***************************************************!*\
24334  !*** ./node_modules/popper.js/dist/esm/popper.js ***!
24335  \***************************************************/
24336/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
24337
24338"use strict";
24339__webpack_require__.r(__webpack_exports__);
24340/**!
24341 * @fileOverview Kickass library to create and place poppers near their reference elements.
24342 * @version 1.16.1
24343 * @license
24344 * Copyright (c) 2016 Federico Zivolo and contributors
24345 *
24346 * Permission is hereby granted, free of charge, to any person obtaining a copy
24347 * of this software and associated documentation files (the "Software"), to deal
24348 * in the Software without restriction, including without limitation the rights
24349 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24350 * copies of the Software, and to permit persons to whom the Software is
24351 * furnished to do so, subject to the following conditions:
24352 *
24353 * The above copyright notice and this permission notice shall be included in all
24354 * copies or substantial portions of the Software.
24355 *
24356 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24357 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24358 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24359 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24360 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24361 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24362 * SOFTWARE.
24363 */
24364var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
24365
24366var timeoutDuration = function () {
24367  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
24368  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
24369    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
24370      return 1;
24371    }
24372  }
24373  return 0;
24374}();
24375
24376function microtaskDebounce(fn) {
24377  var called = false;
24378  return function () {
24379    if (called) {
24380      return;
24381    }
24382    called = true;
24383    window.Promise.resolve().then(function () {
24384      called = false;
24385      fn();
24386    });
24387  };
24388}
24389
24390function taskDebounce(fn) {
24391  var scheduled = false;
24392  return function () {
24393    if (!scheduled) {
24394      scheduled = true;
24395      setTimeout(function () {
24396        scheduled = false;
24397        fn();
24398      }, timeoutDuration);
24399    }
24400  };
24401}
24402
24403var supportsMicroTasks = isBrowser && window.Promise;
24404
24405/**
24406* Create a debounced version of a method, that's asynchronously deferred
24407* but called in the minimum time possible.
24408*
24409* @method
24410* @memberof Popper.Utils
24411* @argument {Function} fn
24412* @returns {Function}
24413*/
24414var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
24415
24416/**
24417 * Check if the given variable is a function
24418 * @method
24419 * @memberof Popper.Utils
24420 * @argument {Any} functionToCheck - variable to check
24421 * @returns {Boolean} answer to: is a function?
24422 */
24423function isFunction(functionToCheck) {
24424  var getType = {};
24425  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
24426}
24427
24428/**
24429 * Get CSS computed property of the given element
24430 * @method
24431 * @memberof Popper.Utils
24432 * @argument {Eement} element
24433 * @argument {String} property
24434 */
24435function getStyleComputedProperty(element, property) {
24436  if (element.nodeType !== 1) {
24437    return [];
24438  }
24439  // NOTE: 1 DOM access here
24440  var window = element.ownerDocument.defaultView;
24441  var css = window.getComputedStyle(element, null);
24442  return property ? css[property] : css;
24443}
24444
24445/**
24446 * Returns the parentNode or the host of the element
24447 * @method
24448 * @memberof Popper.Utils
24449 * @argument {Element} element
24450 * @returns {Element} parent
24451 */
24452function getParentNode(element) {
24453  if (element.nodeName === 'HTML') {
24454    return element;
24455  }
24456  return element.parentNode || element.host;
24457}
24458
24459/**
24460 * Returns the scrolling parent of the given element
24461 * @method
24462 * @memberof Popper.Utils
24463 * @argument {Element} element
24464 * @returns {Element} scroll parent
24465 */
24466function getScrollParent(element) {
24467  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
24468  if (!element) {
24469    return document.body;
24470  }
24471
24472  switch (element.nodeName) {
24473    case 'HTML':
24474    case 'BODY':
24475      return element.ownerDocument.body;
24476    case '#document':
24477      return element.body;
24478  }
24479
24480  // Firefox want us to check `-x` and `-y` variations as well
24481
24482  var _getStyleComputedProp = getStyleComputedProperty(element),
24483      overflow = _getStyleComputedProp.overflow,
24484      overflowX = _getStyleComputedProp.overflowX,
24485      overflowY = _getStyleComputedProp.overflowY;
24486
24487  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
24488    return element;
24489  }
24490
24491  return getScrollParent(getParentNode(element));
24492}
24493
24494/**
24495 * Returns the reference node of the reference object, or the reference object itself.
24496 * @method
24497 * @memberof Popper.Utils
24498 * @param {Element|Object} reference - the reference element (the popper will be relative to this)
24499 * @returns {Element} parent
24500 */
24501function getReferenceNode(reference) {
24502  return reference && reference.referenceNode ? reference.referenceNode : reference;
24503}
24504
24505var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
24506var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
24507
24508/**
24509 * Determines if the browser is Internet Explorer
24510 * @method
24511 * @memberof Popper.Utils
24512 * @param {Number} version to check
24513 * @returns {Boolean} isIE
24514 */
24515function isIE(version) {
24516  if (version === 11) {
24517    return isIE11;
24518  }
24519  if (version === 10) {
24520    return isIE10;
24521  }
24522  return isIE11 || isIE10;
24523}
24524
24525/**
24526 * Returns the offset parent of the given element
24527 * @method
24528 * @memberof Popper.Utils
24529 * @argument {Element} element
24530 * @returns {Element} offset parent
24531 */
24532function getOffsetParent(element) {
24533  if (!element) {
24534    return document.documentElement;
24535  }
24536
24537  var noOffsetParent = isIE(10) ? document.body : null;
24538
24539  // NOTE: 1 DOM access here
24540  var offsetParent = element.offsetParent || null;
24541  // Skip hidden elements which don't have an offsetParent
24542  while (offsetParent === noOffsetParent && element.nextElementSibling) {
24543    offsetParent = (element = element.nextElementSibling).offsetParent;
24544  }
24545
24546  var nodeName = offsetParent && offsetParent.nodeName;
24547
24548  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
24549    return element ? element.ownerDocument.documentElement : document.documentElement;
24550  }
24551
24552  // .offsetParent will return the closest TH, TD or TABLE in case
24553  // no offsetParent is present, I hate this job...
24554  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
24555    return getOffsetParent(offsetParent);
24556  }
24557
24558  return offsetParent;
24559}
24560
24561function isOffsetContainer(element) {
24562  var nodeName = element.nodeName;
24563
24564  if (nodeName === 'BODY') {
24565    return false;
24566  }
24567  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
24568}
24569
24570/**
24571 * Finds the root node (document, shadowDOM root) of the given element
24572 * @method
24573 * @memberof Popper.Utils
24574 * @argument {Element} node
24575 * @returns {Element} root node
24576 */
24577function getRoot(node) {
24578  if (node.parentNode !== null) {
24579    return getRoot(node.parentNode);
24580  }
24581
24582  return node;
24583}
24584
24585/**
24586 * Finds the offset parent common to the two provided nodes
24587 * @method
24588 * @memberof Popper.Utils
24589 * @argument {Element} element1
24590 * @argument {Element} element2
24591 * @returns {Element} common offset parent
24592 */
24593function findCommonOffsetParent(element1, element2) {
24594  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
24595  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
24596    return document.documentElement;
24597  }
24598
24599  // Here we make sure to give as "start" the element that comes first in the DOM
24600  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
24601  var start = order ? element1 : element2;
24602  var end = order ? element2 : element1;
24603
24604  // Get common ancestor container
24605  var range = document.createRange();
24606  range.setStart(start, 0);
24607  range.setEnd(end, 0);
24608  var commonAncestorContainer = range.commonAncestorContainer;
24609
24610  // Both nodes are inside #document
24611
24612  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
24613    if (isOffsetContainer(commonAncestorContainer)) {
24614      return commonAncestorContainer;
24615    }
24616
24617    return getOffsetParent(commonAncestorContainer);
24618  }
24619
24620  // one of the nodes is inside shadowDOM, find which one
24621  var element1root = getRoot(element1);
24622  if (element1root.host) {
24623    return findCommonOffsetParent(element1root.host, element2);
24624  } else {
24625    return findCommonOffsetParent(element1, getRoot(element2).host);
24626  }
24627}
24628
24629/**
24630 * Gets the scroll value of the given element in the given side (top and left)
24631 * @method
24632 * @memberof Popper.Utils
24633 * @argument {Element} element
24634 * @argument {String} side `top` or `left`
24635 * @returns {number} amount of scrolled pixels
24636 */
24637function getScroll(element) {
24638  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
24639
24640  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
24641  var nodeName = element.nodeName;
24642
24643  if (nodeName === 'BODY' || nodeName === 'HTML') {
24644    var html = element.ownerDocument.documentElement;
24645    var scrollingElement = element.ownerDocument.scrollingElement || html;
24646    return scrollingElement[upperSide];
24647  }
24648
24649  return element[upperSide];
24650}
24651
24652/*
24653 * Sum or subtract the element scroll values (left and top) from a given rect object
24654 * @method
24655 * @memberof Popper.Utils
24656 * @param {Object} rect - Rect object you want to change
24657 * @param {HTMLElement} element - The element from the function reads the scroll values
24658 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
24659 * @return {Object} rect - The modifier rect object
24660 */
24661function includeScroll(rect, element) {
24662  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
24663
24664  var scrollTop = getScroll(element, 'top');
24665  var scrollLeft = getScroll(element, 'left');
24666  var modifier = subtract ? -1 : 1;
24667  rect.top += scrollTop * modifier;
24668  rect.bottom += scrollTop * modifier;
24669  rect.left += scrollLeft * modifier;
24670  rect.right += scrollLeft * modifier;
24671  return rect;
24672}
24673
24674/*
24675 * Helper to detect borders of a given element
24676 * @method
24677 * @memberof Popper.Utils
24678 * @param {CSSStyleDeclaration} styles
24679 * Result of `getStyleComputedProperty` on the given element
24680 * @param {String} axis - `x` or `y`
24681 * @return {number} borders - The borders size of the given axis
24682 */
24683
24684function getBordersSize(styles, axis) {
24685  var sideA = axis === 'x' ? 'Left' : 'Top';
24686  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
24687
24688  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
24689}
24690
24691function getSize(axis, body, html, computedStyle) {
24692  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
24693}
24694
24695function getWindowSizes(document) {
24696  var body = document.body;
24697  var html = document.documentElement;
24698  var computedStyle = isIE(10) && getComputedStyle(html);
24699
24700  return {
24701    height: getSize('Height', body, html, computedStyle),
24702    width: getSize('Width', body, html, computedStyle)
24703  };
24704}
24705
24706var classCallCheck = function (instance, Constructor) {
24707  if (!(instance instanceof Constructor)) {
24708    throw new TypeError("Cannot call a class as a function");
24709  }
24710};
24711
24712var createClass = function () {
24713  function defineProperties(target, props) {
24714    for (var i = 0; i < props.length; i++) {
24715      var descriptor = props[i];
24716      descriptor.enumerable = descriptor.enumerable || false;
24717      descriptor.configurable = true;
24718      if ("value" in descriptor) descriptor.writable = true;
24719      Object.defineProperty(target, descriptor.key, descriptor);
24720    }
24721  }
24722
24723  return function (Constructor, protoProps, staticProps) {
24724    if (protoProps) defineProperties(Constructor.prototype, protoProps);
24725    if (staticProps) defineProperties(Constructor, staticProps);
24726    return Constructor;
24727  };
24728}();
24729
24730
24731
24732
24733
24734var defineProperty = function (obj, key, value) {
24735  if (key in obj) {
24736    Object.defineProperty(obj, key, {
24737      value: value,
24738      enumerable: true,
24739      configurable: true,
24740      writable: true
24741    });
24742  } else {
24743    obj[key] = value;
24744  }
24745
24746  return obj;
24747};
24748
24749var _extends = Object.assign || function (target) {
24750  for (var i = 1; i < arguments.length; i++) {
24751    var source = arguments[i];
24752
24753    for (var key in source) {
24754      if (Object.prototype.hasOwnProperty.call(source, key)) {
24755        target[key] = source[key];
24756      }
24757    }
24758  }
24759
24760  return target;
24761};
24762
24763/**
24764 * Given element offsets, generate an output similar to getBoundingClientRect
24765 * @method
24766 * @memberof Popper.Utils
24767 * @argument {Object} offsets
24768 * @returns {Object} ClientRect like output
24769 */
24770function getClientRect(offsets) {
24771  return _extends({}, offsets, {
24772    right: offsets.left + offsets.width,
24773    bottom: offsets.top + offsets.height
24774  });
24775}
24776
24777/**
24778 * Get bounding client rect of given element
24779 * @method
24780 * @memberof Popper.Utils
24781 * @param {HTMLElement} element
24782 * @return {Object} client rect
24783 */
24784function getBoundingClientRect(element) {
24785  var rect = {};
24786
24787  // IE10 10 FIX: Please, don't ask, the element isn't
24788  // considered in DOM in some circumstances...
24789  // This isn't reproducible in IE10 compatibility mode of IE11
24790  try {
24791    if (isIE(10)) {
24792      rect = element.getBoundingClientRect();
24793      var scrollTop = getScroll(element, 'top');
24794      var scrollLeft = getScroll(element, 'left');
24795      rect.top += scrollTop;
24796      rect.left += scrollLeft;
24797      rect.bottom += scrollTop;
24798      rect.right += scrollLeft;
24799    } else {
24800      rect = element.getBoundingClientRect();
24801    }
24802  } catch (e) {}
24803
24804  var result = {
24805    left: rect.left,
24806    top: rect.top,
24807    width: rect.right - rect.left,
24808    height: rect.bottom - rect.top
24809  };
24810
24811  // subtract scrollbar size from sizes
24812  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
24813  var width = sizes.width || element.clientWidth || result.width;
24814  var height = sizes.height || element.clientHeight || result.height;
24815
24816  var horizScrollbar = element.offsetWidth - width;
24817  var vertScrollbar = element.offsetHeight - height;
24818
24819  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
24820  // we make this check conditional for performance reasons
24821  if (horizScrollbar || vertScrollbar) {
24822    var styles = getStyleComputedProperty(element);
24823    horizScrollbar -= getBordersSize(styles, 'x');
24824    vertScrollbar -= getBordersSize(styles, 'y');
24825
24826    result.width -= horizScrollbar;
24827    result.height -= vertScrollbar;
24828  }
24829
24830  return getClientRect(result);
24831}
24832
24833function getOffsetRectRelativeToArbitraryNode(children, parent) {
24834  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
24835
24836  var isIE10 = isIE(10);
24837  var isHTML = parent.nodeName === 'HTML';
24838  var childrenRect = getBoundingClientRect(children);
24839  var parentRect = getBoundingClientRect(parent);
24840  var scrollParent = getScrollParent(children);
24841
24842  var styles = getStyleComputedProperty(parent);
24843  var borderTopWidth = parseFloat(styles.borderTopWidth);
24844  var borderLeftWidth = parseFloat(styles.borderLeftWidth);
24845
24846  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
24847  if (fixedPosition && isHTML) {
24848    parentRect.top = Math.max(parentRect.top, 0);
24849    parentRect.left = Math.max(parentRect.left, 0);
24850  }
24851  var offsets = getClientRect({
24852    top: childrenRect.top - parentRect.top - borderTopWidth,
24853    left: childrenRect.left - parentRect.left - borderLeftWidth,
24854    width: childrenRect.width,
24855    height: childrenRect.height
24856  });
24857  offsets.marginTop = 0;
24858  offsets.marginLeft = 0;
24859
24860  // Subtract margins of documentElement in case it's being used as parent
24861  // we do this only on HTML because it's the only element that behaves
24862  // differently when margins are applied to it. The margins are included in
24863  // the box of the documentElement, in the other cases not.
24864  if (!isIE10 && isHTML) {
24865    var marginTop = parseFloat(styles.marginTop);
24866    var marginLeft = parseFloat(styles.marginLeft);
24867
24868    offsets.top -= borderTopWidth - marginTop;
24869    offsets.bottom -= borderTopWidth - marginTop;
24870    offsets.left -= borderLeftWidth - marginLeft;
24871    offsets.right -= borderLeftWidth - marginLeft;
24872
24873    // Attach marginTop and marginLeft because in some circumstances we may need them
24874    offsets.marginTop = marginTop;
24875    offsets.marginLeft = marginLeft;
24876  }
24877
24878  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
24879    offsets = includeScroll(offsets, parent);
24880  }
24881
24882  return offsets;
24883}
24884
24885function getViewportOffsetRectRelativeToArtbitraryNode(element) {
24886  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
24887
24888  var html = element.ownerDocument.documentElement;
24889  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
24890  var width = Math.max(html.clientWidth, window.innerWidth || 0);
24891  var height = Math.max(html.clientHeight, window.innerHeight || 0);
24892
24893  var scrollTop = !excludeScroll ? getScroll(html) : 0;
24894  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
24895
24896  var offset = {
24897    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
24898    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
24899    width: width,
24900    height: height
24901  };
24902
24903  return getClientRect(offset);
24904}
24905
24906/**
24907 * Check if the given element is fixed or is inside a fixed parent
24908 * @method
24909 * @memberof Popper.Utils
24910 * @argument {Element} element
24911 * @argument {Element} customContainer
24912 * @returns {Boolean} answer to "isFixed?"
24913 */
24914function isFixed(element) {
24915  var nodeName = element.nodeName;
24916  if (nodeName === 'BODY' || nodeName === 'HTML') {
24917    return false;
24918  }
24919  if (getStyleComputedProperty(element, 'position') === 'fixed') {
24920    return true;
24921  }
24922  var parentNode = getParentNode(element);
24923  if (!parentNode) {
24924    return false;
24925  }
24926  return isFixed(parentNode);
24927}
24928
24929/**
24930 * Finds the first parent of an element that has a transformed property defined
24931 * @method
24932 * @memberof Popper.Utils
24933 * @argument {Element} element
24934 * @returns {Element} first transformed parent or documentElement
24935 */
24936
24937function getFixedPositionOffsetParent(element) {
24938  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
24939  if (!element || !element.parentElement || isIE()) {
24940    return document.documentElement;
24941  }
24942  var el = element.parentElement;
24943  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
24944    el = el.parentElement;
24945  }
24946  return el || document.documentElement;
24947}
24948
24949/**
24950 * Computed the boundaries limits and return them
24951 * @method
24952 * @memberof Popper.Utils
24953 * @param {HTMLElement} popper
24954 * @param {HTMLElement} reference
24955 * @param {number} padding
24956 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
24957 * @param {Boolean} fixedPosition - Is in fixed position mode
24958 * @returns {Object} Coordinates of the boundaries
24959 */
24960function getBoundaries(popper, reference, padding, boundariesElement) {
24961  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
24962
24963  // NOTE: 1 DOM access here
24964
24965  var boundaries = { top: 0, left: 0 };
24966  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
24967
24968  // Handle viewport case
24969  if (boundariesElement === 'viewport') {
24970    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
24971  } else {
24972    // Handle other cases based on DOM element used as boundaries
24973    var boundariesNode = void 0;
24974    if (boundariesElement === 'scrollParent') {
24975      boundariesNode = getScrollParent(getParentNode(reference));
24976      if (boundariesNode.nodeName === 'BODY') {
24977        boundariesNode = popper.ownerDocument.documentElement;
24978      }
24979    } else if (boundariesElement === 'window') {
24980      boundariesNode = popper.ownerDocument.documentElement;
24981    } else {
24982      boundariesNode = boundariesElement;
24983    }
24984
24985    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
24986
24987    // In case of HTML, we need a different computation
24988    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
24989      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
24990          height = _getWindowSizes.height,
24991          width = _getWindowSizes.width;
24992
24993      boundaries.top += offsets.top - offsets.marginTop;
24994      boundaries.bottom = height + offsets.top;
24995      boundaries.left += offsets.left - offsets.marginLeft;
24996      boundaries.right = width + offsets.left;
24997    } else {
24998      // for all the other DOM elements, this one is good
24999      boundaries = offsets;
25000    }
25001  }
25002
25003  // Add paddings
25004  padding = padding || 0;
25005  var isPaddingNumber = typeof padding === 'number';
25006  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
25007  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
25008  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
25009  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
25010
25011  return boundaries;
25012}
25013
25014function getArea(_ref) {
25015  var width = _ref.width,
25016      height = _ref.height;
25017
25018  return width * height;
25019}
25020
25021/**
25022 * Utility used to transform the `auto` placement to the placement with more
25023 * available space.
25024 * @method
25025 * @memberof Popper.Utils
25026 * @argument {Object} data - The data object generated by update method
25027 * @argument {Object} options - Modifiers configuration and options
25028 * @returns {Object} The data object, properly modified
25029 */
25030function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
25031  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
25032
25033  if (placement.indexOf('auto') === -1) {
25034    return placement;
25035  }
25036
25037  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
25038
25039  var rects = {
25040    top: {
25041      width: boundaries.width,
25042      height: refRect.top - boundaries.top
25043    },
25044    right: {
25045      width: boundaries.right - refRect.right,
25046      height: boundaries.height
25047    },
25048    bottom: {
25049      width: boundaries.width,
25050      height: boundaries.bottom - refRect.bottom
25051    },
25052    left: {
25053      width: refRect.left - boundaries.left,
25054      height: boundaries.height
25055    }
25056  };
25057
25058  var sortedAreas = Object.keys(rects).map(function (key) {
25059    return _extends({
25060      key: key
25061    }, rects[key], {
25062      area: getArea(rects[key])
25063    });
25064  }).sort(function (a, b) {
25065    return b.area - a.area;
25066  });
25067
25068  var filteredAreas = sortedAreas.filter(function (_ref2) {
25069    var width = _ref2.width,
25070        height = _ref2.height;
25071    return width >= popper.clientWidth && height >= popper.clientHeight;
25072  });
25073
25074  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
25075
25076  var variation = placement.split('-')[1];
25077
25078  return computedPlacement + (variation ? '-' + variation : '');
25079}
25080
25081/**
25082 * Get offsets to the reference element
25083 * @method
25084 * @memberof Popper.Utils
25085 * @param {Object} state
25086 * @param {Element} popper - the popper element
25087 * @param {Element} reference - the reference element (the popper will be relative to this)
25088 * @param {Element} fixedPosition - is in fixed position mode
25089 * @returns {Object} An object containing the offsets which will be applied to the popper
25090 */
25091function getReferenceOffsets(state, popper, reference) {
25092  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
25093
25094  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
25095  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
25096}
25097
25098/**
25099 * Get the outer sizes of the given element (offset size + margins)
25100 * @method
25101 * @memberof Popper.Utils
25102 * @argument {Element} element
25103 * @returns {Object} object containing width and height properties
25104 */
25105function getOuterSizes(element) {
25106  var window = element.ownerDocument.defaultView;
25107  var styles = window.getComputedStyle(element);
25108  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
25109  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
25110  var result = {
25111    width: element.offsetWidth + y,
25112    height: element.offsetHeight + x
25113  };
25114  return result;
25115}
25116
25117/**
25118 * Get the opposite placement of the given one
25119 * @method
25120 * @memberof Popper.Utils
25121 * @argument {String} placement
25122 * @returns {String} flipped placement
25123 */
25124function getOppositePlacement(placement) {
25125  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
25126  return placement.replace(/left|right|bottom|top/g, function (matched) {
25127    return hash[matched];
25128  });
25129}
25130
25131/**
25132 * Get offsets to the popper
25133 * @method
25134 * @memberof Popper.Utils
25135 * @param {Object} position - CSS position the Popper will get applied
25136 * @param {HTMLElement} popper - the popper element
25137 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
25138 * @param {String} placement - one of the valid placement options
25139 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
25140 */
25141function getPopperOffsets(popper, referenceOffsets, placement) {
25142  placement = placement.split('-')[0];
25143
25144  // Get popper node sizes
25145  var popperRect = getOuterSizes(popper);
25146
25147  // Add position, width and height to our offsets object
25148  var popperOffsets = {
25149    width: popperRect.width,
25150    height: popperRect.height
25151  };
25152
25153  // depending by the popper placement we have to compute its offsets slightly differently
25154  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
25155  var mainSide = isHoriz ? 'top' : 'left';
25156  var secondarySide = isHoriz ? 'left' : 'top';
25157  var measurement = isHoriz ? 'height' : 'width';
25158  var secondaryMeasurement = !isHoriz ? 'height' : 'width';
25159
25160  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
25161  if (placement === secondarySide) {
25162    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
25163  } else {
25164    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
25165  }
25166
25167  return popperOffsets;
25168}
25169
25170/**
25171 * Mimics the `find` method of Array
25172 * @method
25173 * @memberof Popper.Utils
25174 * @argument {Array} arr
25175 * @argument prop
25176 * @argument value
25177 * @returns index or -1
25178 */
25179function find(arr, check) {
25180  // use native find if supported
25181  if (Array.prototype.find) {
25182    return arr.find(check);
25183  }
25184
25185  // use `filter` to obtain the same behavior of `find`
25186  return arr.filter(check)[0];
25187}
25188
25189/**
25190 * Return the index of the matching object
25191 * @method
25192 * @memberof Popper.Utils
25193 * @argument {Array} arr
25194 * @argument prop
25195 * @argument value
25196 * @returns index or -1
25197 */
25198function findIndex(arr, prop, value) {
25199  // use native findIndex if supported
25200  if (Array.prototype.findIndex) {
25201    return arr.findIndex(function (cur) {
25202      return cur[prop] === value;
25203    });
25204  }
25205
25206  // use `find` + `indexOf` if `findIndex` isn't supported
25207  var match = find(arr, function (obj) {
25208    return obj[prop] === value;
25209  });
25210  return arr.indexOf(match);
25211}
25212
25213/**
25214 * Loop trough the list of modifiers and run them in order,
25215 * each of them will then edit the data object.
25216 * @method
25217 * @memberof Popper.Utils
25218 * @param {dataObject} data
25219 * @param {Array} modifiers
25220 * @param {String} ends - Optional modifier name used as stopper
25221 * @returns {dataObject}
25222 */
25223function runModifiers(modifiers, data, ends) {
25224  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
25225
25226  modifiersToRun.forEach(function (modifier) {
25227    if (modifier['function']) {
25228      // eslint-disable-line dot-notation
25229      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
25230    }
25231    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
25232    if (modifier.enabled && isFunction(fn)) {
25233      // Add properties to offsets to make them a complete clientRect object
25234      // we do this before each modifier to make sure the previous one doesn't
25235      // mess with these values
25236      data.offsets.popper = getClientRect(data.offsets.popper);
25237      data.offsets.reference = getClientRect(data.offsets.reference);
25238
25239      data = fn(data, modifier);
25240    }
25241  });
25242
25243  return data;
25244}
25245
25246/**
25247 * Updates the position of the popper, computing the new offsets and applying
25248 * the new style.<br />
25249 * Prefer `scheduleUpdate` over `update` because of performance reasons.
25250 * @method
25251 * @memberof Popper
25252 */
25253function update() {
25254  // if popper is destroyed, don't perform any further update
25255  if (this.state.isDestroyed) {
25256    return;
25257  }
25258
25259  var data = {
25260    instance: this,
25261    styles: {},
25262    arrowStyles: {},
25263    attributes: {},
25264    flipped: false,
25265    offsets: {}
25266  };
25267
25268  // compute reference element offsets
25269  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
25270
25271  // compute auto placement, store placement inside the data object,
25272  // modifiers will be able to edit `placement` if needed
25273  // and refer to originalPlacement to know the original value
25274  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
25275
25276  // store the computed placement inside `originalPlacement`
25277  data.originalPlacement = data.placement;
25278
25279  data.positionFixed = this.options.positionFixed;
25280
25281  // compute the popper offsets
25282  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
25283
25284  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
25285
25286  // run the modifiers
25287  data = runModifiers(this.modifiers, data);
25288
25289  // the first `update` will call `onCreate` callback
25290  // the other ones will call `onUpdate` callback
25291  if (!this.state.isCreated) {
25292    this.state.isCreated = true;
25293    this.options.onCreate(data);
25294  } else {
25295    this.options.onUpdate(data);
25296  }
25297}
25298
25299/**
25300 * Helper used to know if the given modifier is enabled.
25301 * @method
25302 * @memberof Popper.Utils
25303 * @returns {Boolean}
25304 */
25305function isModifierEnabled(modifiers, modifierName) {
25306  return modifiers.some(function (_ref) {
25307    var name = _ref.name,
25308        enabled = _ref.enabled;
25309    return enabled && name === modifierName;
25310  });
25311}
25312
25313/**
25314 * Get the prefixed supported property name
25315 * @method
25316 * @memberof Popper.Utils
25317 * @argument {String} property (camelCase)
25318 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
25319 */
25320function getSupportedPropertyName(property) {
25321  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
25322  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
25323
25324  for (var i = 0; i < prefixes.length; i++) {
25325    var prefix = prefixes[i];
25326    var toCheck = prefix ? '' + prefix + upperProp : property;
25327    if (typeof document.body.style[toCheck] !== 'undefined') {
25328      return toCheck;
25329    }
25330  }
25331  return null;
25332}
25333
25334/**
25335 * Destroys the popper.
25336 * @method
25337 * @memberof Popper
25338 */
25339function destroy() {
25340  this.state.isDestroyed = true;
25341
25342  // touch DOM only if `applyStyle` modifier is enabled
25343  if (isModifierEnabled(this.modifiers, 'applyStyle')) {
25344    this.popper.removeAttribute('x-placement');
25345    this.popper.style.position = '';
25346    this.popper.style.top = '';
25347    this.popper.style.left = '';
25348    this.popper.style.right = '';
25349    this.popper.style.bottom = '';
25350    this.popper.style.willChange = '';
25351    this.popper.style[getSupportedPropertyName('transform')] = '';
25352  }
25353
25354  this.disableEventListeners();
25355
25356  // remove the popper if user explicitly asked for the deletion on destroy
25357  // do not use `remove` because IE11 doesn't support it
25358  if (this.options.removeOnDestroy) {
25359    this.popper.parentNode.removeChild(this.popper);
25360  }
25361  return this;
25362}
25363
25364/**
25365 * Get the window associated with the element
25366 * @argument {Element} element
25367 * @returns {Window}
25368 */
25369function getWindow(element) {
25370  var ownerDocument = element.ownerDocument;
25371  return ownerDocument ? ownerDocument.defaultView : window;
25372}
25373
25374function attachToScrollParents(scrollParent, event, callback, scrollParents) {
25375  var isBody = scrollParent.nodeName === 'BODY';
25376  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
25377  target.addEventListener(event, callback, { passive: true });
25378
25379  if (!isBody) {
25380    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
25381  }
25382  scrollParents.push(target);
25383}
25384
25385/**
25386 * Setup needed event listeners used to update the popper position
25387 * @method
25388 * @memberof Popper.Utils
25389 * @private
25390 */
25391function setupEventListeners(reference, options, state, updateBound) {
25392  // Resize event listener on window
25393  state.updateBound = updateBound;
25394  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
25395
25396  // Scroll event listener on scroll parents
25397  var scrollElement = getScrollParent(reference);
25398  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
25399  state.scrollElement = scrollElement;
25400  state.eventsEnabled = true;
25401
25402  return state;
25403}
25404
25405/**
25406 * It will add resize/scroll events and start recalculating
25407 * position of the popper element when they are triggered.
25408 * @method
25409 * @memberof Popper
25410 */
25411function enableEventListeners() {
25412  if (!this.state.eventsEnabled) {
25413    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
25414  }
25415}
25416
25417/**
25418 * Remove event listeners used to update the popper position
25419 * @method
25420 * @memberof Popper.Utils
25421 * @private
25422 */
25423function removeEventListeners(reference, state) {
25424  // Remove resize event listener on window
25425  getWindow(reference).removeEventListener('resize', state.updateBound);
25426
25427  // Remove scroll event listener on scroll parents
25428  state.scrollParents.forEach(function (target) {
25429    target.removeEventListener('scroll', state.updateBound);
25430  });
25431
25432  // Reset state
25433  state.updateBound = null;
25434  state.scrollParents = [];
25435  state.scrollElement = null;
25436  state.eventsEnabled = false;
25437  return state;
25438}
25439
25440/**
25441 * It will remove resize/scroll events and won't recalculate popper position
25442 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
25443 * unless you call `update` method manually.
25444 * @method
25445 * @memberof Popper
25446 */
25447function disableEventListeners() {
25448  if (this.state.eventsEnabled) {
25449    cancelAnimationFrame(this.scheduleUpdate);
25450    this.state = removeEventListeners(this.reference, this.state);
25451  }
25452}
25453
25454/**
25455 * Tells if a given input is a number
25456 * @method
25457 * @memberof Popper.Utils
25458 * @param {*} input to check
25459 * @return {Boolean}
25460 */
25461function isNumeric(n) {
25462  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
25463}
25464
25465/**
25466 * Set the style to the given popper
25467 * @method
25468 * @memberof Popper.Utils
25469 * @argument {Element} element - Element to apply the style to
25470 * @argument {Object} styles
25471 * Object with a list of properties and values which will be applied to the element
25472 */
25473function setStyles(element, styles) {
25474  Object.keys(styles).forEach(function (prop) {
25475    var unit = '';
25476    // add unit if the value is numeric and is one of the following
25477    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
25478      unit = 'px';
25479    }
25480    element.style[prop] = styles[prop] + unit;
25481  });
25482}
25483
25484/**
25485 * Set the attributes to the given popper
25486 * @method
25487 * @memberof Popper.Utils
25488 * @argument {Element} element - Element to apply the attributes to
25489 * @argument {Object} styles
25490 * Object with a list of properties and values which will be applied to the element
25491 */
25492function setAttributes(element, attributes) {
25493  Object.keys(attributes).forEach(function (prop) {
25494    var value = attributes[prop];
25495    if (value !== false) {
25496      element.setAttribute(prop, attributes[prop]);
25497    } else {
25498      element.removeAttribute(prop);
25499    }
25500  });
25501}
25502
25503/**
25504 * @function
25505 * @memberof Modifiers
25506 * @argument {Object} data - The data object generated by `update` method
25507 * @argument {Object} data.styles - List of style properties - values to apply to popper element
25508 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
25509 * @argument {Object} options - Modifiers configuration and options
25510 * @returns {Object} The same data object
25511 */
25512function applyStyle(data) {
25513  // any property present in `data.styles` will be applied to the popper,
25514  // in this way we can make the 3rd party modifiers add custom styles to it
25515  // Be aware, modifiers could override the properties defined in the previous
25516  // lines of this modifier!
25517  setStyles(data.instance.popper, data.styles);
25518
25519  // any property present in `data.attributes` will be applied to the popper,
25520  // they will be set as HTML attributes of the element
25521  setAttributes(data.instance.popper, data.attributes);
25522
25523  // if arrowElement is defined and arrowStyles has some properties
25524  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
25525    setStyles(data.arrowElement, data.arrowStyles);
25526  }
25527
25528  return data;
25529}
25530
25531/**
25532 * Set the x-placement attribute before everything else because it could be used
25533 * to add margins to the popper margins needs to be calculated to get the
25534 * correct popper offsets.
25535 * @method
25536 * @memberof Popper.modifiers
25537 * @param {HTMLElement} reference - The reference element used to position the popper
25538 * @param {HTMLElement} popper - The HTML element used as popper
25539 * @param {Object} options - Popper.js options
25540 */
25541function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
25542  // compute reference element offsets
25543  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
25544
25545  // compute auto placement, store placement inside the data object,
25546  // modifiers will be able to edit `placement` if needed
25547  // and refer to originalPlacement to know the original value
25548  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
25549
25550  popper.setAttribute('x-placement', placement);
25551
25552  // Apply `position` to popper before anything else because
25553  // without the position applied we can't guarantee correct computations
25554  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
25555
25556  return options;
25557}
25558
25559/**
25560 * @function
25561 * @memberof Popper.Utils
25562 * @argument {Object} data - The data object generated by `update` method
25563 * @argument {Boolean} shouldRound - If the offsets should be rounded at all
25564 * @returns {Object} The popper's position offsets rounded
25565 *
25566 * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
25567 * good as it can be within reason.
25568 * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
25569 *
25570 * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
25571 * as well on High DPI screens).
25572 *
25573 * Firefox prefers no rounding for positioning and does not have blurriness on
25574 * high DPI screens.
25575 *
25576 * Only horizontal placement and left/right values need to be considered.
25577 */
25578function getRoundedOffsets(data, shouldRound) {
25579  var _data$offsets = data.offsets,
25580      popper = _data$offsets.popper,
25581      reference = _data$offsets.reference;
25582  var round = Math.round,
25583      floor = Math.floor;
25584
25585  var noRound = function noRound(v) {
25586    return v;
25587  };
25588
25589  var referenceWidth = round(reference.width);
25590  var popperWidth = round(popper.width);
25591
25592  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
25593  var isVariation = data.placement.indexOf('-') !== -1;
25594  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
25595  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
25596
25597  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
25598  var verticalToInteger = !shouldRound ? noRound : round;
25599
25600  return {
25601    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
25602    top: verticalToInteger(popper.top),
25603    bottom: verticalToInteger(popper.bottom),
25604    right: horizontalToInteger(popper.right)
25605  };
25606}
25607
25608var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
25609
25610/**
25611 * @function
25612 * @memberof Modifiers
25613 * @argument {Object} data - The data object generated by `update` method
25614 * @argument {Object} options - Modifiers configuration and options
25615 * @returns {Object} The data object, properly modified
25616 */
25617function computeStyle(data, options) {
25618  var x = options.x,
25619      y = options.y;
25620  var popper = data.offsets.popper;
25621
25622  // Remove this legacy support in Popper.js v2
25623
25624  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
25625    return modifier.name === 'applyStyle';
25626  }).gpuAcceleration;
25627  if (legacyGpuAccelerationOption !== undefined) {
25628    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
25629  }
25630  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
25631
25632  var offsetParent = getOffsetParent(data.instance.popper);
25633  var offsetParentRect = getBoundingClientRect(offsetParent);
25634
25635  // Styles
25636  var styles = {
25637    position: popper.position
25638  };
25639
25640  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
25641
25642  var sideA = x === 'bottom' ? 'top' : 'bottom';
25643  var sideB = y === 'right' ? 'left' : 'right';
25644
25645  // if gpuAcceleration is set to `true` and transform is supported,
25646  //  we use `translate3d` to apply the position to the popper we
25647  // automatically use the supported prefixed version if needed
25648  var prefixedProperty = getSupportedPropertyName('transform');
25649
25650  // now, let's make a step back and look at this code closely (wtf?)
25651  // If the content of the popper grows once it's been positioned, it
25652  // may happen that the popper gets misplaced because of the new content
25653  // overflowing its reference element
25654  // To avoid this problem, we provide two options (x and y), which allow
25655  // the consumer to define the offset origin.
25656  // If we position a popper on top of a reference element, we can set
25657  // `x` to `top` to make the popper grow towards its top instead of
25658  // its bottom.
25659  var left = void 0,
25660      top = void 0;
25661  if (sideA === 'bottom') {
25662    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
25663    // and not the bottom of the html element
25664    if (offsetParent.nodeName === 'HTML') {
25665      top = -offsetParent.clientHeight + offsets.bottom;
25666    } else {
25667      top = -offsetParentRect.height + offsets.bottom;
25668    }
25669  } else {
25670    top = offsets.top;
25671  }
25672  if (sideB === 'right') {
25673    if (offsetParent.nodeName === 'HTML') {
25674      left = -offsetParent.clientWidth + offsets.right;
25675    } else {
25676      left = -offsetParentRect.width + offsets.right;
25677    }
25678  } else {
25679    left = offsets.left;
25680  }
25681  if (gpuAcceleration && prefixedProperty) {
25682    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
25683    styles[sideA] = 0;
25684    styles[sideB] = 0;
25685    styles.willChange = 'transform';
25686  } else {
25687    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
25688    var invertTop = sideA === 'bottom' ? -1 : 1;
25689    var invertLeft = sideB === 'right' ? -1 : 1;
25690    styles[sideA] = top * invertTop;
25691    styles[sideB] = left * invertLeft;
25692    styles.willChange = sideA + ', ' + sideB;
25693  }
25694
25695  // Attributes
25696  var attributes = {
25697    'x-placement': data.placement
25698  };
25699
25700  // Update `data` attributes, styles and arrowStyles
25701  data.attributes = _extends({}, attributes, data.attributes);
25702  data.styles = _extends({}, styles, data.styles);
25703  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
25704
25705  return data;
25706}
25707
25708/**
25709 * Helper used to know if the given modifier depends from another one.<br />
25710 * It checks if the needed modifier is listed and enabled.
25711 * @method
25712 * @memberof Popper.Utils
25713 * @param {Array} modifiers - list of modifiers
25714 * @param {String} requestingName - name of requesting modifier
25715 * @param {String} requestedName - name of requested modifier
25716 * @returns {Boolean}
25717 */
25718function isModifierRequired(modifiers, requestingName, requestedName) {
25719  var requesting = find(modifiers, function (_ref) {
25720    var name = _ref.name;
25721    return name === requestingName;
25722  });
25723
25724  var isRequired = !!requesting && modifiers.some(function (modifier) {
25725    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
25726  });
25727
25728  if (!isRequired) {
25729    var _requesting = '`' + requestingName + '`';
25730    var requested = '`' + requestedName + '`';
25731    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
25732  }
25733  return isRequired;
25734}
25735
25736/**
25737 * @function
25738 * @memberof Modifiers
25739 * @argument {Object} data - The data object generated by update method
25740 * @argument {Object} options - Modifiers configuration and options
25741 * @returns {Object} The data object, properly modified
25742 */
25743function arrow(data, options) {
25744  var _data$offsets$arrow;
25745
25746  // arrow depends on keepTogether in order to work
25747  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
25748    return data;
25749  }
25750
25751  var arrowElement = options.element;
25752
25753  // if arrowElement is a string, suppose it's a CSS selector
25754  if (typeof arrowElement === 'string') {
25755    arrowElement = data.instance.popper.querySelector(arrowElement);
25756
25757    // if arrowElement is not found, don't run the modifier
25758    if (!arrowElement) {
25759      return data;
25760    }
25761  } else {
25762    // if the arrowElement isn't a query selector we must check that the
25763    // provided DOM node is child of its popper node
25764    if (!data.instance.popper.contains(arrowElement)) {
25765      console.warn('WARNING: `arrow.element` must be child of its popper element!');
25766      return data;
25767    }
25768  }
25769
25770  var placement = data.placement.split('-')[0];
25771  var _data$offsets = data.offsets,
25772      popper = _data$offsets.popper,
25773      reference = _data$offsets.reference;
25774
25775  var isVertical = ['left', 'right'].indexOf(placement) !== -1;
25776
25777  var len = isVertical ? 'height' : 'width';
25778  var sideCapitalized = isVertical ? 'Top' : 'Left';
25779  var side = sideCapitalized.toLowerCase();
25780  var altSide = isVertical ? 'left' : 'top';
25781  var opSide = isVertical ? 'bottom' : 'right';
25782  var arrowElementSize = getOuterSizes(arrowElement)[len];
25783
25784  //
25785  // extends keepTogether behavior making sure the popper and its
25786  // reference have enough pixels in conjunction
25787  //
25788
25789  // top/left side
25790  if (reference[opSide] - arrowElementSize < popper[side]) {
25791    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
25792  }
25793  // bottom/right side
25794  if (reference[side] + arrowElementSize > popper[opSide]) {
25795    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
25796  }
25797  data.offsets.popper = getClientRect(data.offsets.popper);
25798
25799  // compute center of the popper
25800  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
25801
25802  // Compute the sideValue using the updated popper offsets
25803  // take popper margin in account because we don't have this info available
25804  var css = getStyleComputedProperty(data.instance.popper);
25805  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
25806  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
25807  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
25808
25809  // prevent arrowElement from being placed not contiguously to its popper
25810  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
25811
25812  data.arrowElement = arrowElement;
25813  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
25814
25815  return data;
25816}
25817
25818/**
25819 * Get the opposite placement variation of the given one
25820 * @method
25821 * @memberof Popper.Utils
25822 * @argument {String} placement variation
25823 * @returns {String} flipped placement variation
25824 */
25825function getOppositeVariation(variation) {
25826  if (variation === 'end') {
25827    return 'start';
25828  } else if (variation === 'start') {
25829    return 'end';
25830  }
25831  return variation;
25832}
25833
25834/**
25835 * List of accepted placements to use as values of the `placement` option.<br />
25836 * Valid placements are:
25837 * - `auto`
25838 * - `top`
25839 * - `right`
25840 * - `bottom`
25841 * - `left`
25842 *
25843 * Each placement can have a variation from this list:
25844 * - `-start`
25845 * - `-end`
25846 *
25847 * Variations are interpreted easily if you think of them as the left to right
25848 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
25849 * is right.<br />
25850 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
25851 *
25852 * Some valid examples are:
25853 * - `top-end` (on top of reference, right aligned)
25854 * - `right-start` (on right of reference, top aligned)
25855 * - `bottom` (on bottom, centered)
25856 * - `auto-end` (on the side with more space available, alignment depends by placement)
25857 *
25858 * @static
25859 * @type {Array}
25860 * @enum {String}
25861 * @readonly
25862 * @method placements
25863 * @memberof Popper
25864 */
25865var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
25866
25867// Get rid of `auto` `auto-start` and `auto-end`
25868var validPlacements = placements.slice(3);
25869
25870/**
25871 * Given an initial placement, returns all the subsequent placements
25872 * clockwise (or counter-clockwise).
25873 *
25874 * @method
25875 * @memberof Popper.Utils
25876 * @argument {String} placement - A valid placement (it accepts variations)
25877 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
25878 * @returns {Array} placements including their variations
25879 */
25880function clockwise(placement) {
25881  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
25882
25883  var index = validPlacements.indexOf(placement);
25884  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
25885  return counter ? arr.reverse() : arr;
25886}
25887
25888var BEHAVIORS = {
25889  FLIP: 'flip',
25890  CLOCKWISE: 'clockwise',
25891  COUNTERCLOCKWISE: 'counterclockwise'
25892};
25893
25894/**
25895 * @function
25896 * @memberof Modifiers
25897 * @argument {Object} data - The data object generated by update method
25898 * @argument {Object} options - Modifiers configuration and options
25899 * @returns {Object} The data object, properly modified
25900 */
25901function flip(data, options) {
25902  // if `inner` modifier is enabled, we can't use the `flip` modifier
25903  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
25904    return data;
25905  }
25906
25907  if (data.flipped && data.placement === data.originalPlacement) {
25908    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
25909    return data;
25910  }
25911
25912  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
25913
25914  var placement = data.placement.split('-')[0];
25915  var placementOpposite = getOppositePlacement(placement);
25916  var variation = data.placement.split('-')[1] || '';
25917
25918  var flipOrder = [];
25919
25920  switch (options.behavior) {
25921    case BEHAVIORS.FLIP:
25922      flipOrder = [placement, placementOpposite];
25923      break;
25924    case BEHAVIORS.CLOCKWISE:
25925      flipOrder = clockwise(placement);
25926      break;
25927    case BEHAVIORS.COUNTERCLOCKWISE:
25928      flipOrder = clockwise(placement, true);
25929      break;
25930    default:
25931      flipOrder = options.behavior;
25932  }
25933
25934  flipOrder.forEach(function (step, index) {
25935    if (placement !== step || flipOrder.length === index + 1) {
25936      return data;
25937    }
25938
25939    placement = data.placement.split('-')[0];
25940    placementOpposite = getOppositePlacement(placement);
25941
25942    var popperOffsets = data.offsets.popper;
25943    var refOffsets = data.offsets.reference;
25944
25945    // using floor because the reference offsets may contain decimals we are not going to consider here
25946    var floor = Math.floor;
25947    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
25948
25949    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
25950    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
25951    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
25952    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
25953
25954    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
25955
25956    // flip the variation if required
25957    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
25958
25959    // flips variation if reference element overflows boundaries
25960    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
25961
25962    // flips variation if popper content overflows boundaries
25963    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
25964
25965    var flippedVariation = flippedVariationByRef || flippedVariationByContent;
25966
25967    if (overlapsRef || overflowsBoundaries || flippedVariation) {
25968      // this boolean to detect any flip loop
25969      data.flipped = true;
25970
25971      if (overlapsRef || overflowsBoundaries) {
25972        placement = flipOrder[index + 1];
25973      }
25974
25975      if (flippedVariation) {
25976        variation = getOppositeVariation(variation);
25977      }
25978
25979      data.placement = placement + (variation ? '-' + variation : '');
25980
25981      // this object contains `position`, we want to preserve it along with
25982      // any additional property we may add in the future
25983      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
25984
25985      data = runModifiers(data.instance.modifiers, data, 'flip');
25986    }
25987  });
25988  return data;
25989}
25990
25991/**
25992 * @function
25993 * @memberof Modifiers
25994 * @argument {Object} data - The data object generated by update method
25995 * @argument {Object} options - Modifiers configuration and options
25996 * @returns {Object} The data object, properly modified
25997 */
25998function keepTogether(data) {
25999  var _data$offsets = data.offsets,
26000      popper = _data$offsets.popper,
26001      reference = _data$offsets.reference;
26002
26003  var placement = data.placement.split('-')[0];
26004  var floor = Math.floor;
26005  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
26006  var side = isVertical ? 'right' : 'bottom';
26007  var opSide = isVertical ? 'left' : 'top';
26008  var measurement = isVertical ? 'width' : 'height';
26009
26010  if (popper[side] < floor(reference[opSide])) {
26011    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
26012  }
26013  if (popper[opSide] > floor(reference[side])) {
26014    data.offsets.popper[opSide] = floor(reference[side]);
26015  }
26016
26017  return data;
26018}
26019
26020/**
26021 * Converts a string containing value + unit into a px value number
26022 * @function
26023 * @memberof {modifiers~offset}
26024 * @private
26025 * @argument {String} str - Value + unit string
26026 * @argument {String} measurement - `height` or `width`
26027 * @argument {Object} popperOffsets
26028 * @argument {Object} referenceOffsets
26029 * @returns {Number|String}
26030 * Value in pixels, or original string if no values were extracted
26031 */
26032function toValue(str, measurement, popperOffsets, referenceOffsets) {
26033  // separate value from unit
26034  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
26035  var value = +split[1];
26036  var unit = split[2];
26037
26038  // If it's not a number it's an operator, I guess
26039  if (!value) {
26040    return str;
26041  }
26042
26043  if (unit.indexOf('%') === 0) {
26044    var element = void 0;
26045    switch (unit) {
26046      case '%p':
26047        element = popperOffsets;
26048        break;
26049      case '%':
26050      case '%r':
26051      default:
26052        element = referenceOffsets;
26053    }
26054
26055    var rect = getClientRect(element);
26056    return rect[measurement] / 100 * value;
26057  } else if (unit === 'vh' || unit === 'vw') {
26058    // if is a vh or vw, we calculate the size based on the viewport
26059    var size = void 0;
26060    if (unit === 'vh') {
26061      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
26062    } else {
26063      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
26064    }
26065    return size / 100 * value;
26066  } else {
26067    // if is an explicit pixel unit, we get rid of the unit and keep the value
26068    // if is an implicit unit, it's px, and we return just the value
26069    return value;
26070  }
26071}
26072
26073/**
26074 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
26075 * @function
26076 * @memberof {modifiers~offset}
26077 * @private
26078 * @argument {String} offset
26079 * @argument {Object} popperOffsets
26080 * @argument {Object} referenceOffsets
26081 * @argument {String} basePlacement
26082 * @returns {Array} a two cells array with x and y offsets in numbers
26083 */
26084function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
26085  var offsets = [0, 0];
26086
26087  // Use height if placement is left or right and index is 0 otherwise use width
26088  // in this way the first offset will use an axis and the second one
26089  // will use the other one
26090  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
26091
26092  // Split the offset string to obtain a list of values and operands
26093  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
26094  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
26095    return frag.trim();
26096  });
26097
26098  // Detect if the offset string contains a pair of values or a single one
26099  // they could be separated by comma or space
26100  var divider = fragments.indexOf(find(fragments, function (frag) {
26101    return frag.search(/,|\s/) !== -1;
26102  }));
26103
26104  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
26105    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
26106  }
26107
26108  // If divider is found, we divide the list of values and operands to divide
26109  // them by ofset X and Y.
26110  var splitRegex = /\s*,\s*|\s+/;
26111  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
26112
26113  // Convert the values with units to absolute pixels to allow our computations
26114  ops = ops.map(function (op, index) {
26115    // Most of the units rely on the orientation of the popper
26116    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
26117    var mergeWithPrevious = false;
26118    return op
26119    // This aggregates any `+` or `-` sign that aren't considered operators
26120    // e.g.: 10 + +5 => [10, +, +5]
26121    .reduce(function (a, b) {
26122      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
26123        a[a.length - 1] = b;
26124        mergeWithPrevious = true;
26125        return a;
26126      } else if (mergeWithPrevious) {
26127        a[a.length - 1] += b;
26128        mergeWithPrevious = false;
26129        return a;
26130      } else {
26131        return a.concat(b);
26132      }
26133    }, [])
26134    // Here we convert the string values into number values (in px)
26135    .map(function (str) {
26136      return toValue(str, measurement, popperOffsets, referenceOffsets);
26137    });
26138  });
26139
26140  // Loop trough the offsets arrays and execute the operations
26141  ops.forEach(function (op, index) {
26142    op.forEach(function (frag, index2) {
26143      if (isNumeric(frag)) {
26144        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
26145      }
26146    });
26147  });
26148  return offsets;
26149}
26150
26151/**
26152 * @function
26153 * @memberof Modifiers
26154 * @argument {Object} data - The data object generated by update method
26155 * @argument {Object} options - Modifiers configuration and options
26156 * @argument {Number|String} options.offset=0
26157 * The offset value as described in the modifier description
26158 * @returns {Object} The data object, properly modified
26159 */
26160function offset(data, _ref) {
26161  var offset = _ref.offset;
26162  var placement = data.placement,
26163      _data$offsets = data.offsets,
26164      popper = _data$offsets.popper,
26165      reference = _data$offsets.reference;
26166
26167  var basePlacement = placement.split('-')[0];
26168
26169  var offsets = void 0;
26170  if (isNumeric(+offset)) {
26171    offsets = [+offset, 0];
26172  } else {
26173    offsets = parseOffset(offset, popper, reference, basePlacement);
26174  }
26175
26176  if (basePlacement === 'left') {
26177    popper.top += offsets[0];
26178    popper.left -= offsets[1];
26179  } else if (basePlacement === 'right') {
26180    popper.top += offsets[0];
26181    popper.left += offsets[1];
26182  } else if (basePlacement === 'top') {
26183    popper.left += offsets[0];
26184    popper.top -= offsets[1];
26185  } else if (basePlacement === 'bottom') {
26186    popper.left += offsets[0];
26187    popper.top += offsets[1];
26188  }
26189
26190  data.popper = popper;
26191  return data;
26192}
26193
26194/**
26195 * @function
26196 * @memberof Modifiers
26197 * @argument {Object} data - The data object generated by `update` method
26198 * @argument {Object} options - Modifiers configuration and options
26199 * @returns {Object} The data object, properly modified
26200 */
26201function preventOverflow(data, options) {
26202  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
26203
26204  // If offsetParent is the reference element, we really want to
26205  // go one step up and use the next offsetParent as reference to
26206  // avoid to make this modifier completely useless and look like broken
26207  if (data.instance.reference === boundariesElement) {
26208    boundariesElement = getOffsetParent(boundariesElement);
26209  }
26210
26211  // NOTE: DOM access here
26212  // resets the popper's position so that the document size can be calculated excluding
26213  // the size of the popper element itself
26214  var transformProp = getSupportedPropertyName('transform');
26215  var popperStyles = data.instance.popper.style; // assignment to help minification
26216  var top = popperStyles.top,
26217      left = popperStyles.left,
26218      transform = popperStyles[transformProp];
26219
26220  popperStyles.top = '';
26221  popperStyles.left = '';
26222  popperStyles[transformProp] = '';
26223
26224  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
26225
26226  // NOTE: DOM access here
26227  // restores the original style properties after the offsets have been computed
26228  popperStyles.top = top;
26229  popperStyles.left = left;
26230  popperStyles[transformProp] = transform;
26231
26232  options.boundaries = boundaries;
26233
26234  var order = options.priority;
26235  var popper = data.offsets.popper;
26236
26237  var check = {
26238    primary: function primary(placement) {
26239      var value = popper[placement];
26240      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
26241        value = Math.max(popper[placement], boundaries[placement]);
26242      }
26243      return defineProperty({}, placement, value);
26244    },
26245    secondary: function secondary(placement) {
26246      var mainSide = placement === 'right' ? 'left' : 'top';
26247      var value = popper[mainSide];
26248      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
26249        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
26250      }
26251      return defineProperty({}, mainSide, value);
26252    }
26253  };
26254
26255  order.forEach(function (placement) {
26256    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
26257    popper = _extends({}, popper, check[side](placement));
26258  });
26259
26260  data.offsets.popper = popper;
26261
26262  return data;
26263}
26264
26265/**
26266 * @function
26267 * @memberof Modifiers
26268 * @argument {Object} data - The data object generated by `update` method
26269 * @argument {Object} options - Modifiers configuration and options
26270 * @returns {Object} The data object, properly modified
26271 */
26272function shift(data) {
26273  var placement = data.placement;
26274  var basePlacement = placement.split('-')[0];
26275  var shiftvariation = placement.split('-')[1];
26276
26277  // if shift shiftvariation is specified, run the modifier
26278  if (shiftvariation) {
26279    var _data$offsets = data.offsets,
26280        reference = _data$offsets.reference,
26281        popper = _data$offsets.popper;
26282
26283    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
26284    var side = isVertical ? 'left' : 'top';
26285    var measurement = isVertical ? 'width' : 'height';
26286
26287    var shiftOffsets = {
26288      start: defineProperty({}, side, reference[side]),
26289      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
26290    };
26291
26292    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
26293  }
26294
26295  return data;
26296}
26297
26298/**
26299 * @function
26300 * @memberof Modifiers
26301 * @argument {Object} data - The data object generated by update method
26302 * @argument {Object} options - Modifiers configuration and options
26303 * @returns {Object} The data object, properly modified
26304 */
26305function hide(data) {
26306  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
26307    return data;
26308  }
26309
26310  var refRect = data.offsets.reference;
26311  var bound = find(data.instance.modifiers, function (modifier) {
26312    return modifier.name === 'preventOverflow';
26313  }).boundaries;
26314
26315  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
26316    // Avoid unnecessary DOM access if visibility hasn't changed
26317    if (data.hide === true) {
26318      return data;
26319    }
26320
26321    data.hide = true;
26322    data.attributes['x-out-of-boundaries'] = '';
26323  } else {
26324    // Avoid unnecessary DOM access if visibility hasn't changed
26325    if (data.hide === false) {
26326      return data;
26327    }
26328
26329    data.hide = false;
26330    data.attributes['x-out-of-boundaries'] = false;
26331  }
26332
26333  return data;
26334}
26335
26336/**
26337 * @function
26338 * @memberof Modifiers
26339 * @argument {Object} data - The data object generated by `update` method
26340 * @argument {Object} options - Modifiers configuration and options
26341 * @returns {Object} The data object, properly modified
26342 */
26343function inner(data) {
26344  var placement = data.placement;
26345  var basePlacement = placement.split('-')[0];
26346  var _data$offsets = data.offsets,
26347      popper = _data$offsets.popper,
26348      reference = _data$offsets.reference;
26349
26350  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
26351
26352  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
26353
26354  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
26355
26356  data.placement = getOppositePlacement(placement);
26357  data.offsets.popper = getClientRect(popper);
26358
26359  return data;
26360}
26361
26362/**
26363 * Modifier function, each modifier can have a function of this type assigned
26364 * to its `fn` property.<br />
26365 * These functions will be called on each update, this means that you must
26366 * make sure they are performant enough to avoid performance bottlenecks.
26367 *
26368 * @function ModifierFn
26369 * @argument {dataObject} data - The data object generated by `update` method
26370 * @argument {Object} options - Modifiers configuration and options
26371 * @returns {dataObject} The data object, properly modified
26372 */
26373
26374/**
26375 * Modifiers are plugins used to alter the behavior of your poppers.<br />
26376 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
26377 * needed by the library.
26378 *
26379 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
26380 * All the other properties are configurations that could be tweaked.
26381 * @namespace modifiers
26382 */
26383var modifiers = {
26384  /**
26385   * Modifier used to shift the popper on the start or end of its reference
26386   * element.<br />
26387   * It will read the variation of the `placement` property.<br />
26388   * It can be one either `-end` or `-start`.
26389   * @memberof modifiers
26390   * @inner
26391   */
26392  shift: {
26393    /** @prop {number} order=100 - Index used to define the order of execution */
26394    order: 100,
26395    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26396    enabled: true,
26397    /** @prop {ModifierFn} */
26398    fn: shift
26399  },
26400
26401  /**
26402   * The `offset` modifier can shift your popper on both its axis.
26403   *
26404   * It accepts the following units:
26405   * - `px` or unit-less, interpreted as pixels
26406   * - `%` or `%r`, percentage relative to the length of the reference element
26407   * - `%p`, percentage relative to the length of the popper element
26408   * - `vw`, CSS viewport width unit
26409   * - `vh`, CSS viewport height unit
26410   *
26411   * For length is intended the main axis relative to the placement of the popper.<br />
26412   * This means that if the placement is `top` or `bottom`, the length will be the
26413   * `width`. In case of `left` or `right`, it will be the `height`.
26414   *
26415   * You can provide a single value (as `Number` or `String`), or a pair of values
26416   * as `String` divided by a comma or one (or more) white spaces.<br />
26417   * The latter is a deprecated method because it leads to confusion and will be
26418   * removed in v2.<br />
26419   * Additionally, it accepts additions and subtractions between different units.
26420   * Note that multiplications and divisions aren't supported.
26421   *
26422   * Valid examples are:
26423   * ```
26424   * 10
26425   * '10%'
26426   * '10, 10'
26427   * '10%, 10'
26428   * '10 + 10%'
26429   * '10 - 5vh + 3%'
26430   * '-10px + 5vh, 5px - 6%'
26431   * ```
26432   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
26433   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
26434   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
26435   *
26436   * @memberof modifiers
26437   * @inner
26438   */
26439  offset: {
26440    /** @prop {number} order=200 - Index used to define the order of execution */
26441    order: 200,
26442    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26443    enabled: true,
26444    /** @prop {ModifierFn} */
26445    fn: offset,
26446    /** @prop {Number|String} offset=0
26447     * The offset value as described in the modifier description
26448     */
26449    offset: 0
26450  },
26451
26452  /**
26453   * Modifier used to prevent the popper from being positioned outside the boundary.
26454   *
26455   * A scenario exists where the reference itself is not within the boundaries.<br />
26456   * We can say it has "escaped the boundaries" — or just "escaped".<br />
26457   * In this case we need to decide whether the popper should either:
26458   *
26459   * - detach from the reference and remain "trapped" in the boundaries, or
26460   * - if it should ignore the boundary and "escape with its reference"
26461   *
26462   * When `escapeWithReference` is set to`true` and reference is completely
26463   * outside its boundaries, the popper will overflow (or completely leave)
26464   * the boundaries in order to remain attached to the edge of the reference.
26465   *
26466   * @memberof modifiers
26467   * @inner
26468   */
26469  preventOverflow: {
26470    /** @prop {number} order=300 - Index used to define the order of execution */
26471    order: 300,
26472    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26473    enabled: true,
26474    /** @prop {ModifierFn} */
26475    fn: preventOverflow,
26476    /**
26477     * @prop {Array} [priority=['left','right','top','bottom']]
26478     * Popper will try to prevent overflow following these priorities by default,
26479     * then, it could overflow on the left and on top of the `boundariesElement`
26480     */
26481    priority: ['left', 'right', 'top', 'bottom'],
26482    /**
26483     * @prop {number} padding=5
26484     * Amount of pixel used to define a minimum distance between the boundaries
26485     * and the popper. This makes sure the popper always has a little padding
26486     * between the edges of its container
26487     */
26488    padding: 5,
26489    /**
26490     * @prop {String|HTMLElement} boundariesElement='scrollParent'
26491     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
26492     * `viewport` or any DOM element.
26493     */
26494    boundariesElement: 'scrollParent'
26495  },
26496
26497  /**
26498   * Modifier used to make sure the reference and its popper stay near each other
26499   * without leaving any gap between the two. Especially useful when the arrow is
26500   * enabled and you want to ensure that it points to its reference element.
26501   * It cares only about the first axis. You can still have poppers with margin
26502   * between the popper and its reference element.
26503   * @memberof modifiers
26504   * @inner
26505   */
26506  keepTogether: {
26507    /** @prop {number} order=400 - Index used to define the order of execution */
26508    order: 400,
26509    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26510    enabled: true,
26511    /** @prop {ModifierFn} */
26512    fn: keepTogether
26513  },
26514
26515  /**
26516   * This modifier is used to move the `arrowElement` of the popper to make
26517   * sure it is positioned between the reference element and its popper element.
26518   * It will read the outer size of the `arrowElement` node to detect how many
26519   * pixels of conjunction are needed.
26520   *
26521   * It has no effect if no `arrowElement` is provided.
26522   * @memberof modifiers
26523   * @inner
26524   */
26525  arrow: {
26526    /** @prop {number} order=500 - Index used to define the order of execution */
26527    order: 500,
26528    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26529    enabled: true,
26530    /** @prop {ModifierFn} */
26531    fn: arrow,
26532    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
26533    element: '[x-arrow]'
26534  },
26535
26536  /**
26537   * Modifier used to flip the popper's placement when it starts to overlap its
26538   * reference element.
26539   *
26540   * Requires the `preventOverflow` modifier before it in order to work.
26541   *
26542   * **NOTE:** this modifier will interrupt the current update cycle and will
26543   * restart it if it detects the need to flip the placement.
26544   * @memberof modifiers
26545   * @inner
26546   */
26547  flip: {
26548    /** @prop {number} order=600 - Index used to define the order of execution */
26549    order: 600,
26550    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26551    enabled: true,
26552    /** @prop {ModifierFn} */
26553    fn: flip,
26554    /**
26555     * @prop {String|Array} behavior='flip'
26556     * The behavior used to change the popper's placement. It can be one of
26557     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
26558     * placements (with optional variations)
26559     */
26560    behavior: 'flip',
26561    /**
26562     * @prop {number} padding=5
26563     * The popper will flip if it hits the edges of the `boundariesElement`
26564     */
26565    padding: 5,
26566    /**
26567     * @prop {String|HTMLElement} boundariesElement='viewport'
26568     * The element which will define the boundaries of the popper position.
26569     * The popper will never be placed outside of the defined boundaries
26570     * (except if `keepTogether` is enabled)
26571     */
26572    boundariesElement: 'viewport',
26573    /**
26574     * @prop {Boolean} flipVariations=false
26575     * The popper will switch placement variation between `-start` and `-end` when
26576     * the reference element overlaps its boundaries.
26577     *
26578     * The original placement should have a set variation.
26579     */
26580    flipVariations: false,
26581    /**
26582     * @prop {Boolean} flipVariationsByContent=false
26583     * The popper will switch placement variation between `-start` and `-end` when
26584     * the popper element overlaps its reference boundaries.
26585     *
26586     * The original placement should have a set variation.
26587     */
26588    flipVariationsByContent: false
26589  },
26590
26591  /**
26592   * Modifier used to make the popper flow toward the inner of the reference element.
26593   * By default, when this modifier is disabled, the popper will be placed outside
26594   * the reference element.
26595   * @memberof modifiers
26596   * @inner
26597   */
26598  inner: {
26599    /** @prop {number} order=700 - Index used to define the order of execution */
26600    order: 700,
26601    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
26602    enabled: false,
26603    /** @prop {ModifierFn} */
26604    fn: inner
26605  },
26606
26607  /**
26608   * Modifier used to hide the popper when its reference element is outside of the
26609   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
26610   * be used to hide with a CSS selector the popper when its reference is
26611   * out of boundaries.
26612   *
26613   * Requires the `preventOverflow` modifier before it in order to work.
26614   * @memberof modifiers
26615   * @inner
26616   */
26617  hide: {
26618    /** @prop {number} order=800 - Index used to define the order of execution */
26619    order: 800,
26620    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26621    enabled: true,
26622    /** @prop {ModifierFn} */
26623    fn: hide
26624  },
26625
26626  /**
26627   * Computes the style that will be applied to the popper element to gets
26628   * properly positioned.
26629   *
26630   * Note that this modifier will not touch the DOM, it just prepares the styles
26631   * so that `applyStyle` modifier can apply it. This separation is useful
26632   * in case you need to replace `applyStyle` with a custom implementation.
26633   *
26634   * This modifier has `850` as `order` value to maintain backward compatibility
26635   * with previous versions of Popper.js. Expect the modifiers ordering method
26636   * to change in future major versions of the library.
26637   *
26638   * @memberof modifiers
26639   * @inner
26640   */
26641  computeStyle: {
26642    /** @prop {number} order=850 - Index used to define the order of execution */
26643    order: 850,
26644    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26645    enabled: true,
26646    /** @prop {ModifierFn} */
26647    fn: computeStyle,
26648    /**
26649     * @prop {Boolean} gpuAcceleration=true
26650     * If true, it uses the CSS 3D transformation to position the popper.
26651     * Otherwise, it will use the `top` and `left` properties
26652     */
26653    gpuAcceleration: true,
26654    /**
26655     * @prop {string} [x='bottom']
26656     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
26657     * Change this if your popper should grow in a direction different from `bottom`
26658     */
26659    x: 'bottom',
26660    /**
26661     * @prop {string} [x='left']
26662     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
26663     * Change this if your popper should grow in a direction different from `right`
26664     */
26665    y: 'right'
26666  },
26667
26668  /**
26669   * Applies the computed styles to the popper element.
26670   *
26671   * All the DOM manipulations are limited to this modifier. This is useful in case
26672   * you want to integrate Popper.js inside a framework or view library and you
26673   * want to delegate all the DOM manipulations to it.
26674   *
26675   * Note that if you disable this modifier, you must make sure the popper element
26676   * has its position set to `absolute` before Popper.js can do its work!
26677   *
26678   * Just disable this modifier and define your own to achieve the desired effect.
26679   *
26680   * @memberof modifiers
26681   * @inner
26682   */
26683  applyStyle: {
26684    /** @prop {number} order=900 - Index used to define the order of execution */
26685    order: 900,
26686    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
26687    enabled: true,
26688    /** @prop {ModifierFn} */
26689    fn: applyStyle,
26690    /** @prop {Function} */
26691    onLoad: applyStyleOnLoad,
26692    /**
26693     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
26694     * @prop {Boolean} gpuAcceleration=true
26695     * If true, it uses the CSS 3D transformation to position the popper.
26696     * Otherwise, it will use the `top` and `left` properties
26697     */
26698    gpuAcceleration: undefined
26699  }
26700};
26701
26702/**
26703 * The `dataObject` is an object containing all the information used by Popper.js.
26704 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
26705 * @name dataObject
26706 * @property {Object} data.instance The Popper.js instance
26707 * @property {String} data.placement Placement applied to popper
26708 * @property {String} data.originalPlacement Placement originally defined on init
26709 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
26710 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
26711 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
26712 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
26713 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
26714 * @property {Object} data.boundaries Offsets of the popper boundaries
26715 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
26716 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
26717 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
26718 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
26719 */
26720
26721/**
26722 * Default options provided to Popper.js constructor.<br />
26723 * These can be overridden using the `options` argument of Popper.js.<br />
26724 * To override an option, simply pass an object with the same
26725 * structure of the `options` object, as the 3rd argument. For example:
26726 * ```
26727 * new Popper(ref, pop, {
26728 *   modifiers: {
26729 *     preventOverflow: { enabled: false }
26730 *   }
26731 * })
26732 * ```
26733 * @type {Object}
26734 * @static
26735 * @memberof Popper
26736 */
26737var Defaults = {
26738  /**
26739   * Popper's placement.
26740   * @prop {Popper.placements} placement='bottom'
26741   */
26742  placement: 'bottom',
26743
26744  /**
26745   * Set this to true if you want popper to position it self in 'fixed' mode
26746   * @prop {Boolean} positionFixed=false
26747   */
26748  positionFixed: false,
26749
26750  /**
26751   * Whether events (resize, scroll) are initially enabled.
26752   * @prop {Boolean} eventsEnabled=true
26753   */
26754  eventsEnabled: true,
26755
26756  /**
26757   * Set to true if you want to automatically remove the popper when
26758   * you call the `destroy` method.
26759   * @prop {Boolean} removeOnDestroy=false
26760   */
26761  removeOnDestroy: false,
26762
26763  /**
26764   * Callback called when the popper is created.<br />
26765   * By default, it is set to no-op.<br />
26766   * Access Popper.js instance with `data.instance`.
26767   * @prop {onCreate}
26768   */
26769  onCreate: function onCreate() {},
26770
26771  /**
26772   * Callback called when the popper is updated. This callback is not called
26773   * on the initialization/creation of the popper, but only on subsequent
26774   * updates.<br />
26775   * By default, it is set to no-op.<br />
26776   * Access Popper.js instance with `data.instance`.
26777   * @prop {onUpdate}
26778   */
26779  onUpdate: function onUpdate() {},
26780
26781  /**
26782   * List of modifiers used to modify the offsets before they are applied to the popper.
26783   * They provide most of the functionalities of Popper.js.
26784   * @prop {modifiers}
26785   */
26786  modifiers: modifiers
26787};
26788
26789/**
26790 * @callback onCreate
26791 * @param {dataObject} data
26792 */
26793
26794/**
26795 * @callback onUpdate
26796 * @param {dataObject} data
26797 */
26798
26799// Utils
26800// Methods
26801var Popper = function () {
26802  /**
26803   * Creates a new Popper.js instance.
26804   * @class Popper
26805   * @param {Element|referenceObject} reference - The reference element used to position the popper
26806   * @param {Element} popper - The HTML / XML element used as the popper
26807   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
26808   * @return {Object} instance - The generated Popper.js instance
26809   */
26810  function Popper(reference, popper) {
26811    var _this = this;
26812
26813    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
26814    classCallCheck(this, Popper);
26815
26816    this.scheduleUpdate = function () {
26817      return requestAnimationFrame(_this.update);
26818    };
26819
26820    // make update() debounced, so that it only runs at most once-per-tick
26821    this.update = debounce(this.update.bind(this));
26822
26823    // with {} we create a new object with the options inside it
26824    this.options = _extends({}, Popper.Defaults, options);
26825
26826    // init state
26827    this.state = {
26828      isDestroyed: false,
26829      isCreated: false,
26830      scrollParents: []
26831    };
26832
26833    // get reference and popper elements (allow jQuery wrappers)
26834    this.reference = reference && reference.jquery ? reference[0] : reference;
26835    this.popper = popper && popper.jquery ? popper[0] : popper;
26836
26837    // Deep merge modifiers options
26838    this.options.modifiers = {};
26839    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
26840      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
26841    });
26842
26843    // Refactoring modifiers' list (Object => Array)
26844    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
26845      return _extends({
26846        name: name
26847      }, _this.options.modifiers[name]);
26848    })
26849    // sort the modifiers by order
26850    .sort(function (a, b) {
26851      return a.order - b.order;
26852    });
26853
26854    // modifiers have the ability to execute arbitrary code when Popper.js get inited
26855    // such code is executed in the same order of its modifier
26856    // they could add new properties to their options configuration
26857    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
26858    this.modifiers.forEach(function (modifierOptions) {
26859      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
26860        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
26861      }
26862    });
26863
26864    // fire the first update to position the popper in the right place
26865    this.update();
26866
26867    var eventsEnabled = this.options.eventsEnabled;
26868    if (eventsEnabled) {
26869      // setup event listeners, they will take care of update the position in specific situations
26870      this.enableEventListeners();
26871    }
26872
26873    this.state.eventsEnabled = eventsEnabled;
26874  }
26875
26876  // We can't use class properties because they don't get listed in the
26877  // class prototype and break stuff like Sinon stubs
26878
26879
26880  createClass(Popper, [{
26881    key: 'update',
26882    value: function update$$1() {
26883      return update.call(this);
26884    }
26885  }, {
26886    key: 'destroy',
26887    value: function destroy$$1() {
26888      return destroy.call(this);
26889    }
26890  }, {
26891    key: 'enableEventListeners',
26892    value: function enableEventListeners$$1() {
26893      return enableEventListeners.call(this);
26894    }
26895  }, {
26896    key: 'disableEventListeners',
26897    value: function disableEventListeners$$1() {
26898      return disableEventListeners.call(this);
26899    }
26900
26901    /**
26902     * Schedules an update. It will run on the next UI update available.
26903     * @method scheduleUpdate
26904     * @memberof Popper
26905     */
26906
26907
26908    /**
26909     * Collection of utilities useful when writing custom modifiers.
26910     * Starting from version 1.7, this method is available only if you
26911     * include `popper-utils.js` before `popper.js`.
26912     *
26913     * **DEPRECATION**: This way to access PopperUtils is deprecated
26914     * and will be removed in v2! Use the PopperUtils module directly instead.
26915     * Due to the high instability of the methods contained in Utils, we can't
26916     * guarantee them to follow semver. Use them at your own risk!
26917     * @static
26918     * @private
26919     * @type {Object}
26920     * @deprecated since version 1.8
26921     * @member Utils
26922     * @memberof Popper
26923     */
26924
26925  }]);
26926  return Popper;
26927}();
26928
26929/**
26930 * The `referenceObject` is an object that provides an interface compatible with Popper.js
26931 * and lets you use it as replacement of a real DOM node.<br />
26932 * You can use this method to position a popper relatively to a set of coordinates
26933 * in case you don't have a DOM node to use as reference.
26934 *
26935 * ```
26936 * new Popper(referenceObject, popperNode);
26937 * ```
26938 *
26939 * NB: This feature isn't supported in Internet Explorer 10.
26940 * @name referenceObject
26941 * @property {Function} data.getBoundingClientRect
26942 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
26943 * @property {number} data.clientWidth
26944 * An ES6 getter that will return the width of the virtual reference element.
26945 * @property {number} data.clientHeight
26946 * An ES6 getter that will return the height of the virtual reference element.
26947 */
26948
26949
26950Popper.Utils = (typeof window !== 'undefined' ? window : __webpack_require__.g).PopperUtils;
26951Popper.placements = placements;
26952Popper.Defaults = Defaults;
26953
26954/* harmony default export */ __webpack_exports__["default"] = (Popper);
26955//# sourceMappingURL=popper.js.map
26956
26957
26958/***/ }),
26959
vendor: 42,431 bytes, lines 26960-28540
26960/***/ "./node_modules/dom7/dom7.esm.js":
26961/*!***************************************!*\
26962  !*** ./node_modules/dom7/dom7.esm.js ***!
26963  \***************************************/
26964/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
26965
26966"use strict";
26967__webpack_require__.r(__webpack_exports__);
26968/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26969/* harmony export */   "$": function() { return /* binding */ $; },
26970/* harmony export */   "add": function() { return /* binding */ add; },
26971/* harmony export */   "addClass": function() { return /* binding */ addClass; },
26972/* harmony export */   "animate": function() { return /* binding */ animate; },
26973/* harmony export */   "animationEnd": function() { return /* binding */ animationEnd; },
26974/* harmony export */   "append": function() { return /* binding */ append; },
26975/* harmony export */   "appendTo": function() { return /* binding */ appendTo; },
26976/* harmony export */   "attr": function() { return /* binding */ attr; },
26977/* harmony export */   "blur": function() { return /* binding */ blur; },
26978/* harmony export */   "change": function() { return /* binding */ change; },
26979/* harmony export */   "children": function() { return /* binding */ children; },
26980/* harmony export */   "click": function() { return /* binding */ click; },
26981/* harmony export */   "closest": function() { return /* binding */ closest; },
26982/* harmony export */   "css": function() { return /* binding */ css; },
26983/* harmony export */   "data": function() { return /* binding */ data; },
26984/* harmony export */   "dataset": function() { return /* binding */ dataset; },
26985/* harmony export */   "detach": function() { return /* binding */ detach; },
26986/* harmony export */   "each": function() { return /* binding */ each; },
26987/* harmony export */   "empty": function() { return /* binding */ empty; },
26988/* harmony export */   "eq": function() { return /* binding */ eq; },
26989/* harmony export */   "filter": function() { return /* binding */ filter; },
26990/* harmony export */   "find": function() { return /* binding */ find; },
26991/* harmony export */   "focus": function() { return /* binding */ focus; },
26992/* harmony export */   "focusin": function() { return /* binding */ focusin; },
26993/* harmony export */   "focusout": function() { return /* binding */ focusout; },
26994/* harmony export */   "hasClass": function() { return /* binding */ hasClass; },
26995/* harmony export */   "height": function() { return /* binding */ height; },
26996/* harmony export */   "hide": function() { return /* binding */ hide; },
26997/* harmony export */   "html": function() { return /* binding */ html; },
26998/* harmony export */   "index": function() { return /* binding */ index; },
26999/* harmony export */   "insertAfter": function() { return /* binding */ insertAfter; },
27000/* harmony export */   "insertBefore": function() { return /* binding */ insertBefore; },
27001/* harmony export */   "is": function() { return /* binding */ is; },
27002/* harmony export */   "keydown": function() { return /* binding */ keydown; },
27003/* harmony export */   "keypress": function() { return /* binding */ keypress; },
27004/* harmony export */   "keyup": function() { return /* binding */ keyup; },
27005/* harmony export */   "mousedown": function() { return /* binding */ mousedown; },
27006/* harmony export */   "mouseenter": function() { return /* binding */ mouseenter; },
27007/* harmony export */   "mouseleave": function() { return /* binding */ mouseleave; },
27008/* harmony export */   "mousemove": function() { return /* binding */ mousemove; },
27009/* harmony export */   "mouseout": function() { return /* binding */ mouseout; },
27010/* harmony export */   "mouseover": function() { return /* binding */ mouseover; },
27011/* harmony export */   "mouseup": function() { return /* binding */ mouseup; },
27012/* harmony export */   "next": function() { return /* binding */ next; },
27013/* harmony export */   "nextAll": function() { return /* binding */ nextAll; },
27014/* harmony export */   "off": function() { return /* binding */ off; },
27015/* harmony export */   "offset": function() { return /* binding */ offset; },
27016/* harmony export */   "on": function() { return /* binding */ on; },
27017/* harmony export */   "once": function() { return /* binding */ once; },
27018/* harmony export */   "outerHeight": function() { return /* binding */ outerHeight; },
27019/* harmony export */   "outerWidth": function() { return /* binding */ outerWidth; },
27020/* harmony export */   "parent": function() { return /* binding */ parent; },
27021/* harmony export */   "parents": function() { return /* binding */ parents; },
27022/* harmony export */   "prepend": function() { return /* binding */ prepend; },
27023/* harmony export */   "prependTo": function() { return /* binding */ prependTo; },
27024/* harmony export */   "prev": function() { return /* binding */ prev; },
27025/* harmony export */   "prevAll": function() { return /* binding */ prevAll; },
27026/* harmony export */   "prop": function() { return /* binding */ prop; },
27027/* harmony export */   "remove": function() { return /* binding */ remove; },
27028/* harmony export */   "removeAttr": function() { return /* binding */ removeAttr; },
27029/* harmony export */   "removeClass": function() { return /* binding */ removeClass; },
27030/* harmony export */   "removeData": function() { return /* binding */ removeData; },
27031/* harmony export */   "resize": function() { return /* binding */ resize; },
27032/* harmony export */   "scroll": function() { return /* binding */ scroll; },
27033/* harmony export */   "scrollLeft": function() { return /* binding */ scrollLeft; },
27034/* harmony export */   "scrollTo": function() { return /* binding */ scrollTo; },
27035/* harmony export */   "scrollTop": function() { return /* binding */ scrollTop; },
27036/* harmony export */   "show": function() { return /* binding */ show; },
27037/* harmony export */   "siblings": function() { return /* binding */ siblings; },
27038/* harmony export */   "stop": function() { return /* binding */ stop; },
27039/* harmony export */   "styles": function() { return /* binding */ styles; },
27040/* harmony export */   "submit": function() { return /* binding */ submit; },
27041/* harmony export */   "text": function() { return /* binding */ text; },
27042/* harmony export */   "toggleClass": function() { return /* binding */ toggleClass; },
27043/* harmony export */   "touchend": function() { return /* binding */ touchend; },
27044/* harmony export */   "touchmove": function() { return /* binding */ touchmove; },
27045/* harmony export */   "touchstart": function() { return /* binding */ touchstart; },
27046/* harmony export */   "transform": function() { return /* binding */ transform; },
27047/* harmony export */   "transition": function() { return /* binding */ transition; },
27048/* harmony export */   "transitionEnd": function() { return /* binding */ transitionEnd; },
27049/* harmony export */   "trigger": function() { return /* binding */ trigger; },
27050/* harmony export */   "val": function() { return /* binding */ val; },
27051/* harmony export */   "value": function() { return /* binding */ value; },
27052/* harmony export */   "width": function() { return /* binding */ width; }
27053/* harmony export */ });
27054/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
27055/**
27056 * Dom7 4.0.4
27057 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
27058 * https://framework7.io/docs/dom7.html
27059 *
27060 * Copyright 2022, Vladimir Kharlampidi
27061 *
27062 * Licensed under MIT
27063 *
27064 * Released on: January 11, 2022
27065 */
27066
27067
27068/* eslint-disable no-proto */
27069function makeReactive(obj) {
27070  const proto = obj.__proto__;
27071  Object.defineProperty(obj, '__proto__', {
27072    get() {
27073      return proto;
27074    },
27075
27076    set(value) {
27077      proto.__proto__ = value;
27078    }
27079
27080  });
27081}
27082
27083class Dom7 extends Array {
27084  constructor(items) {
27085    if (typeof items === 'number') {
27086      super(items);
27087    } else {
27088      super(...(items || []));
27089      makeReactive(this);
27090    }
27091  }
27092
27093}
27094
27095function arrayFlat(arr = []) {
27096  const res = [];
27097  arr.forEach(el => {
27098    if (Array.isArray(el)) {
27099      res.push(...arrayFlat(el));
27100    } else {
27101      res.push(el);
27102    }
27103  });
27104  return res;
27105}
27106function arrayFilter(arr, callback) {
27107  return Array.prototype.filter.call(arr, callback);
27108}
27109function arrayUnique(arr) {
27110  const uniqueArray = [];
27111
27112  for (let i = 0; i < arr.length; i += 1) {
27113    if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);
27114  }
27115
27116  return uniqueArray;
27117}
27118function toCamelCase(string) {
27119  return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());
27120}
27121
27122// eslint-disable-next-line
27123
27124function qsa(selector, context) {
27125  if (typeof selector !== 'string') {
27126    return [selector];
27127  }
27128
27129  const a = [];
27130  const res = context.querySelectorAll(selector);
27131
27132  for (let i = 0; i < res.length; i += 1) {
27133    a.push(res[i]);
27134  }
27135
27136  return a;
27137}
27138
27139function $(selector, context) {
27140  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27141  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
27142  let arr = [];
27143
27144  if (!context && selector instanceof Dom7) {
27145    return selector;
27146  }
27147
27148  if (!selector) {
27149    return new Dom7(arr);
27150  }
27151
27152  if (typeof selector === 'string') {
27153    const html = selector.trim();
27154
27155    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {
27156      let toCreate = 'div';
27157      if (html.indexOf('<li') === 0) toCreate = 'ul';
27158      if (html.indexOf('<tr') === 0) toCreate = 'tbody';
27159      if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';
27160      if (html.indexOf('<tbody') === 0) toCreate = 'table';
27161      if (html.indexOf('<option') === 0) toCreate = 'select';
27162      const tempParent = document.createElement(toCreate);
27163      tempParent.innerHTML = html;
27164
27165      for (let i = 0; i < tempParent.childNodes.length; i += 1) {
27166        arr.push(tempParent.childNodes[i]);
27167      }
27168    } else {
27169      arr = qsa(selector.trim(), context || document);
27170    } // arr = qsa(selector, document);
27171
27172  } else if (selector.nodeType || selector === window || selector === document) {
27173    arr.push(selector);
27174  } else if (Array.isArray(selector)) {
27175    if (selector instanceof Dom7) return selector;
27176    arr = selector;
27177  }
27178
27179  return new Dom7(arrayUnique(arr));
27180}
27181
27182$.fn = Dom7.prototype;
27183
27184// eslint-disable-next-line
27185
27186function addClass(...classes) {
27187  const classNames = arrayFlat(classes.map(c => c.split(' ')));
27188  this.forEach(el => {
27189    el.classList.add(...classNames);
27190  });
27191  return this;
27192}
27193
27194function removeClass(...classes) {
27195  const classNames = arrayFlat(classes.map(c => c.split(' ')));
27196  this.forEach(el => {
27197    el.classList.remove(...classNames);
27198  });
27199  return this;
27200}
27201
27202function toggleClass(...classes) {
27203  const classNames = arrayFlat(classes.map(c => c.split(' ')));
27204  this.forEach(el => {
27205    classNames.forEach(className => {
27206      el.classList.toggle(className);
27207    });
27208  });
27209}
27210
27211function hasClass(...classes) {
27212  const classNames = arrayFlat(classes.map(c => c.split(' ')));
27213  return arrayFilter(this, el => {
27214    return classNames.filter(className => el.classList.contains(className)).length > 0;
27215  }).length > 0;
27216}
27217
27218function attr(attrs, value) {
27219  if (arguments.length === 1 && typeof attrs === 'string') {
27220    // Get attr
27221    if (this[0]) return this[0].getAttribute(attrs);
27222    return undefined;
27223  } // Set attrs
27224
27225
27226  for (let i = 0; i < this.length; i += 1) {
27227    if (arguments.length === 2) {
27228      // String
27229      this[i].setAttribute(attrs, value);
27230    } else {
27231      // Object
27232      for (const attrName in attrs) {
27233        this[i][attrName] = attrs[attrName];
27234        this[i].setAttribute(attrName, attrs[attrName]);
27235      }
27236    }
27237  }
27238
27239  return this;
27240}
27241
27242function removeAttr(attr) {
27243  for (let i = 0; i < this.length; i += 1) {
27244    this[i].removeAttribute(attr);
27245  }
27246
27247  return this;
27248}
27249
27250function prop(props, value) {
27251  if (arguments.length === 1 && typeof props === 'string') {
27252    // Get prop
27253    if (this[0]) return this[0][props];
27254  } else {
27255    // Set props
27256    for (let i = 0; i < this.length; i += 1) {
27257      if (arguments.length === 2) {
27258        // String
27259        this[i][props] = value;
27260      } else {
27261        // Object
27262        for (const propName in props) {
27263          this[i][propName] = props[propName];
27264        }
27265      }
27266    }
27267
27268    return this;
27269  }
27270
27271  return this;
27272}
27273
27274function data(key, value) {
27275  let el;
27276
27277  if (typeof value === 'undefined') {
27278    el = this[0];
27279    if (!el) return undefined; // Get value
27280
27281    if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {
27282      return el.dom7ElementDataStorage[key];
27283    }
27284
27285    const dataKey = el.getAttribute(`data-${key}`);
27286
27287    if (dataKey) {
27288      return dataKey;
27289    }
27290
27291    return undefined;
27292  } // Set value
27293
27294
27295  for (let i = 0; i < this.length; i += 1) {
27296    el = this[i];
27297    if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};
27298    el.dom7ElementDataStorage[key] = value;
27299  }
27300
27301  return this;
27302}
27303
27304function removeData(key) {
27305  for (let i = 0; i < this.length; i += 1) {
27306    const el = this[i];
27307
27308    if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {
27309      el.dom7ElementDataStorage[key] = null;
27310      delete el.dom7ElementDataStorage[key];
27311    }
27312  }
27313}
27314
27315function dataset() {
27316  const el = this[0];
27317  if (!el) return undefined;
27318  const dataset = {}; // eslint-disable-line
27319
27320  if (el.dataset) {
27321    for (const dataKey in el.dataset) {
27322      dataset[dataKey] = el.dataset[dataKey];
27323    }
27324  } else {
27325    for (let i = 0; i < el.attributes.length; i += 1) {
27326      const attr = el.attributes[i];
27327
27328      if (attr.name.indexOf('data-') >= 0) {
27329        dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;
27330      }
27331    }
27332  }
27333
27334  for (const key in dataset) {
27335    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;
27336  }
27337
27338  return dataset;
27339}
27340
27341function val(value) {
27342  if (typeof value === 'undefined') {
27343    // get value
27344    const el = this[0];
27345    if (!el) return undefined;
27346
27347    if (el.multiple && el.nodeName.toLowerCase() === 'select') {
27348      const values = [];
27349
27350      for (let i = 0; i < el.selectedOptions.length; i += 1) {
27351        values.push(el.selectedOptions[i].value);
27352      }
27353
27354      return values;
27355    }
27356
27357    return el.value;
27358  } // set value
27359
27360
27361  for (let i = 0; i < this.length; i += 1) {
27362    const el = this[i];
27363
27364    if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {
27365      for (let j = 0; j < el.options.length; j += 1) {
27366        el.options[j].selected = value.indexOf(el.options[j].value) >= 0;
27367      }
27368    } else {
27369      el.value = value;
27370    }
27371  }
27372
27373  return this;
27374}
27375
27376function value(value) {
27377  return this.val(value);
27378}
27379
27380function transform(transform) {
27381  for (let i = 0; i < this.length; i += 1) {
27382    this[i].style.transform = transform;
27383  }
27384
27385  return this;
27386}
27387
27388function transition(duration) {
27389  for (let i = 0; i < this.length; i += 1) {
27390    this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;
27391  }
27392
27393  return this;
27394}
27395
27396function on(...args) {
27397  let [eventType, targetSelector, listener, capture] = args;
27398
27399  if (typeof args[1] === 'function') {
27400    [eventType, listener, capture] = args;
27401    targetSelector = undefined;
27402  }
27403
27404  if (!capture) capture = false;
27405
27406  function handleLiveEvent(e) {
27407    const target = e.target;
27408    if (!target) return;
27409    const eventData = e.target.dom7EventData || [];
27410
27411    if (eventData.indexOf(e) < 0) {
27412      eventData.unshift(e);
27413    }
27414
27415    if ($(target).is(targetSelector)) listener.apply(target, eventData);else {
27416      const parents = $(target).parents(); // eslint-disable-line
27417
27418      for (let k = 0; k < parents.length; k += 1) {
27419        if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);
27420      }
27421    }
27422  }
27423
27424  function handleEvent(e) {
27425    const eventData = e && e.target ? e.target.dom7EventData || [] : [];
27426
27427    if (eventData.indexOf(e) < 0) {
27428      eventData.unshift(e);
27429    }
27430
27431    listener.apply(this, eventData);
27432  }
27433
27434  const events = eventType.split(' ');
27435  let j;
27436
27437  for (let i = 0; i < this.length; i += 1) {
27438    const el = this[i];
27439
27440    if (!targetSelector) {
27441      for (j = 0; j < events.length; j += 1) {
27442        const event = events[j];
27443        if (!el.dom7Listeners) el.dom7Listeners = {};
27444        if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];
27445        el.dom7Listeners[event].push({
27446          listener,
27447          proxyListener: handleEvent
27448        });
27449        el.addEventListener(event, handleEvent, capture);
27450      }
27451    } else {
27452      // Live events
27453      for (j = 0; j < events.length; j += 1) {
27454        const event = events[j];
27455        if (!el.dom7LiveListeners) el.dom7LiveListeners = {};
27456        if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];
27457        el.dom7LiveListeners[event].push({
27458          listener,
27459          proxyListener: handleLiveEvent
27460        });
27461        el.addEventListener(event, handleLiveEvent, capture);
27462      }
27463    }
27464  }
27465
27466  return this;
27467}
27468
27469function off(...args) {
27470  let [eventType, targetSelector, listener, capture] = args;
27471
27472  if (typeof args[1] === 'function') {
27473    [eventType, listener, capture] = args;
27474    targetSelector = undefined;
27475  }
27476
27477  if (!capture) capture = false;
27478  const events = eventType.split(' ');
27479
27480  for (let i = 0; i < events.length; i += 1) {
27481    const event = events[i];
27482
27483    for (let j = 0; j < this.length; j += 1) {
27484      const el = this[j];
27485      let handlers;
27486
27487      if (!targetSelector && el.dom7Listeners) {
27488        handlers = el.dom7Listeners[event];
27489      } else if (targetSelector && el.dom7LiveListeners) {
27490        handlers = el.dom7LiveListeners[event];
27491      }
27492
27493      if (handlers && handlers.length) {
27494        for (let k = handlers.length - 1; k >= 0; k -= 1) {
27495          const handler = handlers[k];
27496
27497          if (listener && handler.listener === listener) {
27498            el.removeEventListener(event, handler.proxyListener, capture);
27499            handlers.splice(k, 1);
27500          } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {
27501            el.removeEventListener(event, handler.proxyListener, capture);
27502            handlers.splice(k, 1);
27503          } else if (!listener) {
27504            el.removeEventListener(event, handler.proxyListener, capture);
27505            handlers.splice(k, 1);
27506          }
27507        }
27508      }
27509    }
27510  }
27511
27512  return this;
27513}
27514
27515function once(...args) {
27516  const dom = this;
27517  let [eventName, targetSelector, listener, capture] = args;
27518
27519  if (typeof args[1] === 'function') {
27520    [eventName, listener, capture] = args;
27521    targetSelector = undefined;
27522  }
27523
27524  function onceHandler(...eventArgs) {
27525    listener.apply(this, eventArgs);
27526    dom.off(eventName, targetSelector, onceHandler, capture);
27527
27528    if (onceHandler.dom7proxy) {
27529      delete onceHandler.dom7proxy;
27530    }
27531  }
27532
27533  onceHandler.dom7proxy = listener;
27534  return dom.on(eventName, targetSelector, onceHandler, capture);
27535}
27536
27537function trigger(...args) {
27538  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27539  const events = args[0].split(' ');
27540  const eventData = args[1];
27541
27542  for (let i = 0; i < events.length; i += 1) {
27543    const event = events[i];
27544
27545    for (let j = 0; j < this.length; j += 1) {
27546      const el = this[j];
27547
27548      if (window.CustomEvent) {
27549        const evt = new window.CustomEvent(event, {
27550          detail: eventData,
27551          bubbles: true,
27552          cancelable: true
27553        });
27554        el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);
27555        el.dispatchEvent(evt);
27556        el.dom7EventData = [];
27557        delete el.dom7EventData;
27558      }
27559    }
27560  }
27561
27562  return this;
27563}
27564
27565function transitionEnd(callback) {
27566  const dom = this;
27567
27568  function fireCallBack(e) {
27569    if (e.target !== this) return;
27570    callback.call(this, e);
27571    dom.off('transitionend', fireCallBack);
27572  }
27573
27574  if (callback) {
27575    dom.on('transitionend', fireCallBack);
27576  }
27577
27578  return this;
27579}
27580
27581function animationEnd(callback) {
27582  const dom = this;
27583
27584  function fireCallBack(e) {
27585    if (e.target !== this) return;
27586    callback.call(this, e);
27587    dom.off('animationend', fireCallBack);
27588  }
27589
27590  if (callback) {
27591    dom.on('animationend', fireCallBack);
27592  }
27593
27594  return this;
27595}
27596
27597function width() {
27598  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27599
27600  if (this[0] === window) {
27601    return window.innerWidth;
27602  }
27603
27604  if (this.length > 0) {
27605    return parseFloat(this.css('width'));
27606  }
27607
27608  return null;
27609}
27610
27611function outerWidth(includeMargins) {
27612  if (this.length > 0) {
27613    if (includeMargins) {
27614      const styles = this.styles();
27615      return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));
27616    }
27617
27618    return this[0].offsetWidth;
27619  }
27620
27621  return null;
27622}
27623
27624function height() {
27625  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27626
27627  if (this[0] === window) {
27628    return window.innerHeight;
27629  }
27630
27631  if (this.length > 0) {
27632    return parseFloat(this.css('height'));
27633  }
27634
27635  return null;
27636}
27637
27638function outerHeight(includeMargins) {
27639  if (this.length > 0) {
27640    if (includeMargins) {
27641      const styles = this.styles();
27642      return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));
27643    }
27644
27645    return this[0].offsetHeight;
27646  }
27647
27648  return null;
27649}
27650
27651function offset() {
27652  if (this.length > 0) {
27653    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27654    const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
27655    const el = this[0];
27656    const box = el.getBoundingClientRect();
27657    const body = document.body;
27658    const clientTop = el.clientTop || body.clientTop || 0;
27659    const clientLeft = el.clientLeft || body.clientLeft || 0;
27660    const scrollTop = el === window ? window.scrollY : el.scrollTop;
27661    const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
27662    return {
27663      top: box.top + scrollTop - clientTop,
27664      left: box.left + scrollLeft - clientLeft
27665    };
27666  }
27667
27668  return null;
27669}
27670
27671function hide() {
27672  for (let i = 0; i < this.length; i += 1) {
27673    this[i].style.display = 'none';
27674  }
27675
27676  return this;
27677}
27678
27679function show() {
27680  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27681
27682  for (let i = 0; i < this.length; i += 1) {
27683    const el = this[i];
27684
27685    if (el.style.display === 'none') {
27686      el.style.display = '';
27687    }
27688
27689    if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {
27690      // Still not visible
27691      el.style.display = 'block';
27692    }
27693  }
27694
27695  return this;
27696}
27697
27698function styles() {
27699  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27700  if (this[0]) return window.getComputedStyle(this[0], null);
27701  return {};
27702}
27703
27704function css(props, value) {
27705  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27706  let i;
27707
27708  if (arguments.length === 1) {
27709    if (typeof props === 'string') {
27710      // .css('width')
27711      if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);
27712    } else {
27713      // .css({ width: '100px' })
27714      for (i = 0; i < this.length; i += 1) {
27715        for (const prop in props) {
27716          this[i].style[prop] = props[prop];
27717        }
27718      }
27719
27720      return this;
27721    }
27722  }
27723
27724  if (arguments.length === 2 && typeof props === 'string') {
27725    // .css('width', '100px')
27726    for (i = 0; i < this.length; i += 1) {
27727      this[i].style[props] = value;
27728    }
27729
27730    return this;
27731  }
27732
27733  return this;
27734}
27735
27736function each(callback) {
27737  if (!callback) return this;
27738  this.forEach((el, index) => {
27739    callback.apply(el, [el, index]);
27740  });
27741  return this;
27742}
27743
27744function filter(callback) {
27745  const result = arrayFilter(this, callback);
27746  return $(result);
27747}
27748
27749function html(html) {
27750  if (typeof html === 'undefined') {
27751    return this[0] ? this[0].innerHTML : null;
27752  }
27753
27754  for (let i = 0; i < this.length; i += 1) {
27755    this[i].innerHTML = html;
27756  }
27757
27758  return this;
27759}
27760
27761function text(text) {
27762  if (typeof text === 'undefined') {
27763    return this[0] ? this[0].textContent.trim() : null;
27764  }
27765
27766  for (let i = 0; i < this.length; i += 1) {
27767    this[i].textContent = text;
27768  }
27769
27770  return this;
27771}
27772
27773function is(selector) {
27774  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
27775  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
27776  const el = this[0];
27777  let compareWith;
27778  let i;
27779  if (!el || typeof selector === 'undefined') return false;
27780
27781  if (typeof selector === 'string') {
27782    if (el.matches) return el.matches(selector);
27783    if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);
27784    if (el.msMatchesSelector) return el.msMatchesSelector(selector);
27785    compareWith = $(selector);
27786
27787    for (i = 0; i < compareWith.length; i += 1) {
27788      if (compareWith[i] === el) return true;
27789    }
27790
27791    return false;
27792  }
27793
27794  if (selector === document) {
27795    return el === document;
27796  }
27797
27798  if (selector === window) {
27799    return el === window;
27800  }
27801
27802  if (selector.nodeType || selector instanceof Dom7) {
27803    compareWith = selector.nodeType ? [selector] : selector;
27804
27805    for (i = 0; i < compareWith.length; i += 1) {
27806      if (compareWith[i] === el) return true;
27807    }
27808
27809    return false;
27810  }
27811
27812  return false;
27813}
27814
27815function index() {
27816  let child = this[0];
27817  let i;
27818
27819  if (child) {
27820    i = 0; // eslint-disable-next-line
27821
27822    while ((child = child.previousSibling) !== null) {
27823      if (child.nodeType === 1) i += 1;
27824    }
27825
27826    return i;
27827  }
27828
27829  return undefined;
27830}
27831
27832function eq(index) {
27833  if (typeof index === 'undefined') return this;
27834  const length = this.length;
27835
27836  if (index > length - 1) {
27837    return $([]);
27838  }
27839
27840  if (index < 0) {
27841    const returnIndex = length + index;
27842    if (returnIndex < 0) return $([]);
27843    return $([this[returnIndex]]);
27844  }
27845
27846  return $([this[index]]);
27847}
27848
27849function append(...els) {
27850  let newChild;
27851  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
27852
27853  for (let k = 0; k < els.length; k += 1) {
27854    newChild = els[k];
27855
27856    for (let i = 0; i < this.length; i += 1) {
27857      if (typeof newChild === 'string') {
27858        const tempDiv = document.createElement('div');
27859        tempDiv.innerHTML = newChild;
27860
27861        while (tempDiv.firstChild) {
27862          this[i].appendChild(tempDiv.firstChild);
27863        }
27864      } else if (newChild instanceof Dom7) {
27865        for (let j = 0; j < newChild.length; j += 1) {
27866          this[i].appendChild(newChild[j]);
27867        }
27868      } else {
27869        this[i].appendChild(newChild);
27870      }
27871    }
27872  }
27873
27874  return this;
27875}
27876
27877function appendTo(parent) {
27878  $(parent).append(this);
27879  return this;
27880}
27881
27882function prepend(newChild) {
27883  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
27884  let i;
27885  let j;
27886
27887  for (i = 0; i < this.length; i += 1) {
27888    if (typeof newChild === 'string') {
27889      const tempDiv = document.createElement('div');
27890      tempDiv.innerHTML = newChild;
27891
27892      for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {
27893        this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
27894      }
27895    } else if (newChild instanceof Dom7) {
27896      for (j = 0; j < newChild.length; j += 1) {
27897        this[i].insertBefore(newChild[j], this[i].childNodes[0]);
27898      }
27899    } else {
27900      this[i].insertBefore(newChild, this[i].childNodes[0]);
27901    }
27902  }
27903
27904  return this;
27905}
27906
27907function prependTo(parent) {
27908  $(parent).prepend(this);
27909  return this;
27910}
27911
27912function insertBefore(selector) {
27913  const before = $(selector);
27914
27915  for (let i = 0; i < this.length; i += 1) {
27916    if (before.length === 1) {
27917      before[0].parentNode.insertBefore(this[i], before[0]);
27918    } else if (before.length > 1) {
27919      for (let j = 0; j < before.length; j += 1) {
27920        before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);
27921      }
27922    }
27923  }
27924}
27925
27926function insertAfter(selector) {
27927  const after = $(selector);
27928
27929  for (let i = 0; i < this.length; i += 1) {
27930    if (after.length === 1) {
27931      after[0].parentNode.insertBefore(this[i], after[0].nextSibling);
27932    } else if (after.length > 1) {
27933      for (let j = 0; j < after.length; j += 1) {
27934        after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);
27935      }
27936    }
27937  }
27938}
27939
27940function next(selector) {
27941  if (this.length > 0) {
27942    if (selector) {
27943      if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {
27944        return $([this[0].nextElementSibling]);
27945      }
27946
27947      return $([]);
27948    }
27949
27950    if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);
27951    return $([]);
27952  }
27953
27954  return $([]);
27955}
27956
27957function nextAll(selector) {
27958  const nextEls = [];
27959  let el = this[0];
27960  if (!el) return $([]);
27961
27962  while (el.nextElementSibling) {
27963    const next = el.nextElementSibling; // eslint-disable-line
27964
27965    if (selector) {
27966      if ($(next).is(selector)) nextEls.push(next);
27967    } else nextEls.push(next);
27968
27969    el = next;
27970  }
27971
27972  return $(nextEls);
27973}
27974
27975function prev(selector) {
27976  if (this.length > 0) {
27977    const el = this[0];
27978
27979    if (selector) {
27980      if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {
27981        return $([el.previousElementSibling]);
27982      }
27983
27984      return $([]);
27985    }
27986
27987    if (el.previousElementSibling) return $([el.previousElementSibling]);
27988    return $([]);
27989  }
27990
27991  return $([]);
27992}
27993
27994function prevAll(selector) {
27995  const prevEls = [];
27996  let el = this[0];
27997  if (!el) return $([]);
27998
27999  while (el.previousElementSibling) {
28000    const prev = el.previousElementSibling; // eslint-disable-line
28001
28002    if (selector) {
28003      if ($(prev).is(selector)) prevEls.push(prev);
28004    } else prevEls.push(prev);
28005
28006    el = prev;
28007  }
28008
28009  return $(prevEls);
28010}
28011
28012function siblings(selector) {
28013  return this.nextAll(selector).add(this.prevAll(selector));
28014}
28015
28016function parent(selector) {
28017  const parents = []; // eslint-disable-line
28018
28019  for (let i = 0; i < this.length; i += 1) {
28020    if (this[i].parentNode !== null) {
28021      if (selector) {
28022        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);
28023      } else {
28024        parents.push(this[i].parentNode);
28025      }
28026    }
28027  }
28028
28029  return $(parents);
28030}
28031
28032function parents(selector) {
28033  const parents = []; // eslint-disable-line
28034
28035  for (let i = 0; i < this.length; i += 1) {
28036    let parent = this[i].parentNode; // eslint-disable-line
28037
28038    while (parent) {
28039      if (selector) {
28040        if ($(parent).is(selector)) parents.push(parent);
28041      } else {
28042        parents.push(parent);
28043      }
28044
28045      parent = parent.parentNode;
28046    }
28047  }
28048
28049  return $(parents);
28050}
28051
28052function closest(selector) {
28053  let closest = this; // eslint-disable-line
28054
28055  if (typeof selector === 'undefined') {
28056    return $([]);
28057  }
28058
28059  if (!closest.is(selector)) {
28060    closest = closest.parents(selector).eq(0);
28061  }
28062
28063  return closest;
28064}
28065
28066function find(selector) {
28067  const foundElements = [];
28068
28069  for (let i = 0; i < this.length; i += 1) {
28070    const found = this[i].querySelectorAll(selector);
28071
28072    for (let j = 0; j < found.length; j += 1) {
28073      foundElements.push(found[j]);
28074    }
28075  }
28076
28077  return $(foundElements);
28078}
28079
28080function children(selector) {
28081  const children = []; // eslint-disable-line
28082
28083  for (let i = 0; i < this.length; i += 1) {
28084    const childNodes = this[i].children;
28085
28086    for (let j = 0; j < childNodes.length; j += 1) {
28087      if (!selector || $(childNodes[j]).is(selector)) {
28088        children.push(childNodes[j]);
28089      }
28090    }
28091  }
28092
28093  return $(children);
28094}
28095
28096function remove() {
28097  for (let i = 0; i < this.length; i += 1) {
28098    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);
28099  }
28100
28101  return this;
28102}
28103
28104function detach() {
28105  return this.remove();
28106}
28107
28108function add(...els) {
28109  const dom = this;
28110  let i;
28111  let j;
28112
28113  for (i = 0; i < els.length; i += 1) {
28114    const toAdd = $(els[i]);
28115
28116    for (j = 0; j < toAdd.length; j += 1) {
28117      dom.push(toAdd[j]);
28118    }
28119  }
28120
28121  return dom;
28122}
28123
28124function empty() {
28125  for (let i = 0; i < this.length; i += 1) {
28126    const el = this[i];
28127
28128    if (el.nodeType === 1) {
28129      for (let j = 0; j < el.childNodes.length; j += 1) {
28130        if (el.childNodes[j].parentNode) {
28131          el.childNodes[j].parentNode.removeChild(el.childNodes[j]);
28132        }
28133      }
28134
28135      el.textContent = '';
28136    }
28137  }
28138
28139  return this;
28140}
28141
28142// eslint-disable-next-line
28143
28144function scrollTo(...args) {
28145  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
28146  let [left, top, duration, easing, callback] = args;
28147
28148  if (args.length === 4 && typeof easing === 'function') {
28149    callback = easing;
28150    [left, top, duration, callback, easing] = args;
28151  }
28152
28153  if (typeof easing === 'undefined') easing = 'swing';
28154  return this.each(function animate() {
28155    const el = this;
28156    let currentTop;
28157    let currentLeft;
28158    let maxTop;
28159    let maxLeft;
28160    let newTop;
28161    let newLeft;
28162    let scrollTop; // eslint-disable-line
28163
28164    let scrollLeft; // eslint-disable-line
28165
28166    let animateTop = top > 0 || top === 0;
28167    let animateLeft = left > 0 || left === 0;
28168
28169    if (typeof easing === 'undefined') {
28170      easing = 'swing';
28171    }
28172
28173    if (animateTop) {
28174      currentTop = el.scrollTop;
28175
28176      if (!duration) {
28177        el.scrollTop = top;
28178      }
28179    }
28180
28181    if (animateLeft) {
28182      currentLeft = el.scrollLeft;
28183
28184      if (!duration) {
28185        el.scrollLeft = left;
28186      }
28187    }
28188
28189    if (!duration) return;
28190
28191    if (animateTop) {
28192      maxTop = el.scrollHeight - el.offsetHeight;
28193      newTop = Math.max(Math.min(top, maxTop), 0);
28194    }
28195
28196    if (animateLeft) {
28197      maxLeft = el.scrollWidth - el.offsetWidth;
28198      newLeft = Math.max(Math.min(left, maxLeft), 0);
28199    }
28200
28201    let startTime = null;
28202    if (animateTop && newTop === currentTop) animateTop = false;
28203    if (animateLeft && newLeft === currentLeft) animateLeft = false;
28204
28205    function render(time = new Date().getTime()) {
28206      if (startTime === null) {
28207        startTime = time;
28208      }
28209
28210      const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
28211      const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;
28212      let done;
28213      if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);
28214      if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);
28215
28216      if (animateTop && newTop > currentTop && scrollTop >= newTop) {
28217        el.scrollTop = newTop;
28218        done = true;
28219      }
28220
28221      if (animateTop && newTop < currentTop && scrollTop <= newTop) {
28222        el.scrollTop = newTop;
28223        done = true;
28224      }
28225
28226      if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {
28227        el.scrollLeft = newLeft;
28228        done = true;
28229      }
28230
28231      if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {
28232        el.scrollLeft = newLeft;
28233        done = true;
28234      }
28235
28236      if (done) {
28237        if (callback) callback();
28238        return;
28239      }
28240
28241      if (animateTop) el.scrollTop = scrollTop;
28242      if (animateLeft) el.scrollLeft = scrollLeft;
28243      window.requestAnimationFrame(render);
28244    }
28245
28246    window.requestAnimationFrame(render);
28247  });
28248} // scrollTop(top, duration, easing, callback) {
28249
28250
28251function scrollTop(...args) {
28252  let [top, duration, easing, callback] = args;
28253
28254  if (args.length === 3 && typeof easing === 'function') {
28255    [top, duration, callback, easing] = args;
28256  }
28257
28258  const dom = this;
28259
28260  if (typeof top === 'undefined') {
28261    if (dom.length > 0) return dom[0].scrollTop;
28262    return null;
28263  }
28264
28265  return dom.scrollTo(undefined, top, duration, easing, callback);
28266}
28267
28268function scrollLeft(...args) {
28269  let [left, duration, easing, callback] = args;
28270
28271  if (args.length === 3 && typeof easing === 'function') {
28272    [left, duration, callback, easing] = args;
28273  }
28274
28275  const dom = this;
28276
28277  if (typeof left === 'undefined') {
28278    if (dom.length > 0) return dom[0].scrollLeft;
28279    return null;
28280  }
28281
28282  return dom.scrollTo(left, undefined, duration, easing, callback);
28283}
28284
28285// eslint-disable-next-line
28286
28287function animate(initialProps, initialParams) {
28288  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
28289  const els = this;
28290  const a = {
28291    props: Object.assign({}, initialProps),
28292    params: Object.assign({
28293      duration: 300,
28294      easing: 'swing' // or 'linear'
28295
28296      /* Callbacks
28297      begin(elements)
28298      complete(elements)
28299      progress(elements, complete, remaining, start, tweenValue)
28300      */
28301
28302    }, initialParams),
28303    elements: els,
28304    animating: false,
28305    que: [],
28306
28307    easingProgress(easing, progress) {
28308      if (easing === 'swing') {
28309        return 0.5 - Math.cos(progress * Math.PI) / 2;
28310      }
28311
28312      if (typeof easing === 'function') {
28313        return easing(progress);
28314      }
28315
28316      return progress;
28317    },
28318
28319    stop() {
28320      if (a.frameId) {
28321        window.cancelAnimationFrame(a.frameId);
28322      }
28323
28324      a.animating = false;
28325      a.elements.each(el => {
28326        const element = el;
28327        delete element.dom7AnimateInstance;
28328      });
28329      a.que = [];
28330    },
28331
28332    done(complete) {
28333      a.animating = false;
28334      a.elements.each(el => {
28335        const element = el;
28336        delete element.dom7AnimateInstance;
28337      });
28338      if (complete) complete(els);
28339
28340      if (a.que.length > 0) {
28341        const que = a.que.shift();
28342        a.animate(que[0], que[1]);
28343      }
28344    },
28345
28346    animate(props, params) {
28347      if (a.animating) {
28348        a.que.push([props, params]);
28349        return a;
28350      }
28351
28352      const elements = []; // Define & Cache Initials & Units
28353
28354      a.elements.each((el, index) => {
28355        let initialFullValue;
28356        let initialValue;
28357        let unit;
28358        let finalValue;
28359        let finalFullValue;
28360        if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;
28361        elements[index] = {
28362          container: el
28363        };
28364        Object.keys(props).forEach(prop => {
28365          initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');
28366          initialValue = parseFloat(initialFullValue);
28367          unit = initialFullValue.replace(initialValue, '');
28368          finalValue = parseFloat(props[prop]);
28369          finalFullValue = props[prop] + unit;
28370          elements[index][prop] = {
28371            initialFullValue,
28372            initialValue,
28373            unit,
28374            finalValue,
28375            finalFullValue,
28376            currentValue: initialValue
28377          };
28378        });
28379      });
28380      let startTime = null;
28381      let time;
28382      let elementsDone = 0;
28383      let propsDone = 0;
28384      let done;
28385      let began = false;
28386      a.animating = true;
28387
28388      function render() {
28389        time = new Date().getTime();
28390        let progress;
28391        let easeProgress; // let el;
28392
28393        if (!began) {
28394          began = true;
28395          if (params.begin) params.begin(els);
28396        }
28397
28398        if (startTime === null) {
28399          startTime = time;
28400        }
28401
28402        if (params.progress) {
28403          // eslint-disable-next-line
28404          params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);
28405        }
28406
28407        elements.forEach(element => {
28408          const el = element;
28409          if (done || el.done) return;
28410          Object.keys(props).forEach(prop => {
28411            if (done || el.done) return;
28412            progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);
28413            easeProgress = a.easingProgress(params.easing, progress);
28414            const {
28415              initialValue,
28416              finalValue,
28417              unit
28418            } = el[prop];
28419            el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);
28420            const currentValue = el[prop].currentValue;
28421
28422            if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {
28423              el.container.style[prop] = finalValue + unit;
28424              propsDone += 1;
28425
28426              if (propsDone === Object.keys(props).length) {
28427                el.done = true;
28428                elementsDone += 1;
28429              }
28430
28431              if (elementsDone === elements.length) {
28432                done = true;
28433              }
28434            }
28435
28436            if (done) {
28437              a.done(params.complete);
28438              return;
28439            }
28440
28441            el.container.style[prop] = currentValue + unit;
28442          });
28443        });
28444        if (done) return; // Then call
28445
28446        a.frameId = window.requestAnimationFrame(render);
28447      }
28448
28449      a.frameId = window.requestAnimationFrame(render);
28450      return a;
28451    }
28452
28453  };
28454
28455  if (a.elements.length === 0) {
28456    return els;
28457  }
28458
28459  let animateInstance;
28460
28461  for (let i = 0; i < a.elements.length; i += 1) {
28462    if (a.elements[i].dom7AnimateInstance) {
28463      animateInstance = a.elements[i].dom7AnimateInstance;
28464    } else a.elements[i].dom7AnimateInstance = a;
28465  }
28466
28467  if (!animateInstance) {
28468    animateInstance = a;
28469  }
28470
28471  if (initialProps === 'stop') {
28472    animateInstance.stop();
28473  } else {
28474    animateInstance.animate(a.props, a.params);
28475  }
28476
28477  return els;
28478}
28479
28480function stop() {
28481  const els = this;
28482
28483  for (let i = 0; i < els.length; i += 1) {
28484    if (els[i].dom7AnimateInstance) {
28485      els[i].dom7AnimateInstance.stop();
28486    }
28487  }
28488}
28489
28490const noTrigger = 'resize scroll'.split(' ');
28491
28492function shortcut(name) {
28493  function eventHandler(...args) {
28494    if (typeof args[0] === 'undefined') {
28495      for (let i = 0; i < this.length; i += 1) {
28496        if (noTrigger.indexOf(name) < 0) {
28497          if (name in this[i]) this[i][name]();else {
28498            $(this[i]).trigger(name);
28499          }
28500        }
28501      }
28502
28503      return this;
28504    }
28505
28506    return this.on(name, ...args);
28507  }
28508
28509  return eventHandler;
28510}
28511
28512const click = shortcut('click');
28513const blur = shortcut('blur');
28514const focus = shortcut('focus');
28515const focusin = shortcut('focusin');
28516const focusout = shortcut('focusout');
28517const keyup = shortcut('keyup');
28518const keydown = shortcut('keydown');
28519const keypress = shortcut('keypress');
28520const submit = shortcut('submit');
28521const change = shortcut('change');
28522const mousedown = shortcut('mousedown');
28523const mousemove = shortcut('mousemove');
28524const mouseup = shortcut('mouseup');
28525const mouseenter = shortcut('mouseenter');
28526const mouseleave = shortcut('mouseleave');
28527const mouseout = shortcut('mouseout');
28528const mouseover = shortcut('mouseover');
28529const touchstart = shortcut('touchstart');
28530const touchend = shortcut('touchend');
28531const touchmove = shortcut('touchmove');
28532const resize = shortcut('resize');
28533const scroll = shortcut('scroll');
28534
28535/* harmony default export */ __webpack_exports__["default"] = ($);
28536
28537
28538
28539/***/ }),
28540
vendor: 4,023 bytes, lines 28541-28707
28541/***/ "./node_modules/ssr-window/ssr-window.esm.js":
28542/*!***************************************************!*\
28543  !*** ./node_modules/ssr-window/ssr-window.esm.js ***!
28544  \***************************************************/
28545/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28546
28547"use strict";
28548__webpack_require__.r(__webpack_exports__);
28549/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28550/* harmony export */   "extend": function() { return /* binding */ extend; },
28551/* harmony export */   "getDocument": function() { return /* binding */ getDocument; },
28552/* harmony export */   "getWindow": function() { return /* binding */ getWindow; },
28553/* harmony export */   "ssrDocument": function() { return /* binding */ ssrDocument; },
28554/* harmony export */   "ssrWindow": function() { return /* binding */ ssrWindow; }
28555/* harmony export */ });
28556/**
28557 * SSR Window 4.0.2
28558 * Better handling for window object in SSR environment
28559 * https://github.com/nolimits4web/ssr-window
28560 *
28561 * Copyright 2021, Vladimir Kharlampidi
28562 *
28563 * Licensed under MIT
28564 *
28565 * Released on: December 13, 2021
28566 */
28567/* eslint-disable no-param-reassign */
28568function isObject(obj) {
28569    return (obj !== null &&
28570        typeof obj === 'object' &&
28571        'constructor' in obj &&
28572        obj.constructor === Object);
28573}
28574function extend(target = {}, src = {}) {
28575    Object.keys(src).forEach((key) => {
28576        if (typeof target[key] === 'undefined')
28577            target[key] = src[key];
28578        else if (isObject(src[key]) &&
28579            isObject(target[key]) &&
28580            Object.keys(src[key]).length > 0) {
28581            extend(target[key], src[key]);
28582        }
28583    });
28584}
28585
28586const ssrDocument = {
28587    body: {},
28588    addEventListener() { },
28589    removeEventListener() { },
28590    activeElement: {
28591        blur() { },
28592        nodeName: '',
28593    },
28594    querySelector() {
28595        return null;
28596    },
28597    querySelectorAll() {
28598        return [];
28599    },
28600    getElementById() {
28601        return null;
28602    },
28603    createEvent() {
28604        return {
28605            initEvent() { },
28606        };
28607    },
28608    createElement() {
28609        return {
28610            children: [],
28611            childNodes: [],
28612            style: {},
28613            setAttribute() { },
28614            getElementsByTagName() {
28615                return [];
28616            },
28617        };
28618    },
28619    createElementNS() {
28620        return {};
28621    },
28622    importNode() {
28623        return null;
28624    },
28625    location: {
28626        hash: '',
28627        host: '',
28628        hostname: '',
28629        href: '',
28630        origin: '',
28631        pathname: '',
28632        protocol: '',
28633        search: '',
28634    },
28635};
28636function getDocument() {
28637    const doc = typeof document !== 'undefined' ? document : {};
28638    extend(doc, ssrDocument);
28639    return doc;
28640}
28641
28642const ssrWindow = {
28643    document: ssrDocument,
28644    navigator: {
28645        userAgent: '',
28646    },
28647    location: {
28648        hash: '',
28649        host: '',
28650        hostname: '',
28651        href: '',
28652        origin: '',
28653        pathname: '',
28654        protocol: '',
28655        search: '',
28656    },
28657    history: {
28658        replaceState() { },
28659        pushState() { },
28660        go() { },
28661        back() { },
28662    },
28663    CustomEvent: function CustomEvent() {
28664        return this;
28665    },
28666    addEventListener() { },
28667    removeEventListener() { },
28668    getComputedStyle() {
28669        return {
28670            getPropertyValue() {
28671                return '';
28672            },
28673        };
28674    },
28675    Image() { },
28676    Date() { },
28677    screen: {},
28678    setTimeout() { },
28679    clearTimeout() { },
28680    matchMedia() {
28681        return {};
28682    },
28683    requestAnimationFrame(callback) {
28684        if (typeof setTimeout === 'undefined') {
28685            callback();
28686            return null;
28687        }
28688        return setTimeout(callback, 0);
28689    },
28690    cancelAnimationFrame(id) {
28691        if (typeof setTimeout === 'undefined') {
28692            return;
28693        }
28694        clearTimeout(id);
28695    },
28696};
28697function getWindow() {
28698    const win = typeof window !== 'undefined' ? window : {};
28699    extend(win, ssrWindow);
28700    return win;
28701}
28702
28703
28704
28705
28706/***/ }),
28707
vendor: 1,912 bytes, lines 28708-28766
28708/***/ "./node_modules/swiper/core/breakpoints/getBreakpoint.js":
28709/*!***************************************************************!*\
28710  !*** ./node_modules/swiper/core/breakpoints/getBreakpoint.js ***!
28711  \***************************************************************/
28712/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28713
28714"use strict";
28715__webpack_require__.r(__webpack_exports__);
28716/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28717/* harmony export */   "default": function() { return /* binding */ getBreakpoint; }
28718/* harmony export */ });
28719/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
28720
28721function getBreakpoint(breakpoints, base, containerEl) {
28722  if (base === void 0) {
28723    base = 'window';
28724  }
28725
28726  if (!breakpoints || base === 'container' && !containerEl) return undefined;
28727  let breakpoint = false;
28728  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
28729  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
28730  const points = Object.keys(breakpoints).map(point => {
28731    if (typeof point === 'string' && point.indexOf('@') === 0) {
28732      const minRatio = parseFloat(point.substr(1));
28733      const value = currentHeight * minRatio;
28734      return {
28735        value,
28736        point
28737      };
28738    }
28739
28740    return {
28741      value: point,
28742      point
28743    };
28744  });
28745  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
28746
28747  for (let i = 0; i < points.length; i += 1) {
28748    const {
28749      point,
28750      value
28751    } = points[i];
28752
28753    if (base === 'window') {
28754      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
28755        breakpoint = point;
28756      }
28757    } else if (value <= containerEl.clientWidth) {
28758      breakpoint = point;
28759    }
28760  }
28761
28762  return breakpoint || 'max';
28763}
28764
28765/***/ }),
28766
vendor: 989 bytes, lines 28767-28785
28767/***/ "./node_modules/swiper/core/breakpoints/index.js":
28768/*!*******************************************************!*\
28769  !*** ./node_modules/swiper/core/breakpoints/index.js ***!
28770  \*******************************************************/
28771/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28772
28773"use strict";
28774__webpack_require__.r(__webpack_exports__);
28775/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ "./node_modules/swiper/core/breakpoints/setBreakpoint.js");
28776/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ "./node_modules/swiper/core/breakpoints/getBreakpoint.js");
28777
28778
28779/* harmony default export */ __webpack_exports__["default"] = ({
28780  setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__["default"],
28781  getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__["default"]
28782});
28783
28784/***/ }),
28785
vendor: 3,336 bytes, lines 28786-28872
28786/***/ "./node_modules/swiper/core/breakpoints/setBreakpoint.js":
28787/*!***************************************************************!*\
28788  !*** ./node_modules/swiper/core/breakpoints/setBreakpoint.js ***!
28789  \***************************************************************/
28790/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28791
28792"use strict";
28793__webpack_require__.r(__webpack_exports__);
28794/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28795/* harmony export */   "default": function() { return /* binding */ setBreakpoint; }
28796/* harmony export */ });
28797/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
28798
28799
28800const isGridEnabled = (swiper, params) => {
28801  return swiper.grid && params.grid && params.grid.rows > 1;
28802};
28803
28804function setBreakpoint() {
28805  const swiper = this;
28806  const {
28807    activeIndex,
28808    initialized,
28809    loopedSlides = 0,
28810    params,
28811    $el
28812  } = swiper;
28813  const breakpoints = params.breakpoints;
28814  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters
28815
28816  const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
28817  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
28818  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
28819  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
28820  const wasMultiRow = isGridEnabled(swiper, params);
28821  const isMultiRow = isGridEnabled(swiper, breakpointParams);
28822  const wasEnabled = params.enabled;
28823
28824  if (wasMultiRow && !isMultiRow) {
28825    $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);
28826    swiper.emitContainerClasses();
28827  } else if (!wasMultiRow && isMultiRow) {
28828    $el.addClass(`${params.containerModifierClass}grid`);
28829
28830    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
28831      $el.addClass(`${params.containerModifierClass}grid-column`);
28832    }
28833
28834    swiper.emitContainerClasses();
28835  }
28836
28837  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
28838  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
28839
28840  if (directionChanged && initialized) {
28841    swiper.changeDirection();
28842  }
28843
28844  (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams);
28845  const isEnabled = swiper.params.enabled;
28846  Object.assign(swiper, {
28847    allowTouchMove: swiper.params.allowTouchMove,
28848    allowSlideNext: swiper.params.allowSlideNext,
28849    allowSlidePrev: swiper.params.allowSlidePrev
28850  });
28851
28852  if (wasEnabled && !isEnabled) {
28853    swiper.disable();
28854  } else if (!wasEnabled && isEnabled) {
28855    swiper.enable();
28856  }
28857
28858  swiper.currentBreakpoint = breakpoint;
28859  swiper.emit('_beforeBreakpoint', breakpointParams);
28860
28861  if (needsReLoop && initialized) {
28862    swiper.loopDestroy();
28863    swiper.loopCreate();
28864    swiper.updateSlides();
28865    swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);
28866  }
28867
28868  swiper.emit('breakpoint', breakpointParams);
28869}
28870
28871/***/ }),
28872
vendor: 1,364 bytes, lines 28873-28921
28873/***/ "./node_modules/swiper/core/check-overflow/index.js":
28874/*!**********************************************************!*\
28875  !*** ./node_modules/swiper/core/check-overflow/index.js ***!
28876  \**********************************************************/
28877/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28878
28879"use strict";
28880__webpack_require__.r(__webpack_exports__);
28881function checkOverflow() {
28882  const swiper = this;
28883  const {
28884    isLocked: wasLocked,
28885    params
28886  } = swiper;
28887  const {
28888    slidesOffsetBefore
28889  } = params;
28890
28891  if (slidesOffsetBefore) {
28892    const lastSlideIndex = swiper.slides.length - 1;
28893    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
28894    swiper.isLocked = swiper.size > lastSlideRightEdge;
28895  } else {
28896    swiper.isLocked = swiper.snapGrid.length === 1;
28897  }
28898
28899  if (params.allowSlideNext === true) {
28900    swiper.allowSlideNext = !swiper.isLocked;
28901  }
28902
28903  if (params.allowSlidePrev === true) {
28904    swiper.allowSlidePrev = !swiper.isLocked;
28905  }
28906
28907  if (wasLocked && wasLocked !== swiper.isLocked) {
28908    swiper.isEnd = false;
28909  }
28910
28911  if (wasLocked !== swiper.isLocked) {
28912    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
28913  }
28914}
28915
28916/* harmony default export */ __webpack_exports__["default"] = ({
28917  checkOverflow
28918});
28919
28920/***/ }),
28921
vendor: 1,921 bytes, lines 28922-28989
28922/***/ "./node_modules/swiper/core/classes/addClasses.js":
28923/*!********************************************************!*\
28924  !*** ./node_modules/swiper/core/classes/addClasses.js ***!
28925  \********************************************************/
28926/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28927
28928"use strict";
28929__webpack_require__.r(__webpack_exports__);
28930/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28931/* harmony export */   "default": function() { return /* binding */ addClasses; }
28932/* harmony export */ });
28933function prepareClasses(entries, prefix) {
28934  const resultClasses = [];
28935  entries.forEach(item => {
28936    if (typeof item === 'object') {
28937      Object.keys(item).forEach(classNames => {
28938        if (item[classNames]) {
28939          resultClasses.push(prefix + classNames);
28940        }
28941      });
28942    } else if (typeof item === 'string') {
28943      resultClasses.push(prefix + item);
28944    }
28945  });
28946  return resultClasses;
28947}
28948
28949function addClasses() {
28950  const swiper = this;
28951  const {
28952    classNames,
28953    params,
28954    rtl,
28955    $el,
28956    device,
28957    support
28958  } = swiper; // prettier-ignore
28959
28960  const suffixes = prepareClasses(['initialized', params.direction, {
28961    'pointer-events': !support.touch
28962  }, {
28963    'free-mode': swiper.params.freeMode && params.freeMode.enabled
28964  }, {
28965    'autoheight': params.autoHeight
28966  }, {
28967    'rtl': rtl
28968  }, {
28969    'grid': params.grid && params.grid.rows > 1
28970  }, {
28971    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
28972  }, {
28973    'android': device.android
28974  }, {
28975    'ios': device.ios
28976  }, {
28977    'css-mode': params.cssMode
28978  }, {
28979    'centered': params.cssMode && params.centeredSlides
28980  }, {
28981    'watch-progress': params.watchSlidesProgress
28982  }], params.containerModifierClass);
28983  classNames.push(...suffixes);
28984  $el.addClass([...classNames].join(' '));
28985  swiper.emitContainerClasses();
28986}
28987
28988/***/ }),
28989
vendor: 950 bytes, lines 28990-29008
28990/***/ "./node_modules/swiper/core/classes/index.js":
28991/*!***************************************************!*\
28992  !*** ./node_modules/swiper/core/classes/index.js ***!
28993  \***************************************************/
28994/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
28995
28996"use strict";
28997__webpack_require__.r(__webpack_exports__);
28998/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ "./node_modules/swiper/core/classes/addClasses.js");
28999/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ "./node_modules/swiper/core/classes/removeClasses.js");
29000
29001
29002/* harmony default export */ __webpack_exports__["default"] = ({
29003  addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__["default"],
29004  removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__["default"]
29005});
29006
29007/***/ }),
29008
vendor: 773 bytes, lines 29009-29031
29009/***/ "./node_modules/swiper/core/classes/removeClasses.js":
29010/*!***********************************************************!*\
29011  !*** ./node_modules/swiper/core/classes/removeClasses.js ***!
29012  \***********************************************************/
29013/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
29014
29015"use strict";
29016__webpack_require__.r(__webpack_exports__);
29017/* harmony export */ __webpack_require__.d(__webpack_exports__, {
29018/* harmony export */   "default": function() { return /* binding */ removeClasses; }
29019/* harmony export */ });
29020function removeClasses() {
29021  const swiper = this;
29022  const {
29023    $el,
29024    classNames
29025  } = swiper;
29026  $el.removeClass(classNames.join(' '));
29027  swiper.emitContainerClasses();
29028}
29029
29030/***/ }),
29031
vendor: 22,245 bytes, lines 29032-29703
29032/***/ "./node_modules/swiper/core/core.js":
29033/*!******************************************!*\
29034  !*** ./node_modules/swiper/core/core.js ***!
29035  \******************************************/
29036/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
29037
29038"use strict";
29039__webpack_require__.r(__webpack_exports__);
29040/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
29041/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
29042/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
29043/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-support.js */ "./node_modules/swiper/shared/get-support.js");
29044/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-device.js */ "./node_modules/swiper/shared/get-device.js");
29045/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/get-browser.js */ "./node_modules/swiper/shared/get-browser.js");
29046/* harmony import */ var _modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/resize/resize.js */ "./node_modules/swiper/core/modules/resize/resize.js");
29047/* harmony import */ var _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/observer/observer.js */ "./node_modules/swiper/core/modules/observer/observer.js");
29048/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./events-emitter.js */ "./node_modules/swiper/core/events-emitter.js");
29049/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./update/index.js */ "./node_modules/swiper/core/update/index.js");
29050/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./translate/index.js */ "./node_modules/swiper/core/translate/index.js");
29051/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/swiper/core/transition/index.js");
29052/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./slide/index.js */ "./node_modules/swiper/core/slide/index.js");
29053/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./loop/index.js */ "./node_modules/swiper/core/loop/index.js");
29054/* harmony import */ var _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./grab-cursor/index.js */ "./node_modules/swiper/core/grab-cursor/index.js");
29055/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./events/index.js */ "./node_modules/swiper/core/events/index.js");
29056/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./breakpoints/index.js */ "./node_modules/swiper/core/breakpoints/index.js");
29057/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./classes/index.js */ "./node_modules/swiper/core/classes/index.js");
29058/* harmony import */ var _images_index_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./images/index.js */ "./node_modules/swiper/core/images/index.js");
29059/* harmony import */ var _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./check-overflow/index.js */ "./node_modules/swiper/core/check-overflow/index.js");
29060/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./defaults.js */ "./node_modules/swiper/core/defaults.js");
29061/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./moduleExtendParams.js */ "./node_modules/swiper/core/moduleExtendParams.js");
29062/* eslint no-param-reassign: "off" */
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085const prototypes = {
29086  eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__["default"],
29087  update: _update_index_js__WEBPACK_IMPORTED_MODULE_9__["default"],
29088  translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_10__["default"],
29089  transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_11__["default"],
29090  slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_12__["default"],
29091  loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_13__["default"],
29092  grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__["default"],
29093  events: _events_index_js__WEBPACK_IMPORTED_MODULE_15__["default"],
29094  breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__["default"],
29095  checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__["default"],
29096  classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_17__["default"],
29097  images: _images_index_js__WEBPACK_IMPORTED_MODULE_18__["default"]
29098};
29099const extendedDefaults = {};
29100
29101class Swiper {
29102  constructor() {
29103    let el;
29104    let params;
29105
29106    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29107      args[_key] = arguments[_key];
29108    }
29109
29110    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
29111      params = args[0];
29112    } else {
29113      [el, params] = args;
29114    }
29115
29116    if (!params) params = {};
29117    params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params);
29118    if (el && !params.el) params.el = el;
29119
29120    if (params.el && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).length > 1) {
29121      const swipers = [];
29122      (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).each(containerEl => {
29123        const newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params, {
29124          el: containerEl
29125        });
29126        swipers.push(new Swiper(newParams));
29127      });
29128      return swipers;
29129    } // Swiper Instance
29130
29131
29132    const swiper = this;
29133    swiper.__swiper__ = true;
29134    swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__.getSupport)();
29135    swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__.getDevice)({
29136      userAgent: params.userAgent
29137    });
29138    swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__.getBrowser)();
29139    swiper.eventsListeners = {};
29140    swiper.eventsAnyListeners = [];
29141    swiper.modules = [...swiper.__modules__];
29142
29143    if (params.modules && Array.isArray(params.modules)) {
29144      swiper.modules.push(...params.modules);
29145    }
29146
29147    const allModulesParams = {};
29148    swiper.modules.forEach(mod => {
29149      mod({
29150        swiper,
29151        extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__["default"])(params, allModulesParams),
29152        on: swiper.on.bind(swiper),
29153        once: swiper.once.bind(swiper),
29154        off: swiper.off.bind(swiper),
29155        emit: swiper.emit.bind(swiper)
29156      });
29157    }); // Extend defaults with modules params
29158
29159    const swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"], allModulesParams); // Extend defaults with passed params
29160
29161    swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiperParams, extendedDefaults, params);
29162    swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiper.params);
29163    swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); // add event listeners
29164
29165    if (swiper.params && swiper.params.on) {
29166      Object.keys(swiper.params.on).forEach(eventName => {
29167        swiper.on(eventName, swiper.params.on[eventName]);
29168      });
29169    }
29170
29171    if (swiper.params && swiper.params.onAny) {
29172      swiper.onAny(swiper.params.onAny);
29173    } // Save Dom lib
29174
29175
29176    swiper.$ = _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"]; // Extend Swiper
29177
29178    Object.assign(swiper, {
29179      enabled: swiper.params.enabled,
29180      el,
29181      // Classes
29182      classNames: [],
29183      // Slides
29184      slides: (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(),
29185      slidesGrid: [],
29186      snapGrid: [],
29187      slidesSizesGrid: [],
29188
29189      // isDirection
29190      isHorizontal() {
29191        return swiper.params.direction === 'horizontal';
29192      },
29193
29194      isVertical() {
29195        return swiper.params.direction === 'vertical';
29196      },
29197
29198      // Indexes
29199      activeIndex: 0,
29200      realIndex: 0,
29201      //
29202      isBeginning: true,
29203      isEnd: false,
29204      // Props
29205      translate: 0,
29206      previousTranslate: 0,
29207      progress: 0,
29208      velocity: 0,
29209      animating: false,
29210      // Locks
29211      allowSlideNext: swiper.params.allowSlideNext,
29212      allowSlidePrev: swiper.params.allowSlidePrev,
29213      // Touch Events
29214      touchEvents: function touchEvents() {
29215        const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];
29216        const desktop = ['pointerdown', 'pointermove', 'pointerup'];
29217        swiper.touchEventsTouch = {
29218          start: touch[0],
29219          move: touch[1],
29220          end: touch[2],
29221          cancel: touch[3]
29222        };
29223        swiper.touchEventsDesktop = {
29224          start: desktop[0],
29225          move: desktop[1],
29226          end: desktop[2]
29227        };
29228        return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;
29229      }(),
29230      touchEventsData: {
29231        isTouched: undefined,
29232        isMoved: undefined,
29233        allowTouchCallbacks: undefined,
29234        touchStartTime: undefined,
29235        isScrolling: undefined,
29236        currentTranslate: undefined,
29237        startTranslate: undefined,
29238        allowThresholdMove: undefined,
29239        // Form elements to match
29240        focusableElements: swiper.params.focusableElements,
29241        // Last click time
29242        lastClickTime: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),
29243        clickTimeout: undefined,
29244        // Velocities
29245        velocities: [],
29246        allowMomentumBounce: undefined,
29247        isTouchEvent: undefined,
29248        startMoving: undefined
29249      },
29250      // Clicks
29251      allowClick: true,
29252      // Touches
29253      allowTouchMove: swiper.params.allowTouchMove,
29254      touches: {
29255        startX: 0,
29256        startY: 0,
29257        currentX: 0,
29258        currentY: 0,
29259        diff: 0
29260      },
29261      // Images
29262      imagesToLoad: [],
29263      imagesLoaded: 0
29264    });
29265    swiper.emit('_swiper'); // Init
29266
29267    if (swiper.params.init) {
29268      swiper.init();
29269    } // Return app instance
29270
29271
29272    return swiper;
29273  }
29274
29275  enable() {
29276    const swiper = this;
29277    if (swiper.enabled) return;
29278    swiper.enabled = true;
29279
29280    if (swiper.params.grabCursor) {
29281      swiper.setGrabCursor();
29282    }
29283
29284    swiper.emit('enable');
29285  }
29286
29287  disable() {
29288    const swiper = this;
29289    if (!swiper.enabled) return;
29290    swiper.enabled = false;
29291
29292    if (swiper.params.grabCursor) {
29293      swiper.unsetGrabCursor();
29294    }
29295
29296    swiper.emit('disable');
29297  }
29298
29299  setProgress(progress, speed) {
29300    const swiper = this;
29301    progress = Math.min(Math.max(progress, 0), 1);
29302    const min = swiper.minTranslate();
29303    const max = swiper.maxTranslate();
29304    const current = (max - min) * progress + min;
29305    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
29306    swiper.updateActiveIndex();
29307    swiper.updateSlidesClasses();
29308  }
29309
29310  emitContainerClasses() {
29311    const swiper = this;
29312    if (!swiper.params._emitClasses || !swiper.el) return;
29313    const cls = swiper.el.className.split(' ').filter(className => {
29314      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
29315    });
29316    swiper.emit('_containerClasses', cls.join(' '));
29317  }
29318
29319  getSlideClasses(slideEl) {
29320    const swiper = this;
29321    if (swiper.destroyed) return '';
29322    return slideEl.className.split(' ').filter(className => {
29323      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
29324    }).join(' ');
29325  }
29326
29327  emitSlidesClasses() {
29328    const swiper = this;
29329    if (!swiper.params._emitClasses || !swiper.el) return;
29330    const updates = [];
29331    swiper.slides.each(slideEl => {
29332      const classNames = swiper.getSlideClasses(slideEl);
29333      updates.push({
29334        slideEl,
29335        classNames
29336      });
29337      swiper.emit('_slideClass', slideEl, classNames);
29338    });
29339    swiper.emit('_slideClasses', updates);
29340  }
29341
29342  slidesPerViewDynamic(view, exact) {
29343    if (view === void 0) {
29344      view = 'current';
29345    }
29346
29347    if (exact === void 0) {
29348      exact = false;
29349    }
29350
29351    const swiper = this;
29352    const {
29353      params,
29354      slides,
29355      slidesGrid,
29356      slidesSizesGrid,
29357      size: swiperSize,
29358      activeIndex
29359    } = swiper;
29360    let spv = 1;
29361
29362    if (params.centeredSlides) {
29363      let slideSize = slides[activeIndex].swiperSlideSize;
29364      let breakLoop;
29365
29366      for (let i = activeIndex + 1; i < slides.length; i += 1) {
29367        if (slides[i] && !breakLoop) {
29368          slideSize += slides[i].swiperSlideSize;
29369          spv += 1;
29370          if (slideSize > swiperSize) breakLoop = true;
29371        }
29372      }
29373
29374      for (let i = activeIndex - 1; i >= 0; i -= 1) {
29375        if (slides[i] && !breakLoop) {
29376          slideSize += slides[i].swiperSlideSize;
29377          spv += 1;
29378          if (slideSize > swiperSize) breakLoop = true;
29379        }
29380      }
29381    } else {
29382      // eslint-disable-next-line
29383      if (view === 'current') {
29384        for (let i = activeIndex + 1; i < slides.length; i += 1) {
29385          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
29386
29387          if (slideInView) {
29388            spv += 1;
29389          }
29390        }
29391      } else {
29392        // previous
29393        for (let i = activeIndex - 1; i >= 0; i -= 1) {
29394          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
29395
29396          if (slideInView) {
29397            spv += 1;
29398          }
29399        }
29400      }
29401    }
29402
29403    return spv;
29404  }
29405
29406  update() {
29407    const swiper = this;
29408    if (!swiper || swiper.destroyed) return;
29409    const {
29410      snapGrid,
29411      params
29412    } = swiper; // Breakpoints
29413
29414    if (params.breakpoints) {
29415      swiper.setBreakpoint();
29416    }
29417
29418    swiper.updateSize();
29419    swiper.updateSlides();
29420    swiper.updateProgress();
29421    swiper.updateSlidesClasses();
29422
29423    function setTranslate() {
29424      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
29425      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
29426      swiper.setTranslate(newTranslate);
29427      swiper.updateActiveIndex();
29428      swiper.updateSlidesClasses();
29429    }
29430
29431    let translated;
29432
29433    if (swiper.params.freeMode && swiper.params.freeMode.enabled) {
29434      setTranslate();
29435
29436      if (swiper.params.autoHeight) {
29437        swiper.updateAutoHeight();
29438      }
29439    } else {
29440      if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {
29441        translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);
29442      } else {
29443        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
29444      }
29445
29446      if (!translated) {
29447        setTranslate();
29448      }
29449    }
29450
29451    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
29452      swiper.checkOverflow();
29453    }
29454
29455    swiper.emit('update');
29456  }
29457
29458  changeDirection(newDirection, needUpdate) {
29459    if (needUpdate === void 0) {
29460      needUpdate = true;
29461    }
29462
29463    const swiper = this;
29464    const currentDirection = swiper.params.direction;
29465
29466    if (!newDirection) {
29467      // eslint-disable-next-line
29468      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
29469    }
29470
29471    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
29472      return swiper;
29473    }
29474
29475    swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);
29476    swiper.emitContainerClasses();
29477    swiper.params.direction = newDirection;
29478    swiper.slides.each(slideEl => {
29479      if (newDirection === 'vertical') {
29480        slideEl.style.width = '';
29481      } else {
29482        slideEl.style.height = '';
29483      }
29484    });
29485    swiper.emit('changeDirection');
29486    if (needUpdate) swiper.update();
29487    return swiper;
29488  }
29489
29490  mount(el) {
29491    const swiper = this;
29492    if (swiper.mounted) return true; // Find el
29493
29494    const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el || swiper.params.el);
29495    el = $el[0];
29496
29497    if (!el) {
29498      return false;
29499    }
29500
29501    el.swiper = swiper;
29502
29503    const getWrapperSelector = () => {
29504      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
29505    };
29506
29507    const getWrapper = () => {
29508      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
29509        const res = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items
29510
29511        res.children = options => $el.children(options);
29512
29513        return res;
29514      }
29515
29516      if (!$el.children) {
29517        return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($el).children(getWrapperSelector());
29518      }
29519
29520      return $el.children(getWrapperSelector());
29521    }; // Find Wrapper
29522
29523
29524    let $wrapperEl = getWrapper();
29525
29526    if ($wrapperEl.length === 0 && swiper.params.createElements) {
29527      const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
29528      const wrapper = document.createElement('div');
29529      $wrapperEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(wrapper);
29530      wrapper.className = swiper.params.wrapperClass;
29531      $el.append(wrapper);
29532      $el.children(`.${swiper.params.slideClass}`).each(slideEl => {
29533        $wrapperEl.append(slideEl);
29534      });
29535    }
29536
29537    Object.assign(swiper, {
29538      $el,
29539      el,
29540      $wrapperEl,
29541      wrapperEl: $wrapperEl[0],
29542      mounted: true,
29543      // RTL
29544      rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',
29545      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),
29546      wrongRTL: $wrapperEl.css('display') === '-webkit-box'
29547    });
29548    return true;
29549  }
29550
29551  init(el) {
29552    const swiper = this;
29553    if (swiper.initialized) return swiper;
29554    const mounted = swiper.mount(el);
29555    if (mounted === false) return swiper;
29556    swiper.emit('beforeInit'); // Set breakpoint
29557
29558    if (swiper.params.breakpoints) {
29559      swiper.setBreakpoint();
29560    } // Add Classes
29561
29562
29563    swiper.addClasses(); // Create loop
29564
29565    if (swiper.params.loop) {
29566      swiper.loopCreate();
29567    } // Update size
29568
29569
29570    swiper.updateSize(); // Update slides
29571
29572    swiper.updateSlides();
29573
29574    if (swiper.params.watchOverflow) {
29575      swiper.checkOverflow();
29576    } // Set Grab Cursor
29577
29578
29579    if (swiper.params.grabCursor && swiper.enabled) {
29580      swiper.setGrabCursor();
29581    }
29582
29583    if (swiper.params.preloadImages) {
29584      swiper.preloadImages();
29585    } // Slide To Initial Slide
29586
29587
29588    if (swiper.params.loop) {
29589      swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);
29590    } else {
29591      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
29592    } // Attach events
29593
29594
29595    swiper.attachEvents(); // Init Flag
29596
29597    swiper.initialized = true; // Emit
29598
29599    swiper.emit('init');
29600    swiper.emit('afterInit');
29601    return swiper;
29602  }
29603
29604  destroy(deleteInstance, cleanStyles) {
29605    if (deleteInstance === void 0) {
29606      deleteInstance = true;
29607    }
29608
29609    if (cleanStyles === void 0) {
29610      cleanStyles = true;
29611    }
29612
29613    const swiper = this;
29614    const {
29615      params,
29616      $el,
29617      $wrapperEl,
29618      slides
29619    } = swiper;
29620
29621    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
29622      return null;
29623    }
29624
29625    swiper.emit('beforeDestroy'); // Init Flag
29626
29627    swiper.initialized = false; // Detach events
29628
29629    swiper.detachEvents(); // Destroy loop
29630
29631    if (params.loop) {
29632      swiper.loopDestroy();
29633    } // Cleanup styles
29634
29635
29636    if (cleanStyles) {
29637      swiper.removeClasses();
29638      $el.removeAttr('style');
29639      $wrapperEl.removeAttr('style');
29640
29641      if (slides && slides.length) {
29642        slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');
29643      }
29644    }
29645
29646    swiper.emit('destroy'); // Detach emitter events
29647
29648    Object.keys(swiper.eventsListeners).forEach(eventName => {
29649      swiper.off(eventName);
29650    });
29651
29652    if (deleteInstance !== false) {
29653      swiper.$el[0].swiper = null;
29654      (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.deleteProps)(swiper);
29655    }
29656
29657    swiper.destroyed = true;
29658    return null;
29659  }
29660
29661  static extendDefaults(newDefaults) {
29662    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)(extendedDefaults, newDefaults);
29663  }
29664
29665  static get extendedDefaults() {
29666    return extendedDefaults;
29667  }
29668
29669  static get defaults() {
29670    return _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"];
29671  }
29672
29673  static installModule(mod) {
29674    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
29675    const modules = Swiper.prototype.__modules__;
29676
29677    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
29678      modules.push(mod);
29679    }
29680  }
29681
29682  static use(module) {
29683    if (Array.isArray(module)) {
29684      module.forEach(m => Swiper.installModule(m));
29685      return Swiper;
29686    }
29687
29688    Swiper.installModule(module);
29689    return Swiper;
29690  }
29691
29692}
29693
29694Object.keys(prototypes).forEach(prototypeGroup => {
29695  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
29696    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
29697  });
29698});
29699Swiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__["default"]]);
29700/* harmony default export */ __webpack_exports__["default"] = (Swiper);
29701
29702/***/ }),
29703
vendor: 3,572 bytes, lines 29704-29837
29704/***/ "./node_modules/swiper/core/defaults.js":
29705/*!**********************************************!*\
29706  !*** ./node_modules/swiper/core/defaults.js ***!
29707  \**********************************************/
29708/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
29709
29710"use strict";
29711__webpack_require__.r(__webpack_exports__);
29712/* harmony default export */ __webpack_exports__["default"] = ({
29713  init: true,
29714  direction: 'horizontal',
29715  touchEventsTarget: 'wrapper',
29716  initialSlide: 0,
29717  speed: 300,
29718  cssMode: false,
29719  updateOnWindowResize: true,
29720  resizeObserver: true,
29721  nested: false,
29722  createElements: false,
29723  enabled: true,
29724  focusableElements: 'input, select, option, textarea, button, video, label',
29725  // Overrides
29726  width: null,
29727  height: null,
29728  //
29729  preventInteractionOnTransition: false,
29730  // ssr
29731  userAgent: null,
29732  url: null,
29733  // To support iOS's swipe-to-go-back gesture (when being used in-app).
29734  edgeSwipeDetection: false,
29735  edgeSwipeThreshold: 20,
29736  // Autoheight
29737  autoHeight: false,
29738  // Set wrapper width
29739  setWrapperSize: false,
29740  // Virtual Translate
29741  virtualTranslate: false,
29742  // Effects
29743  effect: 'slide',
29744  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
29745  // Breakpoints
29746  breakpoints: undefined,
29747  breakpointsBase: 'window',
29748  // Slides grid
29749  spaceBetween: 0,
29750  slidesPerView: 1,
29751  slidesPerGroup: 1,
29752  slidesPerGroupSkip: 0,
29753  slidesPerGroupAuto: false,
29754  centeredSlides: false,
29755  centeredSlidesBounds: false,
29756  slidesOffsetBefore: 0,
29757  // in px
29758  slidesOffsetAfter: 0,
29759  // in px
29760  normalizeSlideIndex: true,
29761  centerInsufficientSlides: false,
29762  // Disable swiper and hide navigation when container not overflow
29763  watchOverflow: true,
29764  // Round length
29765  roundLengths: false,
29766  // Touches
29767  touchRatio: 1,
29768  touchAngle: 45,
29769  simulateTouch: true,
29770  shortSwipes: true,
29771  longSwipes: true,
29772  longSwipesRatio: 0.5,
29773  longSwipesMs: 300,
29774  followFinger: true,
29775  allowTouchMove: true,
29776  threshold: 0,
29777  touchMoveStopPropagation: false,
29778  touchStartPreventDefault: true,
29779  touchStartForcePreventDefault: false,
29780  touchReleaseOnEdges: false,
29781  // Unique Navigation Elements
29782  uniqueNavElements: true,
29783  // Resistance
29784  resistance: true,
29785  resistanceRatio: 0.85,
29786  // Progress
29787  watchSlidesProgress: false,
29788  // Cursor
29789  grabCursor: false,
29790  // Clicks
29791  preventClicks: true,
29792  preventClicksPropagation: true,
29793  slideToClickedSlide: false,
29794  // Images
29795  preloadImages: true,
29796  updateOnImagesReady: true,
29797  // loop
29798  loop: false,
29799  loopAdditionalSlides: 0,
29800  loopedSlides: null,
29801  loopFillGroupWithBlank: false,
29802  loopPreventsSlide: true,
29803  // rewind
29804  rewind: false,
29805  // Swiping/no swiping
29806  allowSlidePrev: true,
29807  allowSlideNext: true,
29808  swipeHandler: null,
29809  // '.swipe-handler',
29810  noSwiping: true,
29811  noSwipingClass: 'swiper-no-swiping',
29812  noSwipingSelector: null,
29813  // Passive Listeners
29814  passiveListeners: true,
29815  maxBackfaceHiddenSlides: 10,
29816  // NS
29817  containerModifierClass: 'swiper-',
29818  // NEW
29819  slideClass: 'swiper-slide',
29820  slideBlankClass: 'swiper-slide-invisible-blank',
29821  slideActiveClass: 'swiper-slide-active',
29822  slideDuplicateActiveClass: 'swiper-slide-duplicate-active',
29823  slideVisibleClass: 'swiper-slide-visible',
29824  slideDuplicateClass: 'swiper-slide-duplicate',
29825  slideNextClass: 'swiper-slide-next',
29826  slideDuplicateNextClass: 'swiper-slide-duplicate-next',
29827  slidePrevClass: 'swiper-slide-prev',
29828  slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',
29829  wrapperClass: 'swiper-wrapper',
29830  // Callbacks
29831  runCallbacksOnInit: true,
29832  // Internals
29833  _emitClasses: false
29834});
29835
29836/***/ }),
29837
vendor: 4,014 bytes, lines 29838-29970
29838/***/ "./node_modules/swiper/core/events-emitter.js":
29839/*!****************************************************!*\
29840  !*** ./node_modules/swiper/core/events-emitter.js ***!
29841  \****************************************************/
29842/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
29843
29844"use strict";
29845__webpack_require__.r(__webpack_exports__);
29846/* eslint-disable no-underscore-dangle */
29847/* harmony default export */ __webpack_exports__["default"] = ({
29848  on(events, handler, priority) {
29849    const self = this;
29850    if (!self.eventsListeners || self.destroyed) return self;
29851    if (typeof handler !== 'function') return self;
29852    const method = priority ? 'unshift' : 'push';
29853    events.split(' ').forEach(event => {
29854      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
29855      self.eventsListeners[event][method](handler);
29856    });
29857    return self;
29858  },
29859
29860  once(events, handler, priority) {
29861    const self = this;
29862    if (!self.eventsListeners || self.destroyed) return self;
29863    if (typeof handler !== 'function') return self;
29864
29865    function onceHandler() {
29866      self.off(events, onceHandler);
29867
29868      if (onceHandler.__emitterProxy) {
29869        delete onceHandler.__emitterProxy;
29870      }
29871
29872      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29873        args[_key] = arguments[_key];
29874      }
29875
29876      handler.apply(self, args);
29877    }
29878
29879    onceHandler.__emitterProxy = handler;
29880    return self.on(events, onceHandler, priority);
29881  },
29882
29883  onAny(handler, priority) {
29884    const self = this;
29885    if (!self.eventsListeners || self.destroyed) return self;
29886    if (typeof handler !== 'function') return self;
29887    const method = priority ? 'unshift' : 'push';
29888
29889    if (self.eventsAnyListeners.indexOf(handler) < 0) {
29890      self.eventsAnyListeners[method](handler);
29891    }
29892
29893    return self;
29894  },
29895
29896  offAny(handler) {
29897    const self = this;
29898    if (!self.eventsListeners || self.destroyed) return self;
29899    if (!self.eventsAnyListeners) return self;
29900    const index = self.eventsAnyListeners.indexOf(handler);
29901
29902    if (index >= 0) {
29903      self.eventsAnyListeners.splice(index, 1);
29904    }
29905
29906    return self;
29907  },
29908
29909  off(events, handler) {
29910    const self = this;
29911    if (!self.eventsListeners || self.destroyed) return self;
29912    if (!self.eventsListeners) return self;
29913    events.split(' ').forEach(event => {
29914      if (typeof handler === 'undefined') {
29915        self.eventsListeners[event] = [];
29916      } else if (self.eventsListeners[event]) {
29917        self.eventsListeners[event].forEach((eventHandler, index) => {
29918          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
29919            self.eventsListeners[event].splice(index, 1);
29920          }
29921        });
29922      }
29923    });
29924    return self;
29925  },
29926
29927  emit() {
29928    const self = this;
29929    if (!self.eventsListeners || self.destroyed) return self;
29930    if (!self.eventsListeners) return self;
29931    let events;
29932    let data;
29933    let context;
29934
29935    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
29936      args[_key2] = arguments[_key2];
29937    }
29938
29939    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
29940      events = args[0];
29941      data = args.slice(1, args.length);
29942      context = self;
29943    } else {
29944      events = args[0].events;
29945      data = args[0].data;
29946      context = args[0].context || self;
29947    }
29948
29949    data.unshift(context);
29950    const eventsArray = Array.isArray(events) ? events : events.split(' ');
29951    eventsArray.forEach(event => {
29952      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
29953        self.eventsAnyListeners.forEach(eventHandler => {
29954          eventHandler.apply(context, [event, ...data]);
29955        });
29956      }
29957
29958      if (self.eventsListeners && self.eventsListeners[event]) {
29959        self.eventsListeners[event].forEach(eventHandler => {
29960          eventHandler.apply(context, data);
29961        });
29962      }
29963    });
29964    return self;
29965  }
29966
29967});
29968
29969/***/ }),
29970
vendor: 4,404 bytes, lines 29971-30085
29971/***/ "./node_modules/swiper/core/events/index.js":
29972/*!**************************************************!*\
29973  !*** ./node_modules/swiper/core/events/index.js ***!
29974  \**************************************************/
29975/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
29976
29977"use strict";
29978__webpack_require__.r(__webpack_exports__);
29979/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
29980/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ "./node_modules/swiper/core/events/onTouchStart.js");
29981/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ "./node_modules/swiper/core/events/onTouchMove.js");
29982/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ "./node_modules/swiper/core/events/onTouchEnd.js");
29983/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ "./node_modules/swiper/core/events/onResize.js");
29984/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ "./node_modules/swiper/core/events/onClick.js");
29985/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ "./node_modules/swiper/core/events/onScroll.js");
29986
29987
29988
29989
29990
29991
29992
29993let dummyEventAttached = false;
29994
29995function dummyEventListener() {}
29996
29997const events = (swiper, method) => {
29998  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
29999  const {
30000    params,
30001    touchEvents,
30002    el,
30003    wrapperEl,
30004    device,
30005    support
30006  } = swiper;
30007  const capture = !!params.nested;
30008  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
30009  const swiperMethod = method; // Touch Events
30010
30011  if (!support.touch) {
30012    el[domMethod](touchEvents.start, swiper.onTouchStart, false);
30013    document[domMethod](touchEvents.move, swiper.onTouchMove, capture);
30014    document[domMethod](touchEvents.end, swiper.onTouchEnd, false);
30015  } else {
30016    const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {
30017      passive: true,
30018      capture: false
30019    } : false;
30020    el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);
30021    el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {
30022      passive: false,
30023      capture
30024    } : capture);
30025    el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);
30026
30027    if (touchEvents.cancel) {
30028      el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);
30029    }
30030  } // Prevent Links Clicks
30031
30032
30033  if (params.preventClicks || params.preventClicksPropagation) {
30034    el[domMethod]('click', swiper.onClick, true);
30035  }
30036
30037  if (params.cssMode) {
30038    wrapperEl[domMethod]('scroll', swiper.onScroll);
30039  } // Resize handler
30040
30041
30042  if (params.updateOnWindowResize) {
30043    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true);
30044  } else {
30045    swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true);
30046  }
30047};
30048
30049function attachEvents() {
30050  const swiper = this;
30051  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
30052  const {
30053    params,
30054    support
30055  } = swiper;
30056  swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper);
30057  swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper);
30058  swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper);
30059
30060  if (params.cssMode) {
30061    swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"].bind(swiper);
30062  }
30063
30064  swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(swiper);
30065
30066  if (support.touch && !dummyEventAttached) {
30067    document.addEventListener('touchstart', dummyEventListener);
30068    dummyEventAttached = true;
30069  }
30070
30071  events(swiper, 'on');
30072}
30073
30074function detachEvents() {
30075  const swiper = this;
30076  events(swiper, 'off');
30077}
30078
30079/* harmony default export */ __webpack_exports__["default"] = ({
30080  attachEvents,
30081  detachEvents
30082});
30083
30084/***/ }),
30085
vendor: 873 bytes, lines 30086-30112
30086/***/ "./node_modules/swiper/core/events/onClick.js":
30087/*!****************************************************!*\
30088  !*** ./node_modules/swiper/core/events/onClick.js ***!
30089  \****************************************************/
30090/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30091
30092"use strict";
30093__webpack_require__.r(__webpack_exports__);
30094/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30095/* harmony export */   "default": function() { return /* binding */ onClick; }
30096/* harmony export */ });
30097function onClick(e) {
30098  const swiper = this;
30099  if (!swiper.enabled) return;
30100
30101  if (!swiper.allowClick) {
30102    if (swiper.params.preventClicks) e.preventDefault();
30103
30104    if (swiper.params.preventClicksPropagation && swiper.animating) {
30105      e.stopPropagation();
30106      e.stopImmediatePropagation();
30107    }
30108  }
30109}
30110
30111/***/ }),
30112
vendor: 1,647 bytes, lines 30113-30169
30113/***/ "./node_modules/swiper/core/events/onResize.js":
30114/*!*****************************************************!*\
30115  !*** ./node_modules/swiper/core/events/onResize.js ***!
30116  \*****************************************************/
30117/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30118
30119"use strict";
30120__webpack_require__.r(__webpack_exports__);
30121/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30122/* harmony export */   "default": function() { return /* binding */ onResize; }
30123/* harmony export */ });
30124function onResize() {
30125  const swiper = this;
30126  const {
30127    params,
30128    el
30129  } = swiper;
30130  if (el && el.offsetWidth === 0) return; // Breakpoints
30131
30132  if (params.breakpoints) {
30133    swiper.setBreakpoint();
30134  } // Save locks
30135
30136
30137  const {
30138    allowSlideNext,
30139    allowSlidePrev,
30140    snapGrid
30141  } = swiper; // Disable locks on resize
30142
30143  swiper.allowSlideNext = true;
30144  swiper.allowSlidePrev = true;
30145  swiper.updateSize();
30146  swiper.updateSlides();
30147  swiper.updateSlidesClasses();
30148
30149  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {
30150    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
30151  } else {
30152    swiper.slideTo(swiper.activeIndex, 0, false, true);
30153  }
30154
30155  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
30156    swiper.autoplay.run();
30157  } // Return locks after resize
30158
30159
30160  swiper.allowSlidePrev = allowSlidePrev;
30161  swiper.allowSlideNext = allowSlideNext;
30162
30163  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
30164    swiper.checkOverflow();
30165  }
30166}
30167
30168/***/ }),
30169
vendor: 1,459 bytes, lines 30170-30218
30170/***/ "./node_modules/swiper/core/events/onScroll.js":
30171/*!*****************************************************!*\
30172  !*** ./node_modules/swiper/core/events/onScroll.js ***!
30173  \*****************************************************/
30174/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30175
30176"use strict";
30177__webpack_require__.r(__webpack_exports__);
30178/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30179/* harmony export */   "default": function() { return /* binding */ onScroll; }
30180/* harmony export */ });
30181function onScroll() {
30182  const swiper = this;
30183  const {
30184    wrapperEl,
30185    rtlTranslate,
30186    enabled
30187  } = swiper;
30188  if (!enabled) return;
30189  swiper.previousTranslate = swiper.translate;
30190
30191  if (swiper.isHorizontal()) {
30192    swiper.translate = -wrapperEl.scrollLeft;
30193  } else {
30194    swiper.translate = -wrapperEl.scrollTop;
30195  } // eslint-disable-next-line
30196
30197
30198  if (swiper.translate === 0) swiper.translate = 0;
30199  swiper.updateActiveIndex();
30200  swiper.updateSlidesClasses();
30201  let newProgress;
30202  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
30203
30204  if (translatesDiff === 0) {
30205    newProgress = 0;
30206  } else {
30207    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
30208  }
30209
30210  if (newProgress !== swiper.progress) {
30211    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
30212  }
30213
30214  swiper.emit('setTranslate', swiper.translate, false);
30215}
30216
30217/***/ }),
30218
vendor: 5,536 bytes, lines 30219-30394
30219/***/ "./node_modules/swiper/core/events/onTouchEnd.js":
30220/*!*******************************************************!*\
30221  !*** ./node_modules/swiper/core/events/onTouchEnd.js ***!
30222  \*******************************************************/
30223/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30224
30225"use strict";
30226__webpack_require__.r(__webpack_exports__);
30227/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30228/* harmony export */   "default": function() { return /* binding */ onTouchEnd; }
30229/* harmony export */ });
30230/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
30231
30232function onTouchEnd(event) {
30233  const swiper = this;
30234  const data = swiper.touchEventsData;
30235  const {
30236    params,
30237    touches,
30238    rtlTranslate: rtl,
30239    slidesGrid,
30240    enabled
30241  } = swiper;
30242  if (!enabled) return;
30243  let e = event;
30244  if (e.originalEvent) e = e.originalEvent;
30245
30246  if (data.allowTouchCallbacks) {
30247    swiper.emit('touchEnd', e);
30248  }
30249
30250  data.allowTouchCallbacks = false;
30251
30252  if (!data.isTouched) {
30253    if (data.isMoved && params.grabCursor) {
30254      swiper.setGrabCursor(false);
30255    }
30256
30257    data.isMoved = false;
30258    data.startMoving = false;
30259    return;
30260  } // Return Grab Cursor
30261
30262
30263  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
30264    swiper.setGrabCursor(false);
30265  } // Time diff
30266
30267
30268  const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();
30269  const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click
30270
30271  if (swiper.allowClick) {
30272    const pathTree = e.path || e.composedPath && e.composedPath();
30273    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);
30274    swiper.emit('tap click', e);
30275
30276    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
30277      swiper.emit('doubleTap doubleClick', e);
30278    }
30279  }
30280
30281  data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();
30282  (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {
30283    if (!swiper.destroyed) swiper.allowClick = true;
30284  });
30285
30286  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {
30287    data.isTouched = false;
30288    data.isMoved = false;
30289    data.startMoving = false;
30290    return;
30291  }
30292
30293  data.isTouched = false;
30294  data.isMoved = false;
30295  data.startMoving = false;
30296  let currentPos;
30297
30298  if (params.followFinger) {
30299    currentPos = rtl ? swiper.translate : -swiper.translate;
30300  } else {
30301    currentPos = -data.currentTranslate;
30302  }
30303
30304  if (params.cssMode) {
30305    return;
30306  }
30307
30308  if (swiper.params.freeMode && params.freeMode.enabled) {
30309    swiper.freeMode.onTouchEnd({
30310      currentPos
30311    });
30312    return;
30313  } // Find current slide
30314
30315
30316  let stopIndex = 0;
30317  let groupSize = swiper.slidesSizesGrid[0];
30318
30319  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
30320    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
30321
30322    if (typeof slidesGrid[i + increment] !== 'undefined') {
30323      if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
30324        stopIndex = i;
30325        groupSize = slidesGrid[i + increment] - slidesGrid[i];
30326      }
30327    } else if (currentPos >= slidesGrid[i]) {
30328      stopIndex = i;
30329      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
30330    }
30331  }
30332
30333  let rewindFirstIndex = null;
30334  let rewindLastIndex = null;
30335
30336  if (params.rewind) {
30337    if (swiper.isBeginning) {
30338      rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
30339    } else if (swiper.isEnd) {
30340      rewindFirstIndex = 0;
30341    }
30342  } // Find current slide size
30343
30344
30345  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
30346  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
30347
30348  if (timeDiff > params.longSwipesMs) {
30349    // Long touches
30350    if (!params.longSwipes) {
30351      swiper.slideTo(swiper.activeIndex);
30352      return;
30353    }
30354
30355    if (swiper.swipeDirection === 'next') {
30356      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
30357    }
30358
30359    if (swiper.swipeDirection === 'prev') {
30360      if (ratio > 1 - params.longSwipesRatio) {
30361        swiper.slideTo(stopIndex + increment);
30362      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
30363        swiper.slideTo(rewindLastIndex);
30364      } else {
30365        swiper.slideTo(stopIndex);
30366      }
30367    }
30368  } else {
30369    // Short swipes
30370    if (!params.shortSwipes) {
30371      swiper.slideTo(swiper.activeIndex);
30372      return;
30373    }
30374
30375    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
30376
30377    if (!isNavButtonTarget) {
30378      if (swiper.swipeDirection === 'next') {
30379        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
30380      }
30381
30382      if (swiper.swipeDirection === 'prev') {
30383        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
30384      }
30385    } else if (e.target === swiper.navigation.nextEl) {
30386      swiper.slideTo(stopIndex + increment);
30387    } else {
30388      swiper.slideTo(stopIndex);
30389    }
30390  }
30391}
30392
30393/***/ }),
30394
vendor: 7,844 bytes, lines 30395-30634
30395/***/ "./node_modules/swiper/core/events/onTouchMove.js":
30396/*!********************************************************!*\
30397  !*** ./node_modules/swiper/core/events/onTouchMove.js ***!
30398  \********************************************************/
30399/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30400
30401"use strict";
30402__webpack_require__.r(__webpack_exports__);
30403/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30404/* harmony export */   "default": function() { return /* binding */ onTouchMove; }
30405/* harmony export */ });
30406/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
30407/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
30408/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
30409
30410
30411
30412function onTouchMove(event) {
30413  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
30414  const swiper = this;
30415  const data = swiper.touchEventsData;
30416  const {
30417    params,
30418    touches,
30419    rtlTranslate: rtl,
30420    enabled
30421  } = swiper;
30422  if (!enabled) return;
30423  let e = event;
30424  if (e.originalEvent) e = e.originalEvent;
30425
30426  if (!data.isTouched) {
30427    if (data.startMoving && data.isScrolling) {
30428      swiper.emit('touchMoveOpposite', e);
30429    }
30430
30431    return;
30432  }
30433
30434  if (data.isTouchEvent && e.type !== 'touchmove') return;
30435  const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);
30436  const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;
30437  const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;
30438
30439  if (e.preventedByNestedSwiper) {
30440    touches.startX = pageX;
30441    touches.startY = pageY;
30442    return;
30443  }
30444
30445  if (!swiper.allowTouchMove) {
30446    if (!(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) {
30447      swiper.allowClick = false;
30448    }
30449
30450    if (data.isTouched) {
30451      Object.assign(touches, {
30452        startX: pageX,
30453        startY: pageY,
30454        currentX: pageX,
30455        currentY: pageY
30456      });
30457      data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();
30458    }
30459
30460    return;
30461  }
30462
30463  if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {
30464    if (swiper.isVertical()) {
30465      // Vertical
30466      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
30467        data.isTouched = false;
30468        data.isMoved = false;
30469        return;
30470      }
30471    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {
30472      return;
30473    }
30474  }
30475
30476  if (data.isTouchEvent && document.activeElement) {
30477    if (e.target === document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) {
30478      data.isMoved = true;
30479      swiper.allowClick = false;
30480      return;
30481    }
30482  }
30483
30484  if (data.allowTouchCallbacks) {
30485    swiper.emit('touchMove', e);
30486  }
30487
30488  if (e.targetTouches && e.targetTouches.length > 1) return;
30489  touches.currentX = pageX;
30490  touches.currentY = pageY;
30491  const diffX = touches.currentX - touches.startX;
30492  const diffY = touches.currentY - touches.startY;
30493  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
30494
30495  if (typeof data.isScrolling === 'undefined') {
30496    let touchAngle;
30497
30498    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
30499      data.isScrolling = false;
30500    } else {
30501      // eslint-disable-next-line
30502      if (diffX * diffX + diffY * diffY >= 25) {
30503        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
30504        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
30505      }
30506    }
30507  }
30508
30509  if (data.isScrolling) {
30510    swiper.emit('touchMoveOpposite', e);
30511  }
30512
30513  if (typeof data.startMoving === 'undefined') {
30514    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
30515      data.startMoving = true;
30516    }
30517  }
30518
30519  if (data.isScrolling) {
30520    data.isTouched = false;
30521    return;
30522  }
30523
30524  if (!data.startMoving) {
30525    return;
30526  }
30527
30528  swiper.allowClick = false;
30529
30530  if (!params.cssMode && e.cancelable) {
30531    e.preventDefault();
30532  }
30533
30534  if (params.touchMoveStopPropagation && !params.nested) {
30535    e.stopPropagation();
30536  }
30537
30538  if (!data.isMoved) {
30539    if (params.loop && !params.cssMode) {
30540      swiper.loopFix();
30541    }
30542
30543    data.startTranslate = swiper.getTranslate();
30544    swiper.setTransition(0);
30545
30546    if (swiper.animating) {
30547      swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');
30548    }
30549
30550    data.allowMomentumBounce = false; // Grab Cursor
30551
30552    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
30553      swiper.setGrabCursor(true);
30554    }
30555
30556    swiper.emit('sliderFirstMove', e);
30557  }
30558
30559  swiper.emit('sliderMove', e);
30560  data.isMoved = true;
30561  let diff = swiper.isHorizontal() ? diffX : diffY;
30562  touches.diff = diff;
30563  diff *= params.touchRatio;
30564  if (rtl) diff = -diff;
30565  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
30566  data.currentTranslate = diff + data.startTranslate;
30567  let disableParentSwiper = true;
30568  let resistanceRatio = params.resistanceRatio;
30569
30570  if (params.touchReleaseOnEdges) {
30571    resistanceRatio = 0;
30572  }
30573
30574  if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {
30575    disableParentSwiper = false;
30576    if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
30577  } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {
30578    disableParentSwiper = false;
30579    if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
30580  }
30581
30582  if (disableParentSwiper) {
30583    e.preventedByNestedSwiper = true;
30584  } // Directions locks
30585
30586
30587  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
30588    data.currentTranslate = data.startTranslate;
30589  }
30590
30591  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
30592    data.currentTranslate = data.startTranslate;
30593  }
30594
30595  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
30596    data.currentTranslate = data.startTranslate;
30597  } // Threshold
30598
30599
30600  if (params.threshold > 0) {
30601    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
30602      if (!data.allowThresholdMove) {
30603        data.allowThresholdMove = true;
30604        touches.startX = touches.currentX;
30605        touches.startY = touches.currentY;
30606        data.currentTranslate = data.startTranslate;
30607        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
30608        return;
30609      }
30610    } else {
30611      data.currentTranslate = data.startTranslate;
30612      return;
30613    }
30614  }
30615
30616  if (!params.followFinger || params.cssMode) return; // Update active index in free mode
30617
30618  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
30619    swiper.updateActiveIndex();
30620    swiper.updateSlidesClasses();
30621  }
30622
30623  if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {
30624    swiper.freeMode.onTouchMove();
30625  } // Update progress
30626
30627
30628  swiper.updateProgress(data.currentTranslate); // Update translate
30629
30630  swiper.setTranslate(data.currentTranslate);
30631}
30632
30633/***/ }),
30634
vendor: 5,719 bytes, lines 30635-30785
30635/***/ "./node_modules/swiper/core/events/onTouchStart.js":
30636/*!*********************************************************!*\
30637  !*** ./node_modules/swiper/core/events/onTouchStart.js ***!
30638  \*********************************************************/
30639/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30640
30641"use strict";
30642__webpack_require__.r(__webpack_exports__);
30643/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30644/* harmony export */   "default": function() { return /* binding */ onTouchStart; }
30645/* harmony export */ });
30646/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
30647/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
30648/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
30649
30650
30651 // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
30652
30653function closestElement(selector, base) {
30654  if (base === void 0) {
30655    base = this;
30656  }
30657
30658  function __closestFrom(el) {
30659    if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null;
30660    if (el.assignedSlot) el = el.assignedSlot;
30661    const found = el.closest(selector);
30662
30663    if (!found && !el.getRootNode) {
30664      return null;
30665    }
30666
30667    return found || __closestFrom(el.getRootNode().host);
30668  }
30669
30670  return __closestFrom(base);
30671}
30672
30673function onTouchStart(event) {
30674  const swiper = this;
30675  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
30676  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
30677  const data = swiper.touchEventsData;
30678  const {
30679    params,
30680    touches,
30681    enabled
30682  } = swiper;
30683  if (!enabled) return;
30684
30685  if (swiper.animating && params.preventInteractionOnTransition) {
30686    return;
30687  }
30688
30689  if (!swiper.animating && params.cssMode && params.loop) {
30690    swiper.loopFix();
30691  }
30692
30693  let e = event;
30694  if (e.originalEvent) e = e.originalEvent;
30695  let $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target);
30696
30697  if (params.touchEventsTarget === 'wrapper') {
30698    if (!$targetEl.closest(swiper.wrapperEl).length) return;
30699  }
30700
30701  data.isTouchEvent = e.type === 'touchstart';
30702  if (!data.isTouchEvent && 'which' in e && e.which === 3) return;
30703  if (!data.isTouchEvent && 'button' in e && e.button > 0) return;
30704  if (data.isTouched && data.isMoved) return; // change target el for shadow root component
30705
30706  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
30707
30708  if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {
30709    $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event.path[0]);
30710  }
30711
30712  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
30713  const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element
30714
30715  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {
30716    swiper.allowClick = true;
30717    return;
30718  }
30719
30720  if (params.swipeHandler) {
30721    if (!$targetEl.closest(params.swipeHandler)[0]) return;
30722  }
30723
30724  touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;
30725  touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
30726  const startX = touches.currentX;
30727  const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
30728
30729  const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;
30730  const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;
30731
30732  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
30733    if (edgeSwipeDetection === 'prevent') {
30734      event.preventDefault();
30735    } else {
30736      return;
30737    }
30738  }
30739
30740  Object.assign(data, {
30741    isTouched: true,
30742    isMoved: false,
30743    allowTouchCallbacks: true,
30744    isScrolling: undefined,
30745    startMoving: undefined
30746  });
30747  touches.startX = startX;
30748  touches.startY = startY;
30749  data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();
30750  swiper.allowClick = true;
30751  swiper.updateSize();
30752  swiper.swipeDirection = undefined;
30753  if (params.threshold > 0) data.allowThresholdMove = false;
30754
30755  if (e.type !== 'touchstart') {
30756    let preventDefault = true;
30757
30758    if ($targetEl.is(data.focusableElements)) {
30759      preventDefault = false;
30760
30761      if ($targetEl[0].nodeName === 'SELECT') {
30762        data.isTouched = false;
30763      }
30764    }
30765
30766    if (document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {
30767      document.activeElement.blur();
30768    }
30769
30770    const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
30771
30772    if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {
30773      e.preventDefault();
30774    }
30775  }
30776
30777  if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
30778    swiper.freeMode.onTouchStart();
30779  }
30780
30781  swiper.emit('touchStart', e);
30782}
30783
30784/***/ }),
30785
vendor: 999 bytes, lines 30786-30804
30786/***/ "./node_modules/swiper/core/grab-cursor/index.js":
30787/*!*******************************************************!*\
30788  !*** ./node_modules/swiper/core/grab-cursor/index.js ***!
30789  \*******************************************************/
30790/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30791
30792"use strict";
30793__webpack_require__.r(__webpack_exports__);
30794/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js");
30795/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js");
30796
30797
30798/* harmony default export */ __webpack_exports__["default"] = ({
30799  setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__["default"],
30800  unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__["default"]
30801});
30802
30803/***/ }),
30804
vendor: 987 bytes, lines 30805-30825
30805/***/ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js":
30806/*!***************************************************************!*\
30807  !*** ./node_modules/swiper/core/grab-cursor/setGrabCursor.js ***!
30808  \***************************************************************/
30809/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30810
30811"use strict";
30812__webpack_require__.r(__webpack_exports__);
30813/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30814/* harmony export */   "default": function() { return /* binding */ setGrabCursor; }
30815/* harmony export */ });
30816function setGrabCursor(moving) {
30817  const swiper = this;
30818  if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
30819  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
30820  el.style.cursor = 'move';
30821  el.style.cursor = moving ? 'grabbing' : 'grab';
30822}
30823
30824/***/ }),
30825
vendor: 900 bytes, lines 30826-30848
30826/***/ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js":
30827/*!*****************************************************************!*\
30828  !*** ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***!
30829  \*****************************************************************/
30830/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30831
30832"use strict";
30833__webpack_require__.r(__webpack_exports__);
30834/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30835/* harmony export */   "default": function() { return /* binding */ unsetGrabCursor; }
30836/* harmony export */ });
30837function unsetGrabCursor() {
30838  const swiper = this;
30839
30840  if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
30841    return;
30842  }
30843
30844  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
30845}
30846
30847/***/ }),
30848
vendor: 939 bytes, lines 30849-30867
30849/***/ "./node_modules/swiper/core/images/index.js":
30850/*!**************************************************!*\
30851  !*** ./node_modules/swiper/core/images/index.js ***!
30852  \**************************************************/
30853/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30854
30855"use strict";
30856__webpack_require__.r(__webpack_exports__);
30857/* harmony import */ var _loadImage_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loadImage.js */ "./node_modules/swiper/core/images/loadImage.js");
30858/* harmony import */ var _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preloadImages.js */ "./node_modules/swiper/core/images/preloadImages.js");
30859
30860
30861/* harmony default export */ __webpack_exports__["default"] = ({
30862  loadImage: _loadImage_js__WEBPACK_IMPORTED_MODULE_0__["default"],
30863  preloadImages: _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__["default"]
30864});
30865
30866/***/ }),
30867
vendor: 1,664 bytes, lines 30868-30920
30868/***/ "./node_modules/swiper/core/images/loadImage.js":
30869/*!******************************************************!*\
30870  !*** ./node_modules/swiper/core/images/loadImage.js ***!
30871  \******************************************************/
30872/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30873
30874"use strict";
30875__webpack_require__.r(__webpack_exports__);
30876/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30877/* harmony export */   "default": function() { return /* binding */ loadImage; }
30878/* harmony export */ });
30879/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
30880/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
30881
30882
30883function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {
30884  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
30885  let image;
30886
30887  function onReady() {
30888    if (callback) callback();
30889  }
30890
30891  const isPicture = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl).parent('picture')[0];
30892
30893  if (!isPicture && (!imageEl.complete || !checkForComplete)) {
30894    if (src) {
30895      image = new window.Image();
30896      image.onload = onReady;
30897      image.onerror = onReady;
30898
30899      if (sizes) {
30900        image.sizes = sizes;
30901      }
30902
30903      if (srcset) {
30904        image.srcset = srcset;
30905      }
30906
30907      if (src) {
30908        image.src = src;
30909      }
30910    } else {
30911      onReady();
30912    }
30913  } else {
30914    // image already loaded...
30915    onReady();
30916  }
30917}
30918
30919/***/ }),
30920
vendor: 1,358 bytes, lines 30921-30953
30921/***/ "./node_modules/swiper/core/images/preloadImages.js":
30922/*!**********************************************************!*\
30923  !*** ./node_modules/swiper/core/images/preloadImages.js ***!
30924  \**********************************************************/
30925/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30926
30927"use strict";
30928__webpack_require__.r(__webpack_exports__);
30929/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30930/* harmony export */   "default": function() { return /* binding */ preloadImages; }
30931/* harmony export */ });
30932function preloadImages() {
30933  const swiper = this;
30934  swiper.imagesToLoad = swiper.$el.find('img');
30935
30936  function onReady() {
30937    if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;
30938    if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;
30939
30940    if (swiper.imagesLoaded === swiper.imagesToLoad.length) {
30941      if (swiper.params.updateOnImagesReady) swiper.update();
30942      swiper.emit('imagesReady');
30943    }
30944  }
30945
30946  for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {
30947    const imageEl = swiper.imagesToLoad[i];
30948    swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);
30949  }
30950}
30951
30952/***/ }),
30953
vendor: 1,142 bytes, lines 30954-30975
30954/***/ "./node_modules/swiper/core/loop/index.js":
30955/*!************************************************!*\
30956  !*** ./node_modules/swiper/core/loop/index.js ***!
30957  \************************************************/
30958/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30959
30960"use strict";
30961__webpack_require__.r(__webpack_exports__);
30962/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ "./node_modules/swiper/core/loop/loopCreate.js");
30963/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ "./node_modules/swiper/core/loop/loopFix.js");
30964/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ "./node_modules/swiper/core/loop/loopDestroy.js");
30965
30966
30967
30968/* harmony default export */ __webpack_exports__["default"] = ({
30969  loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__["default"],
30970  loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__["default"],
30971  loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__["default"]
30972});
30973
30974/***/ }),
30975
vendor: 3,119 bytes, lines 30976-31050
30976/***/ "./node_modules/swiper/core/loop/loopCreate.js":
30977/*!*****************************************************!*\
30978  !*** ./node_modules/swiper/core/loop/loopCreate.js ***!
30979  \*****************************************************/
30980/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
30981
30982"use strict";
30983__webpack_require__.r(__webpack_exports__);
30984/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30985/* harmony export */   "default": function() { return /* binding */ loopCreate; }
30986/* harmony export */ });
30987/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
30988/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
30989
30990
30991function loopCreate() {
30992  const swiper = this;
30993  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
30994  const {
30995    params,
30996    $wrapperEl
30997  } = swiper; // Remove duplicated slides
30998
30999  const $selector = $wrapperEl.children().length > 0 ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($wrapperEl.children()[0].parentNode) : $wrapperEl;
31000  $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
31001  let slides = $selector.children(`.${params.slideClass}`);
31002
31003  if (params.loopFillGroupWithBlank) {
31004    const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;
31005
31006    if (blankSlidesNum !== params.slidesPerGroup) {
31007      for (let i = 0; i < blankSlidesNum; i += 1) {
31008        const blankNode = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);
31009        $selector.append(blankNode);
31010      }
31011
31012      slides = $selector.children(`.${params.slideClass}`);
31013    }
31014  }
31015
31016  if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;
31017  swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));
31018  swiper.loopedSlides += params.loopAdditionalSlides;
31019
31020  if (swiper.loopedSlides > slides.length) {
31021    swiper.loopedSlides = slides.length;
31022  }
31023
31024  const prependSlides = [];
31025  const appendSlides = [];
31026  slides.each((el, index) => {
31027    const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el);
31028
31029    if (index < swiper.loopedSlides) {
31030      appendSlides.push(el);
31031    }
31032
31033    if (index < slides.length && index >= slides.length - swiper.loopedSlides) {
31034      prependSlides.push(el);
31035    }
31036
31037    slide.attr('data-swiper-slide-index', index);
31038  });
31039
31040  for (let i = 0; i < appendSlides.length; i += 1) {
31041    $selector.append((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));
31042  }
31043
31044  for (let i = prependSlides.length - 1; i >= 0; i -= 1) {
31045    $selector.prepend((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));
31046  }
31047}
31048
31049/***/ }),
31050
vendor: 873 bytes, lines 31051-31074
31051/***/ "./node_modules/swiper/core/loop/loopDestroy.js":
31052/*!******************************************************!*\
31053  !*** ./node_modules/swiper/core/loop/loopDestroy.js ***!
31054  \******************************************************/
31055/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31056
31057"use strict";
31058__webpack_require__.r(__webpack_exports__);
31059/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31060/* harmony export */   "default": function() { return /* binding */ loopDestroy; }
31061/* harmony export */ });
31062function loopDestroy() {
31063  const swiper = this;
31064  const {
31065    $wrapperEl,
31066    params,
31067    slides
31068  } = swiper;
31069  $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();
31070  slides.removeAttr('data-swiper-slide-index');
31071}
31072
31073/***/ }),
31074
vendor: 1,811 bytes, lines 31075-31129
31075/***/ "./node_modules/swiper/core/loop/loopFix.js":
31076/*!**************************************************!*\
31077  !*** ./node_modules/swiper/core/loop/loopFix.js ***!
31078  \**************************************************/
31079/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31080
31081"use strict";
31082__webpack_require__.r(__webpack_exports__);
31083/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31084/* harmony export */   "default": function() { return /* binding */ loopFix; }
31085/* harmony export */ });
31086function loopFix() {
31087  const swiper = this;
31088  swiper.emit('beforeLoopFix');
31089  const {
31090    activeIndex,
31091    slides,
31092    loopedSlides,
31093    allowSlidePrev,
31094    allowSlideNext,
31095    snapGrid,
31096    rtlTranslate: rtl
31097  } = swiper;
31098  let newIndex;
31099  swiper.allowSlidePrev = true;
31100  swiper.allowSlideNext = true;
31101  const snapTranslate = -snapGrid[activeIndex];
31102  const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding
31103
31104  if (activeIndex < loopedSlides) {
31105    newIndex = slides.length - loopedSlides * 3 + activeIndex;
31106    newIndex += loopedSlides;
31107    const slideChanged = swiper.slideTo(newIndex, 0, false, true);
31108
31109    if (slideChanged && diff !== 0) {
31110      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
31111    }
31112  } else if (activeIndex >= slides.length - loopedSlides) {
31113    // Fix For Positive Oversliding
31114    newIndex = -slides.length + activeIndex + loopedSlides;
31115    newIndex += loopedSlides;
31116    const slideChanged = swiper.slideTo(newIndex, 0, false, true);
31117
31118    if (slideChanged && diff !== 0) {
31119      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
31120    }
31121  }
31122
31123  swiper.allowSlidePrev = allowSlidePrev;
31124  swiper.allowSlideNext = allowSlideNext;
31125  swiper.emit('loopFix');
31126}
31127
31128/***/ }),
31129
vendor: 1,985 bytes, lines 31130-31186
31130/***/ "./node_modules/swiper/core/moduleExtendParams.js":
31131/*!********************************************************!*\
31132  !*** ./node_modules/swiper/core/moduleExtendParams.js ***!
31133  \********************************************************/
31134/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31135
31136"use strict";
31137__webpack_require__.r(__webpack_exports__);
31138/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31139/* harmony export */   "default": function() { return /* binding */ moduleExtendParams; }
31140/* harmony export */ });
31141/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
31142
31143function moduleExtendParams(params, allModulesParams) {
31144  return function extendParams(obj) {
31145    if (obj === void 0) {
31146      obj = {};
31147    }
31148
31149    const moduleParamName = Object.keys(obj)[0];
31150    const moduleParams = obj[moduleParamName];
31151
31152    if (typeof moduleParams !== 'object' || moduleParams === null) {
31153      (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);
31154      return;
31155    }
31156
31157    if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {
31158      params[moduleParamName] = {
31159        auto: true
31160      };
31161    }
31162
31163    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
31164      (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);
31165      return;
31166    }
31167
31168    if (params[moduleParamName] === true) {
31169      params[moduleParamName] = {
31170        enabled: true
31171      };
31172    }
31173
31174    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
31175      params[moduleParamName].enabled = true;
31176    }
31177
31178    if (!params[moduleParamName]) params[moduleParamName] = {
31179      enabled: false
31180    };
31181    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj);
31182  };
31183}
31184
31185/***/ }),
31186
vendor: 2,879 bytes, lines 31187-31281
31187/***/ "./node_modules/swiper/core/modules/observer/observer.js":
31188/*!***************************************************************!*\
31189  !*** ./node_modules/swiper/core/modules/observer/observer.js ***!
31190  \***************************************************************/
31191/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31192
31193"use strict";
31194__webpack_require__.r(__webpack_exports__);
31195/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31196/* harmony export */   "default": function() { return /* binding */ Observer; }
31197/* harmony export */ });
31198/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
31199
31200function Observer(_ref) {
31201  let {
31202    swiper,
31203    extendParams,
31204    on,
31205    emit
31206  } = _ref;
31207  const observers = [];
31208  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
31209
31210  const attach = function (target, options) {
31211    if (options === void 0) {
31212      options = {};
31213    }
31214
31215    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
31216    const observer = new ObserverFunc(mutations => {
31217      // The observerUpdate event should only be triggered
31218      // once despite the number of mutations.  Additional
31219      // triggers are redundant and are very costly
31220      if (mutations.length === 1) {
31221        emit('observerUpdate', mutations[0]);
31222        return;
31223      }
31224
31225      const observerUpdate = function observerUpdate() {
31226        emit('observerUpdate', mutations[0]);
31227      };
31228
31229      if (window.requestAnimationFrame) {
31230        window.requestAnimationFrame(observerUpdate);
31231      } else {
31232        window.setTimeout(observerUpdate, 0);
31233      }
31234    });
31235    observer.observe(target, {
31236      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
31237      childList: typeof options.childList === 'undefined' ? true : options.childList,
31238      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
31239    });
31240    observers.push(observer);
31241  };
31242
31243  const init = () => {
31244    if (!swiper.params.observer) return;
31245
31246    if (swiper.params.observeParents) {
31247      const containerParents = swiper.$el.parents();
31248
31249      for (let i = 0; i < containerParents.length; i += 1) {
31250        attach(containerParents[i]);
31251      }
31252    } // Observe container
31253
31254
31255    attach(swiper.$el[0], {
31256      childList: swiper.params.observeSlideChildren
31257    }); // Observe wrapper
31258
31259    attach(swiper.$wrapperEl[0], {
31260      attributes: false
31261    });
31262  };
31263
31264  const destroy = () => {
31265    observers.forEach(observer => {
31266      observer.disconnect();
31267    });
31268    observers.splice(0, observers.length);
31269  };
31270
31271  extendParams({
31272    observer: false,
31273    observeParents: false,
31274    observeSlideChildren: false
31275  });
31276  on('init', init);
31277  on('destroy', destroy);
31278}
31279
31280/***/ }),
31281
vendor: 2,884 bytes, lines 31282-31373
31282/***/ "./node_modules/swiper/core/modules/resize/resize.js":
31283/*!***********************************************************!*\
31284  !*** ./node_modules/swiper/core/modules/resize/resize.js ***!
31285  \***********************************************************/
31286/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31287
31288"use strict";
31289__webpack_require__.r(__webpack_exports__);
31290/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31291/* harmony export */   "default": function() { return /* binding */ Resize; }
31292/* harmony export */ });
31293/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
31294
31295function Resize(_ref) {
31296  let {
31297    swiper,
31298    on,
31299    emit
31300  } = _ref;
31301  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
31302  let observer = null;
31303  let animationFrame = null;
31304
31305  const resizeHandler = () => {
31306    if (!swiper || swiper.destroyed || !swiper.initialized) return;
31307    emit('beforeResize');
31308    emit('resize');
31309  };
31310
31311  const createObserver = () => {
31312    if (!swiper || swiper.destroyed || !swiper.initialized) return;
31313    observer = new ResizeObserver(entries => {
31314      animationFrame = window.requestAnimationFrame(() => {
31315        const {
31316          width,
31317          height
31318        } = swiper;
31319        let newWidth = width;
31320        let newHeight = height;
31321        entries.forEach(_ref2 => {
31322          let {
31323            contentBoxSize,
31324            contentRect,
31325            target
31326          } = _ref2;
31327          if (target && target !== swiper.el) return;
31328          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
31329          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
31330        });
31331
31332        if (newWidth !== width || newHeight !== height) {
31333          resizeHandler();
31334        }
31335      });
31336    });
31337    observer.observe(swiper.el);
31338  };
31339
31340  const removeObserver = () => {
31341    if (animationFrame) {
31342      window.cancelAnimationFrame(animationFrame);
31343    }
31344
31345    if (observer && observer.unobserve && swiper.el) {
31346      observer.unobserve(swiper.el);
31347      observer = null;
31348    }
31349  };
31350
31351  const orientationChangeHandler = () => {
31352    if (!swiper || swiper.destroyed || !swiper.initialized) return;
31353    emit('orientationchange');
31354  };
31355
31356  on('init', () => {
31357    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
31358      createObserver();
31359      return;
31360    }
31361
31362    window.addEventListener('resize', resizeHandler);
31363    window.addEventListener('orientationchange', orientationChangeHandler);
31364  });
31365  on('destroy', () => {
31366    removeObserver();
31367    window.removeEventListener('resize', resizeHandler);
31368    window.removeEventListener('orientationchange', orientationChangeHandler);
31369  });
31370}
31371
31372/***/ }),
31373
vendor: 2,148 bytes, lines 31374-31407
31374/***/ "./node_modules/swiper/core/slide/index.js":
31375/*!*************************************************!*\
31376  !*** ./node_modules/swiper/core/slide/index.js ***!
31377  \*************************************************/
31378/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31379
31380"use strict";
31381__webpack_require__.r(__webpack_exports__);
31382/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ "./node_modules/swiper/core/slide/slideTo.js");
31383/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ "./node_modules/swiper/core/slide/slideToLoop.js");
31384/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ "./node_modules/swiper/core/slide/slideNext.js");
31385/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ "./node_modules/swiper/core/slide/slidePrev.js");
31386/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ "./node_modules/swiper/core/slide/slideReset.js");
31387/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ "./node_modules/swiper/core/slide/slideToClosest.js");
31388/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ "./node_modules/swiper/core/slide/slideToClickedSlide.js");
31389
31390
31391
31392
31393
31394
31395
31396/* harmony default export */ __webpack_exports__["default"] = ({
31397  slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__["default"],
31398  slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
31399  slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__["default"],
31400  slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__["default"],
31401  slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__["default"],
31402  slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__["default"],
31403  slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__["default"]
31404});
31405
31406/***/ }),
31407
vendor: 1,596 bytes, lines 31408-31459
31408/***/ "./node_modules/swiper/core/slide/slideNext.js":
31409/*!*****************************************************!*\
31410  !*** ./node_modules/swiper/core/slide/slideNext.js ***!
31411  \*****************************************************/
31412/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31413
31414"use strict";
31415__webpack_require__.r(__webpack_exports__);
31416/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31417/* harmony export */   "default": function() { return /* binding */ slideNext; }
31418/* harmony export */ });
31419/* eslint no-unused-vars: "off" */
31420function slideNext(speed, runCallbacks, internal) {
31421  if (speed === void 0) {
31422    speed = this.params.speed;
31423  }
31424
31425  if (runCallbacks === void 0) {
31426    runCallbacks = true;
31427  }
31428
31429  const swiper = this;
31430  const {
31431    animating,
31432    enabled,
31433    params
31434  } = swiper;
31435  if (!enabled) return swiper;
31436  let perGroup = params.slidesPerGroup;
31437
31438  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
31439    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
31440  }
31441
31442  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
31443
31444  if (params.loop) {
31445    if (animating && params.loopPreventsSlide) return false;
31446    swiper.loopFix(); // eslint-disable-next-line
31447
31448    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
31449  }
31450
31451  if (params.rewind && swiper.isEnd) {
31452    return swiper.slideTo(0, speed, runCallbacks, internal);
31453  }
31454
31455  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
31456}
31457
31458/***/ }),
31459
vendor: 2,671 bytes, lines 31460-31545
31460/***/ "./node_modules/swiper/core/slide/slidePrev.js":
31461/*!*****************************************************!*\
31462  !*** ./node_modules/swiper/core/slide/slidePrev.js ***!
31463  \*****************************************************/
31464/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31465
31466"use strict";
31467__webpack_require__.r(__webpack_exports__);
31468/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31469/* harmony export */   "default": function() { return /* binding */ slidePrev; }
31470/* harmony export */ });
31471/* eslint no-unused-vars: "off" */
31472function slidePrev(speed, runCallbacks, internal) {
31473  if (speed === void 0) {
31474    speed = this.params.speed;
31475  }
31476
31477  if (runCallbacks === void 0) {
31478    runCallbacks = true;
31479  }
31480
31481  const swiper = this;
31482  const {
31483    params,
31484    animating,
31485    snapGrid,
31486    slidesGrid,
31487    rtlTranslate,
31488    enabled
31489  } = swiper;
31490  if (!enabled) return swiper;
31491
31492  if (params.loop) {
31493    if (animating && params.loopPreventsSlide) return false;
31494    swiper.loopFix(); // eslint-disable-next-line
31495
31496    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
31497  }
31498
31499  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
31500
31501  function normalize(val) {
31502    if (val < 0) return -Math.floor(Math.abs(val));
31503    return Math.floor(val);
31504  }
31505
31506  const normalizedTranslate = normalize(translate);
31507  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
31508  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
31509
31510  if (typeof prevSnap === 'undefined' && params.cssMode) {
31511    let prevSnapIndex;
31512    snapGrid.forEach((snap, snapIndex) => {
31513      if (normalizedTranslate >= snap) {
31514        // prevSnap = snap;
31515        prevSnapIndex = snapIndex;
31516      }
31517    });
31518
31519    if (typeof prevSnapIndex !== 'undefined') {
31520      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
31521    }
31522  }
31523
31524  let prevIndex = 0;
31525
31526  if (typeof prevSnap !== 'undefined') {
31527    prevIndex = slidesGrid.indexOf(prevSnap);
31528    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
31529
31530    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
31531      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
31532      prevIndex = Math.max(prevIndex, 0);
31533    }
31534  }
31535
31536  if (params.rewind && swiper.isBeginning) {
31537    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
31538    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
31539  }
31540
31541  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
31542}
31543
31544/***/ }),
31545
vendor: 890 bytes, lines 31546-31572
31546/***/ "./node_modules/swiper/core/slide/slideReset.js":
31547/*!******************************************************!*\
31548  !*** ./node_modules/swiper/core/slide/slideReset.js ***!
31549  \******************************************************/
31550/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31551
31552"use strict";
31553__webpack_require__.r(__webpack_exports__);
31554/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31555/* harmony export */   "default": function() { return /* binding */ slideReset; }
31556/* harmony export */ });
31557/* eslint no-unused-vars: "off" */
31558function slideReset(speed, runCallbacks, internal) {
31559  if (speed === void 0) {
31560    speed = this.params.speed;
31561  }
31562
31563  if (runCallbacks === void 0) {
31564    runCallbacks = true;
31565  }
31566
31567  const swiper = this;
31568  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
31569}
31570
31571/***/ }),
31572
vendor: 6,674 bytes, lines 31573-31780
31573/***/ "./node_modules/swiper/core/slide/slideTo.js":
31574/*!***************************************************!*\
31575  !*** ./node_modules/swiper/core/slide/slideTo.js ***!
31576  \***************************************************/
31577/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31578
31579"use strict";
31580__webpack_require__.r(__webpack_exports__);
31581/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31582/* harmony export */   "default": function() { return /* binding */ slideTo; }
31583/* harmony export */ });
31584/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
31585
31586function slideTo(index, speed, runCallbacks, internal, initial) {
31587  if (index === void 0) {
31588    index = 0;
31589  }
31590
31591  if (speed === void 0) {
31592    speed = this.params.speed;
31593  }
31594
31595  if (runCallbacks === void 0) {
31596    runCallbacks = true;
31597  }
31598
31599  if (typeof index !== 'number' && typeof index !== 'string') {
31600    throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);
31601  }
31602
31603  if (typeof index === 'string') {
31604    /**
31605     * The `index` argument converted from `string` to `number`.
31606     * @type {number}
31607     */
31608    const indexAsNumber = parseInt(index, 10);
31609    /**
31610     * Determines whether the `index` argument is a valid `number`
31611     * after being converted from the `string` type.
31612     * @type {boolean}
31613     */
31614
31615    const isValidNumber = isFinite(indexAsNumber);
31616
31617    if (!isValidNumber) {
31618      throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);
31619    } // Knowing that the converted `index` is a valid number,
31620    // we can update the original argument's value.
31621
31622
31623    index = indexAsNumber;
31624  }
31625
31626  const swiper = this;
31627  let slideIndex = index;
31628  if (slideIndex < 0) slideIndex = 0;
31629  const {
31630    params,
31631    snapGrid,
31632    slidesGrid,
31633    previousIndex,
31634    activeIndex,
31635    rtlTranslate: rtl,
31636    wrapperEl,
31637    enabled
31638  } = swiper;
31639
31640  if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {
31641    return false;
31642  }
31643
31644  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
31645  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
31646  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
31647
31648  if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {
31649    swiper.emit('beforeSlideChangeStart');
31650  }
31651
31652  const translate = -snapGrid[snapIndex]; // Update progress
31653
31654  swiper.updateProgress(translate); // Normalize slideIndex
31655
31656  if (params.normalizeSlideIndex) {
31657    for (let i = 0; i < slidesGrid.length; i += 1) {
31658      const normalizedTranslate = -Math.floor(translate * 100);
31659      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
31660      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
31661
31662      if (typeof slidesGrid[i + 1] !== 'undefined') {
31663        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
31664          slideIndex = i;
31665        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
31666          slideIndex = i + 1;
31667        }
31668      } else if (normalizedTranslate >= normalizedGrid) {
31669        slideIndex = i;
31670      }
31671    }
31672  } // Directions locks
31673
31674
31675  if (swiper.initialized && slideIndex !== activeIndex) {
31676    if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {
31677      return false;
31678    }
31679
31680    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
31681      if ((activeIndex || 0) !== slideIndex) return false;
31682    }
31683  }
31684
31685  let direction;
31686  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index
31687
31688  if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {
31689    swiper.updateActiveIndex(slideIndex); // Update Height
31690
31691    if (params.autoHeight) {
31692      swiper.updateAutoHeight();
31693    }
31694
31695    swiper.updateSlidesClasses();
31696
31697    if (params.effect !== 'slide') {
31698      swiper.setTranslate(translate);
31699    }
31700
31701    if (direction !== 'reset') {
31702      swiper.transitionStart(runCallbacks, direction);
31703      swiper.transitionEnd(runCallbacks, direction);
31704    }
31705
31706    return false;
31707  }
31708
31709  if (params.cssMode) {
31710    const isH = swiper.isHorizontal();
31711    const t = rtl ? translate : -translate;
31712
31713    if (speed === 0) {
31714      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
31715
31716      if (isVirtual) {
31717        swiper.wrapperEl.style.scrollSnapType = 'none';
31718        swiper._immediateVirtual = true;
31719      }
31720
31721      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
31722
31723      if (isVirtual) {
31724        requestAnimationFrame(() => {
31725          swiper.wrapperEl.style.scrollSnapType = '';
31726          swiper._swiperImmediateVirtual = false;
31727        });
31728      }
31729    } else {
31730      if (!swiper.support.smoothScroll) {
31731        (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({
31732          swiper,
31733          targetPosition: t,
31734          side: isH ? 'left' : 'top'
31735        });
31736        return true;
31737      }
31738
31739      wrapperEl.scrollTo({
31740        [isH ? 'left' : 'top']: t,
31741        behavior: 'smooth'
31742      });
31743    }
31744
31745    return true;
31746  }
31747
31748  swiper.setTransition(speed);
31749  swiper.setTranslate(translate);
31750  swiper.updateActiveIndex(slideIndex);
31751  swiper.updateSlidesClasses();
31752  swiper.emit('beforeTransitionStart', speed, internal);
31753  swiper.transitionStart(runCallbacks, direction);
31754
31755  if (speed === 0) {
31756    swiper.transitionEnd(runCallbacks, direction);
31757  } else if (!swiper.animating) {
31758    swiper.animating = true;
31759
31760    if (!swiper.onSlideToWrapperTransitionEnd) {
31761      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
31762        if (!swiper || swiper.destroyed) return;
31763        if (e.target !== this) return;
31764        swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
31765        swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
31766        swiper.onSlideToWrapperTransitionEnd = null;
31767        delete swiper.onSlideToWrapperTransitionEnd;
31768        swiper.transitionEnd(runCallbacks, direction);
31769      };
31770    }
31771
31772    swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
31773    swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
31774  }
31775
31776  return true;
31777}
31778
31779/***/ }),
31780
vendor: 2,456 bytes, lines 31781-31835
31781/***/ "./node_modules/swiper/core/slide/slideToClickedSlide.js":
31782/*!***************************************************************!*\
31783  !*** ./node_modules/swiper/core/slide/slideToClickedSlide.js ***!
31784  \***************************************************************/
31785/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31786
31787"use strict";
31788__webpack_require__.r(__webpack_exports__);
31789/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31790/* harmony export */   "default": function() { return /* binding */ slideToClickedSlide; }
31791/* harmony export */ });
31792/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
31793/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
31794
31795
31796function slideToClickedSlide() {
31797  const swiper = this;
31798  const {
31799    params,
31800    $wrapperEl
31801  } = swiper;
31802  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
31803  let slideToIndex = swiper.clickedIndex;
31804  let realIndex;
31805
31806  if (params.loop) {
31807    if (swiper.animating) return;
31808    realIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);
31809
31810    if (params.centeredSlides) {
31811      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
31812        swiper.loopFix();
31813        slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
31814        (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {
31815          swiper.slideTo(slideToIndex);
31816        });
31817      } else {
31818        swiper.slideTo(slideToIndex);
31819      }
31820    } else if (slideToIndex > swiper.slides.length - slidesPerView) {
31821      swiper.loopFix();
31822      slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
31823      (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {
31824        swiper.slideTo(slideToIndex);
31825      });
31826    } else {
31827      swiper.slideTo(slideToIndex);
31828    }
31829  } else {
31830    swiper.slideTo(slideToIndex);
31831  }
31832}
31833
31834/***/ }),
31835
vendor: 2,123 bytes, lines 31836-31893
31836/***/ "./node_modules/swiper/core/slide/slideToClosest.js":
31837/*!**********************************************************!*\
31838  !*** ./node_modules/swiper/core/slide/slideToClosest.js ***!
31839  \**********************************************************/
31840/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31841
31842"use strict";
31843__webpack_require__.r(__webpack_exports__);
31844/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31845/* harmony export */   "default": function() { return /* binding */ slideToClosest; }
31846/* harmony export */ });
31847/* eslint no-unused-vars: "off" */
31848function slideToClosest(speed, runCallbacks, internal, threshold) {
31849  if (speed === void 0) {
31850    speed = this.params.speed;
31851  }
31852
31853  if (runCallbacks === void 0) {
31854    runCallbacks = true;
31855  }
31856
31857  if (threshold === void 0) {
31858    threshold = 0.5;
31859  }
31860
31861  const swiper = this;
31862  let index = swiper.activeIndex;
31863  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
31864  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
31865  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
31866
31867  if (translate >= swiper.snapGrid[snapIndex]) {
31868    // The current translate is on or after the current snap index, so the choice
31869    // is between the current index and the one after it.
31870    const currentSnap = swiper.snapGrid[snapIndex];
31871    const nextSnap = swiper.snapGrid[snapIndex + 1];
31872
31873    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
31874      index += swiper.params.slidesPerGroup;
31875    }
31876  } else {
31877    // The current translate is before the current snap index, so the choice
31878    // is between the current index and the one before it.
31879    const prevSnap = swiper.snapGrid[snapIndex - 1];
31880    const currentSnap = swiper.snapGrid[snapIndex];
31881
31882    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
31883      index -= swiper.params.slidesPerGroup;
31884    }
31885  }
31886
31887  index = Math.max(index, 0);
31888  index = Math.min(index, swiper.slidesGrid.length - 1);
31889  return swiper.slideTo(index, speed, runCallbacks, internal);
31890}
31891
31892/***/ }),
31893
vendor: 999 bytes, lines 31894-31929
31894/***/ "./node_modules/swiper/core/slide/slideToLoop.js":
31895/*!*******************************************************!*\
31896  !*** ./node_modules/swiper/core/slide/slideToLoop.js ***!
31897  \*******************************************************/
31898/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31899
31900"use strict";
31901__webpack_require__.r(__webpack_exports__);
31902/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31903/* harmony export */   "default": function() { return /* binding */ slideToLoop; }
31904/* harmony export */ });
31905function slideToLoop(index, speed, runCallbacks, internal) {
31906  if (index === void 0) {
31907    index = 0;
31908  }
31909
31910  if (speed === void 0) {
31911    speed = this.params.speed;
31912  }
31913
31914  if (runCallbacks === void 0) {
31915    runCallbacks = true;
31916  }
31917
31918  const swiper = this;
31919  let newIndex = index;
31920
31921  if (swiper.params.loop) {
31922    newIndex += swiper.loopedSlides;
31923  }
31924
31925  return swiper.slideTo(newIndex, speed, runCallbacks, internal);
31926}
31927
31928/***/ }),
31929
vendor: 1,249 bytes, lines 31930-31951
31930/***/ "./node_modules/swiper/core/transition/index.js":
31931/*!******************************************************!*\
31932  !*** ./node_modules/swiper/core/transition/index.js ***!
31933  \******************************************************/
31934/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31935
31936"use strict";
31937__webpack_require__.r(__webpack_exports__);
31938/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ "./node_modules/swiper/core/transition/setTransition.js");
31939/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ "./node_modules/swiper/core/transition/transitionStart.js");
31940/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ "./node_modules/swiper/core/transition/transitionEnd.js");
31941
31942
31943
31944/* harmony default export */ __webpack_exports__["default"] = ({
31945  setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__["default"],
31946  transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__["default"],
31947  transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__["default"]
31948});
31949
31950/***/ }),
31951
vendor: 823 bytes, lines 31952-31974
31952/***/ "./node_modules/swiper/core/transition/setTransition.js":
31953/*!**************************************************************!*\
31954  !*** ./node_modules/swiper/core/transition/setTransition.js ***!
31955  \**************************************************************/
31956/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31957
31958"use strict";
31959__webpack_require__.r(__webpack_exports__);
31960/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31961/* harmony export */   "default": function() { return /* binding */ setTransition; }
31962/* harmony export */ });
31963function setTransition(duration, byController) {
31964  const swiper = this;
31965
31966  if (!swiper.params.cssMode) {
31967    swiper.$wrapperEl.transition(duration);
31968  }
31969
31970  swiper.emit('setTransition', duration, byController);
31971}
31972
31973/***/ }),
31974
vendor: 1,334 bytes, lines 31975-32022
31975/***/ "./node_modules/swiper/core/transition/transitionEmit.js":
31976/*!***************************************************************!*\
31977  !*** ./node_modules/swiper/core/transition/transitionEmit.js ***!
31978  \***************************************************************/
31979/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
31980
31981"use strict";
31982__webpack_require__.r(__webpack_exports__);
31983/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31984/* harmony export */   "default": function() { return /* binding */ transitionEmit; }
31985/* harmony export */ });
31986function transitionEmit(_ref) {
31987  let {
31988    swiper,
31989    runCallbacks,
31990    direction,
31991    step
31992  } = _ref;
31993  const {
31994    activeIndex,
31995    previousIndex
31996  } = swiper;
31997  let dir = direction;
31998
31999  if (!dir) {
32000    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
32001  }
32002
32003  swiper.emit(`transition${step}`);
32004
32005  if (runCallbacks && activeIndex !== previousIndex) {
32006    if (dir === 'reset') {
32007      swiper.emit(`slideResetTransition${step}`);
32008      return;
32009    }
32010
32011    swiper.emit(`slideChangeTransition${step}`);
32012
32013    if (dir === 'next') {
32014      swiper.emit(`slideNextTransition${step}`);
32015    } else {
32016      swiper.emit(`slidePrevTransition${step}`);
32017    }
32018  }
32019}
32020
32021/***/ }),
32022
vendor: 1,186 bytes, lines 32023-32057
32023/***/ "./node_modules/swiper/core/transition/transitionEnd.js":
32024/*!**************************************************************!*\
32025  !*** ./node_modules/swiper/core/transition/transitionEnd.js ***!
32026  \**************************************************************/
32027/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32028
32029"use strict";
32030__webpack_require__.r(__webpack_exports__);
32031/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32032/* harmony export */   "default": function() { return /* binding */ transitionEnd; }
32033/* harmony export */ });
32034/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js");
32035
32036function transitionEnd(runCallbacks, direction) {
32037  if (runCallbacks === void 0) {
32038    runCallbacks = true;
32039  }
32040
32041  const swiper = this;
32042  const {
32043    params
32044  } = swiper;
32045  swiper.animating = false;
32046  if (params.cssMode) return;
32047  swiper.setTransition(0);
32048  (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
32049    swiper,
32050    runCallbacks,
32051    direction,
32052    step: 'End'
32053  });
32054}
32055
32056/***/ }),
32057
vendor: 1,209 bytes, lines 32058-32095
32058/***/ "./node_modules/swiper/core/transition/transitionStart.js":
32059/*!****************************************************************!*\
32060  !*** ./node_modules/swiper/core/transition/transitionStart.js ***!
32061  \****************************************************************/
32062/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32063
32064"use strict";
32065__webpack_require__.r(__webpack_exports__);
32066/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32067/* harmony export */   "default": function() { return /* binding */ transitionStart; }
32068/* harmony export */ });
32069/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js");
32070
32071function transitionStart(runCallbacks, direction) {
32072  if (runCallbacks === void 0) {
32073    runCallbacks = true;
32074  }
32075
32076  const swiper = this;
32077  const {
32078    params
32079  } = swiper;
32080  if (params.cssMode) return;
32081
32082  if (params.autoHeight) {
32083    swiper.updateAutoHeight();
32084  }
32085
32086  (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
32087    swiper,
32088    runCallbacks,
32089    direction,
32090    step: 'Start'
32091  });
32092}
32093
32094/***/ }),
32095
vendor: 1,319 bytes, lines 32096-32136
32096/***/ "./node_modules/swiper/core/translate/getTranslate.js":
32097/*!************************************************************!*\
32098  !*** ./node_modules/swiper/core/translate/getTranslate.js ***!
32099  \************************************************************/
32100/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32101
32102"use strict";
32103__webpack_require__.r(__webpack_exports__);
32104/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32105/* harmony export */   "default": function() { return /* binding */ getSwiperTranslate; }
32106/* harmony export */ });
32107/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
32108
32109function getSwiperTranslate(axis) {
32110  if (axis === void 0) {
32111    axis = this.isHorizontal() ? 'x' : 'y';
32112  }
32113
32114  const swiper = this;
32115  const {
32116    params,
32117    rtlTranslate: rtl,
32118    translate,
32119    $wrapperEl
32120  } = swiper;
32121
32122  if (params.virtualTranslate) {
32123    return rtl ? -translate : translate;
32124  }
32125
32126  if (params.cssMode) {
32127    return translate;
32128  }
32129
32130  let currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)($wrapperEl[0], axis);
32131  if (rtl) currentTranslate = -currentTranslate;
32132  return currentTranslate || 0;
32133}
32134
32135/***/ }),
32136
vendor: 1,712 bytes, lines 32137-32164
32137/***/ "./node_modules/swiper/core/translate/index.js":
32138/*!*****************************************************!*\
32139  !*** ./node_modules/swiper/core/translate/index.js ***!
32140  \*****************************************************/
32141/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32142
32143"use strict";
32144__webpack_require__.r(__webpack_exports__);
32145/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ "./node_modules/swiper/core/translate/getTranslate.js");
32146/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ "./node_modules/swiper/core/translate/setTranslate.js");
32147/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ "./node_modules/swiper/core/translate/minTranslate.js");
32148/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ "./node_modules/swiper/core/translate/maxTranslate.js");
32149/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ "./node_modules/swiper/core/translate/translateTo.js");
32150
32151
32152
32153
32154
32155/* harmony default export */ __webpack_exports__["default"] = ({
32156  getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__["default"],
32157  setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__["default"],
32158  minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__["default"],
32159  maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__["default"],
32160  translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__["default"]
32161});
32162
32163/***/ }),
32164
vendor: 681 bytes, lines 32165-32181
32165/***/ "./node_modules/swiper/core/translate/maxTranslate.js":
32166/*!************************************************************!*\
32167  !*** ./node_modules/swiper/core/translate/maxTranslate.js ***!
32168  \************************************************************/
32169/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32170
32171"use strict";
32172__webpack_require__.r(__webpack_exports__);
32173/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32174/* harmony export */   "default": function() { return /* binding */ maxTranslate; }
32175/* harmony export */ });
32176function maxTranslate() {
32177  return -this.snapGrid[this.snapGrid.length - 1];
32178}
32179
32180/***/ }),
32181
vendor: 658 bytes, lines 32182-32198
32182/***/ "./node_modules/swiper/core/translate/minTranslate.js":
32183/*!************************************************************!*\
32184  !*** ./node_modules/swiper/core/translate/minTranslate.js ***!
32185  \************************************************************/
32186/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32187
32188"use strict";
32189__webpack_require__.r(__webpack_exports__);
32190/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32191/* harmony export */   "default": function() { return /* binding */ minTranslate; }
32192/* harmony export */ });
32193function minTranslate() {
32194  return -this.snapGrid[0];
32195}
32196
32197/***/ }),
32198
vendor: 1,751 bytes, lines 32199-32260
32199/***/ "./node_modules/swiper/core/translate/setTranslate.js":
32200/*!************************************************************!*\
32201  !*** ./node_modules/swiper/core/translate/setTranslate.js ***!
32202  \************************************************************/
32203/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32204
32205"use strict";
32206__webpack_require__.r(__webpack_exports__);
32207/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32208/* harmony export */   "default": function() { return /* binding */ setTranslate; }
32209/* harmony export */ });
32210function setTranslate(translate, byController) {
32211  const swiper = this;
32212  const {
32213    rtlTranslate: rtl,
32214    params,
32215    $wrapperEl,
32216    wrapperEl,
32217    progress
32218  } = swiper;
32219  let x = 0;
32220  let y = 0;
32221  const z = 0;
32222
32223  if (swiper.isHorizontal()) {
32224    x = rtl ? -translate : translate;
32225  } else {
32226    y = translate;
32227  }
32228
32229  if (params.roundLengths) {
32230    x = Math.floor(x);
32231    y = Math.floor(y);
32232  }
32233
32234  if (params.cssMode) {
32235    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
32236  } else if (!params.virtualTranslate) {
32237    $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);
32238  }
32239
32240  swiper.previousTranslate = swiper.translate;
32241  swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress
32242
32243  let newProgress;
32244  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
32245
32246  if (translatesDiff === 0) {
32247    newProgress = 0;
32248  } else {
32249    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
32250  }
32251
32252  if (newProgress !== progress) {
32253    swiper.updateProgress(translate);
32254  }
32255
32256  swiper.emit('setTranslate', swiper.translate, byController);
32257}
32258
32259/***/ }),
32260
vendor: 3,599 bytes, lines 32261-32376
32261/***/ "./node_modules/swiper/core/translate/translateTo.js":
32262/*!***********************************************************!*\
32263  !*** ./node_modules/swiper/core/translate/translateTo.js ***!
32264  \***********************************************************/
32265/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32266
32267"use strict";
32268__webpack_require__.r(__webpack_exports__);
32269/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32270/* harmony export */   "default": function() { return /* binding */ translateTo; }
32271/* harmony export */ });
32272/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
32273
32274function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
32275  if (translate === void 0) {
32276    translate = 0;
32277  }
32278
32279  if (speed === void 0) {
32280    speed = this.params.speed;
32281  }
32282
32283  if (runCallbacks === void 0) {
32284    runCallbacks = true;
32285  }
32286
32287  if (translateBounds === void 0) {
32288    translateBounds = true;
32289  }
32290
32291  const swiper = this;
32292  const {
32293    params,
32294    wrapperEl
32295  } = swiper;
32296
32297  if (swiper.animating && params.preventInteractionOnTransition) {
32298    return false;
32299  }
32300
32301  const minTranslate = swiper.minTranslate();
32302  const maxTranslate = swiper.maxTranslate();
32303  let newTranslate;
32304  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress
32305
32306  swiper.updateProgress(newTranslate);
32307
32308  if (params.cssMode) {
32309    const isH = swiper.isHorizontal();
32310
32311    if (speed === 0) {
32312      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
32313    } else {
32314      if (!swiper.support.smoothScroll) {
32315        (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({
32316          swiper,
32317          targetPosition: -newTranslate,
32318          side: isH ? 'left' : 'top'
32319        });
32320        return true;
32321      }
32322
32323      wrapperEl.scrollTo({
32324        [isH ? 'left' : 'top']: -newTranslate,
32325        behavior: 'smooth'
32326      });
32327    }
32328
32329    return true;
32330  }
32331
32332  if (speed === 0) {
32333    swiper.setTransition(0);
32334    swiper.setTranslate(newTranslate);
32335
32336    if (runCallbacks) {
32337      swiper.emit('beforeTransitionStart', speed, internal);
32338      swiper.emit('transitionEnd');
32339    }
32340  } else {
32341    swiper.setTransition(speed);
32342    swiper.setTranslate(newTranslate);
32343
32344    if (runCallbacks) {
32345      swiper.emit('beforeTransitionStart', speed, internal);
32346      swiper.emit('transitionStart');
32347    }
32348
32349    if (!swiper.animating) {
32350      swiper.animating = true;
32351
32352      if (!swiper.onTranslateToWrapperTransitionEnd) {
32353        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
32354          if (!swiper || swiper.destroyed) return;
32355          if (e.target !== this) return;
32356          swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
32357          swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);
32358          swiper.onTranslateToWrapperTransitionEnd = null;
32359          delete swiper.onTranslateToWrapperTransitionEnd;
32360
32361          if (runCallbacks) {
32362            swiper.emit('transitionEnd');
32363          }
32364        };
32365      }
32366
32367      swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
32368      swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);
32369    }
32370  }
32371
32372  return true;
32373}
32374
32375/***/ }),
32376
vendor: 2,858 bytes, lines 32377-32416
32377/***/ "./node_modules/swiper/core/update/index.js":
32378/*!**************************************************!*\
32379  !*** ./node_modules/swiper/core/update/index.js ***!
32380  \**************************************************/
32381/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32382
32383"use strict";
32384__webpack_require__.r(__webpack_exports__);
32385/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ "./node_modules/swiper/core/update/updateSize.js");
32386/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ "./node_modules/swiper/core/update/updateSlides.js");
32387/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ "./node_modules/swiper/core/update/updateAutoHeight.js");
32388/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ "./node_modules/swiper/core/update/updateSlidesOffset.js");
32389/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ "./node_modules/swiper/core/update/updateSlidesProgress.js");
32390/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ "./node_modules/swiper/core/update/updateProgress.js");
32391/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ "./node_modules/swiper/core/update/updateSlidesClasses.js");
32392/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ "./node_modules/swiper/core/update/updateActiveIndex.js");
32393/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ "./node_modules/swiper/core/update/updateClickedSlide.js");
32394
32395
32396
32397
32398
32399
32400
32401
32402
32403/* harmony default export */ __webpack_exports__["default"] = ({
32404  updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__["default"],
32405  updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__["default"],
32406  updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__["default"],
32407  updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__["default"],
32408  updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__["default"],
32409  updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__["default"],
32410  updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__["default"],
32411  updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__["default"],
32412  updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__["default"]
32413});
32414
32415/***/ }),
32416
vendor: 2,627 bytes, lines 32417-32500
32417/***/ "./node_modules/swiper/core/update/updateActiveIndex.js":
32418/*!**************************************************************!*\
32419  !*** ./node_modules/swiper/core/update/updateActiveIndex.js ***!
32420  \**************************************************************/
32421/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32422
32423"use strict";
32424__webpack_require__.r(__webpack_exports__);
32425/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32426/* harmony export */   "default": function() { return /* binding */ updateActiveIndex; }
32427/* harmony export */ });
32428function updateActiveIndex(newActiveIndex) {
32429  const swiper = this;
32430  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
32431  const {
32432    slidesGrid,
32433    snapGrid,
32434    params,
32435    activeIndex: previousIndex,
32436    realIndex: previousRealIndex,
32437    snapIndex: previousSnapIndex
32438  } = swiper;
32439  let activeIndex = newActiveIndex;
32440  let snapIndex;
32441
32442  if (typeof activeIndex === 'undefined') {
32443    for (let i = 0; i < slidesGrid.length; i += 1) {
32444      if (typeof slidesGrid[i + 1] !== 'undefined') {
32445        if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
32446          activeIndex = i;
32447        } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
32448          activeIndex = i + 1;
32449        }
32450      } else if (translate >= slidesGrid[i]) {
32451        activeIndex = i;
32452      }
32453    } // Normalize slideIndex
32454
32455
32456    if (params.normalizeSlideIndex) {
32457      if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
32458    }
32459  }
32460
32461  if (snapGrid.indexOf(translate) >= 0) {
32462    snapIndex = snapGrid.indexOf(translate);
32463  } else {
32464    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
32465    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
32466  }
32467
32468  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
32469
32470  if (activeIndex === previousIndex) {
32471    if (snapIndex !== previousSnapIndex) {
32472      swiper.snapIndex = snapIndex;
32473      swiper.emit('snapIndexChange');
32474    }
32475
32476    return;
32477  } // Get real index
32478
32479
32480  const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);
32481  Object.assign(swiper, {
32482    snapIndex,
32483    realIndex,
32484    previousIndex,
32485    activeIndex
32486  });
32487  swiper.emit('activeIndexChange');
32488  swiper.emit('snapIndexChange');
32489
32490  if (previousRealIndex !== realIndex) {
32491    swiper.emit('realIndexChange');
32492  }
32493
32494  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
32495    swiper.emit('slideChange');
32496  }
32497}
32498
32499/***/ }),
32500
vendor: 2,348 bytes, lines 32501-32565
32501/***/ "./node_modules/swiper/core/update/updateAutoHeight.js":
32502/*!*************************************************************!*\
32503  !*** ./node_modules/swiper/core/update/updateAutoHeight.js ***!
32504  \*************************************************************/
32505/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32506
32507"use strict";
32508__webpack_require__.r(__webpack_exports__);
32509/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32510/* harmony export */   "default": function() { return /* binding */ updateAutoHeight; }
32511/* harmony export */ });
32512/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
32513
32514function updateAutoHeight(speed) {
32515  const swiper = this;
32516  const activeSlides = [];
32517  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
32518  let newHeight = 0;
32519  let i;
32520
32521  if (typeof speed === 'number') {
32522    swiper.setTransition(speed);
32523  } else if (speed === true) {
32524    swiper.setTransition(swiper.params.speed);
32525  }
32526
32527  const getSlideByIndex = index => {
32528    if (isVirtual) {
32529      return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];
32530    }
32531
32532    return swiper.slides.eq(index)[0];
32533  }; // Find slides currently in view
32534
32535
32536  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
32537    if (swiper.params.centeredSlides) {
32538      (swiper.visibleSlides || (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])([])).each(slide => {
32539        activeSlides.push(slide);
32540      });
32541    } else {
32542      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
32543        const index = swiper.activeIndex + i;
32544        if (index > swiper.slides.length && !isVirtual) break;
32545        activeSlides.push(getSlideByIndex(index));
32546      }
32547    }
32548  } else {
32549    activeSlides.push(getSlideByIndex(swiper.activeIndex));
32550  } // Find new height from highest slide in view
32551
32552
32553  for (i = 0; i < activeSlides.length; i += 1) {
32554    if (typeof activeSlides[i] !== 'undefined') {
32555      const height = activeSlides[i].offsetHeight;
32556      newHeight = height > newHeight ? height : newHeight;
32557    }
32558  } // Update Height
32559
32560
32561  if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);
32562}
32563
32564/***/ }),
32565
vendor: 1,806 bytes, lines 32566-32616
32566/***/ "./node_modules/swiper/core/update/updateClickedSlide.js":
32567/*!***************************************************************!*\
32568  !*** ./node_modules/swiper/core/update/updateClickedSlide.js ***!
32569  \***************************************************************/
32570/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32571
32572"use strict";
32573__webpack_require__.r(__webpack_exports__);
32574/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32575/* harmony export */   "default": function() { return /* binding */ updateClickedSlide; }
32576/* harmony export */ });
32577/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
32578
32579function updateClickedSlide(e) {
32580  const swiper = this;
32581  const params = swiper.params;
32582  const slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e).closest(`.${params.slideClass}`)[0];
32583  let slideFound = false;
32584  let slideIndex;
32585
32586  if (slide) {
32587    for (let i = 0; i < swiper.slides.length; i += 1) {
32588      if (swiper.slides[i] === slide) {
32589        slideFound = true;
32590        slideIndex = i;
32591        break;
32592      }
32593    }
32594  }
32595
32596  if (slide && slideFound) {
32597    swiper.clickedSlide = slide;
32598
32599    if (swiper.virtual && swiper.params.virtual.enabled) {
32600      swiper.clickedIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slide).attr('data-swiper-slide-index'), 10);
32601    } else {
32602      swiper.clickedIndex = slideIndex;
32603    }
32604  } else {
32605    swiper.clickedSlide = undefined;
32606    swiper.clickedIndex = undefined;
32607    return;
32608  }
32609
32610  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
32611    swiper.slideToClickedSlide();
32612  }
32613}
32614
32615/***/ }),
32616
vendor: 1,812 bytes, lines 32617-32680
32617/***/ "./node_modules/swiper/core/update/updateProgress.js":
32618/*!***********************************************************!*\
32619  !*** ./node_modules/swiper/core/update/updateProgress.js ***!
32620  \***********************************************************/
32621/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32622
32623"use strict";
32624__webpack_require__.r(__webpack_exports__);
32625/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32626/* harmony export */   "default": function() { return /* binding */ updateProgress; }
32627/* harmony export */ });
32628function updateProgress(translate) {
32629  const swiper = this;
32630
32631  if (typeof translate === 'undefined') {
32632    const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line
32633
32634    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
32635  }
32636
32637  const params = swiper.params;
32638  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
32639  let {
32640    progress,
32641    isBeginning,
32642    isEnd
32643  } = swiper;
32644  const wasBeginning = isBeginning;
32645  const wasEnd = isEnd;
32646
32647  if (translatesDiff === 0) {
32648    progress = 0;
32649    isBeginning = true;
32650    isEnd = true;
32651  } else {
32652    progress = (translate - swiper.minTranslate()) / translatesDiff;
32653    isBeginning = progress <= 0;
32654    isEnd = progress >= 1;
32655  }
32656
32657  Object.assign(swiper, {
32658    progress,
32659    isBeginning,
32660    isEnd
32661  });
32662  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
32663
32664  if (isBeginning && !wasBeginning) {
32665    swiper.emit('reachBeginning toEdge');
32666  }
32667
32668  if (isEnd && !wasEnd) {
32669    swiper.emit('reachEnd toEdge');
32670  }
32671
32672  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
32673    swiper.emit('fromEdge');
32674  }
32675
32676  swiper.emit('progress', progress);
32677}
32678
32679/***/ }),
32680
vendor: 1,543 bytes, lines 32681-32727
32681/***/ "./node_modules/swiper/core/update/updateSize.js":
32682/*!*******************************************************!*\
32683  !*** ./node_modules/swiper/core/update/updateSize.js ***!
32684  \*******************************************************/
32685/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32686
32687"use strict";
32688__webpack_require__.r(__webpack_exports__);
32689/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32690/* harmony export */   "default": function() { return /* binding */ updateSize; }
32691/* harmony export */ });
32692function updateSize() {
32693  const swiper = this;
32694  let width;
32695  let height;
32696  const $el = swiper.$el;
32697
32698  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
32699    width = swiper.params.width;
32700  } else {
32701    width = $el[0].clientWidth;
32702  }
32703
32704  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
32705    height = swiper.params.height;
32706  } else {
32707    height = $el[0].clientHeight;
32708  }
32709
32710  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
32711    return;
32712  } // Subtract paddings
32713
32714
32715  width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);
32716  height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);
32717  if (Number.isNaN(width)) width = 0;
32718  if (Number.isNaN(height)) height = 0;
32719  Object.assign(swiper, {
32720    width,
32721    height,
32722    size: swiper.isHorizontal() ? width : height
32723  });
32724}
32725
32726/***/ }),
32727
vendor: 11,399 bytes, lines 32728-33062
32728/***/ "./node_modules/swiper/core/update/updateSlides.js":
32729/*!*********************************************************!*\
32730  !*** ./node_modules/swiper/core/update/updateSlides.js ***!
32731  \*********************************************************/
32732/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
32733
32734"use strict";
32735__webpack_require__.r(__webpack_exports__);
32736/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32737/* harmony export */   "default": function() { return /* binding */ updateSlides; }
32738/* harmony export */ });
32739/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
32740
32741function updateSlides() {
32742  const swiper = this;
32743
32744  function getDirectionLabel(property) {
32745    if (swiper.isHorizontal()) {
32746      return property;
32747    } // prettier-ignore
32748
32749
32750    return {
32751      'width': 'height',
32752      'margin-top': 'margin-left',
32753      'margin-bottom ': 'margin-right',
32754      'margin-left': 'margin-top',
32755      'margin-right': 'margin-bottom',
32756      'padding-left': 'padding-top',
32757      'padding-right': 'padding-bottom',
32758      'marginRight': 'marginBottom'
32759    }[property];
32760  }
32761
32762  function getDirectionPropertyValue(node, label) {
32763    return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);
32764  }
32765
32766  const params = swiper.params;
32767  const {
32768    $wrapperEl,
32769    size: swiperSize,
32770    rtlTranslate: rtl,
32771    wrongRTL
32772  } = swiper;
32773  const isVirtual = swiper.virtual && params.virtual.enabled;
32774  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
32775  const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);
32776  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
32777  let snapGrid = [];
32778  const slidesGrid = [];
32779  const slidesSizesGrid = [];
32780  let offsetBefore = params.slidesOffsetBefore;
32781
32782  if (typeof offsetBefore === 'function') {
32783    offsetBefore = params.slidesOffsetBefore.call(swiper);
32784  }
32785
32786  let offsetAfter = params.slidesOffsetAfter;
32787
32788  if (typeof offsetAfter === 'function') {
32789    offsetAfter = params.slidesOffsetAfter.call(swiper);
32790  }
32791
32792  const previousSnapGridLength = swiper.snapGrid.length;
32793  const previousSlidesGridLength = swiper.slidesGrid.length;
32794  let spaceBetween = params.spaceBetween;
32795  let slidePosition = -offsetBefore;
32796  let prevSlideSize = 0;
32797  let index = 0;
32798
32799  if (typeof swiperSize === 'undefined') {
32800    return;
32801  }
32802
32803  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
32804    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
32805  }
32806
32807  swiper.virtualSize = -spaceBetween; // reset margins
32808
32809  if (rtl) slides.css({
32810    marginLeft: '',
32811    marginBottom: '',
32812    marginTop: ''
32813  });else slides.css({
32814    marginRight: '',
32815    marginBottom: '',
32816    marginTop: ''
32817  }); // reset cssMode offsets
32818
32819  if (params.centeredSlides && params.cssMode) {
32820    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', '');
32821    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', '');
32822  }
32823
32824  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
32825
32826  if (gridEnabled) {
32827    swiper.grid.initSlides(slidesLength);
32828  } // Calc slides
32829
32830
32831  let slideSize;
32832  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
32833    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
32834  }).length > 0;
32835
32836  for (let i = 0; i < slidesLength; i += 1) {
32837    slideSize = 0;
32838    const slide = slides.eq(i);
32839
32840    if (gridEnabled) {
32841      swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);
32842    }
32843
32844    if (slide.css('display') === 'none') continue; // eslint-disable-line
32845
32846    if (params.slidesPerView === 'auto') {
32847      if (shouldResetSlideSize) {
32848        slides[i].style[getDirectionLabel('width')] = ``;
32849      }
32850
32851      const slideStyles = getComputedStyle(slide[0]);
32852      const currentTransform = slide[0].style.transform;
32853      const currentWebKitTransform = slide[0].style.webkitTransform;
32854
32855      if (currentTransform) {
32856        slide[0].style.transform = 'none';
32857      }
32858
32859      if (currentWebKitTransform) {
32860        slide[0].style.webkitTransform = 'none';
32861      }
32862
32863      if (params.roundLengths) {
32864        slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);
32865      } else {
32866        // eslint-disable-next-line
32867        const width = getDirectionPropertyValue(slideStyles, 'width');
32868        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
32869        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
32870        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
32871        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
32872        const boxSizing = slideStyles.getPropertyValue('box-sizing');
32873
32874        if (boxSizing && boxSizing === 'border-box') {
32875          slideSize = width + marginLeft + marginRight;
32876        } else {
32877          const {
32878            clientWidth,
32879            offsetWidth
32880          } = slide[0];
32881          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
32882        }
32883      }
32884
32885      if (currentTransform) {
32886        slide[0].style.transform = currentTransform;
32887      }
32888
32889      if (currentWebKitTransform) {
32890        slide[0].style.webkitTransform = currentWebKitTransform;
32891      }
32892
32893      if (params.roundLengths) slideSize = Math.floor(slideSize);
32894    } else {
32895      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
32896      if (params.roundLengths) slideSize = Math.floor(slideSize);
32897
32898      if (slides[i]) {
32899        slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;
32900      }
32901    }
32902
32903    if (slides[i]) {
32904      slides[i].swiperSlideSize = slideSize;
32905    }
32906
32907    slidesSizesGrid.push(slideSize);
32908
32909    if (params.centeredSlides) {
32910      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
32911      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
32912      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
32913      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
32914      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
32915      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
32916      slidesGrid.push(slidePosition);
32917    } else {
32918      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
32919      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
32920      slidesGrid.push(slidePosition);
32921      slidePosition = slidePosition + slideSize + spaceBetween;
32922    }
32923
32924    swiper.virtualSize += slideSize + spaceBetween;
32925    prevSlideSize = slideSize;
32926    index += 1;
32927  }
32928
32929  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
32930
32931  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
32932    $wrapperEl.css({
32933      width: `${swiper.virtualSize + params.spaceBetween}px`
32934    });
32935  }
32936
32937  if (params.setWrapperSize) {
32938    $wrapperEl.css({
32939      [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`
32940    });
32941  }
32942
32943  if (gridEnabled) {
32944    swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);
32945  } // Remove last grid elements depending on width
32946
32947
32948  if (!params.centeredSlides) {
32949    const newSlidesGrid = [];
32950
32951    for (let i = 0; i < snapGrid.length; i += 1) {
32952      let slidesGridItem = snapGrid[i];
32953      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
32954
32955      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
32956        newSlidesGrid.push(slidesGridItem);
32957      }
32958    }
32959
32960    snapGrid = newSlidesGrid;
32961
32962    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
32963      snapGrid.push(swiper.virtualSize - swiperSize);
32964    }
32965  }
32966
32967  if (snapGrid.length === 0) snapGrid = [0];
32968
32969  if (params.spaceBetween !== 0) {
32970    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');
32971    slides.filter((_, slideIndex) => {
32972      if (!params.cssMode) return true;
32973
32974      if (slideIndex === slides.length - 1) {
32975        return false;
32976      }
32977
32978      return true;
32979    }).css({
32980      [key]: `${spaceBetween}px`
32981    });
32982  }
32983
32984  if (params.centeredSlides && params.centeredSlidesBounds) {
32985    let allSlidesSize = 0;
32986    slidesSizesGrid.forEach(slideSizeValue => {
32987      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
32988    });
32989    allSlidesSize -= params.spaceBetween;
32990    const maxSnap = allSlidesSize - swiperSize;
32991    snapGrid = snapGrid.map(snap => {
32992      if (snap < 0) return -offsetBefore;
32993      if (snap > maxSnap) return maxSnap + offsetAfter;
32994      return snap;
32995    });
32996  }
32997
32998  if (params.centerInsufficientSlides) {
32999    let allSlidesSize = 0;
33000    slidesSizesGrid.forEach(slideSizeValue => {
33001      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
33002    });
33003    allSlidesSize -= params.spaceBetween;
33004
33005    if (allSlidesSize < swiperSize) {
33006      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;
33007      snapGrid.forEach((snap, snapIndex) => {
33008        snapGrid[snapIndex] = snap - allSlidesOffset;
33009      });
33010      slidesGrid.forEach((snap, snapIndex) => {
33011        slidesGrid[snapIndex] = snap + allSlidesOffset;
33012      });
33013    }
33014  }
33015
33016  Object.assign(swiper, {
33017    slides,
33018    snapGrid,
33019    slidesGrid,
33020    slidesSizesGrid
33021  });
33022
33023  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
33024    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
33025    (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
33026    const addToSnapGrid = -swiper.snapGrid[0];
33027    const addToSlidesGrid = -swiper.slidesGrid[0];
33028    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
33029    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
33030  }
33031
33032  if (slidesLength !== previousSlidesLength) {
33033    swiper.emit('slidesLengthChange');
33034  }
33035
33036  if (snapGrid.length !== previousSnapGridLength) {
33037    if (swiper.params.watchOverflow) swiper.checkOverflow();
33038    swiper.emit('snapGridLengthChange');
33039  }
33040
33041  if (slidesGrid.length !== previousSlidesGridLength) {
33042    swiper.emit('slidesGridLengthChange');
33043  }
33044
33045  if (params.watchSlidesProgress) {
33046    swiper.updateSlidesOffset();
33047  }
33048
33049  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
33050    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
33051    const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);
33052
33053    if (slidesLength <= params.maxBackfaceHiddenSlides) {
33054      if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);
33055    } else if (hasClassBackfaceClassAdded) {
33056      swiper.$el.removeClass(backFaceHiddenClass);
33057    }
33058  }
33059}
33060
33061/***/ }),
33062
vendor: 3,336 bytes, lines 33063-33140
33063/***/ "./node_modules/swiper/core/update/updateSlidesClasses.js":
33064/*!****************************************************************!*\
33065  !*** ./node_modules/swiper/core/update/updateSlidesClasses.js ***!
33066  \****************************************************************/
33067/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33068
33069"use strict";
33070__webpack_require__.r(__webpack_exports__);
33071/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33072/* harmony export */   "default": function() { return /* binding */ updateSlidesClasses; }
33073/* harmony export */ });
33074function updateSlidesClasses() {
33075  const swiper = this;
33076  const {
33077    slides,
33078    params,
33079    $wrapperEl,
33080    activeIndex,
33081    realIndex
33082  } = swiper;
33083  const isVirtual = swiper.virtual && params.virtual.enabled;
33084  slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);
33085  let activeSlide;
33086
33087  if (isVirtual) {
33088    activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`);
33089  } else {
33090    activeSlide = slides.eq(activeIndex);
33091  } // Active classes
33092
33093
33094  activeSlide.addClass(params.slideActiveClass);
33095
33096  if (params.loop) {
33097    // Duplicate to all looped slides
33098    if (activeSlide.hasClass(params.slideDuplicateClass)) {
33099      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
33100    } else {
33101      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
33102    }
33103  } // Next Slide
33104
33105
33106  let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);
33107
33108  if (params.loop && nextSlide.length === 0) {
33109    nextSlide = slides.eq(0);
33110    nextSlide.addClass(params.slideNextClass);
33111  } // Prev Slide
33112
33113
33114  let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);
33115
33116  if (params.loop && prevSlide.length === 0) {
33117    prevSlide = slides.eq(-1);
33118    prevSlide.addClass(params.slidePrevClass);
33119  }
33120
33121  if (params.loop) {
33122    // Duplicate to all looped slides
33123    if (nextSlide.hasClass(params.slideDuplicateClass)) {
33124      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
33125    } else {
33126      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
33127    }
33128
33129    if (prevSlide.hasClass(params.slideDuplicateClass)) {
33130      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
33131    } else {
33132      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
33133    }
33134  }
33135
33136  swiper.emitSlidesClasses();
33137}
33138
33139/***/ }),
33140
vendor: 863 bytes, lines 33141-33162
33141/***/ "./node_modules/swiper/core/update/updateSlidesOffset.js":
33142/*!***************************************************************!*\
33143  !*** ./node_modules/swiper/core/update/updateSlidesOffset.js ***!
33144  \***************************************************************/
33145/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33146
33147"use strict";
33148__webpack_require__.r(__webpack_exports__);
33149/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33150/* harmony export */   "default": function() { return /* binding */ updateSlidesOffset; }
33151/* harmony export */ });
33152function updateSlidesOffset() {
33153  const swiper = this;
33154  const slides = swiper.slides;
33155
33156  for (let i = 0; i < slides.length; i += 1) {
33157    slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
33158  }
33159}
33160
33161/***/ }),
33162
vendor: 2,645 bytes, lines 33163-33225
33163/***/ "./node_modules/swiper/core/update/updateSlidesProgress.js":
33164/*!*****************************************************************!*\
33165  !*** ./node_modules/swiper/core/update/updateSlidesProgress.js ***!
33166  \*****************************************************************/
33167/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33168
33169"use strict";
33170__webpack_require__.r(__webpack_exports__);
33171/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33172/* harmony export */   "default": function() { return /* binding */ updateSlidesProgress; }
33173/* harmony export */ });
33174/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
33175
33176function updateSlidesProgress(translate) {
33177  if (translate === void 0) {
33178    translate = this && this.translate || 0;
33179  }
33180
33181  const swiper = this;
33182  const params = swiper.params;
33183  const {
33184    slides,
33185    rtlTranslate: rtl,
33186    snapGrid
33187  } = swiper;
33188  if (slides.length === 0) return;
33189  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
33190  let offsetCenter = -translate;
33191  if (rtl) offsetCenter = translate; // Visible Slides
33192
33193  slides.removeClass(params.slideVisibleClass);
33194  swiper.visibleSlidesIndexes = [];
33195  swiper.visibleSlides = [];
33196
33197  for (let i = 0; i < slides.length; i += 1) {
33198    const slide = slides[i];
33199    let slideOffset = slide.swiperSlideOffset;
33200
33201    if (params.cssMode && params.centeredSlides) {
33202      slideOffset -= slides[0].swiperSlideOffset;
33203    }
33204
33205    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
33206    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
33207    const slideBefore = -(offsetCenter - slideOffset);
33208    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
33209    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
33210
33211    if (isVisible) {
33212      swiper.visibleSlides.push(slide);
33213      swiper.visibleSlidesIndexes.push(i);
33214      slides.eq(i).addClass(params.slideVisibleClass);
33215    }
33216
33217    slide.progress = rtl ? -slideProgress : slideProgress;
33218    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
33219  }
33220
33221  swiper.visibleSlides = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.visibleSlides);
33222}
33223
33224/***/ }),
33225
vendor: 10,019 bytes, lines 33226-33551
33226/***/ "./node_modules/swiper/modules/a11y/a11y.js":
33227/*!**************************************************!*\
33228  !*** ./node_modules/swiper/modules/a11y/a11y.js ***!
33229  \**************************************************/
33230/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33231
33232"use strict";
33233__webpack_require__.r(__webpack_exports__);
33234/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33235/* harmony export */   "default": function() { return /* binding */ A11y; }
33236/* harmony export */ });
33237/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js");
33238/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
33239
33240
33241function A11y(_ref) {
33242  let {
33243    swiper,
33244    extendParams,
33245    on
33246  } = _ref;
33247  extendParams({
33248    a11y: {
33249      enabled: true,
33250      notificationClass: 'swiper-notification',
33251      prevSlideMessage: 'Previous slide',
33252      nextSlideMessage: 'Next slide',
33253      firstSlideMessage: 'This is the first slide',
33254      lastSlideMessage: 'This is the last slide',
33255      paginationBulletMessage: 'Go to slide {{index}}',
33256      slideLabelMessage: '{{index}} / {{slidesLength}}',
33257      containerMessage: null,
33258      containerRoleDescriptionMessage: null,
33259      itemRoleDescriptionMessage: null,
33260      slideRole: 'group',
33261      id: null
33262    }
33263  });
33264  let liveRegion = null;
33265
33266  function notify(message) {
33267    const notification = liveRegion;
33268    if (notification.length === 0) return;
33269    notification.html('');
33270    notification.html(message);
33271  }
33272
33273  function getRandomNumber(size) {
33274    if (size === void 0) {
33275      size = 16;
33276    }
33277
33278    const randomChar = () => Math.round(16 * Math.random()).toString(16);
33279
33280    return 'x'.repeat(size).replace(/x/g, randomChar);
33281  }
33282
33283  function makeElFocusable($el) {
33284    $el.attr('tabIndex', '0');
33285  }
33286
33287  function makeElNotFocusable($el) {
33288    $el.attr('tabIndex', '-1');
33289  }
33290
33291  function addElRole($el, role) {
33292    $el.attr('role', role);
33293  }
33294
33295  function addElRoleDescription($el, description) {
33296    $el.attr('aria-roledescription', description);
33297  }
33298
33299  function addElControls($el, controls) {
33300    $el.attr('aria-controls', controls);
33301  }
33302
33303  function addElLabel($el, label) {
33304    $el.attr('aria-label', label);
33305  }
33306
33307  function addElId($el, id) {
33308    $el.attr('id', id);
33309  }
33310
33311  function addElLive($el, live) {
33312    $el.attr('aria-live', live);
33313  }
33314
33315  function disableEl($el) {
33316    $el.attr('aria-disabled', true);
33317  }
33318
33319  function enableEl($el) {
33320    $el.attr('aria-disabled', false);
33321  }
33322
33323  function onEnterOrSpaceKey(e) {
33324    if (e.keyCode !== 13 && e.keyCode !== 32) return;
33325    const params = swiper.params.a11y;
33326    const $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target);
33327
33328    if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {
33329      if (!(swiper.isEnd && !swiper.params.loop)) {
33330        swiper.slideNext();
33331      }
33332
33333      if (swiper.isEnd) {
33334        notify(params.lastSlideMessage);
33335      } else {
33336        notify(params.nextSlideMessage);
33337      }
33338    }
33339
33340    if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {
33341      if (!(swiper.isBeginning && !swiper.params.loop)) {
33342        swiper.slidePrev();
33343      }
33344
33345      if (swiper.isBeginning) {
33346        notify(params.firstSlideMessage);
33347      } else {
33348        notify(params.prevSlideMessage);
33349      }
33350    }
33351
33352    if (swiper.pagination && $targetEl.is((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) {
33353      $targetEl[0].click();
33354    }
33355  }
33356
33357  function updateNavigation() {
33358    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
33359    const {
33360      $nextEl,
33361      $prevEl
33362    } = swiper.navigation;
33363
33364    if ($prevEl && $prevEl.length > 0) {
33365      if (swiper.isBeginning) {
33366        disableEl($prevEl);
33367        makeElNotFocusable($prevEl);
33368      } else {
33369        enableEl($prevEl);
33370        makeElFocusable($prevEl);
33371      }
33372    }
33373
33374    if ($nextEl && $nextEl.length > 0) {
33375      if (swiper.isEnd) {
33376        disableEl($nextEl);
33377        makeElNotFocusable($nextEl);
33378      } else {
33379        enableEl($nextEl);
33380        makeElFocusable($nextEl);
33381      }
33382    }
33383  }
33384
33385  function hasPagination() {
33386    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
33387  }
33388
33389  function hasClickablePagination() {
33390    return hasPagination() && swiper.params.pagination.clickable;
33391  }
33392
33393  function updatePagination() {
33394    const params = swiper.params.a11y;
33395    if (!hasPagination()) return;
33396    swiper.pagination.bullets.each(bulletEl => {
33397      const $bulletEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(bulletEl);
33398
33399      if (swiper.params.pagination.clickable) {
33400        makeElFocusable($bulletEl);
33401
33402        if (!swiper.params.pagination.renderBullet) {
33403          addElRole($bulletEl, 'button');
33404          addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1));
33405        }
33406      }
33407
33408      if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {
33409        $bulletEl.attr('aria-current', 'true');
33410      } else {
33411        $bulletEl.removeAttr('aria-current');
33412      }
33413    });
33414  }
33415
33416  const initNavEl = ($el, wrapperId, message) => {
33417    makeElFocusable($el);
33418
33419    if ($el[0].tagName !== 'BUTTON') {
33420      addElRole($el, 'button');
33421      $el.on('keydown', onEnterOrSpaceKey);
33422    }
33423
33424    addElLabel($el, message);
33425    addElControls($el, wrapperId);
33426  };
33427
33428  const handleFocus = e => {
33429    const slideEl = e.target.closest(`.${swiper.params.slideClass}`);
33430    if (!slideEl || !swiper.slides.includes(slideEl)) return;
33431    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
33432    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
33433    if (isActive || isVisible) return;
33434    swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
33435  };
33436
33437  function init() {
33438    const params = swiper.params.a11y;
33439    swiper.$el.append(liveRegion); // Container
33440
33441    const $containerEl = swiper.$el;
33442
33443    if (params.containerRoleDescriptionMessage) {
33444      addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);
33445    }
33446
33447    if (params.containerMessage) {
33448      addElLabel($containerEl, params.containerMessage);
33449    } // Wrapper
33450
33451
33452    const $wrapperEl = swiper.$wrapperEl;
33453    const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;
33454    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
33455    addElId($wrapperEl, wrapperId);
33456    addElLive($wrapperEl, live); // Slide
33457
33458    if (params.itemRoleDescriptionMessage) {
33459      addElRoleDescription((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.itemRoleDescriptionMessage);
33460    }
33461
33462    addElRole((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.slideRole);
33463    const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;
33464    swiper.slides.each((slideEl, index) => {
33465      const $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl);
33466      const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;
33467      const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
33468      addElLabel($slideEl, ariaLabelMessage);
33469    }); // Navigation
33470
33471    let $nextEl;
33472    let $prevEl;
33473
33474    if (swiper.navigation && swiper.navigation.$nextEl) {
33475      $nextEl = swiper.navigation.$nextEl;
33476    }
33477
33478    if (swiper.navigation && swiper.navigation.$prevEl) {
33479      $prevEl = swiper.navigation.$prevEl;
33480    }
33481
33482    if ($nextEl && $nextEl.length) {
33483      initNavEl($nextEl, wrapperId, params.nextSlideMessage);
33484    }
33485
33486    if ($prevEl && $prevEl.length) {
33487      initNavEl($prevEl, wrapperId, params.prevSlideMessage);
33488    } // Pagination
33489
33490
33491    if (hasClickablePagination()) {
33492      swiper.pagination.$el.on('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
33493    } // Tab focus
33494
33495
33496    swiper.$el.on('focus', handleFocus, true);
33497  }
33498
33499  function destroy() {
33500    if (liveRegion && liveRegion.length > 0) liveRegion.remove();
33501    let $nextEl;
33502    let $prevEl;
33503
33504    if (swiper.navigation && swiper.navigation.$nextEl) {
33505      $nextEl = swiper.navigation.$nextEl;
33506    }
33507
33508    if (swiper.navigation && swiper.navigation.$prevEl) {
33509      $prevEl = swiper.navigation.$prevEl;
33510    }
33511
33512    if ($nextEl) {
33513      $nextEl.off('keydown', onEnterOrSpaceKey);
33514    }
33515
33516    if ($prevEl) {
33517      $prevEl.off('keydown', onEnterOrSpaceKey);
33518    } // Pagination
33519
33520
33521    if (hasClickablePagination()) {
33522      swiper.pagination.$el.off('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
33523    } // Tab focus
33524
33525
33526    swiper.$el.off('focus', handleFocus, true);
33527  }
33528
33529  on('beforeInit', () => {
33530    liveRegion = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(`<span class="${swiper.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`);
33531  });
33532  on('afterInit', () => {
33533    if (!swiper.params.a11y.enabled) return;
33534    init();
33535  });
33536  on('fromEdge toEdge afterInit lock unlock', () => {
33537    if (!swiper.params.a11y.enabled) return;
33538    updateNavigation();
33539  });
33540  on('paginationUpdate', () => {
33541    if (!swiper.params.a11y.enabled) return;
33542    updatePagination();
33543  });
33544  on('destroy', () => {
33545    if (!swiper.params.a11y.enabled) return;
33546    destroy();
33547  });
33548}
33549
33550/***/ }),
33551
vendor: 6,880 bytes, lines 33552-33792
33552/***/ "./node_modules/swiper/modules/autoplay/autoplay.js":
33553/*!**********************************************************!*\
33554  !*** ./node_modules/swiper/modules/autoplay/autoplay.js ***!
33555  \**********************************************************/
33556/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33557
33558"use strict";
33559__webpack_require__.r(__webpack_exports__);
33560/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33561/* harmony export */   "default": function() { return /* binding */ Autoplay; }
33562/* harmony export */ });
33563/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
33564/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
33565/* eslint no-underscore-dangle: "off" */
33566
33567/* eslint no-use-before-define: "off" */
33568
33569
33570function Autoplay(_ref) {
33571  let {
33572    swiper,
33573    extendParams,
33574    on,
33575    emit
33576  } = _ref;
33577  let timeout;
33578  swiper.autoplay = {
33579    running: false,
33580    paused: false
33581  };
33582  extendParams({
33583    autoplay: {
33584      enabled: false,
33585      delay: 3000,
33586      waitForTransition: true,
33587      disableOnInteraction: true,
33588      stopOnLastSlide: false,
33589      reverseDirection: false,
33590      pauseOnMouseEnter: false
33591    }
33592  });
33593
33594  function run() {
33595    const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);
33596    let delay = swiper.params.autoplay.delay;
33597
33598    if ($activeSlideEl.attr('data-swiper-autoplay')) {
33599      delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;
33600    }
33601
33602    clearTimeout(timeout);
33603    timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(() => {
33604      let autoplayResult;
33605
33606      if (swiper.params.autoplay.reverseDirection) {
33607        if (swiper.params.loop) {
33608          swiper.loopFix();
33609          autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);
33610          emit('autoplay');
33611        } else if (!swiper.isBeginning) {
33612          autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);
33613          emit('autoplay');
33614        } else if (!swiper.params.autoplay.stopOnLastSlide) {
33615          autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);
33616          emit('autoplay');
33617        } else {
33618          stop();
33619        }
33620      } else if (swiper.params.loop) {
33621        swiper.loopFix();
33622        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);
33623        emit('autoplay');
33624      } else if (!swiper.isEnd) {
33625        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);
33626        emit('autoplay');
33627      } else if (!swiper.params.autoplay.stopOnLastSlide) {
33628        autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);
33629        emit('autoplay');
33630      } else {
33631        stop();
33632      }
33633
33634      if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {
33635        run();
33636      }
33637    }, delay);
33638  }
33639
33640  function start() {
33641    if (typeof timeout !== 'undefined') return false;
33642    if (swiper.autoplay.running) return false;
33643    swiper.autoplay.running = true;
33644    emit('autoplayStart');
33645    run();
33646    return true;
33647  }
33648
33649  function stop() {
33650    if (!swiper.autoplay.running) return false;
33651    if (typeof timeout === 'undefined') return false;
33652
33653    if (timeout) {
33654      clearTimeout(timeout);
33655      timeout = undefined;
33656    }
33657
33658    swiper.autoplay.running = false;
33659    emit('autoplayStop');
33660    return true;
33661  }
33662
33663  function pause(speed) {
33664    if (!swiper.autoplay.running) return;
33665    if (swiper.autoplay.paused) return;
33666    if (timeout) clearTimeout(timeout);
33667    swiper.autoplay.paused = true;
33668
33669    if (speed === 0 || !swiper.params.autoplay.waitForTransition) {
33670      swiper.autoplay.paused = false;
33671      run();
33672    } else {
33673      ['transitionend', 'webkitTransitionEnd'].forEach(event => {
33674        swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);
33675      });
33676    }
33677  }
33678
33679  function onVisibilityChange() {
33680    const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
33681
33682    if (document.visibilityState === 'hidden' && swiper.autoplay.running) {
33683      pause();
33684    }
33685
33686    if (document.visibilityState === 'visible' && swiper.autoplay.paused) {
33687      run();
33688      swiper.autoplay.paused = false;
33689    }
33690  }
33691
33692  function onTransitionEnd(e) {
33693    if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;
33694    if (e.target !== swiper.$wrapperEl[0]) return;
33695    ['transitionend', 'webkitTransitionEnd'].forEach(event => {
33696      swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);
33697    });
33698    swiper.autoplay.paused = false;
33699
33700    if (!swiper.autoplay.running) {
33701      stop();
33702    } else {
33703      run();
33704    }
33705  }
33706
33707  function onMouseEnter() {
33708    if (swiper.params.autoplay.disableOnInteraction) {
33709      stop();
33710    } else {
33711      emit('autoplayPause');
33712      pause();
33713    }
33714
33715    ['transitionend', 'webkitTransitionEnd'].forEach(event => {
33716      swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);
33717    });
33718  }
33719
33720  function onMouseLeave() {
33721    if (swiper.params.autoplay.disableOnInteraction) {
33722      return;
33723    }
33724
33725    swiper.autoplay.paused = false;
33726    emit('autoplayResume');
33727    run();
33728  }
33729
33730  function attachMouseEvents() {
33731    if (swiper.params.autoplay.pauseOnMouseEnter) {
33732      swiper.$el.on('mouseenter', onMouseEnter);
33733      swiper.$el.on('mouseleave', onMouseLeave);
33734    }
33735  }
33736
33737  function detachMouseEvents() {
33738    swiper.$el.off('mouseenter', onMouseEnter);
33739    swiper.$el.off('mouseleave', onMouseLeave);
33740  }
33741
33742  on('init', () => {
33743    if (swiper.params.autoplay.enabled) {
33744      start();
33745      const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
33746      document.addEventListener('visibilitychange', onVisibilityChange);
33747      attachMouseEvents();
33748    }
33749  });
33750  on('beforeTransitionStart', (_s, speed, internal) => {
33751    if (swiper.autoplay.running) {
33752      if (internal || !swiper.params.autoplay.disableOnInteraction) {
33753        swiper.autoplay.pause(speed);
33754      } else {
33755        stop();
33756      }
33757    }
33758  });
33759  on('sliderFirstMove', () => {
33760    if (swiper.autoplay.running) {
33761      if (swiper.params.autoplay.disableOnInteraction) {
33762        stop();
33763      } else {
33764        pause();
33765      }
33766    }
33767  });
33768  on('touchEnd', () => {
33769    if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {
33770      run();
33771    }
33772  });
33773  on('destroy', () => {
33774    detachMouseEvents();
33775
33776    if (swiper.autoplay.running) {
33777      stop();
33778    }
33779
33780    const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
33781    document.removeEventListener('visibilitychange', onVisibilityChange);
33782  });
33783  Object.assign(swiper.autoplay, {
33784    pause,
33785    run,
33786    start,
33787    stop
33788  });
33789}
33790
33791/***/ }),
33792
vendor: 6,449 bytes, lines 33793-33999
33793/***/ "./node_modules/swiper/modules/controller/controller.js":
33794/*!**************************************************************!*\
33795  !*** ./node_modules/swiper/modules/controller/controller.js ***!
33796  \**************************************************************/
33797/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
33798
33799"use strict";
33800__webpack_require__.r(__webpack_exports__);
33801/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33802/* harmony export */   "default": function() { return /* binding */ Controller; }
33803/* harmony export */ });
33804/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
33805/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
33806
33807function Controller(_ref) {
33808  let {
33809    swiper,
33810    extendParams,
33811    on
33812  } = _ref;
33813  extendParams({
33814    controller: {
33815      control: undefined,
33816      inverse: false,
33817      by: 'slide' // or 'container'
33818
33819    }
33820  });
33821  swiper.controller = {
33822    control: undefined
33823  };
33824
33825  function LinearSpline(x, y) {
33826    const binarySearch = function search() {
33827      let maxIndex;
33828      let minIndex;
33829      let guess;
33830      return (array, val) => {
33831        minIndex = -1;
33832        maxIndex = array.length;
33833
33834        while (maxIndex - minIndex > 1) {
33835          guess = maxIndex + minIndex >> 1;
33836
33837          if (array[guess] <= val) {
33838            minIndex = guess;
33839          } else {
33840            maxIndex = guess;
33841          }
33842        }
33843
33844        return maxIndex;
33845      };
33846    }();
33847
33848    this.x = x;
33849    this.y = y;
33850    this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:
33851    // (x1,y1) is the known point before given value,
33852    // (x3,y3) is the known point after given value.
33853
33854    let i1;
33855    let i3;
33856
33857    this.interpolate = function interpolate(x2) {
33858      if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):
33859
33860      i3 = binarySearch(this.x, x2);
33861      i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:
33862      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
33863
33864      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
33865    };
33866
33867    return this;
33868  } // xxx: for now i will just save one spline function to to
33869
33870
33871  function getInterpolateFunction(c) {
33872    if (!swiper.controller.spline) {
33873      swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
33874    }
33875  }
33876
33877  function setTranslate(_t, byController) {
33878    const controlled = swiper.controller.control;
33879    let multiplier;
33880    let controlledTranslate;
33881    const Swiper = swiper.constructor;
33882
33883    function setControlledTranslate(c) {
33884      // this will create an Interpolate function based on the snapGrids
33885      // x is the Grid of the scrolled scroller and y will be the controlled scroller
33886      // it makes sense to create this only once and recall it for the interpolation
33887      // the function does a lot of value caching for performance
33888      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
33889
33890      if (swiper.params.controller.by === 'slide') {
33891        getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
33892        // but it did not work out
33893
33894        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
33895      }
33896
33897      if (!controlledTranslate || swiper.params.controller.by === 'container') {
33898        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
33899        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
33900      }
33901
33902      if (swiper.params.controller.inverse) {
33903        controlledTranslate = c.maxTranslate() - controlledTranslate;
33904      }
33905
33906      c.updateProgress(controlledTranslate);
33907      c.setTranslate(controlledTranslate, swiper);
33908      c.updateActiveIndex();
33909      c.updateSlidesClasses();
33910    }
33911
33912    if (Array.isArray(controlled)) {
33913      for (let i = 0; i < controlled.length; i += 1) {
33914        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
33915          setControlledTranslate(controlled[i]);
33916        }
33917      }
33918    } else if (controlled instanceof Swiper && byController !== controlled) {
33919      setControlledTranslate(controlled);
33920    }
33921  }
33922
33923  function setTransition(duration, byController) {
33924    const Swiper = swiper.constructor;
33925    const controlled = swiper.controller.control;
33926    let i;
33927
33928    function setControlledTransition(c) {
33929      c.setTransition(duration, swiper);
33930
33931      if (duration !== 0) {
33932        c.transitionStart();
33933
33934        if (c.params.autoHeight) {
33935          (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {
33936            c.updateAutoHeight();
33937          });
33938        }
33939
33940        c.$wrapperEl.transitionEnd(() => {
33941          if (!controlled) return;
33942
33943          if (c.params.loop && swiper.params.controller.by === 'slide') {
33944            c.loopFix();
33945          }
33946
33947          c.transitionEnd();
33948        });
33949      }
33950    }
33951
33952    if (Array.isArray(controlled)) {
33953      for (i = 0; i < controlled.length; i += 1) {
33954        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
33955          setControlledTransition(controlled[i]);
33956        }
33957      }
33958    } else if (controlled instanceof Swiper && byController !== controlled) {
33959      setControlledTransition(controlled);
33960    }
33961  }
33962
33963  function removeSpline() {
33964    if (!swiper.controller.control) return;
33965
33966    if (swiper.controller.spline) {
33967      swiper.controller.spline = undefined;
33968      delete swiper.controller.spline;
33969    }
33970  }
33971
33972  on('beforeInit', () => {
33973    swiper.controller.control = swiper.params.controller.control;
33974  });
33975  on('update', () => {
33976    removeSpline();
33977  });
33978  on('resize', () => {
33979    removeSpline();
33980  });
33981  on('observerUpdate', () => {
33982    removeSpline();
33983  });
33984  on('setTranslate', (_s, translate, byController) => {
33985    if (!swiper.controller.control) return;
33986    swiper.controller.setTranslate(translate, byController);
33987  });
33988  on('setTransition', (_s, duration, byController) => {
33989    if (!swiper.controller.control) return;
33990    swiper.controller.setTransition(duration, byController);
33991  });
33992  Object.assign(swiper.controller, {
33993    setTranslate,
33994    setTransition
33995  });
33996}
33997
33998/***/ }),
33999
vendor: 5,545 bytes, lines 34000-34145
34000/***/ "./node_modules/swiper/modules/effect-cards/effect-cards.js":
34001/*!******************************************************************!*\
34002  !*** ./node_modules/swiper/modules/effect-cards/effect-cards.js ***!
34003  \******************************************************************/
34004/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34005
34006"use strict";
34007__webpack_require__.r(__webpack_exports__);
34008/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34009/* harmony export */   "default": function() { return /* binding */ EffectCards; }
34010/* harmony export */ });
34011/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js");
34012/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34013/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js");
34014/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js");
34015
34016
34017
34018
34019function EffectCards(_ref) {
34020  let {
34021    swiper,
34022    extendParams,
34023    on
34024  } = _ref;
34025  extendParams({
34026    cardsEffect: {
34027      slideShadows: true,
34028      transformEl: null,
34029      rotate: true
34030    }
34031  });
34032
34033  const setTranslate = () => {
34034    const {
34035      slides,
34036      activeIndex
34037    } = swiper;
34038    const params = swiper.params.cardsEffect;
34039    const {
34040      startTranslate,
34041      isTouched
34042    } = swiper.touchEventsData;
34043    const currentTranslate = swiper.translate;
34044
34045    for (let i = 0; i < slides.length; i += 1) {
34046      const $slideEl = slides.eq(i);
34047      const slideProgress = $slideEl[0].progress;
34048      const progress = Math.min(Math.max(slideProgress, -4), 4);
34049      let offset = $slideEl[0].swiperSlideOffset;
34050
34051      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
34052        swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);
34053      }
34054
34055      if (swiper.params.centeredSlides && swiper.params.cssMode) {
34056        offset -= slides[0].swiperSlideOffset;
34057      }
34058
34059      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
34060      let tY = 0;
34061      const tZ = -100 * Math.abs(progress);
34062      let scale = 1;
34063      let rotate = -2 * progress;
34064      let tXAdd = 8 - Math.abs(progress) * 0.75;
34065      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
34066      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
34067      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
34068
34069      if (isSwipeToNext || isSwipeToPrev) {
34070        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
34071        rotate += -28 * progress * subProgress;
34072        scale += -0.5 * subProgress;
34073        tXAdd += 96 * subProgress;
34074        tY = `${-25 * subProgress * Math.abs(progress)}%`;
34075      }
34076
34077      if (progress < 0) {
34078        // next
34079        tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;
34080      } else if (progress > 0) {
34081        // prev
34082        tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;
34083      } else {
34084        tX = `${tX}px`;
34085      }
34086
34087      if (!swiper.isHorizontal()) {
34088        const prevY = tY;
34089        tY = tX;
34090        tX = prevY;
34091      }
34092
34093      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
34094      const transform = `
34095        translate3d(${tX}, ${tY}, ${tZ}px)
34096        rotateZ(${params.rotate ? rotate : 0}deg)
34097        scale(${scaleString})
34098      `;
34099
34100      if (params.slideShadows) {
34101        // Set shadows
34102        let $shadowEl = $slideEl.find('.swiper-slide-shadow');
34103
34104        if ($shadowEl.length === 0) {
34105          $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl);
34106        }
34107
34108        if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
34109      }
34110
34111      $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
34112      const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl);
34113      $targetEl.transform(transform);
34114    }
34115  };
34116
34117  const setTransition = duration => {
34118    const {
34119      transformEl
34120    } = swiper.params.cardsEffect;
34121    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;
34122    $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);
34123    (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({
34124      swiper,
34125      duration,
34126      transformEl
34127    });
34128  };
34129
34130  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({
34131    effect: 'cards',
34132    swiper,
34133    on,
34134    setTranslate,
34135    setTransition,
34136    perspective: () => true,
34137    overwriteParams: () => ({
34138      watchSlidesProgress: true,
34139      virtualTranslate: !swiper.params.cssMode
34140    })
34141  });
34142}
34143
34144/***/ }),
34145
vendor: 5,490 bytes, lines 34146-34267
34146/***/ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js":
34147/*!**************************************************************************!*\
34148  !*** ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***!
34149  \**************************************************************************/
34150/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34151
34152"use strict";
34153__webpack_require__.r(__webpack_exports__);
34154/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34155/* harmony export */   "default": function() { return /* binding */ EffectCoverflow; }
34156/* harmony export */ });
34157/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js");
34158/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34159/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js");
34160
34161
34162
34163function EffectCoverflow(_ref) {
34164  let {
34165    swiper,
34166    extendParams,
34167    on
34168  } = _ref;
34169  extendParams({
34170    coverflowEffect: {
34171      rotate: 50,
34172      stretch: 0,
34173      depth: 100,
34174      scale: 1,
34175      modifier: 1,
34176      slideShadows: true,
34177      transformEl: null
34178    }
34179  });
34180
34181  const setTranslate = () => {
34182    const {
34183      width: swiperWidth,
34184      height: swiperHeight,
34185      slides,
34186      slidesSizesGrid
34187    } = swiper;
34188    const params = swiper.params.coverflowEffect;
34189    const isHorizontal = swiper.isHorizontal();
34190    const transform = swiper.translate;
34191    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
34192    const rotate = isHorizontal ? params.rotate : -params.rotate;
34193    const translate = params.depth; // Each slide offset from center
34194
34195    for (let i = 0, length = slides.length; i < length; i += 1) {
34196      const $slideEl = slides.eq(i);
34197      const slideSize = slidesSizesGrid[i];
34198      const slideOffset = $slideEl[0].swiperSlideOffset;
34199      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
34200      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
34201      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
34202      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0
34203
34204      let translateZ = -translate * Math.abs(offsetMultiplier);
34205      let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders
34206
34207      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
34208        stretch = parseFloat(params.stretch) / 100 * slideSize;
34209      }
34210
34211      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
34212      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
34213      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values
34214
34215      if (Math.abs(translateX) < 0.001) translateX = 0;
34216      if (Math.abs(translateY) < 0.001) translateY = 0;
34217      if (Math.abs(translateZ) < 0.001) translateZ = 0;
34218      if (Math.abs(rotateY) < 0.001) rotateY = 0;
34219      if (Math.abs(rotateX) < 0.001) rotateX = 0;
34220      if (Math.abs(scale) < 0.001) scale = 0;
34221      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;
34222      const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl);
34223      $targetEl.transform(slideTransform);
34224      $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
34225
34226      if (params.slideShadows) {
34227        // Set shadows
34228        let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');
34229        let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');
34230
34231        if ($shadowBeforeEl.length === 0) {
34232          $shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'left' : 'top');
34233        }
34234
34235        if ($shadowAfterEl.length === 0) {
34236          $shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'right' : 'bottom');
34237        }
34238
34239        if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
34240        if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
34241      }
34242    }
34243  };
34244
34245  const setTransition = duration => {
34246    const {
34247      transformEl
34248    } = swiper.params.coverflowEffect;
34249    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;
34250    $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
34251  };
34252
34253  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({
34254    effect: 'coverflow',
34255    swiper,
34256    on,
34257    setTranslate,
34258    setTransition,
34259    perspective: () => true,
34260    overwriteParams: () => ({
34261      watchSlidesProgress: true
34262    })
34263  });
34264}
34265
34266/***/ }),
34267
vendor: 6,216 bytes, lines 34268-34440
34268/***/ "./node_modules/swiper/modules/effect-creative/effect-creative.js":
34269/*!************************************************************************!*\
34270  !*** ./node_modules/swiper/modules/effect-creative/effect-creative.js ***!
34271  \************************************************************************/
34272/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34273
34274"use strict";
34275__webpack_require__.r(__webpack_exports__);
34276/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34277/* harmony export */   "default": function() { return /* binding */ EffectCreative; }
34278/* harmony export */ });
34279/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js");
34280/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34281/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js");
34282/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js");
34283
34284
34285
34286
34287function EffectCreative(_ref) {
34288  let {
34289    swiper,
34290    extendParams,
34291    on
34292  } = _ref;
34293  extendParams({
34294    creativeEffect: {
34295      transformEl: null,
34296      limitProgress: 1,
34297      shadowPerProgress: false,
34298      progressMultiplier: 1,
34299      perspective: true,
34300      prev: {
34301        translate: [0, 0, 0],
34302        rotate: [0, 0, 0],
34303        opacity: 1,
34304        scale: 1
34305      },
34306      next: {
34307        translate: [0, 0, 0],
34308        rotate: [0, 0, 0],
34309        opacity: 1,
34310        scale: 1
34311      }
34312    }
34313  });
34314
34315  const getTranslateValue = value => {
34316    if (typeof value === 'string') return value;
34317    return `${value}px`;
34318  };
34319
34320  const setTranslate = () => {
34321    const {
34322      slides,
34323      $wrapperEl,
34324      slidesSizesGrid
34325    } = swiper;
34326    const params = swiper.params.creativeEffect;
34327    const {
34328      progressMultiplier: multiplier
34329    } = params;
34330    const isCenteredSlides = swiper.params.centeredSlides;
34331
34332    if (isCenteredSlides) {
34333      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
34334      $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);
34335    }
34336
34337    for (let i = 0; i < slides.length; i += 1) {
34338      const $slideEl = slides.eq(i);
34339      const slideProgress = $slideEl[0].progress;
34340      const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);
34341      let originalProgress = progress;
34342
34343      if (!isCenteredSlides) {
34344        originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);
34345      }
34346
34347      const offset = $slideEl[0].swiperSlideOffset;
34348      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
34349      const r = [0, 0, 0];
34350      let custom = false;
34351
34352      if (!swiper.isHorizontal()) {
34353        t[1] = t[0];
34354        t[0] = 0;
34355      }
34356
34357      let data = {
34358        translate: [0, 0, 0],
34359        rotate: [0, 0, 0],
34360        scale: 1,
34361        opacity: 1
34362      };
34363
34364      if (progress < 0) {
34365        data = params.next;
34366        custom = true;
34367      } else if (progress > 0) {
34368        data = params.prev;
34369        custom = true;
34370      } // set translate
34371
34372
34373      t.forEach((value, index) => {
34374        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
34375      }); // set rotates
34376
34377      r.forEach((value, index) => {
34378        r[index] = data.rotate[index] * Math.abs(progress * multiplier);
34379      });
34380      $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
34381      const translateString = t.join(', ');
34382      const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;
34383      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
34384      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
34385      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows
34386
34387      if (custom && data.shadow || !custom) {
34388        let $shadowEl = $slideEl.children('.swiper-slide-shadow');
34389
34390        if ($shadowEl.length === 0 && data.shadow) {
34391          $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl);
34392        }
34393
34394        if ($shadowEl.length) {
34395          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
34396          $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
34397        }
34398      }
34399
34400      const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl);
34401      $targetEl.transform(transform).css({
34402        opacity: opacityString
34403      });
34404
34405      if (data.origin) {
34406        $targetEl.css('transform-origin', data.origin);
34407      }
34408    }
34409  };
34410
34411  const setTransition = duration => {
34412    const {
34413      transformEl
34414    } = swiper.params.creativeEffect;
34415    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;
34416    $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);
34417    (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({
34418      swiper,
34419      duration,
34420      transformEl,
34421      allSlides: true
34422    });
34423  };
34424
34425  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({
34426    effect: 'creative',
34427    swiper,
34428    on,
34429    setTranslate,
34430    setTransition,
34431    perspective: () => swiper.params.creativeEffect.perspective,
34432    overwriteParams: () => ({
34433      watchSlidesProgress: true,
34434      virtualTranslate: !swiper.params.cssMode
34435    })
34436  });
34437}
34438
34439/***/ }),
34440
vendor: 7,433 bytes, lines 34441-34652
34441/***/ "./node_modules/swiper/modules/effect-cube/effect-cube.js":
34442/*!****************************************************************!*\
34443  !*** ./node_modules/swiper/modules/effect-cube/effect-cube.js ***!
34444  \****************************************************************/
34445/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34446
34447"use strict";
34448__webpack_require__.r(__webpack_exports__);
34449/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34450/* harmony export */   "default": function() { return /* binding */ EffectCube; }
34451/* harmony export */ });
34452/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
34453/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34454
34455
34456function EffectCube(_ref) {
34457  let {
34458    swiper,
34459    extendParams,
34460    on
34461  } = _ref;
34462  extendParams({
34463    cubeEffect: {
34464      slideShadows: true,
34465      shadow: true,
34466      shadowOffset: 20,
34467      shadowScale: 0.94
34468    }
34469  });
34470
34471  const createSlideShadows = ($slideEl, progress, isHorizontal) => {
34472    let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');
34473    let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');
34474
34475    if (shadowBefore.length === 0) {
34476      shadowBefore = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}"></div>`);
34477      $slideEl.append(shadowBefore);
34478    }
34479
34480    if (shadowAfter.length === 0) {
34481      shadowAfter = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}"></div>`);
34482      $slideEl.append(shadowAfter);
34483    }
34484
34485    if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);
34486    if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);
34487  };
34488
34489  const recreateShadows = () => {
34490    // create new ones
34491    const isHorizontal = swiper.isHorizontal();
34492    swiper.slides.each(slideEl => {
34493      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
34494      createSlideShadows((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl), progress, isHorizontal);
34495    });
34496  };
34497
34498  const setTranslate = () => {
34499    const {
34500      $el,
34501      $wrapperEl,
34502      slides,
34503      width: swiperWidth,
34504      height: swiperHeight,
34505      rtlTranslate: rtl,
34506      size: swiperSize,
34507      browser
34508    } = swiper;
34509    const params = swiper.params.cubeEffect;
34510    const isHorizontal = swiper.isHorizontal();
34511    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
34512    let wrapperRotate = 0;
34513    let $cubeShadowEl;
34514
34515    if (params.shadow) {
34516      if (isHorizontal) {
34517        $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');
34518
34519        if ($cubeShadowEl.length === 0) {
34520          $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>');
34521          $wrapperEl.append($cubeShadowEl);
34522        }
34523
34524        $cubeShadowEl.css({
34525          height: `${swiperWidth}px`
34526        });
34527      } else {
34528        $cubeShadowEl = $el.find('.swiper-cube-shadow');
34529
34530        if ($cubeShadowEl.length === 0) {
34531          $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>');
34532          $el.append($cubeShadowEl);
34533        }
34534      }
34535    }
34536
34537    for (let i = 0; i < slides.length; i += 1) {
34538      const $slideEl = slides.eq(i);
34539      let slideIndex = i;
34540
34541      if (isVirtual) {
34542        slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);
34543      }
34544
34545      let slideAngle = slideIndex * 90;
34546      let round = Math.floor(slideAngle / 360);
34547
34548      if (rtl) {
34549        slideAngle = -slideAngle;
34550        round = Math.floor(-slideAngle / 360);
34551      }
34552
34553      const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);
34554      let tx = 0;
34555      let ty = 0;
34556      let tz = 0;
34557
34558      if (slideIndex % 4 === 0) {
34559        tx = -round * 4 * swiperSize;
34560        tz = 0;
34561      } else if ((slideIndex - 1) % 4 === 0) {
34562        tx = 0;
34563        tz = -round * 4 * swiperSize;
34564      } else if ((slideIndex - 2) % 4 === 0) {
34565        tx = swiperSize + round * 4 * swiperSize;
34566        tz = swiperSize;
34567      } else if ((slideIndex - 3) % 4 === 0) {
34568        tx = -swiperSize;
34569        tz = 3 * swiperSize + swiperSize * 4 * round;
34570      }
34571
34572      if (rtl) {
34573        tx = -tx;
34574      }
34575
34576      if (!isHorizontal) {
34577        ty = tx;
34578        tx = 0;
34579      }
34580
34581      const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
34582
34583      if (progress <= 1 && progress > -1) {
34584        wrapperRotate = slideIndex * 90 + progress * 90;
34585        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
34586      }
34587
34588      $slideEl.transform(transform);
34589
34590      if (params.slideShadows) {
34591        createSlideShadows($slideEl, progress, isHorizontal);
34592      }
34593    }
34594
34595    $wrapperEl.css({
34596      '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,
34597      'transform-origin': `50% 50% -${swiperSize / 2}px`
34598    });
34599
34600    if (params.shadow) {
34601      if (isHorizontal) {
34602        $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);
34603      } else {
34604        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
34605        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
34606        const scale1 = params.shadowScale;
34607        const scale2 = params.shadowScale / multiplier;
34608        const offset = params.shadowOffset;
34609        $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);
34610      }
34611    }
34612
34613    const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;
34614    $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);
34615    $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
34616  };
34617
34618  const setTransition = duration => {
34619    const {
34620      $el,
34621      slides
34622    } = swiper;
34623    slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
34624
34625    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
34626      $el.find('.swiper-cube-shadow').transition(duration);
34627    }
34628  };
34629
34630  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({
34631    effect: 'cube',
34632    swiper,
34633    on,
34634    setTranslate,
34635    setTransition,
34636    recreateShadows,
34637    getEffectParams: () => swiper.params.cubeEffect,
34638    perspective: () => true,
34639    overwriteParams: () => ({
34640      slidesPerView: 1,
34641      slidesPerGroup: 1,
34642      watchSlidesProgress: true,
34643      resistanceRatio: 0,
34644      spaceBetween: 0,
34645      centeredSlides: false,
34646      virtualTranslate: true
34647    })
34648  });
34649}
34650
34651/***/ }),
34652
vendor: 3,022 bytes, lines 34653-34740
34653/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.js":
34654/*!****************************************************************!*\
34655  !*** ./node_modules/swiper/modules/effect-fade/effect-fade.js ***!
34656  \****************************************************************/
34657/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34658
34659"use strict";
34660__webpack_require__.r(__webpack_exports__);
34661/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34662/* harmony export */   "default": function() { return /* binding */ EffectFade; }
34663/* harmony export */ });
34664/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34665/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js");
34666/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js");
34667
34668
34669
34670function EffectFade(_ref) {
34671  let {
34672    swiper,
34673    extendParams,
34674    on
34675  } = _ref;
34676  extendParams({
34677    fadeEffect: {
34678      crossFade: false,
34679      transformEl: null
34680    }
34681  });
34682
34683  const setTranslate = () => {
34684    const {
34685      slides
34686    } = swiper;
34687    const params = swiper.params.fadeEffect;
34688
34689    for (let i = 0; i < slides.length; i += 1) {
34690      const $slideEl = swiper.slides.eq(i);
34691      const offset = $slideEl[0].swiperSlideOffset;
34692      let tx = -offset;
34693      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
34694      let ty = 0;
34695
34696      if (!swiper.isHorizontal()) {
34697        ty = tx;
34698        tx = 0;
34699      }
34700
34701      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);
34702      const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl);
34703      $targetEl.css({
34704        opacity: slideOpacity
34705      }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);
34706    }
34707  };
34708
34709  const setTransition = duration => {
34710    const {
34711      transformEl
34712    } = swiper.params.fadeEffect;
34713    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;
34714    $transitionElements.transition(duration);
34715    (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__["default"])({
34716      swiper,
34717      duration,
34718      transformEl,
34719      allSlides: true
34720    });
34721  };
34722
34723  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
34724    effect: 'fade',
34725    swiper,
34726    on,
34727    setTranslate,
34728    setTransition,
34729    overwriteParams: () => ({
34730      slidesPerView: 1,
34731      slidesPerGroup: 1,
34732      watchSlidesProgress: true,
34733      spaceBetween: 0,
34734      virtualTranslate: !swiper.params.cssMode
34735    })
34736  });
34737}
34738
34739/***/ }),
34740
vendor: 5,395 bytes, lines 34741-34883
34741/***/ "./node_modules/swiper/modules/effect-flip/effect-flip.js":
34742/*!****************************************************************!*\
34743  !*** ./node_modules/swiper/modules/effect-flip/effect-flip.js ***!
34744  \****************************************************************/
34745/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34746
34747"use strict";
34748__webpack_require__.r(__webpack_exports__);
34749/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34750/* harmony export */   "default": function() { return /* binding */ EffectFlip; }
34751/* harmony export */ });
34752/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
34753/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js");
34754/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js");
34755/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js");
34756/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js");
34757
34758
34759
34760
34761
34762function EffectFlip(_ref) {
34763  let {
34764    swiper,
34765    extendParams,
34766    on
34767  } = _ref;
34768  extendParams({
34769    flipEffect: {
34770      slideShadows: true,
34771      limitRotation: true,
34772      transformEl: null
34773    }
34774  });
34775
34776  const createSlideShadows = ($slideEl, progress, params) => {
34777    let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');
34778    let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');
34779
34780    if (shadowBefore.length === 0) {
34781      shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');
34782    }
34783
34784    if (shadowAfter.length === 0) {
34785      shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
34786    }
34787
34788    if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);
34789    if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);
34790  };
34791
34792  const recreateShadows = () => {
34793    // Set shadows
34794    const params = swiper.params.flipEffect;
34795    swiper.slides.each(slideEl => {
34796      const $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl);
34797      let progress = $slideEl[0].progress;
34798
34799      if (swiper.params.flipEffect.limitRotation) {
34800        progress = Math.max(Math.min(slideEl.progress, 1), -1);
34801      }
34802
34803      createSlideShadows($slideEl, progress, params);
34804    });
34805  };
34806
34807  const setTranslate = () => {
34808    const {
34809      slides,
34810      rtlTranslate: rtl
34811    } = swiper;
34812    const params = swiper.params.flipEffect;
34813
34814    for (let i = 0; i < slides.length; i += 1) {
34815      const $slideEl = slides.eq(i);
34816      let progress = $slideEl[0].progress;
34817
34818      if (swiper.params.flipEffect.limitRotation) {
34819        progress = Math.max(Math.min($slideEl[0].progress, 1), -1);
34820      }
34821
34822      const offset = $slideEl[0].swiperSlideOffset;
34823      const rotate = -180 * progress;
34824      let rotateY = rotate;
34825      let rotateX = 0;
34826      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
34827      let ty = 0;
34828
34829      if (!swiper.isHorizontal()) {
34830        ty = tx;
34831        tx = 0;
34832        rotateX = -rotateY;
34833        rotateY = 0;
34834      } else if (rtl) {
34835        rotateY = -rotateY;
34836      }
34837
34838      $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
34839
34840      if (params.slideShadows) {
34841        createSlideShadows($slideEl, progress, params);
34842      }
34843
34844      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
34845      const $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__["default"])(params, $slideEl);
34846      $targetEl.transform(transform);
34847    }
34848  };
34849
34850  const setTransition = duration => {
34851    const {
34852      transformEl
34853    } = swiper.params.flipEffect;
34854    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;
34855    $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
34856    (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__["default"])({
34857      swiper,
34858      duration,
34859      transformEl
34860    });
34861  };
34862
34863  (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__["default"])({
34864    effect: 'flip',
34865    swiper,
34866    on,
34867    setTranslate,
34868    setTransition,
34869    recreateShadows,
34870    getEffectParams: () => swiper.params.flipEffect,
34871    perspective: () => true,
34872    overwriteParams: () => ({
34873      slidesPerView: 1,
34874      slidesPerGroup: 1,
34875      watchSlidesProgress: true,
34876      spaceBetween: 0,
34877      virtualTranslate: !swiper.params.cssMode
34878    })
34879  });
34880}
34881
34882/***/ }),
34883
vendor: 9,035 bytes, lines 34884-35156
34884/***/ "./node_modules/swiper/modules/free-mode/free-mode.js":
34885/*!************************************************************!*\
34886  !*** ./node_modules/swiper/modules/free-mode/free-mode.js ***!
34887  \************************************************************/
34888/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
34889
34890"use strict";
34891__webpack_require__.r(__webpack_exports__);
34892/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34893/* harmony export */   "default": function() { return /* binding */ freeMode; }
34894/* harmony export */ });
34895/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
34896
34897function freeMode(_ref) {
34898  let {
34899    swiper,
34900    extendParams,
34901    emit,
34902    once
34903  } = _ref;
34904  extendParams({
34905    freeMode: {
34906      enabled: false,
34907      momentum: true,
34908      momentumRatio: 1,
34909      momentumBounce: true,
34910      momentumBounceRatio: 1,
34911      momentumVelocityRatio: 1,
34912      sticky: false,
34913      minimumVelocity: 0.02
34914    }
34915  });
34916
34917  function onTouchStart() {
34918    const translate = swiper.getTranslate();
34919    swiper.setTranslate(translate);
34920    swiper.setTransition(0);
34921    swiper.touchEventsData.velocities.length = 0;
34922    swiper.freeMode.onTouchEnd({
34923      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
34924    });
34925  }
34926
34927  function onTouchMove() {
34928    const {
34929      touchEventsData: data,
34930      touches
34931    } = swiper; // Velocity
34932
34933    if (data.velocities.length === 0) {
34934      data.velocities.push({
34935        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
34936        time: data.touchStartTime
34937      });
34938    }
34939
34940    data.velocities.push({
34941      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
34942      time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)()
34943    });
34944  }
34945
34946  function onTouchEnd(_ref2) {
34947    let {
34948      currentPos
34949    } = _ref2;
34950    const {
34951      params,
34952      $wrapperEl,
34953      rtlTranslate: rtl,
34954      snapGrid,
34955      touchEventsData: data
34956    } = swiper; // Time diff
34957
34958    const touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)();
34959    const timeDiff = touchEndTime - data.touchStartTime;
34960
34961    if (currentPos < -swiper.minTranslate()) {
34962      swiper.slideTo(swiper.activeIndex);
34963      return;
34964    }
34965
34966    if (currentPos > -swiper.maxTranslate()) {
34967      if (swiper.slides.length < snapGrid.length) {
34968        swiper.slideTo(snapGrid.length - 1);
34969      } else {
34970        swiper.slideTo(swiper.slides.length - 1);
34971      }
34972
34973      return;
34974    }
34975
34976    if (params.freeMode.momentum) {
34977      if (data.velocities.length > 1) {
34978        const lastMoveEvent = data.velocities.pop();
34979        const velocityEvent = data.velocities.pop();
34980        const distance = lastMoveEvent.position - velocityEvent.position;
34981        const time = lastMoveEvent.time - velocityEvent.time;
34982        swiper.velocity = distance / time;
34983        swiper.velocity /= 2;
34984
34985        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
34986          swiper.velocity = 0;
34987        } // this implies that the user stopped moving a finger then released.
34988        // There would be no events with distance zero, so the last event is stale.
34989
34990
34991        if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) {
34992          swiper.velocity = 0;
34993        }
34994      } else {
34995        swiper.velocity = 0;
34996      }
34997
34998      swiper.velocity *= params.freeMode.momentumVelocityRatio;
34999      data.velocities.length = 0;
35000      let momentumDuration = 1000 * params.freeMode.momentumRatio;
35001      const momentumDistance = swiper.velocity * momentumDuration;
35002      let newPosition = swiper.translate + momentumDistance;
35003      if (rtl) newPosition = -newPosition;
35004      let doBounce = false;
35005      let afterBouncePosition;
35006      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
35007      let needsLoopFix;
35008
35009      if (newPosition < swiper.maxTranslate()) {
35010        if (params.freeMode.momentumBounce) {
35011          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
35012            newPosition = swiper.maxTranslate() - bounceAmount;
35013          }
35014
35015          afterBouncePosition = swiper.maxTranslate();
35016          doBounce = true;
35017          data.allowMomentumBounce = true;
35018        } else {
35019          newPosition = swiper.maxTranslate();
35020        }
35021
35022        if (params.loop && params.centeredSlides) needsLoopFix = true;
35023      } else if (newPosition > swiper.minTranslate()) {
35024        if (params.freeMode.momentumBounce) {
35025          if (newPosition - swiper.minTranslate() > bounceAmount) {
35026            newPosition = swiper.minTranslate() + bounceAmount;
35027          }
35028
35029          afterBouncePosition = swiper.minTranslate();
35030          doBounce = true;
35031          data.allowMomentumBounce = true;
35032        } else {
35033          newPosition = swiper.minTranslate();
35034        }
35035
35036        if (params.loop && params.centeredSlides) needsLoopFix = true;
35037      } else if (params.freeMode.sticky) {
35038        let nextSlide;
35039
35040        for (let j = 0; j < snapGrid.length; j += 1) {
35041          if (snapGrid[j] > -newPosition) {
35042            nextSlide = j;
35043            break;
35044          }
35045        }
35046
35047        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
35048          newPosition = snapGrid[nextSlide];
35049        } else {
35050          newPosition = snapGrid[nextSlide - 1];
35051        }
35052
35053        newPosition = -newPosition;
35054      }
35055
35056      if (needsLoopFix) {
35057        once('transitionEnd', () => {
35058          swiper.loopFix();
35059        });
35060      } // Fix duration
35061
35062
35063      if (swiper.velocity !== 0) {
35064        if (rtl) {
35065          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
35066        } else {
35067          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
35068        }
35069
35070        if (params.freeMode.sticky) {
35071          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
35072          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
35073          // It's easy to see this when simulating touch with mouse events. To fix this,
35074          // limit single-slide swipes to the default slide duration. This also has the
35075          // nice side effect of matching slide speed if the user stopped moving before
35076          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
35077          // For faster swipes, also apply limits (albeit higher ones).
35078          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
35079          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
35080
35081          if (moveDistance < currentSlideSize) {
35082            momentumDuration = params.speed;
35083          } else if (moveDistance < 2 * currentSlideSize) {
35084            momentumDuration = params.speed * 1.5;
35085          } else {
35086            momentumDuration = params.speed * 2.5;
35087          }
35088        }
35089      } else if (params.freeMode.sticky) {
35090        swiper.slideToClosest();
35091        return;
35092      }
35093
35094      if (params.freeMode.momentumBounce && doBounce) {
35095        swiper.updateProgress(afterBouncePosition);
35096        swiper.setTransition(momentumDuration);
35097        swiper.setTranslate(newPosition);
35098        swiper.transitionStart(true, swiper.swipeDirection);
35099        swiper.animating = true;
35100        $wrapperEl.transitionEnd(() => {
35101          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
35102          emit('momentumBounce');
35103          swiper.setTransition(params.speed);
35104          setTimeout(() => {
35105            swiper.setTranslate(afterBouncePosition);
35106            $wrapperEl.transitionEnd(() => {
35107              if (!swiper || swiper.destroyed) return;
35108              swiper.transitionEnd();
35109            });
35110          }, 0);
35111        });
35112      } else if (swiper.velocity) {
35113        emit('_freeModeNoMomentumRelease');
35114        swiper.updateProgress(newPosition);
35115        swiper.setTransition(momentumDuration);
35116        swiper.setTranslate(newPosition);
35117        swiper.transitionStart(true, swiper.swipeDirection);
35118
35119        if (!swiper.animating) {
35120          swiper.animating = true;
35121          $wrapperEl.transitionEnd(() => {
35122            if (!swiper || swiper.destroyed) return;
35123            swiper.transitionEnd();
35124          });
35125        }
35126      } else {
35127        swiper.updateProgress(newPosition);
35128      }
35129
35130      swiper.updateActiveIndex();
35131      swiper.updateSlidesClasses();
35132    } else if (params.freeMode.sticky) {
35133      swiper.slideToClosest();
35134      return;
35135    } else if (params.freeMode) {
35136      emit('_freeModeNoMomentumRelease');
35137    }
35138
35139    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
35140      swiper.updateProgress();
35141      swiper.updateActiveIndex();
35142      swiper.updateSlidesClasses();
35143    }
35144  }
35145
35146  Object.assign(swiper, {
35147    freeMode: {
35148      onTouchStart,
35149      onTouchMove,
35150      onTouchEnd
35151    }
35152  });
35153}
35154
35155/***/ }),
35156
vendor: 3,857 bytes, lines 35157-35287
35157/***/ "./node_modules/swiper/modules/grid/grid.js":
35158/*!**************************************************!*\
35159  !*** ./node_modules/swiper/modules/grid/grid.js ***!
35160  \**************************************************/
35161/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35162
35163"use strict";
35164__webpack_require__.r(__webpack_exports__);
35165/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35166/* harmony export */   "default": function() { return /* binding */ Grid; }
35167/* harmony export */ });
35168function Grid(_ref) {
35169  let {
35170    swiper,
35171    extendParams
35172  } = _ref;
35173  extendParams({
35174    grid: {
35175      rows: 1,
35176      fill: 'column'
35177    }
35178  });
35179  let slidesNumberEvenToRows;
35180  let slidesPerRow;
35181  let numFullColumns;
35182
35183  const initSlides = slidesLength => {
35184    const {
35185      slidesPerView
35186    } = swiper.params;
35187    const {
35188      rows,
35189      fill
35190    } = swiper.params.grid;
35191    slidesPerRow = slidesNumberEvenToRows / rows;
35192    numFullColumns = Math.floor(slidesLength / rows);
35193
35194    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
35195      slidesNumberEvenToRows = slidesLength;
35196    } else {
35197      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
35198    }
35199
35200    if (slidesPerView !== 'auto' && fill === 'row') {
35201      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
35202    }
35203  };
35204
35205  const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {
35206    const {
35207      slidesPerGroup,
35208      spaceBetween
35209    } = swiper.params;
35210    const {
35211      rows,
35212      fill
35213    } = swiper.params.grid; // Set slides order
35214
35215    let newSlideOrderIndex;
35216    let column;
35217    let row;
35218
35219    if (fill === 'row' && slidesPerGroup > 1) {
35220      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
35221      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
35222      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
35223      row = Math.floor(slideIndexInGroup / columnsInGroup);
35224      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
35225      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
35226      slide.css({
35227        '-webkit-order': newSlideOrderIndex,
35228        order: newSlideOrderIndex
35229      });
35230    } else if (fill === 'column') {
35231      column = Math.floor(i / rows);
35232      row = i - column * rows;
35233
35234      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
35235        row += 1;
35236
35237        if (row >= rows) {
35238          row = 0;
35239          column += 1;
35240        }
35241      }
35242    } else {
35243      row = Math.floor(i / slidesPerRow);
35244      column = i - row * slidesPerRow;
35245    }
35246
35247    slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');
35248  };
35249
35250  const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {
35251    const {
35252      spaceBetween,
35253      centeredSlides,
35254      roundLengths
35255    } = swiper.params;
35256    const {
35257      rows
35258    } = swiper.params.grid;
35259    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
35260    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
35261    swiper.$wrapperEl.css({
35262      [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`
35263    });
35264
35265    if (centeredSlides) {
35266      snapGrid.splice(0, snapGrid.length);
35267      const newSlidesGrid = [];
35268
35269      for (let i = 0; i < snapGrid.length; i += 1) {
35270        let slidesGridItem = snapGrid[i];
35271        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
35272        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
35273      }
35274
35275      snapGrid.push(...newSlidesGrid);
35276    }
35277  };
35278
35279  swiper.grid = {
35280    initSlides,
35281    updateSlide,
35282    updateWrapperSize
35283  };
35284}
35285
35286/***/ }),
35287
vendor: 3,845 bytes, lines 35288-35400
35288/***/ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js":
35289/*!************************************************************************!*\
35290  !*** ./node_modules/swiper/modules/hash-navigation/hash-navigation.js ***!
35291  \************************************************************************/
35292/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35293
35294"use strict";
35295__webpack_require__.r(__webpack_exports__);
35296/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35297/* harmony export */   "default": function() { return /* binding */ HashNavigation; }
35298/* harmony export */ });
35299/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
35300/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
35301
35302
35303function HashNavigation(_ref) {
35304  let {
35305    swiper,
35306    extendParams,
35307    emit,
35308    on
35309  } = _ref;
35310  let initialized = false;
35311  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
35312  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35313  extendParams({
35314    hashNavigation: {
35315      enabled: false,
35316      replaceState: false,
35317      watchState: false
35318    }
35319  });
35320
35321  const onHashChange = () => {
35322    emit('hashChange');
35323    const newHash = document.location.hash.replace('#', '');
35324    const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');
35325
35326    if (newHash !== activeSlideHash) {
35327      const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash="${newHash}"]`).index();
35328      if (typeof newIndex === 'undefined') return;
35329      swiper.slideTo(newIndex);
35330    }
35331  };
35332
35333  const setHash = () => {
35334    if (!initialized || !swiper.params.hashNavigation.enabled) return;
35335
35336    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
35337      window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');
35338      emit('hashSet');
35339    } else {
35340      const slide = swiper.slides.eq(swiper.activeIndex);
35341      const hash = slide.attr('data-hash') || slide.attr('data-history');
35342      document.location.hash = hash || '';
35343      emit('hashSet');
35344    }
35345  };
35346
35347  const init = () => {
35348    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
35349    initialized = true;
35350    const hash = document.location.hash.replace('#', '');
35351
35352    if (hash) {
35353      const speed = 0;
35354
35355      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
35356        const slide = swiper.slides.eq(i);
35357        const slideHash = slide.attr('data-hash') || slide.attr('data-history');
35358
35359        if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {
35360          const index = slide.index();
35361          swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);
35362        }
35363      }
35364    }
35365
35366    if (swiper.params.hashNavigation.watchState) {
35367      (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).on('hashchange', onHashChange);
35368    }
35369  };
35370
35371  const destroy = () => {
35372    if (swiper.params.hashNavigation.watchState) {
35373      (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).off('hashchange', onHashChange);
35374    }
35375  };
35376
35377  on('init', () => {
35378    if (swiper.params.hashNavigation.enabled) {
35379      init();
35380    }
35381  });
35382  on('destroy', () => {
35383    if (swiper.params.hashNavigation.enabled) {
35384      destroy();
35385    }
35386  });
35387  on('transitionEnd _freeModeNoMomentumRelease', () => {
35388    if (initialized) {
35389      setHash();
35390    }
35391  });
35392  on('slideChange', () => {
35393    if (initialized && swiper.params.cssMode) {
35394      setHash();
35395    }
35396  });
35397}
35398
35399/***/ }),
35400
vendor: 4,860 bytes, lines 35401-35571
35401/***/ "./node_modules/swiper/modules/history/history.js":
35402/*!********************************************************!*\
35403  !*** ./node_modules/swiper/modules/history/history.js ***!
35404  \********************************************************/
35405/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35406
35407"use strict";
35408__webpack_require__.r(__webpack_exports__);
35409/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35410/* harmony export */   "default": function() { return /* binding */ History; }
35411/* harmony export */ });
35412/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
35413
35414function History(_ref) {
35415  let {
35416    swiper,
35417    extendParams,
35418    on
35419  } = _ref;
35420  extendParams({
35421    history: {
35422      enabled: false,
35423      root: '',
35424      replaceState: false,
35425      key: 'slides',
35426      keepQuery: false
35427    }
35428  });
35429  let initialized = false;
35430  let paths = {};
35431
35432  const slugify = text => {
35433    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
35434  };
35435
35436  const getPathValues = urlOverride => {
35437    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35438    let location;
35439
35440    if (urlOverride) {
35441      location = new URL(urlOverride);
35442    } else {
35443      location = window.location;
35444    }
35445
35446    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
35447    const total = pathArray.length;
35448    const key = pathArray[total - 2];
35449    const value = pathArray[total - 1];
35450    return {
35451      key,
35452      value
35453    };
35454  };
35455
35456  const setHistory = (key, index) => {
35457    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35458    if (!initialized || !swiper.params.history.enabled) return;
35459    let location;
35460
35461    if (swiper.params.url) {
35462      location = new URL(swiper.params.url);
35463    } else {
35464      location = window.location;
35465    }
35466
35467    const slide = swiper.slides.eq(index);
35468    let value = slugify(slide.attr('data-history'));
35469
35470    if (swiper.params.history.root.length > 0) {
35471      let root = swiper.params.history.root;
35472      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
35473      value = `${root}/${key}/${value}`;
35474    } else if (!location.pathname.includes(key)) {
35475      value = `${key}/${value}`;
35476    }
35477
35478    if (swiper.params.history.keepQuery) {
35479      value += location.search;
35480    }
35481
35482    const currentState = window.history.state;
35483
35484    if (currentState && currentState.value === value) {
35485      return;
35486    }
35487
35488    if (swiper.params.history.replaceState) {
35489      window.history.replaceState({
35490        value
35491      }, null, value);
35492    } else {
35493      window.history.pushState({
35494        value
35495      }, null, value);
35496    }
35497  };
35498
35499  const scrollToSlide = (speed, value, runCallbacks) => {
35500    if (value) {
35501      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
35502        const slide = swiper.slides.eq(i);
35503        const slideHistory = slugify(slide.attr('data-history'));
35504
35505        if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {
35506          const index = slide.index();
35507          swiper.slideTo(index, speed, runCallbacks);
35508        }
35509      }
35510    } else {
35511      swiper.slideTo(0, speed, runCallbacks);
35512    }
35513  };
35514
35515  const setHistoryPopState = () => {
35516    paths = getPathValues(swiper.params.url);
35517    scrollToSlide(swiper.params.speed, paths.value, false);
35518  };
35519
35520  const init = () => {
35521    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35522    if (!swiper.params.history) return;
35523
35524    if (!window.history || !window.history.pushState) {
35525      swiper.params.history.enabled = false;
35526      swiper.params.hashNavigation.enabled = true;
35527      return;
35528    }
35529
35530    initialized = true;
35531    paths = getPathValues(swiper.params.url);
35532    if (!paths.key && !paths.value) return;
35533    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
35534
35535    if (!swiper.params.history.replaceState) {
35536      window.addEventListener('popstate', setHistoryPopState);
35537    }
35538  };
35539
35540  const destroy = () => {
35541    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35542
35543    if (!swiper.params.history.replaceState) {
35544      window.removeEventListener('popstate', setHistoryPopState);
35545    }
35546  };
35547
35548  on('init', () => {
35549    if (swiper.params.history.enabled) {
35550      init();
35551    }
35552  });
35553  on('destroy', () => {
35554    if (swiper.params.history.enabled) {
35555      destroy();
35556    }
35557  });
35558  on('transitionEnd _freeModeNoMomentumRelease', () => {
35559    if (initialized) {
35560      setHistory(swiper.params.history.key, swiper.activeIndex);
35561    }
35562  });
35563  on('slideChange', () => {
35564    if (initialized && swiper.params.cssMode) {
35565      setHistory(swiper.params.history.key, swiper.activeIndex);
35566    }
35567  });
35568}
35569
35570/***/ }),
35571
vendor: 5,243 bytes, lines 35572-35719
35572/***/ "./node_modules/swiper/modules/keyboard/keyboard.js":
35573/*!**********************************************************!*\
35574  !*** ./node_modules/swiper/modules/keyboard/keyboard.js ***!
35575  \**********************************************************/
35576/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35577
35578"use strict";
35579__webpack_require__.r(__webpack_exports__);
35580/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35581/* harmony export */   "default": function() { return /* binding */ Keyboard; }
35582/* harmony export */ });
35583/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
35584/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
35585/* eslint-disable consistent-return */
35586
35587
35588function Keyboard(_ref) {
35589  let {
35590    swiper,
35591    extendParams,
35592    on,
35593    emit
35594  } = _ref;
35595  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
35596  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35597  swiper.keyboard = {
35598    enabled: false
35599  };
35600  extendParams({
35601    keyboard: {
35602      enabled: false,
35603      onlyInViewport: true,
35604      pageUpDown: true
35605    }
35606  });
35607
35608  function handle(event) {
35609    if (!swiper.enabled) return;
35610    const {
35611      rtlTranslate: rtl
35612    } = swiper;
35613    let e = event;
35614    if (e.originalEvent) e = e.originalEvent; // jquery fix
35615
35616    const kc = e.keyCode || e.charCode;
35617    const pageUpDown = swiper.params.keyboard.pageUpDown;
35618    const isPageUp = pageUpDown && kc === 33;
35619    const isPageDown = pageUpDown && kc === 34;
35620    const isArrowLeft = kc === 37;
35621    const isArrowRight = kc === 39;
35622    const isArrowUp = kc === 38;
35623    const isArrowDown = kc === 40; // Directions locks
35624
35625    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
35626      return false;
35627    }
35628
35629    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
35630      return false;
35631    }
35632
35633    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
35634      return undefined;
35635    }
35636
35637    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
35638      return undefined;
35639    }
35640
35641    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
35642      let inView = false; // Check that swiper should be inside of visible area of window
35643
35644      if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {
35645        return undefined;
35646      }
35647
35648      const $el = swiper.$el;
35649      const swiperWidth = $el[0].clientWidth;
35650      const swiperHeight = $el[0].clientHeight;
35651      const windowWidth = window.innerWidth;
35652      const windowHeight = window.innerHeight;
35653      const swiperOffset = swiper.$el.offset();
35654      if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;
35655      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
35656
35657      for (let i = 0; i < swiperCoord.length; i += 1) {
35658        const point = swiperCoord[i];
35659
35660        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
35661          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
35662
35663          inView = true;
35664        }
35665      }
35666
35667      if (!inView) return undefined;
35668    }
35669
35670    if (swiper.isHorizontal()) {
35671      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
35672        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
35673      }
35674
35675      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
35676      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
35677    } else {
35678      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
35679        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
35680      }
35681
35682      if (isPageDown || isArrowDown) swiper.slideNext();
35683      if (isPageUp || isArrowUp) swiper.slidePrev();
35684    }
35685
35686    emit('keyPress', kc);
35687    return undefined;
35688  }
35689
35690  function enable() {
35691    if (swiper.keyboard.enabled) return;
35692    (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).on('keydown', handle);
35693    swiper.keyboard.enabled = true;
35694  }
35695
35696  function disable() {
35697    if (!swiper.keyboard.enabled) return;
35698    (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).off('keydown', handle);
35699    swiper.keyboard.enabled = false;
35700  }
35701
35702  on('init', () => {
35703    if (swiper.params.keyboard.enabled) {
35704      enable();
35705    }
35706  });
35707  on('destroy', () => {
35708    if (swiper.keyboard.enabled) {
35709      disable();
35710    }
35711  });
35712  Object.assign(swiper.keyboard, {
35713    enable,
35714    disable
35715  });
35716}
35717
35718/***/ }),
35719
vendor: 10,901 bytes, lines 35720-36023
35720/***/ "./node_modules/swiper/modules/lazy/lazy.js":
35721/*!**************************************************!*\
35722  !*** ./node_modules/swiper/modules/lazy/lazy.js ***!
35723  \**************************************************/
35724/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35725
35726"use strict";
35727__webpack_require__.r(__webpack_exports__);
35728/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35729/* harmony export */   "default": function() { return /* binding */ Lazy; }
35730/* harmony export */ });
35731/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
35732/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
35733
35734
35735function Lazy(_ref) {
35736  let {
35737    swiper,
35738    extendParams,
35739    on,
35740    emit
35741  } = _ref;
35742  extendParams({
35743    lazy: {
35744      checkInView: false,
35745      enabled: false,
35746      loadPrevNext: false,
35747      loadPrevNextAmount: 1,
35748      loadOnTransitionStart: false,
35749      scrollingElement: '',
35750      elementClass: 'swiper-lazy',
35751      loadingClass: 'swiper-lazy-loading',
35752      loadedClass: 'swiper-lazy-loaded',
35753      preloaderClass: 'swiper-lazy-preloader'
35754    }
35755  });
35756  swiper.lazy = {};
35757  let scrollHandlerAttached = false;
35758  let initialImageLoaded = false;
35759
35760  function loadInSlide(index, loadInDuplicate) {
35761    if (loadInDuplicate === void 0) {
35762      loadInDuplicate = true;
35763    }
35764
35765    const params = swiper.params.lazy;
35766    if (typeof index === 'undefined') return;
35767    if (swiper.slides.length === 0) return;
35768    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
35769    const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index}"]`) : swiper.slides.eq(index);
35770    const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);
35771
35772    if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {
35773      $images.push($slideEl[0]);
35774    }
35775
35776    if ($images.length === 0) return;
35777    $images.each(imageEl => {
35778      const $imageEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl);
35779      $imageEl.addClass(params.loadingClass);
35780      const background = $imageEl.attr('data-background');
35781      const src = $imageEl.attr('data-src');
35782      const srcset = $imageEl.attr('data-srcset');
35783      const sizes = $imageEl.attr('data-sizes');
35784      const $pictureEl = $imageEl.parent('picture');
35785      swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {
35786        if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;
35787
35788        if (background) {
35789          $imageEl.css('background-image', `url("${background}")`);
35790          $imageEl.removeAttr('data-background');
35791        } else {
35792          if (srcset) {
35793            $imageEl.attr('srcset', srcset);
35794            $imageEl.removeAttr('data-srcset');
35795          }
35796
35797          if (sizes) {
35798            $imageEl.attr('sizes', sizes);
35799            $imageEl.removeAttr('data-sizes');
35800          }
35801
35802          if ($pictureEl.length) {
35803            $pictureEl.children('source').each(sourceEl => {
35804              const $source = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(sourceEl);
35805
35806              if ($source.attr('data-srcset')) {
35807                $source.attr('srcset', $source.attr('data-srcset'));
35808                $source.removeAttr('data-srcset');
35809              }
35810            });
35811          }
35812
35813          if (src) {
35814            $imageEl.attr('src', src);
35815            $imageEl.removeAttr('data-src');
35816          }
35817        }
35818
35819        $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);
35820        $slideEl.find(`.${params.preloaderClass}`).remove();
35821
35822        if (swiper.params.loop && loadInDuplicate) {
35823          const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');
35824
35825          if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {
35826            const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`);
35827            loadInSlide(originalSlide.index(), false);
35828          } else {
35829            const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`);
35830            loadInSlide(duplicatedSlide.index(), false);
35831          }
35832        }
35833
35834        emit('lazyImageReady', $slideEl[0], $imageEl[0]);
35835
35836        if (swiper.params.autoHeight) {
35837          swiper.updateAutoHeight();
35838        }
35839      });
35840      emit('lazyImageLoad', $slideEl[0], $imageEl[0]);
35841    });
35842  }
35843
35844  function load() {
35845    const {
35846      $wrapperEl,
35847      params: swiperParams,
35848      slides,
35849      activeIndex
35850    } = swiper;
35851    const isVirtual = swiper.virtual && swiperParams.virtual.enabled;
35852    const params = swiperParams.lazy;
35853    let slidesPerView = swiperParams.slidesPerView;
35854
35855    if (slidesPerView === 'auto') {
35856      slidesPerView = 0;
35857    }
35858
35859    function slideExist(index) {
35860      if (isVirtual) {
35861        if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index}"]`).length) {
35862          return true;
35863        }
35864      } else if (slides[index]) return true;
35865
35866      return false;
35867    }
35868
35869    function slideIndex(slideEl) {
35870      if (isVirtual) {
35871        return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index');
35872      }
35873
35874      return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index();
35875    }
35876
35877    if (!initialImageLoaded) initialImageLoaded = true;
35878
35879    if (swiper.params.watchSlidesProgress) {
35880      $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {
35881        const index = isVirtual ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index') : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index();
35882        loadInSlide(index);
35883      });
35884    } else if (slidesPerView > 1) {
35885      for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {
35886        if (slideExist(i)) loadInSlide(i);
35887      }
35888    } else {
35889      loadInSlide(activeIndex);
35890    }
35891
35892    if (params.loadPrevNext) {
35893      if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {
35894        const amount = params.loadPrevNextAmount;
35895        const spv = slidesPerView;
35896        const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);
35897        const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides
35898
35899        for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {
35900          if (slideExist(i)) loadInSlide(i);
35901        } // Prev Slides
35902
35903
35904        for (let i = minIndex; i < activeIndex; i += 1) {
35905          if (slideExist(i)) loadInSlide(i);
35906        }
35907      } else {
35908        const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);
35909        if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));
35910        const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);
35911        if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));
35912      }
35913    }
35914  }
35915
35916  function checkInViewOnLoad() {
35917    const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
35918    if (!swiper || swiper.destroyed) return;
35919    const $scrollElement = swiper.params.lazy.scrollingElement ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.lazy.scrollingElement) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window);
35920    const isWindow = $scrollElement[0] === window;
35921    const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;
35922    const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;
35923    const swiperOffset = swiper.$el.offset();
35924    const {
35925      rtlTranslate: rtl
35926    } = swiper;
35927    let inView = false;
35928    if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;
35929    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]];
35930
35931    for (let i = 0; i < swiperCoord.length; i += 1) {
35932      const point = swiperCoord[i];
35933
35934      if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {
35935        if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
35936
35937        inView = true;
35938      }
35939    }
35940
35941    const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {
35942      passive: true,
35943      capture: false
35944    } : false;
35945
35946    if (inView) {
35947      load();
35948      $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);
35949    } else if (!scrollHandlerAttached) {
35950      scrollHandlerAttached = true;
35951      $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);
35952    }
35953  }
35954
35955  on('beforeInit', () => {
35956    if (swiper.params.lazy.enabled && swiper.params.preloadImages) {
35957      swiper.params.preloadImages = false;
35958    }
35959  });
35960  on('init', () => {
35961    if (swiper.params.lazy.enabled) {
35962      if (swiper.params.lazy.checkInView) {
35963        checkInViewOnLoad();
35964      } else {
35965        load();
35966      }
35967    }
35968  });
35969  on('scroll', () => {
35970    if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {
35971      load();
35972    }
35973  });
35974  on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {
35975    if (swiper.params.lazy.enabled) {
35976      if (swiper.params.lazy.checkInView) {
35977        checkInViewOnLoad();
35978      } else {
35979        load();
35980      }
35981    }
35982  });
35983  on('transitionStart', () => {
35984    if (swiper.params.lazy.enabled) {
35985      if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {
35986        if (swiper.params.lazy.checkInView) {
35987          checkInViewOnLoad();
35988        } else {
35989          load();
35990        }
35991      }
35992    }
35993  });
35994  on('transitionEnd', () => {
35995    if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {
35996      if (swiper.params.lazy.checkInView) {
35997        checkInViewOnLoad();
35998      } else {
35999        load();
36000      }
36001    }
36002  });
36003  on('slideChange', () => {
36004    const {
36005      lazy,
36006      cssMode,
36007      watchSlidesProgress,
36008      touchReleaseOnEdges,
36009      resistanceRatio
36010    } = swiper.params;
36011
36012    if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {
36013      load();
36014    }
36015  });
36016  Object.assign(swiper.lazy, {
36017    load,
36018    loadInSlide
36019  });
36020}
36021
36022/***/ }),
36023
vendor: 2,220 bytes, lines 36024-36059
36024/***/ "./node_modules/swiper/modules/manipulation/manipulation.js":
36025/*!******************************************************************!*\
36026  !*** ./node_modules/swiper/modules/manipulation/manipulation.js ***!
36027  \******************************************************************/
36028/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36029
36030"use strict";
36031__webpack_require__.r(__webpack_exports__);
36032/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36033/* harmony export */   "default": function() { return /* binding */ Manipulation; }
36034/* harmony export */ });
36035/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js");
36036/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js");
36037/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ "./node_modules/swiper/modules/manipulation/methods/addSlide.js");
36038/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js");
36039/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js");
36040
36041
36042
36043
36044
36045function Manipulation(_ref) {
36046  let {
36047    swiper
36048  } = _ref;
36049  Object.assign(swiper, {
36050    appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__["default"].bind(swiper),
36051    prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper),
36052    addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper),
36053    removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper),
36054    removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__["default"].bind(swiper)
36055  });
36056}
36057
36058/***/ }),
36059
vendor: 2,122 bytes, lines 36060-36137
36060/***/ "./node_modules/swiper/modules/manipulation/methods/addSlide.js":
36061/*!**********************************************************************!*\
36062  !*** ./node_modules/swiper/modules/manipulation/methods/addSlide.js ***!
36063  \**********************************************************************/
36064/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36065
36066"use strict";
36067__webpack_require__.r(__webpack_exports__);
36068/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36069/* harmony export */   "default": function() { return /* binding */ addSlide; }
36070/* harmony export */ });
36071function addSlide(index, slides) {
36072  const swiper = this;
36073  const {
36074    $wrapperEl,
36075    params,
36076    activeIndex
36077  } = swiper;
36078  let activeIndexBuffer = activeIndex;
36079
36080  if (params.loop) {
36081    activeIndexBuffer -= swiper.loopedSlides;
36082    swiper.loopDestroy();
36083    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);
36084  }
36085
36086  const baseLength = swiper.slides.length;
36087
36088  if (index <= 0) {
36089    swiper.prependSlide(slides);
36090    return;
36091  }
36092
36093  if (index >= baseLength) {
36094    swiper.appendSlide(slides);
36095    return;
36096  }
36097
36098  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
36099  const slidesBuffer = [];
36100
36101  for (let i = baseLength - 1; i >= index; i -= 1) {
36102    const currentSlide = swiper.slides.eq(i);
36103    currentSlide.remove();
36104    slidesBuffer.unshift(currentSlide);
36105  }
36106
36107  if (typeof slides === 'object' && 'length' in slides) {
36108    for (let i = 0; i < slides.length; i += 1) {
36109      if (slides[i]) $wrapperEl.append(slides[i]);
36110    }
36111
36112    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
36113  } else {
36114    $wrapperEl.append(slides);
36115  }
36116
36117  for (let i = 0; i < slidesBuffer.length; i += 1) {
36118    $wrapperEl.append(slidesBuffer[i]);
36119  }
36120
36121  if (params.loop) {
36122    swiper.loopCreate();
36123  }
36124
36125  if (!params.observer) {
36126    swiper.update();
36127  }
36128
36129  if (params.loop) {
36130    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
36131  } else {
36132    swiper.slideTo(newActiveIndex, 0, false);
36133  }
36134}
36135
36136/***/ }),
36137
vendor: 1,126 bytes, lines 36138-36178
36138/***/ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js":
36139/*!*************************************************************************!*\
36140  !*** ./node_modules/swiper/modules/manipulation/methods/appendSlide.js ***!
36141  \*************************************************************************/
36142/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36143
36144"use strict";
36145__webpack_require__.r(__webpack_exports__);
36146/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36147/* harmony export */   "default": function() { return /* binding */ appendSlide; }
36148/* harmony export */ });
36149function appendSlide(slides) {
36150  const swiper = this;
36151  const {
36152    $wrapperEl,
36153    params
36154  } = swiper;
36155
36156  if (params.loop) {
36157    swiper.loopDestroy();
36158  }
36159
36160  if (typeof slides === 'object' && 'length' in slides) {
36161    for (let i = 0; i < slides.length; i += 1) {
36162      if (slides[i]) $wrapperEl.append(slides[i]);
36163    }
36164  } else {
36165    $wrapperEl.append(slides);
36166  }
36167
36168  if (params.loop) {
36169    swiper.loopCreate();
36170  }
36171
36172  if (!params.observer) {
36173    swiper.update();
36174  }
36175}
36176
36177/***/ }),
36178
vendor: 1,288 bytes, lines 36179-36226
36179/***/ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js":
36180/*!**************************************************************************!*\
36181  !*** ./node_modules/swiper/modules/manipulation/methods/prependSlide.js ***!
36182  \**************************************************************************/
36183/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36184
36185"use strict";
36186__webpack_require__.r(__webpack_exports__);
36187/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36188/* harmony export */   "default": function() { return /* binding */ prependSlide; }
36189/* harmony export */ });
36190function prependSlide(slides) {
36191  const swiper = this;
36192  const {
36193    params,
36194    $wrapperEl,
36195    activeIndex
36196  } = swiper;
36197
36198  if (params.loop) {
36199    swiper.loopDestroy();
36200  }
36201
36202  let newActiveIndex = activeIndex + 1;
36203
36204  if (typeof slides === 'object' && 'length' in slides) {
36205    for (let i = 0; i < slides.length; i += 1) {
36206      if (slides[i]) $wrapperEl.prepend(slides[i]);
36207    }
36208
36209    newActiveIndex = activeIndex + slides.length;
36210  } else {
36211    $wrapperEl.prepend(slides);
36212  }
36213
36214  if (params.loop) {
36215    swiper.loopCreate();
36216  }
36217
36218  if (!params.observer) {
36219    swiper.update();
36220  }
36221
36222  swiper.slideTo(newActiveIndex, 0, false);
36223}
36224
36225/***/ }),
36226
vendor: 879 bytes, lines 36227-36250
36227/***/ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js":
36228/*!*****************************************************************************!*\
36229  !*** ./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***!
36230  \*****************************************************************************/
36231/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36232
36233"use strict";
36234__webpack_require__.r(__webpack_exports__);
36235/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36236/* harmony export */   "default": function() { return /* binding */ removeAllSlides; }
36237/* harmony export */ });
36238function removeAllSlides() {
36239  const swiper = this;
36240  const slidesIndexes = [];
36241
36242  for (let i = 0; i < swiper.slides.length; i += 1) {
36243    slidesIndexes.push(i);
36244  }
36245
36246  swiper.removeSlide(slidesIndexes);
36247}
36248
36249/***/ }),
36250
vendor: 1,917 bytes, lines 36251-36311
36251/***/ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js":
36252/*!*************************************************************************!*\
36253  !*** ./node_modules/swiper/modules/manipulation/methods/removeSlide.js ***!
36254  \*************************************************************************/
36255/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36256
36257"use strict";
36258__webpack_require__.r(__webpack_exports__);
36259/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36260/* harmony export */   "default": function() { return /* binding */ removeSlide; }
36261/* harmony export */ });
36262function removeSlide(slidesIndexes) {
36263  const swiper = this;
36264  const {
36265    params,
36266    $wrapperEl,
36267    activeIndex
36268  } = swiper;
36269  let activeIndexBuffer = activeIndex;
36270
36271  if (params.loop) {
36272    activeIndexBuffer -= swiper.loopedSlides;
36273    swiper.loopDestroy();
36274    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);
36275  }
36276
36277  let newActiveIndex = activeIndexBuffer;
36278  let indexToRemove;
36279
36280  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
36281    for (let i = 0; i < slidesIndexes.length; i += 1) {
36282      indexToRemove = slidesIndexes[i];
36283      if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
36284      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
36285    }
36286
36287    newActiveIndex = Math.max(newActiveIndex, 0);
36288  } else {
36289    indexToRemove = slidesIndexes;
36290    if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
36291    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
36292    newActiveIndex = Math.max(newActiveIndex, 0);
36293  }
36294
36295  if (params.loop) {
36296    swiper.loopCreate();
36297  }
36298
36299  if (!params.observer) {
36300    swiper.update();
36301  }
36302
36303  if (params.loop) {
36304    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
36305  } else {
36306    swiper.slideTo(newActiveIndex, 0, false);
36307  }
36308}
36309
36310/***/ }),
36311
vendor: 15,631 bytes, lines 36312-36751
36312/***/ "./node_modules/swiper/modules/mousewheel/mousewheel.js":
36313/*!**************************************************************!*\
36314  !*** ./node_modules/swiper/modules/mousewheel/mousewheel.js ***!
36315  \**************************************************************/
36316/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36317
36318"use strict";
36319__webpack_require__.r(__webpack_exports__);
36320/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36321/* harmony export */   "default": function() { return /* binding */ Mousewheel; }
36322/* harmony export */ });
36323/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
36324/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
36325/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
36326/* eslint-disable consistent-return */
36327
36328
36329
36330function Mousewheel(_ref) {
36331  let {
36332    swiper,
36333    extendParams,
36334    on,
36335    emit
36336  } = _ref;
36337  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
36338  extendParams({
36339    mousewheel: {
36340      enabled: false,
36341      releaseOnEdges: false,
36342      invert: false,
36343      forceToAxis: false,
36344      sensitivity: 1,
36345      eventsTarget: 'container',
36346      thresholdDelta: null,
36347      thresholdTime: null
36348    }
36349  });
36350  swiper.mousewheel = {
36351    enabled: false
36352  };
36353  let timeout;
36354  let lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)();
36355  let lastEventBeforeSnap;
36356  const recentWheelEvents = [];
36357
36358  function normalize(e) {
36359    // Reasonable defaults
36360    const PIXEL_STEP = 10;
36361    const LINE_HEIGHT = 40;
36362    const PAGE_HEIGHT = 800;
36363    let sX = 0;
36364    let sY = 0; // spinX, spinY
36365
36366    let pX = 0;
36367    let pY = 0; // pixelX, pixelY
36368    // Legacy
36369
36370    if ('detail' in e) {
36371      sY = e.detail;
36372    }
36373
36374    if ('wheelDelta' in e) {
36375      sY = -e.wheelDelta / 120;
36376    }
36377
36378    if ('wheelDeltaY' in e) {
36379      sY = -e.wheelDeltaY / 120;
36380    }
36381
36382    if ('wheelDeltaX' in e) {
36383      sX = -e.wheelDeltaX / 120;
36384    } // side scrolling on FF with DOMMouseScroll
36385
36386
36387    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
36388      sX = sY;
36389      sY = 0;
36390    }
36391
36392    pX = sX * PIXEL_STEP;
36393    pY = sY * PIXEL_STEP;
36394
36395    if ('deltaY' in e) {
36396      pY = e.deltaY;
36397    }
36398
36399    if ('deltaX' in e) {
36400      pX = e.deltaX;
36401    }
36402
36403    if (e.shiftKey && !pX) {
36404      // if user scrolls with shift he wants horizontal scroll
36405      pX = pY;
36406      pY = 0;
36407    }
36408
36409    if ((pX || pY) && e.deltaMode) {
36410      if (e.deltaMode === 1) {
36411        // delta in LINE units
36412        pX *= LINE_HEIGHT;
36413        pY *= LINE_HEIGHT;
36414      } else {
36415        // delta in PAGE units
36416        pX *= PAGE_HEIGHT;
36417        pY *= PAGE_HEIGHT;
36418      }
36419    } // Fall-back if spin cannot be determined
36420
36421
36422    if (pX && !sX) {
36423      sX = pX < 1 ? -1 : 1;
36424    }
36425
36426    if (pY && !sY) {
36427      sY = pY < 1 ? -1 : 1;
36428    }
36429
36430    return {
36431      spinX: sX,
36432      spinY: sY,
36433      pixelX: pX,
36434      pixelY: pY
36435    };
36436  }
36437
36438  function handleMouseEnter() {
36439    if (!swiper.enabled) return;
36440    swiper.mouseEntered = true;
36441  }
36442
36443  function handleMouseLeave() {
36444    if (!swiper.enabled) return;
36445    swiper.mouseEntered = false;
36446  }
36447
36448  function animateSlider(newEvent) {
36449    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
36450      // Prevent if delta of wheel scroll delta is below configured threshold
36451      return false;
36452    }
36453
36454    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
36455      // Prevent if time between scrolls is below configured threshold
36456      return false;
36457    } // If the movement is NOT big enough and
36458    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
36459    //   Don't go any further (avoid insignificant scroll movement).
36460
36461
36462    if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < 60) {
36463      // Return false as a default
36464      return true;
36465    } // If user is scrolling towards the end:
36466    //   If the slider hasn't hit the latest slide or
36467    //   if the slider is a loop and
36468    //   if the slider isn't moving right now:
36469    //     Go to next slide and
36470    //     emit a scroll event.
36471    // Else (the user is scrolling towards the beginning) and
36472    // if the slider hasn't hit the first slide or
36473    // if the slider is a loop and
36474    // if the slider isn't moving right now:
36475    //   Go to prev slide and
36476    //   emit a scroll event.
36477
36478
36479    if (newEvent.direction < 0) {
36480      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
36481        swiper.slideNext();
36482        emit('scroll', newEvent.raw);
36483      }
36484    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
36485      swiper.slidePrev();
36486      emit('scroll', newEvent.raw);
36487    } // If you got here is because an animation has been triggered so store the current time
36488
36489
36490    lastScrollTime = new window.Date().getTime(); // Return false as a default
36491
36492    return false;
36493  }
36494
36495  function releaseScroll(newEvent) {
36496    const params = swiper.params.mousewheel;
36497
36498    if (newEvent.direction < 0) {
36499      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
36500        // Return true to animate scroll on edges
36501        return true;
36502      }
36503    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
36504      // Return true to animate scroll on edges
36505      return true;
36506    }
36507
36508    return false;
36509  }
36510
36511  function handle(event) {
36512    let e = event;
36513    let disableParentSwiper = true;
36514    if (!swiper.enabled) return;
36515    const params = swiper.params.mousewheel;
36516
36517    if (swiper.params.cssMode) {
36518      e.preventDefault();
36519    }
36520
36521    let target = swiper.$el;
36522
36523    if (swiper.params.mousewheel.eventsTarget !== 'container') {
36524      target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget);
36525    }
36526
36527    if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;
36528    if (e.originalEvent) e = e.originalEvent; // jquery fix
36529
36530    let delta = 0;
36531    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
36532    const data = normalize(e);
36533
36534    if (params.forceToAxis) {
36535      if (swiper.isHorizontal()) {
36536        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
36537      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
36538    } else {
36539      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
36540    }
36541
36542    if (delta === 0) return true;
36543    if (params.invert) delta = -delta; // Get the scroll positions
36544
36545    let positions = swiper.getTranslate() + delta * params.sensitivity;
36546    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
36547    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:
36548    //     the disableParentSwiper will be true.
36549    // When loop is false:
36550    //     if the scroll positions is not on edge,
36551    //     then the disableParentSwiper will be true.
36552    //     if the scroll on edge positions,
36553    //     then the disableParentSwiper will be false.
36554
36555    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
36556    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
36557
36558    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
36559      // Register the new event in a variable which stores the relevant data
36560      const newEvent = {
36561        time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),
36562        delta: Math.abs(delta),
36563        direction: Math.sign(delta),
36564        raw: event
36565      }; // Keep the most recent events
36566
36567      if (recentWheelEvents.length >= 2) {
36568        recentWheelEvents.shift(); // only store the last N events
36569      }
36570
36571      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
36572      recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:
36573      //   If direction has changed or
36574      //   if the scroll is quicker than the previous one:
36575      //     Animate the slider.
36576      // Else (this is the first time the wheel is moved):
36577      //     Animate the slider.
36578
36579      if (prevEvent) {
36580        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
36581          animateSlider(newEvent);
36582        }
36583      } else {
36584        animateSlider(newEvent);
36585      } // If it's time to release the scroll:
36586      //   Return now so you don't hit the preventDefault.
36587
36588
36589      if (releaseScroll(newEvent)) {
36590        return true;
36591      }
36592    } else {
36593      // Freemode or scrollContainer:
36594      // If we recently snapped after a momentum scroll, then ignore wheel events
36595      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
36596      // or if it's a new scroll (larger delta or inverse sign as last event before
36597      // an end-of-momentum snap).
36598      const newEvent = {
36599        time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(),
36600        delta: Math.abs(delta),
36601        direction: Math.sign(delta)
36602      };
36603      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
36604
36605      if (!ignoreWheelEvents) {
36606        lastEventBeforeSnap = undefined;
36607
36608        if (swiper.params.loop) {
36609          swiper.loopFix();
36610        }
36611
36612        let position = swiper.getTranslate() + delta * params.sensitivity;
36613        const wasBeginning = swiper.isBeginning;
36614        const wasEnd = swiper.isEnd;
36615        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
36616        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
36617        swiper.setTransition(0);
36618        swiper.setTranslate(position);
36619        swiper.updateProgress();
36620        swiper.updateActiveIndex();
36621        swiper.updateSlidesClasses();
36622
36623        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
36624          swiper.updateSlidesClasses();
36625        }
36626
36627        if (swiper.params.freeMode.sticky) {
36628          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
36629          // the end of a momentum scroll by storing recent (N=15?) wheel events.
36630          // 1. do all N events have decreasing or same (absolute value) delta?
36631          // 2. did all N events arrive in the last M (M=500?) msecs?
36632          // 3. does the earliest event have an (absolute value) delta that's
36633          //    at least P (P=1?) larger than the most recent event's delta?
36634          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
36635          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
36636          // Snap immediately and ignore remaining wheel events in this scroll.
36637          // See comment above for "remaining wheel events in this scroll" determination.
36638          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
36639          clearTimeout(timeout);
36640          timeout = undefined;
36641
36642          if (recentWheelEvents.length >= 15) {
36643            recentWheelEvents.shift(); // only store the last N events
36644          }
36645
36646          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
36647          const firstEvent = recentWheelEvents[0];
36648          recentWheelEvents.push(newEvent);
36649
36650          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
36651            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
36652            recentWheelEvents.splice(0);
36653          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
36654            // We're at the end of the deceleration of a momentum scroll, so there's no need
36655            // to wait for more events. Snap ASAP on the next tick.
36656            // Also, because there's some remaining momentum we'll bias the snap in the
36657            // direction of the ongoing scroll because it's better UX for the scroll to snap
36658            // in the same direction as the scroll instead of reversing to snap.  Therefore,
36659            // if it's already scrolled more than 20% in the current direction, keep going.
36660            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
36661            lastEventBeforeSnap = newEvent;
36662            recentWheelEvents.splice(0);
36663            timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {
36664              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
36665            }, 0); // no delay; move on next tick
36666          }
36667
36668          if (!timeout) {
36669            // if we get here, then we haven't detected the end of a momentum scroll, so
36670            // we'll consider a scroll "complete" when there haven't been any wheel events
36671            // for 500ms.
36672            timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {
36673              const snapToThreshold = 0.5;
36674              lastEventBeforeSnap = newEvent;
36675              recentWheelEvents.splice(0);
36676              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
36677            }, 500);
36678          }
36679        } // Emit event
36680
36681
36682        if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay
36683
36684        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions
36685
36686        if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;
36687      }
36688    }
36689
36690    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
36691    return false;
36692  }
36693
36694  function events(method) {
36695    let target = swiper.$el;
36696
36697    if (swiper.params.mousewheel.eventsTarget !== 'container') {
36698      target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget);
36699    }
36700
36701    target[method]('mouseenter', handleMouseEnter);
36702    target[method]('mouseleave', handleMouseLeave);
36703    target[method]('wheel', handle);
36704  }
36705
36706  function enable() {
36707    if (swiper.params.cssMode) {
36708      swiper.wrapperEl.removeEventListener('wheel', handle);
36709      return true;
36710    }
36711
36712    if (swiper.mousewheel.enabled) return false;
36713    events('on');
36714    swiper.mousewheel.enabled = true;
36715    return true;
36716  }
36717
36718  function disable() {
36719    if (swiper.params.cssMode) {
36720      swiper.wrapperEl.addEventListener(event, handle);
36721      return true;
36722    }
36723
36724    if (!swiper.mousewheel.enabled) return false;
36725    events('off');
36726    swiper.mousewheel.enabled = false;
36727    return true;
36728  }
36729
36730  on('init', () => {
36731    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
36732      disable();
36733    }
36734
36735    if (swiper.params.mousewheel.enabled) enable();
36736  });
36737  on('destroy', () => {
36738    if (swiper.params.cssMode) {
36739      enable();
36740    }
36741
36742    if (swiper.mousewheel.enabled) disable();
36743  });
36744  Object.assign(swiper.mousewheel, {
36745    enable,
36746    disable
36747  });
36748}
36749
36750/***/ }),
36751
vendor: 5,820 bytes, lines 36752-36953
36752/***/ "./node_modules/swiper/modules/navigation/navigation.js":
36753/*!**************************************************************!*\
36754  !*** ./node_modules/swiper/modules/navigation/navigation.js ***!
36755  \**************************************************************/
36756/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36757
36758"use strict";
36759__webpack_require__.r(__webpack_exports__);
36760/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36761/* harmony export */   "default": function() { return /* binding */ Navigation; }
36762/* harmony export */ });
36763/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js");
36764/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
36765
36766
36767function Navigation(_ref) {
36768  let {
36769    swiper,
36770    extendParams,
36771    on,
36772    emit
36773  } = _ref;
36774  extendParams({
36775    navigation: {
36776      nextEl: null,
36777      prevEl: null,
36778      hideOnClick: false,
36779      disabledClass: 'swiper-button-disabled',
36780      hiddenClass: 'swiper-button-hidden',
36781      lockClass: 'swiper-button-lock'
36782    }
36783  });
36784  swiper.navigation = {
36785    nextEl: null,
36786    $nextEl: null,
36787    prevEl: null,
36788    $prevEl: null
36789  };
36790
36791  function getEl(el) {
36792    let $el;
36793
36794    if (el) {
36795      $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el);
36796
36797      if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {
36798        $el = swiper.$el.find(el);
36799      }
36800    }
36801
36802    return $el;
36803  }
36804
36805  function toggleEl($el, disabled) {
36806    const params = swiper.params.navigation;
36807
36808    if ($el && $el.length > 0) {
36809      $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);
36810      if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;
36811
36812      if (swiper.params.watchOverflow && swiper.enabled) {
36813        $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);
36814      }
36815    }
36816  }
36817
36818  function update() {
36819    // Update Navigation Buttons
36820    if (swiper.params.loop) return;
36821    const {
36822      $nextEl,
36823      $prevEl
36824    } = swiper.navigation;
36825    toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);
36826    toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);
36827  }
36828
36829  function onPrevClick(e) {
36830    e.preventDefault();
36831    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
36832    swiper.slidePrev();
36833  }
36834
36835  function onNextClick(e) {
36836    e.preventDefault();
36837    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
36838    swiper.slideNext();
36839  }
36840
36841  function init() {
36842    const params = swiper.params.navigation;
36843    swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
36844      nextEl: 'swiper-button-next',
36845      prevEl: 'swiper-button-prev'
36846    });
36847    if (!(params.nextEl || params.prevEl)) return;
36848    const $nextEl = getEl(params.nextEl);
36849    const $prevEl = getEl(params.prevEl);
36850
36851    if ($nextEl && $nextEl.length > 0) {
36852      $nextEl.on('click', onNextClick);
36853    }
36854
36855    if ($prevEl && $prevEl.length > 0) {
36856      $prevEl.on('click', onPrevClick);
36857    }
36858
36859    Object.assign(swiper.navigation, {
36860      $nextEl,
36861      nextEl: $nextEl && $nextEl[0],
36862      $prevEl,
36863      prevEl: $prevEl && $prevEl[0]
36864    });
36865
36866    if (!swiper.enabled) {
36867      if ($nextEl) $nextEl.addClass(params.lockClass);
36868      if ($prevEl) $prevEl.addClass(params.lockClass);
36869    }
36870  }
36871
36872  function destroy() {
36873    const {
36874      $nextEl,
36875      $prevEl
36876    } = swiper.navigation;
36877
36878    if ($nextEl && $nextEl.length) {
36879      $nextEl.off('click', onNextClick);
36880      $nextEl.removeClass(swiper.params.navigation.disabledClass);
36881    }
36882
36883    if ($prevEl && $prevEl.length) {
36884      $prevEl.off('click', onPrevClick);
36885      $prevEl.removeClass(swiper.params.navigation.disabledClass);
36886    }
36887  }
36888
36889  on('init', () => {
36890    init();
36891    update();
36892  });
36893  on('toEdge fromEdge lock unlock', () => {
36894    update();
36895  });
36896  on('destroy', () => {
36897    destroy();
36898  });
36899  on('enable disable', () => {
36900    const {
36901      $nextEl,
36902      $prevEl
36903    } = swiper.navigation;
36904
36905    if ($nextEl) {
36906      $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);
36907    }
36908
36909    if ($prevEl) {
36910      $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);
36911    }
36912  });
36913  on('click', (_s, e) => {
36914    const {
36915      $nextEl,
36916      $prevEl
36917    } = swiper.navigation;
36918    const targetEl = e.target;
36919
36920    if (swiper.params.navigation.hideOnClick && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($prevEl) && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($nextEl)) {
36921      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
36922      let isHidden;
36923
36924      if ($nextEl) {
36925        isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);
36926      } else if ($prevEl) {
36927        isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);
36928      }
36929
36930      if (isHidden === true) {
36931        emit('navigationShow');
36932      } else {
36933        emit('navigationHide');
36934      }
36935
36936      if ($nextEl) {
36937        $nextEl.toggleClass(swiper.params.navigation.hiddenClass);
36938      }
36939
36940      if ($prevEl) {
36941        $prevEl.toggleClass(swiper.params.navigation.hiddenClass);
36942      }
36943    }
36944  });
36945  Object.assign(swiper.navigation, {
36946    update,
36947    init,
36948    destroy
36949  });
36950}
36951
36952/***/ }),
36953
vendor: 15,464 bytes, lines 36954-37381
36954/***/ "./node_modules/swiper/modules/pagination/pagination.js":
36955/*!**************************************************************!*\
36956  !*** ./node_modules/swiper/modules/pagination/pagination.js ***!
36957  \**************************************************************/
36958/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36959
36960"use strict";
36961__webpack_require__.r(__webpack_exports__);
36962/* harmony export */ __webpack_require__.d(__webpack_exports__, {
36963/* harmony export */   "default": function() { return /* binding */ Pagination; }
36964/* harmony export */ });
36965/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
36966/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js");
36967/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js");
36968
36969
36970
36971function Pagination(_ref) {
36972  let {
36973    swiper,
36974    extendParams,
36975    on,
36976    emit
36977  } = _ref;
36978  const pfx = 'swiper-pagination';
36979  extendParams({
36980    pagination: {
36981      el: null,
36982      bulletElement: 'span',
36983      clickable: false,
36984      hideOnClick: false,
36985      renderBullet: null,
36986      renderProgressbar: null,
36987      renderFraction: null,
36988      renderCustom: null,
36989      progressbarOpposite: false,
36990      type: 'bullets',
36991      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
36992      dynamicBullets: false,
36993      dynamicMainBullets: 1,
36994      formatFractionCurrent: number => number,
36995      formatFractionTotal: number => number,
36996      bulletClass: `${pfx}-bullet`,
36997      bulletActiveClass: `${pfx}-bullet-active`,
36998      modifierClass: `${pfx}-`,
36999      currentClass: `${pfx}-current`,
37000      totalClass: `${pfx}-total`,
37001      hiddenClass: `${pfx}-hidden`,
37002      progressbarFillClass: `${pfx}-progressbar-fill`,
37003      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
37004      clickableClass: `${pfx}-clickable`,
37005      lockClass: `${pfx}-lock`,
37006      horizontalClass: `${pfx}-horizontal`,
37007      verticalClass: `${pfx}-vertical`
37008    }
37009  });
37010  swiper.pagination = {
37011    el: null,
37012    $el: null,
37013    bullets: []
37014  };
37015  let bulletSize;
37016  let dynamicBulletIndex = 0;
37017
37018  function isPaginationDisabled() {
37019    return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;
37020  }
37021
37022  function setSideBullets($bulletEl, position) {
37023    const {
37024      bulletActiveClass
37025    } = swiper.params.pagination;
37026    $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);
37027  }
37028
37029  function update() {
37030    // Render || Update Pagination bullets/items
37031    const rtl = swiper.rtl;
37032    const params = swiper.params.pagination;
37033    if (isPaginationDisabled()) return;
37034    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
37035    const $el = swiper.pagination.$el; // Current/Total
37036
37037    let current;
37038    const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
37039
37040    if (swiper.params.loop) {
37041      current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);
37042
37043      if (current > slidesLength - 1 - swiper.loopedSlides * 2) {
37044        current -= slidesLength - swiper.loopedSlides * 2;
37045      }
37046
37047      if (current > total - 1) current -= total;
37048      if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;
37049    } else if (typeof swiper.snapIndex !== 'undefined') {
37050      current = swiper.snapIndex;
37051    } else {
37052      current = swiper.activeIndex || 0;
37053    } // Types
37054
37055
37056    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
37057      const bullets = swiper.pagination.bullets;
37058      let firstIndex;
37059      let lastIndex;
37060      let midIndex;
37061
37062      if (params.dynamicBullets) {
37063        bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);
37064        $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);
37065
37066        if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {
37067          dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);
37068
37069          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
37070            dynamicBulletIndex = params.dynamicMainBullets - 1;
37071          } else if (dynamicBulletIndex < 0) {
37072            dynamicBulletIndex = 0;
37073          }
37074        }
37075
37076        firstIndex = Math.max(current - dynamicBulletIndex, 0);
37077        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
37078        midIndex = (lastIndex + firstIndex) / 2;
37079      }
37080
37081      bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));
37082
37083      if ($el.length > 1) {
37084        bullets.each(bullet => {
37085          const $bullet = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(bullet);
37086          const bulletIndex = $bullet.index();
37087
37088          if (bulletIndex === current) {
37089            $bullet.addClass(params.bulletActiveClass);
37090          }
37091
37092          if (params.dynamicBullets) {
37093            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
37094              $bullet.addClass(`${params.bulletActiveClass}-main`);
37095            }
37096
37097            if (bulletIndex === firstIndex) {
37098              setSideBullets($bullet, 'prev');
37099            }
37100
37101            if (bulletIndex === lastIndex) {
37102              setSideBullets($bullet, 'next');
37103            }
37104          }
37105        });
37106      } else {
37107        const $bullet = bullets.eq(current);
37108        const bulletIndex = $bullet.index();
37109        $bullet.addClass(params.bulletActiveClass);
37110
37111        if (params.dynamicBullets) {
37112          const $firstDisplayedBullet = bullets.eq(firstIndex);
37113          const $lastDisplayedBullet = bullets.eq(lastIndex);
37114
37115          for (let i = firstIndex; i <= lastIndex; i += 1) {
37116            bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);
37117          }
37118
37119          if (swiper.params.loop) {
37120            if (bulletIndex >= bullets.length) {
37121              for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {
37122                bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);
37123              }
37124
37125              bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);
37126            } else {
37127              setSideBullets($firstDisplayedBullet, 'prev');
37128              setSideBullets($lastDisplayedBullet, 'next');
37129            }
37130          } else {
37131            setSideBullets($firstDisplayedBullet, 'prev');
37132            setSideBullets($lastDisplayedBullet, 'next');
37133          }
37134        }
37135      }
37136
37137      if (params.dynamicBullets) {
37138        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
37139        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
37140        const offsetProp = rtl ? 'right' : 'left';
37141        bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);
37142      }
37143    }
37144
37145    if (params.type === 'fraction') {
37146      $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.currentClass)).text(params.formatFractionCurrent(current + 1));
37147      $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.totalClass)).text(params.formatFractionTotal(total));
37148    }
37149
37150    if (params.type === 'progressbar') {
37151      let progressbarDirection;
37152
37153      if (params.progressbarOpposite) {
37154        progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
37155      } else {
37156        progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
37157      }
37158
37159      const scale = (current + 1) / total;
37160      let scaleX = 1;
37161      let scaleY = 1;
37162
37163      if (progressbarDirection === 'horizontal') {
37164        scaleX = scale;
37165      } else {
37166        scaleY = scale;
37167      }
37168
37169      $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);
37170    }
37171
37172    if (params.type === 'custom' && params.renderCustom) {
37173      $el.html(params.renderCustom(swiper, current + 1, total));
37174      emit('paginationRender', $el[0]);
37175    } else {
37176      emit('paginationUpdate', $el[0]);
37177    }
37178
37179    if (swiper.params.watchOverflow && swiper.enabled) {
37180      $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);
37181    }
37182  }
37183
37184  function render() {
37185    // Render Container
37186    const params = swiper.params.pagination;
37187    if (isPaginationDisabled()) return;
37188    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
37189    const $el = swiper.pagination.$el;
37190    let paginationHTML = '';
37191
37192    if (params.type === 'bullets') {
37193      let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
37194
37195      if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {
37196        numberOfBullets = slidesLength;
37197      }
37198
37199      for (let i = 0; i < numberOfBullets; i += 1) {
37200        if (params.renderBullet) {
37201          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
37202        } else {
37203          paginationHTML += `<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`;
37204        }
37205      }
37206
37207      $el.html(paginationHTML);
37208      swiper.pagination.bullets = $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass));
37209    }
37210
37211    if (params.type === 'fraction') {
37212      if (params.renderFraction) {
37213        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
37214      } else {
37215        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
37216      }
37217
37218      $el.html(paginationHTML);
37219    }
37220
37221    if (params.type === 'progressbar') {
37222      if (params.renderProgressbar) {
37223        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
37224      } else {
37225        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
37226      }
37227
37228      $el.html(paginationHTML);
37229    }
37230
37231    if (params.type !== 'custom') {
37232      emit('paginationRender', swiper.pagination.$el[0]);
37233    }
37234  }
37235
37236  function init() {
37237    swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__["default"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
37238      el: 'swiper-pagination'
37239    });
37240    const params = swiper.params.pagination;
37241    if (!params.el) return;
37242    let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.el);
37243    if ($el.length === 0) return;
37244
37245    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {
37246      $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper
37247
37248      if ($el.length > 1) {
37249        $el = $el.filter(el => {
37250          if ((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el).parents('.swiper')[0] !== swiper.el) return false;
37251          return true;
37252        });
37253      }
37254    }
37255
37256    if (params.type === 'bullets' && params.clickable) {
37257      $el.addClass(params.clickableClass);
37258    }
37259
37260    $el.addClass(params.modifierClass + params.type);
37261    $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
37262
37263    if (params.type === 'bullets' && params.dynamicBullets) {
37264      $el.addClass(`${params.modifierClass}${params.type}-dynamic`);
37265      dynamicBulletIndex = 0;
37266
37267      if (params.dynamicMainBullets < 1) {
37268        params.dynamicMainBullets = 1;
37269      }
37270    }
37271
37272    if (params.type === 'progressbar' && params.progressbarOpposite) {
37273      $el.addClass(params.progressbarOppositeClass);
37274    }
37275
37276    if (params.clickable) {
37277      $el.on('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass), function onClick(e) {
37278        e.preventDefault();
37279        let index = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this).index() * swiper.params.slidesPerGroup;
37280        if (swiper.params.loop) index += swiper.loopedSlides;
37281        swiper.slideTo(index);
37282      });
37283    }
37284
37285    Object.assign(swiper.pagination, {
37286      $el,
37287      el: $el[0]
37288    });
37289
37290    if (!swiper.enabled) {
37291      $el.addClass(params.lockClass);
37292    }
37293  }
37294
37295  function destroy() {
37296    const params = swiper.params.pagination;
37297    if (isPaginationDisabled()) return;
37298    const $el = swiper.pagination.$el;
37299    $el.removeClass(params.hiddenClass);
37300    $el.removeClass(params.modifierClass + params.type);
37301    $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
37302    if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);
37303
37304    if (params.clickable) {
37305      $el.off('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass));
37306    }
37307  }
37308
37309  on('init', () => {
37310    init();
37311    render();
37312    update();
37313  });
37314  on('activeIndexChange', () => {
37315    if (swiper.params.loop) {
37316      update();
37317    } else if (typeof swiper.snapIndex === 'undefined') {
37318      update();
37319    }
37320  });
37321  on('snapIndexChange', () => {
37322    if (!swiper.params.loop) {
37323      update();
37324    }
37325  });
37326  on('slidesLengthChange', () => {
37327    if (swiper.params.loop) {
37328      render();
37329      update();
37330    }
37331  });
37332  on('snapGridLengthChange', () => {
37333    if (!swiper.params.loop) {
37334      render();
37335      update();
37336    }
37337  });
37338  on('destroy', () => {
37339    destroy();
37340  });
37341  on('enable disable', () => {
37342    const {
37343      $el
37344    } = swiper.pagination;
37345
37346    if ($el) {
37347      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);
37348    }
37349  });
37350  on('lock unlock', () => {
37351    update();
37352  });
37353  on('click', (_s, e) => {
37354    const targetEl = e.target;
37355    const {
37356      $el
37357    } = swiper.pagination;
37358
37359    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(targetEl).hasClass(swiper.params.pagination.bulletClass)) {
37360      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
37361      const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);
37362
37363      if (isHidden === true) {
37364        emit('paginationShow');
37365      } else {
37366        emit('paginationHide');
37367      }
37368
37369      $el.toggleClass(swiper.params.pagination.hiddenClass);
37370    }
37371  });
37372  Object.assign(swiper.pagination, {
37373    render,
37374    update,
37375    init,
37376    destroy
37377  });
37378}
37379
37380/***/ }),
37381
vendor: 4,423 bytes, lines 37382-37515
37382/***/ "./node_modules/swiper/modules/parallax/parallax.js":
37383/*!**********************************************************!*\
37384  !*** ./node_modules/swiper/modules/parallax/parallax.js ***!
37385  \**********************************************************/
37386/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
37387
37388"use strict";
37389__webpack_require__.r(__webpack_exports__);
37390/* harmony export */ __webpack_require__.d(__webpack_exports__, {
37391/* harmony export */   "default": function() { return /* binding */ Parallax; }
37392/* harmony export */ });
37393/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
37394
37395function Parallax(_ref) {
37396  let {
37397    swiper,
37398    extendParams,
37399    on
37400  } = _ref;
37401  extendParams({
37402    parallax: {
37403      enabled: false
37404    }
37405  });
37406
37407  const setTransform = (el, progress) => {
37408    const {
37409      rtl
37410    } = swiper;
37411    const $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el);
37412    const rtlFactor = rtl ? -1 : 1;
37413    const p = $el.attr('data-swiper-parallax') || '0';
37414    let x = $el.attr('data-swiper-parallax-x');
37415    let y = $el.attr('data-swiper-parallax-y');
37416    const scale = $el.attr('data-swiper-parallax-scale');
37417    const opacity = $el.attr('data-swiper-parallax-opacity');
37418
37419    if (x || y) {
37420      x = x || '0';
37421      y = y || '0';
37422    } else if (swiper.isHorizontal()) {
37423      x = p;
37424      y = '0';
37425    } else {
37426      y = p;
37427      x = '0';
37428    }
37429
37430    if (x.indexOf('%') >= 0) {
37431      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
37432    } else {
37433      x = `${x * progress * rtlFactor}px`;
37434    }
37435
37436    if (y.indexOf('%') >= 0) {
37437      y = `${parseInt(y, 10) * progress}%`;
37438    } else {
37439      y = `${y * progress}px`;
37440    }
37441
37442    if (typeof opacity !== 'undefined' && opacity !== null) {
37443      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
37444      $el[0].style.opacity = currentOpacity;
37445    }
37446
37447    if (typeof scale === 'undefined' || scale === null) {
37448      $el.transform(`translate3d(${x}, ${y}, 0px)`);
37449    } else {
37450      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
37451      $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);
37452    }
37453  };
37454
37455  const setTranslate = () => {
37456    const {
37457      $el,
37458      slides,
37459      progress,
37460      snapGrid
37461    } = swiper;
37462    $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {
37463      setTransform(el, progress);
37464    });
37465    slides.each((slideEl, slideIndex) => {
37466      let slideProgress = slideEl.progress;
37467
37468      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
37469        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
37470      }
37471
37472      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
37473      (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {
37474        setTransform(el, slideProgress);
37475      });
37476    });
37477  };
37478
37479  const setTransition = function (duration) {
37480    if (duration === void 0) {
37481      duration = swiper.params.speed;
37482    }
37483
37484    const {
37485      $el
37486    } = swiper;
37487    $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {
37488      const $parallaxEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(parallaxEl);
37489      let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;
37490      if (duration === 0) parallaxDuration = 0;
37491      $parallaxEl.transition(parallaxDuration);
37492    });
37493  };
37494
37495  on('beforeInit', () => {
37496    if (!swiper.params.parallax.enabled) return;
37497    swiper.params.watchSlidesProgress = true;
37498    swiper.originalParams.watchSlidesProgress = true;
37499  });
37500  on('init', () => {
37501    if (!swiper.params.parallax.enabled) return;
37502    setTranslate();
37503  });
37504  on('setTranslate', () => {
37505    if (!swiper.params.parallax.enabled) return;
37506    setTranslate();
37507  });
37508  on('setTransition', (_swiper, duration) => {
37509    if (!swiper.params.parallax.enabled) return;
37510    setTransition(duration);
37511  });
37512}
37513
37514/***/ }),
37515
vendor: 10,609 bytes, lines 37516-37895
37516/***/ "./node_modules/swiper/modules/scrollbar/scrollbar.js":
37517/*!************************************************************!*\
37518  !*** ./node_modules/swiper/modules/scrollbar/scrollbar.js ***!
37519  \************************************************************/
37520/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
37521
37522"use strict";
37523__webpack_require__.r(__webpack_exports__);
37524/* harmony export */ __webpack_require__.d(__webpack_exports__, {
37525/* harmony export */   "default": function() { return /* binding */ Scrollbar; }
37526/* harmony export */ });
37527/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
37528/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
37529/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
37530/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js");
37531
37532
37533
37534
37535function Scrollbar(_ref) {
37536  let {
37537    swiper,
37538    extendParams,
37539    on,
37540    emit
37541  } = _ref;
37542  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
37543  let isTouched = false;
37544  let timeout = null;
37545  let dragTimeout = null;
37546  let dragStartPos;
37547  let dragSize;
37548  let trackSize;
37549  let divider;
37550  extendParams({
37551    scrollbar: {
37552      el: null,
37553      dragSize: 'auto',
37554      hide: false,
37555      draggable: false,
37556      snapOnRelease: true,
37557      lockClass: 'swiper-scrollbar-lock',
37558      dragClass: 'swiper-scrollbar-drag'
37559    }
37560  });
37561  swiper.scrollbar = {
37562    el: null,
37563    dragEl: null,
37564    $el: null,
37565    $dragEl: null
37566  };
37567
37568  function setTranslate() {
37569    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
37570    const {
37571      scrollbar,
37572      rtlTranslate: rtl,
37573      progress
37574    } = swiper;
37575    const {
37576      $dragEl,
37577      $el
37578    } = scrollbar;
37579    const params = swiper.params.scrollbar;
37580    let newSize = dragSize;
37581    let newPos = (trackSize - dragSize) * progress;
37582
37583    if (rtl) {
37584      newPos = -newPos;
37585
37586      if (newPos > 0) {
37587        newSize = dragSize - newPos;
37588        newPos = 0;
37589      } else if (-newPos + dragSize > trackSize) {
37590        newSize = trackSize + newPos;
37591      }
37592    } else if (newPos < 0) {
37593      newSize = dragSize + newPos;
37594      newPos = 0;
37595    } else if (newPos + dragSize > trackSize) {
37596      newSize = trackSize - newPos;
37597    }
37598
37599    if (swiper.isHorizontal()) {
37600      $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);
37601      $dragEl[0].style.width = `${newSize}px`;
37602    } else {
37603      $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);
37604      $dragEl[0].style.height = `${newSize}px`;
37605    }
37606
37607    if (params.hide) {
37608      clearTimeout(timeout);
37609      $el[0].style.opacity = 1;
37610      timeout = setTimeout(() => {
37611        $el[0].style.opacity = 0;
37612        $el.transition(400);
37613      }, 1000);
37614    }
37615  }
37616
37617  function setTransition(duration) {
37618    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
37619    swiper.scrollbar.$dragEl.transition(duration);
37620  }
37621
37622  function updateSize() {
37623    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
37624    const {
37625      scrollbar
37626    } = swiper;
37627    const {
37628      $dragEl,
37629      $el
37630    } = scrollbar;
37631    $dragEl[0].style.width = '';
37632    $dragEl[0].style.height = '';
37633    trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;
37634    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
37635
37636    if (swiper.params.scrollbar.dragSize === 'auto') {
37637      dragSize = trackSize * divider;
37638    } else {
37639      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
37640    }
37641
37642    if (swiper.isHorizontal()) {
37643      $dragEl[0].style.width = `${dragSize}px`;
37644    } else {
37645      $dragEl[0].style.height = `${dragSize}px`;
37646    }
37647
37648    if (divider >= 1) {
37649      $el[0].style.display = 'none';
37650    } else {
37651      $el[0].style.display = '';
37652    }
37653
37654    if (swiper.params.scrollbar.hide) {
37655      $el[0].style.opacity = 0;
37656    }
37657
37658    if (swiper.params.watchOverflow && swiper.enabled) {
37659      scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);
37660    }
37661  }
37662
37663  function getPointerPosition(e) {
37664    if (swiper.isHorizontal()) {
37665      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;
37666    }
37667
37668    return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;
37669  }
37670
37671  function setDragPosition(e) {
37672    const {
37673      scrollbar,
37674      rtlTranslate: rtl
37675    } = swiper;
37676    const {
37677      $el
37678    } = scrollbar;
37679    let positionRatio;
37680    positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
37681    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
37682
37683    if (rtl) {
37684      positionRatio = 1 - positionRatio;
37685    }
37686
37687    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
37688    swiper.updateProgress(position);
37689    swiper.setTranslate(position);
37690    swiper.updateActiveIndex();
37691    swiper.updateSlidesClasses();
37692  }
37693
37694  function onDragStart(e) {
37695    const params = swiper.params.scrollbar;
37696    const {
37697      scrollbar,
37698      $wrapperEl
37699    } = swiper;
37700    const {
37701      $el,
37702      $dragEl
37703    } = scrollbar;
37704    isTouched = true;
37705    dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
37706    e.preventDefault();
37707    e.stopPropagation();
37708    $wrapperEl.transition(100);
37709    $dragEl.transition(100);
37710    setDragPosition(e);
37711    clearTimeout(dragTimeout);
37712    $el.transition(0);
37713
37714    if (params.hide) {
37715      $el.css('opacity', 1);
37716    }
37717
37718    if (swiper.params.cssMode) {
37719      swiper.$wrapperEl.css('scroll-snap-type', 'none');
37720    }
37721
37722    emit('scrollbarDragStart', e);
37723  }
37724
37725  function onDragMove(e) {
37726    const {
37727      scrollbar,
37728      $wrapperEl
37729    } = swiper;
37730    const {
37731      $el,
37732      $dragEl
37733    } = scrollbar;
37734    if (!isTouched) return;
37735    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
37736    setDragPosition(e);
37737    $wrapperEl.transition(0);
37738    $el.transition(0);
37739    $dragEl.transition(0);
37740    emit('scrollbarDragMove', e);
37741  }
37742
37743  function onDragEnd(e) {
37744    const params = swiper.params.scrollbar;
37745    const {
37746      scrollbar,
37747      $wrapperEl
37748    } = swiper;
37749    const {
37750      $el
37751    } = scrollbar;
37752    if (!isTouched) return;
37753    isTouched = false;
37754
37755    if (swiper.params.cssMode) {
37756      swiper.$wrapperEl.css('scroll-snap-type', '');
37757      $wrapperEl.transition('');
37758    }
37759
37760    if (params.hide) {
37761      clearTimeout(dragTimeout);
37762      dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {
37763        $el.css('opacity', 0);
37764        $el.transition(400);
37765      }, 1000);
37766    }
37767
37768    emit('scrollbarDragEnd', e);
37769
37770    if (params.snapOnRelease) {
37771      swiper.slideToClosest();
37772    }
37773  }
37774
37775  function events(method) {
37776    const {
37777      scrollbar,
37778      touchEventsTouch,
37779      touchEventsDesktop,
37780      params,
37781      support
37782    } = swiper;
37783    const $el = scrollbar.$el;
37784    const target = $el[0];
37785    const activeListener = support.passiveListener && params.passiveListeners ? {
37786      passive: false,
37787      capture: false
37788    } : false;
37789    const passiveListener = support.passiveListener && params.passiveListeners ? {
37790      passive: true,
37791      capture: false
37792    } : false;
37793    if (!target) return;
37794    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
37795
37796    if (!support.touch) {
37797      target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);
37798      document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);
37799      document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);
37800    } else {
37801      target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);
37802      target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);
37803      target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);
37804    }
37805  }
37806
37807  function enableDraggable() {
37808    if (!swiper.params.scrollbar.el) return;
37809    events('on');
37810  }
37811
37812  function disableDraggable() {
37813    if (!swiper.params.scrollbar.el) return;
37814    events('off');
37815  }
37816
37817  function init() {
37818    const {
37819      scrollbar,
37820      $el: $swiperEl
37821    } = swiper;
37822    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__["default"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
37823      el: 'swiper-scrollbar'
37824    });
37825    const params = swiper.params.scrollbar;
37826    if (!params.el) return;
37827    let $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el);
37828
37829    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
37830      $el = $swiperEl.find(params.el);
37831    }
37832
37833    let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);
37834
37835    if ($dragEl.length === 0) {
37836      $dragEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(`<div class="${swiper.params.scrollbar.dragClass}"></div>`);
37837      $el.append($dragEl);
37838    }
37839
37840    Object.assign(scrollbar, {
37841      $el,
37842      el: $el[0],
37843      $dragEl,
37844      dragEl: $dragEl[0]
37845    });
37846
37847    if (params.draggable) {
37848      enableDraggable();
37849    }
37850
37851    if ($el) {
37852      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);
37853    }
37854  }
37855
37856  function destroy() {
37857    disableDraggable();
37858  }
37859
37860  on('init', () => {
37861    init();
37862    updateSize();
37863    setTranslate();
37864  });
37865  on('update resize observerUpdate lock unlock', () => {
37866    updateSize();
37867  });
37868  on('setTranslate', () => {
37869    setTranslate();
37870  });
37871  on('setTransition', (_s, duration) => {
37872    setTransition(duration);
37873  });
37874  on('enable disable', () => {
37875    const {
37876      $el
37877    } = swiper.scrollbar;
37878
37879    if ($el) {
37880      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);
37881    }
37882  });
37883  on('destroy', () => {
37884    destroy();
37885  });
37886  Object.assign(swiper.scrollbar, {
37887    updateSize,
37888    setTranslate,
37889    init,
37890    destroy
37891  });
37892}
37893
37894/***/ }),
37895
vendor: 8,556 bytes, lines 37896-38115
37896/***/ "./node_modules/swiper/modules/thumbs/thumbs.js":
37897/*!******************************************************!*\
37898  !*** ./node_modules/swiper/modules/thumbs/thumbs.js ***!
37899  \******************************************************/
37900/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
37901
37902"use strict";
37903__webpack_require__.r(__webpack_exports__);
37904/* harmony export */ __webpack_require__.d(__webpack_exports__, {
37905/* harmony export */   "default": function() { return /* binding */ Thumb; }
37906/* harmony export */ });
37907/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
37908/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
37909
37910
37911function Thumb(_ref) {
37912  let {
37913    swiper,
37914    extendParams,
37915    on
37916  } = _ref;
37917  extendParams({
37918    thumbs: {
37919      swiper: null,
37920      multipleActiveThumbs: true,
37921      autoScrollOffset: 0,
37922      slideThumbActiveClass: 'swiper-slide-thumb-active',
37923      thumbsContainerClass: 'swiper-thumbs'
37924    }
37925  });
37926  let initialized = false;
37927  let swiperCreated = false;
37928  swiper.thumbs = {
37929    swiper: null
37930  };
37931
37932  function onThumbClick() {
37933    const thumbsSwiper = swiper.thumbs.swiper;
37934    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
37935    const clickedIndex = thumbsSwiper.clickedIndex;
37936    const clickedSlide = thumbsSwiper.clickedSlide;
37937    if (clickedSlide && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;
37938    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
37939    let slideToIndex;
37940
37941    if (thumbsSwiper.params.loop) {
37942      slideToIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);
37943    } else {
37944      slideToIndex = clickedIndex;
37945    }
37946
37947    if (swiper.params.loop) {
37948      let currentIndex = swiper.activeIndex;
37949
37950      if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {
37951        swiper.loopFix(); // eslint-disable-next-line
37952
37953        swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
37954        currentIndex = swiper.activeIndex;
37955      }
37956
37957      const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index();
37958      const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index();
37959      if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;
37960    }
37961
37962    swiper.slideTo(slideToIndex);
37963  }
37964
37965  function init() {
37966    const {
37967      thumbs: thumbsParams
37968    } = swiper.params;
37969    if (initialized) return false;
37970    initialized = true;
37971    const SwiperClass = swiper.constructor;
37972
37973    if (thumbsParams.swiper instanceof SwiperClass) {
37974      swiper.thumbs.swiper = thumbsParams.swiper;
37975      Object.assign(swiper.thumbs.swiper.originalParams, {
37976        watchSlidesProgress: true,
37977        slideToClickedSlide: false
37978      });
37979      Object.assign(swiper.thumbs.swiper.params, {
37980        watchSlidesProgress: true,
37981        slideToClickedSlide: false
37982      });
37983    } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(thumbsParams.swiper)) {
37984      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
37985      Object.assign(thumbsSwiperParams, {
37986        watchSlidesProgress: true,
37987        slideToClickedSlide: false
37988      });
37989      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
37990      swiperCreated = true;
37991    }
37992
37993    swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);
37994    swiper.thumbs.swiper.on('tap', onThumbClick);
37995    return true;
37996  }
37997
37998  function update(initial) {
37999    const thumbsSwiper = swiper.thumbs.swiper;
38000    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
38001    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
38002    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
38003    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
38004
38005    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
38006      let currentThumbsIndex = thumbsSwiper.activeIndex;
38007      let newThumbsIndex;
38008      let direction;
38009
38010      if (thumbsSwiper.params.loop) {
38011        if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {
38012          thumbsSwiper.loopFix(); // eslint-disable-next-line
38013
38014          thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;
38015          currentThumbsIndex = thumbsSwiper.activeIndex;
38016        } // Find actual thumbs index to slide to
38017
38018
38019        const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index();
38020        const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index();
38021
38022        if (typeof prevThumbsIndex === 'undefined') {
38023          newThumbsIndex = nextThumbsIndex;
38024        } else if (typeof nextThumbsIndex === 'undefined') {
38025          newThumbsIndex = prevThumbsIndex;
38026        } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {
38027          newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;
38028        } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {
38029          newThumbsIndex = nextThumbsIndex;
38030        } else {
38031          newThumbsIndex = prevThumbsIndex;
38032        }
38033
38034        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
38035      } else {
38036        newThumbsIndex = swiper.realIndex;
38037        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
38038      }
38039
38040      if (useOffset) {
38041        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
38042      }
38043
38044      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
38045        if (thumbsSwiper.params.centeredSlides) {
38046          if (newThumbsIndex > currentThumbsIndex) {
38047            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
38048          } else {
38049            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
38050          }
38051        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;
38052        }
38053
38054        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
38055      }
38056    } // Activate thumbs
38057
38058
38059    let thumbsToActivate = 1;
38060    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
38061
38062    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
38063      thumbsToActivate = swiper.params.slidesPerView;
38064    }
38065
38066    if (!swiper.params.thumbs.multipleActiveThumbs) {
38067      thumbsToActivate = 1;
38068    }
38069
38070    thumbsToActivate = Math.floor(thumbsToActivate);
38071    thumbsSwiper.slides.removeClass(thumbActiveClass);
38072
38073    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
38074      for (let i = 0; i < thumbsToActivate; i += 1) {
38075        thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index="${swiper.realIndex + i}"]`).addClass(thumbActiveClass);
38076      }
38077    } else {
38078      for (let i = 0; i < thumbsToActivate; i += 1) {
38079        thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);
38080      }
38081    }
38082  }
38083
38084  on('beforeInit', () => {
38085    const {
38086      thumbs
38087    } = swiper.params;
38088    if (!thumbs || !thumbs.swiper) return;
38089    init();
38090    update(true);
38091  });
38092  on('slideChange update resize observerUpdate', () => {
38093    update();
38094  });
38095  on('setTransition', (_s, duration) => {
38096    const thumbsSwiper = swiper.thumbs.swiper;
38097    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
38098    thumbsSwiper.setTransition(duration);
38099  });
38100  on('beforeDestroy', () => {
38101    const thumbsSwiper = swiper.thumbs.swiper;
38102    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
38103
38104    if (swiperCreated) {
38105      thumbsSwiper.destroy();
38106    }
38107  });
38108  Object.assign(swiper.thumbs, {
38109    init,
38110    update
38111  });
38112}
38113
38114/***/ }),
38115
vendor: 9,118 bytes, lines 38116-38429
38116/***/ "./node_modules/swiper/modules/virtual/virtual.js":
38117/*!********************************************************!*\
38118  !*** ./node_modules/swiper/modules/virtual/virtual.js ***!
38119  \********************************************************/
38120/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
38121
38122"use strict";
38123__webpack_require__.r(__webpack_exports__);
38124/* harmony export */ __webpack_require__.d(__webpack_exports__, {
38125/* harmony export */   "default": function() { return /* binding */ Virtual; }
38126/* harmony export */ });
38127/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
38128/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
38129
38130
38131function Virtual(_ref) {
38132  let {
38133    swiper,
38134    extendParams,
38135    on,
38136    emit
38137  } = _ref;
38138  extendParams({
38139    virtual: {
38140      enabled: false,
38141      slides: [],
38142      cache: true,
38143      renderSlide: null,
38144      renderExternal: null,
38145      renderExternalUpdate: true,
38146      addSlidesBefore: 0,
38147      addSlidesAfter: 0
38148    }
38149  });
38150  let cssModeTimeout;
38151  swiper.virtual = {
38152    cache: {},
38153    from: undefined,
38154    to: undefined,
38155    slides: [],
38156    offset: 0,
38157    slidesGrid: []
38158  };
38159
38160  function renderSlide(slide, index) {
38161    const params = swiper.params.virtual;
38162
38163    if (params.cache && swiper.virtual.cache[index]) {
38164      return swiper.virtual.cache[index];
38165    }
38166
38167    const $slideEl = params.renderSlide ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.renderSlide.call(swiper, slide, index)) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="${swiper.params.slideClass}" data-swiper-slide-index="${index}">${slide}</div>`);
38168    if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);
38169    if (params.cache) swiper.virtual.cache[index] = $slideEl;
38170    return $slideEl;
38171  }
38172
38173  function update(force) {
38174    const {
38175      slidesPerView,
38176      slidesPerGroup,
38177      centeredSlides
38178    } = swiper.params;
38179    const {
38180      addSlidesBefore,
38181      addSlidesAfter
38182    } = swiper.params.virtual;
38183    const {
38184      from: previousFrom,
38185      to: previousTo,
38186      slides,
38187      slidesGrid: previousSlidesGrid,
38188      offset: previousOffset
38189    } = swiper.virtual;
38190
38191    if (!swiper.params.cssMode) {
38192      swiper.updateActiveIndex();
38193    }
38194
38195    const activeIndex = swiper.activeIndex || 0;
38196    let offsetProp;
38197    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
38198    let slidesAfter;
38199    let slidesBefore;
38200
38201    if (centeredSlides) {
38202      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
38203      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
38204    } else {
38205      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
38206      slidesBefore = slidesPerGroup + addSlidesBefore;
38207    }
38208
38209    const from = Math.max((activeIndex || 0) - slidesBefore, 0);
38210    const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);
38211    const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
38212    Object.assign(swiper.virtual, {
38213      from,
38214      to,
38215      offset,
38216      slidesGrid: swiper.slidesGrid
38217    });
38218
38219    function onRendered() {
38220      swiper.updateSlides();
38221      swiper.updateProgress();
38222      swiper.updateSlidesClasses();
38223
38224      if (swiper.lazy && swiper.params.lazy.enabled) {
38225        swiper.lazy.load();
38226      }
38227
38228      emit('virtualUpdate');
38229    }
38230
38231    if (previousFrom === from && previousTo === to && !force) {
38232      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
38233        swiper.slides.css(offsetProp, `${offset}px`);
38234      }
38235
38236      swiper.updateProgress();
38237      emit('virtualUpdate');
38238      return;
38239    }
38240
38241    if (swiper.params.virtual.renderExternal) {
38242      swiper.params.virtual.renderExternal.call(swiper, {
38243        offset,
38244        from,
38245        to,
38246        slides: function getSlides() {
38247          const slidesToRender = [];
38248
38249          for (let i = from; i <= to; i += 1) {
38250            slidesToRender.push(slides[i]);
38251          }
38252
38253          return slidesToRender;
38254        }()
38255      });
38256
38257      if (swiper.params.virtual.renderExternalUpdate) {
38258        onRendered();
38259      } else {
38260        emit('virtualUpdate');
38261      }
38262
38263      return;
38264    }
38265
38266    const prependIndexes = [];
38267    const appendIndexes = [];
38268
38269    if (force) {
38270      swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();
38271    } else {
38272      for (let i = previousFrom; i <= previousTo; i += 1) {
38273        if (i < from || i > to) {
38274          swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index="${i}"]`).remove();
38275        }
38276      }
38277    }
38278
38279    for (let i = 0; i < slides.length; i += 1) {
38280      if (i >= from && i <= to) {
38281        if (typeof previousTo === 'undefined' || force) {
38282          appendIndexes.push(i);
38283        } else {
38284          if (i > previousTo) appendIndexes.push(i);
38285          if (i < previousFrom) prependIndexes.push(i);
38286        }
38287      }
38288    }
38289
38290    appendIndexes.forEach(index => {
38291      swiper.$wrapperEl.append(renderSlide(slides[index], index));
38292    });
38293    prependIndexes.sort((a, b) => b - a).forEach(index => {
38294      swiper.$wrapperEl.prepend(renderSlide(slides[index], index));
38295    });
38296    swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);
38297    onRendered();
38298  }
38299
38300  function appendSlide(slides) {
38301    if (typeof slides === 'object' && 'length' in slides) {
38302      for (let i = 0; i < slides.length; i += 1) {
38303        if (slides[i]) swiper.virtual.slides.push(slides[i]);
38304      }
38305    } else {
38306      swiper.virtual.slides.push(slides);
38307    }
38308
38309    update(true);
38310  }
38311
38312  function prependSlide(slides) {
38313    const activeIndex = swiper.activeIndex;
38314    let newActiveIndex = activeIndex + 1;
38315    let numberOfNewSlides = 1;
38316
38317    if (Array.isArray(slides)) {
38318      for (let i = 0; i < slides.length; i += 1) {
38319        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
38320      }
38321
38322      newActiveIndex = activeIndex + slides.length;
38323      numberOfNewSlides = slides.length;
38324    } else {
38325      swiper.virtual.slides.unshift(slides);
38326    }
38327
38328    if (swiper.params.virtual.cache) {
38329      const cache = swiper.virtual.cache;
38330      const newCache = {};
38331      Object.keys(cache).forEach(cachedIndex => {
38332        const $cachedEl = cache[cachedIndex];
38333        const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');
38334
38335        if (cachedElIndex) {
38336          $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
38337        }
38338
38339        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;
38340      });
38341      swiper.virtual.cache = newCache;
38342    }
38343
38344    update(true);
38345    swiper.slideTo(newActiveIndex, 0);
38346  }
38347
38348  function removeSlide(slidesIndexes) {
38349    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
38350    let activeIndex = swiper.activeIndex;
38351
38352    if (Array.isArray(slidesIndexes)) {
38353      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
38354        swiper.virtual.slides.splice(slidesIndexes[i], 1);
38355
38356        if (swiper.params.virtual.cache) {
38357          delete swiper.virtual.cache[slidesIndexes[i]];
38358        }
38359
38360        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
38361        activeIndex = Math.max(activeIndex, 0);
38362      }
38363    } else {
38364      swiper.virtual.slides.splice(slidesIndexes, 1);
38365
38366      if (swiper.params.virtual.cache) {
38367        delete swiper.virtual.cache[slidesIndexes];
38368      }
38369
38370      if (slidesIndexes < activeIndex) activeIndex -= 1;
38371      activeIndex = Math.max(activeIndex, 0);
38372    }
38373
38374    update(true);
38375    swiper.slideTo(activeIndex, 0);
38376  }
38377
38378  function removeAllSlides() {
38379    swiper.virtual.slides = [];
38380
38381    if (swiper.params.virtual.cache) {
38382      swiper.virtual.cache = {};
38383    }
38384
38385    update(true);
38386    swiper.slideTo(0, 0);
38387  }
38388
38389  on('beforeInit', () => {
38390    if (!swiper.params.virtual.enabled) return;
38391    swiper.virtual.slides = swiper.params.virtual.slides;
38392    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
38393    swiper.params.watchSlidesProgress = true;
38394    swiper.originalParams.watchSlidesProgress = true;
38395
38396    if (!swiper.params.initialSlide) {
38397      update();
38398    }
38399  });
38400  on('setTranslate', () => {
38401    if (!swiper.params.virtual.enabled) return;
38402
38403    if (swiper.params.cssMode && !swiper._immediateVirtual) {
38404      clearTimeout(cssModeTimeout);
38405      cssModeTimeout = setTimeout(() => {
38406        update();
38407      }, 100);
38408    } else {
38409      update();
38410    }
38411  });
38412  on('init update resize', () => {
38413    if (!swiper.params.virtual.enabled) return;
38414
38415    if (swiper.params.cssMode) {
38416      (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
38417    }
38418  });
38419  Object.assign(swiper.virtual, {
38420    appendSlide,
38421    prependSlide,
38422    removeSlide,
38423    removeAllSlides,
38424    update
38425  });
38426}
38427
38428/***/ }),
38429
vendor: 21,711 bytes, lines 38430-39059
38430/***/ "./node_modules/swiper/modules/zoom/zoom.js":
38431/*!**************************************************!*\
38432  !*** ./node_modules/swiper/modules/zoom/zoom.js ***!
38433  \**************************************************/
38434/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
38435
38436"use strict";
38437__webpack_require__.r(__webpack_exports__);
38438/* harmony export */ __webpack_require__.d(__webpack_exports__, {
38439/* harmony export */   "default": function() { return /* binding */ Zoom; }
38440/* harmony export */ });
38441/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
38442/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js");
38443/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js");
38444
38445
38446
38447function Zoom(_ref) {
38448  let {
38449    swiper,
38450    extendParams,
38451    on,
38452    emit
38453  } = _ref;
38454  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
38455  extendParams({
38456    zoom: {
38457      enabled: false,
38458      maxRatio: 3,
38459      minRatio: 1,
38460      toggle: true,
38461      containerClass: 'swiper-zoom-container',
38462      zoomedSlideClass: 'swiper-slide-zoomed'
38463    }
38464  });
38465  swiper.zoom = {
38466    enabled: false
38467  };
38468  let currentScale = 1;
38469  let isScaling = false;
38470  let gesturesEnabled;
38471  let fakeGestureTouched;
38472  let fakeGestureMoved;
38473  const gesture = {
38474    $slideEl: undefined,
38475    slideWidth: undefined,
38476    slideHeight: undefined,
38477    $imageEl: undefined,
38478    $imageWrapEl: undefined,
38479    maxRatio: 3
38480  };
38481  const image = {
38482    isTouched: undefined,
38483    isMoved: undefined,
38484    currentX: undefined,
38485    currentY: undefined,
38486    minX: undefined,
38487    minY: undefined,
38488    maxX: undefined,
38489    maxY: undefined,
38490    width: undefined,
38491    height: undefined,
38492    startX: undefined,
38493    startY: undefined,
38494    touchesStart: {},
38495    touchesCurrent: {}
38496  };
38497  const velocity = {
38498    x: undefined,
38499    y: undefined,
38500    prevPositionX: undefined,
38501    prevPositionY: undefined,
38502    prevTime: undefined
38503  };
38504  let scale = 1;
38505  Object.defineProperty(swiper.zoom, 'scale', {
38506    get() {
38507      return scale;
38508    },
38509
38510    set(value) {
38511      if (scale !== value) {
38512        const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;
38513        const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;
38514        emit('zoomChange', value, imageEl, slideEl);
38515      }
38516
38517      scale = value;
38518    }
38519
38520  });
38521
38522  function getDistanceBetweenTouches(e) {
38523    if (e.targetTouches.length < 2) return 1;
38524    const x1 = e.targetTouches[0].pageX;
38525    const y1 = e.targetTouches[0].pageY;
38526    const x2 = e.targetTouches[1].pageX;
38527    const y2 = e.targetTouches[1].pageY;
38528    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
38529    return distance;
38530  } // Events
38531
38532
38533  function onGestureStart(e) {
38534    const support = swiper.support;
38535    const params = swiper.params.zoom;
38536    fakeGestureTouched = false;
38537    fakeGestureMoved = false;
38538
38539    if (!support.gestures) {
38540      if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {
38541        return;
38542      }
38543
38544      fakeGestureTouched = true;
38545      gesture.scaleStart = getDistanceBetweenTouches(e);
38546    }
38547
38548    if (!gesture.$slideEl || !gesture.$slideEl.length) {
38549      gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(`.${swiper.params.slideClass}`);
38550      if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);
38551      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
38552      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
38553      gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;
38554
38555      if (gesture.$imageWrapEl.length === 0) {
38556        gesture.$imageEl = undefined;
38557        return;
38558      }
38559    }
38560
38561    if (gesture.$imageEl) {
38562      gesture.$imageEl.transition(0);
38563    }
38564
38565    isScaling = true;
38566  }
38567
38568  function onGestureChange(e) {
38569    const support = swiper.support;
38570    const params = swiper.params.zoom;
38571    const zoom = swiper.zoom;
38572
38573    if (!support.gestures) {
38574      if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {
38575        return;
38576      }
38577
38578      fakeGestureMoved = true;
38579      gesture.scaleMove = getDistanceBetweenTouches(e);
38580    }
38581
38582    if (!gesture.$imageEl || gesture.$imageEl.length === 0) {
38583      if (e.type === 'gesturechange') onGestureStart(e);
38584      return;
38585    }
38586
38587    if (support.gestures) {
38588      zoom.scale = e.scale * currentScale;
38589    } else {
38590      zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
38591    }
38592
38593    if (zoom.scale > gesture.maxRatio) {
38594      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
38595    }
38596
38597    if (zoom.scale < params.minRatio) {
38598      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
38599    }
38600
38601    gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);
38602  }
38603
38604  function onGestureEnd(e) {
38605    const device = swiper.device;
38606    const support = swiper.support;
38607    const params = swiper.params.zoom;
38608    const zoom = swiper.zoom;
38609
38610    if (!support.gestures) {
38611      if (!fakeGestureTouched || !fakeGestureMoved) {
38612        return;
38613      }
38614
38615      if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {
38616        return;
38617      }
38618
38619      fakeGestureTouched = false;
38620      fakeGestureMoved = false;
38621    }
38622
38623    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;
38624    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
38625    gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);
38626    currentScale = zoom.scale;
38627    isScaling = false;
38628    if (zoom.scale === 1) gesture.$slideEl = undefined;
38629  }
38630
38631  function onTouchStart(e) {
38632    const device = swiper.device;
38633    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;
38634    if (image.isTouched) return;
38635    if (device.android && e.cancelable) e.preventDefault();
38636    image.isTouched = true;
38637    image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;
38638    image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
38639  }
38640
38641  function onTouchMove(e) {
38642    const zoom = swiper.zoom;
38643    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;
38644    swiper.allowClick = false;
38645    if (!image.isTouched || !gesture.$slideEl) return;
38646
38647    if (!image.isMoved) {
38648      image.width = gesture.$imageEl[0].offsetWidth;
38649      image.height = gesture.$imageEl[0].offsetHeight;
38650      image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'x') || 0;
38651      image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'y') || 0;
38652      gesture.slideWidth = gesture.$slideEl[0].offsetWidth;
38653      gesture.slideHeight = gesture.$slideEl[0].offsetHeight;
38654      gesture.$imageWrapEl.transition(0);
38655    } // Define if we need image drag
38656
38657
38658    const scaledWidth = image.width * zoom.scale;
38659    const scaledHeight = image.height * zoom.scale;
38660    if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;
38661    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
38662    image.maxX = -image.minX;
38663    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
38664    image.maxY = -image.minY;
38665    image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
38666    image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
38667
38668    if (!image.isMoved && !isScaling) {
38669      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)) {
38670        image.isTouched = false;
38671        return;
38672      }
38673
38674      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)) {
38675        image.isTouched = false;
38676        return;
38677      }
38678    }
38679
38680    if (e.cancelable) {
38681      e.preventDefault();
38682    }
38683
38684    e.stopPropagation();
38685    image.isMoved = true;
38686    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;
38687    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;
38688
38689    if (image.currentX < image.minX) {
38690      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
38691    }
38692
38693    if (image.currentX > image.maxX) {
38694      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
38695    }
38696
38697    if (image.currentY < image.minY) {
38698      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
38699    }
38700
38701    if (image.currentY > image.maxY) {
38702      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
38703    } // Velocity
38704
38705
38706    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
38707    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
38708    if (!velocity.prevTime) velocity.prevTime = Date.now();
38709    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
38710    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
38711    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
38712    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
38713    velocity.prevPositionX = image.touchesCurrent.x;
38714    velocity.prevPositionY = image.touchesCurrent.y;
38715    velocity.prevTime = Date.now();
38716    gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);
38717  }
38718
38719  function onTouchEnd() {
38720    const zoom = swiper.zoom;
38721    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;
38722
38723    if (!image.isTouched || !image.isMoved) {
38724      image.isTouched = false;
38725      image.isMoved = false;
38726      return;
38727    }
38728
38729    image.isTouched = false;
38730    image.isMoved = false;
38731    let momentumDurationX = 300;
38732    let momentumDurationY = 300;
38733    const momentumDistanceX = velocity.x * momentumDurationX;
38734    const newPositionX = image.currentX + momentumDistanceX;
38735    const momentumDistanceY = velocity.y * momentumDurationY;
38736    const newPositionY = image.currentY + momentumDistanceY; // Fix duration
38737
38738    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
38739    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
38740    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
38741    image.currentX = newPositionX;
38742    image.currentY = newPositionY; // Define if we need image drag
38743
38744    const scaledWidth = image.width * zoom.scale;
38745    const scaledHeight = image.height * zoom.scale;
38746    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
38747    image.maxX = -image.minX;
38748    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
38749    image.maxY = -image.minY;
38750    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
38751    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
38752    gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);
38753  }
38754
38755  function onTransitionEnd() {
38756    const zoom = swiper.zoom;
38757
38758    if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {
38759      if (gesture.$imageEl) {
38760        gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');
38761      }
38762
38763      if (gesture.$imageWrapEl) {
38764        gesture.$imageWrapEl.transform('translate3d(0,0,0)');
38765      }
38766
38767      zoom.scale = 1;
38768      currentScale = 1;
38769      gesture.$slideEl = undefined;
38770      gesture.$imageEl = undefined;
38771      gesture.$imageWrapEl = undefined;
38772    }
38773  }
38774
38775  function zoomIn(e) {
38776    const zoom = swiper.zoom;
38777    const params = swiper.params.zoom;
38778
38779    if (!gesture.$slideEl) {
38780      if (e && e.target) {
38781        gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(`.${swiper.params.slideClass}`);
38782      }
38783
38784      if (!gesture.$slideEl) {
38785        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
38786          gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);
38787        } else {
38788          gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);
38789        }
38790      }
38791
38792      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
38793      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
38794    }
38795
38796    if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;
38797
38798    if (swiper.params.cssMode) {
38799      swiper.wrapperEl.style.overflow = 'hidden';
38800      swiper.wrapperEl.style.touchAction = 'none';
38801    }
38802
38803    gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);
38804    let touchX;
38805    let touchY;
38806    let offsetX;
38807    let offsetY;
38808    let diffX;
38809    let diffY;
38810    let translateX;
38811    let translateY;
38812    let imageWidth;
38813    let imageHeight;
38814    let scaledWidth;
38815    let scaledHeight;
38816    let translateMinX;
38817    let translateMinY;
38818    let translateMaxX;
38819    let translateMaxY;
38820    let slideWidth;
38821    let slideHeight;
38822
38823    if (typeof image.touchesStart.x === 'undefined' && e) {
38824      touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;
38825      touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;
38826    } else {
38827      touchX = image.touchesStart.x;
38828      touchY = image.touchesStart.y;
38829    }
38830
38831    zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;
38832    currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;
38833
38834    if (e) {
38835      slideWidth = gesture.$slideEl[0].offsetWidth;
38836      slideHeight = gesture.$slideEl[0].offsetHeight;
38837      offsetX = gesture.$slideEl.offset().left + window.scrollX;
38838      offsetY = gesture.$slideEl.offset().top + window.scrollY;
38839      diffX = offsetX + slideWidth / 2 - touchX;
38840      diffY = offsetY + slideHeight / 2 - touchY;
38841      imageWidth = gesture.$imageEl[0].offsetWidth;
38842      imageHeight = gesture.$imageEl[0].offsetHeight;
38843      scaledWidth = imageWidth * zoom.scale;
38844      scaledHeight = imageHeight * zoom.scale;
38845      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
38846      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
38847      translateMaxX = -translateMinX;
38848      translateMaxY = -translateMinY;
38849      translateX = diffX * zoom.scale;
38850      translateY = diffY * zoom.scale;
38851
38852      if (translateX < translateMinX) {
38853        translateX = translateMinX;
38854      }
38855
38856      if (translateX > translateMaxX) {
38857        translateX = translateMaxX;
38858      }
38859
38860      if (translateY < translateMinY) {
38861        translateY = translateMinY;
38862      }
38863
38864      if (translateY > translateMaxY) {
38865        translateY = translateMaxY;
38866      }
38867    } else {
38868      translateX = 0;
38869      translateY = 0;
38870    }
38871
38872    gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);
38873    gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);
38874  }
38875
38876  function zoomOut() {
38877    const zoom = swiper.zoom;
38878    const params = swiper.params.zoom;
38879
38880    if (!gesture.$slideEl) {
38881      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
38882        gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);
38883      } else {
38884        gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);
38885      }
38886
38887      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
38888      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);
38889    }
38890
38891    if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;
38892
38893    if (swiper.params.cssMode) {
38894      swiper.wrapperEl.style.overflow = '';
38895      swiper.wrapperEl.style.touchAction = '';
38896    }
38897
38898    zoom.scale = 1;
38899    currentScale = 1;
38900    gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');
38901    gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');
38902    gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);
38903    gesture.$slideEl = undefined;
38904  } // Toggle Zoom
38905
38906
38907  function zoomToggle(e) {
38908    const zoom = swiper.zoom;
38909
38910    if (zoom.scale && zoom.scale !== 1) {
38911      // Zoom Out
38912      zoomOut();
38913    } else {
38914      // Zoom In
38915      zoomIn(e);
38916    }
38917  }
38918
38919  function getListeners() {
38920    const support = swiper.support;
38921    const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {
38922      passive: true,
38923      capture: false
38924    } : false;
38925    const activeListenerWithCapture = support.passiveListener ? {
38926      passive: false,
38927      capture: true
38928    } : true;
38929    return {
38930      passiveListener,
38931      activeListenerWithCapture
38932    };
38933  }
38934
38935  function getSlideSelector() {
38936    return `.${swiper.params.slideClass}`;
38937  }
38938
38939  function toggleGestures(method) {
38940    const {
38941      passiveListener
38942    } = getListeners();
38943    const slideSelector = getSlideSelector();
38944    swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);
38945    swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);
38946    swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);
38947  }
38948
38949  function enableGestures() {
38950    if (gesturesEnabled) return;
38951    gesturesEnabled = true;
38952    toggleGestures('on');
38953  }
38954
38955  function disableGestures() {
38956    if (!gesturesEnabled) return;
38957    gesturesEnabled = false;
38958    toggleGestures('off');
38959  } // Attach/Detach Events
38960
38961
38962  function enable() {
38963    const zoom = swiper.zoom;
38964    if (zoom.enabled) return;
38965    zoom.enabled = true;
38966    const support = swiper.support;
38967    const {
38968      passiveListener,
38969      activeListenerWithCapture
38970    } = getListeners();
38971    const slideSelector = getSlideSelector(); // Scale image
38972
38973    if (support.gestures) {
38974      swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);
38975      swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);
38976    } else if (swiper.touchEvents.start === 'touchstart') {
38977      swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);
38978      swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);
38979      swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);
38980
38981      if (swiper.touchEvents.cancel) {
38982        swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);
38983      }
38984    } // Move image
38985
38986
38987    swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);
38988  }
38989
38990  function disable() {
38991    const zoom = swiper.zoom;
38992    if (!zoom.enabled) return;
38993    const support = swiper.support;
38994    zoom.enabled = false;
38995    const {
38996      passiveListener,
38997      activeListenerWithCapture
38998    } = getListeners();
38999    const slideSelector = getSlideSelector(); // Scale image
39000
39001    if (support.gestures) {
39002      swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);
39003      swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);
39004    } else if (swiper.touchEvents.start === 'touchstart') {
39005      swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);
39006      swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);
39007      swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);
39008
39009      if (swiper.touchEvents.cancel) {
39010        swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);
39011      }
39012    } // Move image
39013
39014
39015    swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);
39016  }
39017
39018  on('init', () => {
39019    if (swiper.params.zoom.enabled) {
39020      enable();
39021    }
39022  });
39023  on('destroy', () => {
39024    disable();
39025  });
39026  on('touchStart', (_s, e) => {
39027    if (!swiper.zoom.enabled) return;
39028    onTouchStart(e);
39029  });
39030  on('touchEnd', (_s, e) => {
39031    if (!swiper.zoom.enabled) return;
39032    onTouchEnd(e);
39033  });
39034  on('doubleTap', (_s, e) => {
39035    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
39036      zoomToggle(e);
39037    }
39038  });
39039  on('transitionEnd', () => {
39040    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
39041      onTransitionEnd();
39042    }
39043  });
39044  on('slideChange', () => {
39045    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
39046      onTransitionEnd();
39047    }
39048  });
39049  Object.assign(swiper.zoom, {
39050    enable,
39051    disable,
39052    in: zoomIn,
39053    out: zoomOut,
39054    toggle: zoomToggle
39055  });
39056}
39057
39058/***/ }),
39059
vendor: 801 bytes, lines 39060-39081
39060/***/ "./node_modules/swiper/shared/classes-to-selector.js":
39061/*!***********************************************************!*\
39062  !*** ./node_modules/swiper/shared/classes-to-selector.js ***!
39063  \***********************************************************/
39064/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39065
39066"use strict";
39067__webpack_require__.r(__webpack_exports__);
39068/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39069/* harmony export */   "default": function() { return /* binding */ classesToSelector; }
39070/* harmony export */ });
39071function classesToSelector(classes) {
39072  if (classes === void 0) {
39073    classes = '';
39074  }
39075
39076  return `.${classes.trim().replace(/([\.:!\/])/g, '\\$1') // eslint-disable-line
39077  .replace(/ /g, '.')}`;
39078}
39079
39080/***/ }),
39081
vendor: 1,449 bytes, lines 39082-39119
39082/***/ "./node_modules/swiper/shared/create-element-if-not-defined.js":
39083/*!*********************************************************************!*\
39084  !*** ./node_modules/swiper/shared/create-element-if-not-defined.js ***!
39085  \*********************************************************************/
39086/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39087
39088"use strict";
39089__webpack_require__.r(__webpack_exports__);
39090/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39091/* harmony export */   "default": function() { return /* binding */ createElementIfNotDefined; }
39092/* harmony export */ });
39093/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
39094
39095function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
39096  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
39097
39098  if (swiper.params.createElements) {
39099    Object.keys(checkProps).forEach(key => {
39100      if (!params[key] && params.auto === true) {
39101        let element = swiper.$el.children(`.${checkProps[key]}`)[0];
39102
39103        if (!element) {
39104          element = document.createElement('div');
39105          element.className = checkProps[key];
39106          swiper.$el.append(element);
39107        }
39108
39109        params[key] = element;
39110        originalParams[key] = element;
39111      }
39112    });
39113  }
39114
39115  return params;
39116}
39117
39118/***/ }),
39119
vendor: 1,223 bytes, lines 39120-39147
39120/***/ "./node_modules/swiper/shared/create-shadow.js":
39121/*!*****************************************************!*\
39122  !*** ./node_modules/swiper/shared/create-shadow.js ***!
39123  \*****************************************************/
39124/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39125
39126"use strict";
39127__webpack_require__.r(__webpack_exports__);
39128/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39129/* harmony export */   "default": function() { return /* binding */ createShadow; }
39130/* harmony export */ });
39131/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom.js */ "./node_modules/swiper/shared/dom.js");
39132
39133function createShadow(params, $slideEl, side) {
39134  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;
39135  const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;
39136  let $shadowEl = $shadowContainer.children(`.${shadowClass}`);
39137
39138  if (!$shadowEl.length) {
39139    $shadowEl = (0,_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(`<div class="swiper-slide-shadow${side ? `-${side}` : ''}"></div>`);
39140    $shadowContainer.append($shadowEl);
39141  }
39142
39143  return $shadowEl;
39144}
39145
39146/***/ }),
39147
vendor: 2,698 bytes, lines 39148-39205
39148/***/ "./node_modules/swiper/shared/dom.js":
39149/*!*******************************************!*\
39150  !*** ./node_modules/swiper/shared/dom.js ***!
39151  \*******************************************/
39152/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39153
39154"use strict";
39155__webpack_require__.r(__webpack_exports__);
39156/* harmony import */ var dom7__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7 */ "./node_modules/dom7/dom7.esm.js");
39157
39158const Methods = {
39159  addClass: dom7__WEBPACK_IMPORTED_MODULE_0__.addClass,
39160  removeClass: dom7__WEBPACK_IMPORTED_MODULE_0__.removeClass,
39161  hasClass: dom7__WEBPACK_IMPORTED_MODULE_0__.hasClass,
39162  toggleClass: dom7__WEBPACK_IMPORTED_MODULE_0__.toggleClass,
39163  attr: dom7__WEBPACK_IMPORTED_MODULE_0__.attr,
39164  removeAttr: dom7__WEBPACK_IMPORTED_MODULE_0__.removeAttr,
39165  transform: dom7__WEBPACK_IMPORTED_MODULE_0__.transform,
39166  transition: dom7__WEBPACK_IMPORTED_MODULE_0__.transition,
39167  on: dom7__WEBPACK_IMPORTED_MODULE_0__.on,
39168  off: dom7__WEBPACK_IMPORTED_MODULE_0__.off,
39169  trigger: dom7__WEBPACK_IMPORTED_MODULE_0__.trigger,
39170  transitionEnd: dom7__WEBPACK_IMPORTED_MODULE_0__.transitionEnd,
39171  outerWidth: dom7__WEBPACK_IMPORTED_MODULE_0__.outerWidth,
39172  outerHeight: dom7__WEBPACK_IMPORTED_MODULE_0__.outerHeight,
39173  styles: dom7__WEBPACK_IMPORTED_MODULE_0__.styles,
39174  offset: dom7__WEBPACK_IMPORTED_MODULE_0__.offset,
39175  css: dom7__WEBPACK_IMPORTED_MODULE_0__.css,
39176  each: dom7__WEBPACK_IMPORTED_MODULE_0__.each,
39177  html: dom7__WEBPACK_IMPORTED_MODULE_0__.html,
39178  text: dom7__WEBPACK_IMPORTED_MODULE_0__.text,
39179  is: dom7__WEBPACK_IMPORTED_MODULE_0__.is,
39180  index: dom7__WEBPACK_IMPORTED_MODULE_0__.index,
39181  eq: dom7__WEBPACK_IMPORTED_MODULE_0__.eq,
39182  append: dom7__WEBPACK_IMPORTED_MODULE_0__.append,
39183  prepend: dom7__WEBPACK_IMPORTED_MODULE_0__.prepend,
39184  next: dom7__WEBPACK_IMPORTED_MODULE_0__.next,
39185  nextAll: dom7__WEBPACK_IMPORTED_MODULE_0__.nextAll,
39186  prev: dom7__WEBPACK_IMPORTED_MODULE_0__.prev,
39187  prevAll: dom7__WEBPACK_IMPORTED_MODULE_0__.prevAll,
39188  parent: dom7__WEBPACK_IMPORTED_MODULE_0__.parent,
39189  parents: dom7__WEBPACK_IMPORTED_MODULE_0__.parents,
39190  closest: dom7__WEBPACK_IMPORTED_MODULE_0__.closest,
39191  find: dom7__WEBPACK_IMPORTED_MODULE_0__.find,
39192  children: dom7__WEBPACK_IMPORTED_MODULE_0__.children,
39193  filter: dom7__WEBPACK_IMPORTED_MODULE_0__.filter,
39194  remove: dom7__WEBPACK_IMPORTED_MODULE_0__.remove
39195};
39196Object.keys(Methods).forEach(methodName => {
39197  Object.defineProperty(dom7__WEBPACK_IMPORTED_MODULE_0__.$.fn, methodName, {
39198    value: Methods[methodName],
39199    writable: true
39200  });
39201});
39202/* harmony default export */ __webpack_exports__["default"] = (dom7__WEBPACK_IMPORTED_MODULE_0__.$);
39203
39204/***/ }),
39205
vendor: 2,354 bytes, lines 39206-39281
39206/***/ "./node_modules/swiper/shared/effect-init.js":
39207/*!***************************************************!*\
39208  !*** ./node_modules/swiper/shared/effect-init.js ***!
39209  \***************************************************/
39210/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39211
39212"use strict";
39213__webpack_require__.r(__webpack_exports__);
39214/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39215/* harmony export */   "default": function() { return /* binding */ effectInit; }
39216/* harmony export */ });
39217function effectInit(params) {
39218  const {
39219    effect,
39220    swiper,
39221    on,
39222    setTranslate,
39223    setTransition,
39224    overwriteParams,
39225    perspective,
39226    recreateShadows,
39227    getEffectParams
39228  } = params;
39229  on('beforeInit', () => {
39230    if (swiper.params.effect !== effect) return;
39231    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
39232
39233    if (perspective && perspective()) {
39234      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
39235    }
39236
39237    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
39238    Object.assign(swiper.params, overwriteParamsResult);
39239    Object.assign(swiper.originalParams, overwriteParamsResult);
39240  });
39241  on('setTranslate', () => {
39242    if (swiper.params.effect !== effect) return;
39243    setTranslate();
39244  });
39245  on('setTransition', (_s, duration) => {
39246    if (swiper.params.effect !== effect) return;
39247    setTransition(duration);
39248  });
39249  on('transitionEnd', () => {
39250    if (swiper.params.effect !== effect) return;
39251
39252    if (recreateShadows) {
39253      if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows
39254
39255      swiper.slides.each(slideEl => {
39256        const $slideEl = swiper.$(slideEl);
39257        $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();
39258      }); // create new one
39259
39260      recreateShadows();
39261    }
39262  });
39263  let requireUpdateOnVirtual;
39264  on('virtualUpdate', () => {
39265    if (swiper.params.effect !== effect) return;
39266
39267    if (!swiper.slides.length) {
39268      requireUpdateOnVirtual = true;
39269    }
39270
39271    requestAnimationFrame(() => {
39272      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
39273        setTranslate();
39274        requireUpdateOnVirtual = false;
39275      }
39276    });
39277  });
39278}
39279
39280/***/ }),
39281
vendor: 832 bytes, lines 39282-39305
39282/***/ "./node_modules/swiper/shared/effect-target.js":
39283/*!*****************************************************!*\
39284  !*** ./node_modules/swiper/shared/effect-target.js ***!
39285  \*****************************************************/
39286/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39287
39288"use strict";
39289__webpack_require__.r(__webpack_exports__);
39290/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39291/* harmony export */   "default": function() { return /* binding */ effectTarget; }
39292/* harmony export */ });
39293function effectTarget(effectParams, $slideEl) {
39294  if (effectParams.transformEl) {
39295    return $slideEl.find(effectParams.transformEl).css({
39296      'backface-visibility': 'hidden',
39297      '-webkit-backface-visibility': 'hidden'
39298    });
39299  }
39300
39301  return $slideEl;
39302}
39303
39304/***/ }),
39305
vendor: 1,578 bytes, lines 39306-39355
39306/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.js":
39307/*!*********************************************************************!*\
39308  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.js ***!
39309  \*********************************************************************/
39310/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39311
39312"use strict";
39313__webpack_require__.r(__webpack_exports__);
39314/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39315/* harmony export */   "default": function() { return /* binding */ effectVirtualTransitionEnd; }
39316/* harmony export */ });
39317function effectVirtualTransitionEnd(_ref) {
39318  let {
39319    swiper,
39320    duration,
39321    transformEl,
39322    allSlides
39323  } = _ref;
39324  const {
39325    slides,
39326    activeIndex,
39327    $wrapperEl
39328  } = swiper;
39329
39330  if (swiper.params.virtualTranslate && duration !== 0) {
39331    let eventTriggered = false;
39332    let $transitionEndTarget;
39333
39334    if (allSlides) {
39335      $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;
39336    } else {
39337      $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);
39338    }
39339
39340    $transitionEndTarget.transitionEnd(() => {
39341      if (eventTriggered) return;
39342      if (!swiper || swiper.destroyed) return;
39343      eventTriggered = true;
39344      swiper.animating = false;
39345      const triggerEvents = ['webkitTransitionEnd', 'transitionend'];
39346
39347      for (let i = 0; i < triggerEvents.length; i += 1) {
39348        $wrapperEl.trigger(triggerEvents[i]);
39349      }
39350    });
39351  }
39352}
39353
39354/***/ }),
39355
vendor: 1,254 bytes, lines 39356-39396
39356/***/ "./node_modules/swiper/shared/get-browser.js":
39357/*!***************************************************!*\
39358  !*** ./node_modules/swiper/shared/get-browser.js ***!
39359  \***************************************************/
39360/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39361
39362"use strict";
39363__webpack_require__.r(__webpack_exports__);
39364/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39365/* harmony export */   "getBrowser": function() { return /* binding */ getBrowser; }
39366/* harmony export */ });
39367/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
39368
39369let browser;
39370
39371function calcBrowser() {
39372  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39373
39374  function isSafari() {
39375    const ua = window.navigator.userAgent.toLowerCase();
39376    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
39377  }
39378
39379  return {
39380    isSafari: isSafari(),
39381    isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)
39382  };
39383}
39384
39385function getBrowser() {
39386  if (!browser) {
39387    browser = calcBrowser();
39388  }
39389
39390  return browser;
39391}
39392
39393
39394
39395/***/ }),
39396
vendor: 2,521 bytes, lines 39397-39474
39397/***/ "./node_modules/swiper/shared/get-device.js":
39398/*!**************************************************!*\
39399  !*** ./node_modules/swiper/shared/get-device.js ***!
39400  \**************************************************/
39401/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39402
39403"use strict";
39404__webpack_require__.r(__webpack_exports__);
39405/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39406/* harmony export */   "getDevice": function() { return /* binding */ getDevice; }
39407/* harmony export */ });
39408/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
39409/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ "./node_modules/swiper/shared/get-support.js");
39410
39411
39412let deviceCached;
39413
39414function calcDevice(_temp) {
39415  let {
39416    userAgent
39417  } = _temp === void 0 ? {} : _temp;
39418  const support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)();
39419  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39420  const platform = window.navigator.platform;
39421  const ua = userAgent || window.navigator.userAgent;
39422  const device = {
39423    ios: false,
39424    android: false
39425  };
39426  const screenWidth = window.screen.width;
39427  const screenHeight = window.screen.height;
39428  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
39429
39430  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
39431  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
39432  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
39433  const windows = platform === 'Win32';
39434  let macos = platform === 'MacIntel'; // iPadOs 13 fix
39435
39436  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
39437
39438  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
39439    ipad = ua.match(/(Version)\/([\d.]+)/);
39440    if (!ipad) ipad = [0, 1, '13_0_0'];
39441    macos = false;
39442  } // Android
39443
39444
39445  if (android && !windows) {
39446    device.os = 'android';
39447    device.android = true;
39448  }
39449
39450  if (ipad || iphone || ipod) {
39451    device.os = 'ios';
39452    device.ios = true;
39453  } // Export object
39454
39455
39456  return device;
39457}
39458
39459function getDevice(overrides) {
39460  if (overrides === void 0) {
39461    overrides = {};
39462  }
39463
39464  if (!deviceCached) {
39465    deviceCached = calcDevice(overrides);
39466  }
39467
39468  return deviceCached;
39469}
39470
39471
39472
39473/***/ }),
39474
vendor: 1,755 bytes, lines 39475-39530
39475/***/ "./node_modules/swiper/shared/get-support.js":
39476/*!***************************************************!*\
39477  !*** ./node_modules/swiper/shared/get-support.js ***!
39478  \***************************************************/
39479/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39480
39481"use strict";
39482__webpack_require__.r(__webpack_exports__);
39483/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39484/* harmony export */   "getSupport": function() { return /* binding */ getSupport; }
39485/* harmony export */ });
39486/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
39487
39488let support;
39489
39490function calcSupport() {
39491  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39492  const document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)();
39493  return {
39494    smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,
39495    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),
39496    passiveListener: function checkPassiveListener() {
39497      let supportsPassive = false;
39498
39499      try {
39500        const opts = Object.defineProperty({}, 'passive', {
39501          // eslint-disable-next-line
39502          get() {
39503            supportsPassive = true;
39504          }
39505
39506        });
39507        window.addEventListener('testPassiveListener', null, opts);
39508      } catch (e) {// No support
39509      }
39510
39511      return supportsPassive;
39512    }(),
39513    gestures: function checkGestures() {
39514      return 'ongesturestart' in window;
39515    }()
39516  };
39517}
39518
39519function getSupport() {
39520  if (!support) {
39521    support = calcSupport();
39522  }
39523
39524  return support;
39525}
39526
39527
39528
39529/***/ }),
39530
vendor: 7,313 bytes, lines 39531-39759
39531/***/ "./node_modules/swiper/shared/utils.js":
39532/*!*********************************************!*\
39533  !*** ./node_modules/swiper/shared/utils.js ***!
39534  \*********************************************/
39535/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39536
39537"use strict";
39538__webpack_require__.r(__webpack_exports__);
39539/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39540/* harmony export */   "animateCSSModeScroll": function() { return /* binding */ animateCSSModeScroll; },
39541/* harmony export */   "deleteProps": function() { return /* binding */ deleteProps; },
39542/* harmony export */   "nextTick": function() { return /* binding */ nextTick; },
39543/* harmony export */   "now": function() { return /* binding */ now; },
39544/* harmony export */   "getTranslate": function() { return /* binding */ getTranslate; },
39545/* harmony export */   "isObject": function() { return /* binding */ isObject; },
39546/* harmony export */   "extend": function() { return /* binding */ extend; },
39547/* harmony export */   "getComputedStyle": function() { return /* binding */ getComputedStyle; },
39548/* harmony export */   "setCSSProperty": function() { return /* binding */ setCSSProperty; }
39549/* harmony export */ });
39550/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js");
39551
39552
39553function deleteProps(obj) {
39554  const object = obj;
39555  Object.keys(object).forEach(key => {
39556    try {
39557      object[key] = null;
39558    } catch (e) {// no getter for object
39559    }
39560
39561    try {
39562      delete object[key];
39563    } catch (e) {// something got wrong
39564    }
39565  });
39566}
39567
39568function nextTick(callback, delay) {
39569  if (delay === void 0) {
39570    delay = 0;
39571  }
39572
39573  return setTimeout(callback, delay);
39574}
39575
39576function now() {
39577  return Date.now();
39578}
39579
39580function getComputedStyle(el) {
39581  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39582  let style;
39583
39584  if (window.getComputedStyle) {
39585    style = window.getComputedStyle(el, null);
39586  }
39587
39588  if (!style && el.currentStyle) {
39589    style = el.currentStyle;
39590  }
39591
39592  if (!style) {
39593    style = el.style;
39594  }
39595
39596  return style;
39597}
39598
39599function getTranslate(el, axis) {
39600  if (axis === void 0) {
39601    axis = 'x';
39602  }
39603
39604  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39605  let matrix;
39606  let curTransform;
39607  let transformMatrix;
39608  const curStyle = getComputedStyle(el, null);
39609
39610  if (window.WebKitCSSMatrix) {
39611    curTransform = curStyle.transform || curStyle.webkitTransform;
39612
39613    if (curTransform.split(',').length > 6) {
39614      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
39615    } // Some old versions of Webkit choke when 'none' is passed; pass
39616    // empty string instead in this case
39617
39618
39619    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
39620  } else {
39621    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
39622    matrix = transformMatrix.toString().split(',');
39623  }
39624
39625  if (axis === 'x') {
39626    // Latest Chrome and webkits Fix
39627    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix
39628    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers
39629    else curTransform = parseFloat(matrix[4]);
39630  }
39631
39632  if (axis === 'y') {
39633    // Latest Chrome and webkits Fix
39634    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix
39635    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers
39636    else curTransform = parseFloat(matrix[5]);
39637  }
39638
39639  return curTransform || 0;
39640}
39641
39642function isObject(o) {
39643  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
39644}
39645
39646function isNode(node) {
39647  // eslint-disable-next-line
39648  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
39649    return node instanceof HTMLElement;
39650  }
39651
39652  return node && (node.nodeType === 1 || node.nodeType === 11);
39653}
39654
39655function extend() {
39656  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
39657  const noExtend = ['__proto__', 'constructor', 'prototype'];
39658
39659  for (let i = 1; i < arguments.length; i += 1) {
39660    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
39661
39662    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
39663      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
39664
39665      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
39666        const nextKey = keysArray[nextIndex];
39667        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
39668
39669        if (desc !== undefined && desc.enumerable) {
39670          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
39671            if (nextSource[nextKey].__swiper__) {
39672              to[nextKey] = nextSource[nextKey];
39673            } else {
39674              extend(to[nextKey], nextSource[nextKey]);
39675            }
39676          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
39677            to[nextKey] = {};
39678
39679            if (nextSource[nextKey].__swiper__) {
39680              to[nextKey] = nextSource[nextKey];
39681            } else {
39682              extend(to[nextKey], nextSource[nextKey]);
39683            }
39684          } else {
39685            to[nextKey] = nextSource[nextKey];
39686          }
39687        }
39688      }
39689    }
39690  }
39691
39692  return to;
39693}
39694
39695function setCSSProperty(el, varName, varValue) {
39696  el.style.setProperty(varName, varValue);
39697}
39698
39699function animateCSSModeScroll(_ref) {
39700  let {
39701    swiper,
39702    targetPosition,
39703    side
39704  } = _ref;
39705  const window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)();
39706  const startPosition = -swiper.translate;
39707  let startTime = null;
39708  let time;
39709  const duration = swiper.params.speed;
39710  swiper.wrapperEl.style.scrollSnapType = 'none';
39711  window.cancelAnimationFrame(swiper.cssModeFrameID);
39712  const dir = targetPosition > startPosition ? 'next' : 'prev';
39713
39714  const isOutOfBound = (current, target) => {
39715    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
39716  };
39717
39718  const animate = () => {
39719    time = new Date().getTime();
39720
39721    if (startTime === null) {
39722      startTime = time;
39723    }
39724
39725    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
39726    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
39727    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
39728
39729    if (isOutOfBound(currentPosition, targetPosition)) {
39730      currentPosition = targetPosition;
39731    }
39732
39733    swiper.wrapperEl.scrollTo({
39734      [side]: currentPosition
39735    });
39736
39737    if (isOutOfBound(currentPosition, targetPosition)) {
39738      swiper.wrapperEl.style.overflow = 'hidden';
39739      swiper.wrapperEl.style.scrollSnapType = '';
39740      setTimeout(() => {
39741        swiper.wrapperEl.style.overflow = '';
39742        swiper.wrapperEl.scrollTo({
39743          [side]: currentPosition
39744        });
39745      });
39746      window.cancelAnimationFrame(swiper.cssModeFrameID);
39747      return;
39748    }
39749
39750    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
39751  };
39752
39753  animate();
39754}
39755
39756
39757
39758/***/ }),
39759
vendor: 9,772 bytes, lines 39760-39859
39760/***/ "./node_modules/swiper/swiper.esm.js":
39761/*!*******************************************!*\
39762  !*** ./node_modules/swiper/swiper.esm.js ***!
39763  \*******************************************/
39764/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
39765
39766"use strict";
39767__webpack_require__.r(__webpack_exports__);
39768/* harmony export */ __webpack_require__.d(__webpack_exports__, {
39769/* harmony export */   "Swiper": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; },
39770/* harmony export */   "default": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; },
39771/* harmony export */   "Virtual": function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__["default"]; },
39772/* harmony export */   "Keyboard": function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__["default"]; },
39773/* harmony export */   "Mousewheel": function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__["default"]; },
39774/* harmony export */   "Navigation": function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"]; },
39775/* harmony export */   "Pagination": function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__["default"]; },
39776/* harmony export */   "Scrollbar": function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__["default"]; },
39777/* harmony export */   "Parallax": function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__["default"]; },
39778/* harmony export */   "Zoom": function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__["default"]; },
39779/* harmony export */   "Lazy": function() { return /* reexport safe */ _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__["default"]; },
39780/* harmony export */   "Controller": function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__["default"]; },
39781/* harmony export */   "A11y": function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__["default"]; },
39782/* harmony export */   "History": function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__["default"]; },
39783/* harmony export */   "HashNavigation": function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__["default"]; },
39784/* harmony export */   "Autoplay": function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__["default"]; },
39785/* harmony export */   "Thumbs": function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__["default"]; },
39786/* harmony export */   "FreeMode": function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__["default"]; },
39787/* harmony export */   "Grid": function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__["default"]; },
39788/* harmony export */   "Manipulation": function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__["default"]; },
39789/* harmony export */   "EffectFade": function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__["default"]; },
39790/* harmony export */   "EffectCube": function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__["default"]; },
39791/* harmony export */   "EffectFlip": function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__["default"]; },
39792/* harmony export */   "EffectCoverflow": function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__["default"]; },
39793/* harmony export */   "EffectCreative": function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__["default"]; },
39794/* harmony export */   "EffectCards": function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__["default"]; }
39795/* harmony export */ });
39796/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ "./node_modules/swiper/core/core.js");
39797/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ "./node_modules/swiper/modules/virtual/virtual.js");
39798/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ "./node_modules/swiper/modules/keyboard/keyboard.js");
39799/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ "./node_modules/swiper/modules/mousewheel/mousewheel.js");
39800/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ "./node_modules/swiper/modules/navigation/navigation.js");
39801/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ "./node_modules/swiper/modules/pagination/pagination.js");
39802/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ "./node_modules/swiper/modules/scrollbar/scrollbar.js");
39803/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ "./node_modules/swiper/modules/parallax/parallax.js");
39804/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ "./node_modules/swiper/modules/zoom/zoom.js");
39805/* harmony import */ var _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/lazy/lazy.js */ "./node_modules/swiper/modules/lazy/lazy.js");
39806/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/controller/controller.js */ "./node_modules/swiper/modules/controller/controller.js");
39807/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ "./node_modules/swiper/modules/a11y/a11y.js");
39808/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/history/history.js */ "./node_modules/swiper/modules/history/history.js");
39809/* harmony import */ var _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/hash-navigation/hash-navigation.js */ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js");
39810/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ "./node_modules/swiper/modules/autoplay/autoplay.js");
39811/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ "./node_modules/swiper/modules/thumbs/thumbs.js");
39812/* harmony import */ var _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/free-mode/free-mode.js */ "./node_modules/swiper/modules/free-mode/free-mode.js");
39813/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/grid/grid.js */ "./node_modules/swiper/modules/grid/grid.js");
39814/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ "./node_modules/swiper/modules/manipulation/manipulation.js");
39815/* harmony import */ var _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-fade/effect-fade.js */ "./node_modules/swiper/modules/effect-fade/effect-fade.js");
39816/* harmony import */ var _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-cube/effect-cube.js */ "./node_modules/swiper/modules/effect-cube/effect-cube.js");
39817/* harmony import */ var _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-flip/effect-flip.js */ "./node_modules/swiper/modules/effect-flip/effect-flip.js");
39818/* harmony import */ var _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-coverflow/effect-coverflow.js */ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js");
39819/* harmony import */ var _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-creative/effect-creative.js */ "./node_modules/swiper/modules/effect-creative/effect-creative.js");
39820/* harmony import */ var _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/effect-cards/effect-cards.js */ "./node_modules/swiper/modules/effect-cards/effect-cards.js");
39821/**
39822 * Swiper 8.1.5
39823 * Most modern mobile touch slider and framework with hardware accelerated transitions
39824 * https://swiperjs.com
39825 *
39826 * Copyright 2014-2022 Vladimir Kharlampidi
39827 *
39828 * Released under the MIT License
39829 *
39830 * Released on: May 16, 2022
39831 */
39832
39833
39834
39835
39836
39837
39838
39839
39840
39841
39842
39843
39844
39845
39846
39847
39848
39849
39850
39851
39852
39853
39854
39855
39856
39857
39858
39859/***/ })
39859
39860
39861},
39862/******/ function(__webpack_require__) { // webpackRuntimeModules
39863/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
39864/******/ var __webpack_exports__ = (__webpack_exec__("./assets/child/WaveElektroWandelt/build/app.js"));
39865/******/ }
39866]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.