{
  "version": 3,
  "sources": ["/cdn/shop/t/967/assets/theme.legacy.js?utm_bot_source=7516fd43adaa"],
  "sourcesContent": ["/******/ (() => { // webpackBootstrap\r\n/******/ \tvar __webpack_modules__ = ({\r\n\r\n/***/ 741:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\r\n * matchesSelector v2.0.2\r\n * matchesSelector( element, '.selector' )\r\n * MIT license\r\n */\r\n\r\n\t\t\t\t/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t/*global define: false, module: false */\r\n\t\t\t\t\t'use strict';\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\r\n\t\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(window, function factory() {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\tvar matchesMethod = (function () {\r\n\t\t\t\t\t\tvar ElemProto = window.Element.prototype;\r\n\t\t\t\t\t\t// check for the standard method name first\r\n\t\t\t\t\t\tif (ElemProto.matches) {\r\n\t\t\t\t\t\t\treturn 'matches';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// check un-prefixed\r\n\t\t\t\t\t\tif (ElemProto.matchesSelector) {\r\n\t\t\t\t\t\t\treturn 'matchesSelector';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// check vendor prefixes\r\n\t\t\t\t\t\tvar prefixes = ['webkit', 'moz', 'ms', 'o'];\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < prefixes.length; i++) {\r\n\t\t\t\t\t\t\tvar prefix = prefixes[i];\r\n\t\t\t\t\t\t\tvar method = prefix + 'MatchesSelector';\r\n\t\t\t\t\t\t\tif (ElemProto[method]) {\r\n\t\t\t\t\t\t\t\treturn method;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})();\r\n\r\n\t\t\t\t\treturn function matchesSelector(elem, selector) {\r\n\t\t\t\t\t\treturn elem[matchesMethod](selector);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 158:\r\n/***/ (function (module, exports, __webpack_require__) {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\r\n\r\n\t\t\t\t/* jshint unused: true, undef: true, strict: true */\r\n\r\n\t\t\t\t(function (global, factory) {\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\t/* jshint strict: false */ /* globals define, module, window */\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD - RequireJS\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\r\n\t\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(typeof window != 'undefined' ? window : this, function () {\r\n\r\n\t\t\t\t\t\"use strict\";\r\n\r\n\t\t\t\t\tfunction EvEmitter() { }\r\n\r\n\t\t\t\t\tvar proto = EvEmitter.prototype;\r\n\r\n\t\t\t\t\tproto.on = function (eventName, listener) {\r\n\t\t\t\t\t\tif (!eventName || !listener) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// set events hash\r\n\t\t\t\t\t\tvar events = this._events = this._events || {};\r\n\t\t\t\t\t\t// set listeners array\r\n\t\t\t\t\t\tvar listeners = events[eventName] = events[eventName] || [];\r\n\t\t\t\t\t\t// only add once\r\n\t\t\t\t\t\tif (listeners.indexOf(listener) == -1) {\r\n\t\t\t\t\t\t\tlisteners.push(listener);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.once = function (eventName, listener) {\r\n\t\t\t\t\t\tif (!eventName || !listener) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// add event\r\n\t\t\t\t\t\tthis.on(eventName, listener);\r\n\t\t\t\t\t\t// set once flag\r\n\t\t\t\t\t\t// set onceEvents hash\r\n\t\t\t\t\t\tvar onceEvents = this._onceEvents = this._onceEvents || {};\r\n\t\t\t\t\t\t// set onceListeners object\r\n\t\t\t\t\t\tvar onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};\r\n\t\t\t\t\t\t// set flag\r\n\t\t\t\t\t\tonceListeners[listener] = true;\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.off = function (eventName, listener) {\r\n\t\t\t\t\t\tvar listeners = this._events && this._events[eventName];\r\n\t\t\t\t\t\tif (!listeners || !listeners.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar index = listeners.indexOf(listener);\r\n\t\t\t\t\t\tif (index != -1) {\r\n\t\t\t\t\t\t\tlisteners.splice(index, 1);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.emitEvent = function (eventName, args) {\r\n\t\t\t\t\t\tvar listeners = this._events && this._events[eventName];\r\n\t\t\t\t\t\tif (!listeners || !listeners.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// copy over to avoid interference if .off() in listener\r\n\t\t\t\t\t\tlisteners = listeners.slice(0);\r\n\t\t\t\t\t\targs = args || [];\r\n\t\t\t\t\t\t// once stuff\r\n\t\t\t\t\t\tvar onceListeners = this._onceEvents && this._onceEvents[eventName];\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < listeners.length; i++) {\r\n\t\t\t\t\t\t\tvar listener = listeners[i]\r\n\t\t\t\t\t\t\tvar isOnce = onceListeners && onceListeners[listener];\r\n\t\t\t\t\t\t\tif (isOnce) {\r\n\t\t\t\t\t\t\t\t// remove listener\r\n\t\t\t\t\t\t\t\t// remove before trigger to prevent recursion\r\n\t\t\t\t\t\t\t\tthis.off(eventName, listener);\r\n\t\t\t\t\t\t\t\t// unset once flag\r\n\t\t\t\t\t\t\t\tdelete onceListeners[listener];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// trigger listener\r\n\t\t\t\t\t\t\tlistener.apply(this, args);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.allOff = function () {\r\n\t\t\t\t\t\tdelete this._events;\r\n\t\t\t\t\t\tdelete this._onceEvents;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\treturn EvEmitter;\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 506:\r\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\r\n\r\n/* provided dependency */ var jQuery = __webpack_require__(755);\r\n\t\t\t\t/*!\r\n\t\t\t\t * fancyBox - jQuery Plugin\r\n\t\t\t\t * version: 2.1.5 (Fri, 14 Jun 2013)\r\n\t\t\t\t * requires jQuery v1.6 or later\r\n\t\t\t\t *\r\n\t\t\t\t * Examples at http://fancyapps.com/fancybox/\r\n\t\t\t\t * License: www.fancyapps.com/fancybox/#license\r\n\t\t\t\t *\r\n\t\t\t\t * Copyright 2012 Janis Skarnelis - janis@fancyapps.com\r\n\t\t\t\t *\r\n\t\t\t\t */\r\n\r\n\t\t\t\t; (function (window, document, $, undefined) {\r\n\t\t\t\t\t\"use strict\";\r\n\r\n\t\t\t\t\tvar H = $(\"html\"),\r\n\t\t\t\t\t\tW = $(window),\r\n\t\t\t\t\t\tD = $(document),\r\n\t\t\t\t\t\tF = $.fancybox = function () {\r\n\t\t\t\t\t\t\tF.open.apply(this, arguments);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tIE = navigator.userAgent.match(/msie/i),\r\n\t\t\t\t\t\tdidUpdate = null,\r\n\t\t\t\t\t\tisTouch = document.createTouch !== undefined,\r\n\r\n\t\t\t\t\t\tisQuery = function (obj) {\r\n\t\t\t\t\t\t\treturn obj && obj.hasOwnProperty && obj instanceof $;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tisString = function (str) {\r\n\t\t\t\t\t\t\treturn str && $.type(str) === \"string\";\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tisPercentage = function (str) {\r\n\t\t\t\t\t\t\treturn isString(str) && str.indexOf('%') > 0;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tisScrollable = function (el) {\r\n\t\t\t\t\t\t\treturn (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetScalar = function (orig, dim) {\r\n\t\t\t\t\t\t\tvar value = parseInt(orig, 10) || 0;\r\n\r\n\t\t\t\t\t\t\tif (dim && isPercentage(orig)) {\r\n\t\t\t\t\t\t\t\tvalue = F.getViewport()[dim] / 100 * value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn Math.ceil(value);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tgetValue = function (value, dim) {\r\n\t\t\t\t\t\t\treturn getScalar(value, dim) + 'px';\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$.extend(F, {\r\n\t\t\t\t\t\t// The current version of fancyBox\r\n\t\t\t\t\t\tversion: '2.1.5',\r\n\r\n\t\t\t\t\t\tdefaults: {\r\n\t\t\t\t\t\t\tpadding: 15,\r\n\t\t\t\t\t\t\tmargin: 20,\r\n\r\n\t\t\t\t\t\t\twidth: 800,\r\n\t\t\t\t\t\t\theight: 600,\r\n\t\t\t\t\t\t\tminWidth: 100,\r\n\t\t\t\t\t\t\tminHeight: 100,\r\n\t\t\t\t\t\t\tmaxWidth: 9999,\r\n\t\t\t\t\t\t\tmaxHeight: 9999,\r\n\t\t\t\t\t\t\tpixelRatio: 1, // Set to 2 for retina display support\r\n\r\n\t\t\t\t\t\t\tautoSize: true,\r\n\t\t\t\t\t\t\tautoHeight: false,\r\n\t\t\t\t\t\t\tautoWidth: false,\r\n\r\n\t\t\t\t\t\t\tautoResize: true,\r\n\t\t\t\t\t\t\tautoCenter: !isTouch,\r\n\t\t\t\t\t\t\tfitToView: true,\r\n\t\t\t\t\t\t\taspectRatio: false,\r\n\t\t\t\t\t\t\ttopRatio: 0.5,\r\n\t\t\t\t\t\t\tleftRatio: 0.5,\r\n\r\n\t\t\t\t\t\t\tscrolling: 'auto', // 'auto', 'yes' or 'no'\r\n\t\t\t\t\t\t\twrapCSS: '',\r\n\r\n\t\t\t\t\t\t\tarrows: true,\r\n\t\t\t\t\t\t\tcloseBtn: true,\r\n\t\t\t\t\t\t\tcloseClick: false,\r\n\t\t\t\t\t\t\tnextClick: false,\r\n\t\t\t\t\t\t\tmouseWheel: true,\r\n\t\t\t\t\t\t\tautoPlay: false,\r\n\t\t\t\t\t\t\tplaySpeed: 3000,\r\n\t\t\t\t\t\t\tpreload: 3,\r\n\t\t\t\t\t\t\tmodal: false,\r\n\t\t\t\t\t\t\tloop: true,\r\n\r\n\t\t\t\t\t\t\tajax: {\r\n\t\t\t\t\t\t\t\tdataType: 'html',\r\n\t\t\t\t\t\t\t\theaders: { 'X-fancyBox': true }\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tiframe: {\r\n\t\t\t\t\t\t\t\tscrolling: 'auto',\r\n\t\t\t\t\t\t\t\tpreload: true\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tswf: {\r\n\t\t\t\t\t\t\t\twmode: 'transparent',\r\n\t\t\t\t\t\t\t\tallowfullscreen: 'true',\r\n\t\t\t\t\t\t\t\tallowscriptaccess: 'always'\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tkeys: {\r\n\t\t\t\t\t\t\t\tnext: {\r\n\t\t\t\t\t\t\t\t\t13: 'left', // enter\r\n\t\t\t\t\t\t\t\t\t34: 'up',   // page down\r\n\t\t\t\t\t\t\t\t\t39: 'left', // right arrow\r\n\t\t\t\t\t\t\t\t\t40: 'up'    // down arrow\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tprev: {\r\n\t\t\t\t\t\t\t\t\t8: 'right',  // backspace\r\n\t\t\t\t\t\t\t\t\t33: 'down',   // page up\r\n\t\t\t\t\t\t\t\t\t37: 'right',  // left arrow\r\n\t\t\t\t\t\t\t\t\t38: 'down'    // up arrow\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tclose: [27], // escape key\r\n\t\t\t\t\t\t\t\tplay: [32], // space - start/stop slideshow\r\n\t\t\t\t\t\t\t\ttoggle: [70]  // letter \"f\" - toggle fullscreen\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tdirection: {\r\n\t\t\t\t\t\t\t\tnext: 'left',\r\n\t\t\t\t\t\t\t\tprev: 'right'\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tscrollOutside: true,\r\n\r\n\t\t\t\t\t\t\t// Override some properties\r\n\t\t\t\t\t\t\tindex: 0,\r\n\t\t\t\t\t\t\ttype: null,\r\n\t\t\t\t\t\t\thref: null,\r\n\t\t\t\t\t\t\tcontent: null,\r\n\t\t\t\t\t\t\ttitle: null,\r\n\r\n\t\t\t\t\t\t\t// HTML templates\r\n\t\t\t\t\t\t\ttpl: {\r\n\t\t\t\t\t\t\t\twrap: '<div class=\"fancybox-wrap\" tabIndex=\"-1\"><div class=\"fancybox-skin\"><div class=\"fancybox-outer\"><div class=\"fancybox-inner\"></div></div></div></div>',\r\n\t\t\t\t\t\t\t\timage: '<img class=\"fancybox-image\" src=\"{href}\" alt=\"\" />',\r\n\t\t\t\t\t\t\t\tiframe: '<iframe id=\"fancybox-frame{rnd}\" name=\"fancybox-frame{rnd}\" class=\"fancybox-iframe\" frameborder=\"0\" vspace=\"0\" hspace=\"0\" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency=\"true\"' : '') + '></iframe>',\r\n\t\t\t\t\t\t\t\terror: '<p class=\"fancybox-error\">The requested content cannot be loaded.<br/>Please try again later.</p>',\r\n\t\t\t\t\t\t\t\tcloseBtn: '<a title=\"Close\" class=\"fancybox-item fancybox-close\" href=\"javascript:;\"></a>',\r\n\t\t\t\t\t\t\t\tnext: '<a title=\"Next\" class=\"fancybox-nav fancybox-next\" href=\"javascript:;\"><span></span></a>',\r\n\t\t\t\t\t\t\t\tprev: '<a title=\"Previous\" class=\"fancybox-nav fancybox-prev\" href=\"javascript:;\"><span></span></a>',\r\n\t\t\t\t\t\t\t\tloading: '<div id=\"fancybox-loading\"><div></div></div>'\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Properties for each animation type\r\n\t\t\t\t\t\t\t// Opening fancyBox\r\n\t\t\t\t\t\t\topenEffect: 'fade', // 'elastic', 'fade' or 'none'\r\n\t\t\t\t\t\t\topenSpeed: 250,\r\n\t\t\t\t\t\t\topenEasing: 'swing',\r\n\t\t\t\t\t\t\topenOpacity: true,\r\n\t\t\t\t\t\t\topenMethod: 'zoomIn',\r\n\r\n\t\t\t\t\t\t\t// Closing fancyBox\r\n\t\t\t\t\t\t\tcloseEffect: 'fade', // 'elastic', 'fade' or 'none'\r\n\t\t\t\t\t\t\tcloseSpeed: 250,\r\n\t\t\t\t\t\t\tcloseEasing: 'swing',\r\n\t\t\t\t\t\t\tcloseOpacity: true,\r\n\t\t\t\t\t\t\tcloseMethod: 'zoomOut',\r\n\r\n\t\t\t\t\t\t\t// Changing next gallery item\r\n\t\t\t\t\t\t\tnextEffect: 'elastic', // 'elastic', 'fade' or 'none'\r\n\t\t\t\t\t\t\tnextSpeed: 250,\r\n\t\t\t\t\t\t\tnextEasing: 'swing',\r\n\t\t\t\t\t\t\tnextMethod: 'changeIn',\r\n\r\n\t\t\t\t\t\t\t// Changing previous gallery item\r\n\t\t\t\t\t\t\tprevEffect: 'elastic', // 'elastic', 'fade' or 'none'\r\n\t\t\t\t\t\t\tprevSpeed: 250,\r\n\t\t\t\t\t\t\tprevEasing: 'swing',\r\n\t\t\t\t\t\t\tprevMethod: 'changeOut',\r\n\r\n\t\t\t\t\t\t\t// Enable default helpers\r\n\t\t\t\t\t\t\thelpers: {\r\n\t\t\t\t\t\t\t\toverlay: true,\r\n\t\t\t\t\t\t\t\ttitle: true\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Callbacks\r\n\t\t\t\t\t\t\tonCancel: $.noop, // If canceling\r\n\t\t\t\t\t\t\tbeforeLoad: $.noop, // Before loading\r\n\t\t\t\t\t\t\tafterLoad: $.noop, // After loading\r\n\t\t\t\t\t\t\tbeforeShow: $.noop, // Before changing in current item\r\n\t\t\t\t\t\t\tafterShow: $.noop, // After opening\r\n\t\t\t\t\t\t\tbeforeChange: $.noop, // Before changing gallery item\r\n\t\t\t\t\t\t\tbeforeClose: $.noop, // Before closing\r\n\t\t\t\t\t\t\tafterClose: $.noop  // After closing\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t//Current state\r\n\t\t\t\t\t\tgroup: {}, // Selected group\r\n\t\t\t\t\t\topts: {}, // Group options\r\n\t\t\t\t\t\tprevious: null,  // Previous element\r\n\t\t\t\t\t\tcoming: null,  // Element being loaded\r\n\t\t\t\t\t\tcurrent: null,  // Currently loaded element\r\n\t\t\t\t\t\tisActive: false, // Is activated\r\n\t\t\t\t\t\tisOpen: false, // Is currently open\r\n\t\t\t\t\t\tisOpened: false, // Have been fully opened at least once\r\n\r\n\t\t\t\t\t\twrap: null,\r\n\t\t\t\t\t\tskin: null,\r\n\t\t\t\t\t\touter: null,\r\n\t\t\t\t\t\tinner: null,\r\n\r\n\t\t\t\t\t\tplayer: {\r\n\t\t\t\t\t\t\ttimer: null,\r\n\t\t\t\t\t\t\tisActive: false\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Loaders\r\n\t\t\t\t\t\tajaxLoad: null,\r\n\t\t\t\t\t\timgPreload: null,\r\n\r\n\t\t\t\t\t\t// Some collections\r\n\t\t\t\t\t\ttransitions: {},\r\n\t\t\t\t\t\thelpers: {},\r\n\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t *\tStatic methods\r\n\t\t\t\t\t\t */\r\n\r\n\t\t\t\t\t\topen: function (group, opts) {\r\n\t\t\t\t\t\t\tif (!group) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!$.isPlainObject(opts)) {\r\n\t\t\t\t\t\t\t\topts = {};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Close if already active\r\n\t\t\t\t\t\t\tif (false === F.close(true)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Normalize group\r\n\t\t\t\t\t\t\tif (!$.isArray(group)) {\r\n\t\t\t\t\t\t\t\tgroup = isQuery(group) ? $(group).get() : [group];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Recheck if the type of each element is `object` and set content type (image, ajax, etc)\r\n\t\t\t\t\t\t\t$.each(group, function (i, element) {\r\n\t\t\t\t\t\t\t\tvar obj = {},\r\n\t\t\t\t\t\t\t\t\thref,\r\n\t\t\t\t\t\t\t\t\ttitle,\r\n\t\t\t\t\t\t\t\t\tcontent,\r\n\t\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\t\trez,\r\n\t\t\t\t\t\t\t\t\threfParts,\r\n\t\t\t\t\t\t\t\t\tselector;\r\n\r\n\t\t\t\t\t\t\t\tif ($.type(element) === \"object\") {\r\n\t\t\t\t\t\t\t\t\t// Check if is DOM element\r\n\t\t\t\t\t\t\t\t\tif (element.nodeType) {\r\n\t\t\t\t\t\t\t\t\t\telement = $(element);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (isQuery(element)) {\r\n\t\t\t\t\t\t\t\t\t\tobj = {\r\n\t\t\t\t\t\t\t\t\t\t\thref: element.data('fancybox-href') || element.attr('href'),\r\n\t\t\t\t\t\t\t\t\t\t\ttitle: $('<div/>').text(element.data('fancybox-title') || element.attr('title') || '').html(),\r\n\t\t\t\t\t\t\t\t\t\t\tisDom: true,\r\n\t\t\t\t\t\t\t\t\t\t\telement: element\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\tif ($.metadata) {\r\n\t\t\t\t\t\t\t\t\t\t\t$.extend(true, obj, element.metadata());\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tobj = element;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\thref = opts.href || obj.href || (isString(element) ? element : null);\r\n\t\t\t\t\t\t\t\ttitle = opts.title !== undefined ? opts.title : obj.title || '';\r\n\r\n\t\t\t\t\t\t\t\tcontent = opts.content || obj.content;\r\n\t\t\t\t\t\t\t\ttype = content ? 'html' : (opts.type || obj.type);\r\n\r\n\t\t\t\t\t\t\t\tif (!type && obj.isDom) {\r\n\t\t\t\t\t\t\t\t\ttype = element.data('fancybox-type');\r\n\r\n\t\t\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\t\t\trez = element.prop('class').match(/fancybox\\.(\\w+)/);\r\n\t\t\t\t\t\t\t\t\t\ttype = rez ? rez[1] : null;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (isString(href)) {\r\n\t\t\t\t\t\t\t\t\t// Try to guess the content type\r\n\t\t\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\t\t\tif (F.isImage(href)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttype = 'image';\r\n\r\n\t\t\t\t\t\t\t\t\t\t} else if (F.isSWF(href)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttype = 'swf';\r\n\r\n\t\t\t\t\t\t\t\t\t\t} else if (href.charAt(0) === '#') {\r\n\t\t\t\t\t\t\t\t\t\t\ttype = 'inline';\r\n\r\n\t\t\t\t\t\t\t\t\t\t} else if (isString(element)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttype = 'html';\r\n\t\t\t\t\t\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Split url into two pieces with source url and content selector, e.g,\r\n\t\t\t\t\t\t\t\t\t// \"/mypage.html #my_id\" will load \"/mypage.html\" and display element having id \"my_id\"\r\n\t\t\t\t\t\t\t\t\tif (type === 'ajax') {\r\n\t\t\t\t\t\t\t\t\t\threfParts = href.split(/\\s+/, 2);\r\n\t\t\t\t\t\t\t\t\t\thref = hrefParts.shift();\r\n\t\t\t\t\t\t\t\t\t\tselector = hrefParts.shift();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!content) {\r\n\t\t\t\t\t\t\t\t\tif (type === 'inline') {\r\n\t\t\t\t\t\t\t\t\t\tif (href) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontent = $(isString(href) ? href.replace(/.*(?=#[^\\s]+$)/, '') : href); //strip for ie7\r\n\r\n\t\t\t\t\t\t\t\t\t\t} else if (obj.isDom) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t} else if (type === 'html') {\r\n\t\t\t\t\t\t\t\t\t\tcontent = href;\r\n\r\n\t\t\t\t\t\t\t\t\t} else if (!type && !href && obj.isDom) {\r\n\t\t\t\t\t\t\t\t\t\ttype = 'inline';\r\n\t\t\t\t\t\t\t\t\t\tcontent = element;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$.extend(obj, {\r\n\t\t\t\t\t\t\t\t\thref: href,\r\n\t\t\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\t\t\tcontent: content,\r\n\t\t\t\t\t\t\t\t\ttitle: title,\r\n\t\t\t\t\t\t\t\t\tselector: selector\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tgroup[i] = obj;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Extend the defaults\r\n\t\t\t\t\t\t\tF.opts = $.extend(true, {}, F.defaults, opts);\r\n\r\n\t\t\t\t\t\t\t// All options are merged recursive except keys\r\n\t\t\t\t\t\t\tif (opts.keys !== undefined) {\r\n\t\t\t\t\t\t\t\tF.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.group = group;\r\n\r\n\t\t\t\t\t\t\treturn F._start(F.opts.index);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Cancel image loading or abort ajax request\r\n\t\t\t\t\t\tcancel: function () {\r\n\t\t\t\t\t\t\tvar coming = F.coming;\r\n\r\n\t\t\t\t\t\t\tif (coming && false === F.trigger('onCancel')) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.hideLoading();\r\n\r\n\t\t\t\t\t\t\tif (!coming) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (F.ajaxLoad) {\r\n\t\t\t\t\t\t\t\tF.ajaxLoad.abort();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.ajaxLoad = null;\r\n\r\n\t\t\t\t\t\t\tif (F.imgPreload) {\r\n\t\t\t\t\t\t\t\tF.imgPreload.onload = F.imgPreload.onerror = null;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (coming.wrap) {\r\n\t\t\t\t\t\t\t\tcoming.wrap.stop(true, true).trigger('onReset').remove();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t\t\t\t// If the first item has been canceled, then clear everything\r\n\t\t\t\t\t\t\tif (!F.current) {\r\n\t\t\t\t\t\t\t\tF._afterZoomOut(coming);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Start closing animation if is open; remove immediately if opening/closing\r\n\t\t\t\t\t\tclose: function (event) {\r\n\t\t\t\t\t\t\tF.cancel();\r\n\r\n\t\t\t\t\t\t\tif (false === F.trigger('beforeClose')) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.unbindEvents();\r\n\r\n\t\t\t\t\t\t\tif (!F.isActive) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!F.isOpen || event === true) {\r\n\t\t\t\t\t\t\t\t$('.fancybox-wrap').stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t\t\t\t\t\tF._afterZoomOut();\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tF.isOpen = F.isOpened = false;\r\n\t\t\t\t\t\t\t\tF.isClosing = true;\r\n\r\n\t\t\t\t\t\t\t\t$('.fancybox-item, .fancybox-nav').remove();\r\n\r\n\t\t\t\t\t\t\t\tF.wrap.stop(true, true).removeClass('fancybox-opened');\r\n\r\n\t\t\t\t\t\t\t\tF.transitions[F.current.closeMethod]();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Manage slideshow:\r\n\t\t\t\t\t\t//   $.fancybox.play(); - toggle slideshow\r\n\t\t\t\t\t\t//   $.fancybox.play( true ); - start\r\n\t\t\t\t\t\t//   $.fancybox.play( false ); - stop\r\n\t\t\t\t\t\tplay: function (action) {\r\n\t\t\t\t\t\t\tvar clear = function () {\r\n\t\t\t\t\t\t\t\tclearTimeout(F.player.timer);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tset = function () {\r\n\t\t\t\t\t\t\t\t\tclear();\r\n\r\n\t\t\t\t\t\t\t\t\tif (F.current && F.player.isActive) {\r\n\t\t\t\t\t\t\t\t\t\tF.player.timer = setTimeout(F.next, F.current.playSpeed);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tstop = function () {\r\n\t\t\t\t\t\t\t\t\tclear();\r\n\r\n\t\t\t\t\t\t\t\t\tD.unbind('.player');\r\n\r\n\t\t\t\t\t\t\t\t\tF.player.isActive = false;\r\n\r\n\t\t\t\t\t\t\t\t\tF.trigger('onPlayEnd');\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tstart = function () {\r\n\t\t\t\t\t\t\t\t\tif (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {\r\n\t\t\t\t\t\t\t\t\t\tF.player.isActive = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\tD.bind({\r\n\t\t\t\t\t\t\t\t\t\t\t'onCancel.player beforeClose.player': stop,\r\n\t\t\t\t\t\t\t\t\t\t\t'onUpdate.player': set,\r\n\t\t\t\t\t\t\t\t\t\t\t'beforeLoad.player': clear\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\tset();\r\n\r\n\t\t\t\t\t\t\t\t\t\tF.trigger('onPlayStart');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (action === true || (!F.player.isActive && action !== false)) {\r\n\t\t\t\t\t\t\t\tstart();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstop();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Navigate to next gallery item\r\n\t\t\t\t\t\tnext: function (direction) {\r\n\t\t\t\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\t\t\t\tif (current) {\r\n\t\t\t\t\t\t\t\tif (!isString(direction)) {\r\n\t\t\t\t\t\t\t\t\tdirection = current.direction.next;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tF.jumpto(current.index + 1, direction, 'next');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Navigate to previous gallery item\r\n\t\t\t\t\t\tprev: function (direction) {\r\n\t\t\t\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\t\t\t\tif (current) {\r\n\t\t\t\t\t\t\t\tif (!isString(direction)) {\r\n\t\t\t\t\t\t\t\t\tdirection = current.direction.prev;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tF.jumpto(current.index - 1, direction, 'prev');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Navigate to gallery item by index\r\n\t\t\t\t\t\tjumpto: function (index, direction, router) {\r\n\t\t\t\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\t\t\t\tif (!current) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tindex = getScalar(index);\r\n\r\n\t\t\t\t\t\t\tF.direction = direction || current.direction[(index >= current.index ? 'next' : 'prev')];\r\n\t\t\t\t\t\t\tF.router = router || 'jumpto';\r\n\r\n\t\t\t\t\t\t\tif (current.loop) {\r\n\t\t\t\t\t\t\t\tif (index < 0) {\r\n\t\t\t\t\t\t\t\t\tindex = current.group.length + (index % current.group.length);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tindex = index % current.group.length;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (current.group[index] !== undefined) {\r\n\t\t\t\t\t\t\t\tF.cancel();\r\n\r\n\t\t\t\t\t\t\t\tF._start(index);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Center inside viewport and toggle position type to fixed or absolute if needed\r\n\t\t\t\t\t\treposition: function (e, onlyAbsolute) {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\twrap = current ? current.wrap : null,\r\n\t\t\t\t\t\t\t\tpos;\r\n\r\n\t\t\t\t\t\t\tif (wrap) {\r\n\t\t\t\t\t\t\t\tpos = F._getPosition(onlyAbsolute);\r\n\r\n\t\t\t\t\t\t\t\tif (e && e.type === 'scroll') {\r\n\t\t\t\t\t\t\t\t\tdelete pos.position;\r\n\r\n\t\t\t\t\t\t\t\t\twrap.stop(true, true).animate(pos, 200);\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twrap.css(pos);\r\n\r\n\t\t\t\t\t\t\t\t\tcurrent.pos = $.extend({}, current.dim, pos);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tupdate: function (e) {\r\n\t\t\t\t\t\t\tvar type = (e && e.originalEvent && e.originalEvent.type),\r\n\t\t\t\t\t\t\t\tanyway = !type || type === 'orientationchange';\r\n\r\n\t\t\t\t\t\t\tif (anyway) {\r\n\t\t\t\t\t\t\t\tclearTimeout(didUpdate);\r\n\r\n\t\t\t\t\t\t\t\tdidUpdate = null;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!F.isOpen || didUpdate) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdidUpdate = setTimeout(function () {\r\n\t\t\t\t\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\t\t\t\t\tif (!current || F.isClosing) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tF.wrap.removeClass('fancybox-tmp');\r\n\r\n\t\t\t\t\t\t\t\tif (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {\r\n\t\t\t\t\t\t\t\t\tF._setDimension();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!(type === 'scroll' && current.canShrink)) {\r\n\t\t\t\t\t\t\t\t\tF.reposition(e);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tF.trigger('onUpdate');\r\n\r\n\t\t\t\t\t\t\t\tdidUpdate = null;\r\n\r\n\t\t\t\t\t\t\t}, (anyway && !isTouch ? 0 : 300));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Shrink content to fit inside viewport or restore if resized\r\n\t\t\t\t\t\ttoggle: function (action) {\r\n\t\t\t\t\t\t\tif (F.isOpen) {\r\n\t\t\t\t\t\t\t\tF.current.fitToView = $.type(action) === \"boolean\" ? action : !F.current.fitToView;\r\n\r\n\t\t\t\t\t\t\t\t// Help browser to restore document dimensions\r\n\t\t\t\t\t\t\t\tif (isTouch) {\r\n\t\t\t\t\t\t\t\t\tF.wrap.removeAttr('style').addClass('fancybox-tmp');\r\n\r\n\t\t\t\t\t\t\t\t\tF.trigger('onUpdate');\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tF.update();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\thideLoading: function () {\r\n\t\t\t\t\t\t\tD.unbind('.loading');\r\n\r\n\t\t\t\t\t\t\t$('#fancybox-loading').remove();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tshowLoading: function () {\r\n\t\t\t\t\t\t\tvar el, viewport;\r\n\r\n\t\t\t\t\t\t\tF.hideLoading();\r\n\r\n\t\t\t\t\t\t\tel = $(F.opts.tpl.loading).click(F.cancel).appendTo('body');\r\n\r\n\t\t\t\t\t\t\t// If user will press the escape-button, the request will be canceled\r\n\t\t\t\t\t\t\tD.bind('keydown.loading', function (e) {\r\n\t\t\t\t\t\t\t\tif ((e.which || e.keyCode) === 27) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\tF.cancel();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (!F.defaults.fixed) {\r\n\t\t\t\t\t\t\t\tviewport = F.getViewport();\r\n\r\n\t\t\t\t\t\t\t\tel.css({\r\n\t\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t\ttop: (viewport.h * 0.5) + viewport.y,\r\n\t\t\t\t\t\t\t\t\tleft: (viewport.w * 0.5) + viewport.x\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.trigger('onLoading');\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tgetViewport: function () {\r\n\t\t\t\t\t\t\tvar locked = (F.current && F.current.locked) || false,\r\n\t\t\t\t\t\t\t\trez = {\r\n\t\t\t\t\t\t\t\t\tx: W.scrollLeft(),\r\n\t\t\t\t\t\t\t\t\ty: W.scrollTop()\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (locked && locked.length) {\r\n\t\t\t\t\t\t\t\trez.w = locked[0].clientWidth;\r\n\t\t\t\t\t\t\t\trez.h = locked[0].clientHeight;\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// See http://bugs.jquery.com/ticket/6724\r\n\t\t\t\t\t\t\t\trez.w = isTouch && window.innerWidth ? window.innerWidth : W.width();\r\n\t\t\t\t\t\t\t\trez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn rez;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Unbind the keyboard / clicking actions\r\n\t\t\t\t\t\tunbindEvents: function () {\r\n\t\t\t\t\t\t\tif (F.wrap && isQuery(F.wrap)) {\r\n\t\t\t\t\t\t\t\tF.wrap.unbind('.fb');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tD.unbind('.fb');\r\n\t\t\t\t\t\t\tW.unbind('.fb');\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tbindEvents: function () {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\tkeys;\r\n\r\n\t\t\t\t\t\t\tif (!current) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Changing document height on iOS devices triggers a 'resize' event,\r\n\t\t\t\t\t\t\t// that can change document height... repeating infinitely\r\n\t\t\t\t\t\t\tW.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);\r\n\r\n\t\t\t\t\t\t\tkeys = current.keys;\r\n\r\n\t\t\t\t\t\t\tif (keys) {\r\n\t\t\t\t\t\t\t\tD.bind('keydown.fb', function (e) {\r\n\t\t\t\t\t\t\t\t\tvar code = e.which || e.keyCode,\r\n\t\t\t\t\t\t\t\t\t\ttarget = e.target || e.srcElement;\r\n\r\n\t\t\t\t\t\t\t\t\t// Skip esc key if loading, because showLoading will cancel preloading\r\n\t\t\t\t\t\t\t\t\tif (code === 27 && F.coming) {\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Ignore key combinations and key events within form elements\r\n\t\t\t\t\t\t\t\t\tif (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {\r\n\t\t\t\t\t\t\t\t\t\t$.each(keys, function (i, val) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (current.group.length > 1 && val[code] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tF[i](val[code]);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif ($.inArray(code, val) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tF[i]();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($.fn.mousewheel && current.mouseWheel) {\r\n\t\t\t\t\t\t\t\tF.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {\r\n\t\t\t\t\t\t\t\t\tvar target = e.target || null,\r\n\t\t\t\t\t\t\t\t\t\tparent = $(target),\r\n\t\t\t\t\t\t\t\t\t\tcanScroll = false;\r\n\r\n\t\t\t\t\t\t\t\t\twhile (parent.length) {\r\n\t\t\t\t\t\t\t\t\t\tif (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tcanScroll = isScrollable(parent[0]);\r\n\t\t\t\t\t\t\t\t\t\tparent = $(parent).parent();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (delta !== 0 && !canScroll) {\r\n\t\t\t\t\t\t\t\t\t\tif (F.group.length > 1 && !current.canShrink) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (deltaY > 0 || deltaX > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tF.prev(deltaY > 0 ? 'down' : 'left');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (deltaY < 0 || deltaX < 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tF.next(deltaY < 0 ? 'up' : 'right');\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\ttrigger: function (event, o) {\r\n\t\t\t\t\t\t\tvar ret, obj = o || F.coming || F.current;\r\n\r\n\t\t\t\t\t\t\tif (obj) {\r\n\t\t\t\t\t\t\t\tif ($.isFunction(obj[event])) {\r\n\t\t\t\t\t\t\t\t\tret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (ret === false) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (obj.helpers) {\r\n\t\t\t\t\t\t\t\t\t$.each(obj.helpers, function (helper, opts) {\r\n\t\t\t\t\t\t\t\t\t\tif (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {\r\n\t\t\t\t\t\t\t\t\t\t\tF.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tD.trigger(event);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tisImage: function (str) {\r\n\t\t\t\t\t\t\treturn isString(str) && str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tisSWF: function (str) {\r\n\t\t\t\t\t\t\treturn isString(str) && str.match(/\\.(swf)((\\?|#).*)?$/i);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_start: function (index) {\r\n\t\t\t\t\t\t\tvar coming = {},\r\n\t\t\t\t\t\t\t\tobj,\r\n\t\t\t\t\t\t\t\thref,\r\n\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\tmargin,\r\n\t\t\t\t\t\t\t\tpadding;\r\n\r\n\t\t\t\t\t\t\tindex = getScalar(index);\r\n\t\t\t\t\t\t\tobj = F.group[index] || null;\r\n\r\n\t\t\t\t\t\t\tif (!obj) {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcoming = $.extend(true, {}, F.opts, obj);\r\n\r\n\t\t\t\t\t\t\t// Convert margin and padding properties to array - top, right, bottom, left\r\n\t\t\t\t\t\t\tmargin = coming.margin;\r\n\t\t\t\t\t\t\tpadding = coming.padding;\r\n\r\n\t\t\t\t\t\t\tif ($.type(margin) === 'number') {\r\n\t\t\t\t\t\t\t\tcoming.margin = [margin, margin, margin, margin];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ($.type(padding) === 'number') {\r\n\t\t\t\t\t\t\t\tcoming.padding = [padding, padding, padding, padding];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// 'modal' propery is just a shortcut\r\n\t\t\t\t\t\t\tif (coming.modal) {\r\n\t\t\t\t\t\t\t\t$.extend(true, coming, {\r\n\t\t\t\t\t\t\t\t\tcloseBtn: false,\r\n\t\t\t\t\t\t\t\t\tcloseClick: false,\r\n\t\t\t\t\t\t\t\t\tnextClick: false,\r\n\t\t\t\t\t\t\t\t\tarrows: false,\r\n\t\t\t\t\t\t\t\t\tmouseWheel: false,\r\n\t\t\t\t\t\t\t\t\tkeys: null,\r\n\t\t\t\t\t\t\t\t\thelpers: {\r\n\t\t\t\t\t\t\t\t\t\toverlay: {\r\n\t\t\t\t\t\t\t\t\t\t\tcloseClick: false\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// 'autoSize' property is a shortcut, too\r\n\t\t\t\t\t\t\tif (coming.autoSize) {\r\n\t\t\t\t\t\t\t\tcoming.autoWidth = coming.autoHeight = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (coming.width === 'auto') {\r\n\t\t\t\t\t\t\t\tcoming.autoWidth = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (coming.height === 'auto') {\r\n\t\t\t\t\t\t\t\tcoming.autoHeight = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\t * Add reference to the group, so it`s possible to access from callbacks, example:\r\n\t\t\t\t\t\t\t * afterLoad : function() {\r\n\t\t\t\t\t\t\t *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');\r\n\t\t\t\t\t\t\t * }\r\n\t\t\t\t\t\t\t */\r\n\r\n\t\t\t\t\t\t\tcoming.group = F.group;\r\n\t\t\t\t\t\t\tcoming.index = index;\r\n\r\n\t\t\t\t\t\t\t// Give a chance for callback or helpers to update coming item (type, title, etc)\r\n\t\t\t\t\t\t\tF.coming = coming;\r\n\r\n\t\t\t\t\t\t\tif (false === F.trigger('beforeLoad')) {\r\n\t\t\t\t\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttype = coming.type;\r\n\t\t\t\t\t\t\thref = coming.href;\r\n\r\n\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t\t\t\t\t//If we can not determine content type then drop silently or display next/prev item if looping through gallery\r\n\t\t\t\t\t\t\t\tif (F.current && F.router && F.router !== 'jumpto') {\r\n\t\t\t\t\t\t\t\t\tF.current.index = index;\r\n\r\n\t\t\t\t\t\t\t\t\treturn F[F.router](F.direction);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.isActive = true;\r\n\r\n\t\t\t\t\t\t\tif (type === 'image' || type === 'swf') {\r\n\t\t\t\t\t\t\t\tcoming.autoHeight = coming.autoWidth = false;\r\n\t\t\t\t\t\t\t\tcoming.scrolling = 'visible';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (type === 'image') {\r\n\t\t\t\t\t\t\t\tcoming.aspectRatio = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (type === 'iframe' && isTouch) {\r\n\t\t\t\t\t\t\t\tcoming.scrolling = 'scroll';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Build the neccessary markup\r\n\t\t\t\t\t\t\tcoming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo(coming.parent || 'body');\r\n\r\n\t\t\t\t\t\t\t$.extend(coming, {\r\n\t\t\t\t\t\t\t\tskin: $('.fancybox-skin', coming.wrap),\r\n\t\t\t\t\t\t\t\touter: $('.fancybox-outer', coming.wrap),\r\n\t\t\t\t\t\t\t\tinner: $('.fancybox-inner', coming.wrap)\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$.each([\"Top\", \"Right\", \"Bottom\", \"Left\"], function (i, v) {\r\n\t\t\t\t\t\t\t\tcoming.skin.css('padding' + v, getValue(coming.padding[i]));\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tF.trigger('onReady');\r\n\r\n\t\t\t\t\t\t\t// Check before try to load; 'inline' and 'html' types need content, others - href\r\n\t\t\t\t\t\t\tif (type === 'inline' || type === 'html') {\r\n\t\t\t\t\t\t\t\tif (!coming.content || !coming.content.length) {\r\n\t\t\t\t\t\t\t\t\treturn F._error('content');\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else if (!href) {\r\n\t\t\t\t\t\t\t\treturn F._error('href');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (type === 'image') {\r\n\t\t\t\t\t\t\t\tF._loadImage();\r\n\r\n\t\t\t\t\t\t\t} else if (type === 'ajax') {\r\n\t\t\t\t\t\t\t\tF._loadAjax();\r\n\r\n\t\t\t\t\t\t\t} else if (type === 'iframe') {\r\n\t\t\t\t\t\t\t\tF._loadIframe();\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_error: function (type) {\r\n\t\t\t\t\t\t\t$.extend(F.coming, {\r\n\t\t\t\t\t\t\t\ttype: 'html',\r\n\t\t\t\t\t\t\t\tautoWidth: true,\r\n\t\t\t\t\t\t\t\tautoHeight: true,\r\n\t\t\t\t\t\t\t\tminWidth: 0,\r\n\t\t\t\t\t\t\t\tminHeight: 0,\r\n\t\t\t\t\t\t\t\tscrolling: 'no',\r\n\t\t\t\t\t\t\t\thasError: type,\r\n\t\t\t\t\t\t\t\tcontent: F.coming.tpl.error\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_loadImage: function () {\r\n\t\t\t\t\t\t\t// Reset preload image so it is later possible to check \"complete\" property\r\n\t\t\t\t\t\t\tvar img = F.imgPreload = new Image();\r\n\r\n\t\t\t\t\t\t\timg.onload = function () {\r\n\t\t\t\t\t\t\t\tthis.onload = this.onerror = null;\r\n\r\n\t\t\t\t\t\t\t\tF.coming.width = this.width / F.opts.pixelRatio;\r\n\t\t\t\t\t\t\t\tF.coming.height = this.height / F.opts.pixelRatio;\r\n\r\n\t\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\timg.onerror = function () {\r\n\t\t\t\t\t\t\t\tthis.onload = this.onerror = null;\r\n\r\n\t\t\t\t\t\t\t\tF._error('image');\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\timg.src = F.coming.href;\r\n\r\n\t\t\t\t\t\t\tif (img.complete !== true) {\r\n\t\t\t\t\t\t\t\tF.showLoading();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_loadAjax: function () {\r\n\t\t\t\t\t\t\tvar coming = F.coming;\r\n\r\n\t\t\t\t\t\t\tF.showLoading();\r\n\r\n\t\t\t\t\t\t\tF.ajaxLoad = $.ajax($.extend({}, coming.ajax, {\r\n\t\t\t\t\t\t\t\turl: coming.href,\r\n\t\t\t\t\t\t\t\terror: function (jqXHR, textStatus) {\r\n\t\t\t\t\t\t\t\t\tif (F.coming && textStatus !== 'abort') {\r\n\t\t\t\t\t\t\t\t\t\tF._error('ajax', jqXHR);\r\n\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tF.hideLoading();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tsuccess: function (data, textStatus) {\r\n\t\t\t\t\t\t\t\t\tif (textStatus === 'success') {\r\n\t\t\t\t\t\t\t\t\t\tcoming.content = data;\r\n\r\n\t\t\t\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_loadIframe: function () {\r\n\t\t\t\t\t\t\tvar coming = F.coming,\r\n\t\t\t\t\t\t\t\tiframe = $(coming.tpl.iframe.replace(/\\{rnd\\}/g, new Date().getTime()))\r\n\t\t\t\t\t\t\t\t\t.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)\r\n\t\t\t\t\t\t\t\t\t.attr('src', coming.href);\r\n\r\n\t\t\t\t\t\t\t// This helps IE\r\n\t\t\t\t\t\t\t$(coming.wrap).bind('onReset', function () {\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();\r\n\t\t\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (coming.iframe.preload) {\r\n\t\t\t\t\t\t\t\tF.showLoading();\r\n\r\n\t\t\t\t\t\t\t\tiframe.one('load', function () {\r\n\t\t\t\t\t\t\t\t\t$(this).data('ready', 1);\r\n\r\n\t\t\t\t\t\t\t\t\t// iOS will lose scrolling if we resize\r\n\t\t\t\t\t\t\t\t\tif (!isTouch) {\r\n\t\t\t\t\t\t\t\t\t\t$(this).bind('load.fb', F.update);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Without this trick:\r\n\t\t\t\t\t\t\t\t\t//   - iframe won't scroll on iOS devices\r\n\t\t\t\t\t\t\t\t\t//   - IE7 sometimes displays empty iframe\r\n\t\t\t\t\t\t\t\t\t$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();\r\n\r\n\t\t\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcoming.content = iframe.appendTo(coming.inner);\r\n\r\n\t\t\t\t\t\t\tif (!coming.iframe.preload) {\r\n\t\t\t\t\t\t\t\tF._afterLoad();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_preloadImages: function () {\r\n\t\t\t\t\t\t\tvar group = F.group,\r\n\t\t\t\t\t\t\t\tcurrent = F.current,\r\n\t\t\t\t\t\t\t\tlen = group.length,\r\n\t\t\t\t\t\t\t\tcnt = current.preload ? Math.min(current.preload, len - 1) : 0,\r\n\t\t\t\t\t\t\t\titem,\r\n\t\t\t\t\t\t\t\ti;\r\n\r\n\t\t\t\t\t\t\tfor (i = 1; i <= cnt; i += 1) {\r\n\t\t\t\t\t\t\t\titem = group[(current.index + i) % len];\r\n\r\n\t\t\t\t\t\t\t\tif (item.type === 'image' && item.href) {\r\n\t\t\t\t\t\t\t\t\tnew Image().src = item.href;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_afterLoad: function () {\r\n\t\t\t\t\t\t\tvar coming = F.coming,\r\n\t\t\t\t\t\t\t\tprevious = F.current,\r\n\t\t\t\t\t\t\t\tplaceholder = 'fancybox-placeholder',\r\n\t\t\t\t\t\t\t\tcurrent,\r\n\t\t\t\t\t\t\t\tcontent,\r\n\t\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\t\tscrolling,\r\n\t\t\t\t\t\t\t\thref,\r\n\t\t\t\t\t\t\t\tembed;\r\n\r\n\t\t\t\t\t\t\tF.hideLoading();\r\n\r\n\t\t\t\t\t\t\tif (!coming || F.isActive === false) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (false === F.trigger('afterLoad', coming, previous)) {\r\n\t\t\t\t\t\t\t\tcoming.wrap.stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t\t\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (previous) {\r\n\t\t\t\t\t\t\t\tF.trigger('beforeChange', previous);\r\n\r\n\t\t\t\t\t\t\t\tprevious.wrap.stop(true).removeClass('fancybox-opened')\r\n\t\t\t\t\t\t\t\t\t.find('.fancybox-item, .fancybox-nav')\r\n\t\t\t\t\t\t\t\t\t.remove();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.unbindEvents();\r\n\r\n\t\t\t\t\t\t\tcurrent = coming;\r\n\t\t\t\t\t\t\tcontent = coming.content;\r\n\t\t\t\t\t\t\ttype = coming.type;\r\n\t\t\t\t\t\t\tscrolling = coming.scrolling;\r\n\r\n\t\t\t\t\t\t\t$.extend(F, {\r\n\t\t\t\t\t\t\t\twrap: current.wrap,\r\n\t\t\t\t\t\t\t\tskin: current.skin,\r\n\t\t\t\t\t\t\t\touter: current.outer,\r\n\t\t\t\t\t\t\t\tinner: current.inner,\r\n\t\t\t\t\t\t\t\tcurrent: current,\r\n\t\t\t\t\t\t\t\tprevious: previous\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\thref = current.href;\r\n\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase 'inline':\r\n\t\t\t\t\t\t\t\tcase 'ajax':\r\n\t\t\t\t\t\t\t\tcase 'html':\r\n\t\t\t\t\t\t\t\t\tif (current.selector) {\r\n\t\t\t\t\t\t\t\t\t\tcontent = $('<div>').html(content).find(current.selector);\r\n\r\n\t\t\t\t\t\t\t\t\t} else if (isQuery(content)) {\r\n\t\t\t\t\t\t\t\t\t\tif (!content.data(placeholder)) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontent.data(placeholder, $('<div class=\"' + placeholder + '\"></div>').insertAfter(content).hide());\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tcontent = content.show().detach();\r\n\r\n\t\t\t\t\t\t\t\t\t\tcurrent.wrap.bind('onReset', function () {\r\n\t\t\t\t\t\t\t\t\t\t\tif ($(this).find(content).length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontent.hide().replaceAll(content.data(placeholder)).data(placeholder, false);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 'image':\r\n\t\t\t\t\t\t\t\t\tcontent = current.tpl.image.replace(/\\{href\\}/g, href);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 'swf':\r\n\t\t\t\t\t\t\t\t\tcontent = '<object id=\"fancybox-swf\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"><param name=\"movie\" value=\"' + href + '\"></param>';\r\n\t\t\t\t\t\t\t\t\tembed = '';\r\n\r\n\t\t\t\t\t\t\t\t\t$.each(current.swf, function (name, val) {\r\n\t\t\t\t\t\t\t\t\t\tcontent += '<param name=\"' + name + '\" value=\"' + val + '\"></param>';\r\n\t\t\t\t\t\t\t\t\t\tembed += ' ' + name + '=\"' + val + '\"';\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\tcontent += '<embed src=\"' + href + '\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\"' + embed + '></embed></object>';\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!(isQuery(content) && content.parent().is(current.inner))) {\r\n\t\t\t\t\t\t\t\tcurrent.inner.append(content);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Give a chance for helpers or callbacks to update elements\r\n\t\t\t\t\t\t\tF.trigger('beforeShow');\r\n\r\n\t\t\t\t\t\t\t// Set scrolling before calculating dimensions\r\n\t\t\t\t\t\t\tcurrent.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));\r\n\r\n\t\t\t\t\t\t\t// Set initial dimensions and start position\r\n\t\t\t\t\t\t\tF._setDimension();\r\n\r\n\t\t\t\t\t\t\tF.reposition();\r\n\r\n\t\t\t\t\t\t\tF.isOpen = false;\r\n\t\t\t\t\t\t\tF.coming = null;\r\n\r\n\t\t\t\t\t\t\tF.bindEvents();\r\n\r\n\t\t\t\t\t\t\tif (!F.isOpened) {\r\n\t\t\t\t\t\t\t\t$('.fancybox-wrap').not(current.wrap).stop(true).trigger('onReset').remove();\r\n\r\n\t\t\t\t\t\t\t} else if (previous.prevMethod) {\r\n\t\t\t\t\t\t\t\tF.transitions[previous.prevMethod]();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.transitions[F.isOpened ? current.nextMethod : current.openMethod]();\r\n\r\n\t\t\t\t\t\t\tF._preloadImages();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_setDimension: function () {\r\n\t\t\t\t\t\t\tvar viewport = F.getViewport(),\r\n\t\t\t\t\t\t\t\tsteps = 0,\r\n\t\t\t\t\t\t\t\tcanShrink = false,\r\n\t\t\t\t\t\t\t\tcanExpand = false,\r\n\t\t\t\t\t\t\t\twrap = F.wrap,\r\n\t\t\t\t\t\t\t\tskin = F.skin,\r\n\t\t\t\t\t\t\t\tinner = F.inner,\r\n\t\t\t\t\t\t\t\tcurrent = F.current,\r\n\t\t\t\t\t\t\t\twidth = current.width,\r\n\t\t\t\t\t\t\t\theight = current.height,\r\n\t\t\t\t\t\t\t\tminWidth = current.minWidth,\r\n\t\t\t\t\t\t\t\tminHeight = current.minHeight,\r\n\t\t\t\t\t\t\t\tmaxWidth = current.maxWidth,\r\n\t\t\t\t\t\t\t\tmaxHeight = current.maxHeight,\r\n\t\t\t\t\t\t\t\tscrolling = current.scrolling,\r\n\t\t\t\t\t\t\t\tscrollOut = current.scrollOutside ? current.scrollbarWidth : 0,\r\n\t\t\t\t\t\t\t\tmargin = current.margin,\r\n\t\t\t\t\t\t\t\twMargin = getScalar(margin[1] + margin[3]),\r\n\t\t\t\t\t\t\t\thMargin = getScalar(margin[0] + margin[2]),\r\n\t\t\t\t\t\t\t\twPadding,\r\n\t\t\t\t\t\t\t\thPadding,\r\n\t\t\t\t\t\t\t\twSpace,\r\n\t\t\t\t\t\t\t\thSpace,\r\n\t\t\t\t\t\t\t\torigWidth,\r\n\t\t\t\t\t\t\t\torigHeight,\r\n\t\t\t\t\t\t\t\torigMaxWidth,\r\n\t\t\t\t\t\t\t\torigMaxHeight,\r\n\t\t\t\t\t\t\t\tratio,\r\n\t\t\t\t\t\t\t\twidth_,\r\n\t\t\t\t\t\t\t\theight_,\r\n\t\t\t\t\t\t\t\tmaxWidth_,\r\n\t\t\t\t\t\t\t\tmaxHeight_,\r\n\t\t\t\t\t\t\t\tiframe,\r\n\t\t\t\t\t\t\t\tbody;\r\n\r\n\t\t\t\t\t\t\t// Reset dimensions so we could re-check actual size\r\n\t\t\t\t\t\t\twrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');\r\n\r\n\t\t\t\t\t\t\twPadding = getScalar(skin.outerWidth(true) - skin.width());\r\n\t\t\t\t\t\t\thPadding = getScalar(skin.outerHeight(true) - skin.height());\r\n\r\n\t\t\t\t\t\t\t// Any space between content and viewport (margin, padding, border, title)\r\n\t\t\t\t\t\t\twSpace = wMargin + wPadding;\r\n\t\t\t\t\t\t\thSpace = hMargin + hPadding;\r\n\r\n\t\t\t\t\t\t\torigWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;\r\n\t\t\t\t\t\t\torigHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;\r\n\r\n\t\t\t\t\t\t\tif (current.type === 'iframe') {\r\n\t\t\t\t\t\t\t\tiframe = current.content;\r\n\r\n\t\t\t\t\t\t\t\tif (current.autoHeight && iframe.data('ready') === 1) {\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tif (iframe[0].contentWindow.document.location) {\r\n\t\t\t\t\t\t\t\t\t\t\tinner.width(origWidth).height(9999);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tbody = iframe.contents().find('body');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (scrollOut) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbody.css('overflow-x', 'hidden');\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\torigHeight = body.outerHeight(true);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else if (current.autoWidth || current.autoHeight) {\r\n\t\t\t\t\t\t\t\tinner.addClass('fancybox-tmp');\r\n\r\n\t\t\t\t\t\t\t\t// Set width or height in case we need to calculate only one dimension\r\n\t\t\t\t\t\t\t\tif (!current.autoWidth) {\r\n\t\t\t\t\t\t\t\t\tinner.width(origWidth);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!current.autoHeight) {\r\n\t\t\t\t\t\t\t\t\tinner.height(origHeight);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (current.autoWidth) {\r\n\t\t\t\t\t\t\t\t\torigWidth = inner.width();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (current.autoHeight) {\r\n\t\t\t\t\t\t\t\t\torigHeight = inner.height();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tinner.removeClass('fancybox-tmp');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\twidth = getScalar(origWidth);\r\n\t\t\t\t\t\t\theight = getScalar(origHeight);\r\n\r\n\t\t\t\t\t\t\tratio = origWidth / origHeight;\r\n\r\n\t\t\t\t\t\t\t// Calculations for the content\r\n\t\t\t\t\t\t\tminWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);\r\n\t\t\t\t\t\t\tmaxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);\r\n\r\n\t\t\t\t\t\t\tminHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);\r\n\t\t\t\t\t\t\tmaxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);\r\n\r\n\t\t\t\t\t\t\t// These will be used to determine if wrap can fit in the viewport\r\n\t\t\t\t\t\t\torigMaxWidth = maxWidth;\r\n\t\t\t\t\t\t\torigMaxHeight = maxHeight;\r\n\r\n\t\t\t\t\t\t\tif (current.fitToView) {\r\n\t\t\t\t\t\t\t\tmaxWidth = Math.min(viewport.w - wSpace, maxWidth);\r\n\t\t\t\t\t\t\t\tmaxHeight = Math.min(viewport.h - hSpace, maxHeight);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tmaxWidth_ = viewport.w - wMargin;\r\n\t\t\t\t\t\t\tmaxHeight_ = viewport.h - hMargin;\r\n\r\n\t\t\t\t\t\t\tif (current.aspectRatio) {\r\n\t\t\t\t\t\t\t\tif (width > maxWidth) {\r\n\t\t\t\t\t\t\t\t\twidth = maxWidth;\r\n\t\t\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (height > maxHeight) {\r\n\t\t\t\t\t\t\t\t\theight = maxHeight;\r\n\t\t\t\t\t\t\t\t\twidth = getScalar(height * ratio);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (width < minWidth) {\r\n\t\t\t\t\t\t\t\t\twidth = minWidth;\r\n\t\t\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (height < minHeight) {\r\n\t\t\t\t\t\t\t\t\theight = minHeight;\r\n\t\t\t\t\t\t\t\t\twidth = getScalar(height * ratio);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twidth = Math.max(minWidth, Math.min(width, maxWidth));\r\n\r\n\t\t\t\t\t\t\t\tif (current.autoHeight && current.type !== 'iframe') {\r\n\t\t\t\t\t\t\t\t\tinner.width(width);\r\n\r\n\t\t\t\t\t\t\t\t\theight = inner.height();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\theight = Math.max(minHeight, Math.min(height, maxHeight));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Try to fit inside viewport (including the title)\r\n\t\t\t\t\t\t\tif (current.fitToView) {\r\n\t\t\t\t\t\t\t\tinner.width(width).height(height);\r\n\r\n\t\t\t\t\t\t\t\twrap.width(width + wPadding);\r\n\r\n\t\t\t\t\t\t\t\t// Real wrap dimensions\r\n\t\t\t\t\t\t\t\twidth_ = wrap.width();\r\n\t\t\t\t\t\t\t\theight_ = wrap.height();\r\n\r\n\t\t\t\t\t\t\t\tif (current.aspectRatio) {\r\n\t\t\t\t\t\t\t\t\twhile ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {\r\n\t\t\t\t\t\t\t\t\t\tif (steps++ > 19) {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\theight = Math.max(minHeight, Math.min(maxHeight, height - 10));\r\n\t\t\t\t\t\t\t\t\t\twidth = getScalar(height * ratio);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (width < minWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\twidth = minWidth;\r\n\t\t\t\t\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (width > maxWidth) {\r\n\t\t\t\t\t\t\t\t\t\t\twidth = maxWidth;\r\n\t\t\t\t\t\t\t\t\t\t\theight = getScalar(width / ratio);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tinner.width(width).height(height);\r\n\r\n\t\t\t\t\t\t\t\t\t\twrap.width(width + wPadding);\r\n\r\n\t\t\t\t\t\t\t\t\t\twidth_ = wrap.width();\r\n\t\t\t\t\t\t\t\t\t\theight_ = wrap.height();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twidth = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));\r\n\t\t\t\t\t\t\t\t\theight = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {\r\n\t\t\t\t\t\t\t\twidth += scrollOut;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tinner.width(width).height(height);\r\n\r\n\t\t\t\t\t\t\twrap.width(width + wPadding);\r\n\r\n\t\t\t\t\t\t\twidth_ = wrap.width();\r\n\t\t\t\t\t\t\theight_ = wrap.height();\r\n\r\n\t\t\t\t\t\t\tcanShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;\r\n\t\t\t\t\t\t\tcanExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));\r\n\r\n\t\t\t\t\t\t\t$.extend(current, {\r\n\t\t\t\t\t\t\t\tdim: {\r\n\t\t\t\t\t\t\t\t\twidth: getValue(width_),\r\n\t\t\t\t\t\t\t\t\theight: getValue(height_)\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\torigWidth: origWidth,\r\n\t\t\t\t\t\t\t\torigHeight: origHeight,\r\n\t\t\t\t\t\t\t\tcanShrink: canShrink,\r\n\t\t\t\t\t\t\t\tcanExpand: canExpand,\r\n\t\t\t\t\t\t\t\twPadding: wPadding,\r\n\t\t\t\t\t\t\t\thPadding: hPadding,\r\n\t\t\t\t\t\t\t\twrapSpace: height_ - skin.outerHeight(true),\r\n\t\t\t\t\t\t\t\tskinSpace: skin.height() - height\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {\r\n\t\t\t\t\t\t\t\tinner.height('auto');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_getPosition: function (onlyAbsolute) {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\tviewport = F.getViewport(),\r\n\t\t\t\t\t\t\t\tmargin = current.margin,\r\n\t\t\t\t\t\t\t\twidth = F.wrap.width() + margin[1] + margin[3],\r\n\t\t\t\t\t\t\t\theight = F.wrap.height() + margin[0] + margin[2],\r\n\t\t\t\t\t\t\t\trez = {\r\n\t\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t\ttop: margin[0],\r\n\t\t\t\t\t\t\t\t\tleft: margin[3]\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {\r\n\t\t\t\t\t\t\t\trez.position = 'fixed';\r\n\r\n\t\t\t\t\t\t\t} else if (!current.locked) {\r\n\t\t\t\t\t\t\t\trez.top += viewport.y;\r\n\t\t\t\t\t\t\t\trez.left += viewport.x;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\trez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));\r\n\t\t\t\t\t\t\trez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio)));\r\n\r\n\t\t\t\t\t\t\treturn rez;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_afterZoomIn: function () {\r\n\t\t\t\t\t\t\tvar current = F.current;\r\n\r\n\t\t\t\t\t\t\tif (!current) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.isOpen = F.isOpened = true;\r\n\r\n\t\t\t\t\t\t\tF.wrap.css('overflow', 'visible').addClass('fancybox-opened').hide().show(0);\r\n\r\n\t\t\t\t\t\t\tF.update();\r\n\r\n\t\t\t\t\t\t\t// Assign a click event\r\n\t\t\t\t\t\t\tif (current.closeClick || (current.nextClick && F.group.length > 1)) {\r\n\t\t\t\t\t\t\t\tF.inner.css('cursor', 'pointer').bind('click.fb', function (e) {\r\n\t\t\t\t\t\t\t\t\tif (!$(e.target).is('a') && !$(e.target).parent().is('a')) {\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\t\tF[current.closeClick ? 'close' : 'next']();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Create a close button\r\n\t\t\t\t\t\t\tif (current.closeBtn) {\r\n\t\t\t\t\t\t\t\t$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function (e) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\tF.close();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Create navigation arrows\r\n\t\t\t\t\t\t\tif (current.arrows && F.group.length > 1) {\r\n\t\t\t\t\t\t\t\tif (current.loop || current.index > 0) {\r\n\t\t\t\t\t\t\t\t\t$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (current.loop || current.index < F.group.length - 1) {\r\n\t\t\t\t\t\t\t\t\t$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.trigger('afterShow');\r\n\r\n\t\t\t\t\t\t\t// Stop the slideshow if this is the last item\r\n\t\t\t\t\t\t\tif (!current.loop && current.index === current.group.length - 1) {\r\n\r\n\t\t\t\t\t\t\t\tF.play(false);\r\n\r\n\t\t\t\t\t\t\t} else if (F.opts.autoPlay && !F.player.isActive) {\r\n\t\t\t\t\t\t\t\tF.opts.autoPlay = false;\r\n\r\n\t\t\t\t\t\t\t\tF.play(true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_afterZoomOut: function (obj) {\r\n\t\t\t\t\t\t\tobj = obj || F.current;\r\n\r\n\t\t\t\t\t\t\t$('.fancybox-wrap').trigger('onReset').remove();\r\n\r\n\t\t\t\t\t\t\t$.extend(F, {\r\n\t\t\t\t\t\t\t\tgroup: {},\r\n\t\t\t\t\t\t\t\topts: {},\r\n\t\t\t\t\t\t\t\trouter: false,\r\n\t\t\t\t\t\t\t\tcurrent: null,\r\n\t\t\t\t\t\t\t\tisActive: false,\r\n\t\t\t\t\t\t\t\tisOpened: false,\r\n\t\t\t\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\t\t\t\tisClosing: false,\r\n\t\t\t\t\t\t\t\twrap: null,\r\n\t\t\t\t\t\t\t\tskin: null,\r\n\t\t\t\t\t\t\t\touter: null,\r\n\t\t\t\t\t\t\t\tinner: null\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tF.trigger('afterClose', obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tDefault transitions\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tF.transitions = {\r\n\t\t\t\t\t\tgetOrigPosition: function () {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\telement = current.element,\r\n\t\t\t\t\t\t\t\torig = current.orig,\r\n\t\t\t\t\t\t\t\tpos = {},\r\n\t\t\t\t\t\t\t\twidth = 50,\r\n\t\t\t\t\t\t\t\theight = 50,\r\n\t\t\t\t\t\t\t\thPadding = current.hPadding,\r\n\t\t\t\t\t\t\t\twPadding = current.wPadding,\r\n\t\t\t\t\t\t\t\tviewport = F.getViewport();\r\n\r\n\t\t\t\t\t\t\tif (!orig && current.isDom && element.is(':visible')) {\r\n\t\t\t\t\t\t\t\torig = element.find('img:first');\r\n\r\n\t\t\t\t\t\t\t\tif (!orig.length) {\r\n\t\t\t\t\t\t\t\t\torig = element;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isQuery(orig)) {\r\n\t\t\t\t\t\t\t\tpos = orig.offset();\r\n\r\n\t\t\t\t\t\t\t\tif (orig.is('img')) {\r\n\t\t\t\t\t\t\t\t\twidth = orig.outerWidth();\r\n\t\t\t\t\t\t\t\t\theight = orig.outerHeight();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpos.top = viewport.y + (viewport.h - height) * current.topRatio;\r\n\t\t\t\t\t\t\t\tpos.left = viewport.x + (viewport.w - width) * current.leftRatio;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (F.wrap.css('position') === 'fixed' || current.locked) {\r\n\t\t\t\t\t\t\t\tpos.top -= viewport.y;\r\n\t\t\t\t\t\t\t\tpos.left -= viewport.x;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tpos = {\r\n\t\t\t\t\t\t\t\ttop: getValue(pos.top - hPadding * current.topRatio),\r\n\t\t\t\t\t\t\t\tleft: getValue(pos.left - wPadding * current.leftRatio),\r\n\t\t\t\t\t\t\t\twidth: getValue(width + wPadding),\r\n\t\t\t\t\t\t\t\theight: getValue(height + hPadding)\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\treturn pos;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tstep: function (now, fx) {\r\n\t\t\t\t\t\t\tvar ratio,\r\n\t\t\t\t\t\t\t\tpadding,\r\n\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\tprop = fx.prop,\r\n\t\t\t\t\t\t\t\tcurrent = F.current,\r\n\t\t\t\t\t\t\t\twrapSpace = current.wrapSpace,\r\n\t\t\t\t\t\t\t\tskinSpace = current.skinSpace;\r\n\r\n\t\t\t\t\t\t\tif (prop === 'width' || prop === 'height') {\r\n\t\t\t\t\t\t\t\tratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);\r\n\r\n\t\t\t\t\t\t\t\tif (F.isClosing) {\r\n\t\t\t\t\t\t\t\t\tratio = 1 - ratio;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tpadding = prop === 'width' ? current.wPadding : current.hPadding;\r\n\t\t\t\t\t\t\t\tvalue = now - padding;\r\n\r\n\t\t\t\t\t\t\t\tF.skin[prop](getScalar(prop === 'width' ? value : value - (wrapSpace * ratio)));\r\n\t\t\t\t\t\t\t\tF.inner[prop](getScalar(prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio)));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tzoomIn: function () {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\tstartPos = current.pos,\r\n\t\t\t\t\t\t\t\teffect = current.openEffect,\r\n\t\t\t\t\t\t\t\telastic = effect === 'elastic',\r\n\t\t\t\t\t\t\t\tendPos = $.extend({ opacity: 1 }, startPos);\r\n\r\n\t\t\t\t\t\t\t// Remove \"position\" property that breaks older IE\r\n\t\t\t\t\t\t\tdelete endPos.position;\r\n\r\n\t\t\t\t\t\t\tif (elastic) {\r\n\t\t\t\t\t\t\t\tstartPos = this.getOrigPosition();\r\n\r\n\t\t\t\t\t\t\t\tif (current.openOpacity) {\r\n\t\t\t\t\t\t\t\t\tstartPos.opacity = 0.1;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else if (effect === 'fade') {\r\n\t\t\t\t\t\t\t\tstartPos.opacity = 0.1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.wrap.css(startPos).animate(endPos, {\r\n\t\t\t\t\t\t\t\tduration: effect === 'none' ? 0 : current.openSpeed,\r\n\t\t\t\t\t\t\t\teasing: current.openEasing,\r\n\t\t\t\t\t\t\t\tstep: elastic ? this.step : null,\r\n\t\t\t\t\t\t\t\tcomplete: F._afterZoomIn\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tzoomOut: function () {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\teffect = current.closeEffect,\r\n\t\t\t\t\t\t\t\telastic = effect === 'elastic',\r\n\t\t\t\t\t\t\t\tendPos = { opacity: 0.1 };\r\n\r\n\t\t\t\t\t\t\tif (elastic) {\r\n\t\t\t\t\t\t\t\tendPos = this.getOrigPosition();\r\n\r\n\t\t\t\t\t\t\t\tif (current.closeOpacity) {\r\n\t\t\t\t\t\t\t\t\tendPos.opacity = 0.1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tF.wrap.animate(endPos, {\r\n\t\t\t\t\t\t\t\tduration: effect === 'none' ? 0 : current.closeSpeed,\r\n\t\t\t\t\t\t\t\teasing: current.closeEasing,\r\n\t\t\t\t\t\t\t\tstep: elastic ? this.step : null,\r\n\t\t\t\t\t\t\t\tcomplete: F._afterZoomOut\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tchangeIn: function () {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\teffect = current.nextEffect,\r\n\t\t\t\t\t\t\t\tstartPos = current.pos,\r\n\t\t\t\t\t\t\t\tendPos = { opacity: 1 },\r\n\t\t\t\t\t\t\t\tdirection = F.direction,\r\n\t\t\t\t\t\t\t\tdistance = 200,\r\n\t\t\t\t\t\t\t\tfield;\r\n\r\n\t\t\t\t\t\t\tstartPos.opacity = 0.1;\r\n\r\n\t\t\t\t\t\t\tif (effect === 'elastic') {\r\n\t\t\t\t\t\t\t\tfield = direction === 'down' || direction === 'up' ? 'top' : 'left';\r\n\r\n\t\t\t\t\t\t\t\tif (direction === 'down' || direction === 'right') {\r\n\t\t\t\t\t\t\t\t\tstartPos[field] = getValue(getScalar(startPos[field]) - distance);\r\n\t\t\t\t\t\t\t\t\tendPos[field] = '+=' + distance + 'px';\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartPos[field] = getValue(getScalar(startPos[field]) + distance);\r\n\t\t\t\t\t\t\t\t\tendPos[field] = '-=' + distance + 'px';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Workaround for http://bugs.jquery.com/ticket/12273\r\n\t\t\t\t\t\t\tif (effect === 'none') {\r\n\t\t\t\t\t\t\t\tF._afterZoomIn();\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tF.wrap.css(startPos).animate(endPos, {\r\n\t\t\t\t\t\t\t\t\tduration: current.nextSpeed,\r\n\t\t\t\t\t\t\t\t\teasing: current.nextEasing,\r\n\t\t\t\t\t\t\t\t\tcomplete: F._afterZoomIn\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tchangeOut: function () {\r\n\t\t\t\t\t\t\tvar previous = F.previous,\r\n\t\t\t\t\t\t\t\teffect = previous.prevEffect,\r\n\t\t\t\t\t\t\t\tendPos = { opacity: 0.1 },\r\n\t\t\t\t\t\t\t\tdirection = F.direction,\r\n\t\t\t\t\t\t\t\tdistance = 200;\r\n\r\n\t\t\t\t\t\t\tif (effect === 'elastic') {\r\n\t\t\t\t\t\t\t\tendPos[direction === 'down' || direction === 'up' ? 'top' : 'left'] = (direction === 'up' || direction === 'left' ? '-' : '+') + '=' + distance + 'px';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tprevious.wrap.animate(endPos, {\r\n\t\t\t\t\t\t\t\tduration: effect === 'none' ? 0 : previous.prevSpeed,\r\n\t\t\t\t\t\t\t\teasing: previous.prevEasing,\r\n\t\t\t\t\t\t\t\tcomplete: function () {\r\n\t\t\t\t\t\t\t\t\t$(this).trigger('onReset').remove();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tOverlay helper\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tF.helpers.overlay = {\r\n\t\t\t\t\t\tdefaults: {\r\n\t\t\t\t\t\t\tcloseClick: true,      // if true, fancyBox will be closed when user clicks on the overlay\r\n\t\t\t\t\t\t\tspeedOut: 200,       // duration of fadeOut animation\r\n\t\t\t\t\t\t\tshowEarly: true,      // indicates if should be opened immediately or wait until the content is ready\r\n\t\t\t\t\t\t\tcss: {},        // custom CSS properties\r\n\t\t\t\t\t\t\tlocked: !isTouch,  // if true, the content will be locked into overlay\r\n\t\t\t\t\t\t\tfixed: true       // if false, the overlay CSS position property will not be set to \"fixed\"\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\toverlay: null,      // current handle\r\n\t\t\t\t\t\tfixed: false,     // indicates if the overlay has position \"fixed\"\r\n\t\t\t\t\t\tel: $('html'), // element that contains \"the lock\"\r\n\r\n\t\t\t\t\t\t// Public methods\r\n\t\t\t\t\t\tcreate: function (opts) {\r\n\t\t\t\t\t\t\tvar parent;\r\n\r\n\t\t\t\t\t\t\topts = $.extend({}, this.defaults, opts);\r\n\r\n\t\t\t\t\t\t\tif (this.overlay) {\r\n\t\t\t\t\t\t\t\tthis.close();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tparent = F.coming ? F.coming.parent : opts.parent;\r\n\r\n\t\t\t\t\t\t\tthis.overlay = $('<div class=\"fancybox-overlay\"></div>').appendTo(parent && parent.length ? parent : 'body');\r\n\t\t\t\t\t\t\tthis.fixed = false;\r\n\r\n\t\t\t\t\t\t\tif (opts.fixed && F.defaults.fixed) {\r\n\t\t\t\t\t\t\t\tthis.overlay.addClass('fancybox-overlay-fixed');\r\n\r\n\t\t\t\t\t\t\t\tthis.fixed = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\topen: function (opts) {\r\n\t\t\t\t\t\t\tvar that = this;\r\n\r\n\t\t\t\t\t\t\topts = $.extend({}, this.defaults, opts);\r\n\r\n\t\t\t\t\t\t\tif (this.overlay) {\r\n\t\t\t\t\t\t\t\tthis.overlay.unbind('.overlay').width('auto').height('auto');\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.create(opts);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!this.fixed) {\r\n\t\t\t\t\t\t\t\tW.bind('resize.overlay', $.proxy(this.update, this));\r\n\r\n\t\t\t\t\t\t\t\tthis.update();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (opts.closeClick) {\r\n\t\t\t\t\t\t\t\tthis.overlay.bind('click.overlay', function (e) {\r\n\t\t\t\t\t\t\t\t\tif ($(e.target).hasClass('fancybox-overlay')) {\r\n\t\t\t\t\t\t\t\t\t\tif (F.isActive) {\r\n\t\t\t\t\t\t\t\t\t\t\tF.close();\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tthat.close();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.overlay.css(opts.css).show();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tclose: function () {\r\n\t\t\t\t\t\t\tW.unbind('resize.overlay');\r\n\r\n\t\t\t\t\t\t\tif (this.el.hasClass('fancybox-lock')) {\r\n\t\t\t\t\t\t\t\t$('.fancybox-margin').removeClass('fancybox-margin');\r\n\r\n\t\t\t\t\t\t\t\tthis.el.removeClass('fancybox-lock');\r\n\r\n\t\t\t\t\t\t\t\tW.scrollTop(this.scrollV).scrollLeft(this.scrollH);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$('.fancybox-overlay').remove().hide();\r\n\r\n\t\t\t\t\t\t\t$.extend(this, {\r\n\t\t\t\t\t\t\t\toverlay: null,\r\n\t\t\t\t\t\t\t\tfixed: false\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Private, callbacks\r\n\r\n\t\t\t\t\t\tupdate: function () {\r\n\t\t\t\t\t\t\tvar width = '100%', offsetWidth;\r\n\r\n\t\t\t\t\t\t\t// Reset width/height so it will not mess\r\n\t\t\t\t\t\t\tthis.overlay.width(width).height('100%');\r\n\r\n\t\t\t\t\t\t\t// jQuery does not return reliable result for IE\r\n\t\t\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\t\t\toffsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);\r\n\r\n\t\t\t\t\t\t\t\tif (D.width() > offsetWidth) {\r\n\t\t\t\t\t\t\t\t\twidth = D.width();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else if (D.width() > W.width()) {\r\n\t\t\t\t\t\t\t\twidth = D.width();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.overlay.width(width).height(D.height());\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// This is where we can manipulate DOM, because later it would cause iframes to reload\r\n\t\t\t\t\t\tonReady: function (opts, obj) {\r\n\t\t\t\t\t\t\tvar overlay = this.overlay;\r\n\r\n\t\t\t\t\t\t\t$('.fancybox-overlay').stop(true, true);\r\n\r\n\t\t\t\t\t\t\tif (!overlay) {\r\n\t\t\t\t\t\t\t\tthis.create(opts);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (opts.locked && this.fixed && obj.fixed) {\r\n\t\t\t\t\t\t\t\tobj.locked = this.overlay.append(obj.wrap);\r\n\t\t\t\t\t\t\t\tobj.fixed = false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (opts.showEarly === true) {\r\n\t\t\t\t\t\t\t\tthis.beforeShow.apply(this, arguments);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tbeforeShow: function (opts, obj) {\r\n\t\t\t\t\t\t\tif (obj.locked && !this.el.hasClass('fancybox-lock')) {\r\n\t\t\t\t\t\t\t\tif (this.fixPosition !== false) {\r\n\t\t\t\t\t\t\t\t\t$('*').filter(function () {\r\n\t\t\t\t\t\t\t\t\t\treturn ($(this).css('position') === 'fixed' && !$(this).hasClass(\"fancybox-overlay\") && !$(this).hasClass(\"fancybox-wrap\"));\r\n\t\t\t\t\t\t\t\t\t}).addClass('fancybox-margin');\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tthis.el.addClass('fancybox-margin');\r\n\r\n\t\t\t\t\t\t\t\tthis.scrollV = W.scrollTop();\r\n\t\t\t\t\t\t\t\tthis.scrollH = W.scrollLeft();\r\n\r\n\t\t\t\t\t\t\t\tthis.el.addClass('fancybox-lock');\r\n\r\n\t\t\t\t\t\t\t\tW.scrollTop(this.scrollV).scrollLeft(this.scrollH);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.open(opts);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tonUpdate: function () {\r\n\t\t\t\t\t\t\tif (!this.fixed) {\r\n\t\t\t\t\t\t\t\tthis.update();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tafterClose: function (opts) {\r\n\t\t\t\t\t\t\t// Remove overlay if exists and fancyBox is not opening\r\n\t\t\t\t\t\t\t// (e.g., it is not being open using afterClose callback)\r\n\t\t\t\t\t\t\tif (this.overlay && !F.coming) {\r\n\t\t\t\t\t\t\t\tthis.overlay.fadeOut(opts.speedOut, $.proxy(this.close, this));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t *\tTitle helper\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tF.helpers.title = {\r\n\t\t\t\t\t\tdefaults: {\r\n\t\t\t\t\t\t\ttype: 'float', // 'float', 'inside', 'outside' or 'over',\r\n\t\t\t\t\t\t\tposition: 'bottom' // 'top' or 'bottom'\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tbeforeShow: function (opts) {\r\n\t\t\t\t\t\t\tvar current = F.current,\r\n\t\t\t\t\t\t\t\ttext = current.title,\r\n\t\t\t\t\t\t\t\ttype = opts.type,\r\n\t\t\t\t\t\t\t\ttitle,\r\n\t\t\t\t\t\t\t\ttarget;\r\n\r\n\t\t\t\t\t\t\tif ($.isFunction(text)) {\r\n\t\t\t\t\t\t\t\ttext = text.call(current.element, current);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!isString(text) || $.trim(text) === '') {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttitle = $('<div class=\"fancybox-title fancybox-title-' + type + '-wrap\">' + text + '</div>');\r\n\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase 'inside':\r\n\t\t\t\t\t\t\t\t\ttarget = F.skin;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 'outside':\r\n\t\t\t\t\t\t\t\t\ttarget = F.wrap;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase 'over':\r\n\t\t\t\t\t\t\t\t\ttarget = F.inner;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tdefault: // 'float'\r\n\t\t\t\t\t\t\t\t\ttarget = F.skin;\r\n\r\n\t\t\t\t\t\t\t\t\ttitle.appendTo('body');\r\n\r\n\t\t\t\t\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\t\t\t\t\ttitle.width(title.width());\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\ttitle.wrapInner('<span class=\"child\"></span>');\r\n\r\n\t\t\t\t\t\t\t\t\t//Increase bottom margin so this title will also fit into viewport\r\n\t\t\t\t\t\t\t\t\tF.current.margin[2] += Math.abs(getScalar(title.css('margin-bottom')));\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttitle[(opts.position === 'top' ? 'prependTo' : 'appendTo')](target);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// jQuery plugin initialization\r\n\t\t\t\t\t$.fn.fancybox = function (options) {\r\n\t\t\t\t\t\tvar index,\r\n\t\t\t\t\t\t\tthat = $(this),\r\n\t\t\t\t\t\t\tselector = this.selector || '',\r\n\t\t\t\t\t\t\trun = function (e) {\r\n\t\t\t\t\t\t\t\tvar what = $(this).blur(), idx = index, relType, relVal;\r\n\r\n\t\t\t\t\t\t\t\tif (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {\r\n\t\t\t\t\t\t\t\t\trelType = options.groupAttr || 'data-fancybox-group';\r\n\t\t\t\t\t\t\t\t\trelVal = what.attr(relType);\r\n\r\n\t\t\t\t\t\t\t\t\tif (!relVal) {\r\n\t\t\t\t\t\t\t\t\t\trelType = 'rel';\r\n\t\t\t\t\t\t\t\t\t\trelVal = what.get(0)[relType];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (relVal && relVal !== '' && relVal !== 'nofollow') {\r\n\t\t\t\t\t\t\t\t\t\twhat = selector.length ? $(selector) : that;\r\n\t\t\t\t\t\t\t\t\t\twhat = what.filter('[' + relType + '=\"' + relVal + '\"]');\r\n\t\t\t\t\t\t\t\t\t\tidx = what.index(this);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\toptions.index = idx;\r\n\r\n\t\t\t\t\t\t\t\t\t// Stop an event from bubbling if everything is fine\r\n\t\t\t\t\t\t\t\t\tif (F.open(what, options) !== false) {\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\toptions = options || {};\r\n\t\t\t\t\t\tindex = options.index || 0;\r\n\r\n\t\t\t\t\t\tif (!selector || options.live === false) {\r\n\t\t\t\t\t\t\tthat.unbind('click.fb-start').bind('click.fb-start', run);\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tD.undelegate(selector, 'click.fb-start').delegate(selector + \":not('.fancybox-item, .fancybox-nav')\", 'click.fb-start', run);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.filter('[data-fancybox-start=1]').trigger('click');\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Tests that need a body at doc ready\r\n\t\t\t\t\tD.ready(function () {\r\n\t\t\t\t\t\tvar w1, w2;\r\n\r\n\t\t\t\t\t\tif ($.scrollbarWidth === undefined) {\r\n\t\t\t\t\t\t\t// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth\r\n\t\t\t\t\t\t\t$.scrollbarWidth = function () {\r\n\t\t\t\t\t\t\t\tvar parent = $('<div style=\"width:50px;height:50px;overflow:auto\"><div/></div>').appendTo('body'),\r\n\t\t\t\t\t\t\t\t\tchild = parent.children(),\r\n\t\t\t\t\t\t\t\t\twidth = child.innerWidth() - child.height(99).innerWidth();\r\n\r\n\t\t\t\t\t\t\t\tparent.remove();\r\n\r\n\t\t\t\t\t\t\t\treturn width;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($.support.fixedPosition === undefined) {\r\n\t\t\t\t\t\t\t$.support.fixedPosition = (function () {\r\n\t\t\t\t\t\t\t\tvar elem = $('<div style=\"position:fixed;top:20px;\"></div>').appendTo('body'),\r\n\t\t\t\t\t\t\t\t\tfixed = (elem[0].offsetTop === 20 || elem[0].offsetTop === 15);\r\n\r\n\t\t\t\t\t\t\t\telem.remove();\r\n\r\n\t\t\t\t\t\t\t\treturn fixed;\r\n\t\t\t\t\t\t\t}());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$.extend(F.defaults, {\r\n\t\t\t\t\t\t\tscrollbarWidth: $.scrollbarWidth(),\r\n\t\t\t\t\t\t\tfixed: $.support.fixedPosition,\r\n\t\t\t\t\t\t\tparent: $('body')\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//Get real width of page scroll-bar\r\n\t\t\t\t\t\tw1 = $(window).width();\r\n\r\n\t\t\t\t\t\tH.addClass('fancybox-lock-test');\r\n\r\n\t\t\t\t\t\tw2 = $(window).width();\r\n\r\n\t\t\t\t\t\tH.removeClass('fancybox-lock-test');\r\n\r\n\t\t\t\t\t\t$(\"<style type='text/css'>.fancybox-margin{margin-right:\" + (w2 - w1) + \"px;}</style>\").appendTo(\"head\");\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}(window, document, jQuery));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 47:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\r\n * Fizzy UI utils v2.0.7\r\n * MIT license\r\n */\r\n\r\n\t\t\t\t/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\t/*jshint strict: false */ /*globals define, module, require */\r\n\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\r\n\t\t\t\t\t\t\t__webpack_require__(741)\r\n\t\t\t\t\t\t], __WEBPACK_AMD_DEFINE_RESULT__ = (function (matchesSelector) {\r\n\t\t\t\t\t\t\treturn factory(window, matchesSelector);\r\n\t\t\t\t\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(window, function factory(window, matchesSelector) {\r\n\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\tvar utils = {};\r\n\r\n\t\t\t\t\t// ----- extend ----- //\r\n\r\n\t\t\t\t\t// extends objects\r\n\t\t\t\t\tutils.extend = function (a, b) {\r\n\t\t\t\t\t\tfor (var prop in b) {\r\n\t\t\t\t\t\t\ta[prop] = b[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn a;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- modulo ----- //\r\n\r\n\t\t\t\t\tutils.modulo = function (num, div) {\r\n\t\t\t\t\t\treturn ((num % div) + div) % div;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- makeArray ----- //\r\n\r\n\t\t\t\t\tvar arraySlice = Array.prototype.slice;\r\n\r\n\t\t\t\t\t// turn element or nodeList into an array\r\n\t\t\t\t\tutils.makeArray = function (obj) {\r\n\t\t\t\t\t\tif (Array.isArray(obj)) {\r\n\t\t\t\t\t\t\t// use object if already an array\r\n\t\t\t\t\t\t\treturn obj;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// return empty array if undefined or null. #6\r\n\t\t\t\t\t\tif (obj === null || obj === undefined) {\r\n\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n\t\t\t\t\t\tif (isArrayLike) {\r\n\t\t\t\t\t\t\t// convert nodeList to array\r\n\t\t\t\t\t\t\treturn arraySlice.call(obj);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// array of single index\r\n\t\t\t\t\t\treturn [obj];\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- removeFrom ----- //\r\n\r\n\t\t\t\t\tutils.removeFrom = function (ary, obj) {\r\n\t\t\t\t\t\tvar index = ary.indexOf(obj);\r\n\t\t\t\t\t\tif (index != -1) {\r\n\t\t\t\t\t\t\tary.splice(index, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- getParent ----- //\r\n\r\n\t\t\t\t\tutils.getParent = function (elem, selector) {\r\n\t\t\t\t\t\twhile (elem.parentNode && elem != document.body) {\r\n\t\t\t\t\t\t\telem = elem.parentNode;\r\n\t\t\t\t\t\t\tif (matchesSelector(elem, selector)) {\r\n\t\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- getQueryElement ----- //\r\n\r\n\t\t\t\t\t// use element as selector string\r\n\t\t\t\t\tutils.getQueryElement = function (elem) {\r\n\t\t\t\t\t\tif (typeof elem == 'string') {\r\n\t\t\t\t\t\t\treturn document.querySelector(elem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- handleEvent ----- //\r\n\r\n\t\t\t\t\t// enable .ontype to trigger from .addEventListener( elem, 'type' )\r\n\t\t\t\t\tutils.handleEvent = function (event) {\r\n\t\t\t\t\t\tvar method = 'on' + event.type;\r\n\t\t\t\t\t\tif (this[method]) {\r\n\t\t\t\t\t\t\tthis[method](event);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- filterFindElements ----- //\r\n\r\n\t\t\t\t\tutils.filterFindElements = function (elems, selector) {\r\n\t\t\t\t\t\t// make array of elems\r\n\t\t\t\t\t\telems = utils.makeArray(elems);\r\n\t\t\t\t\t\tvar ffElems = [];\r\n\r\n\t\t\t\t\t\telems.forEach(function (elem) {\r\n\t\t\t\t\t\t\t// check that elem is an actual element\r\n\t\t\t\t\t\t\tif (!(elem instanceof HTMLElement)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// add elem if no selector\r\n\t\t\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\t\t\tffElems.push(elem);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// filter & find items if we have a selector\r\n\t\t\t\t\t\t\t// filter\r\n\t\t\t\t\t\t\tif (matchesSelector(elem, selector)) {\r\n\t\t\t\t\t\t\t\tffElems.push(elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// find children\r\n\t\t\t\t\t\t\tvar childElems = elem.querySelectorAll(selector);\r\n\t\t\t\t\t\t\t// concat childElems to filterFound array\r\n\t\t\t\t\t\t\tfor (var i = 0; i < childElems.length; i++) {\r\n\t\t\t\t\t\t\t\tffElems.push(childElems[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn ffElems;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- debounceMethod ----- //\r\n\r\n\t\t\t\t\tutils.debounceMethod = function (_class, methodName, threshold) {\r\n\t\t\t\t\t\tthreshold = threshold || 100;\r\n\t\t\t\t\t\t// original method\r\n\t\t\t\t\t\tvar method = _class.prototype[methodName];\r\n\t\t\t\t\t\tvar timeoutName = methodName + 'Timeout';\r\n\r\n\t\t\t\t\t\t_class.prototype[methodName] = function () {\r\n\t\t\t\t\t\t\tvar timeout = this[timeoutName];\r\n\t\t\t\t\t\t\tclearTimeout(timeout);\r\n\r\n\t\t\t\t\t\t\tvar args = arguments;\r\n\t\t\t\t\t\t\tvar _this = this;\r\n\t\t\t\t\t\t\tthis[timeoutName] = setTimeout(function () {\r\n\t\t\t\t\t\t\t\tmethod.apply(_this, args);\r\n\t\t\t\t\t\t\t\tdelete _this[timeoutName];\r\n\t\t\t\t\t\t\t}, threshold);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- docReady ----- //\r\n\r\n\t\t\t\t\tutils.docReady = function (callback) {\r\n\t\t\t\t\t\tvar readyState = document.readyState;\r\n\t\t\t\t\t\tif (readyState == 'complete' || readyState == 'interactive') {\r\n\t\t\t\t\t\t\t// do async to allow for other scripts to run. metafizzy/flickity#441\r\n\t\t\t\t\t\t\tsetTimeout(callback);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdocument.addEventListener('DOMContentLoaded', callback);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- htmlInit ----- //\r\n\r\n\t\t\t\t\t// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\r\n\t\t\t\t\tutils.toDashed = function (str) {\r\n\t\t\t\t\t\treturn str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\r\n\t\t\t\t\t\t\treturn $1 + '-' + $2;\r\n\t\t\t\t\t\t}).toLowerCase();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar console = window.console;\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * allow user to initialize classes via [data-namespace] or .js-namespace class\r\n\t\t\t\t\t * htmlInit( Widget, 'widgetName' )\r\n\t\t\t\t\t * options are parsed from data-namespace-options\r\n\t\t\t\t\t */\r\n\t\t\t\t\tutils.htmlInit = function (WidgetClass, namespace) {\r\n\t\t\t\t\t\tutils.docReady(function () {\r\n\t\t\t\t\t\t\tvar dashedNamespace = utils.toDashed(namespace);\r\n\t\t\t\t\t\t\tvar dataAttr = 'data-' + dashedNamespace;\r\n\t\t\t\t\t\t\tvar dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\r\n\t\t\t\t\t\t\tvar jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\r\n\t\t\t\t\t\t\tvar elems = utils.makeArray(dataAttrElems)\r\n\t\t\t\t\t\t\t\t.concat(utils.makeArray(jsDashElems));\r\n\t\t\t\t\t\t\tvar dataOptionsAttr = dataAttr + '-options';\r\n\t\t\t\t\t\t\tvar jQuery = window.jQuery;\r\n\r\n\t\t\t\t\t\t\telems.forEach(function (elem) {\r\n\t\t\t\t\t\t\t\tvar attr = elem.getAttribute(dataAttr) ||\r\n\t\t\t\t\t\t\t\t\telem.getAttribute(dataOptionsAttr);\r\n\t\t\t\t\t\t\t\tvar options;\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\toptions = attr && JSON.parse(attr);\r\n\t\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\t\t// log error, do not initialize\r\n\t\t\t\t\t\t\t\t\tif (console) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.error('Error parsing ' + dataAttr + ' on ' + elem.className +\r\n\t\t\t\t\t\t\t\t\t\t\t': ' + error);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// initialize\r\n\t\t\t\t\t\t\t\tvar instance = new WidgetClass(elem, options);\r\n\t\t\t\t\t\t\t\t// make available via $().data('namespace')\r\n\t\t\t\t\t\t\t\tif (jQuery) {\r\n\t\t\t\t\t\t\t\t\tjQuery.data(elem, namespace, instance);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -----  ----- //\r\n\r\n\t\t\t\t\treturn utils;\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 131:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * getSize v2.0.3\r\n * measure size of elements\r\n * MIT license\r\n */\r\n\r\n\t\t\t\t/* jshint browser: true, strict: true, undef: true, unused: true */\r\n\t\t\t\t/* globals console: false */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t/* jshint strict: false */ /* globals define, module */\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\r\n\t\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t})(window, function factory() {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\t// -------------------------- helpers -------------------------- //\r\n\r\n\t\t\t\t\t// get a number from a string, not a percentage\r\n\t\t\t\t\tfunction getStyleSize(value) {\r\n\t\t\t\t\t\tvar num = parseFloat(value);\r\n\t\t\t\t\t\t// not a percent like '100%', and a number\r\n\t\t\t\t\t\tvar isValid = value.indexOf('%') == -1 && !isNaN(num);\r\n\t\t\t\t\t\treturn isValid && num;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction noop() { }\r\n\r\n\t\t\t\t\tvar logError = typeof console == 'undefined' ? noop :\r\n\t\t\t\t\t\tfunction (message) {\r\n\t\t\t\t\t\t\tconsole.error(message);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- measurements -------------------------- //\r\n\r\n\t\t\t\t\tvar measurements = [\r\n\t\t\t\t\t\t'paddingLeft',\r\n\t\t\t\t\t\t'paddingRight',\r\n\t\t\t\t\t\t'paddingTop',\r\n\t\t\t\t\t\t'paddingBottom',\r\n\t\t\t\t\t\t'marginLeft',\r\n\t\t\t\t\t\t'marginRight',\r\n\t\t\t\t\t\t'marginTop',\r\n\t\t\t\t\t\t'marginBottom',\r\n\t\t\t\t\t\t'borderLeftWidth',\r\n\t\t\t\t\t\t'borderRightWidth',\r\n\t\t\t\t\t\t'borderTopWidth',\r\n\t\t\t\t\t\t'borderBottomWidth'\r\n\t\t\t\t\t];\r\n\r\n\t\t\t\t\tvar measurementsLength = measurements.length;\r\n\r\n\t\t\t\t\tfunction getZeroSize() {\r\n\t\t\t\t\t\tvar size = {\r\n\t\t\t\t\t\t\twidth: 0,\r\n\t\t\t\t\t\t\theight: 0,\r\n\t\t\t\t\t\t\tinnerWidth: 0,\r\n\t\t\t\t\t\t\tinnerHeight: 0,\r\n\t\t\t\t\t\t\touterWidth: 0,\r\n\t\t\t\t\t\t\touterHeight: 0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tfor (var i = 0; i < measurementsLength; i++) {\r\n\t\t\t\t\t\t\tvar measurement = measurements[i];\r\n\t\t\t\t\t\t\tsize[measurement] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn size;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------- getStyle -------------------------- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * getStyle, get style of element, check for Firefox bug\r\n\t\t\t\t\t * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction getStyle(elem) {\r\n\t\t\t\t\t\tvar style = getComputedStyle(elem);\r\n\t\t\t\t\t\tif (!style) {\r\n\t\t\t\t\t\t\tlogError('Style returned ' + style +\r\n\t\t\t\t\t\t\t\t'. Are you running this code in a hidden iframe on Firefox? ' +\r\n\t\t\t\t\t\t\t\t'See https://bit.ly/getsizebug1');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn style;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------- setup -------------------------- //\r\n\r\n\t\t\t\t\tvar isSetup = false;\r\n\r\n\t\t\t\t\tvar isBoxSizeOuter;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * setup\r\n\t\t\t\t\t * check isBoxSizerOuter\r\n\t\t\t\t\t * do on first getSize() rather than on page load for Firefox bug\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction setup() {\r\n\t\t\t\t\t\t// setup once\r\n\t\t\t\t\t\tif (isSetup) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tisSetup = true;\r\n\r\n\t\t\t\t\t\t// -------------------------- box sizing -------------------------- //\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Chrome & Safari measure the outer-width on style.width on border-box elems\r\n\t\t\t\t\t\t * IE11 & Firefox<29 measures the inner-width\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tvar div = document.createElement('div');\r\n\t\t\t\t\t\tdiv.style.width = '200px';\r\n\t\t\t\t\t\tdiv.style.padding = '1px 2px 3px 4px';\r\n\t\t\t\t\t\tdiv.style.borderStyle = 'solid';\r\n\t\t\t\t\t\tdiv.style.borderWidth = '1px 2px 3px 4px';\r\n\t\t\t\t\t\tdiv.style.boxSizing = 'border-box';\r\n\r\n\t\t\t\t\t\tvar body = document.body || document.documentElement;\r\n\t\t\t\t\t\tbody.appendChild(div);\r\n\t\t\t\t\t\tvar style = getStyle(div);\r\n\t\t\t\t\t\t// round value for browser zoom. desandro/masonry#928\r\n\t\t\t\t\t\tisBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\r\n\t\t\t\t\t\tgetSize.isBoxSizeOuter = isBoxSizeOuter;\r\n\r\n\t\t\t\t\t\tbody.removeChild(div);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------- getSize -------------------------- //\r\n\r\n\t\t\t\t\tfunction getSize(elem) {\r\n\t\t\t\t\t\tsetup();\r\n\r\n\t\t\t\t\t\t// use querySeletor if elem is string\r\n\t\t\t\t\t\tif (typeof elem == 'string') {\r\n\t\t\t\t\t\t\telem = document.querySelector(elem);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// do not proceed on non-objects\r\n\t\t\t\t\t\tif (!elem || typeof elem != 'object' || !elem.nodeType) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar style = getStyle(elem);\r\n\r\n\t\t\t\t\t\t// if hidden, everything is 0\r\n\t\t\t\t\t\tif (style.display == 'none') {\r\n\t\t\t\t\t\t\treturn getZeroSize();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar size = {};\r\n\t\t\t\t\t\tsize.width = elem.offsetWidth;\r\n\t\t\t\t\t\tsize.height = elem.offsetHeight;\r\n\r\n\t\t\t\t\t\tvar isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\r\n\r\n\t\t\t\t\t\t// get all measurements\r\n\t\t\t\t\t\tfor (var i = 0; i < measurementsLength; i++) {\r\n\t\t\t\t\t\t\tvar measurement = measurements[i];\r\n\t\t\t\t\t\t\tvar value = style[measurement];\r\n\t\t\t\t\t\t\tvar num = parseFloat(value);\r\n\t\t\t\t\t\t\t// any 'auto', 'medium' value will be 0\r\n\t\t\t\t\t\t\tsize[measurement] = !isNaN(num) ? num : 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar paddingWidth = size.paddingLeft + size.paddingRight;\r\n\t\t\t\t\t\tvar paddingHeight = size.paddingTop + size.paddingBottom;\r\n\t\t\t\t\t\tvar marginWidth = size.marginLeft + size.marginRight;\r\n\t\t\t\t\t\tvar marginHeight = size.marginTop + size.marginBottom;\r\n\t\t\t\t\t\tvar borderWidth = size.borderLeftWidth + size.borderRightWidth;\r\n\t\t\t\t\t\tvar borderHeight = size.borderTopWidth + size.borderBottomWidth;\r\n\r\n\t\t\t\t\t\tvar isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\r\n\r\n\t\t\t\t\t\t// overwrite width and height if we can get it from style\r\n\t\t\t\t\t\tvar styleWidth = getStyleSize(style.width);\r\n\t\t\t\t\t\tif (styleWidth !== false) {\r\n\t\t\t\t\t\t\tsize.width = styleWidth +\r\n\t\t\t\t\t\t\t\t// add padding and border unless it's already including it\r\n\t\t\t\t\t\t\t\t(isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar styleHeight = getStyleSize(style.height);\r\n\t\t\t\t\t\tif (styleHeight !== false) {\r\n\t\t\t\t\t\t\tsize.height = styleHeight +\r\n\t\t\t\t\t\t\t\t// add padding and border unless it's already including it\r\n\t\t\t\t\t\t\t\t(isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsize.innerWidth = size.width - (paddingWidth + borderWidth);\r\n\t\t\t\t\t\tsize.innerHeight = size.height - (paddingHeight + borderHeight);\r\n\r\n\t\t\t\t\t\tsize.outerWidth = size.width + marginWidth;\r\n\t\t\t\t\t\tsize.outerHeight = size.height + marginHeight;\r\n\r\n\t\t\t\t\t\treturn size;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn getSize;\r\n\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 876:\r\n/***/ ((module) => {\r\n\r\n\t\t\t\t\"use strict\";\r\n\r\n\r\n\t\t\t\tmodule.exports = function (el, onOver, onOut) {\r\n\t\t\t\t\tvar x, y, pX, pY;\r\n\t\t\t\t\tvar mouseOver = false;\r\n\t\t\t\t\tvar focused = false;\r\n\t\t\t\t\tvar h = {},\r\n\t\t\t\t\t\tstate = 0,\r\n\t\t\t\t\t\ttimer = 0;\r\n\r\n\t\t\t\t\tvar options = {\r\n\t\t\t\t\t\tsensitivity: 7,\r\n\t\t\t\t\t\tinterval: 100,\r\n\t\t\t\t\t\ttimeout: 0,\r\n\t\t\t\t\t\thandleFocus: false\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction delay(el, e) {\r\n\t\t\t\t\t\tif (timer) timer = clearTimeout(timer);\r\n\t\t\t\t\t\tstate = 0;\r\n\t\t\t\t\t\treturn focused ? undefined : onOut.call(el, e);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction tracker(e) {\r\n\t\t\t\t\t\tx = e.clientX;\r\n\t\t\t\t\t\ty = e.clientY;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction compare(el, e) {\r\n\t\t\t\t\t\tif (timer) timer = clearTimeout(timer);\r\n\t\t\t\t\t\tif ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {\r\n\t\t\t\t\t\t\tstate = 1;\r\n\t\t\t\t\t\t\treturn focused ? undefined : onOver.call(el, e);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpX = x;\r\n\t\t\t\t\t\t\tpY = y;\r\n\t\t\t\t\t\t\ttimer = setTimeout(function () {\r\n\t\t\t\t\t\t\t\tcompare(el, e);\r\n\t\t\t\t\t\t\t}, options.interval);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Public methods\r\n\t\t\t\t\th.options = function (opt) {\r\n\t\t\t\t\t\tvar focusOptionChanged = opt.handleFocus !== options.handleFocus;\r\n\t\t\t\t\t\toptions = Object.assign({}, options, opt);\r\n\t\t\t\t\t\tif (focusOptionChanged) {\r\n\t\t\t\t\t\t\toptions.handleFocus ? addFocus() : removeFocus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn h;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction dispatchOver(e) {\r\n\t\t\t\t\t\tmouseOver = true;\r\n\t\t\t\t\t\tif (timer) timer = clearTimeout(timer);\r\n\t\t\t\t\t\tel.removeEventListener('mousemove', tracker, false);\r\n\r\n\t\t\t\t\t\tif (state !== 1) {\r\n\t\t\t\t\t\t\tpX = e.clientX;\r\n\t\t\t\t\t\t\tpY = e.clientY;\r\n\r\n\t\t\t\t\t\t\tel.addEventListener('mousemove', tracker, false);\r\n\r\n\t\t\t\t\t\t\ttimer = setTimeout(function () {\r\n\t\t\t\t\t\t\t\tcompare(el, e);\r\n\t\t\t\t\t\t\t}, options.interval);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction dispatchOut(e) {\r\n\t\t\t\t\t\tmouseOver = false;\r\n\t\t\t\t\t\tif (timer) timer = clearTimeout(timer);\r\n\t\t\t\t\t\tel.removeEventListener('mousemove', tracker, false);\r\n\r\n\t\t\t\t\t\tif (state === 1) {\r\n\t\t\t\t\t\t\ttimer = setTimeout(function () {\r\n\t\t\t\t\t\t\t\tdelay(el, e);\r\n\t\t\t\t\t\t\t}, options.timeout);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction dispatchFocus(e) {\r\n\t\t\t\t\t\tif (!mouseOver) {\r\n\t\t\t\t\t\t\tfocused = true;\r\n\t\t\t\t\t\t\tonOver.call(el, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction dispatchBlur(e) {\r\n\t\t\t\t\t\tif (!mouseOver && focused) {\r\n\t\t\t\t\t\t\tfocused = false;\r\n\t\t\t\t\t\t\tonOut.call(el, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addFocus() {\r\n\t\t\t\t\t\tel.addEventListener('focus', dispatchFocus, false);\r\n\t\t\t\t\t\tel.addEventListener('blur', dispatchBlur, false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction removeFocus() {\r\n\t\t\t\t\t\tel.removeEventListener('focus', dispatchFocus, false);\r\n\t\t\t\t\t\tel.removeEventListener('blur', dispatchBlur, false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\th.remove = function () {\r\n\t\t\t\t\t\tif (!el) return;\r\n\t\t\t\t\t\tel.removeEventListener('mouseover', dispatchOver, false);\r\n\t\t\t\t\t\tel.removeEventListener('mouseout', dispatchOut, false);\r\n\t\t\t\t\t\tremoveFocus();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (el) {\r\n\t\t\t\t\t\tel.addEventListener('mouseover', dispatchOver, false);\r\n\t\t\t\t\t\tel.addEventListener('mouseout', dispatchOut, false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn h;\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 564:\r\n/***/ (function (module, exports, __webpack_require__) {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * imagesLoaded v4.1.4\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t'use strict';\r\n\t\t\t\t\t// universal module definition\r\n\r\n\t\t\t\t\t/*global define: false, module: false, require: false */\r\n\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\r\n\t\t\t\t\t\t\t__webpack_require__(158)\r\n\t\t\t\t\t\t], __WEBPACK_AMD_DEFINE_RESULT__ = (function (EvEmitter) {\r\n\t\t\t\t\t\t\treturn factory(window, EvEmitter);\r\n\t\t\t\t\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t})(typeof window !== 'undefined' ? window : this,\r\n\r\n\t\t\t\t\t// --------------------------  factory -------------------------- //\r\n\r\n\t\t\t\t\tfunction factory(window, EvEmitter) {\r\n\r\n\t\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\t\tvar $ = window.jQuery;\r\n\t\t\t\t\t\tvar console = window.console;\r\n\r\n\t\t\t\t\t\t// -------------------------- helpers -------------------------- //\r\n\r\n\t\t\t\t\t\t// extend objects\r\n\t\t\t\t\t\tfunction extend(a, b) {\r\n\t\t\t\t\t\t\tfor (var prop in b) {\r\n\t\t\t\t\t\t\t\ta[prop] = b[prop];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn a;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar arraySlice = Array.prototype.slice;\r\n\r\n\t\t\t\t\t\t// turn element or nodeList into an array\r\n\t\t\t\t\t\tfunction makeArray(obj) {\r\n\t\t\t\t\t\t\tif (Array.isArray(obj)) {\r\n\t\t\t\t\t\t\t\t// use object if already an array\r\n\t\t\t\t\t\t\t\treturn obj;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n\t\t\t\t\t\t\tif (isArrayLike) {\r\n\t\t\t\t\t\t\t\t// convert nodeList to array\r\n\t\t\t\t\t\t\t\treturn arraySlice.call(obj);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// array of single index\r\n\t\t\t\t\t\t\treturn [obj];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// -------------------------- imagesLoaded -------------------------- //\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * @param {Array, Element, NodeList, String} elem\r\n\t\t\t\t\t\t * @param {Object or Function} options - if function, use as callback\r\n\t\t\t\t\t\t * @param {Function} onAlways - callback function\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tfunction ImagesLoaded(elem, options, onAlways) {\r\n\t\t\t\t\t\t\t// coerce ImagesLoaded() without new, to be new ImagesLoaded()\r\n\t\t\t\t\t\t\tif (!(this instanceof ImagesLoaded)) {\r\n\t\t\t\t\t\t\t\treturn new ImagesLoaded(elem, options, onAlways);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// use elem as selector string\r\n\t\t\t\t\t\t\tvar queryElem = elem;\r\n\t\t\t\t\t\t\tif (typeof elem == 'string') {\r\n\t\t\t\t\t\t\t\tqueryElem = document.querySelectorAll(elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// bail if bad element\r\n\t\t\t\t\t\t\tif (!queryElem) {\r\n\t\t\t\t\t\t\t\tconsole.error('Bad element for imagesLoaded ' + (queryElem || elem));\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.elements = makeArray(queryElem);\r\n\t\t\t\t\t\t\tthis.options = extend({}, this.options);\r\n\t\t\t\t\t\t\t// shift arguments if no options set\r\n\t\t\t\t\t\t\tif (typeof options == 'function') {\r\n\t\t\t\t\t\t\t\tonAlways = options;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\textend(this.options, options);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (onAlways) {\r\n\t\t\t\t\t\t\t\tthis.on('always', onAlways);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.getImages();\r\n\r\n\t\t\t\t\t\t\tif ($) {\r\n\t\t\t\t\t\t\t\t// add jQuery Deferred object\r\n\t\t\t\t\t\t\t\tthis.jqDeferred = new $.Deferred();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// HACK check async to allow time to bind listeners\r\n\t\t\t\t\t\t\tsetTimeout(this.check.bind(this));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype = Object.create(EvEmitter.prototype);\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.options = {};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.getImages = function () {\r\n\t\t\t\t\t\t\tthis.images = [];\r\n\r\n\t\t\t\t\t\t\t// filter & find items if we have an item selector\r\n\t\t\t\t\t\t\tthis.elements.forEach(this.addElementImages, this);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * @param {Node} element\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tImagesLoaded.prototype.addElementImages = function (elem) {\r\n\t\t\t\t\t\t\t// filter siblings\r\n\t\t\t\t\t\t\tif (elem.nodeName == 'IMG') {\r\n\t\t\t\t\t\t\t\tthis.addImage(elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// get background image on element\r\n\t\t\t\t\t\t\tif (this.options.background === true) {\r\n\t\t\t\t\t\t\t\tthis.addElementBackgroundImages(elem);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// find children\r\n\t\t\t\t\t\t\t// no non-element nodes, #143\r\n\t\t\t\t\t\t\tvar nodeType = elem.nodeType;\r\n\t\t\t\t\t\t\tif (!nodeType || !elementNodeTypes[nodeType]) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar childImgs = elem.querySelectorAll('img');\r\n\t\t\t\t\t\t\t// concat childElems to filterFound array\r\n\t\t\t\t\t\t\tfor (var i = 0; i < childImgs.length; i++) {\r\n\t\t\t\t\t\t\t\tvar img = childImgs[i];\r\n\t\t\t\t\t\t\t\tthis.addImage(img);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// get child background images\r\n\t\t\t\t\t\t\tif (typeof this.options.background == 'string') {\r\n\t\t\t\t\t\t\t\tvar children = elem.querySelectorAll(this.options.background);\r\n\t\t\t\t\t\t\t\tfor (i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar child = children[i];\r\n\t\t\t\t\t\t\t\t\tthis.addElementBackgroundImages(child);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar elementNodeTypes = {\r\n\t\t\t\t\t\t\t1: true,\r\n\t\t\t\t\t\t\t9: true,\r\n\t\t\t\t\t\t\t11: true\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.addElementBackgroundImages = function (elem) {\r\n\t\t\t\t\t\t\tvar style = getComputedStyle(elem);\r\n\t\t\t\t\t\t\tif (!style) {\r\n\t\t\t\t\t\t\t\t// Firefox returns null if in a hidden iframe https://bugzil.la/548397\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// get url inside url(\"...\")\r\n\t\t\t\t\t\t\tvar reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\r\n\t\t\t\t\t\t\tvar matches = reURL.exec(style.backgroundImage);\r\n\t\t\t\t\t\t\twhile (matches !== null) {\r\n\t\t\t\t\t\t\t\tvar url = matches && matches[2];\r\n\t\t\t\t\t\t\t\tif (url) {\r\n\t\t\t\t\t\t\t\t\tthis.addBackground(url, elem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tmatches = reURL.exec(style.backgroundImage);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * @param {Image} img\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tImagesLoaded.prototype.addImage = function (img) {\r\n\t\t\t\t\t\t\tvar loadingImage = new LoadingImage(img);\r\n\t\t\t\t\t\t\tthis.images.push(loadingImage);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.addBackground = function (url, elem) {\r\n\t\t\t\t\t\t\tvar background = new Background(url, elem);\r\n\t\t\t\t\t\t\tthis.images.push(background);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.check = function () {\r\n\t\t\t\t\t\t\tvar _this = this;\r\n\t\t\t\t\t\t\tthis.progressedCount = 0;\r\n\t\t\t\t\t\t\tthis.hasAnyBroken = false;\r\n\t\t\t\t\t\t\t// complete if no images\r\n\t\t\t\t\t\t\tif (!this.images.length) {\r\n\t\t\t\t\t\t\t\tthis.complete();\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction onProgress(image, elem, message) {\r\n\t\t\t\t\t\t\t\t// HACK - Chrome triggers event before object properties have changed. #83\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t_this.progress(image, elem, message);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.images.forEach(function (loadingImage) {\r\n\t\t\t\t\t\t\t\tloadingImage.once('progress', onProgress);\r\n\t\t\t\t\t\t\t\tloadingImage.check();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.progress = function (image, elem, message) {\r\n\t\t\t\t\t\t\tthis.progressedCount++;\r\n\t\t\t\t\t\t\tthis.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\r\n\t\t\t\t\t\t\t// progress event\r\n\t\t\t\t\t\t\tthis.emitEvent('progress', [this, image, elem]);\r\n\t\t\t\t\t\t\tif (this.jqDeferred && this.jqDeferred.notify) {\r\n\t\t\t\t\t\t\t\tthis.jqDeferred.notify(this, image);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// check if completed\r\n\t\t\t\t\t\t\tif (this.progressedCount == this.images.length) {\r\n\t\t\t\t\t\t\t\tthis.complete();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (this.options.debug && console) {\r\n\t\t\t\t\t\t\t\tconsole.log('progress: ' + message, image, elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tImagesLoaded.prototype.complete = function () {\r\n\t\t\t\t\t\t\tvar eventName = this.hasAnyBroken ? 'fail' : 'done';\r\n\t\t\t\t\t\t\tthis.isComplete = true;\r\n\t\t\t\t\t\t\tthis.emitEvent(eventName, [this]);\r\n\t\t\t\t\t\t\tthis.emitEvent('always', [this]);\r\n\t\t\t\t\t\t\tif (this.jqDeferred) {\r\n\t\t\t\t\t\t\t\tvar jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\r\n\t\t\t\t\t\t\t\tthis.jqDeferred[jqMethod](this);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// --------------------------  -------------------------- //\r\n\r\n\t\t\t\t\t\tfunction LoadingImage(img) {\r\n\t\t\t\t\t\t\tthis.img = img;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype = Object.create(EvEmitter.prototype);\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.check = function () {\r\n\t\t\t\t\t\t\t// If complete is true and browser supports natural sizes,\r\n\t\t\t\t\t\t\t// try to check for image status manually.\r\n\t\t\t\t\t\t\tvar isComplete = this.getIsImageComplete();\r\n\t\t\t\t\t\t\tif (isComplete) {\r\n\t\t\t\t\t\t\t\t// report based on naturalWidth\r\n\t\t\t\t\t\t\t\tthis.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// If none of the checks above matched, simulate loading on detached element.\r\n\t\t\t\t\t\t\tthis.proxyImage = new Image();\r\n\t\t\t\t\t\t\tthis.proxyImage.addEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.proxyImage.addEventListener('error', this);\r\n\t\t\t\t\t\t\t// bind to image as well for Firefox. #191\r\n\t\t\t\t\t\t\tthis.img.addEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.img.addEventListener('error', this);\r\n\t\t\t\t\t\t\tthis.proxyImage.src = this.img.src;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.getIsImageComplete = function () {\r\n\t\t\t\t\t\t\t// check for non-zero, non-undefined naturalWidth\r\n\t\t\t\t\t\t\t// fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\r\n\t\t\t\t\t\t\treturn this.img.complete && this.img.naturalWidth;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.confirm = function (isLoaded, message) {\r\n\t\t\t\t\t\t\tthis.isLoaded = isLoaded;\r\n\t\t\t\t\t\t\tthis.emitEvent('progress', [this, this.img, message]);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// ----- events ----- //\r\n\r\n\t\t\t\t\t\t// trigger specified handler for event type\r\n\t\t\t\t\t\tLoadingImage.prototype.handleEvent = function (event) {\r\n\t\t\t\t\t\t\tvar method = 'on' + event.type;\r\n\t\t\t\t\t\t\tif (this[method]) {\r\n\t\t\t\t\t\t\t\tthis[method](event);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.onload = function () {\r\n\t\t\t\t\t\t\tthis.confirm(true, 'onload');\r\n\t\t\t\t\t\t\tthis.unbindEvents();\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.onerror = function () {\r\n\t\t\t\t\t\t\tthis.confirm(false, 'onerror');\r\n\t\t\t\t\t\t\tthis.unbindEvents();\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tLoadingImage.prototype.unbindEvents = function () {\r\n\t\t\t\t\t\t\tthis.proxyImage.removeEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.proxyImage.removeEventListener('error', this);\r\n\t\t\t\t\t\t\tthis.img.removeEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.img.removeEventListener('error', this);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// -------------------------- Background -------------------------- //\r\n\r\n\t\t\t\t\t\tfunction Background(url, element) {\r\n\t\t\t\t\t\t\tthis.url = url;\r\n\t\t\t\t\t\t\tthis.element = element;\r\n\t\t\t\t\t\t\tthis.img = new Image();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// inherit LoadingImage prototype\r\n\t\t\t\t\t\tBackground.prototype = Object.create(LoadingImage.prototype);\r\n\r\n\t\t\t\t\t\tBackground.prototype.check = function () {\r\n\t\t\t\t\t\t\tthis.img.addEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.img.addEventListener('error', this);\r\n\t\t\t\t\t\t\tthis.img.src = this.url;\r\n\t\t\t\t\t\t\t// check if image is already complete\r\n\t\t\t\t\t\t\tvar isComplete = this.getIsImageComplete();\r\n\t\t\t\t\t\t\tif (isComplete) {\r\n\t\t\t\t\t\t\t\tthis.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\r\n\t\t\t\t\t\t\t\tthis.unbindEvents();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tBackground.prototype.unbindEvents = function () {\r\n\t\t\t\t\t\t\tthis.img.removeEventListener('load', this);\r\n\t\t\t\t\t\t\tthis.img.removeEventListener('error', this);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tBackground.prototype.confirm = function (isLoaded, message) {\r\n\t\t\t\t\t\t\tthis.isLoaded = isLoaded;\r\n\t\t\t\t\t\t\tthis.emitEvent('progress', [this, this.element, message]);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// -------------------------- jQuery -------------------------- //\r\n\r\n\t\t\t\t\t\tImagesLoaded.makeJQueryPlugin = function (jQuery) {\r\n\t\t\t\t\t\t\tjQuery = jQuery || window.jQuery;\r\n\t\t\t\t\t\t\tif (!jQuery) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// set local variable\r\n\t\t\t\t\t\t\t$ = jQuery;\r\n\t\t\t\t\t\t\t// $().imagesLoaded()\r\n\t\t\t\t\t\t\t$.fn.imagesLoaded = function (options, callback) {\r\n\t\t\t\t\t\t\t\tvar instance = new ImagesLoaded(this, options, callback);\r\n\t\t\t\t\t\t\t\treturn instance.jqDeferred.promise($(this));\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\t// try making plugin\r\n\t\t\t\t\t\tImagesLoaded.makeJQueryPlugin();\r\n\r\n\t\t\t\t\t\t// --------------------------  -------------------------- //\r\n\r\n\t\t\t\t\t\treturn ImagesLoaded;\r\n\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 357:\r\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\r\n\r\n/* provided dependency */ var __webpack_provided_window_dot_jQuery = __webpack_require__(755);\r\n\t\t\t\t/*!\r\n\t\t\t\t\tZoom 1.7.21\r\n\t\t\t\t\tlicense: MIT\r\n\t\t\t\t\thttp://www.jacklmoore.com/zoom\r\n\t\t\t\t*/\r\n\t\t\t\t(function ($) {\r\n\t\t\t\t\tvar defaults = {\r\n\t\t\t\t\t\turl: false,\r\n\t\t\t\t\t\tcallback: false,\r\n\t\t\t\t\t\ttarget: false,\r\n\t\t\t\t\t\tduration: 120,\r\n\t\t\t\t\t\ton: 'mouseover', // other options: grab, click, toggle\r\n\t\t\t\t\t\ttouch: true, // enables a touch fallback\r\n\t\t\t\t\t\tonZoomIn: false,\r\n\t\t\t\t\t\tonZoomOut: false,\r\n\t\t\t\t\t\tmagnify: 1\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Core Zoom Logic, independent of event listeners.\r\n\t\t\t\t\t$.zoom = function (target, source, img, magnify) {\r\n\t\t\t\t\t\tvar targetHeight,\r\n\t\t\t\t\t\t\ttargetWidth,\r\n\t\t\t\t\t\t\tsourceHeight,\r\n\t\t\t\t\t\t\tsourceWidth,\r\n\t\t\t\t\t\t\txRatio,\r\n\t\t\t\t\t\t\tyRatio,\r\n\t\t\t\t\t\t\toffset,\r\n\t\t\t\t\t\t\t$target = $(target),\r\n\t\t\t\t\t\t\tposition = $target.css('position'),\r\n\t\t\t\t\t\t\t$source = $(source);\r\n\r\n\t\t\t\t\t\t// The parent element needs positioning so that the zoomed element can be correctly positioned within.\r\n\t\t\t\t\t\ttarget.style.position = /(absolute|fixed)/.test(position) ? position : 'relative';\r\n\t\t\t\t\t\ttarget.style.overflow = 'hidden';\r\n\t\t\t\t\t\timg.style.width = img.style.height = '';\r\n\r\n\t\t\t\t\t\t$(img)\r\n\t\t\t\t\t\t\t.addClass('zoomImg')\r\n\t\t\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\t\t\twidth: img.width * magnify,\r\n\t\t\t\t\t\t\t\theight: img.height * magnify,\r\n\t\t\t\t\t\t\t\tborder: 'none',\r\n\t\t\t\t\t\t\t\tmaxWidth: 'none',\r\n\t\t\t\t\t\t\t\tmaxHeight: 'none'\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.appendTo(target);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tinit: function () {\r\n\t\t\t\t\t\t\t\ttargetWidth = $target.outerWidth();\r\n\t\t\t\t\t\t\t\ttargetHeight = $target.outerHeight();\r\n\r\n\t\t\t\t\t\t\t\tif (source === target) {\r\n\t\t\t\t\t\t\t\t\tsourceWidth = targetWidth;\r\n\t\t\t\t\t\t\t\t\tsourceHeight = targetHeight;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tsourceWidth = $source.outerWidth();\r\n\t\t\t\t\t\t\t\t\tsourceHeight = $source.outerHeight();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\txRatio = (img.width - targetWidth) / sourceWidth;\r\n\t\t\t\t\t\t\t\tyRatio = (img.height - targetHeight) / sourceHeight;\r\n\r\n\t\t\t\t\t\t\t\toffset = $source.offset();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tmove: function (e) {\r\n\t\t\t\t\t\t\t\tvar left = (e.pageX - offset.left),\r\n\t\t\t\t\t\t\t\t\ttop = (e.pageY - offset.top);\r\n\r\n\t\t\t\t\t\t\t\ttop = Math.max(Math.min(top, sourceHeight), 0);\r\n\t\t\t\t\t\t\t\tleft = Math.max(Math.min(left, sourceWidth), 0);\r\n\r\n\t\t\t\t\t\t\t\timg.style.left = (left * -xRatio) + 'px';\r\n\t\t\t\t\t\t\t\timg.style.top = (top * -yRatio) + 'px';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$.fn.zoom = function (options) {\r\n\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\tvar\r\n\t\t\t\t\t\t\t\tsettings = $.extend({}, defaults, options || {}),\r\n\t\t\t\t\t\t\t\t//target will display the zoomed image\r\n\t\t\t\t\t\t\t\ttarget = settings.target && $(settings.target)[0] || this,\r\n\t\t\t\t\t\t\t\t//source will provide zoom location info (thumbnail)\r\n\t\t\t\t\t\t\t\tsource = this,\r\n\t\t\t\t\t\t\t\t$source = $(source),\r\n\t\t\t\t\t\t\t\timg = document.createElement('img'),\r\n\t\t\t\t\t\t\t\t$img = $(img),\r\n\t\t\t\t\t\t\t\tmousemove = 'mousemove.zoom',\r\n\t\t\t\t\t\t\t\tclicked = false,\r\n\t\t\t\t\t\t\t\ttouched = false;\r\n\r\n\t\t\t\t\t\t\t// If a url wasn't specified, look for an image element.\r\n\t\t\t\t\t\t\tif (!settings.url) {\r\n\t\t\t\t\t\t\t\tvar srcElement = source.querySelector('img');\r\n\t\t\t\t\t\t\t\tif (srcElement) {\r\n\t\t\t\t\t\t\t\t\tsettings.url = srcElement.getAttribute('data-src') || srcElement.currentSrc || srcElement.src;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!settings.url) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$source.one('zoom.destroy', function (position, overflow) {\r\n\t\t\t\t\t\t\t\t$source.off(\".zoom\");\r\n\t\t\t\t\t\t\t\ttarget.style.position = position;\r\n\t\t\t\t\t\t\t\ttarget.style.overflow = overflow;\r\n\t\t\t\t\t\t\t\timg.onload = null;\r\n\t\t\t\t\t\t\t\t$img.remove();\r\n\t\t\t\t\t\t\t}.bind(this, target.style.position, target.style.overflow));\r\n\r\n\t\t\t\t\t\t\timg.onload = function () {\r\n\t\t\t\t\t\t\t\tvar zoom = $.zoom(target, source, img, settings.magnify);\r\n\r\n\t\t\t\t\t\t\t\tfunction start(e) {\r\n\t\t\t\t\t\t\t\t\tzoom.init();\r\n\t\t\t\t\t\t\t\t\tzoom.move(e);\r\n\r\n\t\t\t\t\t\t\t\t\t// Skip the fade-in for IE8 and lower since it chokes on fading-in\r\n\t\t\t\t\t\t\t\t\t// and changing position based on mousemovement at the same time.\r\n\t\t\t\t\t\t\t\t\t$img.stop()\r\n\t\t\t\t\t\t\t\t\t\t.fadeTo($.support.opacity ? settings.duration : 0, 1, $.isFunction(settings.onZoomIn) ? settings.onZoomIn.call(img) : false);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfunction stop() {\r\n\t\t\t\t\t\t\t\t\t$img.stop()\r\n\t\t\t\t\t\t\t\t\t\t.fadeTo(settings.duration, 0, $.isFunction(settings.onZoomOut) ? settings.onZoomOut.call(img) : false);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Mouse events\r\n\t\t\t\t\t\t\t\tif (settings.on === 'grab') {\r\n\t\t\t\t\t\t\t\t\t$source\r\n\t\t\t\t\t\t\t\t\t\t.on('mousedown.zoom',\r\n\t\t\t\t\t\t\t\t\t\t\tfunction (e) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.which === 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t$(document).one('mouseup.zoom',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstop();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(document).off(mousemove, zoom.move);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstart(e);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t$(document).on(mousemove, zoom.move);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t} else if (settings.on === 'click') {\r\n\t\t\t\t\t\t\t\t\t$source.on('click.zoom',\r\n\t\t\t\t\t\t\t\t\t\tfunction (e) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (clicked) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// bubble the event up to the document to trigger the unbind.\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tclicked = true;\r\n\t\t\t\t\t\t\t\t\t\t\t\tstart(e);\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(document).on(mousemove, zoom.move);\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(document).one('click.zoom',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstop();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclicked = false;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(document).off(mousemove, zoom.move);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t} else if (settings.on === 'toggle') {\r\n\t\t\t\t\t\t\t\t\t$source.on('click.zoom',\r\n\t\t\t\t\t\t\t\t\t\tfunction (e) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (clicked) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tstop();\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tstart(e);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tclicked = !clicked;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t} else if (settings.on === 'mouseover') {\r\n\t\t\t\t\t\t\t\t\tzoom.init(); // Preemptively call init because IE7 will fire the mousemove handler before the hover handler.\r\n\r\n\t\t\t\t\t\t\t\t\t$source\r\n\t\t\t\t\t\t\t\t\t\t.on('mouseenter.zoom', start)\r\n\t\t\t\t\t\t\t\t\t\t.on('mouseleave.zoom', stop)\r\n\t\t\t\t\t\t\t\t\t\t.on(mousemove, zoom.move);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Touch fallback\r\n\t\t\t\t\t\t\t\tif (settings.touch) {\r\n\t\t\t\t\t\t\t\t\t$source\r\n\t\t\t\t\t\t\t\t\t\t.on('touchstart.zoom', function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\tif (touched) {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttouched = false;\r\n\t\t\t\t\t\t\t\t\t\t\t\tstop();\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttouched = true;\r\n\t\t\t\t\t\t\t\t\t\t\t\tstart(e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.on('touchmove.zoom', function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\tzoom.move(e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]);\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t.on('touchend.zoom', function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\tif (touched) {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttouched = false;\r\n\t\t\t\t\t\t\t\t\t\t\t\tstop();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif ($.isFunction(settings.callback)) {\r\n\t\t\t\t\t\t\t\t\tsettings.callback.call(img);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\timg.setAttribute('role', 'presentation');\r\n\t\t\t\t\t\t\timg.alt = '';\r\n\t\t\t\t\t\t\timg.src = settings.url;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t$.fn.zoom.defaults = defaults;\r\n\t\t\t\t}(__webpack_provided_window_dot_jQuery));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 755:\r\n/***/ (function (module, exports) {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * jQuery JavaScript Library v3.6.0\r\n * https://jquery.com/\r\n *\r\n * Includes Sizzle.js\r\n * https://sizzlejs.com/\r\n *\r\n * Copyright OpenJS Foundation and other contributors\r\n * Released under the MIT license\r\n * https://jquery.org/license\r\n *\r\n * Date: 2021-03-02T17:08Z\r\n */\r\n\t\t\t\t(function (global, factory) {\r\n\r\n\t\t\t\t\t\"use strict\";\r\n\r\n\t\t\t\t\tif (true && typeof module.exports === \"object\") {\r\n\r\n\t\t\t\t\t\t// For CommonJS and CommonJS-like environments where a proper `window`\r\n\t\t\t\t\t\t// is present, execute the factory and get jQuery.\r\n\t\t\t\t\t\t// For environments that do not have a `window` with a `document`\r\n\t\t\t\t\t\t// (such as Node.js), expose a factory as module.exports.\r\n\t\t\t\t\t\t// This accentuates the need for the creation of a real `window`.\r\n\t\t\t\t\t\t// e.g. var jQuery = require(\"jquery\")(window);\r\n\t\t\t\t\t\t// See ticket #14549 for more info.\r\n\t\t\t\t\t\tmodule.exports = global.document ?\r\n\t\t\t\t\t\t\tfactory(global, true) :\r\n\t\t\t\t\t\t\tfunction (w) {\r\n\t\t\t\t\t\t\t\tif (!w.document) {\r\n\t\t\t\t\t\t\t\t\tthrow new Error(\"jQuery requires a window with a document\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn factory(w);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfactory(global);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Pass this if window is not defined yet\r\n\t\t\t\t})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\r\n\r\n\t\t\t\t\t// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\r\n\t\t\t\t\t// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\r\n\t\t\t\t\t// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\r\n\t\t\t\t\t// enough that all such attempts are guarded in a try block.\r\n\t\t\t\t\t\"use strict\";\r\n\r\n\t\t\t\t\tvar arr = [];\r\n\r\n\t\t\t\t\tvar getProto = Object.getPrototypeOf;\r\n\r\n\t\t\t\t\tvar slice = arr.slice;\r\n\r\n\t\t\t\t\tvar flat = arr.flat ? function (array) {\r\n\t\t\t\t\t\treturn arr.flat.call(array);\r\n\t\t\t\t\t} : function (array) {\r\n\t\t\t\t\t\treturn arr.concat.apply([], array);\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar push = arr.push;\r\n\r\n\t\t\t\t\tvar indexOf = arr.indexOf;\r\n\r\n\t\t\t\t\tvar class2type = {};\r\n\r\n\t\t\t\t\tvar toString = class2type.toString;\r\n\r\n\t\t\t\t\tvar hasOwn = class2type.hasOwnProperty;\r\n\r\n\t\t\t\t\tvar fnToString = hasOwn.toString;\r\n\r\n\t\t\t\t\tvar ObjectFunctionString = fnToString.call(Object);\r\n\r\n\t\t\t\t\tvar support = {};\r\n\r\n\t\t\t\t\tvar isFunction = function isFunction(obj) {\r\n\r\n\t\t\t\t\t\t// Support: Chrome <=57, Firefox <=52\r\n\t\t\t\t\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\r\n\t\t\t\t\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\r\n\t\t\t\t\t\t// We don't want to classify *any* DOM node as a function.\r\n\t\t\t\t\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\r\n\t\t\t\t\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\r\n\t\t\t\t\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\r\n\t\t\t\t\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\r\n\t\t\t\t\t\t\ttypeof obj.item !== \"function\";\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar isWindow = function isWindow(obj) {\r\n\t\t\t\t\t\treturn obj != null && obj === obj.window;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar document = window.document;\r\n\r\n\r\n\r\n\t\t\t\t\tvar preservedScriptAttributes = {\r\n\t\t\t\t\t\ttype: true,\r\n\t\t\t\t\t\tsrc: true,\r\n\t\t\t\t\t\tnonce: true,\r\n\t\t\t\t\t\tnoModule: true\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction DOMEval(code, node, doc) {\r\n\t\t\t\t\t\tdoc = doc || document;\r\n\r\n\t\t\t\t\t\tvar i, val,\r\n\t\t\t\t\t\t\tscript = doc.createElement(\"script\");\r\n\r\n\t\t\t\t\t\tscript.text = code;\r\n\t\t\t\t\t\tif (node) {\r\n\t\t\t\t\t\t\tfor (i in preservedScriptAttributes) {\r\n\r\n\t\t\t\t\t\t\t\t// Support: Firefox 64+, Edge 18+\r\n\t\t\t\t\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\r\n\t\t\t\t\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\r\n\t\t\t\t\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\r\n\t\t\t\t\t\t\t\t// becomes browsing-context connected.\r\n\t\t\t\t\t\t\t\t// See https://github.com/whatwg/html/issues/2369\r\n\t\t\t\t\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\r\n\t\t\t\t\t\t\t\t// The `node.getAttribute` check was added for the sake of\r\n\t\t\t\t\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\r\n\t\t\t\t\t\t\t\t// via an object.\r\n\t\t\t\t\t\t\t\tval = node[i] || node.getAttribute && node.getAttribute(i);\r\n\t\t\t\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\t\t\t\tscript.setAttribute(i, val);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdoc.head.appendChild(script).parentNode.removeChild(script);\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction toType(obj) {\r\n\t\t\t\t\t\tif (obj == null) {\r\n\t\t\t\t\t\t\treturn obj + \"\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Support: Android <=2.3 only (functionish RegExp)\r\n\t\t\t\t\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\t\t\t\t\tclass2type[toString.call(obj)] || \"object\" :\r\n\t\t\t\t\t\t\ttypeof obj;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* global Symbol */\r\n\t\t\t\t\t// Defining this global in .eslintrc.json would create a danger of using the global\r\n\t\t\t\t\t// unguarded in another place, it seems safer to define global only for this module\r\n\r\n\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tversion = \"3.6.0\",\r\n\r\n\t\t\t\t\t\t// Define a local copy of jQuery\r\n\t\t\t\t\t\tjQuery = function (selector, context) {\r\n\r\n\t\t\t\t\t\t\t// The jQuery object is actually just the init constructor 'enhanced'\r\n\t\t\t\t\t\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\r\n\t\t\t\t\t\t\treturn new jQuery.fn.init(selector, context);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn = jQuery.prototype = {\r\n\r\n\t\t\t\t\t\t// The current version of jQuery being used\r\n\t\t\t\t\t\tjquery: version,\r\n\r\n\t\t\t\t\t\tconstructor: jQuery,\r\n\r\n\t\t\t\t\t\t// The default length of a jQuery object is 0\r\n\t\t\t\t\t\tlength: 0,\r\n\r\n\t\t\t\t\t\ttoArray: function () {\r\n\t\t\t\t\t\t\treturn slice.call(this);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Get the Nth element in the matched element set OR\r\n\t\t\t\t\t\t// Get the whole matched element set as a clean array\r\n\t\t\t\t\t\tget: function (num) {\r\n\r\n\t\t\t\t\t\t\t// Return all the elements in a clean array\r\n\t\t\t\t\t\t\tif (num == null) {\r\n\t\t\t\t\t\t\t\treturn slice.call(this);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Return just the one element from the set\r\n\t\t\t\t\t\t\treturn num < 0 ? this[num + this.length] : this[num];\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Take an array of elements and push it onto the stack\r\n\t\t\t\t\t\t// (returning the new matched element set)\r\n\t\t\t\t\t\tpushStack: function (elems) {\r\n\r\n\t\t\t\t\t\t\t// Build a new jQuery matched element set\r\n\t\t\t\t\t\t\tvar ret = jQuery.merge(this.constructor(), elems);\r\n\r\n\t\t\t\t\t\t\t// Add the old object onto the stack (as a reference)\r\n\t\t\t\t\t\t\tret.prevObject = this;\r\n\r\n\t\t\t\t\t\t\t// Return the newly-formed element set\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Execute a callback for every element in the matched set.\r\n\t\t\t\t\t\teach: function (callback) {\r\n\t\t\t\t\t\t\treturn jQuery.each(this, callback);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tmap: function (callback) {\r\n\t\t\t\t\t\t\treturn this.pushStack(jQuery.map(this, function (elem, i) {\r\n\t\t\t\t\t\t\t\treturn callback.call(elem, i, elem);\r\n\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tslice: function () {\r\n\t\t\t\t\t\t\treturn this.pushStack(slice.apply(this, arguments));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tfirst: function () {\r\n\t\t\t\t\t\t\treturn this.eq(0);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tlast: function () {\r\n\t\t\t\t\t\t\treturn this.eq(-1);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\teven: function () {\r\n\t\t\t\t\t\t\treturn this.pushStack(jQuery.grep(this, function (_elem, i) {\r\n\t\t\t\t\t\t\t\treturn (i + 1) % 2;\r\n\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\todd: function () {\r\n\t\t\t\t\t\t\treturn this.pushStack(jQuery.grep(this, function (_elem, i) {\r\n\t\t\t\t\t\t\t\treturn i % 2;\r\n\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\teq: function (i) {\r\n\t\t\t\t\t\t\tvar len = this.length,\r\n\t\t\t\t\t\t\t\tj = +i + (i < 0 ? len : 0);\r\n\t\t\t\t\t\t\treturn this.pushStack(j >= 0 && j < len ? [this[j]] : []);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tend: function () {\r\n\t\t\t\t\t\t\treturn this.prevObject || this.constructor();\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// For internal use only.\r\n\t\t\t\t\t\t// Behaves like an Array's method, not like a jQuery method.\r\n\t\t\t\t\t\tpush: push,\r\n\t\t\t\t\t\tsort: arr.sort,\r\n\t\t\t\t\t\tsplice: arr.splice\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.extend = jQuery.fn.extend = function () {\r\n\t\t\t\t\t\tvar options, name, src, copy, copyIsArray, clone,\r\n\t\t\t\t\t\t\ttarget = arguments[0] || {},\r\n\t\t\t\t\t\t\ti = 1,\r\n\t\t\t\t\t\t\tlength = arguments.length,\r\n\t\t\t\t\t\t\tdeep = false;\r\n\r\n\t\t\t\t\t\t// Handle a deep copy situation\r\n\t\t\t\t\t\tif (typeof target === \"boolean\") {\r\n\t\t\t\t\t\t\tdeep = target;\r\n\r\n\t\t\t\t\t\t\t// Skip the boolean and the target\r\n\t\t\t\t\t\t\ttarget = arguments[i] || {};\r\n\t\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Handle case when target is a string or something (possible in deep copy)\r\n\t\t\t\t\t\tif (typeof target !== \"object\" && !isFunction(target)) {\r\n\t\t\t\t\t\t\ttarget = {};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Extend jQuery itself if only one argument is passed\r\n\t\t\t\t\t\tif (i === length) {\r\n\t\t\t\t\t\t\ttarget = this;\r\n\t\t\t\t\t\t\ti--;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfor (; i < length; i++) {\r\n\r\n\t\t\t\t\t\t\t// Only deal with non-null/undefined values\r\n\t\t\t\t\t\t\tif ((options = arguments[i]) != null) {\r\n\r\n\t\t\t\t\t\t\t\t// Extend the base object\r\n\t\t\t\t\t\t\t\tfor (name in options) {\r\n\t\t\t\t\t\t\t\t\tcopy = options[name];\r\n\r\n\t\t\t\t\t\t\t\t\t// Prevent Object.prototype pollution\r\n\t\t\t\t\t\t\t\t\t// Prevent never-ending loop\r\n\t\t\t\t\t\t\t\t\tif (name === \"__proto__\" || target === copy) {\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Recurse if we're merging plain objects or arrays\r\n\t\t\t\t\t\t\t\t\tif (deep && copy && (jQuery.isPlainObject(copy) ||\r\n\t\t\t\t\t\t\t\t\t\t(copyIsArray = Array.isArray(copy)))) {\r\n\t\t\t\t\t\t\t\t\t\tsrc = target[name];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Ensure proper type for the source value\r\n\t\t\t\t\t\t\t\t\t\tif (copyIsArray && !Array.isArray(src)) {\r\n\t\t\t\t\t\t\t\t\t\t\tclone = [];\r\n\t\t\t\t\t\t\t\t\t\t} else if (!copyIsArray && !jQuery.isPlainObject(src)) {\r\n\t\t\t\t\t\t\t\t\t\t\tclone = {};\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tclone = src;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcopyIsArray = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Never move original objects, clone them\r\n\t\t\t\t\t\t\t\t\t\ttarget[name] = jQuery.extend(deep, clone, copy);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Don't bring in undefined values\r\n\t\t\t\t\t\t\t\t\t} else if (copy !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\ttarget[name] = copy;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Return the modified object\r\n\t\t\t\t\t\treturn target;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t\t\t// Unique for each copy of jQuery on the page\r\n\t\t\t\t\t\texpando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\r\n\r\n\t\t\t\t\t\t// Assume jQuery is ready without the ready module\r\n\t\t\t\t\t\tisReady: true,\r\n\r\n\t\t\t\t\t\terror: function (msg) {\r\n\t\t\t\t\t\t\tthrow new Error(msg);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tnoop: function () { },\r\n\r\n\t\t\t\t\t\tisPlainObject: function (obj) {\r\n\t\t\t\t\t\t\tvar proto, Ctor;\r\n\r\n\t\t\t\t\t\t\t// Detect obvious negatives\r\n\t\t\t\t\t\t\t// Use toString instead of jQuery.type to catch host objects\r\n\t\t\t\t\t\t\tif (!obj || toString.call(obj) !== \"[object Object]\") {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tproto = getProto(obj);\r\n\r\n\t\t\t\t\t\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\r\n\t\t\t\t\t\t\tif (!proto) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Objects with prototype are plain iff they were constructed by a global Object function\r\n\t\t\t\t\t\t\tCtor = hasOwn.call(proto, \"constructor\") && proto.constructor;\r\n\t\t\t\t\t\t\treturn typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tisEmptyObject: function (obj) {\r\n\t\t\t\t\t\t\tvar name;\r\n\r\n\t\t\t\t\t\t\tfor (name in obj) {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Evaluates a script in a provided context; falls back to the global one\r\n\t\t\t\t\t\t// if not specified.\r\n\t\t\t\t\t\tglobalEval: function (code, options, doc) {\r\n\t\t\t\t\t\t\tDOMEval(code, { nonce: options && options.nonce }, doc);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\teach: function (obj, callback) {\r\n\t\t\t\t\t\t\tvar length, i = 0;\r\n\r\n\t\t\t\t\t\t\tif (isArrayLike(obj)) {\r\n\t\t\t\t\t\t\t\tlength = obj.length;\r\n\t\t\t\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\t\t\t\tif (callback.call(obj[i], i, obj[i]) === false) {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\t\t\t\t\tif (callback.call(obj[i], i, obj[i]) === false) {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn obj;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// results is for internal usage only\r\n\t\t\t\t\t\tmakeArray: function (arr, results) {\r\n\t\t\t\t\t\t\tvar ret = results || [];\r\n\r\n\t\t\t\t\t\t\tif (arr != null) {\r\n\t\t\t\t\t\t\t\tif (isArrayLike(Object(arr))) {\r\n\t\t\t\t\t\t\t\t\tjQuery.merge(ret,\r\n\t\t\t\t\t\t\t\t\t\ttypeof arr === \"string\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t[arr] : arr\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tpush.call(ret, arr);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tinArray: function (elem, arr, i) {\r\n\t\t\t\t\t\t\treturn arr == null ? -1 : indexOf.call(arr, elem, i);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\tmerge: function (first, second) {\r\n\t\t\t\t\t\t\tvar len = +second.length,\r\n\t\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\t\ti = first.length;\r\n\r\n\t\t\t\t\t\t\tfor (; j < len; j++) {\r\n\t\t\t\t\t\t\t\tfirst[i++] = second[j];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfirst.length = i;\r\n\r\n\t\t\t\t\t\t\treturn first;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tgrep: function (elems, callback, invert) {\r\n\t\t\t\t\t\t\tvar callbackInverse,\r\n\t\t\t\t\t\t\t\tmatches = [],\r\n\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\tlength = elems.length,\r\n\t\t\t\t\t\t\t\tcallbackExpect = !invert;\r\n\r\n\t\t\t\t\t\t\t// Go through the array, only saving the items\r\n\t\t\t\t\t\t\t// that pass the validator function\r\n\t\t\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\t\t\tcallbackInverse = !callback(elems[i], i);\r\n\t\t\t\t\t\t\t\tif (callbackInverse !== callbackExpect) {\r\n\t\t\t\t\t\t\t\t\tmatches.push(elems[i]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn matches;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// arg is for internal usage only\r\n\t\t\t\t\t\tmap: function (elems, callback, arg) {\r\n\t\t\t\t\t\t\tvar length, value,\r\n\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\tret = [];\r\n\r\n\t\t\t\t\t\t\t// Go through the array, translating each of the items to their new values\r\n\t\t\t\t\t\t\tif (isArrayLike(elems)) {\r\n\t\t\t\t\t\t\t\tlength = elems.length;\r\n\t\t\t\t\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\t\t\t\t\tvalue = callback(elems[i], i, arg);\r\n\r\n\t\t\t\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\t\t\t\tret.push(value);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Go through every key on the object,\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfor (i in elems) {\r\n\t\t\t\t\t\t\t\t\tvalue = callback(elems[i], i, arg);\r\n\r\n\t\t\t\t\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\t\t\t\t\tret.push(value);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Flatten any nested arrays\r\n\t\t\t\t\t\t\treturn flat(ret);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// A global GUID counter for objects\r\n\t\t\t\t\t\tguid: 1,\r\n\r\n\t\t\t\t\t\t// jQuery.support is not used in Core but other projects attach their\r\n\t\t\t\t\t\t// properties to it so it needs to exist.\r\n\t\t\t\t\t\tsupport: support\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (typeof Symbol === \"function\") {\r\n\t\t\t\t\t\tjQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Populate the class2type map\r\n\t\t\t\t\tjQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),\r\n\t\t\t\t\t\tfunction (_i, name) {\r\n\t\t\t\t\t\t\tclass2type[\"[object \" + name + \"]\"] = name.toLowerCase();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\tfunction isArrayLike(obj) {\r\n\r\n\t\t\t\t\t\t// Support: real iOS 8.2 only (not reproducible in simulator)\r\n\t\t\t\t\t\t// `in` check used to prevent JIT error (gh-2145)\r\n\t\t\t\t\t\t// hasOwn isn't used here due to false negatives\r\n\t\t\t\t\t\t// regarding Nodelist length in IE\r\n\t\t\t\t\t\tvar length = !!obj && \"length\" in obj && obj.length,\r\n\t\t\t\t\t\t\ttype = toType(obj);\r\n\r\n\t\t\t\t\t\tif (isFunction(obj) || isWindow(obj)) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn type === \"array\" || length === 0 ||\r\n\t\t\t\t\t\t\ttypeof length === \"number\" && length > 0 && (length - 1) in obj;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar Sizzle =\r\n\t\t\t\t\t\t/*!\r\n\t\t\t\t\t\t * Sizzle CSS Selector Engine v2.3.6\r\n\t\t\t\t\t\t * https://sizzlejs.com/\r\n\t\t\t\t\t\t *\r\n\t\t\t\t\t\t * Copyright JS Foundation and other contributors\r\n\t\t\t\t\t\t * Released under the MIT license\r\n\t\t\t\t\t\t * https://js.foundation/\r\n\t\t\t\t\t\t *\r\n\t\t\t\t\t\t * Date: 2021-02-16\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t(function (window) {\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\tsupport,\r\n\t\t\t\t\t\t\t\tExpr,\r\n\t\t\t\t\t\t\t\tgetText,\r\n\t\t\t\t\t\t\t\tisXML,\r\n\t\t\t\t\t\t\t\ttokenize,\r\n\t\t\t\t\t\t\t\tcompile,\r\n\t\t\t\t\t\t\t\tselect,\r\n\t\t\t\t\t\t\t\toutermostContext,\r\n\t\t\t\t\t\t\t\tsortInput,\r\n\t\t\t\t\t\t\t\thasDuplicate,\r\n\r\n\t\t\t\t\t\t\t\t// Local document vars\r\n\t\t\t\t\t\t\t\tsetDocument,\r\n\t\t\t\t\t\t\t\tdocument,\r\n\t\t\t\t\t\t\t\tdocElem,\r\n\t\t\t\t\t\t\t\tdocumentIsHTML,\r\n\t\t\t\t\t\t\t\trbuggyQSA,\r\n\t\t\t\t\t\t\t\trbuggyMatches,\r\n\t\t\t\t\t\t\t\tmatches,\r\n\t\t\t\t\t\t\t\tcontains,\r\n\r\n\t\t\t\t\t\t\t\t// Instance-specific data\r\n\t\t\t\t\t\t\t\texpando = \"sizzle\" + 1 * new Date(),\r\n\t\t\t\t\t\t\t\tpreferredDoc = window.document,\r\n\t\t\t\t\t\t\t\tdirruns = 0,\r\n\t\t\t\t\t\t\t\tdone = 0,\r\n\t\t\t\t\t\t\t\tclassCache = createCache(),\r\n\t\t\t\t\t\t\t\ttokenCache = createCache(),\r\n\t\t\t\t\t\t\t\tcompilerCache = createCache(),\r\n\t\t\t\t\t\t\t\tnonnativeSelectorCache = createCache(),\r\n\t\t\t\t\t\t\t\tsortOrder = function (a, b) {\r\n\t\t\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Instance methods\r\n\t\t\t\t\t\t\t\thasOwn = ({}).hasOwnProperty,\r\n\t\t\t\t\t\t\t\tarr = [],\r\n\t\t\t\t\t\t\t\tpop = arr.pop,\r\n\t\t\t\t\t\t\t\tpushNative = arr.push,\r\n\t\t\t\t\t\t\t\tpush = arr.push,\r\n\t\t\t\t\t\t\t\tslice = arr.slice,\r\n\r\n\t\t\t\t\t\t\t\t// Use a stripped-down indexOf as it's faster than native\r\n\t\t\t\t\t\t\t\t// https://jsperf.com/thor-indexof-vs-for/5\r\n\t\t\t\t\t\t\t\tindexOf = function (list, elem) {\r\n\t\t\t\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\t\t\t\tlen = list.length;\r\n\t\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\t\tif (list[i] === elem) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\r\n\t\t\t\t\t\t\t\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\r\n\r\n\t\t\t\t\t\t\t\t// Regular expressions\r\n\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/css3-selectors/#whitespace\r\n\t\t\t\t\t\t\t\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n\r\n\t\t\t\t\t\t\t\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\r\n\t\t\t\t\t\t\t\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\r\n\r\n\t\t\t\t\t\t\t\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\r\n\t\t\t\t\t\t\t\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\r\n\r\n\t\t\t\t\t\t\t\t\t// Operator (capture 2)\r\n\t\t\t\t\t\t\t\t\t\"*([*^$|!~]?=)\" + whitespace +\r\n\r\n\t\t\t\t\t\t\t\t\t// \"Attribute values must be CSS identifiers [capture 5]\r\n\t\t\t\t\t\t\t\t\t// or strings [capture 3 or capture 4]\"\r\n\t\t\t\t\t\t\t\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\r\n\t\t\t\t\t\t\t\t\twhitespace + \"*\\\\]\",\r\n\r\n\t\t\t\t\t\t\t\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\r\n\r\n\t\t\t\t\t\t\t\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\r\n\t\t\t\t\t\t\t\t\t// 1. quoted (capture 3; capture 4 or capture 5)\r\n\t\t\t\t\t\t\t\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\r\n\r\n\t\t\t\t\t\t\t\t\t// 2. simple (capture 6)\r\n\t\t\t\t\t\t\t\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\r\n\r\n\t\t\t\t\t\t\t\t\t// 3. anything else (capture 2)\r\n\t\t\t\t\t\t\t\t\t\".*\" +\r\n\t\t\t\t\t\t\t\t\t\")\\\\)|)\",\r\n\r\n\t\t\t\t\t\t\t\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r\n\t\t\t\t\t\t\t\trwhitespace = new RegExp(whitespace + \"+\", \"g\"),\r\n\t\t\t\t\t\t\t\trtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\r\n\t\t\t\t\t\t\t\t\twhitespace + \"+$\", \"g\"),\r\n\r\n\t\t\t\t\t\t\t\trcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\r\n\t\t\t\t\t\t\t\trcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\"*\"),\r\n\t\t\t\t\t\t\t\trdescend = new RegExp(whitespace + \"|>\"),\r\n\r\n\t\t\t\t\t\t\t\trpseudo = new RegExp(pseudos),\r\n\t\t\t\t\t\t\t\tridentifier = new RegExp(\"^\" + identifier + \"$\"),\r\n\r\n\t\t\t\t\t\t\t\tmatchExpr = {\r\n\t\t\t\t\t\t\t\t\t\"ID\": new RegExp(\"^#(\" + identifier + \")\"),\r\n\t\t\t\t\t\t\t\t\t\"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\r\n\t\t\t\t\t\t\t\t\t\"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\r\n\t\t\t\t\t\t\t\t\t\"ATTR\": new RegExp(\"^\" + attributes),\r\n\t\t\t\t\t\t\t\t\t\"PSEUDO\": new RegExp(\"^\" + pseudos),\r\n\t\t\t\t\t\t\t\t\t\"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\r\n\t\t\t\t\t\t\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\r\n\t\t\t\t\t\t\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\r\n\t\t\t\t\t\t\t\t\t\"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\r\n\r\n\t\t\t\t\t\t\t\t\t// For use in libraries implementing .is()\r\n\t\t\t\t\t\t\t\t\t// We use this for POS matching in `select`\r\n\t\t\t\t\t\t\t\t\t\"needsContext\": new RegExp(\"^\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\trhtml = /HTML$/i,\r\n\t\t\t\t\t\t\t\trinputs = /^(?:input|select|textarea|button)$/i,\r\n\t\t\t\t\t\t\t\trheader = /^h\\d$/i,\r\n\r\n\t\t\t\t\t\t\t\trnative = /^[^{]+\\{\\s*\\[native \\w/,\r\n\r\n\t\t\t\t\t\t\t\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\r\n\t\t\t\t\t\t\t\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n\r\n\t\t\t\t\t\t\t\trsibling = /[+~]/,\r\n\r\n\t\t\t\t\t\t\t\t// CSS escapes\r\n\t\t\t\t\t\t\t\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\r\n\t\t\t\t\t\t\t\trunescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\r\n\t\t\t\t\t\t\t\tfunescape = function (escape, nonHex) {\r\n\t\t\t\t\t\t\t\t\tvar high = \"0x\" + escape.slice(1) - 0x10000;\r\n\r\n\t\t\t\t\t\t\t\t\treturn nonHex ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Strip the backslash prefix from a non-hex escape sequence\r\n\t\t\t\t\t\t\t\t\t\tnonHex :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=11+\r\n\t\t\t\t\t\t\t\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\r\n\t\t\t\t\t\t\t\t\t\t// surrogate pair\r\n\t\t\t\t\t\t\t\t\t\thigh < 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\tString.fromCharCode(high + 0x10000) :\r\n\t\t\t\t\t\t\t\t\t\t\tString.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// CSS string/identifier serialization\r\n\t\t\t\t\t\t\t\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\r\n\t\t\t\t\t\t\t\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\r\n\t\t\t\t\t\t\t\tfcssescape = function (ch, asCodePoint) {\r\n\t\t\t\t\t\t\t\t\tif (asCodePoint) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\t\t\t\t\t\t\t\tif (ch === \"\\0\") {\r\n\t\t\t\t\t\t\t\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\t\t\t\t\t\t\t\treturn ch.slice(0, -1) + \"\\\\\" +\r\n\t\t\t\t\t\t\t\t\t\t\tch.charCodeAt(ch.length - 1).toString(16) + \" \";\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\t\t\t\t\t\t\t\treturn \"\\\\\" + ch;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Used for iframes\r\n\t\t\t\t\t\t\t\t// See setDocument()\r\n\t\t\t\t\t\t\t\t// Removing the function wrapper causes a \"Permission Denied\"\r\n\t\t\t\t\t\t\t\t// error in IE\r\n\t\t\t\t\t\t\t\tunloadHandler = function () {\r\n\t\t\t\t\t\t\t\t\tsetDocument();\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tinDisabledFieldset = addCombinator(\r\n\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t{ dir: \"parentNode\", next: \"legend\" }\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Optimize for push.apply( _, NodeList )\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tpush.apply(\r\n\t\t\t\t\t\t\t\t\t(arr = slice.call(preferredDoc.childNodes)),\r\n\t\t\t\t\t\t\t\t\tpreferredDoc.childNodes\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t// Support: Android<4.0\r\n\t\t\t\t\t\t\t\t// Detect silently failing push.apply\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\t\t\t\t\tarr[preferredDoc.childNodes.length].nodeType;\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tpush = {\r\n\t\t\t\t\t\t\t\t\tapply: arr.length ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Leverage slice if possible\r\n\t\t\t\t\t\t\t\t\t\tfunction (target, els) {\r\n\t\t\t\t\t\t\t\t\t\t\tpushNative.apply(target, slice.call(els));\r\n\t\t\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\t\t\t\t\t// Otherwise append directly\r\n\t\t\t\t\t\t\t\t\t\tfunction (target, els) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar j = target.length,\r\n\t\t\t\t\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Can't trust NodeList.length\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((target[j++] = els[i++])) { }\r\n\t\t\t\t\t\t\t\t\t\t\ttarget.length = j - 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction Sizzle(selector, context, results, seed) {\r\n\t\t\t\t\t\t\t\tvar m, i, elem, nid, match, groups, newSelector,\r\n\t\t\t\t\t\t\t\t\tnewContext = context && context.ownerDocument,\r\n\r\n\t\t\t\t\t\t\t\t\t// nodeType defaults to 9, since context defaults to document\r\n\t\t\t\t\t\t\t\t\tnodeType = context ? context.nodeType : 9;\r\n\r\n\t\t\t\t\t\t\t\tresults = results || [];\r\n\r\n\t\t\t\t\t\t\t\t// Return early from calls with invalid selector or context\r\n\t\t\t\t\t\t\t\tif (typeof selector !== \"string\" || !selector ||\r\n\t\t\t\t\t\t\t\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\r\n\r\n\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Try to shortcut find operations (as opposed to filters) in HTML documents\r\n\t\t\t\t\t\t\t\tif (!seed) {\r\n\t\t\t\t\t\t\t\t\tsetDocument(context);\r\n\t\t\t\t\t\t\t\t\tcontext = context || document;\r\n\r\n\t\t\t\t\t\t\t\t\tif (documentIsHTML) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\r\n\t\t\t\t\t\t\t\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\r\n\t\t\t\t\t\t\t\t\t\tif (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// ID selector\r\n\t\t\t\t\t\t\t\t\t\t\tif ((m = match[1])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Document context\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((elem = context.getElementById(m))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (elem.id === m) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Element context\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (newContext && (elem = newContext.getElementById(m)) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontains(context, elem) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.id === m) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Type selector\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (match[2]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, context.getElementsByTagName(selector));\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Class selector\r\n\t\t\t\t\t\t\t\t\t\t\t} else if ((m = match[3]) && support.getElementsByClassName &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontext.getElementsByClassName) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, context.getElementsByClassName(m));\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Take advantage of querySelectorAll\r\n\t\t\t\t\t\t\t\t\t\tif (support.qsa &&\r\n\t\t\t\t\t\t\t\t\t\t\t!nonnativeSelectorCache[selector + \" \"] &&\r\n\t\t\t\t\t\t\t\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test(selector)) &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 8 only\r\n\t\t\t\t\t\t\t\t\t\t\t// Exclude object elements\r\n\t\t\t\t\t\t\t\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tnewSelector = selector;\r\n\t\t\t\t\t\t\t\t\t\t\tnewContext = context;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\r\n\t\t\t\t\t\t\t\t\t\t\t// descendant combinators, which is not what we want.\r\n\t\t\t\t\t\t\t\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\r\n\t\t\t\t\t\t\t\t\t\t\t// list with an ID selector referencing the scope context.\r\n\t\t\t\t\t\t\t\t\t\t\t// The technique has to be used as well when a leading combinator is used\r\n\t\t\t\t\t\t\t\t\t\t\t// as such selectors are not recognized by querySelectorAll.\r\n\t\t\t\t\t\t\t\t\t\t\t// Thanks to Andrew Dupont for this technique.\r\n\t\t\t\t\t\t\t\t\t\t\tif (nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(rdescend.test(selector) || rcombinators.test(selector))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Expand context for sibling selectors\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewContext = rsibling.test(selector) && testContext(context.parentNode) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontext;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\r\n\t\t\t\t\t\t\t\t\t\t\t\t// supports it & if we're not changing the context.\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (newContext !== context || !support.scope) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((nid = context.getAttribute(\"id\"))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnid = nid.replace(rcssescape, fcssescape);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.setAttribute(\"id\", (nid = expando));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Prefix every selector in the list\r\n\t\t\t\t\t\t\t\t\t\t\t\tgroups = tokenize(selector);\r\n\t\t\t\t\t\t\t\t\t\t\t\ti = groups.length;\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tgroups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoSelector(groups[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewSelector = groups.join(\",\");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpush.apply(results,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewContext.querySelectorAll(newSelector)\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t} catch (qsaError) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnonnativeSelectorCache(selector, true);\r\n\t\t\t\t\t\t\t\t\t\t\t} finally {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (nid === expando) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.removeAttribute(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// All others\r\n\t\t\t\t\t\t\t\treturn select(selector.replace(rtrim, \"$1\"), context, results, seed);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Create key-value caches of limited size\r\n\t\t\t\t\t\t\t * @returns {function(string, object)} Returns the Object data after storing it on itself with\r\n\t\t\t\t\t\t\t *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\r\n\t\t\t\t\t\t\t *\tdeleting the oldest entry\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction createCache() {\r\n\t\t\t\t\t\t\t\tvar keys = [];\r\n\r\n\t\t\t\t\t\t\t\tfunction cache(key, value) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\r\n\t\t\t\t\t\t\t\t\tif (keys.push(key + \" \") > Expr.cacheLength) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Only keep the most recent entries\r\n\t\t\t\t\t\t\t\t\t\tdelete cache[keys.shift()];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn (cache[key + \" \"] = value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn cache;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Mark a function for special use by Sizzle\r\n\t\t\t\t\t\t\t * @param {Function} fn The function to mark\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction markFunction(fn) {\r\n\t\t\t\t\t\t\t\tfn[expando] = true;\r\n\t\t\t\t\t\t\t\treturn fn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Support testing using an element\r\n\t\t\t\t\t\t\t * @param {Function} fn Passed the created element and returns a boolean result\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction assert(fn) {\r\n\t\t\t\t\t\t\t\tvar el = document.createElement(\"fieldset\");\r\n\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\treturn !!fn(el);\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t} finally {\r\n\r\n\t\t\t\t\t\t\t\t\t// Remove from its parent by default\r\n\t\t\t\t\t\t\t\t\tif (el.parentNode) {\r\n\t\t\t\t\t\t\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// release memory in IE\r\n\t\t\t\t\t\t\t\t\tel = null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Adds the same handler for all of the specified attrs\r\n\t\t\t\t\t\t\t * @param {String} attrs Pipe-separated list of attributes\r\n\t\t\t\t\t\t\t * @param {Function} handler The method that will be applied\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction addHandle(attrs, handler) {\r\n\t\t\t\t\t\t\t\tvar arr = attrs.split(\"|\"),\r\n\t\t\t\t\t\t\t\t\ti = arr.length;\r\n\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\tExpr.attrHandle[arr[i]] = handler;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Checks document order of two siblings\r\n\t\t\t\t\t\t\t * @param {Element} a\r\n\t\t\t\t\t\t\t * @param {Element} b\r\n\t\t\t\t\t\t\t * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction siblingCheck(a, b) {\r\n\t\t\t\t\t\t\t\tvar cur = b && a,\r\n\t\t\t\t\t\t\t\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\t\ta.sourceIndex - b.sourceIndex;\r\n\r\n\t\t\t\t\t\t\t\t// Use IE sourceIndex if available on both nodes\r\n\t\t\t\t\t\t\t\tif (diff) {\r\n\t\t\t\t\t\t\t\t\treturn diff;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Check if b follows a\r\n\t\t\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\t\t\twhile ((cur = cur.nextSibling)) {\r\n\t\t\t\t\t\t\t\t\t\tif (cur === b) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn a ? 1 : -1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Returns a function to use in pseudos for input types\r\n\t\t\t\t\t\t\t * @param {String} type\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction createInputPseudo(type) {\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\t\treturn name === \"input\" && elem.type === type;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Returns a function to use in pseudos for buttons\r\n\t\t\t\t\t\t\t * @param {String} type\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction createButtonPseudo(type) {\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Returns a function to use in pseudos for :enabled/:disabled\r\n\t\t\t\t\t\t\t * @param {Boolean} disabled true for :disabled; false for :enabled\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction createDisabledPseudo(disabled) {\r\n\r\n\t\t\t\t\t\t\t\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\r\n\t\t\t\t\t\t\t\treturn function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Only certain elements can match :enabled or :disabled\r\n\t\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\r\n\t\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\r\n\t\t\t\t\t\t\t\t\tif (\"form\" in elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\r\n\t\t\t\t\t\t\t\t\t\t// * listed form-associated elements in a disabled fieldset\r\n\t\t\t\t\t\t\t\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\r\n\t\t\t\t\t\t\t\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\r\n\t\t\t\t\t\t\t\t\t\t// * option elements in a disabled optgroup\r\n\t\t\t\t\t\t\t\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\r\n\t\t\t\t\t\t\t\t\t\t// All such elements have a \"form\" property.\r\n\t\t\t\t\t\t\t\t\t\tif (elem.parentNode && elem.disabled === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Option elements defer to a parent optgroup if present\r\n\t\t\t\t\t\t\t\t\t\t\tif (\"label\" in elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\"label\" in elem.parentNode) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 6 - 11\r\n\t\t\t\t\t\t\t\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\r\n\t\t\t\t\t\t\t\t\t\t\treturn elem.isDisabled === disabled ||\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Where there is no isDisabled, check manually\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* jshint -W018 */\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.isDisabled !== !disabled &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tinDisabledFieldset(elem) === disabled;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\r\n\t\t\t\t\t\t\t\t\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\r\n\t\t\t\t\t\t\t\t\t\t// even exist on them, let alone have a boolean value.\r\n\t\t\t\t\t\t\t\t\t} else if (\"label\" in elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Remaining elements are neither :enabled nor :disabled\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Returns a function to use in pseudos for positionals\r\n\t\t\t\t\t\t\t * @param {Function} fn\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction createPositionalPseudo(fn) {\r\n\t\t\t\t\t\t\t\treturn markFunction(function (argument) {\r\n\t\t\t\t\t\t\t\t\targument = +argument;\r\n\t\t\t\t\t\t\t\t\treturn markFunction(function (seed, matches) {\r\n\t\t\t\t\t\t\t\t\t\tvar j,\r\n\t\t\t\t\t\t\t\t\t\t\tmatchIndexes = fn([], seed.length, argument),\r\n\t\t\t\t\t\t\t\t\t\t\ti = matchIndexes.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Match elements found at the specified indexes\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (seed[(j = matchIndexes[i])]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Checks a node for validity as a Sizzle context\r\n\t\t\t\t\t\t\t * @param {Element|Object=} context\r\n\t\t\t\t\t\t\t * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tfunction testContext(context) {\r\n\t\t\t\t\t\t\t\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Expose support vars for convenience\r\n\t\t\t\t\t\t\tsupport = Sizzle.support = {};\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Detects XML nodes\r\n\t\t\t\t\t\t\t * @param {Element|Object} elem An element or a document\r\n\t\t\t\t\t\t\t * @returns {Boolean} True iff elem is a non-HTML XML node\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tisXML = Sizzle.isXML = function (elem) {\r\n\t\t\t\t\t\t\t\tvar namespace = elem && elem.namespaceURI,\r\n\t\t\t\t\t\t\t\t\tdocElem = elem && (elem.ownerDocument || elem).documentElement;\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=8\r\n\t\t\t\t\t\t\t\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\r\n\t\t\t\t\t\t\t\t// https://bugs.jquery.com/ticket/4833\r\n\t\t\t\t\t\t\t\treturn !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Sets document-related variables once based on the current document\r\n\t\t\t\t\t\t\t * @param {Element|Object} [doc] An element or document object to use to set the document\r\n\t\t\t\t\t\t\t * @returns {Object} Returns the current document\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tsetDocument = Sizzle.setDocument = function (node) {\r\n\t\t\t\t\t\t\t\tvar hasCompare, subWindow,\r\n\t\t\t\t\t\t\t\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\r\n\r\n\t\t\t\t\t\t\t\t// Return early if doc is invalid or already selected\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\r\n\t\t\t\t\t\t\t\t\treturn document;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Update global variables\r\n\t\t\t\t\t\t\t\tdocument = doc;\r\n\t\t\t\t\t\t\t\tdocElem = document.documentElement;\r\n\t\t\t\t\t\t\t\tdocumentIsHTML = !isXML(document);\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE 9 - 11+, Edge 12 - 18+\r\n\t\t\t\t\t\t\t\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif (preferredDoc != document &&\r\n\t\t\t\t\t\t\t\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 11, Edge\r\n\t\t\t\t\t\t\t\t\tif (subWindow.addEventListener) {\r\n\t\t\t\t\t\t\t\t\t\tsubWindow.addEventListener(\"unload\", unloadHandler, false);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE 9 - 10 only\r\n\t\t\t\t\t\t\t\t\t} else if (subWindow.attachEvent) {\r\n\t\t\t\t\t\t\t\t\t\tsubWindow.attachEvent(\"onunload\", unloadHandler);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\r\n\t\t\t\t\t\t\t\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\r\n\t\t\t\t\t\t\t\t// IE/Edge & older browsers don't support the :scope pseudo-class.\r\n\t\t\t\t\t\t\t\t// Support: Safari 6.0 only\r\n\t\t\t\t\t\t\t\t// Safari 6.0 supports :scope but it's an alias of :root there.\r\n\t\t\t\t\t\t\t\tsupport.scope = assert(function (el) {\r\n\t\t\t\t\t\t\t\t\tdocElem.appendChild(el).appendChild(document.createElement(\"div\"));\r\n\t\t\t\t\t\t\t\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\t\t!el.querySelectorAll(\":scope fieldset div\").length;\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Attributes\r\n\t\t\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t\t\t\t// Verify that getAttribute really returns attributes and not properties\r\n\t\t\t\t\t\t\t\t// (excepting IE8 booleans)\r\n\t\t\t\t\t\t\t\tsupport.attributes = assert(function (el) {\r\n\t\t\t\t\t\t\t\t\tel.className = \"i\";\r\n\t\t\t\t\t\t\t\t\treturn !el.getAttribute(\"className\");\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* getElement(s)By*\r\n\t\t\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t\t\t// Check if getElementsByTagName(\"*\") returns only elements\r\n\t\t\t\t\t\t\t\tsupport.getElementsByTagName = assert(function (el) {\r\n\t\t\t\t\t\t\t\t\tel.appendChild(document.createComment(\"\"));\r\n\t\t\t\t\t\t\t\t\treturn !el.getElementsByTagName(\"*\").length;\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\t\t\tsupport.getElementsByClassName = rnative.test(document.getElementsByClassName);\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE<10\r\n\t\t\t\t\t\t\t\t// Check if getElementById returns elements by name\r\n\t\t\t\t\t\t\t\t// The broken getElementById methods don't pick up programmatically-set names,\r\n\t\t\t\t\t\t\t\t// so use a roundabout getElementsByName test\r\n\t\t\t\t\t\t\t\tsupport.getById = assert(function (el) {\r\n\t\t\t\t\t\t\t\t\tdocElem.appendChild(el).id = expando;\r\n\t\t\t\t\t\t\t\t\treturn !document.getElementsByName || !document.getElementsByName(expando).length;\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t// ID filter and find\r\n\t\t\t\t\t\t\t\tif (support.getById) {\r\n\t\t\t\t\t\t\t\t\tExpr.filter[\"ID\"] = function (id) {\r\n\t\t\t\t\t\t\t\t\t\tvar attrId = id.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tExpr.find[\"ID\"] = function (id, context) {\r\n\t\t\t\t\t\t\t\t\t\tif (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar elem = context.getElementById(id);\r\n\t\t\t\t\t\t\t\t\t\t\treturn elem ? [elem] : [];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tExpr.filter[\"ID\"] = function (id) {\r\n\t\t\t\t\t\t\t\t\t\tvar attrId = id.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t\treturn node && node.value === attrId;\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 6 - 7 only\r\n\t\t\t\t\t\t\t\t\t// getElementById is not reliable as a find shortcut\r\n\t\t\t\t\t\t\t\t\tExpr.find[\"ID\"] = function (id, context) {\r\n\t\t\t\t\t\t\t\t\t\tif (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar node, i, elems,\r\n\t\t\t\t\t\t\t\t\t\t\t\telem = context.getElementById(id);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Verify the id attribute\r\n\t\t\t\t\t\t\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (node && node.value === id) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn [elem];\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Fall back on getElementsByName\r\n\t\t\t\t\t\t\t\t\t\t\t\telems = context.getElementsByName(id);\r\n\t\t\t\t\t\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile ((elem = elems[i++])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (node && node.value === id) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn [elem];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Tag\r\n\t\t\t\t\t\t\t\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\r\n\t\t\t\t\t\t\t\t\tfunction (tag, context) {\r\n\t\t\t\t\t\t\t\t\t\tif (typeof context.getElementsByTagName !== \"undefined\") {\r\n\t\t\t\t\t\t\t\t\t\t\treturn context.getElementsByTagName(tag);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// DocumentFragment nodes don't have gEBTN\r\n\t\t\t\t\t\t\t\t\t\t} else if (support.qsa) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn context.querySelectorAll(tag);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t\tfunction (tag, context) {\r\n\t\t\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\t\t\ttmp = [],\r\n\t\t\t\t\t\t\t\t\t\t\ti = 0,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\r\n\t\t\t\t\t\t\t\t\t\t\tresults = context.getElementsByTagName(tag);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Filter out possible comments\r\n\t\t\t\t\t\t\t\t\t\tif (tag === \"*\") {\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((elem = results[i++])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\treturn tmp;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t// Class\r\n\t\t\t\t\t\t\t\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\r\n\t\t\t\t\t\t\t\t\tif (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\r\n\t\t\t\t\t\t\t\t\t\treturn context.getElementsByClassName(className);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t/* QSA/matchesSelector\r\n\t\t\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t\t\t// QSA and matchesSelector support\r\n\r\n\t\t\t\t\t\t\t\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r\n\t\t\t\t\t\t\t\trbuggyMatches = [];\r\n\r\n\t\t\t\t\t\t\t\t// qSa(:focus) reports false when true (Chrome 21)\r\n\t\t\t\t\t\t\t\t// We allow this because of a bug in IE8/9 that throws an error\r\n\t\t\t\t\t\t\t\t// whenever `document.activeElement` is accessed on an iframe\r\n\t\t\t\t\t\t\t\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\r\n\t\t\t\t\t\t\t\t// See https://bugs.jquery.com/ticket/13378\r\n\t\t\t\t\t\t\t\trbuggyQSA = [];\r\n\r\n\t\t\t\t\t\t\t\tif ((support.qsa = rnative.test(document.querySelectorAll))) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Build QSA regex\r\n\t\t\t\t\t\t\t\t\t// Regex strategy adopted from Diego Perini\r\n\t\t\t\t\t\t\t\t\tassert(function (el) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar input;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Select is set to empty string on purpose\r\n\t\t\t\t\t\t\t\t\t\t// This is to test IE's treatment of not explicitly\r\n\t\t\t\t\t\t\t\t\t\t// setting a boolean content attribute,\r\n\t\t\t\t\t\t\t\t\t\t// since its presence should be enough\r\n\t\t\t\t\t\t\t\t\t\t// https://bugs.jquery.com/ticket/12359\r\n\t\t\t\t\t\t\t\t\t\tdocElem.appendChild(el).innerHTML = \"<a id='\" + expando + \"'></a>\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\"<option selected=''></option></select>\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE8, Opera 11-12.16\r\n\t\t\t\t\t\t\t\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\r\n\t\t\t\t\t\t\t\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\r\n\t\t\t\t\t\t\t\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\r\n\t\t\t\t\t\t\t\t\t\tif (el.querySelectorAll(\"[msallowcapture^='']\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE8\r\n\t\t\t\t\t\t\t\t\t\t// Boolean attributes and \"value\" are not treated correctly\r\n\t\t\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[selected]\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\r\n\t\t\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"~=\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 15 - 18+\r\n\t\t\t\t\t\t\t\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\r\n\t\t\t\t\t\t\t\t\t\t// Adding a temporary attribute to the document before the selection works\r\n\t\t\t\t\t\t\t\t\t\t// around the issue.\r\n\t\t\t\t\t\t\t\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\r\n\t\t\t\t\t\t\t\t\t\tinput = document.createElement(\"input\");\r\n\t\t\t\t\t\t\t\t\t\tinput.setAttribute(\"name\", \"\");\r\n\t\t\t\t\t\t\t\t\t\tel.appendChild(input);\r\n\t\t\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"[name='']\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Webkit/Opera - :checked should return selected option elements\r\n\t\t\t\t\t\t\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t\t\t\t\t\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\":checked\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":checked\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Safari 8+, iOS 8+\r\n\t\t\t\t\t\t\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\r\n\t\t\t\t\t\t\t\t\t\t// In-page `selector#id sibling-combinator selector` fails\r\n\t\t\t\t\t\t\t\t\t\tif (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Firefox <=3.6 - 5 only\r\n\t\t\t\t\t\t\t\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\r\n\t\t\t\t\t\t\t\t\t\tel.querySelectorAll(\"\\\\\\f\");\r\n\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\tassert(function (el) {\r\n\t\t\t\t\t\t\t\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\"<select disabled='disabled'><option/></select>\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Windows 8 Native Apps\r\n\t\t\t\t\t\t\t\t\t\t// The type and name attributes are restricted during .innerHTML assignment\r\n\t\t\t\t\t\t\t\t\t\tvar input = document.createElement(\"input\");\r\n\t\t\t\t\t\t\t\t\t\tinput.setAttribute(\"type\", \"hidden\");\r\n\t\t\t\t\t\t\t\t\t\tel.appendChild(input).setAttribute(\"name\", \"D\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE8\r\n\t\t\t\t\t\t\t\t\t\t// Enforce case-sensitivity of name attribute\r\n\t\t\t\t\t\t\t\t\t\tif (el.querySelectorAll(\"[name=d]\").length) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r\n\t\t\t\t\t\t\t\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\t\t\t\t\t\t\t\tif (el.querySelectorAll(\":enabled\").length !== 2) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":enabled\", \":disabled\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE9-11+\r\n\t\t\t\t\t\t\t\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\r\n\t\t\t\t\t\t\t\t\t\tdocElem.appendChild(el).disabled = true;\r\n\t\t\t\t\t\t\t\t\t\tif (el.querySelectorAll(\":disabled\").length !== 2) {\r\n\t\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\":enabled\", \":disabled\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Opera 10 - 11 only\r\n\t\t\t\t\t\t\t\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\r\n\t\t\t\t\t\t\t\t\t\tel.querySelectorAll(\"*,:x\");\r\n\t\t\t\t\t\t\t\t\t\trbuggyQSA.push(\",.*:\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif ((support.matchesSelector = rnative.test((matches = docElem.matches ||\r\n\t\t\t\t\t\t\t\t\tdocElem.webkitMatchesSelector ||\r\n\t\t\t\t\t\t\t\t\tdocElem.mozMatchesSelector ||\r\n\t\t\t\t\t\t\t\t\tdocElem.oMatchesSelector ||\r\n\t\t\t\t\t\t\t\t\tdocElem.msMatchesSelector)))) {\r\n\r\n\t\t\t\t\t\t\t\t\tassert(function (el) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Check to see if it's possible to do matchesSelector\r\n\t\t\t\t\t\t\t\t\t\t// on a disconnected node (IE 9)\r\n\t\t\t\t\t\t\t\t\t\tsupport.disconnectedMatch = matches.call(el, \"*\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t// This should fail with an exception\r\n\t\t\t\t\t\t\t\t\t\t// Gecko does not error, returns false instead\r\n\t\t\t\t\t\t\t\t\t\tmatches.call(el, \"[s!='']:x\");\r\n\t\t\t\t\t\t\t\t\t\trbuggyMatches.push(\"!=\", pseudos);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\trbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\r\n\t\t\t\t\t\t\t\trbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\r\n\r\n\t\t\t\t\t\t\t\t/* Contains\r\n\t\t\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\t\t\t\t\t\t\t\thasCompare = rnative.test(docElem.compareDocumentPosition);\r\n\r\n\t\t\t\t\t\t\t\t// Element contains another\r\n\t\t\t\t\t\t\t\t// Purposefully self-exclusive\r\n\t\t\t\t\t\t\t\t// As in, an element does not contain itself\r\n\t\t\t\t\t\t\t\tcontains = hasCompare || rnative.test(docElem.contains) ?\r\n\t\t\t\t\t\t\t\t\tfunction (a, b) {\r\n\t\t\t\t\t\t\t\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\r\n\t\t\t\t\t\t\t\t\t\t\tbup = b && b.parentNode;\r\n\t\t\t\t\t\t\t\t\t\treturn a === bup || !!(bup && bup.nodeType === 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\tadown.contains ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tadown.contains(bup) :\r\n\t\t\t\t\t\t\t\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\r\n\t\t\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\tfunction (a, b) {\r\n\t\t\t\t\t\t\t\t\t\tif (b) {\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((b = b.parentNode)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (b === a) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t/* Sorting\r\n\t\t\t\t\t\t\t\t---------------------------------------------------------------------- */\r\n\r\n\t\t\t\t\t\t\t\t// Document order sorting\r\n\t\t\t\t\t\t\t\tsortOrder = hasCompare ?\r\n\t\t\t\t\t\t\t\t\tfunction (a, b) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Flag for duplicate removal\r\n\t\t\t\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Sort on method existence if only one input has compareDocumentPosition\r\n\t\t\t\t\t\t\t\t\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n\t\t\t\t\t\t\t\t\t\tif (compare) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn compare;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Calculate position if both inputs belong to the same document\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\tcompare = (a.ownerDocument || a) == (b.ownerDocument || b) ?\r\n\t\t\t\t\t\t\t\t\t\t\ta.compareDocumentPosition(b) :\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Otherwise we know they are disconnected\r\n\t\t\t\t\t\t\t\t\t\t\t1;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Disconnected nodes\r\n\t\t\t\t\t\t\t\t\t\tif (compare & 1 ||\r\n\t\t\t\t\t\t\t\t\t\t\t(!support.sortDetached && b.compareDocumentPosition(a) === compare)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Choose the first element that is related to our preferred document\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\t\tif (a == document || a.ownerDocument == preferredDoc &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontains(preferredDoc, a)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\t\tif (b == document || b.ownerDocument == preferredDoc &&\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontains(preferredDoc, b)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Maintain original order\r\n\t\t\t\t\t\t\t\t\t\t\treturn sortInput ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t(indexOf(sortInput, a) - indexOf(sortInput, b)) :\r\n\t\t\t\t\t\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn compare & 4 ? -1 : 1;\r\n\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\tfunction (a, b) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Exit early if the nodes are identical\r\n\t\t\t\t\t\t\t\t\t\tif (a === b) {\r\n\t\t\t\t\t\t\t\t\t\t\thasDuplicate = true;\r\n\t\t\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar cur,\r\n\t\t\t\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\t\t\t\taup = a.parentNode,\r\n\t\t\t\t\t\t\t\t\t\t\tbup = b.parentNode,\r\n\t\t\t\t\t\t\t\t\t\t\tap = [a],\r\n\t\t\t\t\t\t\t\t\t\t\tbp = [b];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Parentless nodes are either documents or disconnected\r\n\t\t\t\t\t\t\t\t\t\tif (!aup || !bup) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\treturn a == document ? -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\tb == document ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taup ? -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbup ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsortInput ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(indexOf(sortInput, a) - indexOf(sortInput, b)) :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// If the nodes are siblings, we can do a quick check\r\n\t\t\t\t\t\t\t\t\t\t} else if (aup === bup) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn siblingCheck(a, b);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Otherwise we need full lists of their ancestors for comparison\r\n\t\t\t\t\t\t\t\t\t\tcur = a;\r\n\t\t\t\t\t\t\t\t\t\twhile ((cur = cur.parentNode)) {\r\n\t\t\t\t\t\t\t\t\t\t\tap.unshift(cur);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcur = b;\r\n\t\t\t\t\t\t\t\t\t\twhile ((cur = cur.parentNode)) {\r\n\t\t\t\t\t\t\t\t\t\t\tbp.unshift(cur);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Walk down the tree looking for a discrepancy\r\n\t\t\t\t\t\t\t\t\t\twhile (ap[i] === bp[i]) {\r\n\t\t\t\t\t\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn i ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Do a sibling check if the nodes have a common ancestor\r\n\t\t\t\t\t\t\t\t\t\t\tsiblingCheck(ap[i], bp[i]) :\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Otherwise nodes in our document sort first\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\tap[i] == preferredDoc ? -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\tbp[i] == preferredDoc ? 1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\treturn document;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.matches = function (expr, elements) {\r\n\t\t\t\t\t\t\t\treturn Sizzle(expr, null, null, elements);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.matchesSelector = function (elem, expr) {\r\n\t\t\t\t\t\t\t\tsetDocument(elem);\r\n\r\n\t\t\t\t\t\t\t\tif (support.matchesSelector && documentIsHTML &&\r\n\t\t\t\t\t\t\t\t\t!nonnativeSelectorCache[expr + \" \"] &&\r\n\t\t\t\t\t\t\t\t\t(!rbuggyMatches || !rbuggyMatches.test(expr)) &&\r\n\t\t\t\t\t\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test(expr))) {\r\n\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tvar ret = matches.call(elem, expr);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\r\n\t\t\t\t\t\t\t\t\t\tif (ret || support.disconnectedMatch ||\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// As well, disconnected nodes are said to be in a document\r\n\t\t\t\t\t\t\t\t\t\t\t// fragment in IE 9\r\n\t\t\t\t\t\t\t\t\t\t\telem.document && elem.document.nodeType !== 11) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\tnonnativeSelectorCache(expr, true);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn Sizzle(expr, document, null, [elem]).length > 0;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.contains = function (context, elem) {\r\n\r\n\t\t\t\t\t\t\t\t// Set document vars if needed\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif ((context.ownerDocument || context) != document) {\r\n\t\t\t\t\t\t\t\t\tsetDocument(context);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn contains(context, elem);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.attr = function (elem, name) {\r\n\r\n\t\t\t\t\t\t\t\t// Set document vars if needed\r\n\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\tif ((elem.ownerDocument || elem) != document) {\r\n\t\t\t\t\t\t\t\t\tsetDocument(elem);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar fn = Expr.attrHandle[name.toLowerCase()],\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\r\n\t\t\t\t\t\t\t\t\tval = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ?\r\n\t\t\t\t\t\t\t\t\t\tfn(elem, name, !documentIsHTML) :\r\n\t\t\t\t\t\t\t\t\t\tundefined;\r\n\r\n\t\t\t\t\t\t\t\treturn val !== undefined ?\r\n\t\t\t\t\t\t\t\t\tval :\r\n\t\t\t\t\t\t\t\t\tsupport.attributes || !documentIsHTML ?\r\n\t\t\t\t\t\t\t\t\t\telem.getAttribute(name) :\r\n\t\t\t\t\t\t\t\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\r\n\t\t\t\t\t\t\t\t\t\t\tval.value :\r\n\t\t\t\t\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.escape = function (sel) {\r\n\t\t\t\t\t\t\t\treturn (sel + \"\").replace(rcssescape, fcssescape);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tSizzle.error = function (msg) {\r\n\t\t\t\t\t\t\t\tthrow new Error(\"Syntax error, unrecognized expression: \" + msg);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Document sorting and removing duplicates\r\n\t\t\t\t\t\t\t * @param {ArrayLike} results\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tSizzle.uniqueSort = function (results) {\r\n\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\tduplicates = [],\r\n\t\t\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\t\t// Unless we *know* we can detect duplicates, assume their presence\r\n\t\t\t\t\t\t\t\thasDuplicate = !support.detectDuplicates;\r\n\t\t\t\t\t\t\t\tsortInput = !support.sortStable && results.slice(0);\r\n\t\t\t\t\t\t\t\tresults.sort(sortOrder);\r\n\r\n\t\t\t\t\t\t\t\tif (hasDuplicate) {\r\n\t\t\t\t\t\t\t\t\twhile ((elem = results[i++])) {\r\n\t\t\t\t\t\t\t\t\t\tif (elem === results[i]) {\r\n\t\t\t\t\t\t\t\t\t\t\tj = duplicates.push(i);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\t\t\t\tresults.splice(duplicates[j], 1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Clear input after sorting to release objects\r\n\t\t\t\t\t\t\t\t// See https://github.com/jquery/sizzle/pull/225\r\n\t\t\t\t\t\t\t\tsortInput = null;\r\n\r\n\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * Utility function for retrieving the text value of an array of DOM nodes\r\n\t\t\t\t\t\t\t * @param {Array|Element} elem\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tgetText = Sizzle.getText = function (elem) {\r\n\t\t\t\t\t\t\t\tvar node,\r\n\t\t\t\t\t\t\t\t\tret = \"\",\r\n\t\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\t\tnodeType = elem.nodeType;\r\n\r\n\t\t\t\t\t\t\t\tif (!nodeType) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If no nodeType, this is expected to be an array\r\n\t\t\t\t\t\t\t\t\twhile ((node = elem[i++])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do not traverse comment nodes\r\n\t\t\t\t\t\t\t\t\t\tret += getText(node);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Use textContent for elements\r\n\t\t\t\t\t\t\t\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\r\n\t\t\t\t\t\t\t\t\tif (typeof elem.textContent === \"string\") {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.textContent;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Traverse its children\r\n\t\t\t\t\t\t\t\t\t\tfor (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n\t\t\t\t\t\t\t\t\t\t\tret += getText(elem);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else if (nodeType === 3 || nodeType === 4) {\r\n\t\t\t\t\t\t\t\t\treturn elem.nodeValue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Do not include comment or processing instruction nodes\r\n\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tExpr = Sizzle.selectors = {\r\n\r\n\t\t\t\t\t\t\t\t// Can be adjusted by the user\r\n\t\t\t\t\t\t\t\tcacheLength: 50,\r\n\r\n\t\t\t\t\t\t\t\tcreatePseudo: markFunction,\r\n\r\n\t\t\t\t\t\t\t\tmatch: matchExpr,\r\n\r\n\t\t\t\t\t\t\t\tattrHandle: {},\r\n\r\n\t\t\t\t\t\t\t\tfind: {},\r\n\r\n\t\t\t\t\t\t\t\trelative: {\r\n\t\t\t\t\t\t\t\t\t\">\": { dir: \"parentNode\", first: true },\r\n\t\t\t\t\t\t\t\t\t\" \": { dir: \"parentNode\" },\r\n\t\t\t\t\t\t\t\t\t\"+\": { dir: \"previousSibling\", first: true },\r\n\t\t\t\t\t\t\t\t\t\"~\": { dir: \"previousSibling\" }\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tpreFilter: {\r\n\t\t\t\t\t\t\t\t\t\"ATTR\": function (match) {\r\n\t\t\t\t\t\t\t\t\t\tmatch[1] = match[1].replace(runescape, funescape);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Move the given value to match[3] whether quoted or unquoted\r\n\t\t\t\t\t\t\t\t\t\tmatch[3] = (match[3] || match[4] ||\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[5] || \"\").replace(runescape, funescape);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (match[2] === \"~=\") {\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn match.slice(0, 4);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"CHILD\": function (match) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* matches from matchExpr[\"CHILD\"]\r\n\t\t\t\t\t\t\t\t\t\t\t1 type (only|nth|...)\r\n\t\t\t\t\t\t\t\t\t\t\t2 what (child|of-type)\r\n\t\t\t\t\t\t\t\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\r\n\t\t\t\t\t\t\t\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\r\n\t\t\t\t\t\t\t\t\t\t\t5 sign of xn-component\r\n\t\t\t\t\t\t\t\t\t\t\t6 x of xn-component\r\n\t\t\t\t\t\t\t\t\t\t\t7 sign of y-component\r\n\t\t\t\t\t\t\t\t\t\t\t8 y of y-component\r\n\t\t\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t\t\t\tmatch[1] = match[1].toLowerCase();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (match[1].slice(0, 3) === \"nth\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// nth-* requires argument\r\n\t\t\t\t\t\t\t\t\t\t\tif (!match[3]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tSizzle.error(match[0]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\r\n\t\t\t\t\t\t\t\t\t\t\t// remember that false/true cast respectively to 0/1\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[4] = +(match[4] ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatch[5] + (match[6] || 1) :\r\n\t\t\t\t\t\t\t\t\t\t\t\t2 * (match[3] === \"even\" || match[3] === \"odd\"));\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[5] = +((match[7] + match[8]) || match[3] === \"odd\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// other types prohibit arguments\r\n\t\t\t\t\t\t\t\t\t\t} else if (match[3]) {\r\n\t\t\t\t\t\t\t\t\t\t\tSizzle.error(match[0]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn match;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"PSEUDO\": function (match) {\r\n\t\t\t\t\t\t\t\t\t\tvar excess,\r\n\t\t\t\t\t\t\t\t\t\t\tunquoted = !match[6] && match[2];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (matchExpr[\"CHILD\"].test(match[0])) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Accept quoted arguments as-is\r\n\t\t\t\t\t\t\t\t\t\tif (match[3]) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Strip excess characters from unquoted arguments\r\n\t\t\t\t\t\t\t\t\t\t} else if (unquoted && rpseudo.test(unquoted) &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Get excess from tokenize (recursively)\r\n\t\t\t\t\t\t\t\t\t\t\t(excess = tokenize(unquoted, true)) &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// advance to the next closing parenthesis\r\n\t\t\t\t\t\t\t\t\t\t\t(excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// excess is a negative index\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[0] = match[0].slice(0, excess);\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[2] = unquoted.slice(0, excess);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\r\n\t\t\t\t\t\t\t\t\t\treturn match.slice(0, 3);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tfilter: {\r\n\r\n\t\t\t\t\t\t\t\t\t\"TAG\": function (nodeNameSelector) {\r\n\t\t\t\t\t\t\t\t\t\tvar nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\treturn nodeNameSelector === \"*\" ?\r\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"CLASS\": function (className) {\r\n\t\t\t\t\t\t\t\t\t\tvar pattern = classCache[className + \" \"];\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn pattern ||\r\n\t\t\t\t\t\t\t\t\t\t\t(pattern = new RegExp(\"(^|\" + whitespace +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName, function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn pattern.test(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telem.getAttribute(\"class\") ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"ATTR\": function (name, operator, check) {\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar result = Sizzle.attr(elem, name);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (result == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn operator === \"!=\";\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (!operator) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tresult += \"\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-disable max-len */\r\n\r\n\t\t\t\t\t\t\t\t\t\t\treturn operator === \"=\" ? result === check :\r\n\t\t\t\t\t\t\t\t\t\t\t\toperator === \"!=\" ? result !== check :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"^=\" ? check && result.indexOf(check) === 0 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"*=\" ? check && result.indexOf(check) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"$=\" ? check && result.slice(-check.length) === check :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse;\r\n\t\t\t\t\t\t\t\t\t\t\t/* eslint-enable max-len */\r\n\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"CHILD\": function (type, what, _argument, first, last) {\r\n\t\t\t\t\t\t\t\t\t\tvar simple = type.slice(0, 3) !== \"nth\",\r\n\t\t\t\t\t\t\t\t\t\t\tforward = type.slice(-4) !== \"last\",\r\n\t\t\t\t\t\t\t\t\t\t\tofType = what === \"of-type\";\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn first === 1 && last === 0 ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Shortcut for :nth-*(n)\r\n\t\t\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn !!elem.parentNode;\r\n\t\t\t\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tfunction (elem, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tparent = elem.parentNode,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuseCache = !xml && !ofType,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdiff = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (parent) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (simple) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile (dir) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = node[dir])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (ofType ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstart = [forward ? parent.firstChild : parent.lastChild];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (forward && useCache) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode = parent;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] || (node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcache = uniqueCache[type] || [];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdiff = nodeIndex && cache[2];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[nodeIndex];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = ++nodeIndex && node && node[dir] ||\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop())) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (node.nodeType === 1 && ++diff && node === elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[type] = [dirruns, nodeIndex, diff];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Use previously-cached element index if available\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (useCache) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] || (node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcache = uniqueCache[type] || [];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdiff = nodeIndex;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// xml :nth-child(...)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (diff === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhile ((node = ++nodeIndex && node && node[dir] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop())) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((ofType ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t++diff) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (useCache) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = node[expando] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(node[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[node.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[node.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[type] = [dirruns, diff];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (node === elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdiff -= last;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn diff === first || (diff % first === 0 && diff / first >= 0);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"PSEUDO\": function (pseudo, argument) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// pseudo-class names are case-insensitive\r\n\t\t\t\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\r\n\t\t\t\t\t\t\t\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r\n\t\t\t\t\t\t\t\t\t\t// Remember that setFilters inherits from pseudos\r\n\t\t\t\t\t\t\t\t\t\tvar args,\r\n\t\t\t\t\t\t\t\t\t\t\tfn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tSizzle.error(\"unsupported pseudo: \" + pseudo);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// The user may use createPseudo to indicate that\r\n\t\t\t\t\t\t\t\t\t\t// arguments are needed to create the filter function\r\n\t\t\t\t\t\t\t\t\t\t// just as Sizzle does\r\n\t\t\t\t\t\t\t\t\t\tif (fn[expando]) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn fn(argument);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// But maintain support for old signatures\r\n\t\t\t\t\t\t\t\t\t\tif (fn.length > 1) {\r\n\t\t\t\t\t\t\t\t\t\t\targs = [pseudo, pseudo, \"\", argument];\r\n\t\t\t\t\t\t\t\t\t\t\treturn Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tmarkFunction(function (seed, matches) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar idx,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatched = fn(seed, argument),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ti = matched.length;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tidx = indexOf(seed, matched[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tseed[idx] = !(matches[idx] = matched[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn fn(elem, 0, args);\r\n\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn fn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tpseudos: {\r\n\r\n\t\t\t\t\t\t\t\t\t// Potentially complex pseudos\r\n\t\t\t\t\t\t\t\t\t\"not\": markFunction(function (selector) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Trim the selector passed to compile\r\n\t\t\t\t\t\t\t\t\t\t// to avoid treating leading and trailing\r\n\t\t\t\t\t\t\t\t\t\t// spaces as combinators\r\n\t\t\t\t\t\t\t\t\t\tvar input = [],\r\n\t\t\t\t\t\t\t\t\t\t\tresults = [],\r\n\t\t\t\t\t\t\t\t\t\t\tmatcher = compile(selector.replace(rtrim, \"$1\"));\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn matcher[expando] ?\r\n\t\t\t\t\t\t\t\t\t\t\tmarkFunction(function (seed, matches, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tunmatched = matcher(seed, null, xml, []),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ti = seed.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Match elements unmatched by `matcher`\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((elem = unmatched[i])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\t\t\t\tfunction (elem, _context, xml) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinput[0] = elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcher(input, null, xml, results);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Don't keep the element (issue #299)\r\n\t\t\t\t\t\t\t\t\t\t\t\tinput[0] = null;\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn !results.pop();\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"has\": markFunction(function (selector) {\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn Sizzle(selector, elem).length > 0;\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"contains\": markFunction(function (text) {\r\n\t\t\t\t\t\t\t\t\t\ttext = text.replace(runescape, funescape);\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (elem.textContent || getText(elem)).indexOf(text) > -1;\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t// \"Whether an element is represented by a :lang() selector\r\n\t\t\t\t\t\t\t\t\t// is based solely on the element's language value\r\n\t\t\t\t\t\t\t\t\t// being equal to the identifier C,\r\n\t\t\t\t\t\t\t\t\t// or beginning with the identifier C immediately followed by \"-\".\r\n\t\t\t\t\t\t\t\t\t// The matching of C against the element's language value is performed case-insensitively.\r\n\t\t\t\t\t\t\t\t\t// The identifier C does not have to be a valid language name.\"\r\n\t\t\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\r\n\t\t\t\t\t\t\t\t\t\"lang\": markFunction(function (lang) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// lang value must be a valid identifier\r\n\t\t\t\t\t\t\t\t\t\tif (!ridentifier.test(lang || \"\")) {\r\n\t\t\t\t\t\t\t\t\t\t\tSizzle.error(\"unsupported lang: \" + lang);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tlang = lang.replace(runescape, funescape).toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\treturn function (elem) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar elemLang;\r\n\t\t\t\t\t\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ((elemLang = documentIsHTML ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telem.lang :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\"))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telemLang = elemLang.toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} while ((elem = elem.parentNode) && elem.nodeType === 1);\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t// Miscellaneous\r\n\t\t\t\t\t\t\t\t\t\"target\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\tvar hash = window.location && window.location.hash;\r\n\t\t\t\t\t\t\t\t\t\treturn hash && hash.slice(1) === elem.id;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"root\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem === docElem;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"focus\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem === document.activeElement &&\r\n\t\t\t\t\t\t\t\t\t\t\t(!document.hasFocus || document.hasFocus()) &&\r\n\t\t\t\t\t\t\t\t\t\t\t!!(elem.type || elem.href || ~elem.tabIndex);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Boolean properties\r\n\t\t\t\t\t\t\t\t\t\"enabled\": createDisabledPseudo(false),\r\n\t\t\t\t\t\t\t\t\t\"disabled\": createDisabledPseudo(true),\r\n\r\n\t\t\t\t\t\t\t\t\t\"checked\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// In CSS3, :checked should return both checked and selected elements\r\n\t\t\t\t\t\t\t\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t\t\t\t\t\t\t\tvar nodeName = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\treturn (nodeName === \"input\" && !!elem.checked) ||\r\n\t\t\t\t\t\t\t\t\t\t\t(nodeName === \"option\" && !!elem.selected);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"selected\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Accessing this property makes selected-by-default\r\n\t\t\t\t\t\t\t\t\t\t// options in Safari work properly\r\n\t\t\t\t\t\t\t\t\t\tif (elem.parentNode) {\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\t\t\t\t\t\t\t\telem.parentNode.selectedIndex;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn elem.selected === true;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Contents\r\n\t\t\t\t\t\t\t\t\t\"empty\": function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\r\n\t\t\t\t\t\t\t\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\r\n\t\t\t\t\t\t\t\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\r\n\t\t\t\t\t\t\t\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\r\n\t\t\t\t\t\t\t\t\t\tfor (elem = elem.firstChild; elem; elem = elem.nextSibling) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType < 6) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"parent\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn !Expr.pseudos[\"empty\"](elem);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Element/input types\r\n\t\t\t\t\t\t\t\t\t\"header\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn rheader.test(elem.nodeName);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"input\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn rinputs.test(elem.nodeName);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"button\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\t\t\t\t\t\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\"text\": function (elem) {\r\n\t\t\t\t\t\t\t\t\t\tvar attr;\r\n\t\t\t\t\t\t\t\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\r\n\t\t\t\t\t\t\t\t\t\t\telem.type === \"text\" &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t\t\t\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t((attr = elem.getAttribute(\"type\")) == null ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tattr.toLowerCase() === \"text\");\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Position-in-collection\r\n\t\t\t\t\t\t\t\t\t\"first\": createPositionalPseudo(function () {\r\n\t\t\t\t\t\t\t\t\t\treturn [0];\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"last\": createPositionalPseudo(function (_matchIndexes, length) {\r\n\t\t\t\t\t\t\t\t\t\treturn [length - 1];\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\t\t\treturn [argument < 0 ? argument + length : argument];\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"even\": createPositionalPseudo(function (matchIndexes, length) {\r\n\t\t\t\t\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\t\t\t\t\tfor (; i < length; i += 2) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"odd\": createPositionalPseudo(function (matchIndexes, length) {\r\n\t\t\t\t\t\t\t\t\t\tvar i = 1;\r\n\t\t\t\t\t\t\t\t\t\tfor (; i < length; i += 2) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\t\t\tvar i = argument < 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\targument + length :\r\n\t\t\t\t\t\t\t\t\t\t\targument > length ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tlength :\r\n\t\t\t\t\t\t\t\t\t\t\t\targument;\r\n\t\t\t\t\t\t\t\t\t\tfor (; --i >= 0;) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t\t\t}),\r\n\r\n\t\t\t\t\t\t\t\t\t\"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\r\n\t\t\t\t\t\t\t\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\t\t\t\t\t\t\t\tfor (; ++i < length;) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatchIndexes.push(i);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn matchIndexes;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\r\n\r\n\t\t\t\t\t\t\t// Add button/input type pseudos\r\n\t\t\t\t\t\t\tfor (i in { radio: true, checkbox: true, file: true, password: true, image: true }) {\r\n\t\t\t\t\t\t\t\tExpr.pseudos[i] = createInputPseudo(i);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor (i in { submit: true, reset: true }) {\r\n\t\t\t\t\t\t\t\tExpr.pseudos[i] = createButtonPseudo(i);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Easy API for creating new setFilters\r\n\t\t\t\t\t\t\tfunction setFilters() { }\r\n\t\t\t\t\t\t\tsetFilters.prototype = Expr.filters = Expr.pseudos;\r\n\t\t\t\t\t\t\tExpr.setFilters = new setFilters();\r\n\r\n\t\t\t\t\t\t\ttokenize = Sizzle.tokenize = function (selector, parseOnly) {\r\n\t\t\t\t\t\t\t\tvar matched, match, tokens, type,\r\n\t\t\t\t\t\t\t\t\tsoFar, groups, preFilters,\r\n\t\t\t\t\t\t\t\t\tcached = tokenCache[selector + \" \"];\r\n\r\n\t\t\t\t\t\t\t\tif (cached) {\r\n\t\t\t\t\t\t\t\t\treturn parseOnly ? 0 : cached.slice(0);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tsoFar = selector;\r\n\t\t\t\t\t\t\t\tgroups = [];\r\n\t\t\t\t\t\t\t\tpreFilters = Expr.preFilter;\r\n\r\n\t\t\t\t\t\t\t\twhile (soFar) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Comma and first run\r\n\t\t\t\t\t\t\t\t\tif (!matched || (match = rcomma.exec(soFar))) {\r\n\t\t\t\t\t\t\t\t\t\tif (match) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Don't consume trailing commas as valid\r\n\t\t\t\t\t\t\t\t\t\t\tsoFar = soFar.slice(match[0].length) || soFar;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tgroups.push((tokens = []));\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tmatched = false;\r\n\r\n\t\t\t\t\t\t\t\t\t// Combinators\r\n\t\t\t\t\t\t\t\t\tif ((match = rcombinators.exec(soFar))) {\r\n\t\t\t\t\t\t\t\t\t\tmatched = match.shift();\r\n\t\t\t\t\t\t\t\t\t\ttokens.push({\r\n\t\t\t\t\t\t\t\t\t\t\tvalue: matched,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Cast descendant combinators to space\r\n\t\t\t\t\t\t\t\t\t\t\ttype: match[0].replace(rtrim, \" \")\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tsoFar = soFar.slice(matched.length);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Filters\r\n\t\t\t\t\t\t\t\t\tfor (type in Expr.filter) {\r\n\t\t\t\t\t\t\t\t\t\tif ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] ||\r\n\t\t\t\t\t\t\t\t\t\t\t(match = preFilters[type](match)))) {\r\n\t\t\t\t\t\t\t\t\t\t\tmatched = match.shift();\r\n\t\t\t\t\t\t\t\t\t\t\ttokens.push({\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: matched,\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatches: match\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\tsoFar = soFar.slice(matched.length);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (!matched) {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Return the length of the invalid excess\r\n\t\t\t\t\t\t\t\t// if we're just parsing\r\n\t\t\t\t\t\t\t\t// Otherwise, throw an error or return tokens\r\n\t\t\t\t\t\t\t\treturn parseOnly ?\r\n\t\t\t\t\t\t\t\t\tsoFar.length :\r\n\t\t\t\t\t\t\t\t\tsoFar ?\r\n\t\t\t\t\t\t\t\t\t\tSizzle.error(selector) :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Cache the tokens\r\n\t\t\t\t\t\t\t\t\t\ttokenCache(selector, groups).slice(0);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tfunction toSelector(tokens) {\r\n\t\t\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\t\t\tlen = tokens.length,\r\n\t\t\t\t\t\t\t\t\tselector = \"\";\r\n\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\tselector += tokens[i].value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn selector;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction addCombinator(matcher, combinator, base) {\r\n\t\t\t\t\t\t\t\tvar dir = combinator.dir,\r\n\t\t\t\t\t\t\t\t\tskip = combinator.next,\r\n\t\t\t\t\t\t\t\t\tkey = skip || dir,\r\n\t\t\t\t\t\t\t\t\tcheckNonElements = base && key === \"parentNode\",\r\n\t\t\t\t\t\t\t\t\tdoneName = done++;\r\n\r\n\t\t\t\t\t\t\t\treturn combinator.first ?\r\n\r\n\t\t\t\t\t\t\t\t\t// Check against closest ancestor/preceding element\r\n\t\t\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn matcher(elem, context, xml);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t} :\r\n\r\n\t\t\t\t\t\t\t\t\t// Check against all ancestor/preceding elements\r\n\t\t\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tvar oldCache, uniqueCache, outerCache,\r\n\t\t\t\t\t\t\t\t\t\t\tnewCache = [dirruns, doneName];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\r\n\t\t\t\t\t\t\t\t\t\tif (xml) {\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (matcher(elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((elem = elem[dir])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 || checkNonElements) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\touterCache = elem[expando] || (elem[expando] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[elem.uniqueID] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[elem.uniqueID] = {});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (skip && skip === elem.nodeName.toLowerCase()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telem = elem[dir] || elem;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if ((oldCache = uniqueCache[key]) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toldCache[0] === dirruns && oldCache[1] === doneName) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (newCache[2] = oldCache[2]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuniqueCache[key] = newCache;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ((newCache[2] = matcher(elem, context, xml))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction elementMatcher(matchers) {\r\n\t\t\t\t\t\t\t\treturn matchers.length > 1 ?\r\n\t\t\t\t\t\t\t\t\tfunction (elem, context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tvar i = matchers.length;\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (!matchers[i](elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\tmatchers[0];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction multipleContexts(selector, contexts, results) {\r\n\t\t\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\t\t\tlen = contexts.length;\r\n\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\tSizzle(selector, contexts[i], results);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction condense(unmatched, map, filter, context, xml) {\r\n\t\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\t\tnewUnmatched = [],\r\n\t\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\t\tlen = unmatched.length,\r\n\t\t\t\t\t\t\t\t\tmapped = map != null;\r\n\r\n\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\tif ((elem = unmatched[i])) {\r\n\t\t\t\t\t\t\t\t\t\tif (!filter || filter(elem, context, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\tnewUnmatched.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\tif (mapped) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmap.push(i);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn newUnmatched;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\r\n\t\t\t\t\t\t\t\tif (postFilter && !postFilter[expando]) {\r\n\t\t\t\t\t\t\t\t\tpostFilter = setMatcher(postFilter);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (postFinder && !postFinder[expando]) {\r\n\t\t\t\t\t\t\t\t\tpostFinder = setMatcher(postFinder, postSelector);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn markFunction(function (seed, results, context, xml) {\r\n\t\t\t\t\t\t\t\t\tvar temp, i, elem,\r\n\t\t\t\t\t\t\t\t\t\tpreMap = [],\r\n\t\t\t\t\t\t\t\t\t\tpostMap = [],\r\n\t\t\t\t\t\t\t\t\t\tpreexisting = results.length,\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Get initial elements from seed or context\r\n\t\t\t\t\t\t\t\t\t\telems = seed || multipleContexts(\r\n\t\t\t\t\t\t\t\t\t\t\tselector || \"*\",\r\n\t\t\t\t\t\t\t\t\t\t\tcontext.nodeType ? [context] : context,\r\n\t\t\t\t\t\t\t\t\t\t\t[]\r\n\t\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\r\n\t\t\t\t\t\t\t\t\t\tmatcherIn = preFilter && (seed || !selector) ?\r\n\t\t\t\t\t\t\t\t\t\t\tcondense(elems, preMap, preFilter, context, xml) :\r\n\t\t\t\t\t\t\t\t\t\t\telems,\r\n\r\n\t\t\t\t\t\t\t\t\t\tmatcherOut = matcher ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r\n\t\t\t\t\t\t\t\t\t\t\tpostFinder || (seed ? preFilter : preexisting || postFilter) ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// ...intermediate processing is necessary\r\n\t\t\t\t\t\t\t\t\t\t\t\t[] :\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// ...otherwise use results directly\r\n\t\t\t\t\t\t\t\t\t\t\t\tresults :\r\n\t\t\t\t\t\t\t\t\t\t\tmatcherIn;\r\n\r\n\t\t\t\t\t\t\t\t\t// Find primary matches\r\n\t\t\t\t\t\t\t\t\tif (matcher) {\r\n\t\t\t\t\t\t\t\t\t\tmatcher(matcherIn, matcherOut, context, xml);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Apply postFilter\r\n\t\t\t\t\t\t\t\t\tif (postFilter) {\r\n\t\t\t\t\t\t\t\t\t\ttemp = condense(matcherOut, postMap);\r\n\t\t\t\t\t\t\t\t\t\tpostFilter(temp, [], context, xml);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Un-match failing elements by moving them back to matcherIn\r\n\t\t\t\t\t\t\t\t\t\ti = temp.length;\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\tif ((elem = temp[i])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (seed) {\r\n\t\t\t\t\t\t\t\t\t\tif (postFinder || preFilter) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (postFinder) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\r\n\t\t\t\t\t\t\t\t\t\t\t\ttemp = [];\r\n\t\t\t\t\t\t\t\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((elem = matcherOut[i])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttemp.push((matcherIn[i] = elem));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tpostFinder(null, (matcherOut = []), temp, xml);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Move matched elements from seed to results to keep them synchronized\r\n\t\t\t\t\t\t\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ((elem = matcherOut[i]) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Add elements to results, through postFinder if defined\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tmatcherOut = condense(\r\n\t\t\t\t\t\t\t\t\t\t\tmatcherOut === results ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcherOut.splice(preexisting, matcherOut.length) :\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcherOut\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\tif (postFinder) {\r\n\t\t\t\t\t\t\t\t\t\t\tpostFinder(null, results, matcherOut, xml);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, matcherOut);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction matcherFromTokens(tokens) {\r\n\t\t\t\t\t\t\t\tvar checkContext, matcher, j,\r\n\t\t\t\t\t\t\t\t\tlen = tokens.length,\r\n\t\t\t\t\t\t\t\t\tleadingRelative = Expr.relative[tokens[0].type],\r\n\t\t\t\t\t\t\t\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\r\n\t\t\t\t\t\t\t\t\ti = leadingRelative ? 1 : 0,\r\n\r\n\t\t\t\t\t\t\t\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\r\n\t\t\t\t\t\t\t\t\tmatchContext = addCombinator(function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem === checkContext;\r\n\t\t\t\t\t\t\t\t\t}, implicitRelative, true),\r\n\t\t\t\t\t\t\t\t\tmatchAnyContext = addCombinator(function (elem) {\r\n\t\t\t\t\t\t\t\t\t\treturn indexOf(checkContext, elem) > -1;\r\n\t\t\t\t\t\t\t\t\t}, implicitRelative, true),\r\n\t\t\t\t\t\t\t\t\tmatchers = [function (elem, context, xml) {\r\n\t\t\t\t\t\t\t\t\t\tvar ret = (!leadingRelative && (xml || context !== outermostContext)) || (\r\n\t\t\t\t\t\t\t\t\t\t\t(checkContext = context).nodeType ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatchContext(elem, context, xml) :\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatchAnyContext(elem, context, xml));\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Avoid hanging onto element (issue #299)\r\n\t\t\t\t\t\t\t\t\t\tcheckContext = null;\r\n\t\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t\t}];\r\n\r\n\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\tif ((matcher = Expr.relative[tokens[i].type])) {\r\n\t\t\t\t\t\t\t\t\t\tmatchers = [addCombinator(elementMatcher(matchers), matcher)];\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tmatcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Return special upon seeing a positional matcher\r\n\t\t\t\t\t\t\t\t\t\tif (matcher[expando]) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Find the next relative operator (if any) for proper handling\r\n\t\t\t\t\t\t\t\t\t\t\tj = ++i;\r\n\t\t\t\t\t\t\t\t\t\t\tfor (; j < len; j++) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Expr.relative[tokens[j].type]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\treturn setMatcher(\r\n\t\t\t\t\t\t\t\t\t\t\t\ti > 1 && elementMatcher(matchers),\r\n\t\t\t\t\t\t\t\t\t\t\t\ti > 1 && toSelector(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttokens\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.slice(0, i - 1)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.concat({ value: tokens[i - 2].type === \" \" ? \"*\" : \"\" })\r\n\t\t\t\t\t\t\t\t\t\t\t\t).replace(rtrim, \"$1\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcher,\r\n\t\t\t\t\t\t\t\t\t\t\t\ti < j && matcherFromTokens(tokens.slice(i, j)),\r\n\t\t\t\t\t\t\t\t\t\t\t\tj < len && matcherFromTokens((tokens = tokens.slice(j))),\r\n\t\t\t\t\t\t\t\t\t\t\t\tj < len && toSelector(tokens)\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tmatchers.push(matcher);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn elementMatcher(matchers);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction matcherFromGroupMatchers(elementMatchers, setMatchers) {\r\n\t\t\t\t\t\t\t\tvar bySet = setMatchers.length > 0,\r\n\t\t\t\t\t\t\t\t\tbyElement = elementMatchers.length > 0,\r\n\t\t\t\t\t\t\t\t\tsuperMatcher = function (seed, context, xml, results, outermost) {\r\n\t\t\t\t\t\t\t\t\t\tvar elem, j, matcher,\r\n\t\t\t\t\t\t\t\t\t\t\tmatchedCount = 0,\r\n\t\t\t\t\t\t\t\t\t\t\ti = \"0\",\r\n\t\t\t\t\t\t\t\t\t\t\tunmatched = seed && [],\r\n\t\t\t\t\t\t\t\t\t\t\tsetMatched = [],\r\n\t\t\t\t\t\t\t\t\t\t\tcontextBackup = outermostContext,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// We must always have either seed elements or outermost context\r\n\t\t\t\t\t\t\t\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Use integer dirruns iff this is the outermost matcher\r\n\t\t\t\t\t\t\t\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\r\n\t\t\t\t\t\t\t\t\t\t\tlen = elems.length;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (outermost) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\t\toutermostContext = context == document || context || outermost;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Add elements passing elementMatchers directly to results\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE<9, Safari\r\n\t\t\t\t\t\t\t\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\r\n\t\t\t\t\t\t\t\t\t\tfor (; i !== len && (elem = elems[i]) != null; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (byElement && elem) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tj = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t\t\t\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t\t\t\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!context && elem.ownerDocument != document) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetDocument(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txml = !documentIsHTML;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile ((matcher = elementMatchers[j++])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (matcher(elem, context || document, xml)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (outermost) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Track unmatched elements for set filters\r\n\t\t\t\t\t\t\t\t\t\t\tif (bySet) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// They will have gone through all possible matchers\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ((elem = !matcher && elem)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatchedCount--;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Lengthen the array for every element, matched or not\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (seed) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tunmatched.push(elem);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\r\n\t\t\t\t\t\t\t\t\t\t// makes the latter nonnegative.\r\n\t\t\t\t\t\t\t\t\t\tmatchedCount += i;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Apply set filters to unmatched elements\r\n\t\t\t\t\t\t\t\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\r\n\t\t\t\t\t\t\t\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\r\n\t\t\t\t\t\t\t\t\t\t// no element matchers and no seed.\r\n\t\t\t\t\t\t\t\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\r\n\t\t\t\t\t\t\t\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\r\n\t\t\t\t\t\t\t\t\t\t// numerically zero.\r\n\t\t\t\t\t\t\t\t\t\tif (bySet && i !== matchedCount) {\r\n\t\t\t\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\t\t\t\twhile ((matcher = setMatchers[j++])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatcher(unmatched, setMatched, context, xml);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (seed) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (matchedCount > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!(unmatched[i] || setMatched[i])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMatched[i] = pop.call(results);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Discard index placeholder values to get only actual matches\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetMatched = condense(setMatched);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Add matches to results\r\n\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, setMatched);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\r\n\t\t\t\t\t\t\t\t\t\t\tif (outermost && !seed && setMatched.length > 0 &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(matchedCount + setMatchers.length) > 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tSizzle.uniqueSort(results);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Override manipulation of globals by nested matchers\r\n\t\t\t\t\t\t\t\t\t\tif (outermost) {\r\n\t\t\t\t\t\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t\t\t\t\t\t\toutermostContext = contextBackup;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn unmatched;\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\treturn bySet ?\r\n\t\t\t\t\t\t\t\t\tmarkFunction(superMatcher) :\r\n\t\t\t\t\t\t\t\t\tsuperMatcher;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcompile = Sizzle.compile = function (selector, match /* Internal Use Only */) {\r\n\t\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\t\tsetMatchers = [],\r\n\t\t\t\t\t\t\t\t\telementMatchers = [],\r\n\t\t\t\t\t\t\t\t\tcached = compilerCache[selector + \" \"];\r\n\r\n\t\t\t\t\t\t\t\tif (!cached) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Generate a function of recursive functions that can be used to check each element\r\n\t\t\t\t\t\t\t\t\tif (!match) {\r\n\t\t\t\t\t\t\t\t\t\tmatch = tokenize(selector);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\ti = match.length;\r\n\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\tcached = matcherFromTokens(match[i]);\r\n\t\t\t\t\t\t\t\t\t\tif (cached[expando]) {\r\n\t\t\t\t\t\t\t\t\t\t\tsetMatchers.push(cached);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\telementMatchers.push(cached);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Cache the compiled function\r\n\t\t\t\t\t\t\t\t\tcached = compilerCache(\r\n\t\t\t\t\t\t\t\t\t\tselector,\r\n\t\t\t\t\t\t\t\t\t\tmatcherFromGroupMatchers(elementMatchers, setMatchers)\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t// Save selector and tokenization\r\n\t\t\t\t\t\t\t\t\tcached.selector = selector;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn cached;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t * A low-level selection function that works with Sizzle's compiled\r\n\t\t\t\t\t\t\t *  selector functions\r\n\t\t\t\t\t\t\t * @param {String|Function} selector A selector or a pre-compiled\r\n\t\t\t\t\t\t\t *  selector function built with Sizzle.compile\r\n\t\t\t\t\t\t\t * @param {Element} context\r\n\t\t\t\t\t\t\t * @param {Array} [results]\r\n\t\t\t\t\t\t\t * @param {Array} [seed] A set of elements to match against\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tselect = Sizzle.select = function (selector, context, results, seed) {\r\n\t\t\t\t\t\t\t\tvar i, tokens, token, type, find,\r\n\t\t\t\t\t\t\t\t\tcompiled = typeof selector === \"function\" && selector,\r\n\t\t\t\t\t\t\t\t\tmatch = !seed && tokenize((selector = compiled.selector || selector));\r\n\r\n\t\t\t\t\t\t\t\tresults = results || [];\r\n\r\n\t\t\t\t\t\t\t\t// Try to minimize operations if there is only one selector in the list and no seed\r\n\t\t\t\t\t\t\t\t// (the latter of which guarantees us context)\r\n\t\t\t\t\t\t\t\tif (match.length === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Reduce context if the leading compound selector is an ID\r\n\t\t\t\t\t\t\t\t\ttokens = match[0] = match[0].slice(0);\r\n\t\t\t\t\t\t\t\t\tif (tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\r\n\t\t\t\t\t\t\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tcontext = (Expr.find[\"ID\"](token.matches[0]\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(runescape, funescape), context) || [])[0];\r\n\t\t\t\t\t\t\t\t\t\tif (!context) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\r\n\t\t\t\t\t\t\t\t\t\t} else if (compiled) {\r\n\t\t\t\t\t\t\t\t\t\t\tcontext = context.parentNode;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tselector = selector.slice(tokens.shift().value.length);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Fetch a seed set for right-to-left matching\r\n\t\t\t\t\t\t\t\t\ti = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\r\n\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\ttoken = tokens[i];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Abort if we hit a combinator\r\n\t\t\t\t\t\t\t\t\t\tif (Expr.relative[(type = token.type)]) {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif ((find = Expr.find[type])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Search, expanding context for leading sibling combinators\r\n\t\t\t\t\t\t\t\t\t\t\tif ((seed = find(\r\n\t\t\t\t\t\t\t\t\t\t\t\ttoken.matches[0].replace(runescape, funescape),\r\n\t\t\t\t\t\t\t\t\t\t\t\trsibling.test(tokens[0].type) && testContext(context.parentNode) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontext\r\n\t\t\t\t\t\t\t\t\t\t\t))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\r\n\t\t\t\t\t\t\t\t\t\t\t\ttokens.splice(i, 1);\r\n\t\t\t\t\t\t\t\t\t\t\t\tselector = seed.length && toSelector(tokens);\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpush.apply(results, seed);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Compile and execute a filtering function if one is not provided\r\n\t\t\t\t\t\t\t\t// Provide `match` to avoid retokenization if we modified the selector above\r\n\t\t\t\t\t\t\t\t(compiled || compile(selector, match))(\r\n\t\t\t\t\t\t\t\t\tseed,\r\n\t\t\t\t\t\t\t\t\tcontext,\r\n\t\t\t\t\t\t\t\t\t!documentIsHTML,\r\n\t\t\t\t\t\t\t\t\tresults,\r\n\t\t\t\t\t\t\t\t\t!context || rsibling.test(selector) && testContext(context.parentNode) || context\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// One-time assignments\r\n\r\n\t\t\t\t\t\t\t// Sort stability\r\n\t\t\t\t\t\t\tsupport.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\r\n\r\n\t\t\t\t\t\t\t// Support: Chrome 14-35+\r\n\t\t\t\t\t\t\t// Always assume duplicates if they aren't passed to the comparison function\r\n\t\t\t\t\t\t\tsupport.detectDuplicates = !!hasDuplicate;\r\n\r\n\t\t\t\t\t\t\t// Initialize against the default document\r\n\t\t\t\t\t\t\tsetDocument();\r\n\r\n\t\t\t\t\t\t\t// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\r\n\t\t\t\t\t\t\t// Detached nodes confoundingly follow *each other*\r\n\t\t\t\t\t\t\tsupport.sortDetached = assert(function (el) {\r\n\r\n\t\t\t\t\t\t\t\t// Should return 1, but returns 4 (following)\r\n\t\t\t\t\t\t\t\treturn el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Support: IE<8\r\n\t\t\t\t\t\t\t// Prevent attribute/property \"interpolation\"\r\n\t\t\t\t\t\t\t// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\r\n\t\t\t\t\t\t\tif (!assert(function (el) {\r\n\t\t\t\t\t\t\t\tel.innerHTML = \"<a href='#'></a>\";\r\n\t\t\t\t\t\t\t\treturn el.firstChild.getAttribute(\"href\") === \"#\";\r\n\t\t\t\t\t\t\t})) {\r\n\t\t\t\t\t\t\t\taddHandle(\"type|href|height|width\", function (elem, name, isXML) {\r\n\t\t\t\t\t\t\t\t\tif (!isXML) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\t\t// Use defaultValue in place of getAttribute(\"value\")\r\n\t\t\t\t\t\t\tif (!support.attributes || !assert(function (el) {\r\n\t\t\t\t\t\t\t\tel.innerHTML = \"<input/>\";\r\n\t\t\t\t\t\t\t\tel.firstChild.setAttribute(\"value\", \"\");\r\n\t\t\t\t\t\t\t\treturn el.firstChild.getAttribute(\"value\") === \"\";\r\n\t\t\t\t\t\t\t})) {\r\n\t\t\t\t\t\t\t\taddHandle(\"value\", function (elem, _name, isXML) {\r\n\t\t\t\t\t\t\t\t\tif (!isXML && elem.nodeName.toLowerCase() === \"input\") {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.defaultValue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Support: IE<9\r\n\t\t\t\t\t\t\t// Use getAttributeNode to fetch booleans when getAttribute lies\r\n\t\t\t\t\t\t\tif (!assert(function (el) {\r\n\t\t\t\t\t\t\t\treturn el.getAttribute(\"disabled\") == null;\r\n\t\t\t\t\t\t\t})) {\r\n\t\t\t\t\t\t\t\taddHandle(booleans, function (elem, name, isXML) {\r\n\t\t\t\t\t\t\t\t\tvar val;\r\n\t\t\t\t\t\t\t\t\tif (!isXML) {\r\n\t\t\t\t\t\t\t\t\t\treturn elem[name] === true ? name.toLowerCase() :\r\n\t\t\t\t\t\t\t\t\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tval.value :\r\n\t\t\t\t\t\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn Sizzle;\r\n\r\n\t\t\t\t\t\t})(window);\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.find = Sizzle;\r\n\t\t\t\t\tjQuery.expr = Sizzle.selectors;\r\n\r\n\t\t\t\t\t// Deprecated\r\n\t\t\t\t\tjQuery.expr[\":\"] = jQuery.expr.pseudos;\r\n\t\t\t\t\tjQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\r\n\t\t\t\t\tjQuery.text = Sizzle.getText;\r\n\t\t\t\t\tjQuery.isXMLDoc = Sizzle.isXML;\r\n\t\t\t\t\tjQuery.contains = Sizzle.contains;\r\n\t\t\t\t\tjQuery.escapeSelector = Sizzle.escape;\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar dir = function (elem, dir, until) {\r\n\t\t\t\t\t\tvar matched = [],\r\n\t\t\t\t\t\t\ttruncate = until !== undefined;\r\n\r\n\t\t\t\t\t\twhile ((elem = elem[dir]) && elem.nodeType !== 9) {\r\n\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\tif (truncate && jQuery(elem).is(until)) {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tmatched.push(elem);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn matched;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar siblings = function (n, elem) {\r\n\t\t\t\t\t\tvar matched = [];\r\n\r\n\t\t\t\t\t\tfor (; n; n = n.nextSibling) {\r\n\t\t\t\t\t\t\tif (n.nodeType === 1 && n !== elem) {\r\n\t\t\t\t\t\t\t\tmatched.push(n);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn matched;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar rneedsContext = jQuery.expr.match.needsContext;\r\n\r\n\r\n\r\n\t\t\t\t\tfunction nodeName(elem, name) {\r\n\r\n\t\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar rsingleTag = (/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i);\r\n\r\n\r\n\r\n\t\t\t\t\t// Implement the identical functionality for filter and not\r\n\t\t\t\t\tfunction winnow(elements, qualifier, not) {\r\n\t\t\t\t\t\tif (isFunction(qualifier)) {\r\n\t\t\t\t\t\t\treturn jQuery.grep(elements, function (elem, i) {\r\n\t\t\t\t\t\t\t\treturn !!qualifier.call(elem, i, elem) !== not;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Single element\r\n\t\t\t\t\t\tif (qualifier.nodeType) {\r\n\t\t\t\t\t\t\treturn jQuery.grep(elements, function (elem) {\r\n\t\t\t\t\t\t\t\treturn (elem === qualifier) !== not;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Arraylike of elements (jQuery, arguments, Array)\r\n\t\t\t\t\t\tif (typeof qualifier !== \"string\") {\r\n\t\t\t\t\t\t\treturn jQuery.grep(elements, function (elem) {\r\n\t\t\t\t\t\t\t\treturn (indexOf.call(qualifier, elem) > -1) !== not;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Filtered directly for both simple and complex selectors\r\n\t\t\t\t\t\treturn jQuery.filter(qualifier, elements, not);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.filter = function (expr, elems, not) {\r\n\t\t\t\t\t\tvar elem = elems[0];\r\n\r\n\t\t\t\t\t\tif (not) {\r\n\t\t\t\t\t\t\texpr = \":not(\" + expr + \")\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (elems.length === 1 && elem.nodeType === 1) {\r\n\t\t\t\t\t\t\treturn jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\r\n\t\t\t\t\t\t\treturn elem.nodeType === 1;\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tfind: function (selector) {\r\n\t\t\t\t\t\t\tvar i, ret,\r\n\t\t\t\t\t\t\t\tlen = this.length,\r\n\t\t\t\t\t\t\t\tself = this;\r\n\r\n\t\t\t\t\t\t\tif (typeof selector !== \"string\") {\r\n\t\t\t\t\t\t\t\treturn this.pushStack(jQuery(selector).filter(function () {\r\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\t\tif (jQuery.contains(self[i], this)) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tret = this.pushStack([]);\r\n\r\n\t\t\t\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\t\t\t\tjQuery.find(selector, self[i], ret);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn len > 1 ? jQuery.uniqueSort(ret) : ret;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tfilter: function (selector) {\r\n\t\t\t\t\t\t\treturn this.pushStack(winnow(this, selector || [], false));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnot: function (selector) {\r\n\t\t\t\t\t\t\treturn this.pushStack(winnow(this, selector || [], true));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tis: function (selector) {\r\n\t\t\t\t\t\t\treturn !!winnow(\r\n\t\t\t\t\t\t\t\tthis,\r\n\r\n\t\t\t\t\t\t\t\t// If this is a positional/relative selector, check membership in the returned set\r\n\t\t\t\t\t\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\r\n\t\t\t\t\t\t\t\ttypeof selector === \"string\" && rneedsContext.test(selector) ?\r\n\t\t\t\t\t\t\t\t\tjQuery(selector) :\r\n\t\t\t\t\t\t\t\t\tselector || [],\r\n\t\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t\t).length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t// Initialize a jQuery object\r\n\r\n\r\n\t\t\t\t\t// A central reference to the root jQuery(document)\r\n\t\t\t\t\tvar rootjQuery,\r\n\r\n\t\t\t\t\t\t// A simple way to check for HTML strings\r\n\t\t\t\t\t\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\r\n\t\t\t\t\t\t// Strict HTML recognition (#11290: must start with <)\r\n\t\t\t\t\t\t// Shortcut simple #id case for speed\r\n\t\t\t\t\t\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\r\n\r\n\t\t\t\t\t\tinit = jQuery.fn.init = function (selector, context, root) {\r\n\t\t\t\t\t\t\tvar match, elem;\r\n\r\n\t\t\t\t\t\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n\t\t\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Method init() accepts an alternate rootjQuery\r\n\t\t\t\t\t\t\t// so migrate can support jQuery.sub (gh-2101)\r\n\t\t\t\t\t\t\troot = root || rootjQuery;\r\n\r\n\t\t\t\t\t\t\t// Handle HTML strings\r\n\t\t\t\t\t\t\tif (typeof selector === \"string\") {\r\n\t\t\t\t\t\t\t\tif (selector[0] === \"<\" &&\r\n\t\t\t\t\t\t\t\t\tselector[selector.length - 1] === \">\" &&\r\n\t\t\t\t\t\t\t\t\tselector.length >= 3) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\r\n\t\t\t\t\t\t\t\t\tmatch = [null, selector, null];\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tmatch = rquickExpr.exec(selector);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Match html or make sure no context is specified for #id\r\n\t\t\t\t\t\t\t\tif (match && (match[1] || !context)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// HANDLE: $(html) -> $(array)\r\n\t\t\t\t\t\t\t\t\tif (match[1]) {\r\n\t\t\t\t\t\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Option to run scripts is true for back-compat\r\n\t\t\t\t\t\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\r\n\t\t\t\t\t\t\t\t\t\tjQuery.merge(this, jQuery.parseHTML(\r\n\t\t\t\t\t\t\t\t\t\t\tmatch[1],\r\n\t\t\t\t\t\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\r\n\t\t\t\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t\t\t\t));\r\n\r\n\t\t\t\t\t\t\t\t\t\t// HANDLE: $(html, props)\r\n\t\t\t\t\t\t\t\t\t\tif (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\r\n\t\t\t\t\t\t\t\t\t\t\tfor (match in context) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Properties of context are called as methods if possible\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (isFunction(this[match])) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis[match](context[match]);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ...and otherwise set as attributes\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.attr(match, context[match]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// HANDLE: $(#id)\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\telem = document.getElementById(match[2]);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Inject the element directly into the jQuery object\r\n\t\t\t\t\t\t\t\t\t\t\tthis[0] = elem;\r\n\t\t\t\t\t\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// HANDLE: $(expr, $(...))\r\n\t\t\t\t\t\t\t\t} else if (!context || context.jquery) {\r\n\t\t\t\t\t\t\t\t\treturn (context || root).find(selector);\r\n\r\n\t\t\t\t\t\t\t\t\t// HANDLE: $(expr, context)\r\n\t\t\t\t\t\t\t\t\t// (which is just equivalent to: $(context).find(expr)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn this.constructor(context).find(selector);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// HANDLE: $(DOMElement)\r\n\t\t\t\t\t\t\t} else if (selector.nodeType) {\r\n\t\t\t\t\t\t\t\tthis[0] = selector;\r\n\t\t\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t\t\t\t\t// HANDLE: $(function)\r\n\t\t\t\t\t\t\t\t// Shortcut for document ready\r\n\t\t\t\t\t\t\t} else if (isFunction(selector)) {\r\n\t\t\t\t\t\t\t\treturn root.ready !== undefined ?\r\n\t\t\t\t\t\t\t\t\troot.ready(selector) :\r\n\r\n\t\t\t\t\t\t\t\t\t// Execute immediately if ready is not present\r\n\t\t\t\t\t\t\t\t\tselector(jQuery);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn jQuery.makeArray(selector, this);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Give the init function the jQuery prototype for later instantiation\r\n\t\t\t\t\tinit.prototype = jQuery.fn;\r\n\r\n\t\t\t\t\t// Initialize central reference\r\n\t\t\t\t\trootjQuery = jQuery(document);\r\n\r\n\r\n\t\t\t\t\tvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\r\n\r\n\t\t\t\t\t\t// Methods guaranteed to produce a unique set when starting from a unique set\r\n\t\t\t\t\t\tguaranteedUnique = {\r\n\t\t\t\t\t\t\tchildren: true,\r\n\t\t\t\t\t\t\tcontents: true,\r\n\t\t\t\t\t\t\tnext: true,\r\n\t\t\t\t\t\t\tprev: true\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\thas: function (target) {\r\n\t\t\t\t\t\t\tvar targets = jQuery(target, this),\r\n\t\t\t\t\t\t\t\tl = targets.length;\r\n\r\n\t\t\t\t\t\t\treturn this.filter(function () {\r\n\t\t\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\tif (jQuery.contains(this, targets[i])) {\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tclosest: function (selectors, context) {\r\n\t\t\t\t\t\t\tvar cur,\r\n\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\tl = this.length,\r\n\t\t\t\t\t\t\t\tmatched = [],\r\n\t\t\t\t\t\t\t\ttargets = typeof selectors !== \"string\" && jQuery(selectors);\r\n\r\n\t\t\t\t\t\t\t// Positional selectors never match, since there's no _selection_ context\r\n\t\t\t\t\t\t\tif (!rneedsContext.test(selectors)) {\r\n\t\t\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\tfor (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Always skip document fragments\r\n\t\t\t\t\t\t\t\t\t\tif (cur.nodeType < 11 && (targets ?\r\n\t\t\t\t\t\t\t\t\t\t\ttargets.index(cur) > -1 :\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Don't pass non-elements to Sizzle\r\n\t\t\t\t\t\t\t\t\t\t\tcur.nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tmatched.push(cur);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Determine the position of an element within the set\r\n\t\t\t\t\t\tindex: function (elem) {\r\n\r\n\t\t\t\t\t\t\t// No argument, return index in parent\r\n\t\t\t\t\t\t\tif (!elem) {\r\n\t\t\t\t\t\t\t\treturn (this[0] && this[0].parentNode) ? this.first().prevAll().length : -1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Index in selector\r\n\t\t\t\t\t\t\tif (typeof elem === \"string\") {\r\n\t\t\t\t\t\t\t\treturn indexOf.call(jQuery(elem), this[0]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Locate the position of the desired element\r\n\t\t\t\t\t\t\treturn indexOf.call(this,\r\n\r\n\t\t\t\t\t\t\t\t// If it receives a jQuery object, the first element is used\r\n\t\t\t\t\t\t\t\telem.jquery ? elem[0] : elem\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tadd: function (selector, context) {\r\n\t\t\t\t\t\t\treturn this.pushStack(\r\n\t\t\t\t\t\t\t\tjQuery.uniqueSort(\r\n\t\t\t\t\t\t\t\t\tjQuery.merge(this.get(), jQuery(selector, context))\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\taddBack: function (selector) {\r\n\t\t\t\t\t\t\treturn this.add(selector == null ?\r\n\t\t\t\t\t\t\t\tthis.prevObject : this.prevObject.filter(selector)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tfunction sibling(cur, dir) {\r\n\t\t\t\t\t\twhile ((cur = cur[dir]) && cur.nodeType !== 1) { }\r\n\t\t\t\t\t\treturn cur;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\tparent: function (elem) {\r\n\t\t\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\t\t\treturn parent && parent.nodeType !== 11 ? parent : null;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tparents: function (elem) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"parentNode\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tparentsUntil: function (elem, _i, until) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"parentNode\", until);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnext: function (elem) {\r\n\t\t\t\t\t\t\treturn sibling(elem, \"nextSibling\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tprev: function (elem) {\r\n\t\t\t\t\t\t\treturn sibling(elem, \"previousSibling\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnextAll: function (elem) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"nextSibling\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tprevAll: function (elem) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"previousSibling\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnextUntil: function (elem, _i, until) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"nextSibling\", until);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tprevUntil: function (elem, _i, until) {\r\n\t\t\t\t\t\t\treturn dir(elem, \"previousSibling\", until);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsiblings: function (elem) {\r\n\t\t\t\t\t\t\treturn siblings((elem.parentNode || {}).firstChild, elem);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tchildren: function (elem) {\r\n\t\t\t\t\t\t\treturn siblings(elem.firstChild);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontents: function (elem) {\r\n\t\t\t\t\t\t\tif (elem.contentDocument != null &&\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE 11+\r\n\t\t\t\t\t\t\t\t// <object> elements with no `data` attribute has an object\r\n\t\t\t\t\t\t\t\t// `contentDocument` with a `null` prototype.\r\n\t\t\t\t\t\t\t\tgetProto(elem.contentDocument)) {\r\n\r\n\t\t\t\t\t\t\t\treturn elem.contentDocument;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\r\n\t\t\t\t\t\t\t// Treat the template element as a regular one in browsers that\r\n\t\t\t\t\t\t\t// don't support it.\r\n\t\t\t\t\t\t\tif (nodeName(elem, \"template\")) {\r\n\t\t\t\t\t\t\t\telem = elem.content || elem;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn jQuery.merge([], elem.childNodes);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, function (name, fn) {\r\n\t\t\t\t\t\tjQuery.fn[name] = function (until, selector) {\r\n\t\t\t\t\t\t\tvar matched = jQuery.map(this, fn, until);\r\n\r\n\t\t\t\t\t\t\tif (name.slice(-5) !== \"Until\") {\r\n\t\t\t\t\t\t\t\tselector = until;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (selector && typeof selector === \"string\") {\r\n\t\t\t\t\t\t\t\tmatched = jQuery.filter(selector, matched);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (this.length > 1) {\r\n\r\n\t\t\t\t\t\t\t\t// Remove duplicates\r\n\t\t\t\t\t\t\t\tif (!guaranteedUnique[name]) {\r\n\t\t\t\t\t\t\t\t\tjQuery.uniqueSort(matched);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Reverse order for parents* and prev-derivatives\r\n\t\t\t\t\t\t\t\tif (rparentsprev.test(name)) {\r\n\t\t\t\t\t\t\t\t\tmatched.reverse();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.pushStack(matched);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar rnothtmlwhite = (/[^\\x20\\t\\r\\n\\f]+/g);\r\n\r\n\r\n\r\n\t\t\t\t\t// Convert String-formatted options into Object-formatted ones\r\n\t\t\t\t\tfunction createOptions(options) {\r\n\t\t\t\t\t\tvar object = {};\r\n\t\t\t\t\t\tjQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\r\n\t\t\t\t\t\t\tobject[flag] = true;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn object;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * Create a callback list using the following parameters:\r\n\t\t\t\t\t *\r\n\t\t\t\t\t *\toptions: an optional list of space-separated options that will change how\r\n\t\t\t\t\t *\t\t\tthe callback list behaves or a more traditional option object\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * By default a callback list will act like an event callback list and can be\r\n\t\t\t\t\t * \"fired\" multiple times.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * Possible options:\r\n\t\t\t\t\t *\r\n\t\t\t\t\t *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n\t\t\t\t\t *\r\n\t\t\t\t\t *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n\t\t\t\t\t *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n\t\t\t\t\t *\t\t\t\t\tvalues (like a Deferred)\r\n\t\t\t\t\t *\r\n\t\t\t\t\t *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n\t\t\t\t\t *\r\n\t\t\t\t\t *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n\t\t\t\t\t *\r\n\t\t\t\t\t */\r\n\t\t\t\t\tjQuery.Callbacks = function (options) {\r\n\r\n\t\t\t\t\t\t// Convert options from String-formatted to Object-formatted if needed\r\n\t\t\t\t\t\t// (we check in cache first)\r\n\t\t\t\t\t\toptions = typeof options === \"string\" ?\r\n\t\t\t\t\t\t\tcreateOptions(options) :\r\n\t\t\t\t\t\t\tjQuery.extend({}, options);\r\n\r\n\t\t\t\t\t\tvar // Flag to know if list is currently firing\r\n\t\t\t\t\t\t\tfiring,\r\n\r\n\t\t\t\t\t\t\t// Last fire value for non-forgettable lists\r\n\t\t\t\t\t\t\tmemory,\r\n\r\n\t\t\t\t\t\t\t// Flag to know if list was already fired\r\n\t\t\t\t\t\t\tfired,\r\n\r\n\t\t\t\t\t\t\t// Flag to prevent firing\r\n\t\t\t\t\t\t\tlocked,\r\n\r\n\t\t\t\t\t\t\t// Actual callback list\r\n\t\t\t\t\t\t\tlist = [],\r\n\r\n\t\t\t\t\t\t\t// Queue of execution data for repeatable lists\r\n\t\t\t\t\t\t\tqueue = [],\r\n\r\n\t\t\t\t\t\t\t// Index of currently firing callback (modified by add/remove as needed)\r\n\t\t\t\t\t\t\tfiringIndex = -1,\r\n\r\n\t\t\t\t\t\t\t// Fire callbacks\r\n\t\t\t\t\t\t\tfire = function () {\r\n\r\n\t\t\t\t\t\t\t\t// Enforce single-firing\r\n\t\t\t\t\t\t\t\tlocked = locked || options.once;\r\n\r\n\t\t\t\t\t\t\t\t// Execute callbacks for all pending executions,\r\n\t\t\t\t\t\t\t\t// respecting firingIndex overrides and runtime changes\r\n\t\t\t\t\t\t\t\tfired = firing = true;\r\n\t\t\t\t\t\t\t\tfor (; queue.length; firingIndex = -1) {\r\n\t\t\t\t\t\t\t\t\tmemory = queue.shift();\r\n\t\t\t\t\t\t\t\t\twhile (++firingIndex < list.length) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Run callback and check for early termination\r\n\t\t\t\t\t\t\t\t\t\tif (list[firingIndex].apply(memory[0], memory[1]) === false &&\r\n\t\t\t\t\t\t\t\t\t\t\toptions.stopOnFalse) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\r\n\t\t\t\t\t\t\t\t\t\t\tfiringIndex = list.length;\r\n\t\t\t\t\t\t\t\t\t\t\tmemory = false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Forget the data if we're done with it\r\n\t\t\t\t\t\t\t\tif (!options.memory) {\r\n\t\t\t\t\t\t\t\t\tmemory = false;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfiring = false;\r\n\r\n\t\t\t\t\t\t\t\t// Clean up if we're done firing for good\r\n\t\t\t\t\t\t\t\tif (locked) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Keep an empty list if we have data for future add calls\r\n\t\t\t\t\t\t\t\t\tif (memory) {\r\n\t\t\t\t\t\t\t\t\t\tlist = [];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Otherwise, this object is spent\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tlist = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Actual Callbacks object\r\n\t\t\t\t\t\t\tself = {\r\n\r\n\t\t\t\t\t\t\t\t// Add a callback or a collection of callbacks to the list\r\n\t\t\t\t\t\t\t\tadd: function () {\r\n\t\t\t\t\t\t\t\t\tif (list) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If we have memory from a past run, we should fire after adding\r\n\t\t\t\t\t\t\t\t\t\tif (memory && !firing) {\r\n\t\t\t\t\t\t\t\t\t\t\tfiringIndex = list.length - 1;\r\n\t\t\t\t\t\t\t\t\t\t\tqueue.push(memory);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t(function add(args) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.each(args, function (_, arg) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (isFunction(arg)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!options.unique || !self.has(arg)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlist.push(arg);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (arg && arg.length && toType(arg) !== \"string\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Inspect recursively\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tadd(arg);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t})(arguments);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (memory && !firing) {\r\n\t\t\t\t\t\t\t\t\t\t\tfire();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Remove a callback from the list\r\n\t\t\t\t\t\t\t\tremove: function () {\r\n\t\t\t\t\t\t\t\t\tjQuery.each(arguments, function (_, arg) {\r\n\t\t\t\t\t\t\t\t\t\tvar index;\r\n\t\t\t\t\t\t\t\t\t\twhile ((index = jQuery.inArray(arg, list, index)) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\tlist.splice(index, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Handle firing indexes\r\n\t\t\t\t\t\t\t\t\t\t\tif (index <= firingIndex) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tfiringIndex--;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Check if a given callback is in the list.\r\n\t\t\t\t\t\t\t\t// If no argument is given, return whether or not list has callbacks attached.\r\n\t\t\t\t\t\t\t\thas: function (fn) {\r\n\t\t\t\t\t\t\t\t\treturn fn ?\r\n\t\t\t\t\t\t\t\t\t\tjQuery.inArray(fn, list) > -1 :\r\n\t\t\t\t\t\t\t\t\t\tlist.length > 0;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Remove all callbacks from the list\r\n\t\t\t\t\t\t\t\tempty: function () {\r\n\t\t\t\t\t\t\t\t\tif (list) {\r\n\t\t\t\t\t\t\t\t\t\tlist = [];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Disable .fire and .add\r\n\t\t\t\t\t\t\t\t// Abort any current/pending executions\r\n\t\t\t\t\t\t\t\t// Clear all callbacks and values\r\n\t\t\t\t\t\t\t\tdisable: function () {\r\n\t\t\t\t\t\t\t\t\tlocked = queue = [];\r\n\t\t\t\t\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tdisabled: function () {\r\n\t\t\t\t\t\t\t\t\treturn !list;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Disable .fire\r\n\t\t\t\t\t\t\t\t// Also disable .add unless we have memory (since it would have no effect)\r\n\t\t\t\t\t\t\t\t// Abort any pending executions\r\n\t\t\t\t\t\t\t\tlock: function () {\r\n\t\t\t\t\t\t\t\t\tlocked = queue = [];\r\n\t\t\t\t\t\t\t\t\tif (!memory && !firing) {\r\n\t\t\t\t\t\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tlocked: function () {\r\n\t\t\t\t\t\t\t\t\treturn !!locked;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Call all callbacks with the given context and arguments\r\n\t\t\t\t\t\t\t\tfireWith: function (context, args) {\r\n\t\t\t\t\t\t\t\t\tif (!locked) {\r\n\t\t\t\t\t\t\t\t\t\targs = args || [];\r\n\t\t\t\t\t\t\t\t\t\targs = [context, args.slice ? args.slice() : args];\r\n\t\t\t\t\t\t\t\t\t\tqueue.push(args);\r\n\t\t\t\t\t\t\t\t\t\tif (!firing) {\r\n\t\t\t\t\t\t\t\t\t\t\tfire();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Call all the callbacks with the given arguments\r\n\t\t\t\t\t\t\t\tfire: function () {\r\n\t\t\t\t\t\t\t\t\tself.fireWith(this, arguments);\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// To know if the callbacks have already been called at least once\r\n\t\t\t\t\t\t\t\tfired: function () {\r\n\t\t\t\t\t\t\t\t\treturn !!fired;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn self;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tfunction Identity(v) {\r\n\t\t\t\t\t\treturn v;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfunction Thrower(ex) {\r\n\t\t\t\t\t\tthrow ex;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction adoptValue(value, resolve, reject, noValue) {\r\n\t\t\t\t\t\tvar method;\r\n\r\n\t\t\t\t\t\ttry {\r\n\r\n\t\t\t\t\t\t\t// Check for promise aspect first to privilege synchronous behavior\r\n\t\t\t\t\t\t\tif (value && isFunction((method = value.promise))) {\r\n\t\t\t\t\t\t\t\tmethod.call(value).done(resolve).fail(reject);\r\n\r\n\t\t\t\t\t\t\t\t// Other thenables\r\n\t\t\t\t\t\t\t} else if (value && isFunction((method = value.then))) {\r\n\t\t\t\t\t\t\t\tmethod.call(value, resolve, reject);\r\n\r\n\t\t\t\t\t\t\t\t// Other non-thenables\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\r\n\t\t\t\t\t\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\r\n\t\t\t\t\t\t\t\t// * true: [ value ].slice( 1 ) => resolve()\r\n\t\t\t\t\t\t\t\tresolve.apply(undefined, [value].slice(noValue));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// For Promises/A+, convert exceptions into rejections\r\n\t\t\t\t\t\t\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\r\n\t\t\t\t\t\t\t// Deferred#then to conditionally suppress rejection.\r\n\t\t\t\t\t\t} catch (value) {\r\n\r\n\t\t\t\t\t\t\t// Support: Android 4.0 only\r\n\t\t\t\t\t\t\t// Strict mode functions invoked without .call/.apply get global-object context\r\n\t\t\t\t\t\t\treject.apply(undefined, [value]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t\t\tDeferred: function (func) {\r\n\t\t\t\t\t\t\tvar tuples = [\r\n\r\n\t\t\t\t\t\t\t\t// action, add listener, callbacks,\r\n\t\t\t\t\t\t\t\t// ... .then handlers, argument index, [final state]\r\n\t\t\t\t\t\t\t\t[\"notify\", \"progress\", jQuery.Callbacks(\"memory\"),\r\n\t\t\t\t\t\t\t\t\tjQuery.Callbacks(\"memory\"), 2],\r\n\t\t\t\t\t\t\t\t[\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"),\r\n\t\t\t\t\t\t\t\t\tjQuery.Callbacks(\"once memory\"), 0, \"resolved\"],\r\n\t\t\t\t\t\t\t\t[\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"),\r\n\t\t\t\t\t\t\t\t\tjQuery.Callbacks(\"once memory\"), 1, \"rejected\"]\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\tstate = \"pending\",\r\n\t\t\t\t\t\t\t\tpromise = {\r\n\t\t\t\t\t\t\t\t\tstate: function () {\r\n\t\t\t\t\t\t\t\t\t\treturn state;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\talways: function () {\r\n\t\t\t\t\t\t\t\t\t\tdeferred.done(arguments).fail(arguments);\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\"catch\": function (fn) {\r\n\t\t\t\t\t\t\t\t\t\treturn promise.then(null, fn);\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Keep pipe for back-compat\r\n\t\t\t\t\t\t\t\t\tpipe: function ( /* fnDone, fnFail, fnProgress */) {\r\n\t\t\t\t\t\t\t\t\t\tvar fns = arguments;\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn jQuery.Deferred(function (newDefer) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.each(tuples, function (_i, tuple) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\r\n\t\t\t\t\t\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\r\n\t\t\t\t\t\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\r\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred[tuple[1]](function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar returned = fn && fn.apply(this, arguments);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (returned && isFunction(returned.promise)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned.promise()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.progress(newDefer.notify)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.done(newDefer.resolve)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.fail(newDefer.reject);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewDefer[tuple[0] + \"With\"](\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfn ? [returned] : arguments\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\tfns = null;\r\n\t\t\t\t\t\t\t\t\t\t}).promise();\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tthen: function (onFulfilled, onRejected, onProgress) {\r\n\t\t\t\t\t\t\t\t\t\tvar maxDepth = 0;\r\n\t\t\t\t\t\t\t\t\t\tfunction resolve(depth, deferred, handler, special) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar that = this,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = arguments,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmightThrow = function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar returned, then;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (depth < maxDepth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned = handler.apply(that, args);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (returned === deferred.promise()) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new TypeError(\"Thenable self-resolution\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthen = returned &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(typeof returned === \"object\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned.then;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Handle a returned thenable\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isFunction(then)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (special) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Thrower, special)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Thrower, special),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(maxDepth, deferred, Identity,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Handle all other returned values\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (handler !== Identity) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\targs = [returned];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Process the value(s)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Default process is resolve\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(special || deferred.resolveWith)(that, args);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess = special ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmightThrow :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmightThrow();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (jQuery.Deferred.exceptionHook) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook(e,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (depth + 1 >= maxDepth) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (handler !== Thrower) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\targs = [e];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith(that, args);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\r\n\t\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\r\n\t\t\t\t\t\t\t\t\t\t\t\t// subsequent errors\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (depth) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess();\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (jQuery.Deferred.getStackHook) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(process);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn jQuery.Deferred(function (newDefer) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// progress_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\t\t\ttuples[0][3].add(\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFunction(onProgress) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonProgress :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentity,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewDefer.notifyWith\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// fulfilled_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\t\t\ttuples[1][3].add(\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFunction(onFulfilled) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonFulfilled :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentity\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// rejected_handlers.add( ... )\r\n\t\t\t\t\t\t\t\t\t\t\ttuples[2][3].add(\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFunction(onRejected) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonRejected :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tThrower\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}).promise();\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Get a promise for this deferred\r\n\t\t\t\t\t\t\t\t\t// If obj is provided, the promise aspect is added to the object\r\n\t\t\t\t\t\t\t\t\tpromise: function (obj) {\r\n\t\t\t\t\t\t\t\t\t\treturn obj != null ? jQuery.extend(obj, promise) : promise;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tdeferred = {};\r\n\r\n\t\t\t\t\t\t\t// Add list-specific methods\r\n\t\t\t\t\t\t\tjQuery.each(tuples, function (i, tuple) {\r\n\t\t\t\t\t\t\t\tvar list = tuple[2],\r\n\t\t\t\t\t\t\t\t\tstateString = tuple[5];\r\n\r\n\t\t\t\t\t\t\t\t// promise.progress = list.add\r\n\t\t\t\t\t\t\t\t// promise.done = list.add\r\n\t\t\t\t\t\t\t\t// promise.fail = list.add\r\n\t\t\t\t\t\t\t\tpromise[tuple[1]] = list.add;\r\n\r\n\t\t\t\t\t\t\t\t// Handle state\r\n\t\t\t\t\t\t\t\tif (stateString) {\r\n\t\t\t\t\t\t\t\t\tlist.add(\r\n\t\t\t\t\t\t\t\t\t\tfunction () {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\r\n\t\t\t\t\t\t\t\t\t\t\t// state = \"rejected\"\r\n\t\t\t\t\t\t\t\t\t\t\tstate = stateString;\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t\t// rejected_callbacks.disable\r\n\t\t\t\t\t\t\t\t\t\t// fulfilled_callbacks.disable\r\n\t\t\t\t\t\t\t\t\t\ttuples[3 - i][2].disable,\r\n\r\n\t\t\t\t\t\t\t\t\t\t// rejected_handlers.disable\r\n\t\t\t\t\t\t\t\t\t\t// fulfilled_handlers.disable\r\n\t\t\t\t\t\t\t\t\t\ttuples[3 - i][3].disable,\r\n\r\n\t\t\t\t\t\t\t\t\t\t// progress_callbacks.lock\r\n\t\t\t\t\t\t\t\t\t\ttuples[0][2].lock,\r\n\r\n\t\t\t\t\t\t\t\t\t\t// progress_handlers.lock\r\n\t\t\t\t\t\t\t\t\t\ttuples[0][3].lock\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// progress_handlers.fire\r\n\t\t\t\t\t\t\t\t// fulfilled_handlers.fire\r\n\t\t\t\t\t\t\t\t// rejected_handlers.fire\r\n\t\t\t\t\t\t\t\tlist.add(tuple[3].fire);\r\n\r\n\t\t\t\t\t\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\r\n\t\t\t\t\t\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\r\n\t\t\t\t\t\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\r\n\t\t\t\t\t\t\t\tdeferred[tuple[0]] = function () {\r\n\t\t\t\t\t\t\t\t\tdeferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t// deferred.notifyWith = list.fireWith\r\n\t\t\t\t\t\t\t\t// deferred.resolveWith = list.fireWith\r\n\t\t\t\t\t\t\t\t// deferred.rejectWith = list.fireWith\r\n\t\t\t\t\t\t\t\tdeferred[tuple[0] + \"With\"] = list.fireWith;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Make the deferred a promise\r\n\t\t\t\t\t\t\tpromise.promise(deferred);\r\n\r\n\t\t\t\t\t\t\t// Call given func if any\r\n\t\t\t\t\t\t\tif (func) {\r\n\t\t\t\t\t\t\t\tfunc.call(deferred, deferred);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// All done!\r\n\t\t\t\t\t\t\treturn deferred;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Deferred helper\r\n\t\t\t\t\t\twhen: function (singleValue) {\r\n\t\t\t\t\t\t\tvar\r\n\r\n\t\t\t\t\t\t\t\t// count of uncompleted subordinates\r\n\t\t\t\t\t\t\t\tremaining = arguments.length,\r\n\r\n\t\t\t\t\t\t\t\t// count of unprocessed arguments\r\n\t\t\t\t\t\t\t\ti = remaining,\r\n\r\n\t\t\t\t\t\t\t\t// subordinate fulfillment data\r\n\t\t\t\t\t\t\t\tresolveContexts = Array(i),\r\n\t\t\t\t\t\t\t\tresolveValues = slice.call(arguments),\r\n\r\n\t\t\t\t\t\t\t\t// the primary Deferred\r\n\t\t\t\t\t\t\t\tprimary = jQuery.Deferred(),\r\n\r\n\t\t\t\t\t\t\t\t// subordinate callback factory\r\n\t\t\t\t\t\t\t\tupdateFunc = function (i) {\r\n\t\t\t\t\t\t\t\t\treturn function (value) {\r\n\t\t\t\t\t\t\t\t\t\tresolveContexts[i] = this;\r\n\t\t\t\t\t\t\t\t\t\tresolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\r\n\t\t\t\t\t\t\t\t\t\tif (!(--remaining)) {\r\n\t\t\t\t\t\t\t\t\t\t\tprimary.resolveWith(resolveContexts, resolveValues);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Single- and empty arguments are adopted like Promise.resolve\r\n\t\t\t\t\t\t\tif (remaining <= 1) {\r\n\t\t\t\t\t\t\t\tadoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject,\r\n\t\t\t\t\t\t\t\t\t!remaining);\r\n\r\n\t\t\t\t\t\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\r\n\t\t\t\t\t\t\t\tif (primary.state() === \"pending\" ||\r\n\t\t\t\t\t\t\t\t\tisFunction(resolveValues[i] && resolveValues[i].then)) {\r\n\r\n\t\t\t\t\t\t\t\t\treturn primary.then();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Multiple arguments are aggregated like Promise.all array elements\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\tadoptValue(resolveValues[i], updateFunc(i), primary.reject);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn primary.promise();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t// These usually indicate a programmer mistake during development,\r\n\t\t\t\t\t// warn about them ASAP rather than swallowing them by default.\r\n\t\t\t\t\tvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\r\n\r\n\t\t\t\t\tjQuery.Deferred.exceptionHook = function (error, stack) {\r\n\r\n\t\t\t\t\t\t// Support: IE 8 - 9 only\r\n\t\t\t\t\t\t// Console exists when dev tools are open, which can happen at any time\r\n\t\t\t\t\t\tif (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\r\n\t\t\t\t\t\t\twindow.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.readyException = function (error) {\r\n\t\t\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// The deferred used on DOM ready\r\n\t\t\t\t\tvar readyList = jQuery.Deferred();\r\n\r\n\t\t\t\t\tjQuery.fn.ready = function (fn) {\r\n\r\n\t\t\t\t\t\treadyList\r\n\t\t\t\t\t\t\t.then(fn)\r\n\r\n\t\t\t\t\t\t\t// Wrap jQuery.readyException in a function so that the lookup\r\n\t\t\t\t\t\t\t// happens at the time of error handling instead of callback\r\n\t\t\t\t\t\t\t// registration.\r\n\t\t\t\t\t\t\t.catch(function (error) {\r\n\t\t\t\t\t\t\t\tjQuery.readyException(error);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t\t\t// Is the DOM ready to be used? Set to true once it occurs.\r\n\t\t\t\t\t\tisReady: false,\r\n\r\n\t\t\t\t\t\t// A counter to track how many items to wait for before\r\n\t\t\t\t\t\t// the ready event fires. See #6781\r\n\t\t\t\t\t\treadyWait: 1,\r\n\r\n\t\t\t\t\t\t// Handle when the DOM is ready\r\n\t\t\t\t\t\tready: function (wait) {\r\n\r\n\t\t\t\t\t\t\t// Abort if there are pending holds or we're already ready\r\n\t\t\t\t\t\t\tif (wait === true ? --jQuery.readyWait : jQuery.isReady) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Remember that the DOM is ready\r\n\t\t\t\t\t\t\tjQuery.isReady = true;\r\n\r\n\t\t\t\t\t\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\r\n\t\t\t\t\t\t\tif (wait !== true && --jQuery.readyWait > 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// If there are functions bound, to execute\r\n\t\t\t\t\t\t\treadyList.resolveWith(document, [jQuery]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.ready.then = readyList.then;\r\n\r\n\t\t\t\t\t// The ready event handler and self cleanup method\r\n\t\t\t\t\tfunction completed() {\r\n\t\t\t\t\t\tdocument.removeEventListener(\"DOMContentLoaded\", completed);\r\n\t\t\t\t\t\twindow.removeEventListener(\"load\", completed);\r\n\t\t\t\t\t\tjQuery.ready();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Catch cases where $(document).ready() is called\r\n\t\t\t\t\t// after the browser event has already occurred.\r\n\t\t\t\t\t// Support: IE <=9 - 10 only\r\n\t\t\t\t\t// Older IE sometimes signals \"interactive\" too soon\r\n\t\t\t\t\tif (document.readyState === \"complete\" ||\r\n\t\t\t\t\t\t(document.readyState !== \"loading\" && !document.documentElement.doScroll)) {\r\n\r\n\t\t\t\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\r\n\t\t\t\t\t\twindow.setTimeout(jQuery.ready);\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Use the handy event callback\r\n\t\t\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", completed);\r\n\r\n\t\t\t\t\t\t// A fallback to window.onload, that will always work\r\n\t\t\t\t\t\twindow.addEventListener(\"load\", completed);\r\n\t\t\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Multifunctional method to get and set values of a collection\r\n\t\t\t\t\t// The value/s can optionally be executed if it's a function\r\n\t\t\t\t\tvar access = function (elems, fn, key, value, chainable, emptyGet, raw) {\r\n\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\tlen = elems.length,\r\n\t\t\t\t\t\t\tbulk = key == null;\r\n\r\n\t\t\t\t\t\t// Sets many values\r\n\t\t\t\t\t\tif (toType(key) === \"object\") {\r\n\t\t\t\t\t\t\tchainable = true;\r\n\t\t\t\t\t\t\tfor (i in key) {\r\n\t\t\t\t\t\t\t\taccess(elems, fn, i, key[i], true, emptyGet, raw);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Sets one value\r\n\t\t\t\t\t\t} else if (value !== undefined) {\r\n\t\t\t\t\t\t\tchainable = true;\r\n\r\n\t\t\t\t\t\t\tif (!isFunction(value)) {\r\n\t\t\t\t\t\t\t\traw = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (bulk) {\r\n\r\n\t\t\t\t\t\t\t\t// Bulk operations run against the entire set\r\n\t\t\t\t\t\t\t\tif (raw) {\r\n\t\t\t\t\t\t\t\t\tfn.call(elems, value);\r\n\t\t\t\t\t\t\t\t\tfn = null;\r\n\r\n\t\t\t\t\t\t\t\t\t// ...except when executing function values\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tbulk = fn;\r\n\t\t\t\t\t\t\t\t\tfn = function (elem, _key, value) {\r\n\t\t\t\t\t\t\t\t\t\treturn bulk.call(jQuery(elem), value);\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (fn) {\r\n\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\tfn(\r\n\t\t\t\t\t\t\t\t\t\telems[i], key, raw ?\r\n\t\t\t\t\t\t\t\t\t\tvalue :\r\n\t\t\t\t\t\t\t\t\t\tvalue.call(elems[i], i, fn(elems[i], key))\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (chainable) {\r\n\t\t\t\t\t\t\treturn elems;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Gets\r\n\t\t\t\t\t\tif (bulk) {\r\n\t\t\t\t\t\t\treturn fn.call(elems);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn len ? fn(elems[0], key) : emptyGet;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t// Matches dashed string for camelizing\r\n\t\t\t\t\tvar rmsPrefix = /^-ms-/,\r\n\t\t\t\t\t\trdashAlpha = /-([a-z])/g;\r\n\r\n\t\t\t\t\t// Used by camelCase as callback to replace()\r\n\t\t\t\t\tfunction fcamelCase(_all, letter) {\r\n\t\t\t\t\t\treturn letter.toUpperCase();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Convert dashed to camelCase; used by the css and data modules\r\n\t\t\t\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t\t\t\t// Microsoft forgot to hump their vendor prefix (#9572)\r\n\t\t\t\t\tfunction camelCase(string) {\r\n\t\t\t\t\t\treturn string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar acceptData = function (owner) {\r\n\r\n\t\t\t\t\t\t// Accepts only:\r\n\t\t\t\t\t\t//  - Node\r\n\t\t\t\t\t\t//    - Node.ELEMENT_NODE\r\n\t\t\t\t\t\t//    - Node.DOCUMENT_NODE\r\n\t\t\t\t\t\t//  - Object\r\n\t\t\t\t\t\t//    - Any\r\n\t\t\t\t\t\treturn owner.nodeType === 1 || owner.nodeType === 9 || !(+owner.nodeType);\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tfunction Data() {\r\n\t\t\t\t\t\tthis.expando = jQuery.expando + Data.uid++;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tData.uid = 1;\r\n\r\n\t\t\t\t\tData.prototype = {\r\n\r\n\t\t\t\t\t\tcache: function (owner) {\r\n\r\n\t\t\t\t\t\t\t// Check if the owner object already has a cache\r\n\t\t\t\t\t\t\tvar value = owner[this.expando];\r\n\r\n\t\t\t\t\t\t\t// If not, create one\r\n\t\t\t\t\t\t\tif (!value) {\r\n\t\t\t\t\t\t\t\tvalue = {};\r\n\r\n\t\t\t\t\t\t\t\t// We can accept data for non-element nodes in modern browsers,\r\n\t\t\t\t\t\t\t\t// but we should not, see #8335.\r\n\t\t\t\t\t\t\t\t// Always return an empty object.\r\n\t\t\t\t\t\t\t\tif (acceptData(owner)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\r\n\t\t\t\t\t\t\t\t\t// use plain assignment\r\n\t\t\t\t\t\t\t\t\tif (owner.nodeType) {\r\n\t\t\t\t\t\t\t\t\t\towner[this.expando] = value;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Otherwise secure it in a non-enumerable property\r\n\t\t\t\t\t\t\t\t\t\t// configurable must be true to allow the property to be\r\n\t\t\t\t\t\t\t\t\t\t// deleted when data is removed\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tObject.defineProperty(owner, this.expando, {\r\n\t\t\t\t\t\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tset: function (owner, data, value) {\r\n\t\t\t\t\t\t\tvar prop,\r\n\t\t\t\t\t\t\t\tcache = this.cache(owner);\r\n\r\n\t\t\t\t\t\t\t// Handle: [ owner, key, value ] args\r\n\t\t\t\t\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\t\t\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\t\t\t\t\tcache[camelCase(data)] = value;\r\n\r\n\t\t\t\t\t\t\t\t// Handle: [ owner, { properties } ] args\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// Copy the properties one-by-one to the cache object\r\n\t\t\t\t\t\t\t\tfor (prop in data) {\r\n\t\t\t\t\t\t\t\t\tcache[camelCase(prop)] = data[prop];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn cache;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tget: function (owner, key) {\r\n\t\t\t\t\t\t\treturn key === undefined ?\r\n\t\t\t\t\t\t\t\tthis.cache(owner) :\r\n\r\n\t\t\t\t\t\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\t\t\t\t\t\towner[this.expando] && owner[this.expando][camelCase(key)];\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\taccess: function (owner, key, value) {\r\n\r\n\t\t\t\t\t\t\t// In cases where either:\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t//   1. No key was specified\r\n\t\t\t\t\t\t\t//   2. A string key was specified, but no value provided\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t// Take the \"read\" path and allow the get method to determine\r\n\t\t\t\t\t\t\t// which value to return, respectively either:\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t//   1. The entire cache object\r\n\t\t\t\t\t\t\t//   2. The data stored at the key\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\tif (key === undefined ||\r\n\t\t\t\t\t\t\t\t((key && typeof key === \"string\") && value === undefined)) {\r\n\r\n\t\t\t\t\t\t\t\treturn this.get(owner, key);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// When the key is not a string, or both a key and value\r\n\t\t\t\t\t\t\t// are specified, set or extend (existing objects) with either:\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t//   1. An object of properties\r\n\t\t\t\t\t\t\t//   2. A key and value\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\tthis.set(owner, key, value);\r\n\r\n\t\t\t\t\t\t\t// Since the \"set\" path can have two possible entry points\r\n\t\t\t\t\t\t\t// return the expected data based on which path was taken[*]\r\n\t\t\t\t\t\t\treturn value !== undefined ? value : key;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tremove: function (owner, key) {\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\tcache = owner[this.expando];\r\n\r\n\t\t\t\t\t\t\tif (cache === undefined) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (key !== undefined) {\r\n\r\n\t\t\t\t\t\t\t\t// Support array or space separated string of keys\r\n\t\t\t\t\t\t\t\tif (Array.isArray(key)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If key is an array of keys...\r\n\t\t\t\t\t\t\t\t\t// We always set camelCase keys, so remove that.\r\n\t\t\t\t\t\t\t\t\tkey = key.map(camelCase);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tkey = camelCase(key);\r\n\r\n\t\t\t\t\t\t\t\t\t// If a key with the spaces exists, use it.\r\n\t\t\t\t\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\r\n\t\t\t\t\t\t\t\t\tkey = key in cache ?\r\n\t\t\t\t\t\t\t\t\t\t[key] :\r\n\t\t\t\t\t\t\t\t\t\t(key.match(rnothtmlwhite) || []);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ti = key.length;\r\n\r\n\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\tdelete cache[key[i]];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Remove the expando if there's no more data\r\n\t\t\t\t\t\t\tif (key === undefined || jQuery.isEmptyObject(cache)) {\r\n\r\n\t\t\t\t\t\t\t\t// Support: Chrome <=35 - 45\r\n\t\t\t\t\t\t\t\t// Webkit & Blink performance suffers when deleting properties\r\n\t\t\t\t\t\t\t\t// from DOM nodes, so set to undefined instead\r\n\t\t\t\t\t\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\r\n\t\t\t\t\t\t\t\tif (owner.nodeType) {\r\n\t\t\t\t\t\t\t\t\towner[this.expando] = undefined;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tdelete owner[this.expando];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thasData: function (owner) {\r\n\t\t\t\t\t\t\tvar cache = owner[this.expando];\r\n\t\t\t\t\t\t\treturn cache !== undefined && !jQuery.isEmptyObject(cache);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar dataPriv = new Data();\r\n\r\n\t\t\t\t\tvar dataUser = new Data();\r\n\r\n\r\n\r\n\t\t\t\t\t//\tImplementation Summary\r\n\t\t\t\t\t//\r\n\t\t\t\t\t//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\r\n\t\t\t\t\t//\t2. Improve the module's maintainability by reducing the storage\r\n\t\t\t\t\t//\t\tpaths to a single mechanism.\r\n\t\t\t\t\t//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\r\n\t\t\t\t\t//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\r\n\t\t\t\t\t//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\r\n\t\t\t\t\t//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\r\n\r\n\t\t\t\t\tvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n\t\t\t\t\t\trmultiDash = /[A-Z]/g;\r\n\r\n\t\t\t\t\tfunction getData(data) {\r\n\t\t\t\t\t\tif (data === \"true\") {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data === \"false\") {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data === \"null\") {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Only convert to a number if it doesn't change the string\r\n\t\t\t\t\t\tif (data === +data + \"\") {\r\n\t\t\t\t\t\t\treturn +data;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (rbrace.test(data)) {\r\n\t\t\t\t\t\t\treturn JSON.parse(data);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction dataAttr(elem, key, data) {\r\n\t\t\t\t\t\tvar name;\r\n\r\n\t\t\t\t\t\t// If nothing was found internally, try to fetch any\r\n\t\t\t\t\t\t// data from the HTML5 data-* attribute\r\n\t\t\t\t\t\tif (data === undefined && elem.nodeType === 1) {\r\n\t\t\t\t\t\t\tname = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\r\n\t\t\t\t\t\t\tdata = elem.getAttribute(name);\r\n\r\n\t\t\t\t\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tdata = getData(data);\r\n\t\t\t\t\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\t\t\t\t\t// Make sure we set the data so it isn't changed later\r\n\t\t\t\t\t\t\t\tdataUser.set(elem, key, data);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\thasData: function (elem) {\r\n\t\t\t\t\t\t\treturn dataUser.hasData(elem) || dataPriv.hasData(elem);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tdata: function (elem, name, data) {\r\n\t\t\t\t\t\t\treturn dataUser.access(elem, name, data);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveData: function (elem, name) {\r\n\t\t\t\t\t\t\tdataUser.remove(elem, name);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// TODO: Now that all calls to _data and _removeData have been replaced\r\n\t\t\t\t\t\t// with direct calls to dataPriv methods, these can be deprecated.\r\n\t\t\t\t\t\t_data: function (elem, name, data) {\r\n\t\t\t\t\t\t\treturn dataPriv.access(elem, name, data);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t_removeData: function (elem, name) {\r\n\t\t\t\t\t\t\tdataPriv.remove(elem, name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tdata: function (key, value) {\r\n\t\t\t\t\t\t\tvar i, name, data,\r\n\t\t\t\t\t\t\t\telem = this[0],\r\n\t\t\t\t\t\t\t\tattrs = elem && elem.attributes;\r\n\r\n\t\t\t\t\t\t\t// Gets all values\r\n\t\t\t\t\t\t\tif (key === undefined) {\r\n\t\t\t\t\t\t\t\tif (this.length) {\r\n\t\t\t\t\t\t\t\t\tdata = dataUser.get(elem);\r\n\r\n\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\r\n\t\t\t\t\t\t\t\t\t\ti = attrs.length;\r\n\t\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t\t\t\t\t\t// The attrs elements can be null (#14894)\r\n\t\t\t\t\t\t\t\t\t\t\tif (attrs[i]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tname = attrs[i].name;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (name.indexOf(\"data-\") === 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname = camelCase(name.slice(5));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataAttr(elem, name, data[name]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.set(elem, \"hasDataAttrs\", true);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Sets multiple values\r\n\t\t\t\t\t\t\tif (typeof key === \"object\") {\r\n\t\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\t\tdataUser.set(this, key);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\t\t\tvar data;\r\n\r\n\t\t\t\t\t\t\t\t// The calling jQuery object (element matches) is not empty\r\n\t\t\t\t\t\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\r\n\t\t\t\t\t\t\t\t// `value` parameter was not undefined. An empty jQuery object\r\n\t\t\t\t\t\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\r\n\t\t\t\t\t\t\t\t// throw an exception if an attempt to read a data cache is made.\r\n\t\t\t\t\t\t\t\tif (elem && value === undefined) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t\t\t\t\t\t// The key will always be camelCased in Data\r\n\t\t\t\t\t\t\t\t\tdata = dataUser.get(elem, key);\r\n\t\t\t\t\t\t\t\t\tif (data !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Attempt to \"discover\" the data in\r\n\t\t\t\t\t\t\t\t\t// HTML5 custom data-* attrs\r\n\t\t\t\t\t\t\t\t\tdata = dataAttr(elem, key);\r\n\t\t\t\t\t\t\t\t\tif (data !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\treturn data;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// We tried really hard, but the data doesn't exist.\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Set the data...\r\n\t\t\t\t\t\t\t\tthis.each(function () {\r\n\r\n\t\t\t\t\t\t\t\t\t// We always store the camelCased key\r\n\t\t\t\t\t\t\t\t\tdataUser.set(this, key, value);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, null, value, arguments.length > 1, null, true);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveData: function (key) {\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tdataUser.remove(this, key);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\tqueue: function (elem, type, data) {\r\n\t\t\t\t\t\t\tvar queue;\r\n\r\n\t\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\t\ttype = (type || \"fx\") + \"queue\";\r\n\t\t\t\t\t\t\t\tqueue = dataPriv.get(elem, type);\r\n\r\n\t\t\t\t\t\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\r\n\t\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\t\tif (!queue || Array.isArray(data)) {\r\n\t\t\t\t\t\t\t\t\t\tqueue = dataPriv.access(elem, type, jQuery.makeArray(data));\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tqueue.push(data);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn queue || [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tdequeue: function (elem, type) {\r\n\t\t\t\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\t\t\t\tvar queue = jQuery.queue(elem, type),\r\n\t\t\t\t\t\t\t\tstartLength = queue.length,\r\n\t\t\t\t\t\t\t\tfn = queue.shift(),\r\n\t\t\t\t\t\t\t\thooks = jQuery._queueHooks(elem, type),\r\n\t\t\t\t\t\t\t\tnext = function () {\r\n\t\t\t\t\t\t\t\t\tjQuery.dequeue(elem, type);\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// If the fx queue is dequeued, always remove the progress sentinel\r\n\t\t\t\t\t\t\tif (fn === \"inprogress\") {\r\n\t\t\t\t\t\t\t\tfn = queue.shift();\r\n\t\t\t\t\t\t\t\tstartLength--;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (fn) {\r\n\r\n\t\t\t\t\t\t\t\t// Add a progress sentinel to prevent the fx queue from being\r\n\t\t\t\t\t\t\t\t// automatically dequeued\r\n\t\t\t\t\t\t\t\tif (type === \"fx\") {\r\n\t\t\t\t\t\t\t\t\tqueue.unshift(\"inprogress\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Clear up the last queue stop function\r\n\t\t\t\t\t\t\t\tdelete hooks.stop;\r\n\t\t\t\t\t\t\t\tfn.call(elem, next, hooks);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!startLength && hooks) {\r\n\t\t\t\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Not public - generate a queueHooks object, or return the current one\r\n\t\t\t\t\t\t_queueHooks: function (elem, type) {\r\n\t\t\t\t\t\t\tvar key = type + \"queueHooks\";\r\n\t\t\t\t\t\t\treturn dataPriv.get(elem, key) || dataPriv.access(elem, key, {\r\n\t\t\t\t\t\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function () {\r\n\t\t\t\t\t\t\t\t\tdataPriv.remove(elem, [type + \"queue\", key]);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tqueue: function (type, data) {\r\n\t\t\t\t\t\t\tvar setter = 2;\r\n\r\n\t\t\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\t\t\tdata = type;\r\n\t\t\t\t\t\t\t\ttype = \"fx\";\r\n\t\t\t\t\t\t\t\tsetter--;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (arguments.length < setter) {\r\n\t\t\t\t\t\t\t\treturn jQuery.queue(this[0], type);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn data === undefined ?\r\n\t\t\t\t\t\t\t\tthis :\r\n\t\t\t\t\t\t\t\tthis.each(function () {\r\n\t\t\t\t\t\t\t\t\tvar queue = jQuery.queue(this, type, data);\r\n\r\n\t\t\t\t\t\t\t\t\t// Ensure a hooks for this queue\r\n\t\t\t\t\t\t\t\t\tjQuery._queueHooks(this, type);\r\n\r\n\t\t\t\t\t\t\t\t\tif (type === \"fx\" && queue[0] !== \"inprogress\") {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdequeue: function (type) {\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tclearQueue: function (type) {\r\n\t\t\t\t\t\t\treturn this.queue(type || \"fx\", []);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Get a promise resolved when queues of a certain type\r\n\t\t\t\t\t\t// are emptied (fx is the type by default)\r\n\t\t\t\t\t\tpromise: function (type, obj) {\r\n\t\t\t\t\t\t\tvar tmp,\r\n\t\t\t\t\t\t\t\tcount = 1,\r\n\t\t\t\t\t\t\t\tdefer = jQuery.Deferred(),\r\n\t\t\t\t\t\t\t\telements = this,\r\n\t\t\t\t\t\t\t\ti = this.length,\r\n\t\t\t\t\t\t\t\tresolve = function () {\r\n\t\t\t\t\t\t\t\t\tif (!(--count)) {\r\n\t\t\t\t\t\t\t\t\t\tdefer.resolveWith(elements, [elements]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\t\t\tobj = type;\r\n\t\t\t\t\t\t\t\ttype = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\ttmp = dataPriv.get(elements[i], type + \"queueHooks\");\r\n\t\t\t\t\t\t\t\tif (tmp && tmp.empty) {\r\n\t\t\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\t\t\ttmp.empty.add(resolve);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\treturn defer.promise(obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\r\n\r\n\t\t\t\t\tvar rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\r\n\r\n\r\n\t\t\t\t\tvar cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\r\n\r\n\t\t\t\t\tvar documentElement = document.documentElement;\r\n\r\n\r\n\r\n\t\t\t\t\tvar isAttached = function (elem) {\r\n\t\t\t\t\t\treturn jQuery.contains(elem.ownerDocument, elem);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\tcomposed = { composed: true };\r\n\r\n\t\t\t\t\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\r\n\t\t\t\t\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\r\n\t\t\t\t\t// Support: iOS 10.0-10.2 only\r\n\t\t\t\t\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\r\n\t\t\t\t\t// leading to errors. We need to check for `getRootNode`.\r\n\t\t\t\t\tif (documentElement.getRootNode) {\r\n\t\t\t\t\t\tisAttached = function (elem) {\r\n\t\t\t\t\t\t\treturn jQuery.contains(elem.ownerDocument, elem) ||\r\n\t\t\t\t\t\t\t\telem.getRootNode(composed) === elem.ownerDocument;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar isHiddenWithinTree = function (elem, el) {\r\n\r\n\t\t\t\t\t\t// isHiddenWithinTree might be called from jQuery#filter function;\r\n\t\t\t\t\t\t// in that case, element will be second argument\r\n\t\t\t\t\t\telem = el || elem;\r\n\r\n\t\t\t\t\t\t// Inline style trumps all\r\n\t\t\t\t\t\treturn elem.style.display === \"none\" ||\r\n\t\t\t\t\t\t\telem.style.display === \"\" &&\r\n\r\n\t\t\t\t\t\t\t// Otherwise, check computed style\r\n\t\t\t\t\t\t\t// Support: Firefox <=43 - 45\r\n\t\t\t\t\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\r\n\t\t\t\t\t\t\t// in the document.\r\n\t\t\t\t\t\t\tisAttached(elem) &&\r\n\r\n\t\t\t\t\t\t\tjQuery.css(elem, \"display\") === \"none\";\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\t\t\t\t\tfunction adjustCSS(elem, prop, valueParts, tween) {\r\n\t\t\t\t\t\tvar adjusted, scale,\r\n\t\t\t\t\t\t\tmaxIterations = 20,\r\n\t\t\t\t\t\t\tcurrentValue = tween ?\r\n\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\treturn tween.cur();\r\n\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\treturn jQuery.css(elem, prop, \"\");\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tinitial = currentValue(),\r\n\t\t\t\t\t\t\tunit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\r\n\r\n\t\t\t\t\t\t\t// Starting value computation is required for potential unit mismatches\r\n\t\t\t\t\t\t\tinitialInUnit = elem.nodeType &&\r\n\t\t\t\t\t\t\t\t(jQuery.cssNumber[prop] || unit !== \"px\" && +initial) &&\r\n\t\t\t\t\t\t\t\trcssNum.exec(jQuery.css(elem, prop));\r\n\r\n\t\t\t\t\t\tif (initialInUnit && initialInUnit[3] !== unit) {\r\n\r\n\t\t\t\t\t\t\t// Support: Firefox <=54\r\n\t\t\t\t\t\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\r\n\t\t\t\t\t\t\tinitial = initial / 2;\r\n\r\n\t\t\t\t\t\t\t// Trust units reported by jQuery.css\r\n\t\t\t\t\t\t\tunit = unit || initialInUnit[3];\r\n\r\n\t\t\t\t\t\t\t// Iteratively approximate from a nonzero starting point\r\n\t\t\t\t\t\t\tinitialInUnit = +initial || 1;\r\n\r\n\t\t\t\t\t\t\twhile (maxIterations--) {\r\n\r\n\t\t\t\t\t\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\r\n\t\t\t\t\t\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\r\n\t\t\t\t\t\t\t\tjQuery.style(elem, prop, initialInUnit + unit);\r\n\t\t\t\t\t\t\t\tif ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\r\n\t\t\t\t\t\t\t\t\tmaxIterations = 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tinitialInUnit = initialInUnit / scale;\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tinitialInUnit = initialInUnit * 2;\r\n\t\t\t\t\t\t\tjQuery.style(elem, prop, initialInUnit + unit);\r\n\r\n\t\t\t\t\t\t\t// Make sure we update the tween properties later on\r\n\t\t\t\t\t\t\tvalueParts = valueParts || [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (valueParts) {\r\n\t\t\t\t\t\t\tinitialInUnit = +initialInUnit || +initial || 0;\r\n\r\n\t\t\t\t\t\t\t// Apply relative offset (+=/-=) if specified\r\n\t\t\t\t\t\t\tadjusted = valueParts[1] ?\r\n\t\t\t\t\t\t\t\tinitialInUnit + (valueParts[1] + 1) * valueParts[2] :\r\n\t\t\t\t\t\t\t\t+valueParts[2];\r\n\t\t\t\t\t\t\tif (tween) {\r\n\t\t\t\t\t\t\t\ttween.unit = unit;\r\n\t\t\t\t\t\t\t\ttween.start = initialInUnit;\r\n\t\t\t\t\t\t\t\ttween.end = adjusted;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn adjusted;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar defaultDisplayMap = {};\r\n\r\n\t\t\t\t\tfunction getDefaultDisplay(elem) {\r\n\t\t\t\t\t\tvar temp,\r\n\t\t\t\t\t\t\tdoc = elem.ownerDocument,\r\n\t\t\t\t\t\t\tnodeName = elem.nodeName,\r\n\t\t\t\t\t\t\tdisplay = defaultDisplayMap[nodeName];\r\n\r\n\t\t\t\t\t\tif (display) {\r\n\t\t\t\t\t\t\treturn display;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttemp = doc.body.appendChild(doc.createElement(nodeName));\r\n\t\t\t\t\t\tdisplay = jQuery.css(temp, \"display\");\r\n\r\n\t\t\t\t\t\ttemp.parentNode.removeChild(temp);\r\n\r\n\t\t\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\t\t\tdisplay = \"block\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdefaultDisplayMap[nodeName] = display;\r\n\r\n\t\t\t\t\t\treturn display;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction showHide(elements, show) {\r\n\t\t\t\t\t\tvar display, elem,\r\n\t\t\t\t\t\t\tvalues = [],\r\n\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\tlength = elements.length;\r\n\r\n\t\t\t\t\t\t// Determine new display value for elements that need to change\r\n\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\telem = elements[index];\r\n\t\t\t\t\t\t\tif (!elem.style) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdisplay = elem.style.display;\r\n\t\t\t\t\t\t\tif (show) {\r\n\r\n\t\t\t\t\t\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\r\n\t\t\t\t\t\t\t\t// check is required in this first loop unless we have a nonempty display value (either\r\n\t\t\t\t\t\t\t\t// inline or about-to-be-restored)\r\n\t\t\t\t\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\t\t\t\t\tvalues[index] = dataPriv.get(elem, \"display\") || null;\r\n\t\t\t\t\t\t\t\t\tif (!values[index]) {\r\n\t\t\t\t\t\t\t\t\t\telem.style.display = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\r\n\t\t\t\t\t\t\t\t\tvalues[index] = getDefaultDisplay(elem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (display !== \"none\") {\r\n\t\t\t\t\t\t\t\t\tvalues[index] = \"none\";\r\n\r\n\t\t\t\t\t\t\t\t\t// Remember what we're overwriting\r\n\t\t\t\t\t\t\t\t\tdataPriv.set(elem, \"display\", display);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Set the display of the elements in a second loop to avoid constant reflow\r\n\t\t\t\t\t\tfor (index = 0; index < length; index++) {\r\n\t\t\t\t\t\t\tif (values[index] != null) {\r\n\t\t\t\t\t\t\t\telements[index].style.display = values[index];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn elements;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tshow: function () {\r\n\t\t\t\t\t\t\treturn showHide(this, true);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thide: function () {\r\n\t\t\t\t\t\t\treturn showHide(this);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttoggle: function (state) {\r\n\t\t\t\t\t\t\tif (typeof state === \"boolean\") {\r\n\t\t\t\t\t\t\t\treturn state ? this.show() : this.hide();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tif (isHiddenWithinTree(this)) {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).show();\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).hide();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar rcheckableType = (/^(?:checkbox|radio)$/i);\r\n\r\n\t\t\t\t\tvar rtagName = (/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i);\r\n\r\n\t\t\t\t\tvar rscriptType = (/^$|^module$|\\/(?:java|ecma)script/i);\r\n\r\n\r\n\r\n\t\t\t\t\t(function () {\r\n\t\t\t\t\t\tvar fragment = document.createDocumentFragment(),\r\n\t\t\t\t\t\t\tdiv = fragment.appendChild(document.createElement(\"div\")),\r\n\t\t\t\t\t\t\tinput = document.createElement(\"input\");\r\n\r\n\t\t\t\t\t\t// Support: Android 4.0 - 4.3 only\r\n\t\t\t\t\t\t// Check state lost if the name is set (#11217)\r\n\t\t\t\t\t\t// Support: Windows Web Apps (WWA)\r\n\t\t\t\t\t\t// `name` and `type` must use .setAttribute for WWA (#14901)\r\n\t\t\t\t\t\tinput.setAttribute(\"type\", \"radio\");\r\n\t\t\t\t\t\tinput.setAttribute(\"checked\", \"checked\");\r\n\t\t\t\t\t\tinput.setAttribute(\"name\", \"t\");\r\n\r\n\t\t\t\t\t\tdiv.appendChild(input);\r\n\r\n\t\t\t\t\t\t// Support: Android <=4.1 only\r\n\t\t\t\t\t\t// Older WebKit doesn't clone checked state correctly in fragments\r\n\t\t\t\t\t\tsupport.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\r\n\r\n\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t// Make sure textarea (and checkbox) defaultValue is properly cloned\r\n\t\t\t\t\t\tdiv.innerHTML = \"<textarea>x</textarea>\";\r\n\t\t\t\t\t\tsupport.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t// IE <=9 replaces <option> tags with their contents when inserted outside of\r\n\t\t\t\t\t\t// the select element.\r\n\t\t\t\t\t\tdiv.innerHTML = \"<option></option>\";\r\n\t\t\t\t\t\tsupport.option = !!div.lastChild;\r\n\t\t\t\t\t})();\r\n\r\n\r\n\t\t\t\t\t// We have to close these tags to support XHTML (#13200)\r\n\t\t\t\t\tvar wrapMap = {\r\n\r\n\t\t\t\t\t\t// XHTML parsers do not magically insert elements in the\r\n\t\t\t\t\t\t// same way that tag soup parsers do. So we cannot shorten\r\n\t\t\t\t\t\t// this by omitting <tbody> or other required elements.\r\n\t\t\t\t\t\tthead: [1, \"<table>\", \"</table>\"],\r\n\t\t\t\t\t\tcol: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\r\n\t\t\t\t\t\ttr: [2, \"<table><tbody>\", \"</tbody></table>\"],\r\n\t\t\t\t\t\ttd: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\r\n\r\n\t\t\t\t\t\t_default: [0, \"\", \"\"]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\twrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\r\n\t\t\t\t\twrapMap.th = wrapMap.td;\r\n\r\n\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\tif (!support.option) {\r\n\t\t\t\t\t\twrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction getAll(context, tag) {\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\r\n\t\t\t\t\t\tvar ret;\r\n\r\n\t\t\t\t\t\tif (typeof context.getElementsByTagName !== \"undefined\") {\r\n\t\t\t\t\t\t\tret = context.getElementsByTagName(tag || \"*\");\r\n\r\n\t\t\t\t\t\t} else if (typeof context.querySelectorAll !== \"undefined\") {\r\n\t\t\t\t\t\t\tret = context.querySelectorAll(tag || \"*\");\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tret = [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (tag === undefined || tag && nodeName(context, tag)) {\r\n\t\t\t\t\t\t\treturn jQuery.merge([context], ret);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t// Mark scripts as having already been evaluated\r\n\t\t\t\t\tfunction setGlobalEval(elems, refElements) {\r\n\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\tl = elems.length;\r\n\r\n\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\tdataPriv.set(\r\n\t\t\t\t\t\t\t\telems[i],\r\n\t\t\t\t\t\t\t\t\"globalEval\",\r\n\t\t\t\t\t\t\t\t!refElements || dataPriv.get(refElements[i], \"globalEval\")\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar rhtml = /<|&#?\\w+;/;\r\n\r\n\t\t\t\t\tfunction buildFragment(elems, context, scripts, selection, ignored) {\r\n\t\t\t\t\t\tvar elem, tmp, tag, wrap, attached, j,\r\n\t\t\t\t\t\t\tfragment = context.createDocumentFragment(),\r\n\t\t\t\t\t\t\tnodes = [],\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tl = elems.length;\r\n\r\n\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\telem = elems[i];\r\n\r\n\t\t\t\t\t\t\tif (elem || elem === 0) {\r\n\r\n\t\t\t\t\t\t\t\t// Add nodes directly\r\n\t\t\t\t\t\t\t\tif (toType(elem) === \"object\") {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\t\t\tjQuery.merge(nodes, elem.nodeType ? [elem] : elem);\r\n\r\n\t\t\t\t\t\t\t\t\t// Convert non-html into a text node\r\n\t\t\t\t\t\t\t\t} else if (!rhtml.test(elem)) {\r\n\t\t\t\t\t\t\t\t\tnodes.push(context.createTextNode(elem));\r\n\r\n\t\t\t\t\t\t\t\t\t// Convert html into DOM nodes\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttmp = tmp || fragment.appendChild(context.createElement(\"div\"));\r\n\r\n\t\t\t\t\t\t\t\t\t// Deserialize a standard representation\r\n\t\t\t\t\t\t\t\t\ttag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\r\n\t\t\t\t\t\t\t\t\twrap = wrapMap[tag] || wrapMap._default;\r\n\t\t\t\t\t\t\t\t\ttmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\r\n\r\n\t\t\t\t\t\t\t\t\t// Descend through wrappers to the right content\r\n\t\t\t\t\t\t\t\t\tj = wrap[0];\r\n\t\t\t\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\t\t\t\ttmp = tmp.lastChild;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\t\t\tjQuery.merge(nodes, tmp.childNodes);\r\n\r\n\t\t\t\t\t\t\t\t\t// Remember the top-level container\r\n\t\t\t\t\t\t\t\t\ttmp = fragment.firstChild;\r\n\r\n\t\t\t\t\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\r\n\t\t\t\t\t\t\t\t\ttmp.textContent = \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Remove wrapper from fragment\r\n\t\t\t\t\t\tfragment.textContent = \"\";\r\n\r\n\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\twhile ((elem = nodes[i++])) {\r\n\r\n\t\t\t\t\t\t\t// Skip elements already in the context collection (trac-4087)\r\n\t\t\t\t\t\t\tif (selection && jQuery.inArray(elem, selection) > -1) {\r\n\t\t\t\t\t\t\t\tif (ignored) {\r\n\t\t\t\t\t\t\t\t\tignored.push(elem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tattached = isAttached(elem);\r\n\r\n\t\t\t\t\t\t\t// Append to fragment\r\n\t\t\t\t\t\t\ttmp = getAll(fragment.appendChild(elem), \"script\");\r\n\r\n\t\t\t\t\t\t\t// Preserve script evaluation history\r\n\t\t\t\t\t\t\tif (attached) {\r\n\t\t\t\t\t\t\t\tsetGlobalEval(tmp);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Capture executables\r\n\t\t\t\t\t\t\tif (scripts) {\r\n\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\twhile ((elem = tmp[j++])) {\r\n\t\t\t\t\t\t\t\t\tif (rscriptType.test(elem.type || \"\")) {\r\n\t\t\t\t\t\t\t\t\t\tscripts.push(elem);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn fragment;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\r\n\r\n\t\t\t\t\tfunction returnTrue() {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction returnFalse() {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t// focus() and blur() are asynchronous, except when they are no-op.\r\n\t\t\t\t\t// So expect focus to be synchronous when the element is already active,\r\n\t\t\t\t\t// and blur to be synchronous when the element is not already active.\r\n\t\t\t\t\t// (focus and blur are always synchronous in other supported browsers,\r\n\t\t\t\t\t// this just defines when we can count on it).\r\n\t\t\t\t\tfunction expectSync(elem, type) {\r\n\t\t\t\t\t\treturn (elem === safeActiveElement()) === (type === \"focus\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t// Accessing document.activeElement can throw unexpectedly\r\n\t\t\t\t\t// https://bugs.jquery.com/ticket/13393\r\n\t\t\t\t\tfunction safeActiveElement() {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\treturn document.activeElement;\r\n\t\t\t\t\t\t} catch (err) { }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction on(elem, types, selector, data, fn, one) {\r\n\t\t\t\t\t\tvar origFn, type;\r\n\r\n\t\t\t\t\t\t// Types can be a map of types/handlers\r\n\t\t\t\t\t\tif (typeof types === \"object\") {\r\n\r\n\t\t\t\t\t\t\t// ( types-Object, selector, data )\r\n\t\t\t\t\t\t\tif (typeof selector !== \"string\") {\r\n\r\n\t\t\t\t\t\t\t\t// ( types-Object, data )\r\n\t\t\t\t\t\t\t\tdata = data || selector;\r\n\t\t\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor (type in types) {\r\n\t\t\t\t\t\t\t\ton(elem, type, selector, data, types[type], one);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (data == null && fn == null) {\r\n\r\n\t\t\t\t\t\t\t// ( types, fn )\r\n\t\t\t\t\t\t\tfn = selector;\r\n\t\t\t\t\t\t\tdata = selector = undefined;\r\n\t\t\t\t\t\t} else if (fn == null) {\r\n\t\t\t\t\t\t\tif (typeof selector === \"string\") {\r\n\r\n\t\t\t\t\t\t\t\t// ( types, selector, fn )\r\n\t\t\t\t\t\t\t\tfn = data;\r\n\t\t\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// ( types, data, fn )\r\n\t\t\t\t\t\t\t\tfn = data;\r\n\t\t\t\t\t\t\t\tdata = selector;\r\n\t\t\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (fn === false) {\r\n\t\t\t\t\t\t\tfn = returnFalse;\r\n\t\t\t\t\t\t} else if (!fn) {\r\n\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (one === 1) {\r\n\t\t\t\t\t\t\torigFn = fn;\r\n\t\t\t\t\t\t\tfn = function (event) {\r\n\r\n\t\t\t\t\t\t\t\t// Can use an empty set, since event contains the info\r\n\t\t\t\t\t\t\t\tjQuery().off(event);\r\n\t\t\t\t\t\t\t\treturn origFn.apply(this, arguments);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Use same guid so caller can remove using origFn\r\n\t\t\t\t\t\t\tfn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn elem.each(function () {\r\n\t\t\t\t\t\t\tjQuery.event.add(this, types, fn, data, selector);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * Helper functions for managing events -- not part of the public interface.\r\n\t\t\t\t\t * Props to Dean Edwards' addEvent library for many of the ideas.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tjQuery.event = {\r\n\r\n\t\t\t\t\t\tglobal: {},\r\n\r\n\t\t\t\t\t\tadd: function (elem, types, handler, data, selector) {\r\n\r\n\t\t\t\t\t\t\tvar handleObjIn, eventHandle, tmp,\r\n\t\t\t\t\t\t\t\tevents, t, handleObj,\r\n\t\t\t\t\t\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\t\t\t\t\t\telemData = dataPriv.get(elem);\r\n\r\n\t\t\t\t\t\t\t// Only attach events to objects that accept data\r\n\t\t\t\t\t\t\tif (!acceptData(elem)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Caller can pass in an object of custom data in lieu of the handler\r\n\t\t\t\t\t\t\tif (handler.handler) {\r\n\t\t\t\t\t\t\t\thandleObjIn = handler;\r\n\t\t\t\t\t\t\t\thandler = handleObjIn.handler;\r\n\t\t\t\t\t\t\t\tselector = handleObjIn.selector;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Ensure that invalid selectors throw exceptions at attach time\r\n\t\t\t\t\t\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\r\n\t\t\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\t\t\tjQuery.find.matchesSelector(documentElement, selector);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Make sure that the handler has a unique ID, used to find/remove it later\r\n\t\t\t\t\t\t\tif (!handler.guid) {\r\n\t\t\t\t\t\t\t\thandler.guid = jQuery.guid++;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Init the element's event structure and main handler, if this is the first\r\n\t\t\t\t\t\t\tif (!(events = elemData.events)) {\r\n\t\t\t\t\t\t\t\tevents = elemData.events = Object.create(null);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!(eventHandle = elemData.handle)) {\r\n\t\t\t\t\t\t\t\teventHandle = elemData.handle = function (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\r\n\t\t\t\t\t\t\t\t\t// when an event is called after a page has unloaded\r\n\t\t\t\t\t\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.dispatch.apply(elem, arguments) : undefined;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Handle multiple events separated by a space\r\n\t\t\t\t\t\t\ttypes = (types || \"\").match(rnothtmlwhite) || [\"\"];\r\n\t\t\t\t\t\t\tt = types.length;\r\n\t\t\t\t\t\t\twhile (t--) {\r\n\t\t\t\t\t\t\t\ttmp = rtypenamespace.exec(types[t]) || [];\r\n\t\t\t\t\t\t\t\ttype = origType = tmp[1];\r\n\t\t\t\t\t\t\t\tnamespaces = (tmp[2] || \"\").split(\".\").sort();\r\n\r\n\t\t\t\t\t\t\t\t// There *must* be a type, no attaching namespace-only handlers\r\n\t\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If event changes its type, use the special event handlers for the changed type\r\n\t\t\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\r\n\t\t\t\t\t\t\t\t// If selector defined, determine special event api type, otherwise given type\r\n\t\t\t\t\t\t\t\ttype = (selector ? special.delegateType : special.bindType) || type;\r\n\r\n\t\t\t\t\t\t\t\t// Update special based on newly reset type\r\n\t\t\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\r\n\t\t\t\t\t\t\t\t// handleObj is passed to all event handlers\r\n\t\t\t\t\t\t\t\thandleObj = jQuery.extend({\r\n\t\t\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\t\t\torigType: origType,\r\n\t\t\t\t\t\t\t\t\tdata: data,\r\n\t\t\t\t\t\t\t\t\thandler: handler,\r\n\t\t\t\t\t\t\t\t\tguid: handler.guid,\r\n\t\t\t\t\t\t\t\t\tselector: selector,\r\n\t\t\t\t\t\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test(selector),\r\n\t\t\t\t\t\t\t\t\tnamespace: namespaces.join(\".\")\r\n\t\t\t\t\t\t\t\t}, handleObjIn);\r\n\r\n\t\t\t\t\t\t\t\t// Init the event handler queue if we're the first\r\n\t\t\t\t\t\t\t\tif (!(handlers = events[type])) {\r\n\t\t\t\t\t\t\t\t\thandlers = events[type] = [];\r\n\t\t\t\t\t\t\t\t\thandlers.delegateCount = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t// Only use addEventListener if the special events handler returns false\r\n\t\t\t\t\t\t\t\t\tif (!special.setup ||\r\n\t\t\t\t\t\t\t\t\t\tspecial.setup.call(elem, data, namespaces, eventHandle) === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (elem.addEventListener) {\r\n\t\t\t\t\t\t\t\t\t\t\telem.addEventListener(type, eventHandle);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (special.add) {\r\n\t\t\t\t\t\t\t\t\tspecial.add.call(elem, handleObj);\r\n\r\n\t\t\t\t\t\t\t\t\tif (!handleObj.handler.guid) {\r\n\t\t\t\t\t\t\t\t\t\thandleObj.handler.guid = handler.guid;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Add to the element's handler list, delegates in front\r\n\t\t\t\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\t\t\t\thandlers.splice(handlers.delegateCount++, 0, handleObj);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\thandlers.push(handleObj);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Keep track of which events have ever been used, for event optimization\r\n\t\t\t\t\t\t\t\tjQuery.event.global[type] = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Detach an event or set of events from an element\r\n\t\t\t\t\t\tremove: function (elem, types, handler, selector, mappedTypes) {\r\n\r\n\t\t\t\t\t\t\tvar j, origCount, tmp,\r\n\t\t\t\t\t\t\t\tevents, t, handleObj,\r\n\t\t\t\t\t\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\t\t\t\t\t\telemData = dataPriv.hasData(elem) && dataPriv.get(elem);\r\n\r\n\t\t\t\t\t\t\tif (!elemData || !(events = elemData.events)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Once for each type.namespace in types; type may be omitted\r\n\t\t\t\t\t\t\ttypes = (types || \"\").match(rnothtmlwhite) || [\"\"];\r\n\t\t\t\t\t\t\tt = types.length;\r\n\t\t\t\t\t\t\twhile (t--) {\r\n\t\t\t\t\t\t\t\ttmp = rtypenamespace.exec(types[t]) || [];\r\n\t\t\t\t\t\t\t\ttype = origType = tmp[1];\r\n\t\t\t\t\t\t\t\tnamespaces = (tmp[2] || \"\").split(\".\").sort();\r\n\r\n\t\t\t\t\t\t\t\t// Unbind all events (on this namespace, if provided) for the element\r\n\t\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\t\tfor (type in events) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.remove(elem, type + types[t], handler, selector, true);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\t\t\t\t\t\t\t\ttype = (selector ? special.delegateType : special.bindType) || type;\r\n\t\t\t\t\t\t\t\thandlers = events[type] || [];\r\n\t\t\t\t\t\t\t\ttmp = tmp[2] &&\r\n\t\t\t\t\t\t\t\t\tnew RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\r\n\r\n\t\t\t\t\t\t\t\t// Remove matching events\r\n\t\t\t\t\t\t\t\torigCount = j = handlers.length;\r\n\t\t\t\t\t\t\t\twhile (j--) {\r\n\t\t\t\t\t\t\t\t\thandleObj = handlers[j];\r\n\r\n\t\t\t\t\t\t\t\t\tif ((mappedTypes || origType === handleObj.origType) &&\r\n\t\t\t\t\t\t\t\t\t\t(!handler || handler.guid === handleObj.guid) &&\r\n\t\t\t\t\t\t\t\t\t\t(!tmp || tmp.test(handleObj.namespace)) &&\r\n\t\t\t\t\t\t\t\t\t\t(!selector || selector === handleObj.selector ||\r\n\t\t\t\t\t\t\t\t\t\t\tselector === \"**\" && handleObj.selector)) {\r\n\t\t\t\t\t\t\t\t\t\thandlers.splice(j, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (handleObj.selector) {\r\n\t\t\t\t\t\t\t\t\t\t\thandlers.delegateCount--;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (special.remove) {\r\n\t\t\t\t\t\t\t\t\t\t\tspecial.remove.call(elem, handleObj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Remove generic event handler if we removed something and no more handlers exist\r\n\t\t\t\t\t\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\r\n\t\t\t\t\t\t\t\tif (origCount && !handlers.length) {\r\n\t\t\t\t\t\t\t\t\tif (!special.teardown ||\r\n\t\t\t\t\t\t\t\t\t\tspecial.teardown.call(elem, namespaces, elemData.handle) === false) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tjQuery.removeEvent(elem, type, elemData.handle);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tdelete events[type];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Remove data and the expando if it's no longer used\r\n\t\t\t\t\t\t\tif (jQuery.isEmptyObject(events)) {\r\n\t\t\t\t\t\t\t\tdataPriv.remove(elem, \"handle events\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tdispatch: function (nativeEvent) {\r\n\r\n\t\t\t\t\t\t\tvar i, j, ret, matched, handleObj, handlerQueue,\r\n\t\t\t\t\t\t\t\targs = new Array(arguments.length),\r\n\r\n\t\t\t\t\t\t\t\t// Make a writable jQuery.Event from the native event object\r\n\t\t\t\t\t\t\t\tevent = jQuery.event.fix(nativeEvent),\r\n\r\n\t\t\t\t\t\t\t\thandlers = (\r\n\t\t\t\t\t\t\t\t\tdataPriv.get(this, \"events\") || Object.create(null)\r\n\t\t\t\t\t\t\t\t)[event.type] || [],\r\n\t\t\t\t\t\t\t\tspecial = jQuery.event.special[event.type] || {};\r\n\r\n\t\t\t\t\t\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n\t\t\t\t\t\t\targs[0] = event;\r\n\r\n\t\t\t\t\t\t\tfor (i = 1; i < arguments.length; i++) {\r\n\t\t\t\t\t\t\t\targs[i] = arguments[i];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tevent.delegateTarget = this;\r\n\r\n\t\t\t\t\t\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\r\n\t\t\t\t\t\t\tif (special.preDispatch && special.preDispatch.call(this, event) === false) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Determine handlers\r\n\t\t\t\t\t\t\thandlerQueue = jQuery.event.handlers.call(this, event, handlers);\r\n\r\n\t\t\t\t\t\t\t// Run delegates first; they may want to stop propagation beneath us\r\n\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\twhile ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\tevent.currentTarget = matched.elem;\r\n\r\n\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\twhile ((handleObj = matched.handlers[j++]) &&\r\n\t\t\t\t\t\t\t\t\t!event.isImmediatePropagationStopped()) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\r\n\t\t\t\t\t\t\t\t\t// specially universal or its namespaces are a superset of the event's.\r\n\t\t\t\t\t\t\t\t\tif (!event.rnamespace || handleObj.namespace === false ||\r\n\t\t\t\t\t\t\t\t\t\tevent.rnamespace.test(handleObj.namespace)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tevent.handleObj = handleObj;\r\n\t\t\t\t\t\t\t\t\t\tevent.data = handleObj.data;\r\n\r\n\t\t\t\t\t\t\t\t\t\tret = ((jQuery.event.special[handleObj.origType] || {}).handle ||\r\n\t\t\t\t\t\t\t\t\t\t\thandleObj.handler).apply(matched.elem, args);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (ret !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tif ((event.result = ret) === false) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Call the postDispatch hook for the mapped type\r\n\t\t\t\t\t\t\tif (special.postDispatch) {\r\n\t\t\t\t\t\t\t\tspecial.postDispatch.call(this, event);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn event.result;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\thandlers: function (event, handlers) {\r\n\t\t\t\t\t\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\r\n\t\t\t\t\t\t\t\thandlerQueue = [],\r\n\t\t\t\t\t\t\t\tdelegateCount = handlers.delegateCount,\r\n\t\t\t\t\t\t\t\tcur = event.target;\r\n\r\n\t\t\t\t\t\t\t// Find delegate handlers\r\n\t\t\t\t\t\t\tif (delegateCount &&\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=9\r\n\t\t\t\t\t\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\r\n\t\t\t\t\t\t\t\tcur.nodeType &&\r\n\r\n\t\t\t\t\t\t\t\t// Support: Firefox <=42\r\n\t\t\t\t\t\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\r\n\t\t\t\t\t\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\r\n\t\t\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\r\n\t\t\t\t\t\t\t\t!(event.type === \"click\" && event.button >= 1)) {\r\n\r\n\t\t\t\t\t\t\t\tfor (; cur !== this; cur = cur.parentNode || this) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Don't check non-elements (#13208)\r\n\t\t\t\t\t\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n\t\t\t\t\t\t\t\t\tif (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\r\n\t\t\t\t\t\t\t\t\t\tmatchedHandlers = [];\r\n\t\t\t\t\t\t\t\t\t\tmatchedSelectors = {};\r\n\t\t\t\t\t\t\t\t\t\tfor (i = 0; i < delegateCount; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\thandleObj = handlers[i];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\r\n\t\t\t\t\t\t\t\t\t\t\tsel = handleObj.selector + \" \";\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (matchedSelectors[sel] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatchedSelectors[sel] = handleObj.needsContext ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery(sel, this).index(cur) > -1 :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.find(sel, this, null, [cur]).length;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (matchedSelectors[sel]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatchedHandlers.push(handleObj);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (matchedHandlers.length) {\r\n\t\t\t\t\t\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matchedHandlers });\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Add the remaining (directly-bound) handlers\r\n\t\t\t\t\t\t\tcur = this;\r\n\t\t\t\t\t\t\tif (delegateCount < handlers.length) {\r\n\t\t\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) });\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn handlerQueue;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\taddProp: function (name, hook) {\r\n\t\t\t\t\t\t\tObject.defineProperty(jQuery.Event.prototype, name, {\r\n\t\t\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\t\t\tconfigurable: true,\r\n\r\n\t\t\t\t\t\t\t\tget: isFunction(hook) ?\r\n\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\tif (this.originalEvent) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn hook(this.originalEvent);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\t\t\tif (this.originalEvent) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn this.originalEvent[name];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tset: function (value) {\r\n\t\t\t\t\t\t\t\t\tObject.defineProperty(this, name, {\r\n\t\t\t\t\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\t\t\t\t\t\twritable: true,\r\n\t\t\t\t\t\t\t\t\t\tvalue: value\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tfix: function (originalEvent) {\r\n\t\t\t\t\t\t\treturn originalEvent[jQuery.expando] ?\r\n\t\t\t\t\t\t\t\toriginalEvent :\r\n\t\t\t\t\t\t\t\tnew jQuery.Event(originalEvent);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tspecial: {\r\n\t\t\t\t\t\t\tload: {\r\n\r\n\t\t\t\t\t\t\t\t// Prevent triggered image.load events from bubbling to window.load\r\n\t\t\t\t\t\t\t\tnoBubble: true\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tclick: {\r\n\r\n\t\t\t\t\t\t\t\t// Utilize native event to ensure correct state for checkable inputs\r\n\t\t\t\t\t\t\t\tsetup: function (data) {\r\n\r\n\t\t\t\t\t\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t\t\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\t\t\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t\t\t\t\t\t// Claim the first handler\r\n\t\t\t\t\t\t\t\t\tif (rcheckableType.test(el.type) &&\r\n\t\t\t\t\t\t\t\t\t\tel.click && nodeName(el, \"input\")) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\r\n\t\t\t\t\t\t\t\t\t\tleverageNative(el, \"click\", returnTrue);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ttrigger: function (data) {\r\n\r\n\t\t\t\t\t\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t\t\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\t\t\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t\t\t\t\t\t// Force setup before triggering a click\r\n\t\t\t\t\t\t\t\t\tif (rcheckableType.test(el.type) &&\r\n\t\t\t\t\t\t\t\t\t\tel.click && nodeName(el, \"input\")) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tleverageNative(el, \"click\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// For cross-browser consistency, suppress native .click() on links\r\n\t\t\t\t\t\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\r\n\t\t\t\t\t\t\t\t_default: function (event) {\r\n\t\t\t\t\t\t\t\t\tvar target = event.target;\r\n\t\t\t\t\t\t\t\t\treturn rcheckableType.test(target.type) &&\r\n\t\t\t\t\t\t\t\t\t\ttarget.click && nodeName(target, \"input\") &&\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.get(target, \"click\") ||\r\n\t\t\t\t\t\t\t\t\t\tnodeName(target, \"a\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tbeforeunload: {\r\n\t\t\t\t\t\t\t\tpostDispatch: function (event) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Firefox 20+\r\n\t\t\t\t\t\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\r\n\t\t\t\t\t\t\t\t\tif (event.result !== undefined && event.originalEvent) {\r\n\t\t\t\t\t\t\t\t\t\tevent.originalEvent.returnValue = event.result;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Ensure the presence of an event listener that handles manually-triggered\r\n\t\t\t\t\t// synthetic events by interrupting progress until reinvoked in response to\r\n\t\t\t\t\t// *native* events that it fires directly, ensuring that state changes have\r\n\t\t\t\t\t// already occurred before other listeners are invoked.\r\n\t\t\t\t\tfunction leverageNative(el, type, expectSync) {\r\n\r\n\t\t\t\t\t\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\r\n\t\t\t\t\t\tif (!expectSync) {\r\n\t\t\t\t\t\t\tif (dataPriv.get(el, type) === undefined) {\r\n\t\t\t\t\t\t\t\tjQuery.event.add(el, type, returnTrue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Register the controller as a special universal handler for all event namespaces\r\n\t\t\t\t\t\tdataPriv.set(el, type, false);\r\n\t\t\t\t\t\tjQuery.event.add(el, type, {\r\n\t\t\t\t\t\t\tnamespace: false,\r\n\t\t\t\t\t\t\thandler: function (event) {\r\n\t\t\t\t\t\t\t\tvar notAsync, result,\r\n\t\t\t\t\t\t\t\t\tsaved = dataPriv.get(this, type);\r\n\r\n\t\t\t\t\t\t\t\tif ((event.isTrigger & 1) && this[type]) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\r\n\t\t\t\t\t\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\r\n\t\t\t\t\t\t\t\t\t// from an async native handler (gh-4350)\r\n\t\t\t\t\t\t\t\t\tif (!saved.length) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Store arguments for use when handling the inner native event\r\n\t\t\t\t\t\t\t\t\t\t// There will always be at least one argument (an event object), so this array\r\n\t\t\t\t\t\t\t\t\t\t// will not be confused with a leftover capture object.\r\n\t\t\t\t\t\t\t\t\t\tsaved = slice.call(arguments);\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.set(this, type, saved);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Trigger the native event and capture its result\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t\t\t\t\t// focus() and blur() are asynchronous\r\n\t\t\t\t\t\t\t\t\t\tnotAsync = expectSync(this, type);\r\n\t\t\t\t\t\t\t\t\t\tthis[type]();\r\n\t\t\t\t\t\t\t\t\t\tresult = dataPriv.get(this, type);\r\n\t\t\t\t\t\t\t\t\t\tif (saved !== result || notAsync) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataPriv.set(this, type, false);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tresult = {};\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (saved !== result) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Cancel the outer synthetic event\r\n\t\t\t\t\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t\t\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\r\n\t\t\t\t\t\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\r\n\t\t\t\t\t\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\r\n\t\t\t\t\t\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\r\n\t\t\t\t\t\t\t\t\t\t\treturn result && result.value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\r\n\t\t\t\t\t\t\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\r\n\t\t\t\t\t\t\t\t\t\t// native event and prevent that from happening again here.\r\n\t\t\t\t\t\t\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\r\n\t\t\t\t\t\t\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\r\n\t\t\t\t\t\t\t\t\t\t// less bad than duplication.\r\n\t\t\t\t\t\t\t\t\t} else if ((jQuery.event.special[type] || {}).delegateType) {\r\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// If this is a native event triggered above, everything is now in order\r\n\t\t\t\t\t\t\t\t\t// Fire an inner synthetic event with the original arguments\r\n\t\t\t\t\t\t\t\t} else if (saved.length) {\r\n\r\n\t\t\t\t\t\t\t\t\t// ...and capture the result\r\n\t\t\t\t\t\t\t\t\tdataPriv.set(this, type, {\r\n\t\t\t\t\t\t\t\t\t\tvalue: jQuery.event.trigger(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.extend(saved[0], jQuery.Event.prototype),\r\n\t\t\t\t\t\t\t\t\t\t\tsaved.slice(1),\r\n\t\t\t\t\t\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t// Abort handling of the native event\r\n\t\t\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.removeEvent = function (elem, type, handle) {\r\n\r\n\t\t\t\t\t\t// This \"if\" is needed for plain objects\r\n\t\t\t\t\t\tif (elem.removeEventListener) {\r\n\t\t\t\t\t\t\telem.removeEventListener(type, handle);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.Event = function (src, props) {\r\n\r\n\t\t\t\t\t\t// Allow instantiation without the 'new' keyword\r\n\t\t\t\t\t\tif (!(this instanceof jQuery.Event)) {\r\n\t\t\t\t\t\t\treturn new jQuery.Event(src, props);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Event object\r\n\t\t\t\t\t\tif (src && src.type) {\r\n\t\t\t\t\t\t\tthis.originalEvent = src;\r\n\t\t\t\t\t\t\tthis.type = src.type;\r\n\r\n\t\t\t\t\t\t\t// Events bubbling up the document may have been marked as prevented\r\n\t\t\t\t\t\t\t// by a handler lower down the tree; reflect the correct value.\r\n\t\t\t\t\t\t\tthis.isDefaultPrevented = src.defaultPrevented ||\r\n\t\t\t\t\t\t\t\tsrc.defaultPrevented === undefined &&\r\n\r\n\t\t\t\t\t\t\t\t// Support: Android <=2.3 only\r\n\t\t\t\t\t\t\t\tsrc.returnValue === false ?\r\n\t\t\t\t\t\t\t\treturnTrue :\r\n\t\t\t\t\t\t\t\treturnFalse;\r\n\r\n\t\t\t\t\t\t\t// Create target properties\r\n\t\t\t\t\t\t\t// Support: Safari <=6 - 7 only\r\n\t\t\t\t\t\t\t// Target should not be a text node (#504, #13143)\r\n\t\t\t\t\t\t\tthis.target = (src.target && src.target.nodeType === 3) ?\r\n\t\t\t\t\t\t\t\tsrc.target.parentNode :\r\n\t\t\t\t\t\t\t\tsrc.target;\r\n\r\n\t\t\t\t\t\t\tthis.currentTarget = src.currentTarget;\r\n\t\t\t\t\t\t\tthis.relatedTarget = src.relatedTarget;\r\n\r\n\t\t\t\t\t\t\t// Event type\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.type = src;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Put explicitly provided properties onto the event object\r\n\t\t\t\t\t\tif (props) {\r\n\t\t\t\t\t\t\tjQuery.extend(this, props);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Create a timestamp if incoming event doesn't have one\r\n\t\t\t\t\t\tthis.timeStamp = src && src.timeStamp || Date.now();\r\n\r\n\t\t\t\t\t\t// Mark it as fixed\r\n\t\t\t\t\t\tthis[jQuery.expando] = true;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n\t\t\t\t\t// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\n\t\t\t\t\tjQuery.Event.prototype = {\r\n\t\t\t\t\t\tconstructor: jQuery.Event,\r\n\t\t\t\t\t\tisDefaultPrevented: returnFalse,\r\n\t\t\t\t\t\tisPropagationStopped: returnFalse,\r\n\t\t\t\t\t\tisImmediatePropagationStopped: returnFalse,\r\n\t\t\t\t\t\tisSimulated: false,\r\n\r\n\t\t\t\t\t\tpreventDefault: function () {\r\n\t\t\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\t\t\tthis.isDefaultPrevented = returnTrue;\r\n\r\n\t\t\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstopPropagation: function () {\r\n\t\t\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\t\t\tthis.isPropagationStopped = returnTrue;\r\n\r\n\t\t\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstopImmediatePropagation: function () {\r\n\t\t\t\t\t\t\tvar e = this.originalEvent;\r\n\r\n\t\t\t\t\t\t\tthis.isImmediatePropagationStopped = returnTrue;\r\n\r\n\t\t\t\t\t\t\tif (e && !this.isSimulated) {\r\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.stopPropagation();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Includes all common event props including KeyEvent and MouseEvent specific props\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\taltKey: true,\r\n\t\t\t\t\t\tbubbles: true,\r\n\t\t\t\t\t\tcancelable: true,\r\n\t\t\t\t\t\tchangedTouches: true,\r\n\t\t\t\t\t\tctrlKey: true,\r\n\t\t\t\t\t\tdetail: true,\r\n\t\t\t\t\t\teventPhase: true,\r\n\t\t\t\t\t\tmetaKey: true,\r\n\t\t\t\t\t\tpageX: true,\r\n\t\t\t\t\t\tpageY: true,\r\n\t\t\t\t\t\tshiftKey: true,\r\n\t\t\t\t\t\tview: true,\r\n\t\t\t\t\t\t\"char\": true,\r\n\t\t\t\t\t\tcode: true,\r\n\t\t\t\t\t\tcharCode: true,\r\n\t\t\t\t\t\tkey: true,\r\n\t\t\t\t\t\tkeyCode: true,\r\n\t\t\t\t\t\tbutton: true,\r\n\t\t\t\t\t\tbuttons: true,\r\n\t\t\t\t\t\tclientX: true,\r\n\t\t\t\t\t\tclientY: true,\r\n\t\t\t\t\t\toffsetX: true,\r\n\t\t\t\t\t\toffsetY: true,\r\n\t\t\t\t\t\tpointerId: true,\r\n\t\t\t\t\t\tpointerType: true,\r\n\t\t\t\t\t\tscreenX: true,\r\n\t\t\t\t\t\tscreenY: true,\r\n\t\t\t\t\t\ttargetTouches: true,\r\n\t\t\t\t\t\ttoElement: true,\r\n\t\t\t\t\t\ttouches: true,\r\n\t\t\t\t\t\twhich: true\r\n\t\t\t\t\t}, jQuery.event.addProp);\r\n\r\n\t\t\t\t\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function (type, delegateType) {\r\n\t\t\t\t\t\tjQuery.event.special[type] = {\r\n\r\n\t\t\t\t\t\t\t// Utilize native event if possible so blur/focus sequence is correct\r\n\t\t\t\t\t\t\tsetup: function () {\r\n\r\n\t\t\t\t\t\t\t\t// Claim the first handler\r\n\t\t\t\t\t\t\t\t// dataPriv.set( this, \"focus\", ... )\r\n\t\t\t\t\t\t\t\t// dataPriv.set( this, \"blur\", ... )\r\n\t\t\t\t\t\t\t\tleverageNative(this, type, expectSync);\r\n\r\n\t\t\t\t\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\ttrigger: function () {\r\n\r\n\t\t\t\t\t\t\t\t// Force setup before trigger\r\n\t\t\t\t\t\t\t\tleverageNative(this, type);\r\n\r\n\t\t\t\t\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Suppress native focus or blur as it's already being fired\r\n\t\t\t\t\t\t\t// in leverageNative.\r\n\t\t\t\t\t\t\t_default: function () {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tdelegateType: delegateType\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Create mouseenter/leave events using mouseover/out and event-time checks\r\n\t\t\t\t\t// so that event delegation works in jQuery.\r\n\t\t\t\t\t// Do the same for pointerenter/pointerleave and pointerover/pointerout\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Support: Safari 7 only\r\n\t\t\t\t\t// Safari sends mouseenter too often; see:\r\n\t\t\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\r\n\t\t\t\t\t// for the description of the bug (it existed in older Chrome versions as well).\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\tmouseenter: \"mouseover\",\r\n\t\t\t\t\t\tmouseleave: \"mouseout\",\r\n\t\t\t\t\t\tpointerenter: \"pointerover\",\r\n\t\t\t\t\t\tpointerleave: \"pointerout\"\r\n\t\t\t\t\t}, function (orig, fix) {\r\n\t\t\t\t\t\tjQuery.event.special[orig] = {\r\n\t\t\t\t\t\t\tdelegateType: fix,\r\n\t\t\t\t\t\t\tbindType: fix,\r\n\r\n\t\t\t\t\t\t\thandle: function (event) {\r\n\t\t\t\t\t\t\t\tvar ret,\r\n\t\t\t\t\t\t\t\t\ttarget = this,\r\n\t\t\t\t\t\t\t\t\trelated = event.relatedTarget,\r\n\t\t\t\t\t\t\t\t\thandleObj = event.handleObj;\r\n\r\n\t\t\t\t\t\t\t\t// For mouseenter/leave call the handler if related is outside the target.\r\n\t\t\t\t\t\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\r\n\t\t\t\t\t\t\t\tif (!related || (related !== target && !jQuery.contains(target, related))) {\r\n\t\t\t\t\t\t\t\t\tevent.type = handleObj.origType;\r\n\t\t\t\t\t\t\t\t\tret = handleObj.handler.apply(this, arguments);\r\n\t\t\t\t\t\t\t\t\tevent.type = fix;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\t\t\ton: function (types, selector, data, fn) {\r\n\t\t\t\t\t\t\treturn on(this, types, selector, data, fn);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tone: function (types, selector, data, fn) {\r\n\t\t\t\t\t\t\treturn on(this, types, selector, data, fn, 1);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\toff: function (types, selector, fn) {\r\n\t\t\t\t\t\t\tvar handleObj, type;\r\n\t\t\t\t\t\t\tif (types && types.preventDefault && types.handleObj) {\r\n\r\n\t\t\t\t\t\t\t\t// ( event )  dispatched jQuery.Event\r\n\t\t\t\t\t\t\t\thandleObj = types.handleObj;\r\n\t\t\t\t\t\t\t\tjQuery(types.delegateTarget).off(\r\n\t\t\t\t\t\t\t\t\thandleObj.namespace ?\r\n\t\t\t\t\t\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\r\n\t\t\t\t\t\t\t\t\t\thandleObj.origType,\r\n\t\t\t\t\t\t\t\t\thandleObj.selector,\r\n\t\t\t\t\t\t\t\t\thandleObj.handler\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (typeof types === \"object\") {\r\n\r\n\t\t\t\t\t\t\t\t// ( types-object [, selector] )\r\n\t\t\t\t\t\t\t\tfor (type in types) {\r\n\t\t\t\t\t\t\t\t\tthis.off(type, selector, types[type]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (selector === false || typeof selector === \"function\") {\r\n\r\n\t\t\t\t\t\t\t\t// ( types [, fn] )\r\n\t\t\t\t\t\t\t\tfn = selector;\r\n\t\t\t\t\t\t\t\tselector = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (fn === false) {\r\n\t\t\t\t\t\t\t\tfn = returnFalse;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tjQuery.event.remove(this, types, fn, selector);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tvar\r\n\r\n\t\t\t\t\t\t// Support: IE <=10 - 11, Edge 12 - 13 only\r\n\t\t\t\t\t\t// In IE/Edge using regex groups here causes severe slowdowns.\r\n\t\t\t\t\t\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\r\n\t\t\t\t\t\trnoInnerhtml = /<script|<style|<link/i,\r\n\r\n\t\t\t\t\t\t// checked=\"checked\" or checked\r\n\t\t\t\t\t\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\r\n\t\t\t\t\t\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\r\n\r\n\t\t\t\t\t// Prefer a tbody over its parent table for containing new rows\r\n\t\t\t\t\tfunction manipulationTarget(elem, content) {\r\n\t\t\t\t\t\tif (nodeName(elem, \"table\") &&\r\n\t\t\t\t\t\t\tnodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\r\n\r\n\t\t\t\t\t\t\treturn jQuery(elem).children(\"tbody\")[0] || elem;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Replace/restore the type attribute of script elements for safe DOM manipulation\r\n\t\t\t\t\tfunction disableScript(elem) {\r\n\t\t\t\t\t\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\r\n\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfunction restoreScript(elem) {\r\n\t\t\t\t\t\tif ((elem.type || \"\").slice(0, 5) === \"true/\") {\r\n\t\t\t\t\t\t\telem.type = elem.type.slice(5);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telem.removeAttribute(\"type\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction cloneCopyEvent(src, dest) {\r\n\t\t\t\t\t\tvar i, l, type, pdataOld, udataOld, udataCur, events;\r\n\r\n\t\t\t\t\t\tif (dest.nodeType !== 1) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// 1. Copy private data: events, handlers, etc.\r\n\t\t\t\t\t\tif (dataPriv.hasData(src)) {\r\n\t\t\t\t\t\t\tpdataOld = dataPriv.get(src);\r\n\t\t\t\t\t\t\tevents = pdataOld.events;\r\n\r\n\t\t\t\t\t\t\tif (events) {\r\n\t\t\t\t\t\t\t\tdataPriv.remove(dest, \"handle events\");\r\n\r\n\t\t\t\t\t\t\t\tfor (type in events) {\r\n\t\t\t\t\t\t\t\t\tfor (i = 0, l = events[type].length; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.add(dest, type, events[type][i]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// 2. Copy user data\r\n\t\t\t\t\t\tif (dataUser.hasData(src)) {\r\n\t\t\t\t\t\t\tudataOld = dataUser.access(src);\r\n\t\t\t\t\t\t\tudataCur = jQuery.extend({}, udataOld);\r\n\r\n\t\t\t\t\t\t\tdataUser.set(dest, udataCur);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fix IE bugs, see support tests\r\n\t\t\t\t\tfunction fixInput(src, dest) {\r\n\t\t\t\t\t\tvar nodeName = dest.nodeName.toLowerCase();\r\n\r\n\t\t\t\t\t\t// Fails to persist the checked state of a cloned checkbox or radio button.\r\n\t\t\t\t\t\tif (nodeName === \"input\" && rcheckableType.test(src.type)) {\r\n\t\t\t\t\t\t\tdest.checked = src.checked;\r\n\r\n\t\t\t\t\t\t\t// Fails to return the selected option to the default selected state when cloning options\r\n\t\t\t\t\t\t} else if (nodeName === \"input\" || nodeName === \"textarea\") {\r\n\t\t\t\t\t\t\tdest.defaultValue = src.defaultValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction domManip(collection, args, callback, ignored) {\r\n\r\n\t\t\t\t\t\t// Flatten any nested arrays\r\n\t\t\t\t\t\targs = flat(args);\r\n\r\n\t\t\t\t\t\tvar fragment, first, scripts, hasScripts, node, doc,\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tl = collection.length,\r\n\t\t\t\t\t\t\tiNoClone = l - 1,\r\n\t\t\t\t\t\t\tvalue = args[0],\r\n\t\t\t\t\t\t\tvalueIsFunction = isFunction(value);\r\n\r\n\t\t\t\t\t\t// We can't cloneNode fragments that contain checked, in WebKit\r\n\t\t\t\t\t\tif (valueIsFunction ||\r\n\t\t\t\t\t\t\t(l > 1 && typeof value === \"string\" &&\r\n\t\t\t\t\t\t\t\t!support.checkClone && rchecked.test(value))) {\r\n\t\t\t\t\t\t\treturn collection.each(function (index) {\r\n\t\t\t\t\t\t\t\tvar self = collection.eq(index);\r\n\t\t\t\t\t\t\t\tif (valueIsFunction) {\r\n\t\t\t\t\t\t\t\t\targs[0] = value.call(this, index, self.html());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdomManip(self, args, callback, ignored);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (l) {\r\n\t\t\t\t\t\t\tfragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\r\n\t\t\t\t\t\t\tfirst = fragment.firstChild;\r\n\r\n\t\t\t\t\t\t\tif (fragment.childNodes.length === 1) {\r\n\t\t\t\t\t\t\t\tfragment = first;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Require either new content or an interest in ignored elements to invoke the callback\r\n\t\t\t\t\t\t\tif (first || ignored) {\r\n\t\t\t\t\t\t\t\tscripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\r\n\t\t\t\t\t\t\t\thasScripts = scripts.length;\r\n\r\n\t\t\t\t\t\t\t\t// Use the original fragment for the last item\r\n\t\t\t\t\t\t\t\t// instead of the first because it can end up\r\n\t\t\t\t\t\t\t\t// being emptied incorrectly in certain situations (#8070).\r\n\t\t\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\tnode = fragment;\r\n\r\n\t\t\t\t\t\t\t\t\tif (i !== iNoClone) {\r\n\t\t\t\t\t\t\t\t\t\tnode = jQuery.clone(node, true, true);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\r\n\t\t\t\t\t\t\t\t\t\tif (hasScripts) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.merge(scripts, getAll(node, \"script\"));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tcallback.call(collection[i], node, i);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (hasScripts) {\r\n\t\t\t\t\t\t\t\t\tdoc = scripts[scripts.length - 1].ownerDocument;\r\n\r\n\t\t\t\t\t\t\t\t\t// Reenable scripts\r\n\t\t\t\t\t\t\t\t\tjQuery.map(scripts, restoreScript);\r\n\r\n\t\t\t\t\t\t\t\t\t// Evaluate executable scripts on first document insertion\r\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < hasScripts; i++) {\r\n\t\t\t\t\t\t\t\t\t\tnode = scripts[i];\r\n\t\t\t\t\t\t\t\t\t\tif (rscriptType.test(node.type || \"\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t!dataPriv.access(node, \"globalEval\") &&\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.contains(doc, node)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (jQuery._evalUrl && !node.noModule) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery._evalUrl(node.src, {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute(\"nonce\")\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}, doc);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tDOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn collection;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction remove(elem, selector, keepData) {\r\n\t\t\t\t\t\tvar node,\r\n\t\t\t\t\t\t\tnodes = selector ? jQuery.filter(selector, elem) : elem,\r\n\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\tfor (; (node = nodes[i]) != null; i++) {\r\n\t\t\t\t\t\t\tif (!keepData && node.nodeType === 1) {\r\n\t\t\t\t\t\t\t\tjQuery.cleanData(getAll(node));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (node.parentNode) {\r\n\t\t\t\t\t\t\t\tif (keepData && isAttached(node)) {\r\n\t\t\t\t\t\t\t\t\tsetGlobalEval(getAll(node, \"script\"));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tnode.parentNode.removeChild(node);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\thtmlPrefilter: function (html) {\r\n\t\t\t\t\t\t\treturn html;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tclone: function (elem, dataAndEvents, deepDataAndEvents) {\r\n\t\t\t\t\t\t\tvar i, l, srcElements, destElements,\r\n\t\t\t\t\t\t\t\tclone = elem.cloneNode(true),\r\n\t\t\t\t\t\t\t\tinPage = isAttached(elem);\r\n\r\n\t\t\t\t\t\t\t// Fix IE cloning issues\r\n\t\t\t\t\t\t\tif (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) &&\r\n\t\t\t\t\t\t\t\t!jQuery.isXMLDoc(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\r\n\t\t\t\t\t\t\t\tdestElements = getAll(clone);\r\n\t\t\t\t\t\t\t\tsrcElements = getAll(elem);\r\n\r\n\t\t\t\t\t\t\t\tfor (i = 0, l = srcElements.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\tfixInput(srcElements[i], destElements[i]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Copy the events from the original to the clone\r\n\t\t\t\t\t\t\tif (dataAndEvents) {\r\n\t\t\t\t\t\t\t\tif (deepDataAndEvents) {\r\n\t\t\t\t\t\t\t\t\tsrcElements = srcElements || getAll(elem);\r\n\t\t\t\t\t\t\t\t\tdestElements = destElements || getAll(clone);\r\n\r\n\t\t\t\t\t\t\t\t\tfor (i = 0, l = srcElements.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\t\tcloneCopyEvent(srcElements[i], destElements[i]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcloneCopyEvent(elem, clone);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Preserve script evaluation history\r\n\t\t\t\t\t\t\tdestElements = getAll(clone, \"script\");\r\n\t\t\t\t\t\t\tif (destElements.length > 0) {\r\n\t\t\t\t\t\t\t\tsetGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Return the cloned set\r\n\t\t\t\t\t\t\treturn clone;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tcleanData: function (elems) {\r\n\t\t\t\t\t\t\tvar data, elem, type,\r\n\t\t\t\t\t\t\t\tspecial = jQuery.event.special,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tfor (; (elem = elems[i]) !== undefined; i++) {\r\n\t\t\t\t\t\t\t\tif (acceptData(elem)) {\r\n\t\t\t\t\t\t\t\t\tif ((data = elem[dataPriv.expando])) {\r\n\t\t\t\t\t\t\t\t\t\tif (data.events) {\r\n\t\t\t\t\t\t\t\t\t\t\tfor (type in data.events) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (special[type]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.event.remove(elem, type);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tjQuery.removeEvent(elem, type, data.handle);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\t\t\t\t\t\telem[dataPriv.expando] = undefined;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (elem[dataUser.expando]) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\t\t\t\t\t\telem[dataUser.expando] = undefined;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tdetach: function (selector) {\r\n\t\t\t\t\t\t\treturn remove(this, selector, true);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremove: function (selector) {\r\n\t\t\t\t\t\t\treturn remove(this, selector);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\ttext: function (value) {\r\n\t\t\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\t\t\treturn value === undefined ?\r\n\t\t\t\t\t\t\t\t\tjQuery.text(this) :\r\n\t\t\t\t\t\t\t\t\tthis.empty().each(function () {\r\n\t\t\t\t\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.textContent = value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, null, value, arguments.length);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tappend: function () {\r\n\t\t\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\tvar target = manipulationTarget(this, elem);\r\n\t\t\t\t\t\t\t\t\ttarget.appendChild(elem);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tprepend: function () {\r\n\t\t\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\t\t\tif (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\tvar target = manipulationTarget(this, elem);\r\n\t\t\t\t\t\t\t\t\ttarget.insertBefore(elem, target.firstChild);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tbefore: function () {\r\n\t\t\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\t\t\tif (this.parentNode) {\r\n\t\t\t\t\t\t\t\t\tthis.parentNode.insertBefore(elem, this);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tafter: function () {\r\n\t\t\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\t\t\tif (this.parentNode) {\r\n\t\t\t\t\t\t\t\t\tthis.parentNode.insertBefore(elem, this.nextSibling);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tempty: function () {\r\n\t\t\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tfor (; (elem = this[i]) != null; i++) {\r\n\t\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Prevent memory leaks\r\n\t\t\t\t\t\t\t\t\tjQuery.cleanData(getAll(elem, false));\r\n\r\n\t\t\t\t\t\t\t\t\t// Remove any remaining nodes\r\n\t\t\t\t\t\t\t\t\telem.textContent = \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tclone: function (dataAndEvents, deepDataAndEvents) {\r\n\t\t\t\t\t\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\r\n\t\t\t\t\t\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\r\n\r\n\t\t\t\t\t\t\treturn this.map(function () {\r\n\t\t\t\t\t\t\t\treturn jQuery.clone(this, dataAndEvents, deepDataAndEvents);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\thtml: function (value) {\r\n\t\t\t\t\t\t\treturn access(this, function (value) {\r\n\t\t\t\t\t\t\t\tvar elem = this[0] || {},\r\n\t\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\t\tl = this.length;\r\n\r\n\t\t\t\t\t\t\t\tif (value === undefined && elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\t\treturn elem.innerHTML;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// See if we can take a shortcut and just use innerHTML\r\n\t\t\t\t\t\t\t\tif (typeof value === \"string\" && !rnoInnerhtml.test(value) &&\r\n\t\t\t\t\t\t\t\t\t!wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\r\n\r\n\t\t\t\t\t\t\t\t\tvalue = jQuery.htmlPrefilter(value);\r\n\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\tfor (; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\telem = this[i] || {};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\r\n\t\t\t\t\t\t\t\t\t\t\tif (elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.cleanData(getAll(elem, false));\r\n\t\t\t\t\t\t\t\t\t\t\t\telem.innerHTML = value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\telem = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If using innerHTML throws an exception, use the fallback method\r\n\t\t\t\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\t\t\tthis.empty().append(value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, null, value, arguments.length);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\treplaceWith: function () {\r\n\t\t\t\t\t\t\tvar ignored = [];\r\n\r\n\t\t\t\t\t\t\t// Make the changes, replacing each non-ignored context element with the new content\r\n\t\t\t\t\t\t\treturn domManip(this, arguments, function (elem) {\r\n\t\t\t\t\t\t\t\tvar parent = this.parentNode;\r\n\r\n\t\t\t\t\t\t\t\tif (jQuery.inArray(this, ignored) < 0) {\r\n\t\t\t\t\t\t\t\t\tjQuery.cleanData(getAll(this));\r\n\t\t\t\t\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\t\t\t\t\tparent.replaceChild(elem, this);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Force callback invocation\r\n\t\t\t\t\t\t\t}, ignored);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\tappendTo: \"append\",\r\n\t\t\t\t\t\tprependTo: \"prepend\",\r\n\t\t\t\t\t\tinsertBefore: \"before\",\r\n\t\t\t\t\t\tinsertAfter: \"after\",\r\n\t\t\t\t\t\treplaceAll: \"replaceWith\"\r\n\t\t\t\t\t}, function (name, original) {\r\n\t\t\t\t\t\tjQuery.fn[name] = function (selector) {\r\n\t\t\t\t\t\t\tvar elems,\r\n\t\t\t\t\t\t\t\tret = [],\r\n\t\t\t\t\t\t\t\tinsert = jQuery(selector),\r\n\t\t\t\t\t\t\t\tlast = insert.length - 1,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tfor (; i <= last; i++) {\r\n\t\t\t\t\t\t\t\telems = i === last ? this : this.clone(true);\r\n\t\t\t\t\t\t\t\tjQuery(insert[i])[original](elems);\r\n\r\n\t\t\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\t\t\tpush.apply(ret, elems.get());\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.pushStack(ret);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\r\n\r\n\t\t\t\t\tvar getStyles = function (elem) {\r\n\r\n\t\t\t\t\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n\t\t\t\t\t\t// IE throws on elements created in popups\r\n\t\t\t\t\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n\t\t\t\t\t\tvar view = elem.ownerDocument.defaultView;\r\n\r\n\t\t\t\t\t\tif (!view || !view.opener) {\r\n\t\t\t\t\t\t\tview = window;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn view.getComputedStyle(elem);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar swap = function (elem, options, callback) {\r\n\t\t\t\t\t\tvar ret, name,\r\n\t\t\t\t\t\t\told = {};\r\n\r\n\t\t\t\t\t\t// Remember the old values, and insert the new ones\r\n\t\t\t\t\t\tfor (name in options) {\r\n\t\t\t\t\t\t\told[name] = elem.style[name];\r\n\t\t\t\t\t\t\telem.style[name] = options[name];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tret = callback.call(elem);\r\n\r\n\t\t\t\t\t\t// Revert the old values\r\n\t\t\t\t\t\tfor (name in options) {\r\n\t\t\t\t\t\t\telem.style[name] = old[name];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\r\n\r\n\r\n\r\n\t\t\t\t\t(function () {\r\n\r\n\t\t\t\t\t\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\r\n\t\t\t\t\t\t// so they're executed at the same time to save the second computation.\r\n\t\t\t\t\t\tfunction computeStyleTests() {\r\n\r\n\t\t\t\t\t\t\t// This is a singleton, we need to execute it only once\r\n\t\t\t\t\t\t\tif (!div) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\r\n\t\t\t\t\t\t\t\t\"margin-top:1px;padding:0;border:0\";\r\n\t\t\t\t\t\t\tdiv.style.cssText =\r\n\t\t\t\t\t\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\r\n\t\t\t\t\t\t\t\t\"margin:auto;border:1px;padding:1px;\" +\r\n\t\t\t\t\t\t\t\t\"width:60%;top:1%\";\r\n\t\t\t\t\t\t\tdocumentElement.appendChild(container).appendChild(div);\r\n\r\n\t\t\t\t\t\t\tvar divStyle = window.getComputedStyle(div);\r\n\t\t\t\t\t\t\tpixelPositionVal = divStyle.top !== \"1%\";\r\n\r\n\t\t\t\t\t\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\r\n\t\t\t\t\t\t\treliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\r\n\r\n\t\t\t\t\t\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\r\n\t\t\t\t\t\t\t// Some styles come back with percentage values, even though they shouldn't\r\n\t\t\t\t\t\t\tdiv.style.right = \"60%\";\r\n\t\t\t\t\t\t\tpixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\r\n\r\n\t\t\t\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t\t\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\r\n\t\t\t\t\t\t\tboxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\r\n\r\n\t\t\t\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t\t\t\t// Detect overflow:scroll screwiness (gh-3699)\r\n\t\t\t\t\t\t\t// Support: Chrome <=64\r\n\t\t\t\t\t\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\r\n\t\t\t\t\t\t\tdiv.style.position = \"absolute\";\r\n\t\t\t\t\t\t\tscrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\r\n\r\n\t\t\t\t\t\t\tdocumentElement.removeChild(container);\r\n\r\n\t\t\t\t\t\t\t// Nullify the div so it wouldn't be stored in the memory and\r\n\t\t\t\t\t\t\t// it will also be a sign that checks already performed\r\n\t\t\t\t\t\t\tdiv = null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction roundPixelMeasures(measure) {\r\n\t\t\t\t\t\t\treturn Math.round(parseFloat(measure));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\r\n\t\t\t\t\t\t\treliableTrDimensionsVal, reliableMarginLeftVal,\r\n\t\t\t\t\t\t\tcontainer = document.createElement(\"div\"),\r\n\t\t\t\t\t\t\tdiv = document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t// Finish early in limited (non-browser) environments\r\n\t\t\t\t\t\tif (!div.style) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t\t// Style of cloned element affects source element cloned (#8908)\r\n\t\t\t\t\t\tdiv.style.backgroundClip = \"content-box\";\r\n\t\t\t\t\t\tdiv.cloneNode(true).style.backgroundClip = \"\";\r\n\t\t\t\t\t\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\r\n\r\n\t\t\t\t\t\tjQuery.extend(support, {\r\n\t\t\t\t\t\t\tboxSizingReliable: function () {\r\n\t\t\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\t\t\treturn boxSizingReliableVal;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tpixelBoxStyles: function () {\r\n\t\t\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\t\t\treturn pixelBoxStylesVal;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tpixelPosition: function () {\r\n\t\t\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\t\t\treturn pixelPositionVal;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\treliableMarginLeft: function () {\r\n\t\t\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\t\t\treturn reliableMarginLeftVal;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tscrollboxSize: function () {\r\n\t\t\t\t\t\t\t\tcomputeStyleTests();\r\n\t\t\t\t\t\t\t\treturn scrollboxSizeVal;\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Support: IE 9 - 11+, Edge 15 - 18+\r\n\t\t\t\t\t\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t\t\t\t\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t\t\t\t\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\r\n\t\t\t\t\t\t\t// some versions of this test; make sure not to make it pass there!\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t// Support: Firefox 70+\r\n\t\t\t\t\t\t\t// Only Firefox includes border widths\r\n\t\t\t\t\t\t\t// in computed dimensions. (gh-4529)\r\n\t\t\t\t\t\t\treliableTrDimensions: function () {\r\n\t\t\t\t\t\t\t\tvar table, tr, trChild, trStyle;\r\n\t\t\t\t\t\t\t\tif (reliableTrDimensionsVal == null) {\r\n\t\t\t\t\t\t\t\t\ttable = document.createElement(\"table\");\r\n\t\t\t\t\t\t\t\t\ttr = document.createElement(\"tr\");\r\n\t\t\t\t\t\t\t\t\ttrChild = document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\r\n\t\t\t\t\t\t\t\t\ttr.style.cssText = \"border:1px solid\";\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t\t\t\t\t\t// Height set through cssText does not get applied.\r\n\t\t\t\t\t\t\t\t\t// Computed height then comes back as 0.\r\n\t\t\t\t\t\t\t\t\ttr.style.height = \"1px\";\r\n\t\t\t\t\t\t\t\t\ttrChild.style.height = \"9px\";\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Android 8 Chrome 86+\r\n\t\t\t\t\t\t\t\t\t// In our bodyBackground.html iframe,\r\n\t\t\t\t\t\t\t\t\t// display for all div elements is set to \"inline\",\r\n\t\t\t\t\t\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\r\n\t\t\t\t\t\t\t\t\t// Ensuring the div is display: block\r\n\t\t\t\t\t\t\t\t\t// gets around this issue.\r\n\t\t\t\t\t\t\t\t\ttrChild.style.display = \"block\";\r\n\r\n\t\t\t\t\t\t\t\t\tdocumentElement\r\n\t\t\t\t\t\t\t\t\t\t.appendChild(table)\r\n\t\t\t\t\t\t\t\t\t\t.appendChild(tr)\r\n\t\t\t\t\t\t\t\t\t\t.appendChild(trChild);\r\n\r\n\t\t\t\t\t\t\t\t\ttrStyle = window.getComputedStyle(tr);\r\n\t\t\t\t\t\t\t\t\treliableTrDimensionsVal = (parseInt(trStyle.height, 10) +\r\n\t\t\t\t\t\t\t\t\t\tparseInt(trStyle.borderTopWidth, 10) +\r\n\t\t\t\t\t\t\t\t\t\tparseInt(trStyle.borderBottomWidth, 10)) === tr.offsetHeight;\r\n\r\n\t\t\t\t\t\t\t\t\tdocumentElement.removeChild(table);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn reliableTrDimensionsVal;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})();\r\n\r\n\r\n\t\t\t\t\tfunction curCSS(elem, name, computed) {\r\n\t\t\t\t\t\tvar width, minWidth, maxWidth, ret,\r\n\r\n\t\t\t\t\t\t\t// Support: Firefox 51+\r\n\t\t\t\t\t\t\t// Retrieving style before computed somehow\r\n\t\t\t\t\t\t\t// fixes an issue with getting wrong values\r\n\t\t\t\t\t\t\t// on detached elements\r\n\t\t\t\t\t\t\tstyle = elem.style;\r\n\r\n\t\t\t\t\t\tcomputed = computed || getStyles(elem);\r\n\r\n\t\t\t\t\t\t// getPropertyValue is needed for:\r\n\t\t\t\t\t\t//   .css('filter') (IE 9 only, #12537)\r\n\t\t\t\t\t\t//   .css('--customProperty) (#3144)\r\n\t\t\t\t\t\tif (computed) {\r\n\t\t\t\t\t\t\tret = computed.getPropertyValue(name) || computed[name];\r\n\r\n\t\t\t\t\t\t\tif (ret === \"\" && !isAttached(elem)) {\r\n\t\t\t\t\t\t\t\tret = jQuery.style(elem, name);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\r\n\t\t\t\t\t\t\t// Android Browser returns percentage for some values,\r\n\t\t\t\t\t\t\t// but width seems to be reliably pixels.\r\n\t\t\t\t\t\t\t// This is against the CSSOM draft spec:\r\n\t\t\t\t\t\t\t// https://drafts.csswg.org/cssom/#resolved-values\r\n\t\t\t\t\t\t\tif (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\r\n\r\n\t\t\t\t\t\t\t\t// Remember the original values\r\n\t\t\t\t\t\t\t\twidth = style.width;\r\n\t\t\t\t\t\t\t\tminWidth = style.minWidth;\r\n\t\t\t\t\t\t\t\tmaxWidth = style.maxWidth;\r\n\r\n\t\t\t\t\t\t\t\t// Put in the new values to get a computed value out\r\n\t\t\t\t\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\r\n\t\t\t\t\t\t\t\tret = computed.width;\r\n\r\n\t\t\t\t\t\t\t\t// Revert the changed values\r\n\t\t\t\t\t\t\t\tstyle.width = width;\r\n\t\t\t\t\t\t\t\tstyle.minWidth = minWidth;\r\n\t\t\t\t\t\t\t\tstyle.maxWidth = maxWidth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn ret !== undefined ?\r\n\r\n\t\t\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t\t\t// IE returns zIndex value as an integer.\r\n\t\t\t\t\t\t\tret + \"\" :\r\n\t\t\t\t\t\t\tret;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction addGetHookIf(conditionFn, hookFn) {\r\n\r\n\t\t\t\t\t\t// Define the hook, we'll check on the first run if it's really needed.\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tget: function () {\r\n\t\t\t\t\t\t\t\tif (conditionFn()) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Hook not needed (or it's not possible to use it due\r\n\t\t\t\t\t\t\t\t\t// to missing dependency), remove it.\r\n\t\t\t\t\t\t\t\t\tdelete this.get;\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Hook needed; redefine it so that the support test is not executed again.\r\n\t\t\t\t\t\t\t\treturn (this.get = hookFn).apply(this, arguments);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\r\n\t\t\t\t\t\temptyStyle = document.createElement(\"div\").style,\r\n\t\t\t\t\t\tvendorProps = {};\r\n\r\n\t\t\t\t\t// Return a vendor-prefixed property or undefined\r\n\t\t\t\t\tfunction vendorPropName(name) {\r\n\r\n\t\t\t\t\t\t// Check for vendor prefixed names\r\n\t\t\t\t\t\tvar capName = name[0].toUpperCase() + name.slice(1),\r\n\t\t\t\t\t\t\ti = cssPrefixes.length;\r\n\r\n\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\tname = cssPrefixes[i] + capName;\r\n\t\t\t\t\t\t\tif (name in emptyStyle) {\r\n\t\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\r\n\t\t\t\t\tfunction finalPropName(name) {\r\n\t\t\t\t\t\tvar final = jQuery.cssProps[name] || vendorProps[name];\r\n\r\n\t\t\t\t\t\tif (final) {\r\n\t\t\t\t\t\t\treturn final;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (name in emptyStyle) {\r\n\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn vendorProps[name] = vendorPropName(name) || name;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar\r\n\r\n\t\t\t\t\t\t// Swappable if display is none or starts with table\r\n\t\t\t\t\t\t// except \"table\", \"table-cell\", or \"table-caption\"\r\n\t\t\t\t\t\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\r\n\t\t\t\t\t\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\r\n\t\t\t\t\t\trcustomProp = /^--/,\r\n\t\t\t\t\t\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\r\n\t\t\t\t\t\tcssNormalTransform = {\r\n\t\t\t\t\t\t\tletterSpacing: \"0\",\r\n\t\t\t\t\t\t\tfontWeight: \"400\"\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction setPositiveNumber(_elem, value, subtract) {\r\n\r\n\t\t\t\t\t\t// Any relative (+/-) values have already been\r\n\t\t\t\t\t\t// normalized at this point\r\n\t\t\t\t\t\tvar matches = rcssNum.exec(value);\r\n\t\t\t\t\t\treturn matches ?\r\n\r\n\t\t\t\t\t\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\r\n\t\t\t\t\t\t\tMath.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") :\r\n\t\t\t\t\t\t\tvalue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\r\n\t\t\t\t\t\tvar i = dimension === \"width\" ? 1 : 0,\r\n\t\t\t\t\t\t\textra = 0,\r\n\t\t\t\t\t\t\tdelta = 0;\r\n\r\n\t\t\t\t\t\t// Adjustment may not be necessary\r\n\t\t\t\t\t\tif (box === (isBorderBox ? \"border\" : \"content\")) {\r\n\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfor (; i < 4; i += 2) {\r\n\r\n\t\t\t\t\t\t\t// Both box models exclude margin\r\n\t\t\t\t\t\t\tif (box === \"margin\") {\r\n\t\t\t\t\t\t\t\tdelta += jQuery.css(elem, box + cssExpand[i], true, styles);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\r\n\t\t\t\t\t\t\tif (!isBorderBox) {\r\n\r\n\t\t\t\t\t\t\t\t// Add padding\r\n\t\t\t\t\t\t\t\tdelta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\r\n\r\n\t\t\t\t\t\t\t\t// For \"border\" or \"margin\", add border\r\n\t\t\t\t\t\t\t\tif (box !== \"padding\") {\r\n\t\t\t\t\t\t\t\t\tdelta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\r\n\t\t\t\t\t\t\t\t\t// But still keep track of it otherwise\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\textra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\r\n\t\t\t\t\t\t\t\t// \"padding\" or \"margin\"\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// For \"content\", subtract padding\r\n\t\t\t\t\t\t\t\tif (box === \"content\") {\r\n\t\t\t\t\t\t\t\t\tdelta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// For \"content\" or \"padding\", subtract border\r\n\t\t\t\t\t\t\t\tif (box !== \"margin\") {\r\n\t\t\t\t\t\t\t\t\tdelta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Account for positive content-box scroll gutter when requested by providing computedVal\r\n\t\t\t\t\t\tif (!isBorderBox && computedVal >= 0) {\r\n\r\n\t\t\t\t\t\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\r\n\t\t\t\t\t\t\t// Assuming integer scroll gutter, subtract the rest and round down\r\n\t\t\t\t\t\t\tdelta += Math.max(0, Math.ceil(\r\n\t\t\t\t\t\t\t\telem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] -\r\n\t\t\t\t\t\t\t\tcomputedVal -\r\n\t\t\t\t\t\t\t\tdelta -\r\n\t\t\t\t\t\t\t\textra -\r\n\t\t\t\t\t\t\t\t0.5\r\n\r\n\t\t\t\t\t\t\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\r\n\t\t\t\t\t\t\t\t// Use an explicit zero to avoid NaN (gh-3964)\r\n\t\t\t\t\t\t\t)) || 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn delta;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getWidthOrHeight(elem, dimension, extra) {\r\n\r\n\t\t\t\t\t\t// Start with computed style\r\n\t\t\t\t\t\tvar styles = getStyles(elem),\r\n\r\n\t\t\t\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\r\n\t\t\t\t\t\t\t// Fake content-box until we know it's needed to know the true value.\r\n\t\t\t\t\t\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\r\n\t\t\t\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\t\t\t\tjQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\r\n\t\t\t\t\t\t\tvalueIsBorderBox = isBorderBox,\r\n\r\n\t\t\t\t\t\t\tval = curCSS(elem, dimension, styles),\r\n\t\t\t\t\t\t\toffsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\r\n\r\n\t\t\t\t\t\t// Support: Firefox <=54\r\n\t\t\t\t\t\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\r\n\t\t\t\t\t\tif (rnumnonpx.test(val)) {\r\n\t\t\t\t\t\t\tif (!extra) {\r\n\t\t\t\t\t\t\t\treturn val;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tval = \"auto\";\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t\t\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\r\n\t\t\t\t\t\t// In those cases, the computed value can be trusted to be border-box.\r\n\t\t\t\t\t\tif ((!support.boxSizingReliable() && isBorderBox ||\r\n\r\n\t\t\t\t\t\t\t// Support: IE 10 - 11+, Edge 15 - 18+\r\n\t\t\t\t\t\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t\t\t\t\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t\t\t\t\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\r\n\t\t\t\t\t\t\t!support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\r\n\r\n\t\t\t\t\t\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\r\n\t\t\t\t\t\t\t// This happens for inline elements with no explicit setting (gh-3571)\r\n\t\t\t\t\t\t\tval === \"auto\" ||\r\n\r\n\t\t\t\t\t\t\t// Support: Android <=4.1 - 4.3 only\r\n\t\t\t\t\t\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\r\n\t\t\t\t\t\t\t!parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\r\n\r\n\t\t\t\t\t\t\t// Make sure the element is visible & connected\r\n\t\t\t\t\t\t\telem.getClientRects().length) {\r\n\r\n\t\t\t\t\t\t\tisBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\r\n\r\n\t\t\t\t\t\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\r\n\t\t\t\t\t\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\r\n\t\t\t\t\t\t\t// retrieved value as a content box dimension.\r\n\t\t\t\t\t\t\tvalueIsBorderBox = offsetProp in elem;\r\n\t\t\t\t\t\t\tif (valueIsBorderBox) {\r\n\t\t\t\t\t\t\t\tval = elem[offsetProp];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Normalize \"\" and auto\r\n\t\t\t\t\t\tval = parseFloat(val) || 0;\r\n\r\n\t\t\t\t\t\t// Adjust for the element's box model\r\n\t\t\t\t\t\treturn (val +\r\n\t\t\t\t\t\t\tboxModelAdjustment(\r\n\t\t\t\t\t\t\t\telem,\r\n\t\t\t\t\t\t\t\tdimension,\r\n\t\t\t\t\t\t\t\textra || (isBorderBox ? \"border\" : \"content\"),\r\n\t\t\t\t\t\t\t\tvalueIsBorderBox,\r\n\t\t\t\t\t\t\t\tstyles,\r\n\r\n\t\t\t\t\t\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\r\n\t\t\t\t\t\t\t\tval\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t) + \"px\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t\t\t// Add in style property hooks for overriding the default\r\n\t\t\t\t\t\t// behavior of getting and setting a style property\r\n\t\t\t\t\t\tcssHooks: {\r\n\t\t\t\t\t\t\topacity: {\r\n\t\t\t\t\t\t\t\tget: function (elem, computed) {\r\n\t\t\t\t\t\t\t\t\tif (computed) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// We should always get a number back from opacity\r\n\t\t\t\t\t\t\t\t\t\tvar ret = curCSS(elem, \"opacity\");\r\n\t\t\t\t\t\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Don't automatically add \"px\" to these possibly-unitless properties\r\n\t\t\t\t\t\tcssNumber: {\r\n\t\t\t\t\t\t\t\"animationIterationCount\": true,\r\n\t\t\t\t\t\t\t\"columnCount\": true,\r\n\t\t\t\t\t\t\t\"fillOpacity\": true,\r\n\t\t\t\t\t\t\t\"flexGrow\": true,\r\n\t\t\t\t\t\t\t\"flexShrink\": true,\r\n\t\t\t\t\t\t\t\"fontWeight\": true,\r\n\t\t\t\t\t\t\t\"gridArea\": true,\r\n\t\t\t\t\t\t\t\"gridColumn\": true,\r\n\t\t\t\t\t\t\t\"gridColumnEnd\": true,\r\n\t\t\t\t\t\t\t\"gridColumnStart\": true,\r\n\t\t\t\t\t\t\t\"gridRow\": true,\r\n\t\t\t\t\t\t\t\"gridRowEnd\": true,\r\n\t\t\t\t\t\t\t\"gridRowStart\": true,\r\n\t\t\t\t\t\t\t\"lineHeight\": true,\r\n\t\t\t\t\t\t\t\"opacity\": true,\r\n\t\t\t\t\t\t\t\"order\": true,\r\n\t\t\t\t\t\t\t\"orphans\": true,\r\n\t\t\t\t\t\t\t\"widows\": true,\r\n\t\t\t\t\t\t\t\"zIndex\": true,\r\n\t\t\t\t\t\t\t\"zoom\": true\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Add in properties whose names you wish to fix before\r\n\t\t\t\t\t\t// setting or getting the value\r\n\t\t\t\t\t\tcssProps: {},\r\n\r\n\t\t\t\t\t\t// Get and set the style property on a DOM Node\r\n\t\t\t\t\t\tstyle: function (elem, name, value, extra) {\r\n\r\n\t\t\t\t\t\t\t// Don't set styles on text and comment nodes\r\n\t\t\t\t\t\t\tif (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Make sure that we're working with the right name\r\n\t\t\t\t\t\t\tvar ret, type, hooks,\r\n\t\t\t\t\t\t\t\torigName = camelCase(name),\r\n\t\t\t\t\t\t\t\tisCustomProp = rcustomProp.test(name),\r\n\t\t\t\t\t\t\t\tstyle = elem.style;\r\n\r\n\t\t\t\t\t\t\t// Make sure that we're working with the right name. We don't\r\n\t\t\t\t\t\t\t// want to query the value if it is a CSS custom property\r\n\t\t\t\t\t\t\t// since they are user-defined.\r\n\t\t\t\t\t\t\tif (!isCustomProp) {\r\n\t\t\t\t\t\t\t\tname = finalPropName(origName);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Gets hook for the prefixed version, then unprefixed version\r\n\t\t\t\t\t\t\thooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\r\n\r\n\t\t\t\t\t\t\t// Check if we're setting a value\r\n\t\t\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\t\t\ttype = typeof value;\r\n\r\n\t\t\t\t\t\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\r\n\t\t\t\t\t\t\t\tif (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\r\n\t\t\t\t\t\t\t\t\tvalue = adjustCSS(elem, name, ret);\r\n\r\n\t\t\t\t\t\t\t\t\t// Fixes bug #9237\r\n\t\t\t\t\t\t\t\t\ttype = \"number\";\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Make sure that null and NaN values aren't set (#7116)\r\n\t\t\t\t\t\t\t\tif (value == null || value !== value) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\r\n\t\t\t\t\t\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\r\n\t\t\t\t\t\t\t\t// \"px\" to a few hardcoded values.\r\n\t\t\t\t\t\t\t\tif (type === \"number\" && !isCustomProp) {\r\n\t\t\t\t\t\t\t\t\tvalue += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// background-* props affect original clone's values\r\n\t\t\t\t\t\t\t\tif (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\r\n\t\t\t\t\t\t\t\t\tstyle[name] = \"inherit\";\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\r\n\t\t\t\t\t\t\t\tif (!hooks || !(\"set\" in hooks) ||\r\n\t\t\t\t\t\t\t\t\t(value = hooks.set(elem, value, extra)) !== undefined) {\r\n\r\n\t\t\t\t\t\t\t\t\tif (isCustomProp) {\r\n\t\t\t\t\t\t\t\t\t\tstyle.setProperty(name, value);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tstyle[name] = value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// If a hook was provided get the non-computed value from there\r\n\t\t\t\t\t\t\t\tif (hooks && \"get\" in hooks &&\r\n\t\t\t\t\t\t\t\t\t(ret = hooks.get(elem, false, extra)) !== undefined) {\r\n\r\n\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise just get the value from the style object\r\n\t\t\t\t\t\t\t\treturn style[name];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tcss: function (elem, name, extra, styles) {\r\n\t\t\t\t\t\t\tvar val, num, hooks,\r\n\t\t\t\t\t\t\t\torigName = camelCase(name),\r\n\t\t\t\t\t\t\t\tisCustomProp = rcustomProp.test(name);\r\n\r\n\t\t\t\t\t\t\t// Make sure that we're working with the right name. We don't\r\n\t\t\t\t\t\t\t// want to modify the value if it is a CSS custom property\r\n\t\t\t\t\t\t\t// since they are user-defined.\r\n\t\t\t\t\t\t\tif (!isCustomProp) {\r\n\t\t\t\t\t\t\t\tname = finalPropName(origName);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Try prefixed name followed by the unprefixed name\r\n\t\t\t\t\t\t\thooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\r\n\r\n\t\t\t\t\t\t\t// If a hook was provided get the computed value from there\r\n\t\t\t\t\t\t\tif (hooks && \"get\" in hooks) {\r\n\t\t\t\t\t\t\t\tval = hooks.get(elem, true, extra);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Otherwise, if a way to get the computed value exists, use that\r\n\t\t\t\t\t\t\tif (val === undefined) {\r\n\t\t\t\t\t\t\t\tval = curCSS(elem, name, styles);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Convert \"normal\" to computed value\r\n\t\t\t\t\t\t\tif (val === \"normal\" && name in cssNormalTransform) {\r\n\t\t\t\t\t\t\t\tval = cssNormalTransform[name];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\r\n\t\t\t\t\t\t\tif (extra === \"\" || extra) {\r\n\t\t\t\t\t\t\t\tnum = parseFloat(val);\r\n\t\t\t\t\t\t\t\treturn extra === true || isFinite(num) ? num || 0 : val;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn val;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.each([\"height\", \"width\"], function (_i, dimension) {\r\n\t\t\t\t\t\tjQuery.cssHooks[dimension] = {\r\n\t\t\t\t\t\t\tget: function (elem, computed, extra) {\r\n\t\t\t\t\t\t\t\tif (computed) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Certain elements can have dimension info if we invisibly show them\r\n\t\t\t\t\t\t\t\t\t// but it must have a current display style that would benefit\r\n\t\t\t\t\t\t\t\t\treturn rdisplayswap.test(jQuery.css(elem, \"display\")) &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Safari 8+\r\n\t\t\t\t\t\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\r\n\t\t\t\t\t\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\r\n\t\t\t\t\t\t\t\t\t\t// in IE throws an error.\r\n\t\t\t\t\t\t\t\t\t\t(!elem.getClientRects().length || !elem.getBoundingClientRect().width) ?\r\n\t\t\t\t\t\t\t\t\t\tswap(elem, cssShow, function () {\r\n\t\t\t\t\t\t\t\t\t\t\treturn getWidthOrHeight(elem, dimension, extra);\r\n\t\t\t\t\t\t\t\t\t\t}) :\r\n\t\t\t\t\t\t\t\t\t\tgetWidthOrHeight(elem, dimension, extra);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tset: function (elem, value, extra) {\r\n\t\t\t\t\t\t\t\tvar matches,\r\n\t\t\t\t\t\t\t\t\tstyles = getStyles(elem),\r\n\r\n\t\t\t\t\t\t\t\t\t// Only read styles.position if the test has a chance to fail\r\n\t\t\t\t\t\t\t\t\t// to avoid forcing a reflow.\r\n\t\t\t\t\t\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\r\n\t\t\t\t\t\t\t\t\t\tstyles.position === \"absolute\",\r\n\r\n\t\t\t\t\t\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\r\n\t\t\t\t\t\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\r\n\t\t\t\t\t\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\t\t\t\t\t\tjQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\r\n\t\t\t\t\t\t\t\t\tsubtract = extra ?\r\n\t\t\t\t\t\t\t\t\t\tboxModelAdjustment(\r\n\t\t\t\t\t\t\t\t\t\t\telem,\r\n\t\t\t\t\t\t\t\t\t\t\tdimension,\r\n\t\t\t\t\t\t\t\t\t\t\textra,\r\n\t\t\t\t\t\t\t\t\t\t\tisBorderBox,\r\n\t\t\t\t\t\t\t\t\t\t\tstyles\r\n\t\t\t\t\t\t\t\t\t\t) :\r\n\t\t\t\t\t\t\t\t\t\t0;\r\n\r\n\t\t\t\t\t\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\r\n\t\t\t\t\t\t\t\t// faking a content-box to get border and padding (gh-3699)\r\n\t\t\t\t\t\t\t\tif (isBorderBox && scrollboxSizeBuggy) {\r\n\t\t\t\t\t\t\t\t\tsubtract -= Math.ceil(\r\n\t\t\t\t\t\t\t\t\t\telem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] -\r\n\t\t\t\t\t\t\t\t\t\tparseFloat(styles[dimension]) -\r\n\t\t\t\t\t\t\t\t\t\tboxModelAdjustment(elem, dimension, \"border\", false, styles) -\r\n\t\t\t\t\t\t\t\t\t\t0.5\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Convert to pixels if value adjustment is needed\r\n\t\t\t\t\t\t\t\tif (subtract && (matches = rcssNum.exec(value)) &&\r\n\t\t\t\t\t\t\t\t\t(matches[3] || \"px\") !== \"px\") {\r\n\r\n\t\t\t\t\t\t\t\t\telem.style[dimension] = value;\r\n\t\t\t\t\t\t\t\t\tvalue = jQuery.css(elem, dimension);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn setPositiveNumber(elem, value, subtract);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft,\r\n\t\t\t\t\t\tfunction (elem, computed) {\r\n\t\t\t\t\t\t\tif (computed) {\r\n\t\t\t\t\t\t\t\treturn (parseFloat(curCSS(elem, \"marginLeft\")) ||\r\n\t\t\t\t\t\t\t\t\telem.getBoundingClientRect().left -\r\n\t\t\t\t\t\t\t\t\tswap(elem, { marginLeft: 0 }, function () {\r\n\t\t\t\t\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t) + \"px\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// These hooks are used by animate to expand properties\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\tmargin: \"\",\r\n\t\t\t\t\t\tpadding: \"\",\r\n\t\t\t\t\t\tborder: \"Width\"\r\n\t\t\t\t\t}, function (prefix, suffix) {\r\n\t\t\t\t\t\tjQuery.cssHooks[prefix + suffix] = {\r\n\t\t\t\t\t\t\texpand: function (value) {\r\n\t\t\t\t\t\t\t\tvar i = 0,\r\n\t\t\t\t\t\t\t\t\texpanded = {},\r\n\r\n\t\t\t\t\t\t\t\t\t// Assumes a single number if not a string\r\n\t\t\t\t\t\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [value];\r\n\r\n\t\t\t\t\t\t\t\tfor (; i < 4; i++) {\r\n\t\t\t\t\t\t\t\t\texpanded[prefix + cssExpand[i] + suffix] =\r\n\t\t\t\t\t\t\t\t\t\tparts[i] || parts[i - 2] || parts[0];\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn expanded;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (prefix !== \"margin\") {\r\n\t\t\t\t\t\t\tjQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tcss: function (name, value) {\r\n\t\t\t\t\t\t\treturn access(this, function (elem, name, value) {\r\n\t\t\t\t\t\t\t\tvar styles, len,\r\n\t\t\t\t\t\t\t\t\tmap = {},\r\n\t\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\t\tif (Array.isArray(name)) {\r\n\t\t\t\t\t\t\t\t\tstyles = getStyles(elem);\r\n\t\t\t\t\t\t\t\t\tlen = name.length;\r\n\r\n\t\t\t\t\t\t\t\t\tfor (; i < len; i++) {\r\n\t\t\t\t\t\t\t\t\t\tmap[name[i]] = jQuery.css(elem, name[i], false, styles);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn map;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn value !== undefined ?\r\n\t\t\t\t\t\t\t\t\tjQuery.style(elem, name, value) :\r\n\t\t\t\t\t\t\t\t\tjQuery.css(elem, name);\r\n\t\t\t\t\t\t\t}, name, value, arguments.length > 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tfunction Tween(elem, options, prop, end, easing) {\r\n\t\t\t\t\t\treturn new Tween.prototype.init(elem, options, prop, end, easing);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tjQuery.Tween = Tween;\r\n\r\n\t\t\t\t\tTween.prototype = {\r\n\t\t\t\t\t\tconstructor: Tween,\r\n\t\t\t\t\t\tinit: function (elem, options, prop, end, easing, unit) {\r\n\t\t\t\t\t\t\tthis.elem = elem;\r\n\t\t\t\t\t\t\tthis.prop = prop;\r\n\t\t\t\t\t\t\tthis.easing = easing || jQuery.easing._default;\r\n\t\t\t\t\t\t\tthis.options = options;\r\n\t\t\t\t\t\t\tthis.start = this.now = this.cur();\r\n\t\t\t\t\t\t\tthis.end = end;\r\n\t\t\t\t\t\t\tthis.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcur: function () {\r\n\t\t\t\t\t\t\tvar hooks = Tween.propHooks[this.prop];\r\n\r\n\t\t\t\t\t\t\treturn hooks && hooks.get ?\r\n\t\t\t\t\t\t\t\thooks.get(this) :\r\n\t\t\t\t\t\t\t\tTween.propHooks._default.get(this);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\trun: function (percent) {\r\n\t\t\t\t\t\t\tvar eased,\r\n\t\t\t\t\t\t\t\thooks = Tween.propHooks[this.prop];\r\n\r\n\t\t\t\t\t\t\tif (this.options.duration) {\r\n\t\t\t\t\t\t\t\tthis.pos = eased = jQuery.easing[this.easing](\r\n\t\t\t\t\t\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.pos = eased = percent;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.now = (this.end - this.start) * eased + this.start;\r\n\r\n\t\t\t\t\t\t\tif (this.options.step) {\r\n\t\t\t\t\t\t\t\tthis.options.step.call(this.elem, this.now, this);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (hooks && hooks.set) {\r\n\t\t\t\t\t\t\t\thooks.set(this);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tTween.propHooks._default.set(this);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tTween.prototype.init.prototype = Tween.prototype;\r\n\r\n\t\t\t\t\tTween.propHooks = {\r\n\t\t\t\t\t\t_default: {\r\n\t\t\t\t\t\t\tget: function (tween) {\r\n\t\t\t\t\t\t\t\tvar result;\r\n\r\n\t\t\t\t\t\t\t\t// Use a property on the element directly when it is not a DOM element,\r\n\t\t\t\t\t\t\t\t// or when there is no matching style property that exists.\r\n\t\t\t\t\t\t\t\tif (tween.elem.nodeType !== 1 ||\r\n\t\t\t\t\t\t\t\t\ttween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\r\n\t\t\t\t\t\t\t\t\treturn tween.elem[tween.prop];\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\r\n\t\t\t\t\t\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\r\n\t\t\t\t\t\t\t\t// Simple values such as \"10px\" are parsed to Float;\r\n\t\t\t\t\t\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\r\n\t\t\t\t\t\t\t\tresult = jQuery.css(tween.elem, tween.prop, \"\");\r\n\r\n\t\t\t\t\t\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\r\n\t\t\t\t\t\t\t\treturn !result || result === \"auto\" ? 0 : result;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tset: function (tween) {\r\n\r\n\t\t\t\t\t\t\t\t// Use step hook for back compat.\r\n\t\t\t\t\t\t\t\t// Use cssHook if its there.\r\n\t\t\t\t\t\t\t\t// Use .style if available and use plain properties where available.\r\n\t\t\t\t\t\t\t\tif (jQuery.fx.step[tween.prop]) {\r\n\t\t\t\t\t\t\t\t\tjQuery.fx.step[tween.prop](tween);\r\n\t\t\t\t\t\t\t\t} else if (tween.elem.nodeType === 1 && (\r\n\t\t\t\t\t\t\t\t\tjQuery.cssHooks[tween.prop] ||\r\n\t\t\t\t\t\t\t\t\ttween.elem.style[finalPropName(tween.prop)] != null)) {\r\n\t\t\t\t\t\t\t\t\tjQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttween.elem[tween.prop] = tween.now;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t// Panic based approach to setting things on disconnected nodes\r\n\t\t\t\t\tTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\r\n\t\t\t\t\t\tset: function (tween) {\r\n\t\t\t\t\t\t\tif (tween.elem.nodeType && tween.elem.parentNode) {\r\n\t\t\t\t\t\t\t\ttween.elem[tween.prop] = tween.now;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.easing = {\r\n\t\t\t\t\t\tlinear: function (p) {\r\n\t\t\t\t\t\t\treturn p;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tswing: function (p) {\r\n\t\t\t\t\t\t\treturn 0.5 - Math.cos(p * Math.PI) / 2;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t_default: \"swing\"\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fx = Tween.prototype.init;\r\n\r\n\t\t\t\t\t// Back compat <1.8 extension point\r\n\t\t\t\t\tjQuery.fx.step = {};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tfxNow, inProgress,\r\n\t\t\t\t\t\trfxtypes = /^(?:toggle|show|hide)$/,\r\n\t\t\t\t\t\trrun = /queueHooks$/;\r\n\r\n\t\t\t\t\tfunction schedule() {\r\n\t\t\t\t\t\tif (inProgress) {\r\n\t\t\t\t\t\t\tif (document.hidden === false && window.requestAnimationFrame) {\r\n\t\t\t\t\t\t\t\twindow.requestAnimationFrame(schedule);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twindow.setTimeout(schedule, jQuery.fx.interval);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tjQuery.fx.tick();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Animations created synchronously will run synchronously\r\n\t\t\t\t\tfunction createFxNow() {\r\n\t\t\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\t\t\tfxNow = undefined;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn (fxNow = Date.now());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Generate parameters to create a standard animation\r\n\t\t\t\t\tfunction genFx(type, includeWidth) {\r\n\t\t\t\t\t\tvar which,\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\tattrs = { height: type };\r\n\r\n\t\t\t\t\t\t// If we include width, step value is 1 to do all cssExpand values,\r\n\t\t\t\t\t\t// otherwise step value is 2 to skip over Left and Right\r\n\t\t\t\t\t\tincludeWidth = includeWidth ? 1 : 0;\r\n\t\t\t\t\t\tfor (; i < 4; i += 2 - includeWidth) {\r\n\t\t\t\t\t\t\twhich = cssExpand[i];\r\n\t\t\t\t\t\t\tattrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (includeWidth) {\r\n\t\t\t\t\t\t\tattrs.opacity = attrs.width = type;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn attrs;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction createTween(value, prop, animation) {\r\n\t\t\t\t\t\tvar tween,\r\n\t\t\t\t\t\t\tcollection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\r\n\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\tlength = collection.length;\r\n\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\tif ((tween = collection[index].call(animation, prop, value))) {\r\n\r\n\t\t\t\t\t\t\t\t// We're done with this property\r\n\t\t\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction defaultPrefilter(elem, props, opts) {\r\n\t\t\t\t\t\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\r\n\t\t\t\t\t\t\tisBox = \"width\" in props || \"height\" in props,\r\n\t\t\t\t\t\t\tanim = this,\r\n\t\t\t\t\t\t\torig = {},\r\n\t\t\t\t\t\t\tstyle = elem.style,\r\n\t\t\t\t\t\t\thidden = elem.nodeType && isHiddenWithinTree(elem),\r\n\t\t\t\t\t\t\tdataShow = dataPriv.get(elem, \"fxshow\");\r\n\r\n\t\t\t\t\t\t// Queue-skipping animations hijack the fx hooks\r\n\t\t\t\t\t\tif (!opts.queue) {\r\n\t\t\t\t\t\t\thooks = jQuery._queueHooks(elem, \"fx\");\r\n\t\t\t\t\t\t\tif (hooks.unqueued == null) {\r\n\t\t\t\t\t\t\t\thooks.unqueued = 0;\r\n\t\t\t\t\t\t\t\toldfire = hooks.empty.fire;\r\n\t\t\t\t\t\t\t\thooks.empty.fire = function () {\r\n\t\t\t\t\t\t\t\t\tif (!hooks.unqueued) {\r\n\t\t\t\t\t\t\t\t\t\toldfire();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\thooks.unqueued++;\r\n\r\n\t\t\t\t\t\t\tanim.always(function () {\r\n\r\n\t\t\t\t\t\t\t\t// Ensure the complete handler is called before this completes\r\n\t\t\t\t\t\t\t\tanim.always(function () {\r\n\t\t\t\t\t\t\t\t\thooks.unqueued--;\r\n\t\t\t\t\t\t\t\t\tif (!jQuery.queue(elem, \"fx\").length) {\r\n\t\t\t\t\t\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Detect show/hide animations\r\n\t\t\t\t\t\tfor (prop in props) {\r\n\t\t\t\t\t\t\tvalue = props[prop];\r\n\t\t\t\t\t\t\tif (rfxtypes.test(value)) {\r\n\t\t\t\t\t\t\t\tdelete props[prop];\r\n\t\t\t\t\t\t\t\ttoggle = toggle || value === \"toggle\";\r\n\t\t\t\t\t\t\t\tif (value === (hidden ? \"hide\" : \"show\")) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Pretend to be hidden if this is a \"show\" and\r\n\t\t\t\t\t\t\t\t\t// there is still data from a stopped show/hide\r\n\t\t\t\t\t\t\t\t\tif (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\thidden = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Ignore all other no-op show/hide data\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\torig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Bail out if this is a no-op like .hide().hide()\r\n\t\t\t\t\t\tpropTween = !jQuery.isEmptyObject(props);\r\n\t\t\t\t\t\tif (!propTween && jQuery.isEmptyObject(orig)) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Restrict \"overflow\" and \"display\" styles during box animations\r\n\t\t\t\t\t\tif (isBox && elem.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t\t\t\t\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\r\n\t\t\t\t\t\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\r\n\t\t\t\t\t\t\t// the overflowX value there.\r\n\t\t\t\t\t\t\topts.overflow = [style.overflow, style.overflowX, style.overflowY];\r\n\r\n\t\t\t\t\t\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\r\n\t\t\t\t\t\t\trestoreDisplay = dataShow && dataShow.display;\r\n\t\t\t\t\t\t\tif (restoreDisplay == null) {\r\n\t\t\t\t\t\t\t\trestoreDisplay = dataPriv.get(elem, \"display\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdisplay = jQuery.css(elem, \"display\");\r\n\t\t\t\t\t\t\tif (display === \"none\") {\r\n\t\t\t\t\t\t\t\tif (restoreDisplay) {\r\n\t\t\t\t\t\t\t\t\tdisplay = restoreDisplay;\r\n\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\r\n\t\t\t\t\t\t\t\t\tshowHide([elem], true);\r\n\t\t\t\t\t\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\r\n\t\t\t\t\t\t\t\t\tdisplay = jQuery.css(elem, \"display\");\r\n\t\t\t\t\t\t\t\t\tshowHide([elem]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Animate inline elements as inline-block\r\n\t\t\t\t\t\t\tif (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\r\n\t\t\t\t\t\t\t\tif (jQuery.css(elem, \"float\") === \"none\") {\r\n\r\n\t\t\t\t\t\t\t\t\t// Restore the original display value at the end of pure show/hide animations\r\n\t\t\t\t\t\t\t\t\tif (!propTween) {\r\n\t\t\t\t\t\t\t\t\t\tanim.done(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tstyle.display = restoreDisplay;\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tif (restoreDisplay == null) {\r\n\t\t\t\t\t\t\t\t\t\t\tdisplay = style.display;\r\n\t\t\t\t\t\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tstyle.display = \"inline-block\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (opts.overflow) {\r\n\t\t\t\t\t\t\tstyle.overflow = \"hidden\";\r\n\t\t\t\t\t\t\tanim.always(function () {\r\n\t\t\t\t\t\t\t\tstyle.overflow = opts.overflow[0];\r\n\t\t\t\t\t\t\t\tstyle.overflowX = opts.overflow[1];\r\n\t\t\t\t\t\t\t\tstyle.overflowY = opts.overflow[2];\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Implement show/hide animations\r\n\t\t\t\t\t\tpropTween = false;\r\n\t\t\t\t\t\tfor (prop in orig) {\r\n\r\n\t\t\t\t\t\t\t// General show/hide setup for this element animation\r\n\t\t\t\t\t\t\tif (!propTween) {\r\n\t\t\t\t\t\t\t\tif (dataShow) {\r\n\t\t\t\t\t\t\t\t\tif (\"hidden\" in dataShow) {\r\n\t\t\t\t\t\t\t\t\t\thidden = dataShow.hidden;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tdataShow = dataPriv.access(elem, \"fxshow\", { display: restoreDisplay });\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\r\n\t\t\t\t\t\t\t\tif (toggle) {\r\n\t\t\t\t\t\t\t\t\tdataShow.hidden = !hidden;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Show elements before animating them\r\n\t\t\t\t\t\t\t\tif (hidden) {\r\n\t\t\t\t\t\t\t\t\tshowHide([elem], true);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* eslint-disable no-loop-func */\r\n\r\n\t\t\t\t\t\t\t\tanim.done(function () {\r\n\r\n\t\t\t\t\t\t\t\t\t/* eslint-enable no-loop-func */\r\n\r\n\t\t\t\t\t\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\r\n\t\t\t\t\t\t\t\t\tif (!hidden) {\r\n\t\t\t\t\t\t\t\t\t\tshowHide([elem]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tdataPriv.remove(elem, \"fxshow\");\r\n\t\t\t\t\t\t\t\t\tfor (prop in orig) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.style(elem, prop, orig[prop]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Per-property setup\r\n\t\t\t\t\t\t\tpropTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\r\n\t\t\t\t\t\t\tif (!(prop in dataShow)) {\r\n\t\t\t\t\t\t\t\tdataShow[prop] = propTween.start;\r\n\t\t\t\t\t\t\t\tif (hidden) {\r\n\t\t\t\t\t\t\t\t\tpropTween.end = propTween.start;\r\n\t\t\t\t\t\t\t\t\tpropTween.start = 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction propFilter(props, specialEasing) {\r\n\t\t\t\t\t\tvar index, name, easing, value, hooks;\r\n\r\n\t\t\t\t\t\t// camelCase, specialEasing and expand cssHook pass\r\n\t\t\t\t\t\tfor (index in props) {\r\n\t\t\t\t\t\t\tname = camelCase(index);\r\n\t\t\t\t\t\t\teasing = specialEasing[name];\r\n\t\t\t\t\t\t\tvalue = props[index];\r\n\t\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\t\teasing = value[1];\r\n\t\t\t\t\t\t\t\tvalue = props[index] = value[0];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (index !== name) {\r\n\t\t\t\t\t\t\t\tprops[name] = value;\r\n\t\t\t\t\t\t\t\tdelete props[index];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\thooks = jQuery.cssHooks[name];\r\n\t\t\t\t\t\t\tif (hooks && \"expand\" in hooks) {\r\n\t\t\t\t\t\t\t\tvalue = hooks.expand(value);\r\n\t\t\t\t\t\t\t\tdelete props[name];\r\n\r\n\t\t\t\t\t\t\t\t// Not quite $.extend, this won't overwrite existing keys.\r\n\t\t\t\t\t\t\t\t// Reusing 'index' because we have the correct \"name\"\r\n\t\t\t\t\t\t\t\tfor (index in value) {\r\n\t\t\t\t\t\t\t\t\tif (!(index in props)) {\r\n\t\t\t\t\t\t\t\t\t\tprops[index] = value[index];\r\n\t\t\t\t\t\t\t\t\t\tspecialEasing[index] = easing;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tspecialEasing[name] = easing;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction Animation(elem, properties, options) {\r\n\t\t\t\t\t\tvar result,\r\n\t\t\t\t\t\t\tstopped,\r\n\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\tlength = Animation.prefilters.length,\r\n\t\t\t\t\t\t\tdeferred = jQuery.Deferred().always(function () {\r\n\r\n\t\t\t\t\t\t\t\t// Don't match elem in the :animated selector\r\n\t\t\t\t\t\t\t\tdelete tick.elem;\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\ttick = function () {\r\n\t\t\t\t\t\t\t\tif (stopped) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar currentTime = fxNow || createFxNow(),\r\n\t\t\t\t\t\t\t\t\tremaining = Math.max(0, animation.startTime + animation.duration - currentTime),\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Android 2.3 only\r\n\t\t\t\t\t\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\r\n\t\t\t\t\t\t\t\t\ttemp = remaining / animation.duration || 0,\r\n\t\t\t\t\t\t\t\t\tpercent = 1 - temp,\r\n\t\t\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\t\t\tlength = animation.tweens.length;\r\n\r\n\t\t\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\t\t\tanimation.tweens[index].run(percent);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, percent, remaining]);\r\n\r\n\t\t\t\t\t\t\t\t// If there's more to do, yield\r\n\t\t\t\t\t\t\t\tif (percent < 1 && length) {\r\n\t\t\t\t\t\t\t\t\treturn remaining;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If this was an empty animation, synthesize a final progress notification\r\n\t\t\t\t\t\t\t\tif (!length) {\r\n\t\t\t\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, 1, 0]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Resolve the animation and report its conclusion\r\n\t\t\t\t\t\t\t\tdeferred.resolveWith(elem, [animation]);\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tanimation = deferred.promise({\r\n\t\t\t\t\t\t\t\telem: elem,\r\n\t\t\t\t\t\t\t\tprops: jQuery.extend({}, properties),\r\n\t\t\t\t\t\t\t\topts: jQuery.extend(true, {\r\n\t\t\t\t\t\t\t\t\tspecialEasing: {},\r\n\t\t\t\t\t\t\t\t\teasing: jQuery.easing._default\r\n\t\t\t\t\t\t\t\t}, options),\r\n\t\t\t\t\t\t\t\toriginalProperties: properties,\r\n\t\t\t\t\t\t\t\toriginalOptions: options,\r\n\t\t\t\t\t\t\t\tstartTime: fxNow || createFxNow(),\r\n\t\t\t\t\t\t\t\tduration: options.duration,\r\n\t\t\t\t\t\t\t\ttweens: [],\r\n\t\t\t\t\t\t\t\tcreateTween: function (prop, end) {\r\n\t\t\t\t\t\t\t\t\tvar tween = jQuery.Tween(elem, animation.opts, prop, end,\r\n\t\t\t\t\t\t\t\t\t\tanimation.opts.specialEasing[prop] || animation.opts.easing);\r\n\t\t\t\t\t\t\t\t\tanimation.tweens.push(tween);\r\n\t\t\t\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tstop: function (gotoEnd) {\r\n\t\t\t\t\t\t\t\t\tvar index = 0,\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If we are going to the end, we want to run all the tweens\r\n\t\t\t\t\t\t\t\t\t\t// otherwise we skip this part\r\n\t\t\t\t\t\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\r\n\t\t\t\t\t\t\t\t\tif (stopped) {\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tstopped = true;\r\n\t\t\t\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\t\t\t\tanimation.tweens[index].run(1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Resolve when we played the last frame; otherwise, reject\r\n\t\t\t\t\t\t\t\t\tif (gotoEnd) {\r\n\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith(elem, [animation, 1, 0]);\r\n\t\t\t\t\t\t\t\t\t\tdeferred.resolveWith(elem, [animation, gotoEnd]);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith(elem, [animation, gotoEnd]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tprops = animation.props;\r\n\r\n\t\t\t\t\t\tpropFilter(props, animation.opts.specialEasing);\r\n\r\n\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\tresult = Animation.prefilters[index].call(animation, elem, props, animation.opts);\r\n\t\t\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\t\t\tif (isFunction(result.stop)) {\r\n\t\t\t\t\t\t\t\t\tjQuery._queueHooks(animation.elem, animation.opts.queue).stop =\r\n\t\t\t\t\t\t\t\t\t\tresult.stop.bind(result);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tjQuery.map(props, createTween, animation);\r\n\r\n\t\t\t\t\t\tif (isFunction(animation.opts.start)) {\r\n\t\t\t\t\t\t\tanimation.opts.start.call(elem, animation);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Attach callbacks from options\r\n\t\t\t\t\t\tanimation\r\n\t\t\t\t\t\t\t.progress(animation.opts.progress)\r\n\t\t\t\t\t\t\t.done(animation.opts.done, animation.opts.complete)\r\n\t\t\t\t\t\t\t.fail(animation.opts.fail)\r\n\t\t\t\t\t\t\t.always(animation.opts.always);\r\n\r\n\t\t\t\t\t\tjQuery.fx.timer(\r\n\t\t\t\t\t\t\tjQuery.extend(tick, {\r\n\t\t\t\t\t\t\t\telem: elem,\r\n\t\t\t\t\t\t\t\tanim: animation,\r\n\t\t\t\t\t\t\t\tqueue: animation.opts.queue\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\treturn animation;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.Animation = jQuery.extend(Animation, {\r\n\r\n\t\t\t\t\t\ttweeners: {\r\n\t\t\t\t\t\t\t\"*\": [function (prop, value) {\r\n\t\t\t\t\t\t\t\tvar tween = this.createTween(prop, value);\r\n\t\t\t\t\t\t\t\tadjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\r\n\t\t\t\t\t\t\t\treturn tween;\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\ttweener: function (props, callback) {\r\n\t\t\t\t\t\t\tif (isFunction(props)) {\r\n\t\t\t\t\t\t\t\tcallback = props;\r\n\t\t\t\t\t\t\t\tprops = [\"*\"];\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tprops = props.match(rnothtmlwhite);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar prop,\r\n\t\t\t\t\t\t\t\tindex = 0,\r\n\t\t\t\t\t\t\t\tlength = props.length;\r\n\r\n\t\t\t\t\t\t\tfor (; index < length; index++) {\r\n\t\t\t\t\t\t\t\tprop = props[index];\r\n\t\t\t\t\t\t\t\tAnimation.tweeners[prop] = Animation.tweeners[prop] || [];\r\n\t\t\t\t\t\t\t\tAnimation.tweeners[prop].unshift(callback);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tprefilters: [defaultPrefilter],\r\n\r\n\t\t\t\t\t\tprefilter: function (callback, prepend) {\r\n\t\t\t\t\t\t\tif (prepend) {\r\n\t\t\t\t\t\t\t\tAnimation.prefilters.unshift(callback);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tAnimation.prefilters.push(callback);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.speed = function (speed, easing, fn) {\r\n\t\t\t\t\t\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\r\n\t\t\t\t\t\t\tcomplete: fn || !fn && easing ||\r\n\t\t\t\t\t\t\t\tisFunction(speed) && speed,\r\n\t\t\t\t\t\t\tduration: speed,\r\n\t\t\t\t\t\t\teasing: fn && easing || easing && !isFunction(easing) && easing\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Go to the end state if fx are off\r\n\t\t\t\t\t\tif (jQuery.fx.off) {\r\n\t\t\t\t\t\t\topt.duration = 0;\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (typeof opt.duration !== \"number\") {\r\n\t\t\t\t\t\t\t\tif (opt.duration in jQuery.fx.speeds) {\r\n\t\t\t\t\t\t\t\t\topt.duration = jQuery.fx.speeds[opt.duration];\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\topt.duration = jQuery.fx.speeds._default;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Normalize opt.queue - true/undefined/null -> \"fx\"\r\n\t\t\t\t\t\tif (opt.queue == null || opt.queue === true) {\r\n\t\t\t\t\t\t\topt.queue = \"fx\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Queueing\r\n\t\t\t\t\t\topt.old = opt.complete;\r\n\r\n\t\t\t\t\t\topt.complete = function () {\r\n\t\t\t\t\t\t\tif (isFunction(opt.old)) {\r\n\t\t\t\t\t\t\t\topt.old.call(this);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (opt.queue) {\r\n\t\t\t\t\t\t\t\tjQuery.dequeue(this, opt.queue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn opt;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tfadeTo: function (speed, to, easing, callback) {\r\n\r\n\t\t\t\t\t\t\t// Show any hidden elements after setting opacity to 0\r\n\t\t\t\t\t\t\treturn this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\r\n\r\n\t\t\t\t\t\t\t\t// Animate to the value specified\r\n\t\t\t\t\t\t\t\t.end().animate({ opacity: to }, speed, easing, callback);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tanimate: function (prop, speed, easing, callback) {\r\n\t\t\t\t\t\t\tvar empty = jQuery.isEmptyObject(prop),\r\n\t\t\t\t\t\t\t\toptall = jQuery.speed(speed, easing, callback),\r\n\t\t\t\t\t\t\t\tdoAnimation = function () {\r\n\r\n\t\t\t\t\t\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\r\n\t\t\t\t\t\t\t\t\tvar anim = Animation(this, jQuery.extend({}, prop), optall);\r\n\r\n\t\t\t\t\t\t\t\t\t// Empty animations, or finishing resolves immediately\r\n\t\t\t\t\t\t\t\t\tif (empty || dataPriv.get(this, \"finish\")) {\r\n\t\t\t\t\t\t\t\t\t\tanim.stop(true);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tdoAnimation.finish = doAnimation;\r\n\r\n\t\t\t\t\t\t\treturn empty || optall.queue === false ?\r\n\t\t\t\t\t\t\t\tthis.each(doAnimation) :\r\n\t\t\t\t\t\t\t\tthis.queue(optall.queue, doAnimation);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstop: function (type, clearQueue, gotoEnd) {\r\n\t\t\t\t\t\t\tvar stopQueue = function (hooks) {\r\n\t\t\t\t\t\t\t\tvar stop = hooks.stop;\r\n\t\t\t\t\t\t\t\tdelete hooks.stop;\r\n\t\t\t\t\t\t\t\tstop(gotoEnd);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (typeof type !== \"string\") {\r\n\t\t\t\t\t\t\t\tgotoEnd = clearQueue;\r\n\t\t\t\t\t\t\t\tclearQueue = type;\r\n\t\t\t\t\t\t\t\ttype = undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (clearQueue) {\r\n\t\t\t\t\t\t\t\tthis.queue(type || \"fx\", []);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tvar dequeue = true,\r\n\t\t\t\t\t\t\t\t\tindex = type != null && type + \"queueHooks\",\r\n\t\t\t\t\t\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\t\t\t\t\t\tdata = dataPriv.get(this);\r\n\r\n\t\t\t\t\t\t\t\tif (index) {\r\n\t\t\t\t\t\t\t\t\tif (data[index] && data[index].stop) {\r\n\t\t\t\t\t\t\t\t\t\tstopQueue(data[index]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tfor (index in data) {\r\n\t\t\t\t\t\t\t\t\t\tif (data[index] && data[index].stop && rrun.test(index)) {\r\n\t\t\t\t\t\t\t\t\t\t\tstopQueue(data[index]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfor (index = timers.length; index--;) {\r\n\t\t\t\t\t\t\t\t\tif (timers[index].elem === this &&\r\n\t\t\t\t\t\t\t\t\t\t(type == null || timers[index].queue === type)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\ttimers[index].anim.stop(gotoEnd);\r\n\t\t\t\t\t\t\t\t\t\tdequeue = false;\r\n\t\t\t\t\t\t\t\t\t\ttimers.splice(index, 1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Start the next in the queue if the last step wasn't forced.\r\n\t\t\t\t\t\t\t\t// Timers currently will call their complete callbacks, which\r\n\t\t\t\t\t\t\t\t// will dequeue but only if they were gotoEnd.\r\n\t\t\t\t\t\t\t\tif (dequeue || !gotoEnd) {\r\n\t\t\t\t\t\t\t\t\tjQuery.dequeue(this, type);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tfinish: function (type) {\r\n\t\t\t\t\t\t\tif (type !== false) {\r\n\t\t\t\t\t\t\t\ttype = type || \"fx\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tvar index,\r\n\t\t\t\t\t\t\t\t\tdata = dataPriv.get(this),\r\n\t\t\t\t\t\t\t\t\tqueue = data[type + \"queue\"],\r\n\t\t\t\t\t\t\t\t\thooks = data[type + \"queueHooks\"],\r\n\t\t\t\t\t\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\t\t\t\t\t\tlength = queue ? queue.length : 0;\r\n\r\n\t\t\t\t\t\t\t\t// Enable finishing flag on private data\r\n\t\t\t\t\t\t\t\tdata.finish = true;\r\n\r\n\t\t\t\t\t\t\t\t// Empty the queue first\r\n\t\t\t\t\t\t\t\tjQuery.queue(this, type, []);\r\n\r\n\t\t\t\t\t\t\t\tif (hooks && hooks.stop) {\r\n\t\t\t\t\t\t\t\t\thooks.stop.call(this, true);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Look for any active animations, and finish them\r\n\t\t\t\t\t\t\t\tfor (index = timers.length; index--;) {\r\n\t\t\t\t\t\t\t\t\tif (timers[index].elem === this && timers[index].queue === type) {\r\n\t\t\t\t\t\t\t\t\t\ttimers[index].anim.stop(true);\r\n\t\t\t\t\t\t\t\t\t\ttimers.splice(index, 1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Look for any animations in the old queue and finish them\r\n\t\t\t\t\t\t\t\tfor (index = 0; index < length; index++) {\r\n\t\t\t\t\t\t\t\t\tif (queue[index] && queue[index].finish) {\r\n\t\t\t\t\t\t\t\t\t\tqueue[index].finish.call(this);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Turn off finishing flag\r\n\t\t\t\t\t\t\t\tdelete data.finish;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\r\n\t\t\t\t\t\tvar cssFn = jQuery.fn[name];\r\n\t\t\t\t\t\tjQuery.fn[name] = function (speed, easing, callback) {\r\n\t\t\t\t\t\t\treturn speed == null || typeof speed === \"boolean\" ?\r\n\t\t\t\t\t\t\t\tcssFn.apply(this, arguments) :\r\n\t\t\t\t\t\t\t\tthis.animate(genFx(name, true), speed, easing, callback);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Generate shortcuts for custom animations\r\n\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\tslideDown: genFx(\"show\"),\r\n\t\t\t\t\t\tslideUp: genFx(\"hide\"),\r\n\t\t\t\t\t\tslideToggle: genFx(\"toggle\"),\r\n\t\t\t\t\t\tfadeIn: { opacity: \"show\" },\r\n\t\t\t\t\t\tfadeOut: { opacity: \"hide\" },\r\n\t\t\t\t\t\tfadeToggle: { opacity: \"toggle\" }\r\n\t\t\t\t\t}, function (name, props) {\r\n\t\t\t\t\t\tjQuery.fn[name] = function (speed, easing, callback) {\r\n\t\t\t\t\t\t\treturn this.animate(props, speed, easing, callback);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.timers = [];\r\n\t\t\t\t\tjQuery.fx.tick = function () {\r\n\t\t\t\t\t\tvar timer,\r\n\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\ttimers = jQuery.timers;\r\n\r\n\t\t\t\t\t\tfxNow = Date.now();\r\n\r\n\t\t\t\t\t\tfor (; i < timers.length; i++) {\r\n\t\t\t\t\t\t\ttimer = timers[i];\r\n\r\n\t\t\t\t\t\t\t// Run the timer and safely remove it when done (allowing for external removal)\r\n\t\t\t\t\t\t\tif (!timer() && timers[i] === timer) {\r\n\t\t\t\t\t\t\t\ttimers.splice(i--, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!timers.length) {\r\n\t\t\t\t\t\t\tjQuery.fx.stop();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfxNow = undefined;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fx.timer = function (timer) {\r\n\t\t\t\t\t\tjQuery.timers.push(timer);\r\n\t\t\t\t\t\tjQuery.fx.start();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fx.interval = 13;\r\n\t\t\t\t\tjQuery.fx.start = function () {\r\n\t\t\t\t\t\tif (inProgress) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tinProgress = true;\r\n\t\t\t\t\t\tschedule();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fx.stop = function () {\r\n\t\t\t\t\t\tinProgress = null;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fx.speeds = {\r\n\t\t\t\t\t\tslow: 600,\r\n\t\t\t\t\t\tfast: 200,\r\n\r\n\t\t\t\t\t\t// Default speed\r\n\t\t\t\t\t\t_default: 400\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t// Based off of the plugin by Clint Helfers, with permission.\r\n\t\t\t\t\t// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\r\n\t\t\t\t\tjQuery.fn.delay = function (time, type) {\r\n\t\t\t\t\t\ttime = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\r\n\t\t\t\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\t\t\t\treturn this.queue(type, function (next, hooks) {\r\n\t\t\t\t\t\t\tvar timeout = window.setTimeout(next, time);\r\n\t\t\t\t\t\t\thooks.stop = function () {\r\n\t\t\t\t\t\t\t\twindow.clearTimeout(timeout);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t(function () {\r\n\t\t\t\t\t\tvar input = document.createElement(\"input\"),\r\n\t\t\t\t\t\t\tselect = document.createElement(\"select\"),\r\n\t\t\t\t\t\t\topt = select.appendChild(document.createElement(\"option\"));\r\n\r\n\t\t\t\t\t\tinput.type = \"checkbox\";\r\n\r\n\t\t\t\t\t\t// Support: Android <=4.3 only\r\n\t\t\t\t\t\t// Default value for a checkbox should be \"on\"\r\n\t\t\t\t\t\tsupport.checkOn = input.value !== \"\";\r\n\r\n\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t// Must access selectedIndex to make default options select\r\n\t\t\t\t\t\tsupport.optSelected = opt.selected;\r\n\r\n\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t// An input loses its value after becoming a radio\r\n\t\t\t\t\t\tinput = document.createElement(\"input\");\r\n\t\t\t\t\t\tinput.value = \"t\";\r\n\t\t\t\t\t\tinput.type = \"radio\";\r\n\t\t\t\t\t\tsupport.radioValue = input.value === \"t\";\r\n\t\t\t\t\t})();\r\n\r\n\r\n\t\t\t\t\tvar boolHook,\r\n\t\t\t\t\t\tattrHandle = jQuery.expr.attrHandle;\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tattr: function (name, value) {\r\n\t\t\t\t\t\t\treturn access(this, jQuery.attr, name, value, arguments.length > 1);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveAttr: function (name) {\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tjQuery.removeAttr(this, name);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\tattr: function (elem, name, value) {\r\n\t\t\t\t\t\t\tvar ret, hooks,\r\n\t\t\t\t\t\t\t\tnType = elem.nodeType;\r\n\r\n\t\t\t\t\t\t\t// Don't get/set attributes on text, comment and attribute nodes\r\n\t\t\t\t\t\t\tif (nType === 3 || nType === 8 || nType === 2) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fallback to prop when attributes are not supported\r\n\t\t\t\t\t\t\tif (typeof elem.getAttribute === \"undefined\") {\r\n\t\t\t\t\t\t\t\treturn jQuery.prop(elem, name, value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Attribute hooks are determined by the lowercase version\r\n\t\t\t\t\t\t\t// Grab necessary hook if one is defined\r\n\t\t\t\t\t\t\tif (nType !== 1 || !jQuery.isXMLDoc(elem)) {\r\n\t\t\t\t\t\t\t\thooks = jQuery.attrHooks[name.toLowerCase()] ||\r\n\t\t\t\t\t\t\t\t\t(jQuery.expr.match.bool.test(name) ? boolHook : undefined);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\t\t\tif (value === null) {\r\n\t\t\t\t\t\t\t\t\tjQuery.removeAttr(elem, name);\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (hooks && \"set\" in hooks &&\r\n\t\t\t\t\t\t\t\t\t(ret = hooks.set(elem, value, name)) !== undefined) {\r\n\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telem.setAttribute(name, value + \"\");\r\n\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tret = jQuery.find.attr(elem, name);\r\n\r\n\t\t\t\t\t\t\t// Non-existent attributes return null, we normalize to undefined\r\n\t\t\t\t\t\t\treturn ret == null ? undefined : ret;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tattrHooks: {\r\n\t\t\t\t\t\t\ttype: {\r\n\t\t\t\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\t\t\t\tif (!support.radioValue && value === \"radio\" &&\r\n\t\t\t\t\t\t\t\t\t\tnodeName(elem, \"input\")) {\r\n\t\t\t\t\t\t\t\t\t\tvar val = elem.value;\r\n\t\t\t\t\t\t\t\t\t\telem.setAttribute(\"type\", value);\r\n\t\t\t\t\t\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\t\t\t\t\t\telem.value = val;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveAttr: function (elem, value) {\r\n\t\t\t\t\t\t\tvar name,\r\n\t\t\t\t\t\t\t\ti = 0,\r\n\r\n\t\t\t\t\t\t\t\t// Attribute names can contain non-HTML whitespace characters\r\n\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\r\n\t\t\t\t\t\t\t\tattrNames = value && value.match(rnothtmlwhite);\r\n\r\n\t\t\t\t\t\t\tif (attrNames && elem.nodeType === 1) {\r\n\t\t\t\t\t\t\t\twhile ((name = attrNames[i++])) {\r\n\t\t\t\t\t\t\t\t\telem.removeAttribute(name);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Hooks for boolean attributes\r\n\t\t\t\t\tboolHook = {\r\n\t\t\t\t\t\tset: function (elem, value, name) {\r\n\t\t\t\t\t\t\tif (value === false) {\r\n\r\n\t\t\t\t\t\t\t\t// Remove boolean attributes when set to false\r\n\t\t\t\t\t\t\t\tjQuery.removeAttr(elem, name);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telem.setAttribute(name, name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\r\n\t\t\t\t\t\tvar getter = attrHandle[name] || jQuery.find.attr;\r\n\r\n\t\t\t\t\t\tattrHandle[name] = function (elem, name, isXML) {\r\n\t\t\t\t\t\t\tvar ret, handle,\r\n\t\t\t\t\t\t\t\tlowercaseName = name.toLowerCase();\r\n\r\n\t\t\t\t\t\t\tif (!isXML) {\r\n\r\n\t\t\t\t\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\r\n\t\t\t\t\t\t\t\thandle = attrHandle[lowercaseName];\r\n\t\t\t\t\t\t\t\tattrHandle[lowercaseName] = ret;\r\n\t\t\t\t\t\t\t\tret = getter(elem, name, isXML) != null ?\r\n\t\t\t\t\t\t\t\t\tlowercaseName :\r\n\t\t\t\t\t\t\t\t\tnull;\r\n\t\t\t\t\t\t\t\tattrHandle[lowercaseName] = handle;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar rfocusable = /^(?:input|select|textarea|button)$/i,\r\n\t\t\t\t\t\trclickable = /^(?:a|area)$/i;\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tprop: function (name, value) {\r\n\t\t\t\t\t\t\treturn access(this, jQuery.prop, name, value, arguments.length > 1);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveProp: function (name) {\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tdelete this[jQuery.propFix[name] || name];\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\tprop: function (elem, name, value) {\r\n\t\t\t\t\t\t\tvar ret, hooks,\r\n\t\t\t\t\t\t\t\tnType = elem.nodeType;\r\n\r\n\t\t\t\t\t\t\t// Don't get/set properties on text, comment and attribute nodes\r\n\t\t\t\t\t\t\tif (nType === 3 || nType === 8 || nType === 2) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (nType !== 1 || !jQuery.isXMLDoc(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t// Fix name and attach hooks\r\n\t\t\t\t\t\t\t\tname = jQuery.propFix[name] || name;\r\n\t\t\t\t\t\t\t\thooks = jQuery.propHooks[name];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (value !== undefined) {\r\n\t\t\t\t\t\t\t\tif (hooks && \"set\" in hooks &&\r\n\t\t\t\t\t\t\t\t\t(ret = hooks.set(elem, value, name)) !== undefined) {\r\n\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn (elem[name] = value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\r\n\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn elem[name];\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tpropHooks: {\r\n\t\t\t\t\t\t\ttabIndex: {\r\n\t\t\t\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t\t\t\t\t\t// elem.tabIndex doesn't always return the\r\n\t\t\t\t\t\t\t\t\t// correct value when it hasn't been explicitly set\r\n\t\t\t\t\t\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\r\n\t\t\t\t\t\t\t\t\t// Use proper attribute retrieval(#12072)\r\n\t\t\t\t\t\t\t\t\tvar tabindex = jQuery.find.attr(elem, \"tabindex\");\r\n\r\n\t\t\t\t\t\t\t\t\tif (tabindex) {\r\n\t\t\t\t\t\t\t\t\t\treturn parseInt(tabindex, 10);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\trfocusable.test(elem.nodeName) ||\r\n\t\t\t\t\t\t\t\t\t\trclickable.test(elem.nodeName) &&\r\n\t\t\t\t\t\t\t\t\t\telem.href\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tpropFix: {\r\n\t\t\t\t\t\t\t\"for\": \"htmlFor\",\r\n\t\t\t\t\t\t\t\"class\": \"className\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t// Accessing the selectedIndex property\r\n\t\t\t\t\t// forces the browser to respect setting selected\r\n\t\t\t\t\t// on the option\r\n\t\t\t\t\t// The getter ensures a default option is selected\r\n\t\t\t\t\t// when in an optgroup\r\n\t\t\t\t\t// eslint rule \"no-unused-expressions\" is disabled for this code\r\n\t\t\t\t\t// since it considers such accessions noop\r\n\t\t\t\t\tif (!support.optSelected) {\r\n\t\t\t\t\t\tjQuery.propHooks.selected = {\r\n\t\t\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\t\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\t\t\t\tif (parent && parent.parentNode) {\r\n\t\t\t\t\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tset: function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\t\t\t\t\t\tvar parent = elem.parentNode;\r\n\t\t\t\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\t\t\t\tparent.selectedIndex;\r\n\r\n\t\t\t\t\t\t\t\t\tif (parent.parentNode) {\r\n\t\t\t\t\t\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.each([\r\n\t\t\t\t\t\t\"tabIndex\",\r\n\t\t\t\t\t\t\"readOnly\",\r\n\t\t\t\t\t\t\"maxLength\",\r\n\t\t\t\t\t\t\"cellSpacing\",\r\n\t\t\t\t\t\t\"cellPadding\",\r\n\t\t\t\t\t\t\"rowSpan\",\r\n\t\t\t\t\t\t\"colSpan\",\r\n\t\t\t\t\t\t\"useMap\",\r\n\t\t\t\t\t\t\"frameBorder\",\r\n\t\t\t\t\t\t\"contentEditable\"\r\n\t\t\t\t\t], function () {\r\n\t\t\t\t\t\tjQuery.propFix[this.toLowerCase()] = this;\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Strip and collapse whitespace according to HTML spec\r\n\t\t\t\t\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\r\n\t\t\t\t\tfunction stripAndCollapse(value) {\r\n\t\t\t\t\t\tvar tokens = value.match(rnothtmlwhite) || [];\r\n\t\t\t\t\t\treturn tokens.join(\" \");\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction getClass(elem) {\r\n\t\t\t\t\t\treturn elem.getAttribute && elem.getAttribute(\"class\") || \"\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction classesToArray(value) {\r\n\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (typeof value === \"string\") {\r\n\t\t\t\t\t\t\treturn value.match(rnothtmlwhite) || [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\taddClass: function (value) {\r\n\t\t\t\t\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\t\t\treturn this.each(function (j) {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).addClass(value.call(this, j, getClass(this)));\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tclasses = classesToArray(value);\r\n\r\n\t\t\t\t\t\t\tif (classes.length) {\r\n\t\t\t\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\t\t\t\tcurValue = getClass(elem);\r\n\t\t\t\t\t\t\t\t\tcur = elem.nodeType === 1 && (\" \" + stripAndCollapse(curValue) + \" \");\r\n\r\n\t\t\t\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\t\t\twhile ((clazz = classes[j++])) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (cur.indexOf(\" \" + clazz + \" \") < 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcur += clazz + \" \";\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\t\t\t\t\t\tfinalValue = stripAndCollapse(cur);\r\n\t\t\t\t\t\t\t\t\t\tif (curValue !== finalValue) {\r\n\t\t\t\t\t\t\t\t\t\t\telem.setAttribute(\"class\", finalValue);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tremoveClass: function (value) {\r\n\t\t\t\t\t\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\t\t\treturn this.each(function (j) {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).removeClass(value.call(this, j, getClass(this)));\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\t\t\t\treturn this.attr(\"class\", \"\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tclasses = classesToArray(value);\r\n\r\n\t\t\t\t\t\t\tif (classes.length) {\r\n\t\t\t\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\t\t\t\tcurValue = getClass(elem);\r\n\r\n\t\t\t\t\t\t\t\t\t// This expression is here for better compressibility (see addClass)\r\n\t\t\t\t\t\t\t\t\tcur = elem.nodeType === 1 && (\" \" + stripAndCollapse(curValue) + \" \");\r\n\r\n\t\t\t\t\t\t\t\t\tif (cur) {\r\n\t\t\t\t\t\t\t\t\t\tj = 0;\r\n\t\t\t\t\t\t\t\t\t\twhile ((clazz = classes[j++])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Remove *all* instances\r\n\t\t\t\t\t\t\t\t\t\t\twhile (cur.indexOf(\" \" + clazz + \" \") > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcur = cur.replace(\" \" + clazz + \" \", \" \");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\t\t\t\t\t\tfinalValue = stripAndCollapse(cur);\r\n\t\t\t\t\t\t\t\t\t\tif (curValue !== finalValue) {\r\n\t\t\t\t\t\t\t\t\t\t\telem.setAttribute(\"class\", finalValue);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\ttoggleClass: function (value, stateVal) {\r\n\t\t\t\t\t\t\tvar type = typeof value,\r\n\t\t\t\t\t\t\t\tisValidValue = type === \"string\" || Array.isArray(value);\r\n\r\n\t\t\t\t\t\t\tif (typeof stateVal === \"boolean\" && isValidValue) {\r\n\t\t\t\t\t\t\t\treturn stateVal ? this.addClass(value) : this.removeClass(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isFunction(value)) {\r\n\t\t\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).toggleClass(\r\n\t\t\t\t\t\t\t\t\t\tvalue.call(this, i, getClass(this), stateVal),\r\n\t\t\t\t\t\t\t\t\t\tstateVal\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tvar className, i, self, classNames;\r\n\r\n\t\t\t\t\t\t\t\tif (isValidValue) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Toggle individual class names\r\n\t\t\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\t\t\tself = jQuery(this);\r\n\t\t\t\t\t\t\t\t\tclassNames = classesToArray(value);\r\n\r\n\t\t\t\t\t\t\t\t\twhile ((className = classNames[i++])) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Check each className given, space separated list\r\n\t\t\t\t\t\t\t\t\t\tif (self.hasClass(className)) {\r\n\t\t\t\t\t\t\t\t\t\t\tself.removeClass(className);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tself.addClass(className);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Toggle whole class name\r\n\t\t\t\t\t\t\t\t} else if (value === undefined || type === \"boolean\") {\r\n\t\t\t\t\t\t\t\t\tclassName = getClass(this);\r\n\t\t\t\t\t\t\t\t\tif (className) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Store className if set\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.set(this, \"__className__\", className);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// If the element has a class name or if we're passed `false`,\r\n\t\t\t\t\t\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\r\n\t\t\t\t\t\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\r\n\t\t\t\t\t\t\t\t\t// falling back to the empty string if nothing was stored.\r\n\t\t\t\t\t\t\t\t\tif (this.setAttribute) {\r\n\t\t\t\t\t\t\t\t\t\tthis.setAttribute(\"class\",\r\n\t\t\t\t\t\t\t\t\t\t\tclassName || value === false ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"\" :\r\n\t\t\t\t\t\t\t\t\t\t\t\tdataPriv.get(this, \"__className__\") || \"\"\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\thasClass: function (selector) {\r\n\t\t\t\t\t\t\tvar className, elem,\r\n\t\t\t\t\t\t\t\ti = 0;\r\n\r\n\t\t\t\t\t\t\tclassName = \" \" + selector + \" \";\r\n\t\t\t\t\t\t\twhile ((elem = this[i++])) {\r\n\t\t\t\t\t\t\t\tif (elem.nodeType === 1 &&\r\n\t\t\t\t\t\t\t\t\t(\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar rreturn = /\\r/g;\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tval: function (value) {\r\n\t\t\t\t\t\t\tvar hooks, ret, valueIsFunction,\r\n\t\t\t\t\t\t\t\telem = this[0];\r\n\r\n\t\t\t\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\t\t\thooks = jQuery.valHooks[elem.type] ||\r\n\t\t\t\t\t\t\t\t\t\tjQuery.valHooks[elem.nodeName.toLowerCase()];\r\n\r\n\t\t\t\t\t\t\t\t\tif (hooks &&\r\n\t\t\t\t\t\t\t\t\t\t\"get\" in hooks &&\r\n\t\t\t\t\t\t\t\t\t\t(ret = hooks.get(elem, \"value\")) !== undefined\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tret = elem.value;\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle most common string cases\r\n\t\t\t\t\t\t\t\t\tif (typeof ret === \"string\") {\r\n\t\t\t\t\t\t\t\t\t\treturn ret.replace(rreturn, \"\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle cases where value is null/undef or number\r\n\t\t\t\t\t\t\t\t\treturn ret == null ? \"\" : ret;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvalueIsFunction = isFunction(value);\r\n\r\n\t\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\t\tvar val;\r\n\r\n\t\t\t\t\t\t\t\tif (this.nodeType !== 1) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (valueIsFunction) {\r\n\t\t\t\t\t\t\t\t\tval = value.call(this, i, jQuery(this).val());\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tval = value;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Treat null/undefined as \"\"; convert numbers to string\r\n\t\t\t\t\t\t\t\tif (val == null) {\r\n\t\t\t\t\t\t\t\t\tval = \"\";\r\n\r\n\t\t\t\t\t\t\t\t} else if (typeof val === \"number\") {\r\n\t\t\t\t\t\t\t\t\tval += \"\";\r\n\r\n\t\t\t\t\t\t\t\t} else if (Array.isArray(val)) {\r\n\t\t\t\t\t\t\t\t\tval = jQuery.map(val, function (value) {\r\n\t\t\t\t\t\t\t\t\t\treturn value == null ? \"\" : value + \"\";\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\thooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\r\n\r\n\t\t\t\t\t\t\t\t// If set returns undefined, fall back to normal setting\r\n\t\t\t\t\t\t\t\tif (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\r\n\t\t\t\t\t\t\t\t\tthis.value = val;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\t\t\t\t\t\tvalHooks: {\r\n\t\t\t\t\t\t\toption: {\r\n\t\t\t\t\t\t\t\tget: function (elem) {\r\n\r\n\t\t\t\t\t\t\t\t\tvar val = jQuery.find.attr(elem, \"value\");\r\n\t\t\t\t\t\t\t\t\treturn val != null ?\r\n\t\t\t\t\t\t\t\t\t\tval :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=10 - 11 only\r\n\t\t\t\t\t\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\r\n\t\t\t\t\t\t\t\t\t\t// Strip and collapse whitespace\r\n\t\t\t\t\t\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\r\n\t\t\t\t\t\t\t\t\t\tstripAndCollapse(jQuery.text(elem));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tselect: {\r\n\t\t\t\t\t\t\t\tget: function (elem) {\r\n\t\t\t\t\t\t\t\t\tvar value, option, i,\r\n\t\t\t\t\t\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\t\t\t\t\t\tindex = elem.selectedIndex,\r\n\t\t\t\t\t\t\t\t\t\tone = elem.type === \"select-one\",\r\n\t\t\t\t\t\t\t\t\t\tvalues = one ? null : [],\r\n\t\t\t\t\t\t\t\t\t\tmax = one ? index + 1 : options.length;\r\n\r\n\t\t\t\t\t\t\t\t\tif (index < 0) {\r\n\t\t\t\t\t\t\t\t\t\ti = max;\r\n\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ti = one ? index : 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Loop through all the selected options\r\n\t\t\t\t\t\t\t\t\tfor (; i < max; i++) {\r\n\t\t\t\t\t\t\t\t\t\toption = options[i];\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\r\n\t\t\t\t\t\t\t\t\t\tif ((option.selected || i === index) &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\r\n\t\t\t\t\t\t\t\t\t\t\t!option.disabled &&\r\n\t\t\t\t\t\t\t\t\t\t\t(!option.parentNode.disabled ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t!nodeName(option.parentNode, \"optgroup\"))) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Get the specific value for the option\r\n\t\t\t\t\t\t\t\t\t\t\tvalue = jQuery(option).val();\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// We don't need an array for one selects\r\n\t\t\t\t\t\t\t\t\t\t\tif (one) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Multi-Selects return an array\r\n\t\t\t\t\t\t\t\t\t\t\tvalues.push(value);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn values;\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\t\t\t\tvar optionSet, option,\r\n\t\t\t\t\t\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\t\t\t\t\t\tvalues = jQuery.makeArray(value),\r\n\t\t\t\t\t\t\t\t\t\ti = options.length;\r\n\r\n\t\t\t\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\t\t\t\toption = options[i];\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable no-cond-assign */\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (option.selected =\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.inArray(jQuery.valHooks.option.get(option), values) > -1\r\n\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\toptionSet = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* eslint-enable no-cond-assign */\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Force browsers to behave consistently when non-matching value is set\r\n\t\t\t\t\t\t\t\t\tif (!optionSet) {\r\n\t\t\t\t\t\t\t\t\t\telem.selectedIndex = -1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn values;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Radios and checkboxes getter/setter\r\n\t\t\t\t\tjQuery.each([\"radio\", \"checkbox\"], function () {\r\n\t\t\t\t\t\tjQuery.valHooks[this] = {\r\n\t\t\t\t\t\t\tset: function (elem, value) {\r\n\t\t\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\t\t\treturn (elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tif (!support.checkOn) {\r\n\t\t\t\t\t\t\tjQuery.valHooks[this].get = function (elem) {\r\n\t\t\t\t\t\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Return jQuery for attributes-only inclusion\r\n\r\n\r\n\t\t\t\t\tsupport.focusin = \"onfocusin\" in window;\r\n\r\n\r\n\t\t\t\t\tvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n\t\t\t\t\t\tstopPropagationCallback = function (e) {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.extend(jQuery.event, {\r\n\r\n\t\t\t\t\t\ttrigger: function (event, data, elem, onlyHandlers) {\r\n\r\n\t\t\t\t\t\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\r\n\t\t\t\t\t\t\t\teventPath = [elem || document],\r\n\t\t\t\t\t\t\t\ttype = hasOwn.call(event, \"type\") ? event.type : event,\r\n\t\t\t\t\t\t\t\tnamespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\r\n\r\n\t\t\t\t\t\t\tcur = lastElement = tmp = elem = elem || document;\r\n\r\n\t\t\t\t\t\t\t// Don't do events on text and comment nodes\r\n\t\t\t\t\t\t\tif (elem.nodeType === 3 || elem.nodeType === 8) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n\t\t\t\t\t\t\tif (rfocusMorph.test(type + jQuery.event.triggered)) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (type.indexOf(\".\") > -1) {\r\n\r\n\t\t\t\t\t\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\r\n\t\t\t\t\t\t\t\tnamespaces = type.split(\".\");\r\n\t\t\t\t\t\t\t\ttype = namespaces.shift();\r\n\t\t\t\t\t\t\t\tnamespaces.sort();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\r\n\r\n\t\t\t\t\t\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n\t\t\t\t\t\t\tevent = event[jQuery.expando] ?\r\n\t\t\t\t\t\t\t\tevent :\r\n\t\t\t\t\t\t\t\tnew jQuery.Event(type, typeof event === \"object\" && event);\r\n\r\n\t\t\t\t\t\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n\t\t\t\t\t\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\r\n\t\t\t\t\t\t\tevent.namespace = namespaces.join(\".\");\r\n\t\t\t\t\t\t\tevent.rnamespace = event.namespace ?\r\n\t\t\t\t\t\t\t\tnew RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") :\r\n\t\t\t\t\t\t\t\tnull;\r\n\r\n\t\t\t\t\t\t\t// Clean up the event in case it is being reused\r\n\t\t\t\t\t\t\tevent.result = undefined;\r\n\t\t\t\t\t\t\tif (!event.target) {\r\n\t\t\t\t\t\t\t\tevent.target = elem;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Clone any incoming data and prepend the event, creating the handler arg list\r\n\t\t\t\t\t\t\tdata = data == null ?\r\n\t\t\t\t\t\t\t\t[event] :\r\n\t\t\t\t\t\t\t\tjQuery.makeArray(data, [event]);\r\n\r\n\t\t\t\t\t\t\t// Allow special events to draw outside the lines\r\n\t\t\t\t\t\t\tspecial = jQuery.event.special[type] || {};\r\n\t\t\t\t\t\t\tif (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\r\n\t\t\t\t\t\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n\t\t\t\t\t\t\tif (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\r\n\r\n\t\t\t\t\t\t\t\tbubbleType = special.delegateType || type;\r\n\t\t\t\t\t\t\t\tif (!rfocusMorph.test(bubbleType + type)) {\r\n\t\t\t\t\t\t\t\t\tcur = cur.parentNode;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tfor (; cur; cur = cur.parentNode) {\r\n\t\t\t\t\t\t\t\t\teventPath.push(cur);\r\n\t\t\t\t\t\t\t\t\ttmp = cur;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n\t\t\t\t\t\t\t\tif (tmp === (elem.ownerDocument || document)) {\r\n\t\t\t\t\t\t\t\t\teventPath.push(tmp.defaultView || tmp.parentWindow || window);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fire handlers on the event path\r\n\t\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\t\t\twhile ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\tlastElement = cur;\r\n\t\t\t\t\t\t\t\tevent.type = i > 1 ?\r\n\t\t\t\t\t\t\t\t\tbubbleType :\r\n\t\t\t\t\t\t\t\t\tspecial.bindType || type;\r\n\r\n\t\t\t\t\t\t\t\t// jQuery handler\r\n\t\t\t\t\t\t\t\thandle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] &&\r\n\t\t\t\t\t\t\t\t\tdataPriv.get(cur, \"handle\");\r\n\t\t\t\t\t\t\t\tif (handle) {\r\n\t\t\t\t\t\t\t\t\thandle.apply(cur, data);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Native handler\r\n\t\t\t\t\t\t\t\thandle = ontype && cur[ontype];\r\n\t\t\t\t\t\t\t\tif (handle && handle.apply && acceptData(cur)) {\r\n\t\t\t\t\t\t\t\t\tevent.result = handle.apply(cur, data);\r\n\t\t\t\t\t\t\t\t\tif (event.result === false) {\r\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tevent.type = type;\r\n\r\n\t\t\t\t\t\t\t// If nobody prevented the default action, do it now\r\n\t\t\t\t\t\t\tif (!onlyHandlers && !event.isDefaultPrevented()) {\r\n\r\n\t\t\t\t\t\t\t\tif ((!special._default ||\r\n\t\t\t\t\t\t\t\t\tspecial._default.apply(eventPath.pop(), data) === false) &&\r\n\t\t\t\t\t\t\t\t\tacceptData(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Call a native DOM method on the target with the same name as the event.\r\n\t\t\t\t\t\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\r\n\t\t\t\t\t\t\t\t\tif (ontype && isFunction(elem[type]) && !isWindow(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\r\n\t\t\t\t\t\t\t\t\t\ttmp = elem[ontype];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (tmp) {\r\n\t\t\t\t\t\t\t\t\t\t\telem[ontype] = null;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.triggered = type;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\t\t\t\tlastElement.addEventListener(type, stopPropagationCallback);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\telem[type]();\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (event.isPropagationStopped()) {\r\n\t\t\t\t\t\t\t\t\t\t\tlastElement.removeEventListener(type, stopPropagationCallback);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.triggered = undefined;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (tmp) {\r\n\t\t\t\t\t\t\t\t\t\t\telem[ontype] = tmp;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn event.result;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Piggyback on a donor event to simulate a different one\r\n\t\t\t\t\t\t// Used only for `focus(in | out)` events\r\n\t\t\t\t\t\tsimulate: function (type, elem, event) {\r\n\t\t\t\t\t\t\tvar e = jQuery.extend(\r\n\t\t\t\t\t\t\t\tnew jQuery.Event(),\r\n\t\t\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttype: type,\r\n\t\t\t\t\t\t\t\t\tisSimulated: true\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\tjQuery.event.trigger(e, null, elem);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\t\t\ttrigger: function (type, data) {\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tjQuery.event.trigger(type, data, this);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttriggerHandler: function (type, data) {\r\n\t\t\t\t\t\t\tvar elem = this[0];\r\n\t\t\t\t\t\t\tif (elem) {\r\n\t\t\t\t\t\t\t\treturn jQuery.event.trigger(type, data, elem, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t// Support: Firefox <=44\r\n\t\t\t\t\t// Firefox doesn't have focus(in | out) events\r\n\t\t\t\t\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\r\n\t\t\t\t\t// focus(in | out) events fire after focus & blur events,\r\n\t\t\t\t\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\r\n\t\t\t\t\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\r\n\t\t\t\t\tif (!support.focusin) {\r\n\t\t\t\t\t\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function (orig, fix) {\r\n\r\n\t\t\t\t\t\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\r\n\t\t\t\t\t\t\tvar handler = function (event) {\r\n\t\t\t\t\t\t\t\tjQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tjQuery.event.special[fix] = {\r\n\t\t\t\t\t\t\t\tsetup: function () {\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\r\n\t\t\t\t\t\t\t\t\t// (via `this.document`) & document (via `this`).\r\n\t\t\t\t\t\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\t\t\t\t\t\tattaches = dataPriv.access(doc, fix);\r\n\r\n\t\t\t\t\t\t\t\t\tif (!attaches) {\r\n\t\t\t\t\t\t\t\t\t\tdoc.addEventListener(orig, handler, true);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tdataPriv.access(doc, fix, (attaches || 0) + 1);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tteardown: function () {\r\n\t\t\t\t\t\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\t\t\t\t\t\tattaches = dataPriv.access(doc, fix) - 1;\r\n\r\n\t\t\t\t\t\t\t\t\tif (!attaches) {\r\n\t\t\t\t\t\t\t\t\t\tdoc.removeEventListener(orig, handler, true);\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.remove(doc, fix);\r\n\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tdataPriv.access(doc, fix, attaches);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar location = window.location;\r\n\r\n\t\t\t\t\tvar nonce = { guid: Date.now() };\r\n\r\n\t\t\t\t\tvar rquery = (/\\?/);\r\n\r\n\r\n\r\n\t\t\t\t\t// Cross-browser xml parsing\r\n\t\t\t\t\tjQuery.parseXML = function (data) {\r\n\t\t\t\t\t\tvar xml, parserErrorElem;\r\n\t\t\t\t\t\tif (!data || typeof data !== \"string\") {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Support: IE 9 - 11 only\r\n\t\t\t\t\t\t// IE throws on parseFromString with invalid input.\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\txml = (new window.DOMParser()).parseFromString(data, \"text/xml\");\r\n\t\t\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\t\t\tparserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\r\n\t\t\t\t\t\tif (!xml || parserErrorElem) {\r\n\t\t\t\t\t\t\tjQuery.error(\"Invalid XML: \" + (\r\n\t\t\t\t\t\t\t\tparserErrorElem ?\r\n\t\t\t\t\t\t\t\t\tjQuery.map(parserErrorElem.childNodes, function (el) {\r\n\t\t\t\t\t\t\t\t\t\treturn el.textContent;\r\n\t\t\t\t\t\t\t\t\t}).join(\"\\n\") :\r\n\t\t\t\t\t\t\t\t\tdata\r\n\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn xml;\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\trbracket = /\\[\\]$/,\r\n\t\t\t\t\t\trCRLF = /\\r?\\n/g,\r\n\t\t\t\t\t\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\r\n\t\t\t\t\t\trsubmittable = /^(?:input|select|textarea|keygen)/i;\r\n\r\n\t\t\t\t\tfunction buildParams(prefix, obj, traditional, add) {\r\n\t\t\t\t\t\tvar name;\r\n\r\n\t\t\t\t\t\tif (Array.isArray(obj)) {\r\n\r\n\t\t\t\t\t\t\t// Serialize array item.\r\n\t\t\t\t\t\t\tjQuery.each(obj, function (i, v) {\r\n\t\t\t\t\t\t\t\tif (traditional || rbracket.test(prefix)) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Treat each array item as a scalar.\r\n\t\t\t\t\t\t\t\t\tadd(prefix, v);\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\r\n\t\t\t\t\t\t\t\t\tbuildParams(\r\n\t\t\t\t\t\t\t\t\t\tprefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\",\r\n\t\t\t\t\t\t\t\t\t\tv,\r\n\t\t\t\t\t\t\t\t\t\ttraditional,\r\n\t\t\t\t\t\t\t\t\t\tadd\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t} else if (!traditional && toType(obj) === \"object\") {\r\n\r\n\t\t\t\t\t\t\t// Serialize object item.\r\n\t\t\t\t\t\t\tfor (name in obj) {\r\n\t\t\t\t\t\t\t\tbuildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Serialize scalar item.\r\n\t\t\t\t\t\t\tadd(prefix, obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Serialize an array of form elements or a set of\r\n\t\t\t\t\t// key/values into a query string\r\n\t\t\t\t\tjQuery.param = function (a, traditional) {\r\n\t\t\t\t\t\tvar prefix,\r\n\t\t\t\t\t\t\ts = [],\r\n\t\t\t\t\t\t\tadd = function (key, valueOrFunction) {\r\n\r\n\t\t\t\t\t\t\t\t// If value is a function, invoke it and use its return value\r\n\t\t\t\t\t\t\t\tvar value = isFunction(valueOrFunction) ?\r\n\t\t\t\t\t\t\t\t\tvalueOrFunction() :\r\n\t\t\t\t\t\t\t\t\tvalueOrFunction;\r\n\r\n\t\t\t\t\t\t\t\ts[s.length] = encodeURIComponent(key) + \"=\" +\r\n\t\t\t\t\t\t\t\t\tencodeURIComponent(value == null ? \"\" : value);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (a == null) {\r\n\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If an array was passed in, assume that it is an array of form elements.\r\n\t\t\t\t\t\tif (Array.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) {\r\n\r\n\t\t\t\t\t\t\t// Serialize the form elements\r\n\t\t\t\t\t\t\tjQuery.each(a, function () {\r\n\t\t\t\t\t\t\t\tadd(this.name, this.value);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\r\n\t\t\t\t\t\t\t// did it), otherwise encode params recursively.\r\n\t\t\t\t\t\t\tfor (prefix in a) {\r\n\t\t\t\t\t\t\t\tbuildParams(prefix, a[prefix], traditional, add);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Return the resulting serialization\r\n\t\t\t\t\t\treturn s.join(\"&\");\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\tserialize: function () {\r\n\t\t\t\t\t\t\treturn jQuery.param(this.serializeArray());\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tserializeArray: function () {\r\n\t\t\t\t\t\t\treturn this.map(function () {\r\n\r\n\t\t\t\t\t\t\t\t// Can add propHook for \"elements\" to filter or add form elements\r\n\t\t\t\t\t\t\t\tvar elements = jQuery.prop(this, \"elements\");\r\n\t\t\t\t\t\t\t\treturn elements ? jQuery.makeArray(elements) : this;\r\n\t\t\t\t\t\t\t}).filter(function () {\r\n\t\t\t\t\t\t\t\tvar type = this.type;\r\n\r\n\t\t\t\t\t\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\r\n\t\t\t\t\t\t\t\treturn this.name && !jQuery(this).is(\":disabled\") &&\r\n\t\t\t\t\t\t\t\t\trsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) &&\r\n\t\t\t\t\t\t\t\t\t(this.checked || !rcheckableType.test(type));\r\n\t\t\t\t\t\t\t}).map(function (_i, elem) {\r\n\t\t\t\t\t\t\t\tvar val = jQuery(this).val();\r\n\r\n\t\t\t\t\t\t\t\tif (val == null) {\r\n\t\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (Array.isArray(val)) {\r\n\t\t\t\t\t\t\t\t\treturn jQuery.map(val, function (val) {\r\n\t\t\t\t\t\t\t\t\t\treturn { name: elem.name, value: val.replace(rCRLF, \"\\r\\n\") };\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn { name: elem.name, value: val.replace(rCRLF, \"\\r\\n\") };\r\n\t\t\t\t\t\t\t}).get();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tr20 = /%20/g,\r\n\t\t\t\t\t\trhash = /#.*$/,\r\n\t\t\t\t\t\trantiCache = /([?&])_=[^&]*/,\r\n\t\t\t\t\t\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\r\n\r\n\t\t\t\t\t\t// #7653, #8125, #8152: local protocol detection\r\n\t\t\t\t\t\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\r\n\t\t\t\t\t\trnoContent = /^(?:GET|HEAD)$/,\r\n\t\t\t\t\t\trprotocol = /^\\/\\//,\r\n\r\n\t\t\t\t\t\t/* Prefilters\r\n\t\t\t\t\t\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\r\n\t\t\t\t\t\t * 2) These are called:\r\n\t\t\t\t\t\t *    - BEFORE asking for a transport\r\n\t\t\t\t\t\t *    - AFTER param serialization (s.data is a string if s.processData is true)\r\n\t\t\t\t\t\t * 3) key is the dataType\r\n\t\t\t\t\t\t * 4) the catchall symbol \"*\" can be used\r\n\t\t\t\t\t\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tprefilters = {},\r\n\r\n\t\t\t\t\t\t/* Transports bindings\r\n\t\t\t\t\t\t * 1) key is the dataType\r\n\t\t\t\t\t\t * 2) the catchall symbol \"*\" can be used\r\n\t\t\t\t\t\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\ttransports = {},\r\n\r\n\t\t\t\t\t\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\r\n\t\t\t\t\t\tallTypes = \"*/\".concat(\"*\"),\r\n\r\n\t\t\t\t\t\t// Anchor tag for parsing the document origin\r\n\t\t\t\t\t\toriginAnchor = document.createElement(\"a\");\r\n\r\n\t\t\t\t\toriginAnchor.href = location.href;\r\n\r\n\t\t\t\t\t// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\r\n\t\t\t\t\tfunction addToPrefiltersOrTransports(structure) {\r\n\r\n\t\t\t\t\t\t// dataTypeExpression is optional and defaults to \"*\"\r\n\t\t\t\t\t\treturn function (dataTypeExpression, func) {\r\n\r\n\t\t\t\t\t\t\tif (typeof dataTypeExpression !== \"string\") {\r\n\t\t\t\t\t\t\t\tfunc = dataTypeExpression;\r\n\t\t\t\t\t\t\t\tdataTypeExpression = \"*\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar dataType,\r\n\t\t\t\t\t\t\t\ti = 0,\r\n\t\t\t\t\t\t\t\tdataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\r\n\r\n\t\t\t\t\t\t\tif (isFunction(func)) {\r\n\r\n\t\t\t\t\t\t\t\t// For each dataType in the dataTypeExpression\r\n\t\t\t\t\t\t\t\twhile ((dataType = dataTypes[i++])) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Prepend if requested\r\n\t\t\t\t\t\t\t\t\tif (dataType[0] === \"+\") {\r\n\t\t\t\t\t\t\t\t\t\tdataType = dataType.slice(1) || \"*\";\r\n\t\t\t\t\t\t\t\t\t\t(structure[dataType] = structure[dataType] || []).unshift(func);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Otherwise append\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t(structure[dataType] = structure[dataType] || []).push(func);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Base inspection function for prefilters and transports\r\n\t\t\t\t\tfunction inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\r\n\r\n\t\t\t\t\t\tvar inspected = {},\r\n\t\t\t\t\t\t\tseekingTransport = (structure === transports);\r\n\r\n\t\t\t\t\t\tfunction inspect(dataType) {\r\n\t\t\t\t\t\t\tvar selected;\r\n\t\t\t\t\t\t\tinspected[dataType] = true;\r\n\t\t\t\t\t\t\tjQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\r\n\t\t\t\t\t\t\t\tvar dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\r\n\t\t\t\t\t\t\t\tif (typeof dataTypeOrTransport === \"string\" &&\r\n\t\t\t\t\t\t\t\t\t!seekingTransport && !inspected[dataTypeOrTransport]) {\r\n\r\n\t\t\t\t\t\t\t\t\toptions.dataTypes.unshift(dataTypeOrTransport);\r\n\t\t\t\t\t\t\t\t\tinspect(dataTypeOrTransport);\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t} else if (seekingTransport) {\r\n\t\t\t\t\t\t\t\t\treturn !(selected = dataTypeOrTransport);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn selected;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// A special extend for ajax options\r\n\t\t\t\t\t// that takes \"flat\" options (not to be deep extended)\r\n\t\t\t\t\t// Fixes #9887\r\n\t\t\t\t\tfunction ajaxExtend(target, src) {\r\n\t\t\t\t\t\tvar key, deep,\r\n\t\t\t\t\t\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\r\n\r\n\t\t\t\t\t\tfor (key in src) {\r\n\t\t\t\t\t\t\tif (src[key] !== undefined) {\r\n\t\t\t\t\t\t\t\t(flatOptions[key] ? target : (deep || (deep = {})))[key] = src[key];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (deep) {\r\n\t\t\t\t\t\t\tjQuery.extend(true, target, deep);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn target;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Handles responses to an ajax request:\r\n\t\t\t\t\t * - finds the right dataType (mediates between content-type and expected dataType)\r\n\t\t\t\t\t * - returns the corresponding response\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction ajaxHandleResponses(s, jqXHR, responses) {\r\n\r\n\t\t\t\t\t\tvar ct, type, finalDataType, firstDataType,\r\n\t\t\t\t\t\t\tcontents = s.contents,\r\n\t\t\t\t\t\t\tdataTypes = s.dataTypes;\r\n\r\n\t\t\t\t\t\t// Remove auto dataType and get content-type in the process\r\n\t\t\t\t\t\twhile (dataTypes[0] === \"*\") {\r\n\t\t\t\t\t\t\tdataTypes.shift();\r\n\t\t\t\t\t\t\tif (ct === undefined) {\r\n\t\t\t\t\t\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Check if we're dealing with a known content-type\r\n\t\t\t\t\t\tif (ct) {\r\n\t\t\t\t\t\t\tfor (type in contents) {\r\n\t\t\t\t\t\t\t\tif (contents[type] && contents[type].test(ct)) {\r\n\t\t\t\t\t\t\t\t\tdataTypes.unshift(type);\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Check to see if we have a response for the expected dataType\r\n\t\t\t\t\t\tif (dataTypes[0] in responses) {\r\n\t\t\t\t\t\t\tfinalDataType = dataTypes[0];\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Try convertible dataTypes\r\n\t\t\t\t\t\t\tfor (type in responses) {\r\n\t\t\t\t\t\t\t\tif (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\r\n\t\t\t\t\t\t\t\t\tfinalDataType = type;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!firstDataType) {\r\n\t\t\t\t\t\t\t\t\tfirstDataType = type;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Or just use first one\r\n\t\t\t\t\t\t\tfinalDataType = finalDataType || firstDataType;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If we found a dataType\r\n\t\t\t\t\t\t// We add the dataType to the list if needed\r\n\t\t\t\t\t\t// and return the corresponding response\r\n\t\t\t\t\t\tif (finalDataType) {\r\n\t\t\t\t\t\t\tif (finalDataType !== dataTypes[0]) {\r\n\t\t\t\t\t\t\t\tdataTypes.unshift(finalDataType);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn responses[finalDataType];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Chain conversions given the request and the original response\r\n\t\t\t\t\t * Also sets the responseXXX fields on the jqXHR instance\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction ajaxConvert(s, response, jqXHR, isSuccess) {\r\n\t\t\t\t\t\tvar conv2, current, conv, tmp, prev,\r\n\t\t\t\t\t\t\tconverters = {},\r\n\r\n\t\t\t\t\t\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\r\n\t\t\t\t\t\t\tdataTypes = s.dataTypes.slice();\r\n\r\n\t\t\t\t\t\t// Create converters map with lowercased keys\r\n\t\t\t\t\t\tif (dataTypes[1]) {\r\n\t\t\t\t\t\t\tfor (conv in s.converters) {\r\n\t\t\t\t\t\t\t\tconverters[conv.toLowerCase()] = s.converters[conv];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcurrent = dataTypes.shift();\r\n\r\n\t\t\t\t\t\t// Convert to each sequential dataType\r\n\t\t\t\t\t\twhile (current) {\r\n\r\n\t\t\t\t\t\t\tif (s.responseFields[current]) {\r\n\t\t\t\t\t\t\t\tjqXHR[s.responseFields[current]] = response;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Apply the dataFilter if provided\r\n\t\t\t\t\t\t\tif (!prev && isSuccess && s.dataFilter) {\r\n\t\t\t\t\t\t\t\tresponse = s.dataFilter(response, s.dataType);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tprev = current;\r\n\t\t\t\t\t\t\tcurrent = dataTypes.shift();\r\n\r\n\t\t\t\t\t\t\tif (current) {\r\n\r\n\t\t\t\t\t\t\t\t// There's only work to do if current dataType is non-auto\r\n\t\t\t\t\t\t\t\tif (current === \"*\") {\r\n\r\n\t\t\t\t\t\t\t\t\tcurrent = prev;\r\n\r\n\t\t\t\t\t\t\t\t\t// Convert response if prev dataType is non-auto and differs from current\r\n\t\t\t\t\t\t\t\t} else if (prev !== \"*\" && prev !== current) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Seek a direct converter\r\n\t\t\t\t\t\t\t\t\tconv = converters[prev + \" \" + current] || converters[\"* \" + current];\r\n\r\n\t\t\t\t\t\t\t\t\t// If none found, seek a pair\r\n\t\t\t\t\t\t\t\t\tif (!conv) {\r\n\t\t\t\t\t\t\t\t\t\tfor (conv2 in converters) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// If conv2 outputs current\r\n\t\t\t\t\t\t\t\t\t\t\ttmp = conv2.split(\" \");\r\n\t\t\t\t\t\t\t\t\t\t\tif (tmp[1] === current) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// If prev can be converted to accepted input\r\n\t\t\t\t\t\t\t\t\t\t\t\tconv = converters[prev + \" \" + tmp[0]] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverters[\"* \" + tmp[0]];\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (conv) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Condense equivalence converters\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (conv === true) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconv = converters[conv2];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (converters[conv2] !== true) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrent = tmp[0];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataTypes.unshift(tmp[1]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Apply converter (if not an equivalence)\r\n\t\t\t\t\t\t\t\t\tif (conv !== true) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\r\n\t\t\t\t\t\t\t\t\t\tif (conv && s.throws) {\r\n\t\t\t\t\t\t\t\t\t\t\tresponse = conv(response);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponse = conv(response);\r\n\t\t\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate: \"parsererror\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\r\n\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn { state: \"success\", data: response };\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.extend({\r\n\r\n\t\t\t\t\t\t// Counter for holding the number of active queries\r\n\t\t\t\t\t\tactive: 0,\r\n\r\n\t\t\t\t\t\t// Last-Modified header cache for next request\r\n\t\t\t\t\t\tlastModified: {},\r\n\t\t\t\t\t\tetag: {},\r\n\r\n\t\t\t\t\t\tajaxSettings: {\r\n\t\t\t\t\t\t\turl: location.href,\r\n\t\t\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\t\t\tisLocal: rlocalProtocol.test(location.protocol),\r\n\t\t\t\t\t\t\tglobal: true,\r\n\t\t\t\t\t\t\tprocessData: true,\r\n\t\t\t\t\t\t\tasync: true,\r\n\t\t\t\t\t\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n\r\n\t\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\ttimeout: 0,\r\n\t\t\t\t\t\t\tdata: null,\r\n\t\t\t\t\t\t\tdataType: null,\r\n\t\t\t\t\t\t\tusername: null,\r\n\t\t\t\t\t\t\tpassword: null,\r\n\t\t\t\t\t\t\tcache: null,\r\n\t\t\t\t\t\t\tthrows: false,\r\n\t\t\t\t\t\t\ttraditional: false,\r\n\t\t\t\t\t\t\theaders: {},\r\n\t\t\t\t\t\t\t*/\r\n\r\n\t\t\t\t\t\t\taccepts: {\r\n\t\t\t\t\t\t\t\t\"*\": allTypes,\r\n\t\t\t\t\t\t\t\ttext: \"text/plain\",\r\n\t\t\t\t\t\t\t\thtml: \"text/html\",\r\n\t\t\t\t\t\t\t\txml: \"application/xml, text/xml\",\r\n\t\t\t\t\t\t\t\tjson: \"application/json, text/javascript\"\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tcontents: {\r\n\t\t\t\t\t\t\t\txml: /\\bxml\\b/,\r\n\t\t\t\t\t\t\t\thtml: /\\bhtml/,\r\n\t\t\t\t\t\t\t\tjson: /\\bjson\\b/\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tresponseFields: {\r\n\t\t\t\t\t\t\t\txml: \"responseXML\",\r\n\t\t\t\t\t\t\t\ttext: \"responseText\",\r\n\t\t\t\t\t\t\t\tjson: \"responseJSON\"\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// Data converters\r\n\t\t\t\t\t\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\r\n\t\t\t\t\t\t\tconverters: {\r\n\r\n\t\t\t\t\t\t\t\t// Convert anything to text\r\n\t\t\t\t\t\t\t\t\"* text\": String,\r\n\r\n\t\t\t\t\t\t\t\t// Text to html (true = no transformation)\r\n\t\t\t\t\t\t\t\t\"text html\": true,\r\n\r\n\t\t\t\t\t\t\t\t// Evaluate text as a json expression\r\n\t\t\t\t\t\t\t\t\"text json\": JSON.parse,\r\n\r\n\t\t\t\t\t\t\t\t// Parse text as xml\r\n\t\t\t\t\t\t\t\t\"text xml\": jQuery.parseXML\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t// For options that shouldn't be deep extended:\r\n\t\t\t\t\t\t\t// you can add your own custom options here if\r\n\t\t\t\t\t\t\t// and when you create one that shouldn't be\r\n\t\t\t\t\t\t\t// deep extended (see ajaxExtend)\r\n\t\t\t\t\t\t\tflatOptions: {\r\n\t\t\t\t\t\t\t\turl: true,\r\n\t\t\t\t\t\t\t\tcontext: true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// Creates a full fledged settings object into target\r\n\t\t\t\t\t\t// with both ajaxSettings and settings fields.\r\n\t\t\t\t\t\t// If target is omitted, writes into ajaxSettings.\r\n\t\t\t\t\t\tajaxSetup: function (target, settings) {\r\n\t\t\t\t\t\t\treturn settings ?\r\n\r\n\t\t\t\t\t\t\t\t// Building a settings object\r\n\t\t\t\t\t\t\t\tajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\r\n\r\n\t\t\t\t\t\t\t\t// Extending ajaxSettings\r\n\t\t\t\t\t\t\t\tajaxExtend(jQuery.ajaxSettings, target);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tajaxPrefilter: addToPrefiltersOrTransports(prefilters),\r\n\t\t\t\t\t\tajaxTransport: addToPrefiltersOrTransports(transports),\r\n\r\n\t\t\t\t\t\t// Main method\r\n\t\t\t\t\t\tajax: function (url, options) {\r\n\r\n\t\t\t\t\t\t\t// If url is an object, simulate pre-1.5 signature\r\n\t\t\t\t\t\t\tif (typeof url === \"object\") {\r\n\t\t\t\t\t\t\t\toptions = url;\r\n\t\t\t\t\t\t\t\turl = undefined;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Force options to be an object\r\n\t\t\t\t\t\t\toptions = options || {};\r\n\r\n\t\t\t\t\t\t\tvar transport,\r\n\r\n\t\t\t\t\t\t\t\t// URL without anti-cache param\r\n\t\t\t\t\t\t\t\tcacheURL,\r\n\r\n\t\t\t\t\t\t\t\t// Response headers\r\n\t\t\t\t\t\t\t\tresponseHeadersString,\r\n\t\t\t\t\t\t\t\tresponseHeaders,\r\n\r\n\t\t\t\t\t\t\t\t// timeout handle\r\n\t\t\t\t\t\t\t\ttimeoutTimer,\r\n\r\n\t\t\t\t\t\t\t\t// Url cleanup var\r\n\t\t\t\t\t\t\t\turlAnchor,\r\n\r\n\t\t\t\t\t\t\t\t// Request state (becomes false upon send and true upon completion)\r\n\t\t\t\t\t\t\t\tcompleted,\r\n\r\n\t\t\t\t\t\t\t\t// To know if global events are to be dispatched\r\n\t\t\t\t\t\t\t\tfireGlobals,\r\n\r\n\t\t\t\t\t\t\t\t// Loop variable\r\n\t\t\t\t\t\t\t\ti,\r\n\r\n\t\t\t\t\t\t\t\t// uncached part of the url\r\n\t\t\t\t\t\t\t\tuncached,\r\n\r\n\t\t\t\t\t\t\t\t// Create the final options object\r\n\t\t\t\t\t\t\t\ts = jQuery.ajaxSetup({}, options),\r\n\r\n\t\t\t\t\t\t\t\t// Callbacks context\r\n\t\t\t\t\t\t\t\tcallbackContext = s.context || s,\r\n\r\n\t\t\t\t\t\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\r\n\t\t\t\t\t\t\t\tglobalEventContext = s.context &&\r\n\t\t\t\t\t\t\t\t\t(callbackContext.nodeType || callbackContext.jquery) ?\r\n\t\t\t\t\t\t\t\t\tjQuery(callbackContext) :\r\n\t\t\t\t\t\t\t\t\tjQuery.event,\r\n\r\n\t\t\t\t\t\t\t\t// Deferreds\r\n\t\t\t\t\t\t\t\tdeferred = jQuery.Deferred(),\r\n\t\t\t\t\t\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\r\n\r\n\t\t\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\t\t\tstatusCode = s.statusCode || {},\r\n\r\n\t\t\t\t\t\t\t\t// Headers (they are sent all at once)\r\n\t\t\t\t\t\t\t\trequestHeaders = {},\r\n\t\t\t\t\t\t\t\trequestHeadersNames = {},\r\n\r\n\t\t\t\t\t\t\t\t// Default abort message\r\n\t\t\t\t\t\t\t\tstrAbort = \"canceled\",\r\n\r\n\t\t\t\t\t\t\t\t// Fake xhr\r\n\t\t\t\t\t\t\t\tjqXHR = {\r\n\t\t\t\t\t\t\t\t\treadyState: 0,\r\n\r\n\t\t\t\t\t\t\t\t\t// Builds headers hashtable if needed\r\n\t\t\t\t\t\t\t\t\tgetResponseHeader: function (key) {\r\n\t\t\t\t\t\t\t\t\t\tvar match;\r\n\t\t\t\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (!responseHeaders) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tresponseHeaders = {};\r\n\t\t\t\t\t\t\t\t\t\t\t\twhile ((match = rheaders.exec(responseHeadersString))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresponseHeaders[match[1].toLowerCase() + \" \"] =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(responseHeaders[match[1].toLowerCase() + \" \"] || [])\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.concat(match[2]);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tmatch = responseHeaders[key.toLowerCase() + \" \"];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn match == null ? null : match.join(\", \");\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Raw string\r\n\t\t\t\t\t\t\t\t\tgetAllResponseHeaders: function () {\r\n\t\t\t\t\t\t\t\t\t\treturn completed ? responseHeadersString : null;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Caches the header\r\n\t\t\t\t\t\t\t\t\tsetRequestHeader: function (name, value) {\r\n\t\t\t\t\t\t\t\t\t\tif (completed == null) {\r\n\t\t\t\t\t\t\t\t\t\t\tname = requestHeadersNames[name.toLowerCase()] =\r\n\t\t\t\t\t\t\t\t\t\t\t\trequestHeadersNames[name.toLowerCase()] || name;\r\n\t\t\t\t\t\t\t\t\t\t\trequestHeaders[name] = value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Overrides response content-type header\r\n\t\t\t\t\t\t\t\t\toverrideMimeType: function (type) {\r\n\t\t\t\t\t\t\t\t\t\tif (completed == null) {\r\n\t\t\t\t\t\t\t\t\t\t\ts.mimeType = type;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\t\t\t\tstatusCode: function (map) {\r\n\t\t\t\t\t\t\t\t\t\tvar code;\r\n\t\t\t\t\t\t\t\t\t\tif (map) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (completed) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Execute the appropriate callbacks\r\n\t\t\t\t\t\t\t\t\t\t\t\tjqXHR.always(map[jqXHR.status]);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\r\n\t\t\t\t\t\t\t\t\t\t\t\tfor (code in map) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstatusCode[code] = [statusCode[code], map[code]];\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t\t// Cancel the request\r\n\t\t\t\t\t\t\t\t\tabort: function (statusText) {\r\n\t\t\t\t\t\t\t\t\t\tvar finalText = statusText || strAbort;\r\n\t\t\t\t\t\t\t\t\t\tif (transport) {\r\n\t\t\t\t\t\t\t\t\t\t\ttransport.abort(finalText);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tdone(0, finalText);\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Attach deferreds\r\n\t\t\t\t\t\t\tdeferred.promise(jqXHR);\r\n\r\n\t\t\t\t\t\t\t// Add protocol if not provided (prefilters might expect it)\r\n\t\t\t\t\t\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\r\n\t\t\t\t\t\t\t// We also use the url parameter if available\r\n\t\t\t\t\t\t\ts.url = ((url || s.url || location.href) + \"\")\r\n\t\t\t\t\t\t\t\t.replace(rprotocol, location.protocol + \"//\");\r\n\r\n\t\t\t\t\t\t\t// Alias method option to type as per ticket #12004\r\n\t\t\t\t\t\t\ts.type = options.method || options.type || s.method || s.type;\r\n\r\n\t\t\t\t\t\t\t// Extract dataTypes list\r\n\t\t\t\t\t\t\ts.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\r\n\r\n\t\t\t\t\t\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\r\n\t\t\t\t\t\t\tif (s.crossDomain == null) {\r\n\t\t\t\t\t\t\t\turlAnchor = document.createElement(\"a\");\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\r\n\t\t\t\t\t\t\t\t// IE throws exception on accessing the href property if url is malformed,\r\n\t\t\t\t\t\t\t\t// e.g. http://example.com:80x/\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\turlAnchor.href = s.url;\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE <=8 - 11 only\r\n\t\t\t\t\t\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\r\n\t\t\t\t\t\t\t\t\turlAnchor.href = urlAnchor.href;\r\n\t\t\t\t\t\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\r\n\t\t\t\t\t\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\r\n\t\t\t\t\t\t\t\t\t// it can be rejected by the transport if it is invalid\r\n\t\t\t\t\t\t\t\t\ts.crossDomain = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Convert data if not already a string\r\n\t\t\t\t\t\t\tif (s.data && s.processData && typeof s.data !== \"string\") {\r\n\t\t\t\t\t\t\t\ts.data = jQuery.param(s.data, s.traditional);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Apply prefilters\r\n\t\t\t\t\t\t\tinspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\r\n\r\n\t\t\t\t\t\t\t// If request was aborted inside a prefilter, stop there\r\n\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// We can fire global events as of now if asked to\r\n\t\t\t\t\t\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\r\n\t\t\t\t\t\t\tfireGlobals = jQuery.event && s.global;\r\n\r\n\t\t\t\t\t\t\t// Watch for a new set of requests\r\n\t\t\t\t\t\t\tif (fireGlobals && jQuery.active++ === 0) {\r\n\t\t\t\t\t\t\t\tjQuery.event.trigger(\"ajaxStart\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Uppercase the type\r\n\t\t\t\t\t\t\ts.type = s.type.toUpperCase();\r\n\r\n\t\t\t\t\t\t\t// Determine if request has content\r\n\t\t\t\t\t\t\ts.hasContent = !rnoContent.test(s.type);\r\n\r\n\t\t\t\t\t\t\t// Save the URL in case we're toying with the If-Modified-Since\r\n\t\t\t\t\t\t\t// and/or If-None-Match header later on\r\n\t\t\t\t\t\t\t// Remove hash to simplify url manipulation\r\n\t\t\t\t\t\t\tcacheURL = s.url.replace(rhash, \"\");\r\n\r\n\t\t\t\t\t\t\t// More options handling for requests with no content\r\n\t\t\t\t\t\t\tif (!s.hasContent) {\r\n\r\n\t\t\t\t\t\t\t\t// Remember the hash so we can put it back\r\n\t\t\t\t\t\t\t\tuncached = s.url.slice(cacheURL.length);\r\n\r\n\t\t\t\t\t\t\t\t// If data is available and should be processed, append data to url\r\n\t\t\t\t\t\t\t\tif (s.data && (s.processData || typeof s.data === \"string\")) {\r\n\t\t\t\t\t\t\t\t\tcacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\r\n\r\n\t\t\t\t\t\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\r\n\t\t\t\t\t\t\t\t\tdelete s.data;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Add or update anti-cache param if needed\r\n\t\t\t\t\t\t\t\tif (s.cache === false) {\r\n\t\t\t\t\t\t\t\t\tcacheURL = cacheURL.replace(rantiCache, \"$1\");\r\n\t\t\t\t\t\t\t\t\tuncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + (nonce.guid++) +\r\n\t\t\t\t\t\t\t\t\t\tuncached;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\r\n\t\t\t\t\t\t\t\ts.url = cacheURL + uncached;\r\n\r\n\t\t\t\t\t\t\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\r\n\t\t\t\t\t\t\t} else if (s.data && s.processData &&\r\n\t\t\t\t\t\t\t\t(s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\r\n\t\t\t\t\t\t\t\ts.data = s.data.replace(r20, \"+\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\t\t\t\tif (s.ifModified) {\r\n\t\t\t\t\t\t\t\tif (jQuery.lastModified[cacheURL]) {\r\n\t\t\t\t\t\t\t\t\tjqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (jQuery.etag[cacheURL]) {\r\n\t\t\t\t\t\t\t\t\tjqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Set the correct header, if data is being sent\r\n\t\t\t\t\t\t\tif (s.data && s.hasContent && s.contentType !== false || options.contentType) {\r\n\t\t\t\t\t\t\t\tjqXHR.setRequestHeader(\"Content-Type\", s.contentType);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Set the Accepts header for the server, depending on the dataType\r\n\t\t\t\t\t\t\tjqXHR.setRequestHeader(\r\n\t\t\t\t\t\t\t\t\"Accept\",\r\n\t\t\t\t\t\t\t\ts.dataTypes[0] && s.accepts[s.dataTypes[0]] ?\r\n\t\t\t\t\t\t\t\t\ts.accepts[s.dataTypes[0]] +\r\n\t\t\t\t\t\t\t\t\t(s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") :\r\n\t\t\t\t\t\t\t\t\ts.accepts[\"*\"]\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t// Check for headers option\r\n\t\t\t\t\t\t\tfor (i in s.headers) {\r\n\t\t\t\t\t\t\t\tjqXHR.setRequestHeader(i, s.headers[i]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Allow custom headers/mimetypes and early abort\r\n\t\t\t\t\t\t\tif (s.beforeSend &&\r\n\t\t\t\t\t\t\t\t(s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\r\n\r\n\t\t\t\t\t\t\t\t// Abort if not done already and return\r\n\t\t\t\t\t\t\t\treturn jqXHR.abort();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Aborting is no longer a cancellation\r\n\t\t\t\t\t\t\tstrAbort = \"abort\";\r\n\r\n\t\t\t\t\t\t\t// Install callbacks on deferreds\r\n\t\t\t\t\t\t\tcompleteDeferred.add(s.complete);\r\n\t\t\t\t\t\t\tjqXHR.done(s.success);\r\n\t\t\t\t\t\t\tjqXHR.fail(s.error);\r\n\r\n\t\t\t\t\t\t\t// Get transport\r\n\t\t\t\t\t\t\ttransport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\r\n\r\n\t\t\t\t\t\t\t// If no transport, we auto-abort\r\n\t\t\t\t\t\t\tif (!transport) {\r\n\t\t\t\t\t\t\t\tdone(-1, \"No Transport\");\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tjqXHR.readyState = 1;\r\n\r\n\t\t\t\t\t\t\t\t// Send global event\r\n\t\t\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\t\t\tglobalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// If request was aborted inside ajaxSend, stop there\r\n\t\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Timeout\r\n\t\t\t\t\t\t\t\tif (s.async && s.timeout > 0) {\r\n\t\t\t\t\t\t\t\t\ttimeoutTimer = window.setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\tjqXHR.abort(\"timeout\");\r\n\t\t\t\t\t\t\t\t\t}, s.timeout);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tcompleted = false;\r\n\t\t\t\t\t\t\t\t\ttransport.send(requestHeaders, done);\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Rethrow post-completion exceptions\r\n\t\t\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Propagate others as results\r\n\t\t\t\t\t\t\t\t\tdone(-1, e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Callback for when everything is done\r\n\t\t\t\t\t\t\tfunction done(status, nativeStatusText, responses, headers) {\r\n\t\t\t\t\t\t\t\tvar isSuccess, success, error, response, modified,\r\n\t\t\t\t\t\t\t\t\tstatusText = nativeStatusText;\r\n\r\n\t\t\t\t\t\t\t\t// Ignore repeat invocations\r\n\t\t\t\t\t\t\t\tif (completed) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tcompleted = true;\r\n\r\n\t\t\t\t\t\t\t\t// Clear timeout if it exists\r\n\t\t\t\t\t\t\t\tif (timeoutTimer) {\r\n\t\t\t\t\t\t\t\t\twindow.clearTimeout(timeoutTimer);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Dereference transport for early garbage collection\r\n\t\t\t\t\t\t\t\t// (no matter how long the jqXHR object will be used)\r\n\t\t\t\t\t\t\t\ttransport = undefined;\r\n\r\n\t\t\t\t\t\t\t\t// Cache response headers\r\n\t\t\t\t\t\t\t\tresponseHeadersString = headers || \"\";\r\n\r\n\t\t\t\t\t\t\t\t// Set readyState\r\n\t\t\t\t\t\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\r\n\r\n\t\t\t\t\t\t\t\t// Determine if successful\r\n\t\t\t\t\t\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\r\n\r\n\t\t\t\t\t\t\t\t// Get response data\r\n\t\t\t\t\t\t\t\tif (responses) {\r\n\t\t\t\t\t\t\t\t\tresponse = ajaxHandleResponses(s, jqXHR, responses);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Use a noop converter for missing script but not if jsonp\r\n\t\t\t\t\t\t\t\tif (!isSuccess &&\r\n\t\t\t\t\t\t\t\t\tjQuery.inArray(\"script\", s.dataTypes) > -1 &&\r\n\t\t\t\t\t\t\t\t\tjQuery.inArray(\"json\", s.dataTypes) < 0) {\r\n\t\t\t\t\t\t\t\t\ts.converters[\"text script\"] = function () { };\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Convert no matter what (that way responseXXX fields are always set)\r\n\t\t\t\t\t\t\t\tresponse = ajaxConvert(s, response, jqXHR, isSuccess);\r\n\r\n\t\t\t\t\t\t\t\t// If successful, handle type chaining\r\n\t\t\t\t\t\t\t\tif (isSuccess) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\t\t\t\t\t\tif (s.ifModified) {\r\n\t\t\t\t\t\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\r\n\t\t\t\t\t\t\t\t\t\tif (modified) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.lastModified[cacheURL] = modified;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\r\n\t\t\t\t\t\t\t\t\t\tif (modified) {\r\n\t\t\t\t\t\t\t\t\t\t\tjQuery.etag[cacheURL] = modified;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// if no content\r\n\t\t\t\t\t\t\t\t\tif (status === 204 || s.type === \"HEAD\") {\r\n\t\t\t\t\t\t\t\t\t\tstatusText = \"nocontent\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t// if not modified\r\n\t\t\t\t\t\t\t\t\t} else if (status === 304) {\r\n\t\t\t\t\t\t\t\t\t\tstatusText = \"notmodified\";\r\n\r\n\t\t\t\t\t\t\t\t\t\t// If we have data, let's convert it\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tstatusText = response.state;\r\n\t\t\t\t\t\t\t\t\t\tsuccess = response.data;\r\n\t\t\t\t\t\t\t\t\t\terror = response.error;\r\n\t\t\t\t\t\t\t\t\t\tisSuccess = !error;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t// Extract error from statusText and normalize for non-aborts\r\n\t\t\t\t\t\t\t\t\terror = statusText;\r\n\t\t\t\t\t\t\t\t\tif (status || !statusText) {\r\n\t\t\t\t\t\t\t\t\t\tstatusText = \"error\";\r\n\t\t\t\t\t\t\t\t\t\tif (status < 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tstatus = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Set data for the fake xhr object\r\n\t\t\t\t\t\t\t\tjqXHR.status = status;\r\n\t\t\t\t\t\t\t\tjqXHR.statusText = (nativeStatusText || statusText) + \"\";\r\n\r\n\t\t\t\t\t\t\t\t// Success/Error\r\n\t\t\t\t\t\t\t\tif (isSuccess) {\r\n\t\t\t\t\t\t\t\t\tdeferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tdeferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\t\t\t\t\tjqXHR.statusCode(statusCode);\r\n\t\t\t\t\t\t\t\tstatusCode = undefined;\r\n\r\n\t\t\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\t\t\tglobalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\r\n\t\t\t\t\t\t\t\t\t\t[jqXHR, s, isSuccess ? success : error]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Complete\r\n\t\t\t\t\t\t\t\tcompleteDeferred.fireWith(callbackContext, [jqXHR, statusText]);\r\n\r\n\t\t\t\t\t\t\t\tif (fireGlobals) {\r\n\t\t\t\t\t\t\t\t\tglobalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle the global AJAX counter\r\n\t\t\t\t\t\t\t\t\tif (!(--jQuery.active)) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn jqXHR;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tgetJSON: function (url, data, callback) {\r\n\t\t\t\t\t\t\treturn jQuery.get(url, data, callback, \"json\");\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tgetScript: function (url, callback) {\r\n\t\t\t\t\t\t\treturn jQuery.get(url, undefined, callback, \"script\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.each([\"get\", \"post\"], function (_i, method) {\r\n\t\t\t\t\t\tjQuery[method] = function (url, data, callback, type) {\r\n\r\n\t\t\t\t\t\t\t// Shift arguments if data argument was omitted\r\n\t\t\t\t\t\t\tif (isFunction(data)) {\r\n\t\t\t\t\t\t\t\ttype = type || callback;\r\n\t\t\t\t\t\t\t\tcallback = data;\r\n\t\t\t\t\t\t\t\tdata = undefined;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// The url can be an options object (which then must have .url)\r\n\t\t\t\t\t\t\treturn jQuery.ajax(jQuery.extend({\r\n\t\t\t\t\t\t\t\turl: url,\r\n\t\t\t\t\t\t\t\ttype: method,\r\n\t\t\t\t\t\t\t\tdataType: type,\r\n\t\t\t\t\t\t\t\tdata: data,\r\n\t\t\t\t\t\t\t\tsuccess: callback\r\n\t\t\t\t\t\t\t}, jQuery.isPlainObject(url) && url));\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.ajaxPrefilter(function (s) {\r\n\t\t\t\t\t\tvar i;\r\n\t\t\t\t\t\tfor (i in s.headers) {\r\n\t\t\t\t\t\t\tif (i.toLowerCase() === \"content-type\") {\r\n\t\t\t\t\t\t\t\ts.contentType = s.headers[i] || \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tjQuery._evalUrl = function (url, options, doc) {\r\n\t\t\t\t\t\treturn jQuery.ajax({\r\n\t\t\t\t\t\t\turl: url,\r\n\r\n\t\t\t\t\t\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\r\n\t\t\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\t\t\tdataType: \"script\",\r\n\t\t\t\t\t\t\tcache: true,\r\n\t\t\t\t\t\t\tasync: false,\r\n\t\t\t\t\t\t\tglobal: false,\r\n\r\n\t\t\t\t\t\t\t// Only evaluate the response if it is successful (gh-4126)\r\n\t\t\t\t\t\t\t// dataFilter is not invoked for failure responses, so using it instead\r\n\t\t\t\t\t\t\t// of the default converter is kludgy but it works.\r\n\t\t\t\t\t\t\tconverters: {\r\n\t\t\t\t\t\t\t\t\"text script\": function () { }\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tdataFilter: function (response) {\r\n\t\t\t\t\t\t\t\tjQuery.globalEval(response, options, doc);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\t\t\t\t\t\twrapAll: function (html) {\r\n\t\t\t\t\t\t\tvar wrap;\r\n\r\n\t\t\t\t\t\t\tif (this[0]) {\r\n\t\t\t\t\t\t\t\tif (isFunction(html)) {\r\n\t\t\t\t\t\t\t\t\thtml = html.call(this[0]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// The elements to wrap the target around\r\n\t\t\t\t\t\t\t\twrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\r\n\r\n\t\t\t\t\t\t\t\tif (this[0].parentNode) {\r\n\t\t\t\t\t\t\t\t\twrap.insertBefore(this[0]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\twrap.map(function () {\r\n\t\t\t\t\t\t\t\t\tvar elem = this;\r\n\r\n\t\t\t\t\t\t\t\t\twhile (elem.firstElementChild) {\r\n\t\t\t\t\t\t\t\t\t\telem = elem.firstElementChild;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn elem;\r\n\t\t\t\t\t\t\t\t}).append(this);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\twrapInner: function (html) {\r\n\t\t\t\t\t\t\tif (isFunction(html)) {\r\n\t\t\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\t\t\tjQuery(this).wrapInner(html.call(this, i));\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn this.each(function () {\r\n\t\t\t\t\t\t\t\tvar self = jQuery(this),\r\n\t\t\t\t\t\t\t\t\tcontents = self.contents();\r\n\r\n\t\t\t\t\t\t\t\tif (contents.length) {\r\n\t\t\t\t\t\t\t\t\tcontents.wrapAll(html);\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tself.append(html);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\twrap: function (html) {\r\n\t\t\t\t\t\t\tvar htmlIsFunction = isFunction(html);\r\n\r\n\t\t\t\t\t\t\treturn this.each(function (i) {\r\n\t\t\t\t\t\t\t\tjQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tunwrap: function (selector) {\r\n\t\t\t\t\t\t\tthis.parent(selector).not(\"body\").each(function () {\r\n\t\t\t\t\t\t\t\tjQuery(this).replaceWith(this.childNodes);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tjQuery.expr.pseudos.hidden = function (elem) {\r\n\t\t\t\t\t\treturn !jQuery.expr.pseudos.visible(elem);\r\n\t\t\t\t\t};\r\n\t\t\t\t\tjQuery.expr.pseudos.visible = function (elem) {\r\n\t\t\t\t\t\treturn !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.ajaxSettings.xhr = function () {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\treturn new window.XMLHttpRequest();\r\n\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar xhrSuccessStatus = {\r\n\r\n\t\t\t\t\t\t// File protocol always yields status code 0, assume 200\r\n\t\t\t\t\t\t0: 200,\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t// #1450: sometimes IE returns 1223 when it should be 204\r\n\t\t\t\t\t\t1223: 204\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\txhrSupported = jQuery.ajaxSettings.xhr();\r\n\r\n\t\t\t\t\tsupport.cors = !!xhrSupported && (\"withCredentials\" in xhrSupported);\r\n\t\t\t\t\tsupport.ajax = xhrSupported = !!xhrSupported;\r\n\r\n\t\t\t\t\tjQuery.ajaxTransport(function (options) {\r\n\t\t\t\t\t\tvar callback, errorCallback;\r\n\r\n\t\t\t\t\t\t// Cross domain only allowed if supported through XMLHttpRequest\r\n\t\t\t\t\t\tif (support.cors || xhrSupported && !options.crossDomain) {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tsend: function (headers, complete) {\r\n\t\t\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\t\t\txhr = options.xhr();\r\n\r\n\t\t\t\t\t\t\t\t\txhr.open(\r\n\t\t\t\t\t\t\t\t\t\toptions.type,\r\n\t\t\t\t\t\t\t\t\t\toptions.url,\r\n\t\t\t\t\t\t\t\t\t\toptions.async,\r\n\t\t\t\t\t\t\t\t\t\toptions.username,\r\n\t\t\t\t\t\t\t\t\t\toptions.password\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t// Apply custom fields if provided\r\n\t\t\t\t\t\t\t\t\tif (options.xhrFields) {\r\n\t\t\t\t\t\t\t\t\t\tfor (i in options.xhrFields) {\r\n\t\t\t\t\t\t\t\t\t\t\txhr[i] = options.xhrFields[i];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Override mime type if needed\r\n\t\t\t\t\t\t\t\t\tif (options.mimeType && xhr.overrideMimeType) {\r\n\t\t\t\t\t\t\t\t\t\txhr.overrideMimeType(options.mimeType);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// X-Requested-With header\r\n\t\t\t\t\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\r\n\t\t\t\t\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\r\n\t\t\t\t\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\r\n\t\t\t\t\t\t\t\t\t// For same-domain requests, won't change header if already provided.\r\n\t\t\t\t\t\t\t\t\tif (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n\t\t\t\t\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Set headers\r\n\t\t\t\t\t\t\t\t\tfor (i in headers) {\r\n\t\t\t\t\t\t\t\t\t\txhr.setRequestHeader(i, headers[i]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Callback\r\n\t\t\t\t\t\t\t\t\tcallback = function (type) {\r\n\t\t\t\t\t\t\t\t\t\treturn function () {\r\n\t\t\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (type === \"abort\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txhr.abort();\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (type === \"error\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (typeof xhr.status !== \"number\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomplete(0, \"error\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomplete(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txhr.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txhr.statusText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcomplete(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txhrSuccessStatus[xhr.status] || xhr.status,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txhr.statusText,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(xhr.responseType || \"text\") !== \"text\" ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t// Listen to events\r\n\t\t\t\t\t\t\t\t\txhr.onload = callback();\r\n\t\t\t\t\t\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t\t\t\t\t\t// Use onreadystatechange to replace onabort\r\n\t\t\t\t\t\t\t\t\t// to handle uncaught aborts\r\n\t\t\t\t\t\t\t\t\tif (xhr.onabort !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\txhr.onabort = errorCallback;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\txhr.onreadystatechange = function () {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Check readyState before timeout as it changes\r\n\t\t\t\t\t\t\t\t\t\t\tif (xhr.readyState === 4) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Allow onerror to be called first,\r\n\t\t\t\t\t\t\t\t\t\t\t\t// but that will not handle a native abort\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Also, save errorCallback to a variable\r\n\t\t\t\t\t\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\r\n\t\t\t\t\t\t\t\t\t\t\t\twindow.setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrorCallback();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Create the abort callback\r\n\t\t\t\t\t\t\t\t\tcallback = callback(\"abort\");\r\n\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Do send the request (this may raise an exception)\r\n\t\t\t\t\t\t\t\t\t\txhr.send(options.hasContent && options.data || null);\r\n\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\r\n\t\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\tabort: function () {\r\n\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\r\n\t\t\t\t\tjQuery.ajaxPrefilter(function (s) {\r\n\t\t\t\t\t\tif (s.crossDomain) {\r\n\t\t\t\t\t\t\ts.contents.script = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Install script dataType\r\n\t\t\t\t\tjQuery.ajaxSetup({\r\n\t\t\t\t\t\taccepts: {\r\n\t\t\t\t\t\t\tscript: \"text/javascript, application/javascript, \" +\r\n\t\t\t\t\t\t\t\t\"application/ecmascript, application/x-ecmascript\"\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontents: {\r\n\t\t\t\t\t\t\tscript: /\\b(?:java|ecma)script\\b/\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tconverters: {\r\n\t\t\t\t\t\t\t\"text script\": function (text) {\r\n\t\t\t\t\t\t\t\tjQuery.globalEval(text);\r\n\t\t\t\t\t\t\t\treturn text;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Handle cache's special case and crossDomain\r\n\t\t\t\t\tjQuery.ajaxPrefilter(\"script\", function (s) {\r\n\t\t\t\t\t\tif (s.cache === undefined) {\r\n\t\t\t\t\t\t\ts.cache = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (s.crossDomain) {\r\n\t\t\t\t\t\t\ts.type = \"GET\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Bind script tag hack transport\r\n\t\t\t\t\tjQuery.ajaxTransport(\"script\", function (s) {\r\n\r\n\t\t\t\t\t\t// This transport only deals with cross domain or forced-by-attrs requests\r\n\t\t\t\t\t\tif (s.crossDomain || s.scriptAttrs) {\r\n\t\t\t\t\t\t\tvar script, callback;\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tsend: function (_, complete) {\r\n\t\t\t\t\t\t\t\t\tscript = jQuery(\"<script>\")\r\n\t\t\t\t\t\t\t\t\t\t.attr(s.scriptAttrs || {})\r\n\t\t\t\t\t\t\t\t\t\t.prop({ charset: s.scriptCharset, src: s.url })\r\n\t\t\t\t\t\t\t\t\t\t.on(\"load error\", callback = function (evt) {\r\n\t\t\t\t\t\t\t\t\t\t\tscript.remove();\r\n\t\t\t\t\t\t\t\t\t\t\tcallback = null;\r\n\t\t\t\t\t\t\t\t\t\t\tif (evt) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tcomplete(evt.type === \"error\" ? 404 : 200, evt.type);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\r\n\t\t\t\t\t\t\t\t\tdocument.head.appendChild(script[0]);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tabort: function () {\r\n\t\t\t\t\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar oldCallbacks = [],\r\n\t\t\t\t\t\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\r\n\r\n\t\t\t\t\t// Default jsonp settings\r\n\t\t\t\t\tjQuery.ajaxSetup({\r\n\t\t\t\t\t\tjsonp: \"callback\",\r\n\t\t\t\t\t\tjsonpCallback: function () {\r\n\t\t\t\t\t\t\tvar callback = oldCallbacks.pop() || (jQuery.expando + \"_\" + (nonce.guid++));\r\n\t\t\t\t\t\t\tthis[callback] = true;\r\n\t\t\t\t\t\t\treturn callback;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Detect, normalize options and install callbacks for jsonp requests\r\n\t\t\t\t\tjQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\r\n\r\n\t\t\t\t\t\tvar callbackName, overwritten, responseContainer,\r\n\t\t\t\t\t\t\tjsonProp = s.jsonp !== false && (rjsonp.test(s.url) ?\r\n\t\t\t\t\t\t\t\t\"url\" :\r\n\t\t\t\t\t\t\t\ttypeof s.data === \"string\" &&\r\n\t\t\t\t\t\t\t\t(s.contentType || \"\")\r\n\t\t\t\t\t\t\t\t\t.indexOf(\"application/x-www-form-urlencoded\") === 0 &&\r\n\t\t\t\t\t\t\t\trjsonp.test(s.data) && \"data\"\r\n\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\r\n\t\t\t\t\t\tif (jsonProp || s.dataTypes[0] === \"jsonp\") {\r\n\r\n\t\t\t\t\t\t\t// Get callback name, remembering preexisting value associated with it\r\n\t\t\t\t\t\t\tcallbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ?\r\n\t\t\t\t\t\t\t\ts.jsonpCallback() :\r\n\t\t\t\t\t\t\t\ts.jsonpCallback;\r\n\r\n\t\t\t\t\t\t\t// Insert callback into url or form data\r\n\t\t\t\t\t\t\tif (jsonProp) {\r\n\t\t\t\t\t\t\t\ts[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\r\n\t\t\t\t\t\t\t} else if (s.jsonp !== false) {\r\n\t\t\t\t\t\t\t\ts.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Use data converter to retrieve json after script execution\r\n\t\t\t\t\t\t\ts.converters[\"script json\"] = function () {\r\n\t\t\t\t\t\t\t\tif (!responseContainer) {\r\n\t\t\t\t\t\t\t\t\tjQuery.error(callbackName + \" was not called\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn responseContainer[0];\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Force json dataType\r\n\t\t\t\t\t\t\ts.dataTypes[0] = \"json\";\r\n\r\n\t\t\t\t\t\t\t// Install callback\r\n\t\t\t\t\t\t\toverwritten = window[callbackName];\r\n\t\t\t\t\t\t\twindow[callbackName] = function () {\r\n\t\t\t\t\t\t\t\tresponseContainer = arguments;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Clean-up function (fires after converters)\r\n\t\t\t\t\t\t\tjqXHR.always(function () {\r\n\r\n\t\t\t\t\t\t\t\t// If previous value didn't exist - remove it\r\n\t\t\t\t\t\t\t\tif (overwritten === undefined) {\r\n\t\t\t\t\t\t\t\t\tjQuery(window).removeProp(callbackName);\r\n\r\n\t\t\t\t\t\t\t\t\t// Otherwise restore preexisting value\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twindow[callbackName] = overwritten;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Save back as free\r\n\t\t\t\t\t\t\t\tif (s[callbackName]) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Make sure that re-using the options doesn't screw things around\r\n\t\t\t\t\t\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\r\n\r\n\t\t\t\t\t\t\t\t\t// Save the callback name for future use\r\n\t\t\t\t\t\t\t\t\toldCallbacks.push(callbackName);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Call if it was a function and we have a response\r\n\t\t\t\t\t\t\t\tif (responseContainer && isFunction(overwritten)) {\r\n\t\t\t\t\t\t\t\t\toverwritten(responseContainer[0]);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tresponseContainer = overwritten = undefined;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Delegate to script\r\n\t\t\t\t\t\t\treturn \"script\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Support: Safari 8 only\r\n\t\t\t\t\t// In Safari 8 documents created via document.implementation.createHTMLDocument\r\n\t\t\t\t\t// collapse sibling forms: the second one becomes a child of the first one.\r\n\t\t\t\t\t// Because of that, this security measure has to be disabled in Safari 8.\r\n\t\t\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=137337\r\n\t\t\t\t\tsupport.createHTMLDocument = (function () {\r\n\t\t\t\t\t\tvar body = document.implementation.createHTMLDocument(\"\").body;\r\n\t\t\t\t\t\tbody.innerHTML = \"<form></form><form></form>\";\r\n\t\t\t\t\t\treturn body.childNodes.length === 2;\r\n\t\t\t\t\t})();\r\n\r\n\r\n\t\t\t\t\t// Argument \"data\" should be string of html\r\n\t\t\t\t\t// context (optional): If specified, the fragment will be created in this context,\r\n\t\t\t\t\t// defaults to document\r\n\t\t\t\t\t// keepScripts (optional): If true, will include scripts passed in the html string\r\n\t\t\t\t\tjQuery.parseHTML = function (data, context, keepScripts) {\r\n\t\t\t\t\t\tif (typeof data !== \"string\") {\r\n\t\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (typeof context === \"boolean\") {\r\n\t\t\t\t\t\t\tkeepScripts = context;\r\n\t\t\t\t\t\t\tcontext = false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar base, parsed, scripts;\r\n\r\n\t\t\t\t\t\tif (!context) {\r\n\r\n\t\t\t\t\t\t\t// Stop scripts or inline event handlers from being executed immediately\r\n\t\t\t\t\t\t\t// by using document.implementation\r\n\t\t\t\t\t\t\tif (support.createHTMLDocument) {\r\n\t\t\t\t\t\t\t\tcontext = document.implementation.createHTMLDocument(\"\");\r\n\r\n\t\t\t\t\t\t\t\t// Set the base href for the created document\r\n\t\t\t\t\t\t\t\t// so any parsed elements with URLs\r\n\t\t\t\t\t\t\t\t// are based on the document's URL (gh-2965)\r\n\t\t\t\t\t\t\t\tbase = context.createElement(\"base\");\r\n\t\t\t\t\t\t\t\tbase.href = document.location.href;\r\n\t\t\t\t\t\t\t\tcontext.head.appendChild(base);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcontext = document;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparsed = rsingleTag.exec(data);\r\n\t\t\t\t\t\tscripts = !keepScripts && [];\r\n\r\n\t\t\t\t\t\t// Single tag\r\n\t\t\t\t\t\tif (parsed) {\r\n\t\t\t\t\t\t\treturn [context.createElement(parsed[1])];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparsed = buildFragment([data], context, scripts);\r\n\r\n\t\t\t\t\t\tif (scripts && scripts.length) {\r\n\t\t\t\t\t\t\tjQuery(scripts).remove();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn jQuery.merge([], parsed.childNodes);\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Load a url into a page\r\n\t\t\t\t\t */\r\n\t\t\t\t\tjQuery.fn.load = function (url, params, callback) {\r\n\t\t\t\t\t\tvar selector, type, response,\r\n\t\t\t\t\t\t\tself = this,\r\n\t\t\t\t\t\t\toff = url.indexOf(\" \");\r\n\r\n\t\t\t\t\t\tif (off > -1) {\r\n\t\t\t\t\t\t\tselector = stripAndCollapse(url.slice(off));\r\n\t\t\t\t\t\t\turl = url.slice(0, off);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If it's a function\r\n\t\t\t\t\t\tif (isFunction(params)) {\r\n\r\n\t\t\t\t\t\t\t// We assume that it's the callback\r\n\t\t\t\t\t\t\tcallback = params;\r\n\t\t\t\t\t\t\tparams = undefined;\r\n\r\n\t\t\t\t\t\t\t// Otherwise, build a param string\r\n\t\t\t\t\t\t} else if (params && typeof params === \"object\") {\r\n\t\t\t\t\t\t\ttype = \"POST\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If we have elements to modify, make the request\r\n\t\t\t\t\t\tif (self.length > 0) {\r\n\t\t\t\t\t\t\tjQuery.ajax({\r\n\t\t\t\t\t\t\t\turl: url,\r\n\r\n\t\t\t\t\t\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\r\n\t\t\t\t\t\t\t\t// Make value of this field explicit since\r\n\t\t\t\t\t\t\t\t// user can override it through ajaxSetup method\r\n\t\t\t\t\t\t\t\ttype: type || \"GET\",\r\n\t\t\t\t\t\t\t\tdataType: \"html\",\r\n\t\t\t\t\t\t\t\tdata: params\r\n\t\t\t\t\t\t\t}).done(function (responseText) {\r\n\r\n\t\t\t\t\t\t\t\t// Save response for use in complete callback\r\n\t\t\t\t\t\t\t\tresponse = arguments;\r\n\r\n\t\t\t\t\t\t\t\tself.html(selector ?\r\n\r\n\t\t\t\t\t\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\r\n\t\t\t\t\t\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\r\n\t\t\t\t\t\t\t\t\tjQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) :\r\n\r\n\t\t\t\t\t\t\t\t\t// Otherwise use the full result\r\n\t\t\t\t\t\t\t\t\tresponseText);\r\n\r\n\t\t\t\t\t\t\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\r\n\t\t\t\t\t\t\t\t// but they are ignored because response was set above.\r\n\t\t\t\t\t\t\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\r\n\t\t\t\t\t\t\t}).always(callback && function (jqXHR, status) {\r\n\t\t\t\t\t\t\t\tself.each(function () {\r\n\t\t\t\t\t\t\t\t\tcallback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.expr.pseudos.animated = function (elem) {\r\n\t\t\t\t\t\treturn jQuery.grep(jQuery.timers, function (fn) {\r\n\t\t\t\t\t\t\treturn elem === fn.elem;\r\n\t\t\t\t\t\t}).length;\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.offset = {\r\n\t\t\t\t\t\tsetOffset: function (elem, options, i) {\r\n\t\t\t\t\t\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\r\n\t\t\t\t\t\t\t\tposition = jQuery.css(elem, \"position\"),\r\n\t\t\t\t\t\t\t\tcurElem = jQuery(elem),\r\n\t\t\t\t\t\t\t\tprops = {};\r\n\r\n\t\t\t\t\t\t\t// Set position first, in-case top/left are set even on static elem\r\n\t\t\t\t\t\t\tif (position === \"static\") {\r\n\t\t\t\t\t\t\t\telem.style.position = \"relative\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcurOffset = curElem.offset();\r\n\t\t\t\t\t\t\tcurCSSTop = jQuery.css(elem, \"top\");\r\n\t\t\t\t\t\t\tcurCSSLeft = jQuery.css(elem, \"left\");\r\n\t\t\t\t\t\t\tcalculatePosition = (position === \"absolute\" || position === \"fixed\") &&\r\n\t\t\t\t\t\t\t\t(curCSSTop + curCSSLeft).indexOf(\"auto\") > -1;\r\n\r\n\t\t\t\t\t\t\t// Need to be able to calculate position if either\r\n\t\t\t\t\t\t\t// top or left is auto and position is either absolute or fixed\r\n\t\t\t\t\t\t\tif (calculatePosition) {\r\n\t\t\t\t\t\t\t\tcurPosition = curElem.position();\r\n\t\t\t\t\t\t\t\tcurTop = curPosition.top;\r\n\t\t\t\t\t\t\t\tcurLeft = curPosition.left;\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcurTop = parseFloat(curCSSTop) || 0;\r\n\t\t\t\t\t\t\t\tcurLeft = parseFloat(curCSSLeft) || 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (isFunction(options)) {\r\n\r\n\t\t\t\t\t\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\r\n\t\t\t\t\t\t\t\toptions = options.call(elem, i, jQuery.extend({}, curOffset));\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (options.top != null) {\r\n\t\t\t\t\t\t\t\tprops.top = (options.top - curOffset.top) + curTop;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (options.left != null) {\r\n\t\t\t\t\t\t\t\tprops.left = (options.left - curOffset.left) + curLeft;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (\"using\" in options) {\r\n\t\t\t\t\t\t\t\toptions.using.call(elem, props);\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcurElem.css(props);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\t\t\t// offset() relates an element's border box to the document origin\r\n\t\t\t\t\t\toffset: function (options) {\r\n\r\n\t\t\t\t\t\t\t// Preserve chaining for setter\r\n\t\t\t\t\t\t\tif (arguments.length) {\r\n\t\t\t\t\t\t\t\treturn options === undefined ?\r\n\t\t\t\t\t\t\t\t\tthis :\r\n\t\t\t\t\t\t\t\t\tthis.each(function (i) {\r\n\t\t\t\t\t\t\t\t\t\tjQuery.offset.setOffset(this, options, i);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar rect, win,\r\n\t\t\t\t\t\t\t\telem = this[0];\r\n\r\n\t\t\t\t\t\t\tif (!elem) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\r\n\t\t\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t\t\t// Running getBoundingClientRect on a\r\n\t\t\t\t\t\t\t// disconnected node in IE throws an error\r\n\t\t\t\t\t\t\tif (!elem.getClientRects().length) {\r\n\t\t\t\t\t\t\t\treturn { top: 0, left: 0 };\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\r\n\t\t\t\t\t\t\trect = elem.getBoundingClientRect();\r\n\t\t\t\t\t\t\twin = elem.ownerDocument.defaultView;\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\ttop: rect.top + win.pageYOffset,\r\n\t\t\t\t\t\t\t\tleft: rect.left + win.pageXOffset\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// position() relates an element's margin box to its offset parent's padding box\r\n\t\t\t\t\t\t// This corresponds to the behavior of CSS absolute positioning\r\n\t\t\t\t\t\tposition: function () {\r\n\t\t\t\t\t\t\tif (!this[0]) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar offsetParent, offset, doc,\r\n\t\t\t\t\t\t\t\telem = this[0],\r\n\t\t\t\t\t\t\t\tparentOffset = { top: 0, left: 0 };\r\n\r\n\t\t\t\t\t\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\r\n\t\t\t\t\t\t\tif (jQuery.css(elem, \"position\") === \"fixed\") {\r\n\r\n\t\t\t\t\t\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\r\n\t\t\t\t\t\t\t\toffset = elem.getBoundingClientRect();\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\toffset = this.offset();\r\n\r\n\t\t\t\t\t\t\t\t// Account for the *real* offset parent, which can be the document or its root element\r\n\t\t\t\t\t\t\t\t// when a statically positioned element is identified\r\n\t\t\t\t\t\t\t\tdoc = elem.ownerDocument;\r\n\t\t\t\t\t\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\r\n\t\t\t\t\t\t\t\twhile (offsetParent &&\r\n\t\t\t\t\t\t\t\t\t(offsetParent === doc.body || offsetParent === doc.documentElement) &&\r\n\t\t\t\t\t\t\t\t\tjQuery.css(offsetParent, \"position\") === \"static\") {\r\n\r\n\t\t\t\t\t\t\t\t\toffsetParent = offsetParent.parentNode;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\r\n\r\n\t\t\t\t\t\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\r\n\t\t\t\t\t\t\t\t\tparentOffset = jQuery(offsetParent).offset();\r\n\t\t\t\t\t\t\t\t\tparentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\r\n\t\t\t\t\t\t\t\t\tparentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Subtract parent offsets and element margins\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\ttop: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\r\n\t\t\t\t\t\t\t\tleft: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t// This method will return documentElement in the following cases:\r\n\t\t\t\t\t\t// 1) For the element inside the iframe without offsetParent, this method will return\r\n\t\t\t\t\t\t//    documentElement of the parent window\r\n\t\t\t\t\t\t// 2) For the hidden or detached element\r\n\t\t\t\t\t\t// 3) For body or html element, i.e. in case of the html node - it will return itself\r\n\t\t\t\t\t\t//\r\n\t\t\t\t\t\t// but those exceptions were never presented as a real life use-cases\r\n\t\t\t\t\t\t// and might be considered as more preferable results.\r\n\t\t\t\t\t\t//\r\n\t\t\t\t\t\t// This logic, however, is not guaranteed and can change at any point in the future\r\n\t\t\t\t\t\toffsetParent: function () {\r\n\t\t\t\t\t\t\treturn this.map(function () {\r\n\t\t\t\t\t\t\t\tvar offsetParent = this.offsetParent;\r\n\r\n\t\t\t\t\t\t\t\twhile (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\r\n\t\t\t\t\t\t\t\t\toffsetParent = offsetParent.offsetParent;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn offsetParent || documentElement;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Create scrollLeft and scrollTop methods\r\n\t\t\t\t\tjQuery.each({ scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function (method, prop) {\r\n\t\t\t\t\t\tvar top = \"pageYOffset\" === prop;\r\n\r\n\t\t\t\t\t\tjQuery.fn[method] = function (val) {\r\n\t\t\t\t\t\t\treturn access(this, function (elem, method, val) {\r\n\r\n\t\t\t\t\t\t\t\t// Coalesce documents and windows\r\n\t\t\t\t\t\t\t\tvar win;\r\n\t\t\t\t\t\t\t\tif (isWindow(elem)) {\r\n\t\t\t\t\t\t\t\t\twin = elem;\r\n\t\t\t\t\t\t\t\t} else if (elem.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\twin = elem.defaultView;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (val === undefined) {\r\n\t\t\t\t\t\t\t\t\treturn win ? win[prop] : elem[method];\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (win) {\r\n\t\t\t\t\t\t\t\t\twin.scrollTo(\r\n\t\t\t\t\t\t\t\t\t\t!top ? val : win.pageXOffset,\r\n\t\t\t\t\t\t\t\t\t\ttop ? val : win.pageYOffset\r\n\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\telem[method] = val;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, method, val, arguments.length);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Support: Safari <=7 - 9.1, Chrome <=37 - 49\r\n\t\t\t\t\t// Add the top/left cssHooks using jQuery.fn.position\r\n\t\t\t\t\t// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\r\n\t\t\t\t\t// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\r\n\t\t\t\t\t// getComputedStyle returns percent when specified for top/left/bottom/right;\r\n\t\t\t\t\t// rather than make the css module depend on the offset module, just check for it here\r\n\t\t\t\t\tjQuery.each([\"top\", \"left\"], function (_i, prop) {\r\n\t\t\t\t\t\tjQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition,\r\n\t\t\t\t\t\t\tfunction (elem, computed) {\r\n\t\t\t\t\t\t\t\tif (computed) {\r\n\t\t\t\t\t\t\t\t\tcomputed = curCSS(elem, prop);\r\n\r\n\t\t\t\t\t\t\t\t\t// If curCSS returns percentage, fallback to offset\r\n\t\t\t\t\t\t\t\t\treturn rnumnonpx.test(computed) ?\r\n\t\t\t\t\t\t\t\t\t\tjQuery(elem).position()[prop] + \"px\" :\r\n\t\t\t\t\t\t\t\t\t\tcomputed;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\r\n\t\t\t\t\tjQuery.each({ Height: \"height\", Width: \"width\" }, function (name, type) {\r\n\t\t\t\t\t\tjQuery.each({\r\n\t\t\t\t\t\t\tpadding: \"inner\" + name,\r\n\t\t\t\t\t\t\tcontent: type,\r\n\t\t\t\t\t\t\t\"\": \"outer\" + name\r\n\t\t\t\t\t\t}, function (defaultExtra, funcName) {\r\n\r\n\t\t\t\t\t\t\t// Margin is only for outerHeight, outerWidth\r\n\t\t\t\t\t\t\tjQuery.fn[funcName] = function (margin, value) {\r\n\t\t\t\t\t\t\t\tvar chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\r\n\t\t\t\t\t\t\t\t\textra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\r\n\r\n\t\t\t\t\t\t\t\treturn access(this, function (elem, type, value) {\r\n\t\t\t\t\t\t\t\t\tvar doc;\r\n\r\n\t\t\t\t\t\t\t\t\tif (isWindow(elem)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\r\n\t\t\t\t\t\t\t\t\t\treturn funcName.indexOf(\"outer\") === 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\telem[\"inner\" + name] :\r\n\t\t\t\t\t\t\t\t\t\t\telem.document.documentElement[\"client\" + name];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Get document width or height\r\n\t\t\t\t\t\t\t\t\tif (elem.nodeType === 9) {\r\n\t\t\t\t\t\t\t\t\t\tdoc = elem.documentElement;\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\r\n\t\t\t\t\t\t\t\t\t\t// whichever is greatest\r\n\t\t\t\t\t\t\t\t\t\treturn Math.max(\r\n\t\t\t\t\t\t\t\t\t\t\telem.body[\"scroll\" + name], doc[\"scroll\" + name],\r\n\t\t\t\t\t\t\t\t\t\t\telem.body[\"offset\" + name], doc[\"offset\" + name],\r\n\t\t\t\t\t\t\t\t\t\t\tdoc[\"client\" + name]\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn value === undefined ?\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\r\n\t\t\t\t\t\t\t\t\t\tjQuery.css(elem, type, extra) :\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Set width or height on the element\r\n\t\t\t\t\t\t\t\t\t\tjQuery.style(elem, type, value, extra);\r\n\t\t\t\t\t\t\t\t}, type, chainable ? margin : undefined, chainable);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\tjQuery.each([\r\n\t\t\t\t\t\t\"ajaxStart\",\r\n\t\t\t\t\t\t\"ajaxStop\",\r\n\t\t\t\t\t\t\"ajaxComplete\",\r\n\t\t\t\t\t\t\"ajaxError\",\r\n\t\t\t\t\t\t\"ajaxSuccess\",\r\n\t\t\t\t\t\t\"ajaxSend\"\r\n\t\t\t\t\t], function (_i, type) {\r\n\t\t\t\t\t\tjQuery.fn[type] = function (fn) {\r\n\t\t\t\t\t\t\treturn this.on(type, fn);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tjQuery.fn.extend({\r\n\r\n\t\t\t\t\t\tbind: function (types, data, fn) {\r\n\t\t\t\t\t\t\treturn this.on(types, null, data, fn);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tunbind: function (types, fn) {\r\n\t\t\t\t\t\t\treturn this.off(types, null, fn);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\tdelegate: function (selector, types, data, fn) {\r\n\t\t\t\t\t\t\treturn this.on(types, selector, data, fn);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tundelegate: function (selector, types, fn) {\r\n\r\n\t\t\t\t\t\t\t// ( namespace ) or ( selector, types [, fn] )\r\n\t\t\t\t\t\t\treturn arguments.length === 1 ?\r\n\t\t\t\t\t\t\t\tthis.off(selector, \"**\") :\r\n\t\t\t\t\t\t\t\tthis.off(types, selector || \"**\", fn);\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\thover: function (fnOver, fnOut) {\r\n\t\t\t\t\t\t\treturn this.mouseenter(fnOver).mouseleave(fnOut || fnOver);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tjQuery.each(\r\n\t\t\t\t\t\t(\"blur focus focusin focusout resize scroll click dblclick \" +\r\n\t\t\t\t\t\t\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\r\n\t\t\t\t\t\t\t\"change select submit keydown keypress keyup contextmenu\").split(\" \"),\r\n\t\t\t\t\t\tfunction (_i, name) {\r\n\r\n\t\t\t\t\t\t\t// Handle event binding\r\n\t\t\t\t\t\t\tjQuery.fn[name] = function (data, fn) {\r\n\t\t\t\t\t\t\t\treturn arguments.length > 0 ?\r\n\t\t\t\t\t\t\t\t\tthis.on(name, null, data, fn) :\r\n\t\t\t\t\t\t\t\t\tthis.trigger(name);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// Support: Android <=4.0 only\r\n\t\t\t\t\t// Make sure we trim BOM and NBSP\r\n\t\t\t\t\tvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\r\n\r\n\t\t\t\t\t// Bind a function to a context, optionally partially applying any\r\n\t\t\t\t\t// arguments.\r\n\t\t\t\t\t// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\r\n\t\t\t\t\t// However, it is not slated for removal any time soon\r\n\t\t\t\t\tjQuery.proxy = function (fn, context) {\r\n\t\t\t\t\t\tvar tmp, args, proxy;\r\n\r\n\t\t\t\t\t\tif (typeof context === \"string\") {\r\n\t\t\t\t\t\t\ttmp = fn[context];\r\n\t\t\t\t\t\t\tcontext = fn;\r\n\t\t\t\t\t\t\tfn = tmp;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Quick check to determine if target is callable, in the spec\r\n\t\t\t\t\t\t// this throws a TypeError, but we will just return undefined.\r\n\t\t\t\t\t\tif (!isFunction(fn)) {\r\n\t\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Simulated bind\r\n\t\t\t\t\t\targs = slice.call(arguments, 2);\r\n\t\t\t\t\t\tproxy = function () {\r\n\t\t\t\t\t\t\treturn fn.apply(context || this, args.concat(slice.call(arguments)));\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\r\n\t\t\t\t\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\r\n\r\n\t\t\t\t\t\treturn proxy;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.holdReady = function (hold) {\r\n\t\t\t\t\t\tif (hold) {\r\n\t\t\t\t\t\t\tjQuery.readyWait++;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tjQuery.ready(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\tjQuery.isArray = Array.isArray;\r\n\t\t\t\t\tjQuery.parseJSON = JSON.parse;\r\n\t\t\t\t\tjQuery.nodeName = nodeName;\r\n\t\t\t\t\tjQuery.isFunction = isFunction;\r\n\t\t\t\t\tjQuery.isWindow = isWindow;\r\n\t\t\t\t\tjQuery.camelCase = camelCase;\r\n\t\t\t\t\tjQuery.type = toType;\r\n\r\n\t\t\t\t\tjQuery.now = Date.now;\r\n\r\n\t\t\t\t\tjQuery.isNumeric = function (obj) {\r\n\r\n\t\t\t\t\t\t// As of jQuery 3.0, isNumeric is limited to\r\n\t\t\t\t\t\t// strings and numbers (primitives or objects)\r\n\t\t\t\t\t\t// that can be coerced to finite numbers (gh-2662)\r\n\t\t\t\t\t\tvar type = jQuery.type(obj);\r\n\t\t\t\t\t\treturn (type === \"number\" || type === \"string\") &&\r\n\r\n\t\t\t\t\t\t\t// parseFloat NaNs numeric-cast false positives (\"\")\r\n\t\t\t\t\t\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n\t\t\t\t\t\t\t// subtraction forces infinities to NaN\r\n\t\t\t\t\t\t\t!isNaN(obj - parseFloat(obj));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tjQuery.trim = function (text) {\r\n\t\t\t\t\t\treturn text == null ?\r\n\t\t\t\t\t\t\t\"\" :\r\n\t\t\t\t\t\t\t(text + \"\").replace(rtrim, \"\");\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\t\t\t\t\t// Register as a named AMD module, since jQuery can be concatenated with other\r\n\t\t\t\t\t// files that may use define, but not via a proper concatenation script that\r\n\t\t\t\t\t// understands anonymous AMD modules. A named AMD is safest and most robust\r\n\t\t\t\t\t// way to register. Lowercase jquery is used because AMD module names are\r\n\t\t\t\t\t// derived from file names, and jQuery is normally delivered in a lowercase\r\n\t\t\t\t\t// file name. Do this after creating the global so that if an AMD module wants\r\n\t\t\t\t\t// to call noConflict to hide this version of jQuery, it will work.\r\n\r\n\t\t\t\t\t// Note that for maximum portability, libraries that are not jQuery should\r\n\t\t\t\t\t// declare themselves as anonymous modules, and avoid setting a global if an\r\n\t\t\t\t\t// AMD loader is present. jQuery is a special case. For more information, see\r\n\t\t\t\t\t// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\r\n\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\r\n\t\t\t\t\t\t\treturn jQuery;\r\n\t\t\t\t\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar\r\n\r\n\t\t\t\t\t\t// Map over jQuery in case of overwrite\r\n\t\t\t\t\t\t_jQuery = window.jQuery,\r\n\r\n\t\t\t\t\t\t// Map over the $ in case of overwrite\r\n\t\t\t\t\t\t_$ = window.$;\r\n\r\n\t\t\t\t\tjQuery.noConflict = function (deep) {\r\n\t\t\t\t\t\tif (window.$ === jQuery) {\r\n\t\t\t\t\t\t\twindow.$ = _$;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (deep && window.jQuery === jQuery) {\r\n\t\t\t\t\t\t\twindow.jQuery = _jQuery;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn jQuery;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Expose jQuery and $ identifiers, even in AMD\r\n\t\t\t\t\t// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\r\n\t\t\t\t\t// and CommonJS for browser emulators (#13566)\r\n\t\t\t\t\tif (typeof noGlobal === \"undefined\") {\r\n\t\t\t\t\t\twindow.jQuery = window.$ = jQuery;\r\n\t\t\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t\t\treturn jQuery;\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 751:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * Masonry v4.2.2\r\n * Cascading grid layout library\r\n * https://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\t/* jshint strict: false */ /*globals define, module, require */\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\r\n\t\t\t\t\t\t\t__webpack_require__(794),\r\n\t\t\t\t\t\t\t__webpack_require__(131)\r\n\t\t\t\t\t\t], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(window, function factory(Outlayer, getSize) {\r\n\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\t// -------------------------- masonryDefinition -------------------------- //\r\n\r\n\t\t\t\t\t// create an Outlayer layout class\r\n\t\t\t\t\tvar Masonry = Outlayer.create('masonry');\r\n\t\t\t\t\t// isFitWidth -> fitWidth\r\n\t\t\t\t\tMasonry.compatOptions.fitWidth = 'isFitWidth';\r\n\r\n\t\t\t\t\tvar proto = Masonry.prototype;\r\n\r\n\t\t\t\t\tproto._resetLayout = function () {\r\n\t\t\t\t\t\tthis.getSize();\r\n\t\t\t\t\t\tthis._getMeasurement('columnWidth', 'outerWidth');\r\n\t\t\t\t\t\tthis._getMeasurement('gutter', 'outerWidth');\r\n\t\t\t\t\t\tthis.measureColumns();\r\n\r\n\t\t\t\t\t\t// reset column Y\r\n\t\t\t\t\t\tthis.colYs = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < this.cols; i++) {\r\n\t\t\t\t\t\t\tthis.colYs.push(0);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.maxY = 0;\r\n\t\t\t\t\t\tthis.horizontalColIndex = 0;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.measureColumns = function () {\r\n\t\t\t\t\t\tthis.getContainerWidth();\r\n\t\t\t\t\t\t// if columnWidth is 0, default to outerWidth of first item\r\n\t\t\t\t\t\tif (!this.columnWidth) {\r\n\t\t\t\t\t\t\tvar firstItem = this.items[0];\r\n\t\t\t\t\t\t\tvar firstItemElem = firstItem && firstItem.element;\r\n\t\t\t\t\t\t\t// columnWidth fall back to item of first element\r\n\t\t\t\t\t\t\tthis.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth ||\r\n\t\t\t\t\t\t\t\t// if first elem has no width, default to size of container\r\n\t\t\t\t\t\t\t\tthis.containerWidth;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar columnWidth = this.columnWidth += this.gutter;\r\n\r\n\t\t\t\t\t\t// calculate columns\r\n\t\t\t\t\t\tvar containerWidth = this.containerWidth + this.gutter;\r\n\t\t\t\t\t\tvar cols = containerWidth / columnWidth;\r\n\t\t\t\t\t\t// fix rounding errors, typically with gutters\r\n\t\t\t\t\t\tvar excess = columnWidth - containerWidth % columnWidth;\r\n\t\t\t\t\t\t// if overshoot is less than a pixel, round up, otherwise floor it\r\n\t\t\t\t\t\tvar mathMethod = excess && excess < 1 ? 'round' : 'floor';\r\n\t\t\t\t\t\tcols = Math[mathMethod](cols);\r\n\t\t\t\t\t\tthis.cols = Math.max(cols, 1);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.getContainerWidth = function () {\r\n\t\t\t\t\t\t// container is parent if fit width\r\n\t\t\t\t\t\tvar isFitWidth = this._getOption('fitWidth');\r\n\t\t\t\t\t\tvar container = isFitWidth ? this.element.parentNode : this.element;\r\n\t\t\t\t\t\t// check that this.size and size are there\r\n\t\t\t\t\t\t// IE8 triggers resize on body size change, so they might not be\r\n\t\t\t\t\t\tvar size = getSize(container);\r\n\t\t\t\t\t\tthis.containerWidth = size && size.innerWidth;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._getItemLayoutPosition = function (item) {\r\n\t\t\t\t\t\titem.getSize();\r\n\t\t\t\t\t\t// how many columns does this brick span\r\n\t\t\t\t\t\tvar remainder = item.size.outerWidth % this.columnWidth;\r\n\t\t\t\t\t\tvar mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\r\n\t\t\t\t\t\t// round if off by 1 pixel, otherwise use ceil\r\n\t\t\t\t\t\tvar colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth);\r\n\t\t\t\t\t\tcolSpan = Math.min(colSpan, this.cols);\r\n\t\t\t\t\t\t// use horizontal or top column position\r\n\t\t\t\t\t\tvar colPosMethod = this.options.horizontalOrder ?\r\n\t\t\t\t\t\t\t'_getHorizontalColPosition' : '_getTopColPosition';\r\n\t\t\t\t\t\tvar colPosition = this[colPosMethod](colSpan, item);\r\n\t\t\t\t\t\t// position the brick\r\n\t\t\t\t\t\tvar position = {\r\n\t\t\t\t\t\t\tx: this.columnWidth * colPosition.col,\r\n\t\t\t\t\t\t\ty: colPosition.y\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\t// apply setHeight to necessary columns\r\n\t\t\t\t\t\tvar setHeight = colPosition.y + item.size.outerHeight;\r\n\t\t\t\t\t\tvar setMax = colSpan + colPosition.col;\r\n\t\t\t\t\t\tfor (var i = colPosition.col; i < setMax; i++) {\r\n\t\t\t\t\t\t\tthis.colYs[i] = setHeight;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn position;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._getTopColPosition = function (colSpan) {\r\n\t\t\t\t\t\tvar colGroup = this._getTopColGroup(colSpan);\r\n\t\t\t\t\t\t// get the minimum Y value from the columns\r\n\t\t\t\t\t\tvar minimumY = Math.min.apply(Math, colGroup);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tcol: colGroup.indexOf(minimumY),\r\n\t\t\t\t\t\t\ty: minimumY,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @param {Number} colSpan - number of columns the element spans\r\n\t\t\t\t\t * @returns {Array} colGroup\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getTopColGroup = function (colSpan) {\r\n\t\t\t\t\t\tif (colSpan < 2) {\r\n\t\t\t\t\t\t\t// if brick spans only one column, use all the column Ys\r\n\t\t\t\t\t\t\treturn this.colYs;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar colGroup = [];\r\n\t\t\t\t\t\t// how many different places could this brick fit horizontally\r\n\t\t\t\t\t\tvar groupCount = this.cols + 1 - colSpan;\r\n\t\t\t\t\t\t// for each group potential horizontal position\r\n\t\t\t\t\t\tfor (var i = 0; i < groupCount; i++) {\r\n\t\t\t\t\t\t\tcolGroup[i] = this._getColGroupY(i, colSpan);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn colGroup;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._getColGroupY = function (col, colSpan) {\r\n\t\t\t\t\t\tif (colSpan < 2) {\r\n\t\t\t\t\t\t\treturn this.colYs[col];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// make an array of colY values for that one group\r\n\t\t\t\t\t\tvar groupColYs = this.colYs.slice(col, col + colSpan);\r\n\t\t\t\t\t\t// and get the max value of the array\r\n\t\t\t\t\t\treturn Math.max.apply(Math, groupColYs);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// get column position based on horizontal index. #873\r\n\t\t\t\t\tproto._getHorizontalColPosition = function (colSpan, item) {\r\n\t\t\t\t\t\tvar col = this.horizontalColIndex % this.cols;\r\n\t\t\t\t\t\tvar isOver = colSpan > 1 && col + colSpan > this.cols;\r\n\t\t\t\t\t\t// shift to next row if item can't fit on current row\r\n\t\t\t\t\t\tcol = isOver ? 0 : col;\r\n\t\t\t\t\t\t// don't let zero-size items take up space\r\n\t\t\t\t\t\tvar hasSize = item.size.outerWidth && item.size.outerHeight;\r\n\t\t\t\t\t\tthis.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tcol: col,\r\n\t\t\t\t\t\t\ty: this._getColGroupY(col, colSpan),\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._manageStamp = function (stamp) {\r\n\t\t\t\t\t\tvar stampSize = getSize(stamp);\r\n\t\t\t\t\t\tvar offset = this._getElementOffset(stamp);\r\n\t\t\t\t\t\t// get the columns that this stamp affects\r\n\t\t\t\t\t\tvar isOriginLeft = this._getOption('originLeft');\r\n\t\t\t\t\t\tvar firstX = isOriginLeft ? offset.left : offset.right;\r\n\t\t\t\t\t\tvar lastX = firstX + stampSize.outerWidth;\r\n\t\t\t\t\t\tvar firstCol = Math.floor(firstX / this.columnWidth);\r\n\t\t\t\t\t\tfirstCol = Math.max(0, firstCol);\r\n\t\t\t\t\t\tvar lastCol = Math.floor(lastX / this.columnWidth);\r\n\t\t\t\t\t\t// lastCol should not go over if multiple of columnWidth #425\r\n\t\t\t\t\t\tlastCol -= lastX % this.columnWidth ? 0 : 1;\r\n\t\t\t\t\t\tlastCol = Math.min(this.cols - 1, lastCol);\r\n\t\t\t\t\t\t// set colYs to bottom of the stamp\r\n\r\n\t\t\t\t\t\tvar isOriginTop = this._getOption('originTop');\r\n\t\t\t\t\t\tvar stampMaxY = (isOriginTop ? offset.top : offset.bottom) +\r\n\t\t\t\t\t\t\tstampSize.outerHeight;\r\n\t\t\t\t\t\tfor (var i = firstCol; i <= lastCol; i++) {\r\n\t\t\t\t\t\t\tthis.colYs[i] = Math.max(stampMaxY, this.colYs[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._getContainerSize = function () {\r\n\t\t\t\t\t\tthis.maxY = Math.max.apply(Math, this.colYs);\r\n\t\t\t\t\t\tvar size = {\r\n\t\t\t\t\t\t\theight: this.maxY\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (this._getOption('fitWidth')) {\r\n\t\t\t\t\t\t\tsize.width = this._getContainerFitWidth();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn size;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._getContainerFitWidth = function () {\r\n\t\t\t\t\t\tvar unusedCols = 0;\r\n\t\t\t\t\t\t// count unused columns\r\n\t\t\t\t\t\tvar i = this.cols;\r\n\t\t\t\t\t\twhile (--i) {\r\n\t\t\t\t\t\t\tif (this.colYs[i] !== 0) {\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tunusedCols++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// fit container to columns that have been used\r\n\t\t\t\t\t\treturn (this.cols - unusedCols) * this.columnWidth - this.gutter;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.needsResizeLayout = function () {\r\n\t\t\t\t\t\tvar previousWidth = this.containerWidth;\r\n\t\t\t\t\t\tthis.getContainerWidth();\r\n\t\t\t\t\t\treturn previousWidth != this.containerWidth;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\treturn Masonry;\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 652:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\r\n * Outlayer Item\r\n */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\t/* jshint strict: false */ /* globals define, module, require */\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD - RequireJS\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\r\n\t\t\t\t\t\t\t__webpack_require__(158),\r\n\t\t\t\t\t\t\t__webpack_require__(131)\r\n\t\t\t\t\t\t], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(window, function factory(EvEmitter, getSize) {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\t// ----- helpers ----- //\r\n\r\n\t\t\t\t\tfunction isEmptyObj(obj) {\r\n\t\t\t\t\t\tfor (var prop in obj) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tprop = null;\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// -------------------------- CSS3 support -------------------------- //\r\n\r\n\r\n\t\t\t\t\tvar docElemStyle = document.documentElement.style;\r\n\r\n\t\t\t\t\tvar transitionProperty = typeof docElemStyle.transition == 'string' ?\r\n\t\t\t\t\t\t'transition' : 'WebkitTransition';\r\n\t\t\t\t\tvar transformProperty = typeof docElemStyle.transform == 'string' ?\r\n\t\t\t\t\t\t'transform' : 'WebkitTransform';\r\n\r\n\t\t\t\t\tvar transitionEndEvent = {\r\n\t\t\t\t\t\tWebkitTransition: 'webkitTransitionEnd',\r\n\t\t\t\t\t\ttransition: 'transitionend'\r\n\t\t\t\t\t}[transitionProperty];\r\n\r\n\t\t\t\t\t// cache all vendor properties that could have vendor prefix\r\n\t\t\t\t\tvar vendorProperties = {\r\n\t\t\t\t\t\ttransform: transformProperty,\r\n\t\t\t\t\t\ttransition: transitionProperty,\r\n\t\t\t\t\t\ttransitionDuration: transitionProperty + 'Duration',\r\n\t\t\t\t\t\ttransitionProperty: transitionProperty + 'Property',\r\n\t\t\t\t\t\ttransitionDelay: transitionProperty + 'Delay'\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- Item -------------------------- //\r\n\r\n\t\t\t\t\tfunction Item(element, layout) {\r\n\t\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.element = element;\r\n\t\t\t\t\t\t// parent layout class, i.e. Masonry, Isotope, or Packery\r\n\t\t\t\t\t\tthis.layout = layout;\r\n\t\t\t\t\t\tthis.position = {\r\n\t\t\t\t\t\t\tx: 0,\r\n\t\t\t\t\t\t\ty: 0\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tthis._create();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// inherit EvEmitter\r\n\t\t\t\t\tvar proto = Item.prototype = Object.create(EvEmitter.prototype);\r\n\t\t\t\t\tproto.constructor = Item;\r\n\r\n\t\t\t\t\tproto._create = function () {\r\n\t\t\t\t\t\t// transition objects\r\n\t\t\t\t\t\tthis._transn = {\r\n\t\t\t\t\t\t\tingProperties: {},\r\n\t\t\t\t\t\t\tclean: {},\r\n\t\t\t\t\t\t\tonEnd: {}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tthis.css({\r\n\t\t\t\t\t\t\tposition: 'absolute'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// trigger specified handler for event type\r\n\t\t\t\t\tproto.handleEvent = function (event) {\r\n\t\t\t\t\t\tvar method = 'on' + event.type;\r\n\t\t\t\t\t\tif (this[method]) {\r\n\t\t\t\t\t\t\tthis[method](event);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.getSize = function () {\r\n\t\t\t\t\t\tthis.size = getSize(this.element);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * apply CSS styles to element\r\n\t\t\t\t\t * @param {Object} style\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.css = function (style) {\r\n\t\t\t\t\t\tvar elemStyle = this.element.style;\r\n\r\n\t\t\t\t\t\tfor (var prop in style) {\r\n\t\t\t\t\t\t\t// use vendor property if available\r\n\t\t\t\t\t\t\tvar supportedProp = vendorProperties[prop] || prop;\r\n\t\t\t\t\t\t\telemStyle[supportedProp] = style[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// measure position, and sets it\r\n\t\t\t\t\tproto.getPosition = function () {\r\n\t\t\t\t\t\tvar style = getComputedStyle(this.element);\r\n\t\t\t\t\t\tvar isOriginLeft = this.layout._getOption('originLeft');\r\n\t\t\t\t\t\tvar isOriginTop = this.layout._getOption('originTop');\r\n\t\t\t\t\t\tvar xValue = style[isOriginLeft ? 'left' : 'right'];\r\n\t\t\t\t\t\tvar yValue = style[isOriginTop ? 'top' : 'bottom'];\r\n\t\t\t\t\t\tvar x = parseFloat(xValue);\r\n\t\t\t\t\t\tvar y = parseFloat(yValue);\r\n\t\t\t\t\t\t// convert percent to pixels\r\n\t\t\t\t\t\tvar layoutSize = this.layout.size;\r\n\t\t\t\t\t\tif (xValue.indexOf('%') != -1) {\r\n\t\t\t\t\t\t\tx = (x / 100) * layoutSize.width;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (yValue.indexOf('%') != -1) {\r\n\t\t\t\t\t\t\ty = (y / 100) * layoutSize.height;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// clean up 'auto' or other non-integer values\r\n\t\t\t\t\t\tx = isNaN(x) ? 0 : x;\r\n\t\t\t\t\t\ty = isNaN(y) ? 0 : y;\r\n\t\t\t\t\t\t// remove padding from measurement\r\n\t\t\t\t\t\tx -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\r\n\t\t\t\t\t\ty -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\r\n\r\n\t\t\t\t\t\tthis.position.x = x;\r\n\t\t\t\t\t\tthis.position.y = y;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// set settled position, apply padding\r\n\t\t\t\t\tproto.layoutPosition = function () {\r\n\t\t\t\t\t\tvar layoutSize = this.layout.size;\r\n\t\t\t\t\t\tvar style = {};\r\n\t\t\t\t\t\tvar isOriginLeft = this.layout._getOption('originLeft');\r\n\t\t\t\t\t\tvar isOriginTop = this.layout._getOption('originTop');\r\n\r\n\t\t\t\t\t\t// x\r\n\t\t\t\t\t\tvar xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\r\n\t\t\t\t\t\tvar xProperty = isOriginLeft ? 'left' : 'right';\r\n\t\t\t\t\t\tvar xResetProperty = isOriginLeft ? 'right' : 'left';\r\n\r\n\t\t\t\t\t\tvar x = this.position.x + layoutSize[xPadding];\r\n\t\t\t\t\t\t// set in percentage or pixels\r\n\t\t\t\t\t\tstyle[xProperty] = this.getXValue(x);\r\n\t\t\t\t\t\t// reset other property\r\n\t\t\t\t\t\tstyle[xResetProperty] = '';\r\n\r\n\t\t\t\t\t\t// y\r\n\t\t\t\t\t\tvar yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\r\n\t\t\t\t\t\tvar yProperty = isOriginTop ? 'top' : 'bottom';\r\n\t\t\t\t\t\tvar yResetProperty = isOriginTop ? 'bottom' : 'top';\r\n\r\n\t\t\t\t\t\tvar y = this.position.y + layoutSize[yPadding];\r\n\t\t\t\t\t\t// set in percentage or pixels\r\n\t\t\t\t\t\tstyle[yProperty] = this.getYValue(y);\r\n\t\t\t\t\t\t// reset other property\r\n\t\t\t\t\t\tstyle[yResetProperty] = '';\r\n\r\n\t\t\t\t\t\tthis.css(style);\r\n\t\t\t\t\t\tthis.emitEvent('layout', [this]);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.getXValue = function (x) {\r\n\t\t\t\t\t\tvar isHorizontal = this.layout._getOption('horizontal');\r\n\t\t\t\t\t\treturn this.layout.options.percentPosition && !isHorizontal ?\r\n\t\t\t\t\t\t\t((x / this.layout.size.width) * 100) + '%' : x + 'px';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.getYValue = function (y) {\r\n\t\t\t\t\t\tvar isHorizontal = this.layout._getOption('horizontal');\r\n\t\t\t\t\t\treturn this.layout.options.percentPosition && isHorizontal ?\r\n\t\t\t\t\t\t\t((y / this.layout.size.height) * 100) + '%' : y + 'px';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._transitionTo = function (x, y) {\r\n\t\t\t\t\t\tthis.getPosition();\r\n\t\t\t\t\t\t// get current x & y from top/left\r\n\t\t\t\t\t\tvar curX = this.position.x;\r\n\t\t\t\t\t\tvar curY = this.position.y;\r\n\r\n\t\t\t\t\t\tvar didNotMove = x == this.position.x && y == this.position.y;\r\n\r\n\t\t\t\t\t\t// save end position\r\n\t\t\t\t\t\tthis.setPosition(x, y);\r\n\r\n\t\t\t\t\t\t// if did not move and not transitioning, just go to layout\r\n\t\t\t\t\t\tif (didNotMove && !this.isTransitioning) {\r\n\t\t\t\t\t\t\tthis.layoutPosition();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar transX = x - curX;\r\n\t\t\t\t\t\tvar transY = y - curY;\r\n\t\t\t\t\t\tvar transitionStyle = {};\r\n\t\t\t\t\t\ttransitionStyle.transform = this.getTranslate(transX, transY);\r\n\r\n\t\t\t\t\t\tthis.transition({\r\n\t\t\t\t\t\t\tto: transitionStyle,\r\n\t\t\t\t\t\t\tonTransitionEnd: {\r\n\t\t\t\t\t\t\t\ttransform: this.layoutPosition\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tisCleaning: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.getTranslate = function (x, y) {\r\n\t\t\t\t\t\t// flip cooridinates if origin on right or bottom\r\n\t\t\t\t\t\tvar isOriginLeft = this.layout._getOption('originLeft');\r\n\t\t\t\t\t\tvar isOriginTop = this.layout._getOption('originTop');\r\n\t\t\t\t\t\tx = isOriginLeft ? x : -x;\r\n\t\t\t\t\t\ty = isOriginTop ? y : -y;\r\n\t\t\t\t\t\treturn 'translate3d(' + x + 'px, ' + y + 'px, 0)';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// non transition + transform support\r\n\t\t\t\t\tproto.goTo = function (x, y) {\r\n\t\t\t\t\t\tthis.setPosition(x, y);\r\n\t\t\t\t\t\tthis.layoutPosition();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.moveTo = proto._transitionTo;\r\n\r\n\t\t\t\t\tproto.setPosition = function (x, y) {\r\n\t\t\t\t\t\tthis.position.x = parseFloat(x);\r\n\t\t\t\t\t\tthis.position.y = parseFloat(y);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- transition ----- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @param {Object} style - CSS\r\n\t\t\t\t\t * @param {Function} onTransitionEnd\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\t// non transition, just trigger callback\r\n\t\t\t\t\tproto._nonTransition = function (args) {\r\n\t\t\t\t\t\tthis.css(args.to);\r\n\t\t\t\t\t\tif (args.isCleaning) {\r\n\t\t\t\t\t\t\tthis._removeStyles(args.to);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (var prop in args.onTransitionEnd) {\r\n\t\t\t\t\t\t\targs.onTransitionEnd[prop].call(this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * proper transition\r\n\t\t\t\t\t * @param {Object} args - arguments\r\n\t\t\t\t\t *   @param {Object} to - style to transition to\r\n\t\t\t\t\t *   @param {Object} from - style to start transition from\r\n\t\t\t\t\t *   @param {Boolean} isCleaning - removes transition styles after transition\r\n\t\t\t\t\t *   @param {Function} onTransitionEnd - callback\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.transition = function (args) {\r\n\t\t\t\t\t\t// redirect to nonTransition if no transition duration\r\n\t\t\t\t\t\tif (!parseFloat(this.layout.options.transitionDuration)) {\r\n\t\t\t\t\t\t\tthis._nonTransition(args);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar _transition = this._transn;\r\n\t\t\t\t\t\t// keep track of onTransitionEnd callback by css property\r\n\t\t\t\t\t\tfor (var prop in args.onTransitionEnd) {\r\n\t\t\t\t\t\t\t_transition.onEnd[prop] = args.onTransitionEnd[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// keep track of properties that are transitioning\r\n\t\t\t\t\t\tfor (prop in args.to) {\r\n\t\t\t\t\t\t\t_transition.ingProperties[prop] = true;\r\n\t\t\t\t\t\t\t// keep track of properties to clean up when transition is done\r\n\t\t\t\t\t\t\tif (args.isCleaning) {\r\n\t\t\t\t\t\t\t\t_transition.clean[prop] = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// set from styles\r\n\t\t\t\t\t\tif (args.from) {\r\n\t\t\t\t\t\t\tthis.css(args.from);\r\n\t\t\t\t\t\t\t// force redraw. http://blog.alexmaccaw.com/css-transitions\r\n\t\t\t\t\t\t\tvar h = this.element.offsetHeight;\r\n\t\t\t\t\t\t\t// hack for JSHint to hush about unused var\r\n\t\t\t\t\t\t\th = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// enable transition\r\n\t\t\t\t\t\tthis.enableTransition(args.to);\r\n\t\t\t\t\t\t// set styles that are transitioning\r\n\t\t\t\t\t\tthis.css(args.to);\r\n\r\n\t\t\t\t\t\tthis.isTransitioning = true;\r\n\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// dash before all cap letters, including first for\r\n\t\t\t\t\t// WebkitTransform => -webkit-transform\r\n\t\t\t\t\tfunction toDashedAll(str) {\r\n\t\t\t\t\t\treturn str.replace(/([A-Z])/g, function ($1) {\r\n\t\t\t\t\t\t\treturn '-' + $1.toLowerCase();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar transitionProps = 'opacity,' + toDashedAll(transformProperty);\r\n\r\n\t\t\t\t\tproto.enableTransition = function (/* style */) {\r\n\t\t\t\t\t\t// HACK changing transitionProperty during a transition\r\n\t\t\t\t\t\t// will cause transition to jump\r\n\t\t\t\t\t\tif (this.isTransitioning) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// make `transition: foo, bar, baz` from style object\r\n\t\t\t\t\t\t// HACK un-comment this when enableTransition can work\r\n\t\t\t\t\t\t// while a transition is happening\r\n\t\t\t\t\t\t// var transitionValues = [];\r\n\t\t\t\t\t\t// for ( var prop in style ) {\r\n\t\t\t\t\t\t//   // dash-ify camelCased properties like WebkitTransition\r\n\t\t\t\t\t\t//   prop = vendorProperties[ prop ] || prop;\r\n\t\t\t\t\t\t//   transitionValues.push( toDashedAll( prop ) );\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t// munge number to millisecond, to match stagger\r\n\t\t\t\t\t\tvar duration = this.layout.options.transitionDuration;\r\n\t\t\t\t\t\tduration = typeof duration == 'number' ? duration + 'ms' : duration;\r\n\t\t\t\t\t\t// enable transition styles\r\n\t\t\t\t\t\tthis.css({\r\n\t\t\t\t\t\t\ttransitionProperty: transitionProps,\r\n\t\t\t\t\t\t\ttransitionDuration: duration,\r\n\t\t\t\t\t\t\ttransitionDelay: this.staggerDelay || 0\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// listen for transition end event\r\n\t\t\t\t\t\tthis.element.addEventListener(transitionEndEvent, this, false);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- events ----- //\r\n\r\n\t\t\t\t\tproto.onwebkitTransitionEnd = function (event) {\r\n\t\t\t\t\t\tthis.ontransitionend(event);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.onotransitionend = function (event) {\r\n\t\t\t\t\t\tthis.ontransitionend(event);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// properties that I munge to make my life easier\r\n\t\t\t\t\tvar dashedVendorProperties = {\r\n\t\t\t\t\t\t'-webkit-transform': 'transform'\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.ontransitionend = function (event) {\r\n\t\t\t\t\t\t// disregard bubbled events from children\r\n\t\t\t\t\t\tif (event.target !== this.element) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar _transition = this._transn;\r\n\t\t\t\t\t\t// get property name of transitioned property, convert to prefix-free\r\n\t\t\t\t\t\tvar propertyName = dashedVendorProperties[event.propertyName] || event.propertyName;\r\n\r\n\t\t\t\t\t\t// remove property that has completed transitioning\r\n\t\t\t\t\t\tdelete _transition.ingProperties[propertyName];\r\n\t\t\t\t\t\t// check if any properties are still transitioning\r\n\t\t\t\t\t\tif (isEmptyObj(_transition.ingProperties)) {\r\n\t\t\t\t\t\t\t// all properties have completed transitioning\r\n\t\t\t\t\t\t\tthis.disableTransition();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// clean style\r\n\t\t\t\t\t\tif (propertyName in _transition.clean) {\r\n\t\t\t\t\t\t\t// clean up style\r\n\t\t\t\t\t\t\tthis.element.style[event.propertyName] = '';\r\n\t\t\t\t\t\t\tdelete _transition.clean[propertyName];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// trigger onTransitionEnd callback\r\n\t\t\t\t\t\tif (propertyName in _transition.onEnd) {\r\n\t\t\t\t\t\t\tvar onTransitionEnd = _transition.onEnd[propertyName];\r\n\t\t\t\t\t\t\tonTransitionEnd.call(this);\r\n\t\t\t\t\t\t\tdelete _transition.onEnd[propertyName];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.emitEvent('transitionEnd', [this]);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.disableTransition = function () {\r\n\t\t\t\t\t\tthis.removeTransitionStyles();\r\n\t\t\t\t\t\tthis.element.removeEventListener(transitionEndEvent, this, false);\r\n\t\t\t\t\t\tthis.isTransitioning = false;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * removes style property from element\r\n\t\t\t\t\t * @param {Object} style\r\n\t\t\t\t\t**/\r\n\t\t\t\t\tproto._removeStyles = function (style) {\r\n\t\t\t\t\t\t// clean up transition styles\r\n\t\t\t\t\t\tvar cleanStyle = {};\r\n\t\t\t\t\t\tfor (var prop in style) {\r\n\t\t\t\t\t\t\tcleanStyle[prop] = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.css(cleanStyle);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar cleanTransitionStyle = {\r\n\t\t\t\t\t\ttransitionProperty: '',\r\n\t\t\t\t\t\ttransitionDuration: '',\r\n\t\t\t\t\t\ttransitionDelay: ''\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.removeTransitionStyles = function () {\r\n\t\t\t\t\t\t// remove transition\r\n\t\t\t\t\t\tthis.css(cleanTransitionStyle);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- stagger ----- //\r\n\r\n\t\t\t\t\tproto.stagger = function (delay) {\r\n\t\t\t\t\t\tdelay = isNaN(delay) ? 0 : delay;\r\n\t\t\t\t\t\tthis.staggerDelay = delay + 'ms';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- show/hide/remove ----- //\r\n\r\n\t\t\t\t\t// remove element from DOM\r\n\t\t\t\t\tproto.removeElem = function () {\r\n\t\t\t\t\t\tthis.element.parentNode.removeChild(this.element);\r\n\t\t\t\t\t\t// remove display: none\r\n\t\t\t\t\t\tthis.css({ display: '' });\r\n\t\t\t\t\t\tthis.emitEvent('remove', [this]);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.remove = function () {\r\n\t\t\t\t\t\t// just remove element if no transition support or no transition\r\n\t\t\t\t\t\tif (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) {\r\n\t\t\t\t\t\t\tthis.removeElem();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// start transition\r\n\t\t\t\t\t\tthis.once('transitionEnd', function () {\r\n\t\t\t\t\t\t\tthis.removeElem();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.hide();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.reveal = function () {\r\n\t\t\t\t\t\tdelete this.isHidden;\r\n\t\t\t\t\t\t// remove display: none\r\n\t\t\t\t\t\tthis.css({ display: '' });\r\n\r\n\t\t\t\t\t\tvar options = this.layout.options;\r\n\r\n\t\t\t\t\t\tvar onTransitionEnd = {};\r\n\t\t\t\t\t\tvar transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\r\n\t\t\t\t\t\tonTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd;\r\n\r\n\t\t\t\t\t\tthis.transition({\r\n\t\t\t\t\t\t\tfrom: options.hiddenStyle,\r\n\t\t\t\t\t\t\tto: options.visibleStyle,\r\n\t\t\t\t\t\t\tisCleaning: true,\r\n\t\t\t\t\t\t\tonTransitionEnd: onTransitionEnd\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.onRevealTransitionEnd = function () {\r\n\t\t\t\t\t\t// check if still visible\r\n\t\t\t\t\t\t// during transition, item may have been hidden\r\n\t\t\t\t\t\tif (!this.isHidden) {\r\n\t\t\t\t\t\t\tthis.emitEvent('reveal');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get style property use for hide/reveal transition end\r\n\t\t\t\t\t * @param {String} styleProperty - hiddenStyle/visibleStyle\r\n\t\t\t\t\t * @returns {String}\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.getHideRevealTransitionEndProperty = function (styleProperty) {\r\n\t\t\t\t\t\tvar optionStyle = this.layout.options[styleProperty];\r\n\t\t\t\t\t\t// use opacity\r\n\t\t\t\t\t\tif (optionStyle.opacity) {\r\n\t\t\t\t\t\t\treturn 'opacity';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// get first property\r\n\t\t\t\t\t\tfor (var prop in optionStyle) {\r\n\t\t\t\t\t\t\treturn prop;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.hide = function () {\r\n\t\t\t\t\t\t// set flag\r\n\t\t\t\t\t\tthis.isHidden = true;\r\n\t\t\t\t\t\t// remove display: none\r\n\t\t\t\t\t\tthis.css({ display: '' });\r\n\r\n\t\t\t\t\t\tvar options = this.layout.options;\r\n\r\n\t\t\t\t\t\tvar onTransitionEnd = {};\r\n\t\t\t\t\t\tvar transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\r\n\t\t\t\t\t\tonTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd;\r\n\r\n\t\t\t\t\t\tthis.transition({\r\n\t\t\t\t\t\t\tfrom: options.visibleStyle,\r\n\t\t\t\t\t\t\tto: options.hiddenStyle,\r\n\t\t\t\t\t\t\t// keep hidden stuff hidden\r\n\t\t\t\t\t\t\tisCleaning: true,\r\n\t\t\t\t\t\t\tonTransitionEnd: onTransitionEnd\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.onHideTransitionEnd = function () {\r\n\t\t\t\t\t\t// check if still hidden\r\n\t\t\t\t\t\t// during transition, item may have been un-hidden\r\n\t\t\t\t\t\tif (this.isHidden) {\r\n\t\t\t\t\t\t\tthis.css({ display: 'none' });\r\n\t\t\t\t\t\t\tthis.emitEvent('hide');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.destroy = function () {\r\n\t\t\t\t\t\tthis.css({\r\n\t\t\t\t\t\t\tposition: '',\r\n\t\t\t\t\t\t\tleft: '',\r\n\t\t\t\t\t\t\tright: '',\r\n\t\t\t\t\t\t\ttop: '',\r\n\t\t\t\t\t\t\tbottom: '',\r\n\t\t\t\t\t\t\ttransition: '',\r\n\t\t\t\t\t\t\ttransform: ''\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\treturn Item;\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 794:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * Outlayer v2.1.1\r\n * the brains and guts of a layout library\r\n * MIT license\r\n */\r\n\r\n\t\t\t\t(function (window, factory) {\r\n\t\t\t\t\t'use strict';\r\n\t\t\t\t\t// universal module definition\r\n\t\t\t\t\t/* jshint strict: false */ /* globals define, module, require */\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD - RequireJS\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\r\n\t\t\t\t\t\t\t__webpack_require__(158),\r\n\t\t\t\t\t\t\t__webpack_require__(131),\r\n\t\t\t\t\t\t\t__webpack_require__(47),\r\n\t\t\t\t\t\t\t__webpack_require__(652)\r\n\t\t\t\t\t\t], __WEBPACK_AMD_DEFINE_RESULT__ = (function (EvEmitter, getSize, utils, Item) {\r\n\t\t\t\t\t\t\treturn factory(window, EvEmitter, getSize, utils, Item);\r\n\t\t\t\t\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\r\n\t\t\t\t}(window, function factory(window, EvEmitter, getSize, utils, Item) {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\t// ----- vars ----- //\r\n\r\n\t\t\t\t\tvar console = window.console;\r\n\t\t\t\t\tvar jQuery = window.jQuery;\r\n\t\t\t\t\tvar noop = function () { };\r\n\r\n\t\t\t\t\t// -------------------------- Outlayer -------------------------- //\r\n\r\n\t\t\t\t\t// globally unique identifiers\r\n\t\t\t\t\tvar GUID = 0;\r\n\t\t\t\t\t// internal store of all Outlayer intances\r\n\t\t\t\t\tvar instances = {};\r\n\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @param {Element, String} element\r\n\t\t\t\t\t * @param {Object} options\r\n\t\t\t\t\t * @constructor\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction Outlayer(element, options) {\r\n\t\t\t\t\t\tvar queryElement = utils.getQueryElement(element);\r\n\t\t\t\t\t\tif (!queryElement) {\r\n\t\t\t\t\t\t\tif (console) {\r\n\t\t\t\t\t\t\t\tconsole.error('Bad element for ' + this.constructor.namespace +\r\n\t\t\t\t\t\t\t\t\t': ' + (queryElement || element));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.element = queryElement;\r\n\t\t\t\t\t\t// add jQuery\r\n\t\t\t\t\t\tif (jQuery) {\r\n\t\t\t\t\t\t\tthis.$element = jQuery(this.element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// options\r\n\t\t\t\t\t\tthis.options = utils.extend({}, this.constructor.defaults);\r\n\t\t\t\t\t\tthis.option(options);\r\n\r\n\t\t\t\t\t\t// add id for Outlayer.getFromElement\r\n\t\t\t\t\t\tvar id = ++GUID;\r\n\t\t\t\t\t\tthis.element.outlayerGUID = id; // expando\r\n\t\t\t\t\t\tinstances[id] = this; // associate via id\r\n\r\n\t\t\t\t\t\t// kick it off\r\n\t\t\t\t\t\tthis._create();\r\n\r\n\t\t\t\t\t\tvar isInitLayout = this._getOption('initLayout');\r\n\t\t\t\t\t\tif (isInitLayout) {\r\n\t\t\t\t\t\t\tthis.layout();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// settings are for internal use only\r\n\t\t\t\t\tOutlayer.namespace = 'outlayer';\r\n\t\t\t\t\tOutlayer.Item = Item;\r\n\r\n\t\t\t\t\t// default options\r\n\t\t\t\t\tOutlayer.defaults = {\r\n\t\t\t\t\t\tcontainerStyle: {\r\n\t\t\t\t\t\t\tposition: 'relative'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinitLayout: true,\r\n\t\t\t\t\t\toriginLeft: true,\r\n\t\t\t\t\t\toriginTop: true,\r\n\t\t\t\t\t\tresize: true,\r\n\t\t\t\t\t\tresizeContainer: true,\r\n\t\t\t\t\t\t// item options\r\n\t\t\t\t\t\ttransitionDuration: '0.4s',\r\n\t\t\t\t\t\thiddenStyle: {\r\n\t\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\t\ttransform: 'scale(0.001)'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tvisibleStyle: {\r\n\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\ttransform: 'scale(1)'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar proto = Outlayer.prototype;\r\n\t\t\t\t\t// inherit EvEmitter\r\n\t\t\t\t\tutils.extend(proto, EvEmitter.prototype);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * set options\r\n\t\t\t\t\t * @param {Object} opts\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.option = function (opts) {\r\n\t\t\t\t\t\tutils.extend(this.options, opts);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get backwards compatible option value, check old name\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getOption = function (option) {\r\n\t\t\t\t\t\tvar oldOption = this.constructor.compatOptions[option];\r\n\t\t\t\t\t\treturn oldOption && this.options[oldOption] !== undefined ?\r\n\t\t\t\t\t\t\tthis.options[oldOption] : this.options[option];\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tOutlayer.compatOptions = {\r\n\t\t\t\t\t\t// currentName: oldName\r\n\t\t\t\t\t\tinitLayout: 'isInitLayout',\r\n\t\t\t\t\t\thorizontal: 'isHorizontal',\r\n\t\t\t\t\t\tlayoutInstant: 'isLayoutInstant',\r\n\t\t\t\t\t\toriginLeft: 'isOriginLeft',\r\n\t\t\t\t\t\toriginTop: 'isOriginTop',\r\n\t\t\t\t\t\tresize: 'isResizeBound',\r\n\t\t\t\t\t\tresizeContainer: 'isResizingContainer'\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._create = function () {\r\n\t\t\t\t\t\t// get items from children\r\n\t\t\t\t\t\tthis.reloadItems();\r\n\t\t\t\t\t\t// elements that affect layout, but are not laid out\r\n\t\t\t\t\t\tthis.stamps = [];\r\n\t\t\t\t\t\tthis.stamp(this.options.stamp);\r\n\t\t\t\t\t\t// set container style\r\n\t\t\t\t\t\tutils.extend(this.element.style, this.options.containerStyle);\r\n\r\n\t\t\t\t\t\t// bind resize method\r\n\t\t\t\t\t\tvar canBindResize = this._getOption('resize');\r\n\t\t\t\t\t\tif (canBindResize) {\r\n\t\t\t\t\t\t\tthis.bindResize();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// goes through all children again and gets bricks in proper order\r\n\t\t\t\t\tproto.reloadItems = function () {\r\n\t\t\t\t\t\t// collection of item elements\r\n\t\t\t\t\t\tthis.items = this._itemize(this.element.children);\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * turn elements into Outlayer.Items to be used in layout\r\n\t\t\t\t\t * @param {Array or NodeList or HTMLElement} elems\r\n\t\t\t\t\t * @returns {Array} items - collection of new Outlayer Items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._itemize = function (elems) {\r\n\r\n\t\t\t\t\t\tvar itemElems = this._filterFindItemElements(elems);\r\n\t\t\t\t\t\tvar Item = this.constructor.Item;\r\n\r\n\t\t\t\t\t\t// create new Outlayer Items for collection\r\n\t\t\t\t\t\tvar items = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < itemElems.length; i++) {\r\n\t\t\t\t\t\t\tvar elem = itemElems[i];\r\n\t\t\t\t\t\t\tvar item = new Item(elem, this);\r\n\t\t\t\t\t\t\titems.push(item);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn items;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get item elements to be used in layout\r\n\t\t\t\t\t * @param {Array or NodeList or HTMLElement} elems\r\n\t\t\t\t\t * @returns {Array} items - item elements\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._filterFindItemElements = function (elems) {\r\n\t\t\t\t\t\treturn utils.filterFindElements(elems, this.options.itemSelector);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * getter method for getting item elements\r\n\t\t\t\t\t * @returns {Array} elems - collection of item elements\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.getItemElements = function () {\r\n\t\t\t\t\t\treturn this.items.map(function (item) {\r\n\t\t\t\t\t\t\treturn item.element;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- init & layout ----- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * lays out all items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.layout = function () {\r\n\t\t\t\t\t\tthis._resetLayout();\r\n\t\t\t\t\t\tthis._manageStamps();\r\n\r\n\t\t\t\t\t\t// don't animate first layout\r\n\t\t\t\t\t\tvar layoutInstant = this._getOption('layoutInstant');\r\n\t\t\t\t\t\tvar isInstant = layoutInstant !== undefined ?\r\n\t\t\t\t\t\t\tlayoutInstant : !this._isLayoutInited;\r\n\t\t\t\t\t\tthis.layoutItems(this.items, isInstant);\r\n\r\n\t\t\t\t\t\t// flag for initalized\r\n\t\t\t\t\t\tthis._isLayoutInited = true;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// _init is alias for layout\r\n\t\t\t\t\tproto._init = proto.layout;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * logic before any new layout\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._resetLayout = function () {\r\n\t\t\t\t\t\tthis.getSize();\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\tproto.getSize = function () {\r\n\t\t\t\t\t\tthis.size = getSize(this.element);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get measurement from option, for columnWidth, rowHeight, gutter\r\n\t\t\t\t\t * if option is String -> get element from selector string, & get size of element\r\n\t\t\t\t\t * if option is Element -> get size of element\r\n\t\t\t\t\t * else use option as a number\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * @param {String} measurement\r\n\t\t\t\t\t * @param {String} size - width or height\r\n\t\t\t\t\t * @private\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getMeasurement = function (measurement, size) {\r\n\t\t\t\t\t\tvar option = this.options[measurement];\r\n\t\t\t\t\t\tvar elem;\r\n\t\t\t\t\t\tif (!option) {\r\n\t\t\t\t\t\t\t// default to 0\r\n\t\t\t\t\t\t\tthis[measurement] = 0;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// use option as an element\r\n\t\t\t\t\t\t\tif (typeof option == 'string') {\r\n\t\t\t\t\t\t\t\telem = this.element.querySelector(option);\r\n\t\t\t\t\t\t\t} else if (option instanceof HTMLElement) {\r\n\t\t\t\t\t\t\t\telem = option;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// use size of element, if element\r\n\t\t\t\t\t\t\tthis[measurement] = elem ? getSize(elem)[size] : option;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * layout a collection of item elements\r\n\t\t\t\t\t * @api public\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.layoutItems = function (items, isInstant) {\r\n\t\t\t\t\t\titems = this._getItemsForLayout(items);\r\n\r\n\t\t\t\t\t\tthis._layoutItems(items, isInstant);\r\n\r\n\t\t\t\t\t\tthis._postLayout();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get the items to be laid out\r\n\t\t\t\t\t * you may want to skip over some items\r\n\t\t\t\t\t * @param {Array} items\r\n\t\t\t\t\t * @returns {Array} items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getItemsForLayout = function (items) {\r\n\t\t\t\t\t\treturn items.filter(function (item) {\r\n\t\t\t\t\t\t\treturn !item.isIgnored;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * layout items\r\n\t\t\t\t\t * @param {Array} items\r\n\t\t\t\t\t * @param {Boolean} isInstant\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._layoutItems = function (items, isInstant) {\r\n\t\t\t\t\t\tthis._emitCompleteOnItems('layout', items);\r\n\r\n\t\t\t\t\t\tif (!items || !items.length) {\r\n\t\t\t\t\t\t\t// no items, emit event with empty array\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar queue = [];\r\n\r\n\t\t\t\t\t\titems.forEach(function (item) {\r\n\t\t\t\t\t\t\t// get x/y object from method\r\n\t\t\t\t\t\t\tvar position = this._getItemLayoutPosition(item);\r\n\t\t\t\t\t\t\t// enqueue\r\n\t\t\t\t\t\t\tposition.item = item;\r\n\t\t\t\t\t\t\tposition.isInstant = isInstant || item.isLayoutInstant;\r\n\t\t\t\t\t\t\tqueue.push(position);\r\n\t\t\t\t\t\t}, this);\r\n\r\n\t\t\t\t\t\tthis._processLayoutQueue(queue);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get item layout position\r\n\t\t\t\t\t * @param {Outlayer.Item} item\r\n\t\t\t\t\t * @returns {Object} x and y position\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getItemLayoutPosition = function ( /* item */) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tx: 0,\r\n\t\t\t\t\t\t\ty: 0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * iterate over array and position each item\r\n\t\t\t\t\t * Reason being - separating this logic prevents 'layout invalidation'\r\n\t\t\t\t\t * thx @paul_irish\r\n\t\t\t\t\t * @param {Array} queue\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._processLayoutQueue = function (queue) {\r\n\t\t\t\t\t\tthis.updateStagger();\r\n\t\t\t\t\t\tqueue.forEach(function (obj, i) {\r\n\t\t\t\t\t\t\tthis._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i);\r\n\t\t\t\t\t\t}, this);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// set stagger from option in milliseconds number\r\n\t\t\t\t\tproto.updateStagger = function () {\r\n\t\t\t\t\t\tvar stagger = this.options.stagger;\r\n\t\t\t\t\t\tif (stagger === null || stagger === undefined) {\r\n\t\t\t\t\t\t\tthis.stagger = 0;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.stagger = getMilliseconds(stagger);\r\n\t\t\t\t\t\treturn this.stagger;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Sets position of item in DOM\r\n\t\t\t\t\t * @param {Outlayer.Item} item\r\n\t\t\t\t\t * @param {Number} x - horizontal position\r\n\t\t\t\t\t * @param {Number} y - vertical position\r\n\t\t\t\t\t * @param {Boolean} isInstant - disables transitions\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._positionItem = function (item, x, y, isInstant, i) {\r\n\t\t\t\t\t\tif (isInstant) {\r\n\t\t\t\t\t\t\t// if not transition, just set CSS\r\n\t\t\t\t\t\t\titem.goTo(x, y);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\titem.stagger(i * this.stagger);\r\n\t\t\t\t\t\t\titem.moveTo(x, y);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Any logic you want to do after each layout,\r\n\t\t\t\t\t * i.e. size the container\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._postLayout = function () {\r\n\t\t\t\t\t\tthis.resizeContainer();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.resizeContainer = function () {\r\n\t\t\t\t\t\tvar isResizingContainer = this._getOption('resizeContainer');\r\n\t\t\t\t\t\tif (!isResizingContainer) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar size = this._getContainerSize();\r\n\t\t\t\t\t\tif (size) {\r\n\t\t\t\t\t\t\tthis._setContainerMeasure(size.width, true);\r\n\t\t\t\t\t\t\tthis._setContainerMeasure(size.height, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Sets width or height of container if returned\r\n\t\t\t\t\t * @returns {Object} size\r\n\t\t\t\t\t *   @param {Number} width\r\n\t\t\t\t\t *   @param {Number} height\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getContainerSize = noop;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @param {Number} measure - size of width or height\r\n\t\t\t\t\t * @param {Boolean} isWidth\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._setContainerMeasure = function (measure, isWidth) {\r\n\t\t\t\t\t\tif (measure === undefined) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar elemSize = this.size;\r\n\t\t\t\t\t\t// add padding and border width if border box\r\n\t\t\t\t\t\tif (elemSize.isBorderBox) {\r\n\t\t\t\t\t\t\tmeasure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\r\n\t\t\t\t\t\t\t\telemSize.borderLeftWidth + elemSize.borderRightWidth :\r\n\t\t\t\t\t\t\t\telemSize.paddingBottom + elemSize.paddingTop +\r\n\t\t\t\t\t\t\t\telemSize.borderTopWidth + elemSize.borderBottomWidth;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmeasure = Math.max(measure, 0);\r\n\t\t\t\t\t\tthis.element.style[isWidth ? 'width' : 'height'] = measure + 'px';\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * emit eventComplete on a collection of items events\r\n\t\t\t\t\t * @param {String} eventName\r\n\t\t\t\t\t * @param {Array} items - Outlayer.Items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._emitCompleteOnItems = function (eventName, items) {\r\n\t\t\t\t\t\tvar _this = this;\r\n\t\t\t\t\t\tfunction onComplete() {\r\n\t\t\t\t\t\t\t_this.dispatchEvent(eventName + 'Complete', null, [items]);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar count = items.length;\r\n\t\t\t\t\t\tif (!items || !count) {\r\n\t\t\t\t\t\t\tonComplete();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar doneCount = 0;\r\n\t\t\t\t\t\tfunction tick() {\r\n\t\t\t\t\t\t\tdoneCount++;\r\n\t\t\t\t\t\t\tif (doneCount == count) {\r\n\t\t\t\t\t\t\t\tonComplete();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// bind callback\r\n\t\t\t\t\t\titems.forEach(function (item) {\r\n\t\t\t\t\t\t\titem.once(eventName, tick);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * emits events via EvEmitter and jQuery events\r\n\t\t\t\t\t * @param {String} type - name of event\r\n\t\t\t\t\t * @param {Event} event - original event\r\n\t\t\t\t\t * @param {Array} args - extra arguments\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.dispatchEvent = function (type, event, args) {\r\n\t\t\t\t\t\t// add original event to arguments\r\n\t\t\t\t\t\tvar emitArgs = event ? [event].concat(args) : args;\r\n\t\t\t\t\t\tthis.emitEvent(type, emitArgs);\r\n\r\n\t\t\t\t\t\tif (jQuery) {\r\n\t\t\t\t\t\t\t// set this.$element\r\n\t\t\t\t\t\t\tthis.$element = this.$element || jQuery(this.element);\r\n\t\t\t\t\t\t\tif (event) {\r\n\t\t\t\t\t\t\t\t// create jQuery event\r\n\t\t\t\t\t\t\t\tvar $event = jQuery.Event(event);\r\n\t\t\t\t\t\t\t\t$event.type = type;\r\n\t\t\t\t\t\t\t\tthis.$element.trigger($event, args);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// just trigger with type if no event available\r\n\t\t\t\t\t\t\t\tthis.$element.trigger(type, args);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- ignore & stamps -------------------------- //\r\n\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * keep item in collection, but do not lay it out\r\n\t\t\t\t\t * ignored items do not get skipped in layout\r\n\t\t\t\t\t * @param {Element} elem\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.ignore = function (elem) {\r\n\t\t\t\t\t\tvar item = this.getItem(elem);\r\n\t\t\t\t\t\tif (item) {\r\n\t\t\t\t\t\t\titem.isIgnored = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * return item to layout collection\r\n\t\t\t\t\t * @param {Element} elem\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.unignore = function (elem) {\r\n\t\t\t\t\t\tvar item = this.getItem(elem);\r\n\t\t\t\t\t\tif (item) {\r\n\t\t\t\t\t\t\tdelete item.isIgnored;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * adds elements to stamps\r\n\t\t\t\t\t * @param {NodeList, Array, Element, or String} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.stamp = function (elems) {\r\n\t\t\t\t\t\telems = this._find(elems);\r\n\t\t\t\t\t\tif (!elems) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.stamps = this.stamps.concat(elems);\r\n\t\t\t\t\t\t// ignore\r\n\t\t\t\t\t\telems.forEach(this.ignore, this);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * removes elements to stamps\r\n\t\t\t\t\t * @param {NodeList, Array, or Element} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.unstamp = function (elems) {\r\n\t\t\t\t\t\telems = this._find(elems);\r\n\t\t\t\t\t\tif (!elems) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\telems.forEach(function (elem) {\r\n\t\t\t\t\t\t\t// filter out removed stamp elements\r\n\t\t\t\t\t\t\tutils.removeFrom(this.stamps, elem);\r\n\t\t\t\t\t\t\tthis.unignore(elem);\r\n\t\t\t\t\t\t}, this);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * finds child elements\r\n\t\t\t\t\t * @param {NodeList, Array, Element, or String} elems\r\n\t\t\t\t\t * @returns {Array} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._find = function (elems) {\r\n\t\t\t\t\t\tif (!elems) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// if string, use argument as selector string\r\n\t\t\t\t\t\tif (typeof elems == 'string') {\r\n\t\t\t\t\t\t\telems = this.element.querySelectorAll(elems);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telems = utils.makeArray(elems);\r\n\t\t\t\t\t\treturn elems;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto._manageStamps = function () {\r\n\t\t\t\t\t\tif (!this.stamps || !this.stamps.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis._getBoundingRect();\r\n\r\n\t\t\t\t\t\tthis.stamps.forEach(this._manageStamp, this);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// update boundingLeft / Top\r\n\t\t\t\t\tproto._getBoundingRect = function () {\r\n\t\t\t\t\t\t// get bounding rect for container element\r\n\t\t\t\t\t\tvar boundingRect = this.element.getBoundingClientRect();\r\n\t\t\t\t\t\tvar size = this.size;\r\n\t\t\t\t\t\tthis._boundingRect = {\r\n\t\t\t\t\t\t\tleft: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\r\n\t\t\t\t\t\t\ttop: boundingRect.top + size.paddingTop + size.borderTopWidth,\r\n\t\t\t\t\t\t\tright: boundingRect.right - (size.paddingRight + size.borderRightWidth),\r\n\t\t\t\t\t\t\tbottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth)\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * @param {Element} stamp\r\n\t\t\t\t\t**/\r\n\t\t\t\t\tproto._manageStamp = noop;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get x/y position of element relative to container element\r\n\t\t\t\t\t * @param {Element} elem\r\n\t\t\t\t\t * @returns {Object} offset - has left, top, right, bottom\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto._getElementOffset = function (elem) {\r\n\t\t\t\t\t\tvar boundingRect = elem.getBoundingClientRect();\r\n\t\t\t\t\t\tvar thisRect = this._boundingRect;\r\n\t\t\t\t\t\tvar size = getSize(elem);\r\n\t\t\t\t\t\tvar offset = {\r\n\t\t\t\t\t\t\tleft: boundingRect.left - thisRect.left - size.marginLeft,\r\n\t\t\t\t\t\t\ttop: boundingRect.top - thisRect.top - size.marginTop,\r\n\t\t\t\t\t\t\tright: thisRect.right - boundingRect.right - size.marginRight,\r\n\t\t\t\t\t\t\tbottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treturn offset;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- resize -------------------------- //\r\n\r\n\t\t\t\t\t// enable event handlers for listeners\r\n\t\t\t\t\t// i.e. resize -> onresize\r\n\t\t\t\t\tproto.handleEvent = utils.handleEvent;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Bind layout to window resizing\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.bindResize = function () {\r\n\t\t\t\t\t\twindow.addEventListener('resize', this);\r\n\t\t\t\t\t\tthis.isResizeBound = true;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Unbind layout to window resizing\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.unbindResize = function () {\r\n\t\t\t\t\t\twindow.removeEventListener('resize', this);\r\n\t\t\t\t\t\tthis.isResizeBound = false;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tproto.onresize = function () {\r\n\t\t\t\t\t\tthis.resize();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tutils.debounceMethod(Outlayer, 'onresize', 100);\r\n\r\n\t\t\t\t\tproto.resize = function () {\r\n\t\t\t\t\t\t// don't trigger if size did not change\r\n\t\t\t\t\t\t// or if resize was unbound. See #9\r\n\t\t\t\t\t\tif (!this.isResizeBound || !this.needsResizeLayout()) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.layout();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * check if layout is needed post layout\r\n\t\t\t\t\t * @returns Boolean\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.needsResizeLayout = function () {\r\n\t\t\t\t\t\tvar size = getSize(this.element);\r\n\t\t\t\t\t\t// check that this.size and size are there\r\n\t\t\t\t\t\t// IE8 triggers resize on body size change, so they might not be\r\n\t\t\t\t\t\tvar hasSizes = this.size && size;\r\n\t\t\t\t\t\treturn hasSizes && size.innerWidth !== this.size.innerWidth;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- methods -------------------------- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * add items to Outlayer instance\r\n\t\t\t\t\t * @param {Array or NodeList or Element} elems\r\n\t\t\t\t\t * @returns {Array} items - Outlayer.Items\r\n\t\t\t\t\t**/\r\n\t\t\t\t\tproto.addItems = function (elems) {\r\n\t\t\t\t\t\tvar items = this._itemize(elems);\r\n\t\t\t\t\t\t// add items to collection\r\n\t\t\t\t\t\tif (items.length) {\r\n\t\t\t\t\t\t\tthis.items = this.items.concat(items);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn items;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Layout newly-appended item elements\r\n\t\t\t\t\t * @param {Array or NodeList or Element} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.appended = function (elems) {\r\n\t\t\t\t\t\tvar items = this.addItems(elems);\r\n\t\t\t\t\t\tif (!items.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// layout and reveal just the new items\r\n\t\t\t\t\t\tthis.layoutItems(items, true);\r\n\t\t\t\t\t\tthis.reveal(items);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Layout prepended elements\r\n\t\t\t\t\t * @param {Array or NodeList or Element} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.prepended = function (elems) {\r\n\t\t\t\t\t\tvar items = this._itemize(elems);\r\n\t\t\t\t\t\tif (!items.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// add items to beginning of collection\r\n\t\t\t\t\t\tvar previousItems = this.items.slice(0);\r\n\t\t\t\t\t\tthis.items = items.concat(previousItems);\r\n\t\t\t\t\t\t// start new layout\r\n\t\t\t\t\t\tthis._resetLayout();\r\n\t\t\t\t\t\tthis._manageStamps();\r\n\t\t\t\t\t\t// layout new stuff without transition\r\n\t\t\t\t\t\tthis.layoutItems(items, true);\r\n\t\t\t\t\t\tthis.reveal(items);\r\n\t\t\t\t\t\t// layout previous items\r\n\t\t\t\t\t\tthis.layoutItems(previousItems);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * reveal a collection of items\r\n\t\t\t\t\t * @param {Array of Outlayer.Items} items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.reveal = function (items) {\r\n\t\t\t\t\t\tthis._emitCompleteOnItems('reveal', items);\r\n\t\t\t\t\t\tif (!items || !items.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar stagger = this.updateStagger();\r\n\t\t\t\t\t\titems.forEach(function (item, i) {\r\n\t\t\t\t\t\t\titem.stagger(i * stagger);\r\n\t\t\t\t\t\t\titem.reveal();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * hide a collection of items\r\n\t\t\t\t\t * @param {Array of Outlayer.Items} items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.hide = function (items) {\r\n\t\t\t\t\t\tthis._emitCompleteOnItems('hide', items);\r\n\t\t\t\t\t\tif (!items || !items.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar stagger = this.updateStagger();\r\n\t\t\t\t\t\titems.forEach(function (item, i) {\r\n\t\t\t\t\t\t\titem.stagger(i * stagger);\r\n\t\t\t\t\t\t\titem.hide();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * reveal item elements\r\n\t\t\t\t\t * @param {Array}, {Element}, {NodeList} items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.revealItemElements = function (elems) {\r\n\t\t\t\t\t\tvar items = this.getItems(elems);\r\n\t\t\t\t\t\tthis.reveal(items);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * hide item elements\r\n\t\t\t\t\t * @param {Array}, {Element}, {NodeList} items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.hideItemElements = function (elems) {\r\n\t\t\t\t\t\tvar items = this.getItems(elems);\r\n\t\t\t\t\t\tthis.hide(items);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get Outlayer.Item, given an Element\r\n\t\t\t\t\t * @param {Element} elem\r\n\t\t\t\t\t * @param {Function} callback\r\n\t\t\t\t\t * @returns {Outlayer.Item} item\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.getItem = function (elem) {\r\n\t\t\t\t\t\t// loop through items to get the one that matches\r\n\t\t\t\t\t\tfor (var i = 0; i < this.items.length; i++) {\r\n\t\t\t\t\t\t\tvar item = this.items[i];\r\n\t\t\t\t\t\t\tif (item.element == elem) {\r\n\t\t\t\t\t\t\t\t// return item\r\n\t\t\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get collection of Outlayer.Items, given Elements\r\n\t\t\t\t\t * @param {Array} elems\r\n\t\t\t\t\t * @returns {Array} items - Outlayer.Items\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.getItems = function (elems) {\r\n\t\t\t\t\t\telems = utils.makeArray(elems);\r\n\t\t\t\t\t\tvar items = [];\r\n\t\t\t\t\t\telems.forEach(function (elem) {\r\n\t\t\t\t\t\t\tvar item = this.getItem(elem);\r\n\t\t\t\t\t\t\tif (item) {\r\n\t\t\t\t\t\t\t\titems.push(item);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this);\r\n\r\n\t\t\t\t\t\treturn items;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * remove element(s) from instance and DOM\r\n\t\t\t\t\t * @param {Array or NodeList or Element} elems\r\n\t\t\t\t\t */\r\n\t\t\t\t\tproto.remove = function (elems) {\r\n\t\t\t\t\t\tvar removeItems = this.getItems(elems);\r\n\r\n\t\t\t\t\t\tthis._emitCompleteOnItems('remove', removeItems);\r\n\r\n\t\t\t\t\t\t// bail if no items to remove\r\n\t\t\t\t\t\tif (!removeItems || !removeItems.length) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tremoveItems.forEach(function (item) {\r\n\t\t\t\t\t\t\titem.remove();\r\n\t\t\t\t\t\t\t// remove item from collection\r\n\t\t\t\t\t\t\tutils.removeFrom(this.items, item);\r\n\t\t\t\t\t\t}, this);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// ----- destroy ----- //\r\n\r\n\t\t\t\t\t// remove and disable Outlayer instance\r\n\t\t\t\t\tproto.destroy = function () {\r\n\t\t\t\t\t\t// clean up dynamic styles\r\n\t\t\t\t\t\tvar style = this.element.style;\r\n\t\t\t\t\t\tstyle.height = '';\r\n\t\t\t\t\t\tstyle.position = '';\r\n\t\t\t\t\t\tstyle.width = '';\r\n\t\t\t\t\t\t// destroy items\r\n\t\t\t\t\t\tthis.items.forEach(function (item) {\r\n\t\t\t\t\t\t\titem.destroy();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tthis.unbindResize();\r\n\r\n\t\t\t\t\t\tvar id = this.element.outlayerGUID;\r\n\t\t\t\t\t\tdelete instances[id]; // remove reference to instance by id\r\n\t\t\t\t\t\tdelete this.element.outlayerGUID;\r\n\t\t\t\t\t\t// remove data for jQuery\r\n\t\t\t\t\t\tif (jQuery) {\r\n\t\t\t\t\t\t\tjQuery.removeData(this.element, this.constructor.namespace);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// -------------------------- data -------------------------- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * get Outlayer instance from element\r\n\t\t\t\t\t * @param {Element} elem\r\n\t\t\t\t\t * @returns {Outlayer}\r\n\t\t\t\t\t */\r\n\t\t\t\t\tOutlayer.data = function (elem) {\r\n\t\t\t\t\t\telem = utils.getQueryElement(elem);\r\n\t\t\t\t\t\tvar id = elem && elem.outlayerGUID;\r\n\t\t\t\t\t\treturn id && instances[id];\r\n\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t// -------------------------- create Outlayer class -------------------------- //\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * create a layout class\r\n\t\t\t\t\t * @param {String} namespace\r\n\t\t\t\t\t */\r\n\t\t\t\t\tOutlayer.create = function (namespace, options) {\r\n\t\t\t\t\t\t// sub-class Outlayer\r\n\t\t\t\t\t\tvar Layout = subclass(Outlayer);\r\n\t\t\t\t\t\t// apply new options and compatOptions\r\n\t\t\t\t\t\tLayout.defaults = utils.extend({}, Outlayer.defaults);\r\n\t\t\t\t\t\tutils.extend(Layout.defaults, options);\r\n\t\t\t\t\t\tLayout.compatOptions = utils.extend({}, Outlayer.compatOptions);\r\n\r\n\t\t\t\t\t\tLayout.namespace = namespace;\r\n\r\n\t\t\t\t\t\tLayout.data = Outlayer.data;\r\n\r\n\t\t\t\t\t\t// sub-class Item\r\n\t\t\t\t\t\tLayout.Item = subclass(Item);\r\n\r\n\t\t\t\t\t\t// -------------------------- declarative -------------------------- //\r\n\r\n\t\t\t\t\t\tutils.htmlInit(Layout, namespace);\r\n\r\n\t\t\t\t\t\t// -------------------------- jQuery bridge -------------------------- //\r\n\r\n\t\t\t\t\t\t// make into jQuery plugin\r\n\t\t\t\t\t\tif (jQuery && jQuery.bridget) {\r\n\t\t\t\t\t\t\tjQuery.bridget(namespace, Layout);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn Layout;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction subclass(Parent) {\r\n\t\t\t\t\t\tfunction SubClass() {\r\n\t\t\t\t\t\t\tParent.apply(this, arguments);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tSubClass.prototype = Object.create(Parent.prototype);\r\n\t\t\t\t\t\tSubClass.prototype.constructor = SubClass;\r\n\r\n\t\t\t\t\t\treturn SubClass;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// ----- helpers ----- //\r\n\r\n\t\t\t\t\t// how many milliseconds are in each unit\r\n\t\t\t\t\tvar msUnits = {\r\n\t\t\t\t\t\tms: 1,\r\n\t\t\t\t\t\ts: 1000\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// munge time-like parameter into millisecond number\r\n\t\t\t\t\t// '0.4s' -> 40\r\n\t\t\t\t\tfunction getMilliseconds(time) {\r\n\t\t\t\t\t\tif (typeof time == 'number') {\r\n\t\t\t\t\t\t\treturn time;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar matches = time.match(/(^\\d*\\.?\\d*)(\\w*)/);\r\n\t\t\t\t\t\tvar num = matches && matches[1];\r\n\t\t\t\t\t\tvar unit = matches && matches[2];\r\n\t\t\t\t\t\tif (!num.length) {\r\n\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnum = parseFloat(num);\r\n\t\t\t\t\t\tvar mult = msUnits[unit] || 1;\r\n\t\t\t\t\t\treturn num * mult;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// ----- fin ----- //\r\n\r\n\t\t\t\t\t// back in global\r\n\t\t\t\t\tOutlayer.Item = Item;\r\n\r\n\t\t\t\t\treturn Outlayer;\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 926:\r\n/***/ ((module, exports, __webpack_require__) => {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\r\n\t\t\t\t// ------------------------------------------\r\n\t\t\t\t// Rellax.js\r\n\t\t\t\t// Buttery smooth parallax library\r\n\t\t\t\t// Copyright (c) 2016 Moe Amaya (@moeamaya)\r\n\t\t\t\t// MIT license\r\n\t\t\t\t//\r\n\t\t\t\t// Thanks to Paraxify.js and Jaime Cabllero\r\n\t\t\t\t// for parallax concepts\r\n\t\t\t\t// ------------------------------------------\r\n\r\n\t\t\t\t(function (root, factory) {\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t// AMD. Register as an anonymous module.\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { }\r\n\t\t\t\t}(typeof window !== \"undefined\" ? window : __webpack_require__.g, function () {\r\n\t\t\t\t\tvar Rellax = function (el, options) {\r\n\t\t\t\t\t\t\"use strict\";\r\n\r\n\t\t\t\t\t\tvar self = Object.create(Rellax.prototype);\r\n\r\n\t\t\t\t\t\tvar posY = 0;\r\n\t\t\t\t\t\tvar screenY = 0;\r\n\t\t\t\t\t\tvar posX = 0;\r\n\t\t\t\t\t\tvar screenX = 0;\r\n\t\t\t\t\t\tvar blocks = [];\r\n\t\t\t\t\t\tvar pause = true;\r\n\r\n\t\t\t\t\t\t// check what requestAnimationFrame to use, and if\r\n\t\t\t\t\t\t// it's not supported, use the onscroll event\r\n\t\t\t\t\t\tvar loop = window.requestAnimationFrame ||\r\n\t\t\t\t\t\t\twindow.webkitRequestAnimationFrame ||\r\n\t\t\t\t\t\t\twindow.mozRequestAnimationFrame ||\r\n\t\t\t\t\t\t\twindow.msRequestAnimationFrame ||\r\n\t\t\t\t\t\t\twindow.oRequestAnimationFrame ||\r\n\t\t\t\t\t\t\tfunction (callback) { return setTimeout(callback, 1000 / 60); };\r\n\r\n\t\t\t\t\t\t// store the id for later use\r\n\t\t\t\t\t\tvar loopId = null;\r\n\r\n\t\t\t\t\t\t// Test via a getter in the options object to see if the passive property is accessed\r\n\t\t\t\t\t\tvar supportsPassive = false;\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\t\t\t\t\tget: function () {\r\n\t\t\t\t\t\t\t\t\tsupportsPassive = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\twindow.addEventListener(\"testPassive\", null, opts);\r\n\t\t\t\t\t\t\twindow.removeEventListener(\"testPassive\", null, opts);\r\n\t\t\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\t\t\t// check what cancelAnimation method to use\r\n\t\t\t\t\t\tvar clearLoop = window.cancelAnimationFrame || window.mozCancelAnimationFrame || clearTimeout;\r\n\r\n\t\t\t\t\t\t// check which transform property to use\r\n\t\t\t\t\t\tvar transformProp = window.transformProp || (function () {\r\n\t\t\t\t\t\t\tvar testEl = document.createElement('div');\r\n\t\t\t\t\t\t\tif (testEl.style.transform === null) {\r\n\t\t\t\t\t\t\t\tvar vendors = ['Webkit', 'Moz', 'ms'];\r\n\t\t\t\t\t\t\t\tfor (var vendor in vendors) {\r\n\t\t\t\t\t\t\t\t\tif (testEl.style[vendors[vendor] + 'Transform'] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\treturn vendors[vendor] + 'Transform';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn 'transform';\r\n\t\t\t\t\t\t})();\r\n\r\n\t\t\t\t\t\t// Default Settings\r\n\t\t\t\t\t\tself.options = {\r\n\t\t\t\t\t\t\tspeed: -2,\r\n\t\t\t\t\t\t\tverticalSpeed: null,\r\n\t\t\t\t\t\t\thorizontalSpeed: null,\r\n\t\t\t\t\t\t\tbreakpoints: [576, 768, 1201],\r\n\t\t\t\t\t\t\tcenter: false,\r\n\t\t\t\t\t\t\twrapper: null,\r\n\t\t\t\t\t\t\trelativeToWrapper: false,\r\n\t\t\t\t\t\t\tround: true,\r\n\t\t\t\t\t\t\tvertical: true,\r\n\t\t\t\t\t\t\thorizontal: false,\r\n\t\t\t\t\t\t\tverticalScrollAxis: \"y\",\r\n\t\t\t\t\t\t\thorizontalScrollAxis: \"x\",\r\n\t\t\t\t\t\t\tcallback: function () { },\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// User defined options (might have more in the future)\r\n\t\t\t\t\t\tif (options) {\r\n\t\t\t\t\t\t\tObject.keys(options).forEach(function (key) {\r\n\t\t\t\t\t\t\t\tself.options[key] = options[key];\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction validateCustomBreakpoints() {\r\n\t\t\t\t\t\t\tif (self.options.breakpoints.length === 3 && Array.isArray(self.options.breakpoints)) {\r\n\t\t\t\t\t\t\t\tvar isAscending = true;\r\n\t\t\t\t\t\t\t\tvar isNumerical = true;\r\n\t\t\t\t\t\t\t\tvar lastVal;\r\n\t\t\t\t\t\t\t\tself.options.breakpoints.forEach(function (i) {\r\n\t\t\t\t\t\t\t\t\tif (typeof i !== 'number') isNumerical = false;\r\n\t\t\t\t\t\t\t\t\tif (lastVal !== null) {\r\n\t\t\t\t\t\t\t\t\t\tif (i < lastVal) isAscending = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlastVal = i;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tif (isAscending && isNumerical) return;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// revert defaults if set incorrectly\r\n\t\t\t\t\t\t\tself.options.breakpoints = [576, 768, 1201];\r\n\t\t\t\t\t\t\tconsole.warn(\"Rellax: You must pass an array of 3 numbers in ascending order to the breakpoints option. Defaults reverted\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (options && options.breakpoints) {\r\n\t\t\t\t\t\t\tvalidateCustomBreakpoints();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// By default, rellax class\r\n\t\t\t\t\t\tif (!el) {\r\n\t\t\t\t\t\t\tel = '.rellax';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// check if el is a className or a node\r\n\t\t\t\t\t\tvar elements = typeof el === 'string' ? document.querySelectorAll(el) : [el];\r\n\r\n\t\t\t\t\t\t// Now query selector\r\n\t\t\t\t\t\tif (elements.length > 0) {\r\n\t\t\t\t\t\t\tself.elems = elements;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// The elements don't exist\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tconsole.warn(\"Rellax: The elements you're trying to select don't exist.\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Has a wrapper and it exists\r\n\t\t\t\t\t\tif (self.options.wrapper) {\r\n\t\t\t\t\t\t\tif (!self.options.wrapper.nodeType) {\r\n\t\t\t\t\t\t\t\tvar wrapper = document.querySelector(self.options.wrapper);\r\n\r\n\t\t\t\t\t\t\t\tif (wrapper) {\r\n\t\t\t\t\t\t\t\t\tself.options.wrapper = wrapper;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconsole.warn(\"Rellax: The wrapper you're trying to use doesn't exist.\");\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// set a placeholder for the current breakpoint\r\n\t\t\t\t\t\tvar currentBreakpoint;\r\n\r\n\t\t\t\t\t\t// helper to determine current breakpoint\r\n\t\t\t\t\t\tvar getCurrentBreakpoint = function (w) {\r\n\t\t\t\t\t\t\tvar bp = self.options.breakpoints;\r\n\t\t\t\t\t\t\tif (w < bp[0]) return 'xs';\r\n\t\t\t\t\t\t\tif (w >= bp[0] && w < bp[1]) return 'sm';\r\n\t\t\t\t\t\t\tif (w >= bp[1] && w < bp[2]) return 'md';\r\n\t\t\t\t\t\t\treturn 'lg';\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Get and cache initial position of all elements\r\n\t\t\t\t\t\tvar cacheBlocks = function () {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < self.elems.length; i++) {\r\n\t\t\t\t\t\t\t\tvar block = createBlock(self.elems[i]);\r\n\t\t\t\t\t\t\t\tblocks.push(block);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\r\n\t\t\t\t\t\t// Let's kick this script off\r\n\t\t\t\t\t\t// Build array for cached element values\r\n\t\t\t\t\t\tvar init = function () {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < blocks.length; i++) {\r\n\t\t\t\t\t\t\t\tself.elems[i].style.cssText = blocks[i].style;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tblocks = [];\r\n\r\n\t\t\t\t\t\t\tscreenY = window.innerHeight;\r\n\t\t\t\t\t\t\tscreenX = window.innerWidth;\r\n\t\t\t\t\t\t\tcurrentBreakpoint = getCurrentBreakpoint(screenX);\r\n\r\n\t\t\t\t\t\t\tsetPosition();\r\n\r\n\t\t\t\t\t\t\tcacheBlocks();\r\n\r\n\t\t\t\t\t\t\tanimate();\r\n\r\n\t\t\t\t\t\t\t// If paused, unpause and set listener for window resizing events\r\n\t\t\t\t\t\t\tif (pause) {\r\n\t\t\t\t\t\t\t\twindow.addEventListener('resize', init);\r\n\t\t\t\t\t\t\t\tpause = false;\r\n\t\t\t\t\t\t\t\t// Start the loop\r\n\t\t\t\t\t\t\t\tupdate();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// We want to cache the parallax blocks'\r\n\t\t\t\t\t\t// values: base, top, height, speed\r\n\t\t\t\t\t\t// el: is dom object, return: el cache values\r\n\t\t\t\t\t\tvar createBlock = function (el) {\r\n\t\t\t\t\t\t\tvar dataPercentage = el.getAttribute('data-rellax-percentage');\r\n\t\t\t\t\t\t\tvar dataSpeed = el.getAttribute('data-rellax-speed');\r\n\t\t\t\t\t\t\tvar dataXsSpeed = el.getAttribute('data-rellax-xs-speed');\r\n\t\t\t\t\t\t\tvar dataMobileSpeed = el.getAttribute('data-rellax-mobile-speed');\r\n\t\t\t\t\t\t\tvar dataTabletSpeed = el.getAttribute('data-rellax-tablet-speed');\r\n\t\t\t\t\t\t\tvar dataDesktopSpeed = el.getAttribute('data-rellax-desktop-speed');\r\n\t\t\t\t\t\t\tvar dataVerticalSpeed = el.getAttribute('data-rellax-vertical-speed');\r\n\t\t\t\t\t\t\tvar dataHorizontalSpeed = el.getAttribute('data-rellax-horizontal-speed');\r\n\t\t\t\t\t\t\tvar dataVericalScrollAxis = el.getAttribute('data-rellax-vertical-scroll-axis');\r\n\t\t\t\t\t\t\tvar dataHorizontalScrollAxis = el.getAttribute('data-rellax-horizontal-scroll-axis');\r\n\t\t\t\t\t\t\tvar dataZindex = el.getAttribute('data-rellax-zindex') || 0;\r\n\t\t\t\t\t\t\tvar dataMin = el.getAttribute('data-rellax-min');\r\n\t\t\t\t\t\t\tvar dataMax = el.getAttribute('data-rellax-max');\r\n\t\t\t\t\t\t\tvar dataMinX = el.getAttribute('data-rellax-min-x');\r\n\t\t\t\t\t\t\tvar dataMaxX = el.getAttribute('data-rellax-max-x');\r\n\t\t\t\t\t\t\tvar dataMinY = el.getAttribute('data-rellax-min-y');\r\n\t\t\t\t\t\t\tvar dataMaxY = el.getAttribute('data-rellax-max-y');\r\n\t\t\t\t\t\t\tvar mapBreakpoints;\r\n\t\t\t\t\t\t\tvar breakpoints = true;\r\n\r\n\t\t\t\t\t\t\tif (!dataXsSpeed && !dataMobileSpeed && !dataTabletSpeed && !dataDesktopSpeed) {\r\n\t\t\t\t\t\t\t\tbreakpoints = false;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmapBreakpoints = {\r\n\t\t\t\t\t\t\t\t\t'xs': dataXsSpeed,\r\n\t\t\t\t\t\t\t\t\t'sm': dataMobileSpeed,\r\n\t\t\t\t\t\t\t\t\t'md': dataTabletSpeed,\r\n\t\t\t\t\t\t\t\t\t'lg': dataDesktopSpeed\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// initializing at scrollY = 0 (top of browser), scrollX = 0 (left of browser)\r\n\t\t\t\t\t\t\t// ensures elements are positioned based on HTML layout.\r\n\t\t\t\t\t\t\t//\r\n\t\t\t\t\t\t\t// If the element has the percentage attribute, the posY and posX needs to be\r\n\t\t\t\t\t\t\t// the current scroll position's value, so that the elements are still positioned based on HTML layout\r\n\t\t\t\t\t\t\tvar wrapperPosY = self.options.wrapper ? self.options.wrapper.scrollTop : (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);\r\n\t\t\t\t\t\t\t// If the option relativeToWrapper is true, use the wrappers offset to top, subtracted from the current page scroll.\r\n\t\t\t\t\t\t\tif (self.options.relativeToWrapper) {\r\n\t\t\t\t\t\t\t\tvar scrollPosY = (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);\r\n\t\t\t\t\t\t\t\twrapperPosY = scrollPosY - self.options.wrapper.offsetTop;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar posY = self.options.vertical ? (dataPercentage || self.options.center ? wrapperPosY : 0) : 0;\r\n\t\t\t\t\t\t\tvar posX = self.options.horizontal ? (dataPercentage || self.options.center ? self.options.wrapper ? self.options.wrapper.scrollLeft : (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft) : 0) : 0;\r\n\r\n\t\t\t\t\t\t\tvar blockTop = posY + el.getBoundingClientRect().top;\r\n\t\t\t\t\t\t\tvar blockHeight = el.clientHeight || el.offsetHeight || el.scrollHeight;\r\n\r\n\t\t\t\t\t\t\tvar blockLeft = posX + el.getBoundingClientRect().left;\r\n\t\t\t\t\t\t\tvar blockWidth = el.clientWidth || el.offsetWidth || el.scrollWidth;\r\n\r\n\t\t\t\t\t\t\t// apparently parallax equation everyone uses\r\n\t\t\t\t\t\t\tvar percentageY = dataPercentage ? dataPercentage : (posY - blockTop + screenY) / (blockHeight + screenY);\r\n\t\t\t\t\t\t\tvar percentageX = dataPercentage ? dataPercentage : (posX - blockLeft + screenX) / (blockWidth + screenX);\r\n\t\t\t\t\t\t\tif (self.options.center) { percentageX = 0.5; percentageY = 0.5; }\r\n\r\n\t\t\t\t\t\t\t// Optional individual block speed as data attr, otherwise global speed\r\n\t\t\t\t\t\t\tvar speed = (breakpoints && mapBreakpoints[currentBreakpoint] !== null) ? Number(mapBreakpoints[currentBreakpoint]) : (dataSpeed ? dataSpeed : self.options.speed);\r\n\t\t\t\t\t\t\tvar verticalSpeed = dataVerticalSpeed ? dataVerticalSpeed : self.options.verticalSpeed;\r\n\t\t\t\t\t\t\tvar horizontalSpeed = dataHorizontalSpeed ? dataHorizontalSpeed : self.options.horizontalSpeed;\r\n\r\n\t\t\t\t\t\t\t// Optional individual block movement axis direction as data attr, otherwise gobal movement direction\r\n\t\t\t\t\t\t\tvar verticalScrollAxis = dataVericalScrollAxis ? dataVericalScrollAxis : self.options.verticalScrollAxis;\r\n\t\t\t\t\t\t\tvar horizontalScrollAxis = dataHorizontalScrollAxis ? dataHorizontalScrollAxis : self.options.horizontalScrollAxis;\r\n\r\n\t\t\t\t\t\t\tvar bases = updatePosition(percentageX, percentageY, speed, verticalSpeed, horizontalSpeed);\r\n\r\n\t\t\t\t\t\t\t// ~~Store non-translate3d transforms~~\r\n\t\t\t\t\t\t\t// Store inline styles and extract transforms\r\n\t\t\t\t\t\t\tvar style = el.style.cssText;\r\n\t\t\t\t\t\t\tvar transform = '';\r\n\r\n\t\t\t\t\t\t\t// Check if there's an inline styled transform\r\n\t\t\t\t\t\t\tvar searchResult = /transform\\s*:/i.exec(style);\r\n\t\t\t\t\t\t\tif (searchResult) {\r\n\t\t\t\t\t\t\t\t// Get the index of the transform\r\n\t\t\t\t\t\t\t\tvar index = searchResult.index;\r\n\r\n\t\t\t\t\t\t\t\t// Trim the style to the transform point and get the following semi-colon index\r\n\t\t\t\t\t\t\t\tvar trimmedStyle = style.slice(index);\r\n\t\t\t\t\t\t\t\tvar delimiter = trimmedStyle.indexOf(';');\r\n\r\n\t\t\t\t\t\t\t\t// Remove \"transform\" string and save the attribute\r\n\t\t\t\t\t\t\t\tif (delimiter) {\r\n\t\t\t\t\t\t\t\t\ttransform = \" \" + trimmedStyle.slice(11, delimiter).replace(/\\s/g, '');\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttransform = \" \" + trimmedStyle.slice(11).replace(/\\s/g, '');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tbaseX: bases.x,\r\n\t\t\t\t\t\t\t\tbaseY: bases.y,\r\n\t\t\t\t\t\t\t\ttop: blockTop,\r\n\t\t\t\t\t\t\t\tleft: blockLeft,\r\n\t\t\t\t\t\t\t\theight: blockHeight,\r\n\t\t\t\t\t\t\t\twidth: blockWidth,\r\n\t\t\t\t\t\t\t\tspeed: speed,\r\n\t\t\t\t\t\t\t\tverticalSpeed: verticalSpeed,\r\n\t\t\t\t\t\t\t\thorizontalSpeed: horizontalSpeed,\r\n\t\t\t\t\t\t\t\tverticalScrollAxis: verticalScrollAxis,\r\n\t\t\t\t\t\t\t\thorizontalScrollAxis: horizontalScrollAxis,\r\n\t\t\t\t\t\t\t\tstyle: style,\r\n\t\t\t\t\t\t\t\ttransform: transform,\r\n\t\t\t\t\t\t\t\tzindex: dataZindex,\r\n\t\t\t\t\t\t\t\tmin: dataMin,\r\n\t\t\t\t\t\t\t\tmax: dataMax,\r\n\t\t\t\t\t\t\t\tminX: dataMinX,\r\n\t\t\t\t\t\t\t\tmaxX: dataMaxX,\r\n\t\t\t\t\t\t\t\tminY: dataMinY,\r\n\t\t\t\t\t\t\t\tmaxY: dataMaxY\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// set scroll position (posY, posX)\r\n\t\t\t\t\t\t// side effect method is not ideal, but okay for now\r\n\t\t\t\t\t\t// returns true if the scroll changed, false if nothing happened\r\n\t\t\t\t\t\tvar setPosition = function () {\r\n\t\t\t\t\t\t\tvar oldY = posY;\r\n\t\t\t\t\t\t\tvar oldX = posX;\r\n\r\n\t\t\t\t\t\t\tposY = self.options.wrapper ? self.options.wrapper.scrollTop : (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;\r\n\t\t\t\t\t\t\tposX = self.options.wrapper ? self.options.wrapper.scrollLeft : (document.documentElement || document.body.parentNode || document.body).scrollLeft || window.pageXOffset;\r\n\t\t\t\t\t\t\t// If option relativeToWrapper is true, use relative wrapper value instead.\r\n\t\t\t\t\t\t\tif (self.options.relativeToWrapper) {\r\n\t\t\t\t\t\t\t\tvar scrollPosY = (document.documentElement || document.body.parentNode || document.body).scrollTop || window.pageYOffset;\r\n\t\t\t\t\t\t\t\tposY = scrollPosY - self.options.wrapper.offsetTop;\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\tif (oldY != posY && self.options.vertical) {\r\n\t\t\t\t\t\t\t\t// scroll changed, return true\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (oldX != posX && self.options.horizontal) {\r\n\t\t\t\t\t\t\t\t// scroll changed, return true\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// scroll did not change\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Ahh a pure function, gets new transform value\r\n\t\t\t\t\t\t// based on scrollPosition and speed\r\n\t\t\t\t\t\t// Allow for decimal pixel values\r\n\t\t\t\t\t\tvar updatePosition = function (percentageX, percentageY, speed, verticalSpeed, horizontalSpeed) {\r\n\t\t\t\t\t\t\tvar result = {};\r\n\t\t\t\t\t\t\tvar valueX = ((horizontalSpeed ? horizontalSpeed : speed) * (100 * (1 - percentageX)));\r\n\t\t\t\t\t\t\tvar valueY = ((verticalSpeed ? verticalSpeed : speed) * (100 * (1 - percentageY)));\r\n\r\n\t\t\t\t\t\t\tresult.x = self.options.round ? Math.round(valueX) : Math.round(valueX * 100) / 100;\r\n\t\t\t\t\t\t\tresult.y = self.options.round ? Math.round(valueY) : Math.round(valueY * 100) / 100;\r\n\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Remove event listeners and loop again\r\n\t\t\t\t\t\tvar deferredUpdate = function () {\r\n\t\t\t\t\t\t\twindow.removeEventListener('resize', deferredUpdate);\r\n\t\t\t\t\t\t\twindow.removeEventListener('orientationchange', deferredUpdate);\r\n\t\t\t\t\t\t\t(self.options.wrapper ? self.options.wrapper : window).removeEventListener('scroll', deferredUpdate);\r\n\t\t\t\t\t\t\t(self.options.wrapper ? self.options.wrapper : document).removeEventListener('touchmove', deferredUpdate);\r\n\r\n\t\t\t\t\t\t\t// loop again\r\n\t\t\t\t\t\t\tloopId = loop(update);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Loop\r\n\t\t\t\t\t\tvar update = function () {\r\n\t\t\t\t\t\t\tif (setPosition() && pause === false) {\r\n\t\t\t\t\t\t\t\tanimate();\r\n\r\n\t\t\t\t\t\t\t\t// loop again\r\n\t\t\t\t\t\t\t\tloopId = loop(update);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tloopId = null;\r\n\r\n\t\t\t\t\t\t\t\t// Don't animate until we get a position updating event\r\n\t\t\t\t\t\t\t\twindow.addEventListener('resize', deferredUpdate);\r\n\t\t\t\t\t\t\t\twindow.addEventListener('orientationchange', deferredUpdate);\r\n\t\t\t\t\t\t\t\t(self.options.wrapper ? self.options.wrapper : window).addEventListener('scroll', deferredUpdate, supportsPassive ? { passive: true } : false);\r\n\t\t\t\t\t\t\t\t(self.options.wrapper ? self.options.wrapper : document).addEventListener('touchmove', deferredUpdate, supportsPassive ? { passive: true } : false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Transform3d on parallax element\r\n\t\t\t\t\t\tvar animate = function () {\r\n\t\t\t\t\t\t\tvar positions;\r\n\t\t\t\t\t\t\tfor (var i = 0; i < self.elems.length; i++) {\r\n\t\t\t\t\t\t\t\t// Determine relevant movement directions\r\n\t\t\t\t\t\t\t\tvar verticalScrollAxis = blocks[i].verticalScrollAxis.toLowerCase();\r\n\t\t\t\t\t\t\t\tvar horizontalScrollAxis = blocks[i].horizontalScrollAxis.toLowerCase();\r\n\t\t\t\t\t\t\t\tvar verticalScrollX = verticalScrollAxis.indexOf(\"x\") != -1 ? posY : 0;\r\n\t\t\t\t\t\t\t\tvar verticalScrollY = verticalScrollAxis.indexOf(\"y\") != -1 ? posY : 0;\r\n\t\t\t\t\t\t\t\tvar horizontalScrollX = horizontalScrollAxis.indexOf(\"x\") != -1 ? posX : 0;\r\n\t\t\t\t\t\t\t\tvar horizontalScrollY = horizontalScrollAxis.indexOf(\"y\") != -1 ? posX : 0;\r\n\r\n\t\t\t\t\t\t\t\tvar percentageY = ((verticalScrollY + horizontalScrollY - blocks[i].top + screenY) / (blocks[i].height + screenY));\r\n\t\t\t\t\t\t\t\tvar percentageX = ((verticalScrollX + horizontalScrollX - blocks[i].left + screenX) / (blocks[i].width + screenX));\r\n\r\n\t\t\t\t\t\t\t\t// Subtracting initialize value, so element stays in same spot as HTML\r\n\t\t\t\t\t\t\t\tpositions = updatePosition(percentageX, percentageY, blocks[i].speed, blocks[i].verticalSpeed, blocks[i].horizontalSpeed);\r\n\t\t\t\t\t\t\t\tvar positionY = positions.y - blocks[i].baseY;\r\n\t\t\t\t\t\t\t\tvar positionX = positions.x - blocks[i].baseX;\r\n\r\n\t\t\t\t\t\t\t\t// The next two \"if\" blocks go like this:\r\n\t\t\t\t\t\t\t\t// Check if a limit is defined (first \"min\", then \"max\");\r\n\t\t\t\t\t\t\t\t// Check if we need to change the Y or the X\r\n\t\t\t\t\t\t\t\t// (Currently working only if just one of the axes is enabled)\r\n\t\t\t\t\t\t\t\t// Then, check if the new position is inside the allowed limit\r\n\t\t\t\t\t\t\t\t// If so, use new position. If not, set position to limit.\r\n\r\n\t\t\t\t\t\t\t\t// Check if a min limit is defined\r\n\t\t\t\t\t\t\t\tif (blocks[i].min !== null) {\r\n\t\t\t\t\t\t\t\t\tif (self.options.vertical && !self.options.horizontal) {\r\n\t\t\t\t\t\t\t\t\t\tpositionY = positionY <= blocks[i].min ? blocks[i].min : positionY;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (self.options.horizontal && !self.options.vertical) {\r\n\t\t\t\t\t\t\t\t\t\tpositionX = positionX <= blocks[i].min ? blocks[i].min : positionX;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Check if directional min limits are defined\r\n\t\t\t\t\t\t\t\tif (blocks[i].minY != null) {\r\n\t\t\t\t\t\t\t\t\tpositionY = positionY <= blocks[i].minY ? blocks[i].minY : positionY;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (blocks[i].minX != null) {\r\n\t\t\t\t\t\t\t\t\tpositionX = positionX <= blocks[i].minX ? blocks[i].minX : positionX;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Check if a max limit is defined\r\n\t\t\t\t\t\t\t\tif (blocks[i].max !== null) {\r\n\t\t\t\t\t\t\t\t\tif (self.options.vertical && !self.options.horizontal) {\r\n\t\t\t\t\t\t\t\t\t\tpositionY = positionY >= blocks[i].max ? blocks[i].max : positionY;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (self.options.horizontal && !self.options.vertical) {\r\n\t\t\t\t\t\t\t\t\t\tpositionX = positionX >= blocks[i].max ? blocks[i].max : positionX;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Check if directional max limits are defined\r\n\t\t\t\t\t\t\t\tif (blocks[i].maxY != null) {\r\n\t\t\t\t\t\t\t\t\tpositionY = positionY >= blocks[i].maxY ? blocks[i].maxY : positionY;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (blocks[i].maxX != null) {\r\n\t\t\t\t\t\t\t\t\tpositionX = positionX >= blocks[i].maxX ? blocks[i].maxX : positionX;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar zindex = blocks[i].zindex;\r\n\r\n\t\t\t\t\t\t\t\t// Move that element\r\n\t\t\t\t\t\t\t\t// (Set the new translation and append initial inline transforms.)\r\n\t\t\t\t\t\t\t\tvar translate = 'translate3d(' + (self.options.horizontal ? positionX : '0') + 'px,' + (self.options.vertical ? positionY : '0') + 'px,' + zindex + 'px) ' + blocks[i].transform;\r\n\t\t\t\t\t\t\t\tself.elems[i].style[transformProp] = translate;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tself.options.callback(positions);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tself.destroy = function () {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < self.elems.length; i++) {\r\n\t\t\t\t\t\t\t\tself.elems[i].style.cssText = blocks[i].style;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Remove resize event listener if not pause, and pause\r\n\t\t\t\t\t\t\tif (!pause) {\r\n\t\t\t\t\t\t\t\twindow.removeEventListener('resize', init);\r\n\t\t\t\t\t\t\t\tpause = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Clear the animation loop to prevent possible memory leak\r\n\t\t\t\t\t\t\tclearLoop(loopId);\r\n\t\t\t\t\t\t\tloopId = null;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// Init\r\n\t\t\t\t\t\tinit();\r\n\r\n\t\t\t\t\t\t// Allow to recalculate the initial values whenever we want\r\n\t\t\t\t\t\tself.refresh = init;\r\n\r\n\t\t\t\t\t\treturn self;\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn Rellax;\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 725:\r\n/***/ (function (__unused_webpack_module, exports, __webpack_require__) {\r\n\r\n\t\t\t\t(function (global, factory) {\r\n\t\t\t\t\ttrue ? factory(exports) :\r\n\t\t\t\t\t\t0;\r\n\t\t\t\t}(this, function (exports) {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\tvar splitRE = /\\r?\\n/g;\r\n\t\t\t\t\tvar emptyRE = /^\\s*$/;\r\n\t\t\t\t\tvar needFixRE = /^(\\r?\\n)*[\\t\\s]/;\r\n\r\n\t\t\t\t\tvar deIndent = function deindent(str) {\r\n\t\t\t\t\t\tif (!needFixRE.test(str)) {\r\n\t\t\t\t\t\t\treturn str\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar lines = str.split(splitRE);\r\n\t\t\t\t\t\tvar min = Infinity;\r\n\t\t\t\t\t\tvar type, cur, c;\r\n\t\t\t\t\t\tfor (var i = 0; i < lines.length; i++) {\r\n\t\t\t\t\t\t\tvar line = lines[i];\r\n\t\t\t\t\t\t\tif (!emptyRE.test(line)) {\r\n\t\t\t\t\t\t\t\tif (!type) {\r\n\t\t\t\t\t\t\t\t\tc = line.charAt(0);\r\n\t\t\t\t\t\t\t\t\tif (c === ' ' || c === '\\t') {\r\n\t\t\t\t\t\t\t\t\t\ttype = c;\r\n\t\t\t\t\t\t\t\t\t\tcur = count(line, type);\r\n\t\t\t\t\t\t\t\t\t\tif (cur < min) {\r\n\t\t\t\t\t\t\t\t\t\t\tmin = cur;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\treturn str\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcur = count(line, type);\r\n\t\t\t\t\t\t\t\t\tif (cur < min) {\r\n\t\t\t\t\t\t\t\t\t\tmin = cur;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn lines.map(function (line) {\r\n\t\t\t\t\t\t\treturn line.slice(min)\r\n\t\t\t\t\t\t}).join('\\n')\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction count(line, type) {\r\n\t\t\t\t\t\tvar i = 0;\r\n\t\t\t\t\t\twhile (line.charAt(i) === type) {\r\n\t\t\t\t\t\t\ti++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn i\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar emptyObject = Object.freeze({});\r\n\r\n\t\t\t\t\t// These helpers produce better VM code in JS engines due to their\r\n\t\t\t\t\t// explicitness and function inlining.\r\n\t\t\t\t\tfunction isUndef(v) {\r\n\t\t\t\t\t\treturn v === undefined || v === null\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Check if value is primitive.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction isPrimitive(value) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\ttypeof value === 'string' ||\r\n\t\t\t\t\t\t\ttypeof value === 'number' ||\r\n\t\t\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\t\t\ttypeof value === 'symbol' ||\r\n\t\t\t\t\t\t\ttypeof value === 'boolean'\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Quick object check - this is primarily used to tell\r\n\t\t\t\t\t * Objects from primitive values when we know the value\r\n\t\t\t\t\t * is a JSON-compliant type.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction isObject(obj) {\r\n\t\t\t\t\t\treturn obj !== null && typeof obj === 'object'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Get the raw type string of a value, e.g., [object Object].\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar _toString = Object.prototype.toString;\r\n\r\n\t\t\t\t\tfunction toRawType(value) {\r\n\t\t\t\t\t\treturn _toString.call(value).slice(8, -1)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Strict object type check. Only returns true\r\n\t\t\t\t\t * for plain JavaScript objects.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction isPlainObject(obj) {\r\n\t\t\t\t\t\treturn _toString.call(obj) === '[object Object]'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Check if val is a valid array index.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction isValidArrayIndex(val) {\r\n\t\t\t\t\t\tvar n = parseFloat(String(val));\r\n\t\t\t\t\t\treturn n >= 0 && Math.floor(n) === n && isFinite(val)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Make a map and return a function for checking if a key\r\n\t\t\t\t\t * is in that map.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction makeMap(\r\n\t\t\t\t\t\tstr,\r\n\t\t\t\t\t\texpectsLowerCase\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar map = Object.create(null);\r\n\t\t\t\t\t\tvar list = str.split(',');\r\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) {\r\n\t\t\t\t\t\t\tmap[list[i]] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn expectsLowerCase\r\n\t\t\t\t\t\t\t? function (val) { return map[val.toLowerCase()]; }\r\n\t\t\t\t\t\t\t: function (val) { return map[val]; }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Check if a tag is a built-in tag.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar isBuiltInTag = makeMap('slot,component', true);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Check if an attribute is a reserved attribute.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Remove an item from an array.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction remove(arr, item) {\r\n\t\t\t\t\t\tif (arr.length) {\r\n\t\t\t\t\t\t\tvar index = arr.indexOf(item);\r\n\t\t\t\t\t\t\tif (index > -1) {\r\n\t\t\t\t\t\t\t\treturn arr.splice(index, 1)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Check whether an object has the property.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\t\t\t\t\tfunction hasOwn(obj, key) {\r\n\t\t\t\t\t\treturn hasOwnProperty.call(obj, key)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Create a cached version of a pure function.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction cached(fn) {\r\n\t\t\t\t\t\tvar cache = Object.create(null);\r\n\t\t\t\t\t\treturn (function cachedFn(str) {\r\n\t\t\t\t\t\t\tvar hit = cache[str];\r\n\t\t\t\t\t\t\treturn hit || (cache[str] = fn(str))\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Camelize a hyphen-delimited string.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar camelizeRE = /-(\\w)/g;\r\n\t\t\t\t\tvar camelize = cached(function (str) {\r\n\t\t\t\t\t\treturn str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Hyphenate a camelCase string.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar hyphenateRE = /\\B([A-Z])/g;\r\n\t\t\t\t\tvar hyphenate = cached(function (str) {\r\n\t\t\t\t\t\treturn str.replace(hyphenateRE, '-$1').toLowerCase()\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Simple bind polyfill for environments that do not support it,\r\n\t\t\t\t\t * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n\t\t\t\t\t * since native bind is now performant enough in most browsers.\r\n\t\t\t\t\t * But removing it would mean breaking code that was able to run in\r\n\t\t\t\t\t * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tfunction polyfillBind(fn, ctx) {\r\n\t\t\t\t\t\tfunction boundFn(a) {\r\n\t\t\t\t\t\t\tvar l = arguments.length;\r\n\t\t\t\t\t\t\treturn l\r\n\t\t\t\t\t\t\t\t? l > 1\r\n\t\t\t\t\t\t\t\t\t? fn.apply(ctx, arguments)\r\n\t\t\t\t\t\t\t\t\t: fn.call(ctx, a)\r\n\t\t\t\t\t\t\t\t: fn.call(ctx)\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tboundFn._length = fn.length;\r\n\t\t\t\t\t\treturn boundFn\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction nativeBind(fn, ctx) {\r\n\t\t\t\t\t\treturn fn.bind(ctx)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar bind = Function.prototype.bind\r\n\t\t\t\t\t\t? nativeBind\r\n\t\t\t\t\t\t: polyfillBind;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Mix properties into target object.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction extend(to, _from) {\r\n\t\t\t\t\t\tfor (var key in _from) {\r\n\t\t\t\t\t\t\tto[key] = _from[key];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn to\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* eslint-disable no-unused-vars */\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Perform no operation.\r\n\t\t\t\t\t * Stubbing args to make Flow happy without leaving useless transpiled code\r\n\t\t\t\t\t * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction noop(a, b, c) { }\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Always return false.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar no = function (a, b, c) { return false; };\r\n\r\n\t\t\t\t\t/* eslint-enable no-unused-vars */\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Return the same value.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar identity = function (_) { return _; };\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Generate a string containing static keys from compiler modules.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction genStaticKeys(modules) {\r\n\t\t\t\t\t\treturn modules.reduce(function (keys, m) {\r\n\t\t\t\t\t\t\treturn keys.concat(m.staticKeys || [])\r\n\t\t\t\t\t\t}, []).join(',')\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar isUnaryTag = makeMap(\r\n\t\t\t\t\t\t'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\r\n\t\t\t\t\t\t'link,meta,param,source,track,wbr'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// Elements that you can, intentionally, leave open\r\n\t\t\t\t\t// (and which close themselves)\r\n\t\t\t\t\tvar canBeLeftOpenTag = makeMap(\r\n\t\t\t\t\t\t'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\r\n\t\t\t\t\t// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\r\n\t\t\t\t\tvar isNonPhrasingTag = makeMap(\r\n\t\t\t\t\t\t'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\r\n\t\t\t\t\t\t'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\r\n\t\t\t\t\t\t'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\r\n\t\t\t\t\t\t'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\r\n\t\t\t\t\t\t'title,tr,track'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * unicode letters used for parsing html tags, component names and property paths.\r\n\t\t\t\t\t * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n\t\t\t\t\t * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Define a property.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction def(obj, key, val, enumerable) {\r\n\t\t\t\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\t\t\t\tvalue: val,\r\n\t\t\t\t\t\t\tenumerable: !!enumerable,\r\n\t\t\t\t\t\t\twritable: true,\r\n\t\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Not type-checking this file because it's mostly vendor code.\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\t// Regular Expressions for parsing tags and attributes\r\n\t\t\t\t\tvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\r\n\t\t\t\t\tvar dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\r\n\t\t\t\t\tvar ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\" + (unicodeRegExp.source) + \"]*\";\r\n\t\t\t\t\tvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\r\n\t\t\t\t\tvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\r\n\t\t\t\t\tvar startTagClose = /^\\s*(\\/?)>/;\r\n\t\t\t\t\tvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\r\n\t\t\t\t\tvar doctype = /^<!DOCTYPE [^>]+>/i;\r\n\t\t\t\t\t// #7298: escape - to avoid being passed as HTML comment when inlined in page\r\n\t\t\t\t\tvar comment = /^<!\\--/;\r\n\t\t\t\t\tvar conditionalComment = /^<!\\[/;\r\n\r\n\t\t\t\t\t// Special Elements (can contain anything)\r\n\t\t\t\t\tvar isPlainTextElement = makeMap('script,style,textarea', true);\r\n\t\t\t\t\tvar reCache = {};\r\n\r\n\t\t\t\t\tvar decodingMap = {\r\n\t\t\t\t\t\t'&lt;': '<',\r\n\t\t\t\t\t\t'&gt;': '>',\r\n\t\t\t\t\t\t'&quot;': '\"',\r\n\t\t\t\t\t\t'&amp;': '&',\r\n\t\t\t\t\t\t'&#10;': '\\n',\r\n\t\t\t\t\t\t'&#9;': '\\t',\r\n\t\t\t\t\t\t'&#39;': \"'\"\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\r\n\t\t\t\t\tvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\r\n\r\n\t\t\t\t\t// #5992\r\n\t\t\t\t\tvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\r\n\t\t\t\t\tvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\r\n\r\n\t\t\t\t\tfunction decodeAttr(value, shouldDecodeNewlines) {\r\n\t\t\t\t\t\tvar re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\r\n\t\t\t\t\t\treturn value.replace(re, function (match) { return decodingMap[match]; })\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction parseHTML(html, options) {\r\n\t\t\t\t\t\tvar stack = [];\r\n\t\t\t\t\t\tvar expectHTML = options.expectHTML;\r\n\t\t\t\t\t\tvar isUnaryTag$$1 = options.isUnaryTag || no;\r\n\t\t\t\t\t\tvar canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\r\n\t\t\t\t\t\tvar index = 0;\r\n\t\t\t\t\t\tvar last, lastTag;\r\n\t\t\t\t\t\twhile (html) {\r\n\t\t\t\t\t\t\tlast = html;\r\n\t\t\t\t\t\t\t// Make sure we're not in a plaintext content element like script/style\r\n\t\t\t\t\t\t\tif (!lastTag || !isPlainTextElement(lastTag)) {\r\n\t\t\t\t\t\t\t\tvar textEnd = html.indexOf('<');\r\n\t\t\t\t\t\t\t\tif (textEnd === 0) {\r\n\t\t\t\t\t\t\t\t\t// Comment:\r\n\t\t\t\t\t\t\t\t\tif (comment.test(html)) {\r\n\t\t\t\t\t\t\t\t\t\tvar commentEnd = html.indexOf('-->');\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (commentEnd >= 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (options.shouldKeepComment) {\r\n\t\t\t\t\t\t\t\t\t\t\t\toptions.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tadvance(commentEnd + 3);\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\r\n\t\t\t\t\t\t\t\t\tif (conditionalComment.test(html)) {\r\n\t\t\t\t\t\t\t\t\t\tvar conditionalEnd = html.indexOf(']>');\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (conditionalEnd >= 0) {\r\n\t\t\t\t\t\t\t\t\t\t\tadvance(conditionalEnd + 2);\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Doctype:\r\n\t\t\t\t\t\t\t\t\tvar doctypeMatch = html.match(doctype);\r\n\t\t\t\t\t\t\t\t\tif (doctypeMatch) {\r\n\t\t\t\t\t\t\t\t\t\tadvance(doctypeMatch[0].length);\r\n\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// End tag:\r\n\t\t\t\t\t\t\t\t\tvar endTagMatch = html.match(endTag);\r\n\t\t\t\t\t\t\t\t\tif (endTagMatch) {\r\n\t\t\t\t\t\t\t\t\t\tvar curIndex = index;\r\n\t\t\t\t\t\t\t\t\t\tadvance(endTagMatch[0].length);\r\n\t\t\t\t\t\t\t\t\t\tparseEndTag(endTagMatch[1], curIndex, index);\r\n\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Start tag:\r\n\t\t\t\t\t\t\t\t\tvar startTagMatch = parseStartTag();\r\n\t\t\t\t\t\t\t\t\tif (startTagMatch) {\r\n\t\t\t\t\t\t\t\t\t\thandleStartTag(startTagMatch);\r\n\t\t\t\t\t\t\t\t\t\tif (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\r\n\t\t\t\t\t\t\t\t\t\t\tadvance(1);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar text = (void 0), rest = (void 0), next = (void 0);\r\n\t\t\t\t\t\t\t\tif (textEnd >= 0) {\r\n\t\t\t\t\t\t\t\t\trest = html.slice(textEnd);\r\n\t\t\t\t\t\t\t\t\twhile (\r\n\t\t\t\t\t\t\t\t\t\t!endTag.test(rest) &&\r\n\t\t\t\t\t\t\t\t\t\t!startTagOpen.test(rest) &&\r\n\t\t\t\t\t\t\t\t\t\t!comment.test(rest) &&\r\n\t\t\t\t\t\t\t\t\t\t!conditionalComment.test(rest)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t// < in plain text, be forgiving and treat it as text\r\n\t\t\t\t\t\t\t\t\t\tnext = rest.indexOf('<', 1);\r\n\t\t\t\t\t\t\t\t\t\tif (next < 0) { break }\r\n\t\t\t\t\t\t\t\t\t\ttextEnd += next;\r\n\t\t\t\t\t\t\t\t\t\trest = html.slice(textEnd);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\ttext = html.substring(0, textEnd);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (textEnd < 0) {\r\n\t\t\t\t\t\t\t\t\ttext = html;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (text) {\r\n\t\t\t\t\t\t\t\t\tadvance(text.length);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (options.chars && text) {\r\n\t\t\t\t\t\t\t\t\toptions.chars(text, index - text.length, index);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvar endTagLength = 0;\r\n\t\t\t\t\t\t\t\tvar stackedTag = lastTag.toLowerCase();\r\n\t\t\t\t\t\t\t\tvar reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\r\n\t\t\t\t\t\t\t\tvar rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\r\n\t\t\t\t\t\t\t\t\tendTagLength = endTag.length;\r\n\t\t\t\t\t\t\t\t\tif (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\r\n\t\t\t\t\t\t\t\t\t\ttext = text\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (shouldIgnoreFirstNewline(stackedTag, text)) {\r\n\t\t\t\t\t\t\t\t\t\ttext = text.slice(1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (options.chars) {\r\n\t\t\t\t\t\t\t\t\t\toptions.chars(text);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn ''\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tindex += html.length - rest$1.length;\r\n\t\t\t\t\t\t\t\thtml = rest$1;\r\n\t\t\t\t\t\t\t\tparseEndTag(stackedTag, index - endTagLength, index);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (html === last) {\r\n\t\t\t\t\t\t\t\toptions.chars && options.chars(html);\r\n\t\t\t\t\t\t\t\tif (!stack.length && options.warn) {\r\n\t\t\t\t\t\t\t\t\toptions.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"), { start: index + html.length });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Clean up any remaining tags\r\n\t\t\t\t\t\tparseEndTag();\r\n\r\n\t\t\t\t\t\tfunction advance(n) {\r\n\t\t\t\t\t\t\tindex += n;\r\n\t\t\t\t\t\t\thtml = html.substring(n);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction parseStartTag() {\r\n\t\t\t\t\t\t\tvar start = html.match(startTagOpen);\r\n\t\t\t\t\t\t\tif (start) {\r\n\t\t\t\t\t\t\t\tvar match = {\r\n\t\t\t\t\t\t\t\t\ttagName: start[1],\r\n\t\t\t\t\t\t\t\t\tattrs: [],\r\n\t\t\t\t\t\t\t\t\tstart: index\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tadvance(start[0].length);\r\n\t\t\t\t\t\t\t\tvar end, attr;\r\n\t\t\t\t\t\t\t\twhile (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\r\n\t\t\t\t\t\t\t\t\tattr.start = index;\r\n\t\t\t\t\t\t\t\t\tadvance(attr[0].length);\r\n\t\t\t\t\t\t\t\t\tattr.end = index;\r\n\t\t\t\t\t\t\t\t\tmatch.attrs.push(attr);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (end) {\r\n\t\t\t\t\t\t\t\t\tmatch.unarySlash = end[1];\r\n\t\t\t\t\t\t\t\t\tadvance(end[0].length);\r\n\t\t\t\t\t\t\t\t\tmatch.end = index;\r\n\t\t\t\t\t\t\t\t\treturn match\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction handleStartTag(match) {\r\n\t\t\t\t\t\t\tvar tagName = match.tagName;\r\n\t\t\t\t\t\t\tvar unarySlash = match.unarySlash;\r\n\r\n\t\t\t\t\t\t\tif (expectHTML) {\r\n\t\t\t\t\t\t\t\tif (lastTag === 'p' && isNonPhrasingTag(tagName)) {\r\n\t\t\t\t\t\t\t\t\tparseEndTag(lastTag);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\r\n\t\t\t\t\t\t\t\t\tparseEndTag(tagName);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar unary = isUnaryTag$$1(tagName) || !!unarySlash;\r\n\r\n\t\t\t\t\t\t\tvar l = match.attrs.length;\r\n\t\t\t\t\t\t\tvar attrs = new Array(l);\r\n\t\t\t\t\t\t\tfor (var i = 0; i < l; i++) {\r\n\t\t\t\t\t\t\t\tvar args = match.attrs[i];\r\n\t\t\t\t\t\t\t\tvar value = args[3] || args[4] || args[5] || '';\r\n\t\t\t\t\t\t\t\tvar shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\r\n\t\t\t\t\t\t\t\t\t? options.shouldDecodeNewlinesForHref\r\n\t\t\t\t\t\t\t\t\t: options.shouldDecodeNewlines;\r\n\t\t\t\t\t\t\t\tattrs[i] = {\r\n\t\t\t\t\t\t\t\t\tname: args[1],\r\n\t\t\t\t\t\t\t\t\tvalue: decodeAttr(value, shouldDecodeNewlines)\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\tattrs[i].start = args.start + args[0].match(/^\\s*/).length;\r\n\t\t\t\t\t\t\t\t\tattrs[i].end = args.end;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!unary) {\r\n\t\t\t\t\t\t\t\tstack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });\r\n\t\t\t\t\t\t\t\tlastTag = tagName;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (options.start) {\r\n\t\t\t\t\t\t\t\toptions.start(tagName, attrs, unary, match.start, match.end);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction parseEndTag(tagName, start, end) {\r\n\t\t\t\t\t\t\tvar pos, lowerCasedTagName;\r\n\t\t\t\t\t\t\tif (start == null) { start = index; }\r\n\t\t\t\t\t\t\tif (end == null) { end = index; }\r\n\r\n\t\t\t\t\t\t\t// Find the closest opened tag of the same type\r\n\t\t\t\t\t\t\tif (tagName) {\r\n\t\t\t\t\t\t\t\tlowerCasedTagName = tagName.toLowerCase();\r\n\t\t\t\t\t\t\t\tfor (pos = stack.length - 1; pos >= 0; pos--) {\r\n\t\t\t\t\t\t\t\t\tif (stack[pos].lowerCasedTag === lowerCasedTagName) {\r\n\t\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// If no tag name is provided, clean shop\r\n\t\t\t\t\t\t\t\tpos = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (pos >= 0) {\r\n\t\t\t\t\t\t\t\t// Close all the open elements, up the stack\r\n\t\t\t\t\t\t\t\tfor (var i = stack.length - 1; i >= pos; i--) {\r\n\t\t\t\t\t\t\t\t\tif (i > pos || !tagName &&\r\n\t\t\t\t\t\t\t\t\t\toptions.warn\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\toptions.warn(\r\n\t\t\t\t\t\t\t\t\t\t\t(\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\"),\r\n\t\t\t\t\t\t\t\t\t\t\t{ start: stack[i].start, end: stack[i].end }\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (options.end) {\r\n\t\t\t\t\t\t\t\t\t\toptions.end(stack[i].tag, start, end);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Remove the open elements from the stack\r\n\t\t\t\t\t\t\t\tstack.length = pos;\r\n\t\t\t\t\t\t\t\tlastTag = pos && stack[pos - 1].tag;\r\n\t\t\t\t\t\t\t} else if (lowerCasedTagName === 'br') {\r\n\t\t\t\t\t\t\t\tif (options.start) {\r\n\t\t\t\t\t\t\t\t\toptions.start(tagName, [], true, start, end);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else if (lowerCasedTagName === 'p') {\r\n\t\t\t\t\t\t\t\tif (options.start) {\r\n\t\t\t\t\t\t\t\t\toptions.start(tagName, [], false, start, end);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (options.end) {\r\n\t\t\t\t\t\t\t\t\toptions.end(tagName, start, end);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar splitRE$1 = /\\r?\\n/g;\r\n\t\t\t\t\tvar replaceRE = /./g;\r\n\t\t\t\t\tvar isSpecialTag = makeMap('script,style,template', true);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Parse a single-file component (*.vue) file into an SFC Descriptor Object.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction parseComponent(\r\n\t\t\t\t\t\tcontent,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (options === void 0) options = {};\r\n\r\n\t\t\t\t\t\tvar sfc = {\r\n\t\t\t\t\t\t\ttemplate: null,\r\n\t\t\t\t\t\t\tscript: null,\r\n\t\t\t\t\t\t\tstyles: [],\r\n\t\t\t\t\t\t\tcustomBlocks: [],\r\n\t\t\t\t\t\t\terrors: []\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tvar depth = 0;\r\n\t\t\t\t\t\tvar currentBlock = null;\r\n\r\n\t\t\t\t\t\tvar warn = function (msg) {\r\n\t\t\t\t\t\t\tsfc.errors.push(msg);\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\twarn = function (msg, range) {\r\n\t\t\t\t\t\t\t\tvar data = { msg: msg };\r\n\t\t\t\t\t\t\t\tif (range.start != null) {\r\n\t\t\t\t\t\t\t\t\tdata.start = range.start;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (range.end != null) {\r\n\t\t\t\t\t\t\t\t\tdata.end = range.end;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsfc.errors.push(data);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction start(\r\n\t\t\t\t\t\t\ttag,\r\n\t\t\t\t\t\t\tattrs,\r\n\t\t\t\t\t\t\tunary,\r\n\t\t\t\t\t\t\tstart,\r\n\t\t\t\t\t\t\tend\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tif (depth === 0) {\r\n\t\t\t\t\t\t\t\tcurrentBlock = {\r\n\t\t\t\t\t\t\t\t\ttype: tag,\r\n\t\t\t\t\t\t\t\t\tcontent: '',\r\n\t\t\t\t\t\t\t\t\tstart: end,\r\n\t\t\t\t\t\t\t\t\tattrs: attrs.reduce(function (cumulated, ref) {\r\n\t\t\t\t\t\t\t\t\t\tvar name = ref.name;\r\n\t\t\t\t\t\t\t\t\t\tvar value = ref.value;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcumulated[name] = value || true;\r\n\t\t\t\t\t\t\t\t\t\treturn cumulated\r\n\t\t\t\t\t\t\t\t\t}, {})\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tif (isSpecialTag(tag)) {\r\n\t\t\t\t\t\t\t\t\tcheckAttrs(currentBlock, attrs);\r\n\t\t\t\t\t\t\t\t\tif (tag === 'style') {\r\n\t\t\t\t\t\t\t\t\t\tsfc.styles.push(currentBlock);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tsfc[tag] = currentBlock;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else { // custom blocks\r\n\t\t\t\t\t\t\t\t\tsfc.customBlocks.push(currentBlock);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!unary) {\r\n\t\t\t\t\t\t\t\tdepth++;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction checkAttrs(block, attrs) {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < attrs.length; i++) {\r\n\t\t\t\t\t\t\t\tvar attr = attrs[i];\r\n\t\t\t\t\t\t\t\tif (attr.name === 'lang') {\r\n\t\t\t\t\t\t\t\t\tblock.lang = attr.value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (attr.name === 'scoped') {\r\n\t\t\t\t\t\t\t\t\tblock.scoped = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (attr.name === 'module') {\r\n\t\t\t\t\t\t\t\t\tblock.module = attr.value || true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (attr.name === 'src') {\r\n\t\t\t\t\t\t\t\t\tblock.src = attr.value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction end(tag, start) {\r\n\t\t\t\t\t\t\tif (depth === 1 && currentBlock) {\r\n\t\t\t\t\t\t\t\tcurrentBlock.end = start;\r\n\t\t\t\t\t\t\t\tvar text = content.slice(currentBlock.start, currentBlock.end);\r\n\t\t\t\t\t\t\t\tif (options.deindent !== false) {\r\n\t\t\t\t\t\t\t\t\ttext = deIndent(text);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// pad content so that linters and pre-processors can output correct\r\n\t\t\t\t\t\t\t\t// line numbers in errors and warnings\r\n\t\t\t\t\t\t\t\tif (currentBlock.type !== 'template' && options.pad) {\r\n\t\t\t\t\t\t\t\t\ttext = padContent(currentBlock, options.pad) + text;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcurrentBlock.content = text;\r\n\t\t\t\t\t\t\t\tcurrentBlock = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdepth--;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction padContent(block, pad) {\r\n\t\t\t\t\t\t\tif (pad === 'space') {\r\n\t\t\t\t\t\t\t\treturn content.slice(0, block.start).replace(replaceRE, ' ')\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvar offset = content.slice(0, block.start).split(splitRE$1).length;\r\n\t\t\t\t\t\t\t\tvar padChar = block.type === 'script' && !block.lang\r\n\t\t\t\t\t\t\t\t\t? '//\\n'\r\n\t\t\t\t\t\t\t\t\t: '\\n';\r\n\t\t\t\t\t\t\t\treturn Array(offset).join(padChar)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparseHTML(content, {\r\n\t\t\t\t\t\t\twarn: warn,\r\n\t\t\t\t\t\t\tstart: start,\r\n\t\t\t\t\t\t\tend: end,\r\n\t\t\t\t\t\t\toutputSourceRange: options.outputSourceRange\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\treturn sfc\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t// can we use __proto__?\r\n\t\t\t\t\tvar hasProto = '__proto__' in {};\r\n\r\n\t\t\t\t\t// Browser environment sniffing\r\n\t\t\t\t\tvar inBrowser = typeof window !== 'undefined';\r\n\t\t\t\t\tvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\r\n\t\t\t\t\tvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\r\n\t\t\t\t\tvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\n\t\t\t\t\tvar isIE = UA && /msie|trident/.test(UA);\r\n\t\t\t\t\tvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\n\t\t\t\t\tvar isEdge = UA && UA.indexOf('edge/') > 0;\r\n\t\t\t\t\tvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\r\n\t\t\t\t\tvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\r\n\t\t\t\t\tvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\n\t\t\t\t\tvar isPhantomJS = UA && /phantomjs/.test(UA);\r\n\t\t\t\t\tvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n\r\n\t\t\t\t\t// Firefox has a \"watch\" function on Object.prototype...\r\n\t\t\t\t\tvar nativeWatch = ({}).watch;\r\n\t\t\t\t\tif (inBrowser) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tvar opts = {};\r\n\t\t\t\t\t\t\tObject.defineProperty(opts, 'passive', ({\r\n\t\t\t\t\t\t\t\tget: function get() {\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})); // https://github.com/facebook/flow/issues/285\r\n\t\t\t\t\t\t\twindow.addEventListener('test-passive', null, opts);\r\n\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// this needs to be lazy-evaled because vue may be required before\r\n\t\t\t\t\t// vue-server-renderer can set VUE_ENV\r\n\t\t\t\t\tvar _isServer;\r\n\t\t\t\t\tvar isServerRendering = function () {\r\n\t\t\t\t\t\tif (_isServer === undefined) {\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\tif (!inBrowser && !inWeex && typeof __webpack_require__.g !== 'undefined') {\r\n\t\t\t\t\t\t\t\t// detect presence of vue-server-renderer and avoid\r\n\t\t\t\t\t\t\t\t// Webpack shimming the process\r\n\t\t\t\t\t\t\t\t_isServer = __webpack_require__.g['process'] && __webpack_require__.g['process'].env.VUE_ENV === 'server';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_isServer = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn _isServer\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// detect devtools\r\n\t\t\t\t\tvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tfunction isNative(Ctor) {\r\n\t\t\t\t\t\treturn typeof Ctor === 'function' && /native code/.test(Ctor.toString())\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar hasSymbol =\r\n\t\t\t\t\t\ttypeof Symbol !== 'undefined' && isNative(Symbol) &&\r\n\t\t\t\t\t\ttypeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\r\n\r\n\t\t\t\t\tvar _Set;\r\n\t\t\t\t\t/* istanbul ignore if */ // $flow-disable-line\r\n\t\t\t\t\tif (typeof Set !== 'undefined' && isNative(Set)) {\r\n\t\t\t\t\t\t// use native Set when available.\r\n\t\t\t\t\t\t_Set = Set;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// a non-standard Set polyfill that only works with primitive keys.\r\n\t\t\t\t\t\t_Set = /*@__PURE__*/(function () {\r\n\t\t\t\t\t\t\tfunction Set() {\r\n\t\t\t\t\t\t\t\tthis.set = Object.create(null);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tSet.prototype.has = function has(key) {\r\n\t\t\t\t\t\t\t\treturn this.set[key] === true\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tSet.prototype.add = function add(key) {\r\n\t\t\t\t\t\t\t\tthis.set[key] = true;\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tSet.prototype.clear = function clear() {\r\n\t\t\t\t\t\t\t\tthis.set = Object.create(null);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\treturn Set;\r\n\t\t\t\t\t\t}());\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar ASSET_TYPES = [\r\n\t\t\t\t\t\t'component',\r\n\t\t\t\t\t\t'directive',\r\n\t\t\t\t\t\t'filter'\r\n\t\t\t\t\t];\r\n\r\n\t\t\t\t\tvar LIFECYCLE_HOOKS = [\r\n\t\t\t\t\t\t'beforeCreate',\r\n\t\t\t\t\t\t'created',\r\n\t\t\t\t\t\t'beforeMount',\r\n\t\t\t\t\t\t'mounted',\r\n\t\t\t\t\t\t'beforeUpdate',\r\n\t\t\t\t\t\t'updated',\r\n\t\t\t\t\t\t'beforeDestroy',\r\n\t\t\t\t\t\t'destroyed',\r\n\t\t\t\t\t\t'activated',\r\n\t\t\t\t\t\t'deactivated',\r\n\t\t\t\t\t\t'errorCaptured',\r\n\t\t\t\t\t\t'serverPrefetch'\r\n\t\t\t\t\t];\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\t\t\t\t\tvar config = ({\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Option merge strategies (used in core/util/options)\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\t\toptionMergeStrategies: Object.create(null),\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Whether to suppress warnings.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tsilent: false,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Show production mode tip message on boot?\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tproductionTip: \"development\" !== 'production',\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Whether to enable devtools\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tdevtools: \"development\" !== 'production',\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Whether to record perf\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tperformance: false,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Error handler for watcher errors\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\terrorHandler: null,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Warn handler for watcher warns\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\twarnHandler: null,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Ignore certain custom elements\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tignoredElements: [],\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Custom user key aliases for v-on\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\t\tkeyCodes: Object.create(null),\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Check if a tag is reserved so that it cannot be registered as a\r\n\t\t\t\t\t\t * component. This is platform-dependent and may be overwritten.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tisReservedTag: no,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Check if an attribute is reserved so that it cannot be used as a component\r\n\t\t\t\t\t\t * prop. This is platform-dependent and may be overwritten.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tisReservedAttr: no,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Check if a tag is an unknown element.\r\n\t\t\t\t\t\t * Platform-dependent.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tisUnknownElement: no,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Get the namespace of an element\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tgetTagNamespace: noop,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Parse the real tag name for the specific platform.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tparsePlatformTagName: identity,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Check if an attribute must be bound using property, e.g. value\r\n\t\t\t\t\t\t * Platform-dependent.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tmustUseProp: no,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n\t\t\t\t\t\t * This will significantly reduce performance if set to false.\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tasync: true,\r\n\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * Exposed for legacy reasons\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t_lifecycleHooks: LIFECYCLE_HOOKS\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar warn = noop;\r\n\t\t\t\t\tvar tip = noop;\r\n\t\t\t\t\tvar generateComponentTrace = (noop); // work around flow check\r\n\t\t\t\t\tvar formatComponentName = (noop);\r\n\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar hasConsole = typeof console !== 'undefined';\r\n\t\t\t\t\t\tvar classifyRE = /(?:^|[-_])(\\w)/g;\r\n\t\t\t\t\t\tvar classify = function (str) {\r\n\t\t\t\t\t\t\treturn str\r\n\t\t\t\t\t\t\t\t.replace(classifyRE, function (c) { return c.toUpperCase(); })\r\n\t\t\t\t\t\t\t\t.replace(/[-_]/g, '');\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\twarn = function (msg, vm) {\r\n\t\t\t\t\t\t\tvar trace = vm ? generateComponentTrace(vm) : '';\r\n\r\n\t\t\t\t\t\t\tif (hasConsole && (!config.silent)) {\r\n\t\t\t\t\t\t\t\tconsole.error((\"[Vue warn]: \" + msg + trace));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\ttip = function (msg, vm) {\r\n\t\t\t\t\t\t\tif (hasConsole && (!config.silent)) {\r\n\t\t\t\t\t\t\t\tconsole.warn(\"[Vue tip]: \" + msg + (\r\n\t\t\t\t\t\t\t\t\tvm ? generateComponentTrace(vm) : ''\r\n\t\t\t\t\t\t\t\t));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tformatComponentName = function (vm, includeFile) {\r\n\t\t\t\t\t\t\tif (vm.$root === vm) {\r\n\t\t\t\t\t\t\t\treturn '<Root>'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar options = typeof vm === 'function' && vm.cid != null\r\n\t\t\t\t\t\t\t\t? vm.options\r\n\t\t\t\t\t\t\t\t: vm._isVue\r\n\t\t\t\t\t\t\t\t\t? vm.$options || vm.constructor.options\r\n\t\t\t\t\t\t\t\t\t: vm;\r\n\t\t\t\t\t\t\tvar name = options.name || options._componentTag;\r\n\t\t\t\t\t\t\tvar file = options.__file;\r\n\t\t\t\t\t\t\tif (!name && file) {\r\n\t\t\t\t\t\t\t\tvar match = file.match(/([^/\\\\]+)\\.vue$/);\r\n\t\t\t\t\t\t\t\tname = match && match[1];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t(name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\r\n\t\t\t\t\t\t\t\t(file && includeFile !== false ? (\" at \" + file) : '')\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar repeat = function (str, n) {\r\n\t\t\t\t\t\t\tvar res = '';\r\n\t\t\t\t\t\t\twhile (n) {\r\n\t\t\t\t\t\t\t\tif (n % 2 === 1) { res += str; }\r\n\t\t\t\t\t\t\t\tif (n > 1) { str += str; }\r\n\t\t\t\t\t\t\t\tn >>= 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn res\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tgenerateComponentTrace = function (vm) {\r\n\t\t\t\t\t\t\tif (vm._isVue && vm.$parent) {\r\n\t\t\t\t\t\t\t\tvar tree = [];\r\n\t\t\t\t\t\t\t\tvar currentRecursiveSequence = 0;\r\n\t\t\t\t\t\t\t\twhile (vm) {\r\n\t\t\t\t\t\t\t\t\tif (tree.length > 0) {\r\n\t\t\t\t\t\t\t\t\t\tvar last = tree[tree.length - 1];\r\n\t\t\t\t\t\t\t\t\t\tif (last.constructor === vm.constructor) {\r\n\t\t\t\t\t\t\t\t\t\t\tcurrentRecursiveSequence++;\r\n\t\t\t\t\t\t\t\t\t\t\tvm = vm.$parent;\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t\t\t\t} else if (currentRecursiveSequence > 0) {\r\n\t\t\t\t\t\t\t\t\t\t\ttree[tree.length - 1] = [last, currentRecursiveSequence];\r\n\t\t\t\t\t\t\t\t\t\t\tcurrentRecursiveSequence = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\ttree.push(vm);\r\n\t\t\t\t\t\t\t\t\tvm = vm.$parent;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn '\\n\\nfound in\\n\\n' + tree\r\n\t\t\t\t\t\t\t\t\t.map(function (vm, i) {\r\n\t\t\t\t\t\t\t\t\t\treturn (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\r\n\t\t\t\t\t\t\t\t\t\t\t? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\r\n\t\t\t\t\t\t\t\t\t\t\t: formatComponentName(vm)));\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.join('\\n')\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar uid = 0;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * A dep is an observable that can have multiple\r\n\t\t\t\t\t * directives subscribing to it.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar Dep = function Dep() {\r\n\t\t\t\t\t\tthis.id = uid++;\r\n\t\t\t\t\t\tthis.subs = [];\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tDep.prototype.addSub = function addSub(sub) {\r\n\t\t\t\t\t\tthis.subs.push(sub);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tDep.prototype.removeSub = function removeSub(sub) {\r\n\t\t\t\t\t\tremove(this.subs, sub);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tDep.prototype.depend = function depend() {\r\n\t\t\t\t\t\tif (Dep.target) {\r\n\t\t\t\t\t\t\tDep.target.addDep(this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tDep.prototype.notify = function notify() {\r\n\t\t\t\t\t\t// stabilize the subscriber list first\r\n\t\t\t\t\t\tvar subs = this.subs.slice();\r\n\t\t\t\t\t\tfor (var i = 0, l = subs.length; i < l; i++) {\r\n\t\t\t\t\t\t\tsubs[i].update();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// The current target watcher being evaluated.\r\n\t\t\t\t\t// This is globally unique because only one watcher\r\n\t\t\t\t\t// can be evaluated at a time.\r\n\t\t\t\t\tDep.target = null;\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar VNode = function VNode(\r\n\t\t\t\t\t\ttag,\r\n\t\t\t\t\t\tdata,\r\n\t\t\t\t\t\tchildren,\r\n\t\t\t\t\t\ttext,\r\n\t\t\t\t\t\telm,\r\n\t\t\t\t\t\tcontext,\r\n\t\t\t\t\t\tcomponentOptions,\r\n\t\t\t\t\t\tasyncFactory\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tthis.tag = tag;\r\n\t\t\t\t\t\tthis.data = data;\r\n\t\t\t\t\t\tthis.children = children;\r\n\t\t\t\t\t\tthis.text = text;\r\n\t\t\t\t\t\tthis.elm = elm;\r\n\t\t\t\t\t\tthis.ns = undefined;\r\n\t\t\t\t\t\tthis.context = context;\r\n\t\t\t\t\t\tthis.fnContext = undefined;\r\n\t\t\t\t\t\tthis.fnOptions = undefined;\r\n\t\t\t\t\t\tthis.fnScopeId = undefined;\r\n\t\t\t\t\t\tthis.key = data && data.key;\r\n\t\t\t\t\t\tthis.componentOptions = componentOptions;\r\n\t\t\t\t\t\tthis.componentInstance = undefined;\r\n\t\t\t\t\t\tthis.parent = undefined;\r\n\t\t\t\t\t\tthis.raw = false;\r\n\t\t\t\t\t\tthis.isStatic = false;\r\n\t\t\t\t\t\tthis.isRootInsert = true;\r\n\t\t\t\t\t\tthis.isComment = false;\r\n\t\t\t\t\t\tthis.isCloned = false;\r\n\t\t\t\t\t\tthis.isOnce = false;\r\n\t\t\t\t\t\tthis.asyncFactory = asyncFactory;\r\n\t\t\t\t\t\tthis.asyncMeta = undefined;\r\n\t\t\t\t\t\tthis.isAsyncPlaceholder = false;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar prototypeAccessors = { child: { configurable: true } };\r\n\r\n\t\t\t\t\t// DEPRECATED: alias for componentInstance for backwards compat.\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tprototypeAccessors.child.get = function () {\r\n\t\t\t\t\t\treturn this.componentInstance\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tObject.defineProperties(VNode.prototype, prototypeAccessors);\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t * not type checking this file because flow doesn't play well with\r\n\t\t\t\t\t * dynamically accessing methods on Array prototype\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tvar arrayProto = Array.prototype;\r\n\t\t\t\t\tvar arrayMethods = Object.create(arrayProto);\r\n\r\n\t\t\t\t\tvar methodsToPatch = [\r\n\t\t\t\t\t\t'push',\r\n\t\t\t\t\t\t'pop',\r\n\t\t\t\t\t\t'shift',\r\n\t\t\t\t\t\t'unshift',\r\n\t\t\t\t\t\t'splice',\r\n\t\t\t\t\t\t'sort',\r\n\t\t\t\t\t\t'reverse'\r\n\t\t\t\t\t];\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Intercept mutating methods and emit events\r\n\t\t\t\t\t */\r\n\t\t\t\t\tmethodsToPatch.forEach(function (method) {\r\n\t\t\t\t\t\t// cache original method\r\n\t\t\t\t\t\tvar original = arrayProto[method];\r\n\t\t\t\t\t\tdef(arrayMethods, method, function mutator() {\r\n\t\t\t\t\t\t\tvar args = [], len = arguments.length;\r\n\t\t\t\t\t\t\twhile (len--) args[len] = arguments[len];\r\n\r\n\t\t\t\t\t\t\tvar result = original.apply(this, args);\r\n\t\t\t\t\t\t\tvar ob = this.__ob__;\r\n\t\t\t\t\t\t\tvar inserted;\r\n\t\t\t\t\t\t\tswitch (method) {\r\n\t\t\t\t\t\t\t\tcase 'push':\r\n\t\t\t\t\t\t\t\tcase 'unshift':\r\n\t\t\t\t\t\t\t\t\tinserted = args;\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\tcase 'splice':\r\n\t\t\t\t\t\t\t\t\tinserted = args.slice(2);\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (inserted) { ob.observeArray(inserted); }\r\n\t\t\t\t\t\t\t// notify change\r\n\t\t\t\t\t\t\tob.dep.notify();\r\n\t\t\t\t\t\t\treturn result\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * In some cases we may want to disable observation inside a component's\r\n\t\t\t\t\t * update computation.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar shouldObserve = true;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Observer class that is attached to each observed\r\n\t\t\t\t\t * object. Once attached, the observer converts the target\r\n\t\t\t\t\t * object's property keys into getter/setters that\r\n\t\t\t\t\t * collect dependencies and dispatch updates.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar Observer = function Observer(value) {\r\n\t\t\t\t\t\tthis.value = value;\r\n\t\t\t\t\t\tthis.dep = new Dep();\r\n\t\t\t\t\t\tthis.vmCount = 0;\r\n\t\t\t\t\t\tdef(value, '__ob__', this);\r\n\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\tif (hasProto) {\r\n\t\t\t\t\t\t\t\tprotoAugment(value, arrayMethods);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcopyAugment(value, arrayMethods, arrayKeys);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.observeArray(value);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.walk(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Walk through all properties and convert them into\r\n\t\t\t\t\t * getter/setters. This method should only be called when\r\n\t\t\t\t\t * value type is Object.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tObserver.prototype.walk = function walk(obj) {\r\n\t\t\t\t\t\tvar keys = Object.keys(obj);\r\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\t\t\t\tdefineReactive$$1(obj, keys[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Observe a list of Array items.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tObserver.prototype.observeArray = function observeArray(items) {\r\n\t\t\t\t\t\tfor (var i = 0, l = items.length; i < l; i++) {\r\n\t\t\t\t\t\t\tobserve(items[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// helpers\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Augment a target Object or Array by intercepting\r\n\t\t\t\t\t * the prototype chain using __proto__\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction protoAugment(target, src) {\r\n\t\t\t\t\t\t/* eslint-disable no-proto */\r\n\t\t\t\t\t\ttarget.__proto__ = src;\r\n\t\t\t\t\t\t/* eslint-enable no-proto */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Augment a target Object or Array by defining\r\n\t\t\t\t\t * hidden properties.\r\n\t\t\t\t\t */\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tfunction copyAugment(target, src, keys) {\r\n\t\t\t\t\t\tfor (var i = 0, l = keys.length; i < l; i++) {\r\n\t\t\t\t\t\t\tvar key = keys[i];\r\n\t\t\t\t\t\t\tdef(target, key, src[key]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Attempt to create an observer instance for a value,\r\n\t\t\t\t\t * returns the new observer if successfully observed,\r\n\t\t\t\t\t * or the existing observer if the value already has one.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction observe(value, asRootData) {\r\n\t\t\t\t\t\tif (!isObject(value) || value instanceof VNode) {\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar ob;\r\n\t\t\t\t\t\tif (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n\t\t\t\t\t\t\tob = value.__ob__;\r\n\t\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t\tshouldObserve &&\r\n\t\t\t\t\t\t\t!isServerRendering() &&\r\n\t\t\t\t\t\t\t(Array.isArray(value) || isPlainObject(value)) &&\r\n\t\t\t\t\t\t\tObject.isExtensible(value) &&\r\n\t\t\t\t\t\t\t!value._isVue\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tob = new Observer(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (asRootData && ob) {\r\n\t\t\t\t\t\t\tob.vmCount++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ob\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Define a reactive property on an Object.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction defineReactive$$1(\r\n\t\t\t\t\t\tobj,\r\n\t\t\t\t\t\tkey,\r\n\t\t\t\t\t\tval,\r\n\t\t\t\t\t\tcustomSetter,\r\n\t\t\t\t\t\tshallow\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar dep = new Dep();\r\n\r\n\t\t\t\t\t\tvar property = Object.getOwnPropertyDescriptor(obj, key);\r\n\t\t\t\t\t\tif (property && property.configurable === false) {\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// cater for pre-defined getter/setters\r\n\t\t\t\t\t\tvar getter = property && property.get;\r\n\t\t\t\t\t\tvar setter = property && property.set;\r\n\t\t\t\t\t\tif ((!getter || setter) && arguments.length === 2) {\r\n\t\t\t\t\t\t\tval = obj[key];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar childOb = !shallow && observe(val);\r\n\t\t\t\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\t\t\tget: function reactiveGetter() {\r\n\t\t\t\t\t\t\t\tvar value = getter ? getter.call(obj) : val;\r\n\t\t\t\t\t\t\t\tif (Dep.target) {\r\n\t\t\t\t\t\t\t\t\tdep.depend();\r\n\t\t\t\t\t\t\t\t\tif (childOb) {\r\n\t\t\t\t\t\t\t\t\t\tchildOb.dep.depend();\r\n\t\t\t\t\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\t\t\t\t\tdependArray(value);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn value\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tset: function reactiveSetter(newVal) {\r\n\t\t\t\t\t\t\t\tvar value = getter ? getter.call(obj) : val;\r\n\t\t\t\t\t\t\t\t/* eslint-disable no-self-compare */\r\n\t\t\t\t\t\t\t\tif (newVal === value || (newVal !== newVal && value !== value)) {\r\n\t\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/* eslint-enable no-self-compare */\r\n\t\t\t\t\t\t\t\tif (customSetter) {\r\n\t\t\t\t\t\t\t\t\tcustomSetter();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// #7981: for accessor properties without setter\r\n\t\t\t\t\t\t\t\tif (getter && !setter) { return }\r\n\t\t\t\t\t\t\t\tif (setter) {\r\n\t\t\t\t\t\t\t\t\tsetter.call(obj, newVal);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tval = newVal;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tchildOb = !shallow && observe(newVal);\r\n\t\t\t\t\t\t\t\tdep.notify();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Set a property on an object. Adds the new property and\r\n\t\t\t\t\t * triggers change notification if the property doesn't\r\n\t\t\t\t\t * already exist.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction set(target, key, val) {\r\n\t\t\t\t\t\tif (isUndef(target) || isPrimitive(target)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\twarn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (Array.isArray(target) && isValidArrayIndex(key)) {\r\n\t\t\t\t\t\t\ttarget.length = Math.max(target.length, key);\r\n\t\t\t\t\t\t\ttarget.splice(key, 1, val);\r\n\t\t\t\t\t\t\treturn val\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (key in target && !(key in Object.prototype)) {\r\n\t\t\t\t\t\t\ttarget[key] = val;\r\n\t\t\t\t\t\t\treturn val\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar ob = (target).__ob__;\r\n\t\t\t\t\t\tif (target._isVue || (ob && ob.vmCount)) {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t'Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n\t\t\t\t\t\t\t\t'at runtime - declare it upfront in the data option.'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\treturn val\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!ob) {\r\n\t\t\t\t\t\t\ttarget[key] = val;\r\n\t\t\t\t\t\t\treturn val\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdefineReactive$$1(ob.value, key, val);\r\n\t\t\t\t\t\tob.dep.notify();\r\n\t\t\t\t\t\treturn val\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Collect dependencies on array elements when the array is touched, since\r\n\t\t\t\t\t * we cannot intercept array element access like property getters.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction dependArray(value) {\r\n\t\t\t\t\t\tfor (var e = (void 0), i = 0, l = value.length; i < l; i++) {\r\n\t\t\t\t\t\t\te = value[i];\r\n\t\t\t\t\t\t\te && e.__ob__ && e.__ob__.dep.depend();\r\n\t\t\t\t\t\t\tif (Array.isArray(e)) {\r\n\t\t\t\t\t\t\t\tdependArray(e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Option overwriting strategies are functions that handle\r\n\t\t\t\t\t * how to merge a parent option value and a child option\r\n\t\t\t\t\t * value into the final value.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar strats = config.optionMergeStrategies;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Options with restrictions\r\n\t\t\t\t\t */\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tstrats.el = strats.propsData = function (parent, child, vm, key) {\r\n\t\t\t\t\t\t\tif (!vm) {\r\n\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t\"option \\\"\" + key + \"\\\" can only be used during instance \" +\r\n\t\t\t\t\t\t\t\t\t'creation with the `new` keyword.'\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn defaultStrat(parent, child)\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Helper that recursively merges two data objects together.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction mergeData(to, from) {\r\n\t\t\t\t\t\tif (!from) { return to }\r\n\t\t\t\t\t\tvar key, toVal, fromVal;\r\n\r\n\t\t\t\t\t\tvar keys = hasSymbol\r\n\t\t\t\t\t\t\t? Reflect.ownKeys(from)\r\n\t\t\t\t\t\t\t: Object.keys(from);\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\t\t\t\tkey = keys[i];\r\n\t\t\t\t\t\t\t// in case the object is already observed...\r\n\t\t\t\t\t\t\tif (key === '__ob__') { continue }\r\n\t\t\t\t\t\t\ttoVal = to[key];\r\n\t\t\t\t\t\t\tfromVal = from[key];\r\n\t\t\t\t\t\t\tif (!hasOwn(to, key)) {\r\n\t\t\t\t\t\t\t\tset(to, key, fromVal);\r\n\t\t\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t\t\ttoVal !== fromVal &&\r\n\t\t\t\t\t\t\t\tisPlainObject(toVal) &&\r\n\t\t\t\t\t\t\t\tisPlainObject(fromVal)\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tmergeData(toVal, fromVal);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn to\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Data\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction mergeDataOrFn(\r\n\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\tchildVal,\r\n\t\t\t\t\t\tvm\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (!vm) {\r\n\t\t\t\t\t\t\t// in a Vue.extend merge, both should be functions\r\n\t\t\t\t\t\t\tif (!childVal) {\r\n\t\t\t\t\t\t\t\treturn parentVal\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!parentVal) {\r\n\t\t\t\t\t\t\t\treturn childVal\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// when parentVal & childVal are both present,\r\n\t\t\t\t\t\t\t// we need to return a function that returns the\r\n\t\t\t\t\t\t\t// merged result of both functions... no need to\r\n\t\t\t\t\t\t\t// check if parentVal is a function here because\r\n\t\t\t\t\t\t\t// it has to be a function to pass previous merges.\r\n\t\t\t\t\t\t\treturn function mergedDataFn() {\r\n\t\t\t\t\t\t\t\treturn mergeData(\r\n\t\t\t\t\t\t\t\t\ttypeof childVal === 'function' ? childVal.call(this, this) : childVal,\r\n\t\t\t\t\t\t\t\t\ttypeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn function mergedInstanceDataFn() {\r\n\t\t\t\t\t\t\t\t// instance merge\r\n\t\t\t\t\t\t\t\tvar instanceData = typeof childVal === 'function'\r\n\t\t\t\t\t\t\t\t\t? childVal.call(vm, vm)\r\n\t\t\t\t\t\t\t\t\t: childVal;\r\n\t\t\t\t\t\t\t\tvar defaultData = typeof parentVal === 'function'\r\n\t\t\t\t\t\t\t\t\t? parentVal.call(vm, vm)\r\n\t\t\t\t\t\t\t\t\t: parentVal;\r\n\t\t\t\t\t\t\t\tif (instanceData) {\r\n\t\t\t\t\t\t\t\t\treturn mergeData(instanceData, defaultData)\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn defaultData\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstrats.data = function (\r\n\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\tchildVal,\r\n\t\t\t\t\t\tvm\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (!vm) {\r\n\t\t\t\t\t\t\tif (childVal && typeof childVal !== 'function') {\r\n\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t'The \"data\" option should be a function ' +\r\n\t\t\t\t\t\t\t\t\t'that returns a per-instance value in component ' +\r\n\t\t\t\t\t\t\t\t\t'definitions.',\r\n\t\t\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\treturn parentVal\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn mergeDataOrFn(parentVal, childVal)\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn mergeDataOrFn(parentVal, childVal, vm)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Hooks and props are merged as arrays.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction mergeHook(\r\n\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\tchildVal\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar res = childVal\r\n\t\t\t\t\t\t\t? parentVal\r\n\t\t\t\t\t\t\t\t? parentVal.concat(childVal)\r\n\t\t\t\t\t\t\t\t: Array.isArray(childVal)\r\n\t\t\t\t\t\t\t\t\t? childVal\r\n\t\t\t\t\t\t\t\t\t: [childVal]\r\n\t\t\t\t\t\t\t: parentVal;\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t\t\t? dedupeHooks(res)\r\n\t\t\t\t\t\t\t: res\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction dedupeHooks(hooks) {\r\n\t\t\t\t\t\tvar res = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < hooks.length; i++) {\r\n\t\t\t\t\t\t\tif (res.indexOf(hooks[i]) === -1) {\r\n\t\t\t\t\t\t\t\tres.push(hooks[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tLIFECYCLE_HOOKS.forEach(function (hook) {\r\n\t\t\t\t\t\tstrats[hook] = mergeHook;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Assets\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * When a vm is present (instance creation), we need to do\r\n\t\t\t\t\t * a three-way merge between constructor options, instance\r\n\t\t\t\t\t * options and parent options.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction mergeAssets(\r\n\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\tchildVal,\r\n\t\t\t\t\t\tvm,\r\n\t\t\t\t\t\tkey\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar res = Object.create(parentVal || null);\r\n\t\t\t\t\t\tif (childVal) {\r\n\t\t\t\t\t\t\tassertObjectType(key, childVal, vm);\r\n\t\t\t\t\t\t\treturn extend(res, childVal)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn res\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tASSET_TYPES.forEach(function (type) {\r\n\t\t\t\t\t\tstrats[type + 's'] = mergeAssets;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Watchers.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * Watchers hashes should not overwrite one\r\n\t\t\t\t\t * another, so we merge them as arrays.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tstrats.watch = function (\r\n\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\tchildVal,\r\n\t\t\t\t\t\tvm,\r\n\t\t\t\t\t\tkey\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// work around Firefox's Object.prototype.watch...\r\n\t\t\t\t\t\tif (parentVal === nativeWatch) { parentVal = undefined; }\r\n\t\t\t\t\t\tif (childVal === nativeWatch) { childVal = undefined; }\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (!childVal) { return Object.create(parentVal || null) }\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tassertObjectType(key, childVal, vm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!parentVal) { return childVal }\r\n\t\t\t\t\t\tvar ret = {};\r\n\t\t\t\t\t\textend(ret, parentVal);\r\n\t\t\t\t\t\tfor (var key$1 in childVal) {\r\n\t\t\t\t\t\t\tvar parent = ret[key$1];\r\n\t\t\t\t\t\t\tvar child = childVal[key$1];\r\n\t\t\t\t\t\t\tif (parent && !Array.isArray(parent)) {\r\n\t\t\t\t\t\t\t\tparent = [parent];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tret[key$1] = parent\r\n\t\t\t\t\t\t\t\t? parent.concat(child)\r\n\t\t\t\t\t\t\t\t: Array.isArray(child) ? child : [child];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ret\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Other object hashes.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tstrats.props =\r\n\t\t\t\t\t\tstrats.methods =\r\n\t\t\t\t\t\tstrats.inject =\r\n\t\t\t\t\t\tstrats.computed = function (\r\n\t\t\t\t\t\t\tparentVal,\r\n\t\t\t\t\t\t\tchildVal,\r\n\t\t\t\t\t\t\tvm,\r\n\t\t\t\t\t\t\tkey\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tif (childVal && \"development\" !== 'production') {\r\n\t\t\t\t\t\t\t\tassertObjectType(key, childVal, vm);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!parentVal) { return childVal }\r\n\t\t\t\t\t\t\tvar ret = Object.create(null);\r\n\t\t\t\t\t\t\textend(ret, parentVal);\r\n\t\t\t\t\t\t\tif (childVal) { extend(ret, childVal); }\r\n\t\t\t\t\t\t\treturn ret\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\tstrats.provide = mergeDataOrFn;\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Default strategy.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tvar defaultStrat = function (parentVal, childVal) {\r\n\t\t\t\t\t\treturn childVal === undefined\r\n\t\t\t\t\t\t\t? parentVal\r\n\t\t\t\t\t\t\t: childVal\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction assertObjectType(name, value, vm) {\r\n\t\t\t\t\t\tif (!isPlainObject(value)) {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\r\n\t\t\t\t\t\t\t\t\"but got \" + (toRawType(value)) + \".\",\r\n\t\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar callbacks = [];\r\n\r\n\t\t\t\t\tfunction flushCallbacks() {\r\n\t\t\t\t\t\tvar copies = callbacks.slice(0);\r\n\t\t\t\t\t\tcallbacks.length = 0;\r\n\t\t\t\t\t\tfor (var i = 0; i < copies.length; i++) {\r\n\t\t\t\t\t\t\tcopies[i]();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// The nextTick behavior leverages the microtask queue, which can be accessed\r\n\t\t\t\t\t// via either native Promise.then or MutationObserver.\r\n\t\t\t\t\t// MutationObserver has wider support, however it is seriously bugged in\r\n\t\t\t\t\t// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n\t\t\t\t\t// completely stops working after triggering a few times... so, if native\r\n\t\t\t\t\t// Promise is available, we will use it:\r\n\t\t\t\t\t/* istanbul ignore next, $flow-disable-line */\r\n\t\t\t\t\tif (typeof Promise !== 'undefined' && isNative(Promise)); else if (!isIE && typeof MutationObserver !== 'undefined' && (\r\n\t\t\t\t\t\tisNative(MutationObserver) ||\r\n\t\t\t\t\t\t// PhantomJS and iOS 7.x\r\n\t\t\t\t\t\tMutationObserver.toString() === '[object MutationObserverConstructor]'\r\n\t\t\t\t\t)) {\r\n\t\t\t\t\t\t// Use MutationObserver where native Promise is not available,\r\n\t\t\t\t\t\t// e.g. PhantomJS, iOS7, Android 4.4\r\n\t\t\t\t\t\t// (#6466 MutationObserver is unreliable in IE11)\r\n\t\t\t\t\t\tvar counter = 1;\r\n\t\t\t\t\t\tvar observer = new MutationObserver(flushCallbacks);\r\n\t\t\t\t\t\tvar textNode = document.createTextNode(String(counter));\r\n\t\t\t\t\t\tobserver.observe(textNode, {\r\n\t\t\t\t\t\t\tcharacterData: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate));\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t// these are reserved for web because they are directly compiled away\r\n\t\t\t\t\t// during template compilation\r\n\t\t\t\t\tvar isReservedAttr = makeMap('style,class');\r\n\r\n\t\t\t\t\t// attributes that should be using props for binding\r\n\t\t\t\t\tvar acceptValue = makeMap('input,textarea,option,select,progress');\r\n\t\t\t\t\tvar mustUseProp = function (tag, type, attr) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t(attr === 'value' && acceptValue(tag)) && type !== 'button' ||\r\n\t\t\t\t\t\t\t(attr === 'selected' && tag === 'option') ||\r\n\t\t\t\t\t\t\t(attr === 'checked' && tag === 'input') ||\r\n\t\t\t\t\t\t\t(attr === 'muted' && tag === 'video')\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\r\n\r\n\t\t\t\t\tvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\r\n\r\n\t\t\t\t\tvar isBooleanAttr = makeMap(\r\n\t\t\t\t\t\t'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\r\n\t\t\t\t\t\t'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\r\n\t\t\t\t\t\t'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\r\n\t\t\t\t\t\t'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\r\n\t\t\t\t\t\t'required,reversed,scoped,seamless,selected,sortable,' +\r\n\t\t\t\t\t\t'truespeed,typemustmatch,visible'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar isHTMLTag = makeMap(\r\n\t\t\t\t\t\t'html,body,base,head,link,meta,style,title,' +\r\n\t\t\t\t\t\t'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\r\n\t\t\t\t\t\t'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\r\n\t\t\t\t\t\t'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\r\n\t\t\t\t\t\t's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\r\n\t\t\t\t\t\t'embed,object,param,source,canvas,script,noscript,del,ins,' +\r\n\t\t\t\t\t\t'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\r\n\t\t\t\t\t\t'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\r\n\t\t\t\t\t\t'output,progress,select,textarea,' +\r\n\t\t\t\t\t\t'details,dialog,menu,menuitem,summary,' +\r\n\t\t\t\t\t\t'content,element,shadow,template,blockquote,iframe,tfoot'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t// this map is intentionally selective, only covering SVG elements that may\r\n\t\t\t\t\t// contain child elements.\r\n\t\t\t\t\tvar isSVG = makeMap(\r\n\t\t\t\t\t\t'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\r\n\t\t\t\t\t\t'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\r\n\t\t\t\t\t\t'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tvar isPreTag = function (tag) { return tag === 'pre'; };\r\n\r\n\t\t\t\t\tvar isReservedTag = function (tag) {\r\n\t\t\t\t\t\treturn isHTMLTag(tag) || isSVG(tag)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction getTagNamespace(tag) {\r\n\t\t\t\t\t\tif (isSVG(tag)) {\r\n\t\t\t\t\t\t\treturn 'svg'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// basic support for MathML\r\n\t\t\t\t\t\t// note it doesn't support other MathML elements being component roots\r\n\t\t\t\t\t\tif (tag === 'math') {\r\n\t\t\t\t\t\t\treturn 'math'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\r\n\r\n\t\t\t\t\tfunction parseFilters(exp) {\r\n\t\t\t\t\t\tvar inSingle = false;\r\n\t\t\t\t\t\tvar inDouble = false;\r\n\t\t\t\t\t\tvar inTemplateString = false;\r\n\t\t\t\t\t\tvar inRegex = false;\r\n\t\t\t\t\t\tvar curly = 0;\r\n\t\t\t\t\t\tvar square = 0;\r\n\t\t\t\t\t\tvar paren = 0;\r\n\t\t\t\t\t\tvar lastFilterIndex = 0;\r\n\t\t\t\t\t\tvar c, prev, i, expression, filters;\r\n\r\n\t\t\t\t\t\tfor (i = 0; i < exp.length; i++) {\r\n\t\t\t\t\t\t\tprev = c;\r\n\t\t\t\t\t\t\tc = exp.charCodeAt(i);\r\n\t\t\t\t\t\t\tif (inSingle) {\r\n\t\t\t\t\t\t\t\tif (c === 0x27 && prev !== 0x5C) { inSingle = false; }\r\n\t\t\t\t\t\t\t} else if (inDouble) {\r\n\t\t\t\t\t\t\t\tif (c === 0x22 && prev !== 0x5C) { inDouble = false; }\r\n\t\t\t\t\t\t\t} else if (inTemplateString) {\r\n\t\t\t\t\t\t\t\tif (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\r\n\t\t\t\t\t\t\t} else if (inRegex) {\r\n\t\t\t\t\t\t\t\tif (c === 0x2f && prev !== 0x5C) { inRegex = false; }\r\n\t\t\t\t\t\t\t} else if (\r\n\t\t\t\t\t\t\t\tc === 0x7C && // pipe\r\n\t\t\t\t\t\t\t\texp.charCodeAt(i + 1) !== 0x7C &&\r\n\t\t\t\t\t\t\t\texp.charCodeAt(i - 1) !== 0x7C &&\r\n\t\t\t\t\t\t\t\t!curly && !square && !paren\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tif (expression === undefined) {\r\n\t\t\t\t\t\t\t\t\t// first filter, end of expression\r\n\t\t\t\t\t\t\t\t\tlastFilterIndex = i + 1;\r\n\t\t\t\t\t\t\t\t\texpression = exp.slice(0, i).trim();\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tpushFilter();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tswitch (c) {\r\n\t\t\t\t\t\t\t\t\tcase 0x22: inDouble = true; break         // \"\r\n\t\t\t\t\t\t\t\t\tcase 0x27: inSingle = true; break         // '\r\n\t\t\t\t\t\t\t\t\tcase 0x60: inTemplateString = true; break // `\r\n\t\t\t\t\t\t\t\t\tcase 0x28: paren++; break                 // (\r\n\t\t\t\t\t\t\t\t\tcase 0x29: paren--; break                 // )\r\n\t\t\t\t\t\t\t\t\tcase 0x5B: square++; break                // [\r\n\t\t\t\t\t\t\t\t\tcase 0x5D: square--; break                // ]\r\n\t\t\t\t\t\t\t\t\tcase 0x7B: curly++; break                 // {\r\n\t\t\t\t\t\t\t\t\tcase 0x7D: curly--; break                 // }\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (c === 0x2f) { // /\r\n\t\t\t\t\t\t\t\t\tvar j = i - 1;\r\n\t\t\t\t\t\t\t\t\tvar p = (void 0);\r\n\t\t\t\t\t\t\t\t\t// find first non-whitespace prev char\r\n\t\t\t\t\t\t\t\t\tfor (; j >= 0; j--) {\r\n\t\t\t\t\t\t\t\t\t\tp = exp.charAt(j);\r\n\t\t\t\t\t\t\t\t\t\tif (p !== ' ') { break }\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (!p || !validDivisionCharRE.test(p)) {\r\n\t\t\t\t\t\t\t\t\t\tinRegex = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (expression === undefined) {\r\n\t\t\t\t\t\t\texpression = exp.slice(0, i).trim();\r\n\t\t\t\t\t\t} else if (lastFilterIndex !== 0) {\r\n\t\t\t\t\t\t\tpushFilter();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction pushFilter() {\r\n\t\t\t\t\t\t\t(filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\r\n\t\t\t\t\t\t\tlastFilterIndex = i + 1;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (filters) {\r\n\t\t\t\t\t\t\tfor (i = 0; i < filters.length; i++) {\r\n\t\t\t\t\t\t\t\texpression = wrapFilter(expression, filters[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn expression\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction wrapFilter(exp, filter) {\r\n\t\t\t\t\t\tvar i = filter.indexOf('(');\r\n\t\t\t\t\t\tif (i < 0) {\r\n\t\t\t\t\t\t\t// _f: resolveFilter\r\n\t\t\t\t\t\t\treturn (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar name = filter.slice(0, i);\r\n\t\t\t\t\t\t\tvar args = filter.slice(i + 1);\r\n\t\t\t\t\t\t\treturn (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\r\n\t\t\t\t\tvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\r\n\r\n\t\t\t\t\tvar buildRegex = cached(function (delimiters) {\r\n\t\t\t\t\t\tvar open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\r\n\t\t\t\t\t\tvar close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\r\n\t\t\t\t\t\treturn new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\r\n\t\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t\tfunction parseText(\r\n\t\t\t\t\t\ttext,\r\n\t\t\t\t\t\tdelimiters\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\r\n\t\t\t\t\t\tif (!tagRE.test(text)) {\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar tokens = [];\r\n\t\t\t\t\t\tvar rawTokens = [];\r\n\t\t\t\t\t\tvar lastIndex = tagRE.lastIndex = 0;\r\n\t\t\t\t\t\tvar match, index, tokenValue;\r\n\t\t\t\t\t\twhile ((match = tagRE.exec(text))) {\r\n\t\t\t\t\t\t\tindex = match.index;\r\n\t\t\t\t\t\t\t// push text token\r\n\t\t\t\t\t\t\tif (index > lastIndex) {\r\n\t\t\t\t\t\t\t\trawTokens.push(tokenValue = text.slice(lastIndex, index));\r\n\t\t\t\t\t\t\t\ttokens.push(JSON.stringify(tokenValue));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// tag token\r\n\t\t\t\t\t\t\tvar exp = parseFilters(match[1].trim());\r\n\t\t\t\t\t\t\ttokens.push((\"_s(\" + exp + \")\"));\r\n\t\t\t\t\t\t\trawTokens.push({ '@binding': exp });\r\n\t\t\t\t\t\t\tlastIndex = index + match[0].length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (lastIndex < text.length) {\r\n\t\t\t\t\t\t\trawTokens.push(tokenValue = text.slice(lastIndex));\r\n\t\t\t\t\t\t\ttokens.push(JSON.stringify(tokenValue));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\texpression: tokens.join('+'),\r\n\t\t\t\t\t\t\ttokens: rawTokens\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\t\t\t\t\t/* eslint-disable no-unused-vars */\r\n\t\t\t\t\tfunction baseWarn(msg, range) {\r\n\t\t\t\t\t\tconsole.error((\"[Vue compiler]: \" + msg));\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* eslint-enable no-unused-vars */\r\n\r\n\t\t\t\t\tfunction pluckModuleFunction(\r\n\t\t\t\t\t\tmodules,\r\n\t\t\t\t\t\tkey\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn modules\r\n\t\t\t\t\t\t\t? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\r\n\t\t\t\t\t\t\t: []\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addProp(el, name, value, range, dynamic) {\r\n\t\t\t\t\t\t(el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\r\n\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addAttr(el, name, value, range, dynamic) {\r\n\t\t\t\t\t\tvar attrs = dynamic\r\n\t\t\t\t\t\t\t? (el.dynamicAttrs || (el.dynamicAttrs = []))\r\n\t\t\t\t\t\t\t: (el.attrs || (el.attrs = []));\r\n\t\t\t\t\t\tattrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\r\n\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// add a raw attr (use this in preTransforms)\r\n\t\t\t\t\tfunction addRawAttr(el, name, value, range) {\r\n\t\t\t\t\t\tel.attrsMap[name] = value;\r\n\t\t\t\t\t\tel.attrsList.push(rangeSetItem({ name: name, value: value }, range));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addDirective(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\trawName,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\targ,\r\n\t\t\t\t\t\tisDynamicArg,\r\n\t\t\t\t\t\tmodifiers,\r\n\t\t\t\t\t\trange\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t(el.directives || (el.directives = [])).push(rangeSetItem({\r\n\t\t\t\t\t\t\tname: name,\r\n\t\t\t\t\t\t\trawName: rawName,\r\n\t\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\t\targ: arg,\r\n\t\t\t\t\t\t\tisDynamicArg: isDynamicArg,\r\n\t\t\t\t\t\t\tmodifiers: modifiers\r\n\t\t\t\t\t\t}, range));\r\n\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction prependModifierMarker(symbol, name, dynamic) {\r\n\t\t\t\t\t\treturn dynamic\r\n\t\t\t\t\t\t\t? (\"_p(\" + name + \",\\\"\" + symbol + \"\\\")\")\r\n\t\t\t\t\t\t\t: symbol + name // mark the event as captured\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addHandler(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers,\r\n\t\t\t\t\t\timportant,\r\n\t\t\t\t\t\twarn,\r\n\t\t\t\t\t\trange,\r\n\t\t\t\t\t\tdynamic\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tmodifiers = modifiers || emptyObject;\r\n\t\t\t\t\t\t// warn prevent and passive modifier\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\twarn &&\r\n\t\t\t\t\t\t\tmodifiers.prevent && modifiers.passive\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t'passive and prevent can\\'t be used together. ' +\r\n\t\t\t\t\t\t\t\t'Passive handler can\\'t prevent default event.',\r\n\t\t\t\t\t\t\t\trange\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// normalize click.right and click.middle since they don't actually fire\r\n\t\t\t\t\t\t// this is technically browser-specific, but at least for now browsers are\r\n\t\t\t\t\t\t// the only target envs that have right/middle clicks.\r\n\t\t\t\t\t\tif (modifiers.right) {\r\n\t\t\t\t\t\t\tif (dynamic) {\r\n\t\t\t\t\t\t\t\tname = \"(\" + name + \")==='click'?'contextmenu':(\" + name + \")\";\r\n\t\t\t\t\t\t\t} else if (name === 'click') {\r\n\t\t\t\t\t\t\t\tname = 'contextmenu';\r\n\t\t\t\t\t\t\t\tdelete modifiers.right;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (modifiers.middle) {\r\n\t\t\t\t\t\t\tif (dynamic) {\r\n\t\t\t\t\t\t\t\tname = \"(\" + name + \")==='click'?'mouseup':(\" + name + \")\";\r\n\t\t\t\t\t\t\t} else if (name === 'click') {\r\n\t\t\t\t\t\t\t\tname = 'mouseup';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// check capture modifier\r\n\t\t\t\t\t\tif (modifiers.capture) {\r\n\t\t\t\t\t\t\tdelete modifiers.capture;\r\n\t\t\t\t\t\t\tname = prependModifierMarker('!', name, dynamic);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (modifiers.once) {\r\n\t\t\t\t\t\t\tdelete modifiers.once;\r\n\t\t\t\t\t\t\tname = prependModifierMarker('~', name, dynamic);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (modifiers.passive) {\r\n\t\t\t\t\t\t\tdelete modifiers.passive;\r\n\t\t\t\t\t\t\tname = prependModifierMarker('&', name, dynamic);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar events;\r\n\t\t\t\t\t\tif (modifiers.native) {\r\n\t\t\t\t\t\t\tdelete modifiers.native;\r\n\t\t\t\t\t\t\tevents = el.nativeEvents || (el.nativeEvents = {});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tevents = el.events || (el.events = {});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);\r\n\t\t\t\t\t\tif (modifiers !== emptyObject) {\r\n\t\t\t\t\t\t\tnewHandler.modifiers = modifiers;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar handlers = events[name];\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (Array.isArray(handlers)) {\r\n\t\t\t\t\t\t\timportant ? handlers.unshift(newHandler) : handlers.push(newHandler);\r\n\t\t\t\t\t\t} else if (handlers) {\r\n\t\t\t\t\t\t\tevents[name] = important ? [newHandler, handlers] : [handlers, newHandler];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tevents[name] = newHandler;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getRawBindingAttr(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn el.rawAttrsMap[':' + name] ||\r\n\t\t\t\t\t\t\tel.rawAttrsMap['v-bind:' + name] ||\r\n\t\t\t\t\t\t\tel.rawAttrsMap[name]\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getBindingAttr(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\tgetStatic\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar dynamicValue =\r\n\t\t\t\t\t\t\tgetAndRemoveAttr(el, ':' + name) ||\r\n\t\t\t\t\t\t\tgetAndRemoveAttr(el, 'v-bind:' + name);\r\n\t\t\t\t\t\tif (dynamicValue != null) {\r\n\t\t\t\t\t\t\treturn parseFilters(dynamicValue)\r\n\t\t\t\t\t\t} else if (getStatic !== false) {\r\n\t\t\t\t\t\t\tvar staticValue = getAndRemoveAttr(el, name);\r\n\t\t\t\t\t\t\tif (staticValue != null) {\r\n\t\t\t\t\t\t\t\treturn JSON.stringify(staticValue)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// note: this only removes the attr from the Array (attrsList) so that it\r\n\t\t\t\t\t// doesn't get processed by processAttrs.\r\n\t\t\t\t\t// By default it does NOT remove it from the map (attrsMap) because the map is\r\n\t\t\t\t\t// needed during codegen.\r\n\t\t\t\t\tfunction getAndRemoveAttr(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\tremoveFromMap\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar val;\r\n\t\t\t\t\t\tif ((val = el.attrsMap[name]) != null) {\r\n\t\t\t\t\t\t\tvar list = el.attrsList;\r\n\t\t\t\t\t\t\tfor (var i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tif (list[i].name === name) {\r\n\t\t\t\t\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (removeFromMap) {\r\n\t\t\t\t\t\t\tdelete el.attrsMap[name];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn val\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getAndRemoveAttrByRegex(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tname\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar list = el.attrsList;\r\n\t\t\t\t\t\tfor (var i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\t\t\t\tvar attr = list[i];\r\n\t\t\t\t\t\t\tif (name.test(attr.name)) {\r\n\t\t\t\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\t\t\t\treturn attr\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction rangeSetItem(\r\n\t\t\t\t\t\titem,\r\n\t\t\t\t\t\trange\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (range) {\r\n\t\t\t\t\t\t\tif (range.start != null) {\r\n\t\t\t\t\t\t\t\titem.start = range.start;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (range.end != null) {\r\n\t\t\t\t\t\t\t\titem.end = range.end;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn item\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction transformNode(el, options) {\r\n\t\t\t\t\t\tvar warn = options.warn || baseWarn;\r\n\t\t\t\t\t\tvar staticClass = getAndRemoveAttr(el, 'class');\r\n\t\t\t\t\t\tif (staticClass) {\r\n\t\t\t\t\t\t\tvar res = parseText(staticClass, options.delimiters);\r\n\t\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t\"class=\\\"\" + staticClass + \"\\\": \" +\r\n\t\t\t\t\t\t\t\t\t'Interpolation inside attributes has been removed. ' +\r\n\t\t\t\t\t\t\t\t\t'Use v-bind or the colon shorthand instead. For example, ' +\r\n\t\t\t\t\t\t\t\t\t'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.',\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['class']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (staticClass) {\r\n\t\t\t\t\t\t\tel.staticClass = JSON.stringify(staticClass);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar classBinding = getBindingAttr(el, 'class', false /* getStatic */);\r\n\t\t\t\t\t\tif (classBinding) {\r\n\t\t\t\t\t\t\tel.classBinding = classBinding;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genData(el) {\r\n\t\t\t\t\t\tvar data = '';\r\n\t\t\t\t\t\tif (el.staticClass) {\r\n\t\t\t\t\t\t\tdata += \"staticClass:\" + (el.staticClass) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.classBinding) {\r\n\t\t\t\t\t\t\tdata += \"class:\" + (el.classBinding) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn data\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar klass = {\r\n\t\t\t\t\t\tstaticKeys: ['staticClass'],\r\n\t\t\t\t\t\ttransformNode: transformNode,\r\n\t\t\t\t\t\tgenData: genData\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar parseStyleText = cached(function (cssText) {\r\n\t\t\t\t\t\tvar res = {};\r\n\t\t\t\t\t\tvar listDelimiter = /;(?![^(]*\\))/g;\r\n\t\t\t\t\t\tvar propertyDelimiter = /:(.+)/;\r\n\t\t\t\t\t\tcssText.split(listDelimiter).forEach(function (item) {\r\n\t\t\t\t\t\t\tif (item) {\r\n\t\t\t\t\t\t\t\tvar tmp = item.split(propertyDelimiter);\r\n\t\t\t\t\t\t\t\ttmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction transformNode$1(el, options) {\r\n\t\t\t\t\t\tvar warn = options.warn || baseWarn;\r\n\t\t\t\t\t\tvar staticStyle = getAndRemoveAttr(el, 'style');\r\n\t\t\t\t\t\tif (staticStyle) {\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar res = parseText(staticStyle, options.delimiters);\r\n\t\t\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t\t\"style=\\\"\" + staticStyle + \"\\\": \" +\r\n\t\t\t\t\t\t\t\t\t\t'Interpolation inside attributes has been removed. ' +\r\n\t\t\t\t\t\t\t\t\t\t'Use v-bind or the colon shorthand instead. For example, ' +\r\n\t\t\t\t\t\t\t\t\t\t'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.',\r\n\t\t\t\t\t\t\t\t\t\tel.rawAttrsMap['style']\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel.staticStyle = JSON.stringify(parseStyleText(staticStyle));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\r\n\t\t\t\t\t\tif (styleBinding) {\r\n\t\t\t\t\t\t\tel.styleBinding = styleBinding;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genData$1(el) {\r\n\t\t\t\t\t\tvar data = '';\r\n\t\t\t\t\t\tif (el.staticStyle) {\r\n\t\t\t\t\t\t\tdata += \"staticStyle:\" + (el.staticStyle) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.styleBinding) {\r\n\t\t\t\t\t\t\tdata += \"style:(\" + (el.styleBinding) + \"),\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn data\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar style = {\r\n\t\t\t\t\t\tstaticKeys: ['staticStyle'],\r\n\t\t\t\t\t\ttransformNode: transformNode$1,\r\n\t\t\t\t\t\tgenData: genData$1\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\r\n\r\n\t\t\t\t\tfunction createCommonjsModule(fn, module) {\r\n\t\t\t\t\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar he = createCommonjsModule(function (module, exports) {\r\n\t\t\t\t\t\t(function (root) {\r\n\r\n\t\t\t\t\t\t\t// Detect free variables `exports`.\r\n\t\t\t\t\t\t\tvar freeExports = exports;\r\n\r\n\t\t\t\t\t\t\t// Detect free variable `module`.\r\n\t\t\t\t\t\t\tvar freeModule = module &&\r\n\t\t\t\t\t\t\t\tmodule.exports == freeExports && module;\r\n\r\n\t\t\t\t\t\t\t// Detect free variable `global`, from Node.js or Browserified code,\r\n\t\t\t\t\t\t\t// and use it as `root`.\r\n\t\t\t\t\t\t\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal;\r\n\t\t\t\t\t\t\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\r\n\t\t\t\t\t\t\t\troot = freeGlobal;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/*--------------------------------------------------------------------------*/\r\n\r\n\t\t\t\t\t\t\t// All astral symbols.\r\n\t\t\t\t\t\t\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\r\n\t\t\t\t\t\t\t// All ASCII symbols (not just printable ASCII) except those listed in the\r\n\t\t\t\t\t\t\t// first column of the overrides table.\r\n\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\r\n\t\t\t\t\t\t\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\r\n\t\t\t\t\t\t\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\r\n\t\t\t\t\t\t\t// code points listed in the first column of the overrides table on\r\n\t\t\t\t\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\r\n\t\t\t\t\t\t\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\r\n\r\n\t\t\t\t\t\t\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\r\n\t\t\t\t\t\t\tvar encodeMap = { '\\xAD': 'shy', '\\u200C': 'zwnj', '\\u200D': 'zwj', '\\u200E': 'lrm', '\\u2063': 'ic', '\\u2062': 'it', '\\u2061': 'af', '\\u200F': 'rlm', '\\u200B': 'ZeroWidthSpace', '\\u2060': 'NoBreak', '\\u0311': 'DownBreve', '\\u20DB': 'tdot', '\\u20DC': 'DotDot', '\\t': 'Tab', '\\n': 'NewLine', '\\u2008': 'puncsp', '\\u205F': 'MediumSpace', '\\u2009': 'thinsp', '\\u200A': 'hairsp', '\\u2004': 'emsp13', '\\u2002': 'ensp', '\\u2005': 'emsp14', '\\u2003': 'emsp', '\\u2007': 'numsp', '\\xA0': 'nbsp', '\\u205F\\u200A': 'ThickSpace', '\\u203E': 'oline', '_': 'lowbar', '\\u2010': 'dash', '\\u2013': 'ndash', '\\u2014': 'mdash', '\\u2015': 'horbar', ',': 'comma', ';': 'semi', '\\u204F': 'bsemi', ':': 'colon', '\\u2A74': 'Colone', '!': 'excl', '\\xA1': 'iexcl', '?': 'quest', '\\xBF': 'iquest', '.': 'period', '\\u2025': 'nldr', '\\u2026': 'mldr', '\\xB7': 'middot', '\\'': 'apos', '\\u2018': 'lsquo', '\\u2019': 'rsquo', '\\u201A': 'sbquo', '\\u2039': 'lsaquo', '\\u203A': 'rsaquo', '\"': 'quot', '\\u201C': 'ldquo', '\\u201D': 'rdquo', '\\u201E': 'bdquo', '\\xAB': 'laquo', '\\xBB': 'raquo', '(': 'lpar', ')': 'rpar', '[': 'lsqb', ']': 'rsqb', '{': 'lcub', '}': 'rcub', '\\u2308': 'lceil', '\\u2309': 'rceil', '\\u230A': 'lfloor', '\\u230B': 'rfloor', '\\u2985': 'lopar', '\\u2986': 'ropar', '\\u298B': 'lbrke', '\\u298C': 'rbrke', '\\u298D': 'lbrkslu', '\\u298E': 'rbrksld', '\\u298F': 'lbrksld', '\\u2990': 'rbrkslu', '\\u2991': 'langd', '\\u2992': 'rangd', '\\u2993': 'lparlt', '\\u2994': 'rpargt', '\\u2995': 'gtlPar', '\\u2996': 'ltrPar', '\\u27E6': 'lobrk', '\\u27E7': 'robrk', '\\u27E8': 'lang', '\\u27E9': 'rang', '\\u27EA': 'Lang', '\\u27EB': 'Rang', '\\u27EC': 'loang', '\\u27ED': 'roang', '\\u2772': 'lbbrk', '\\u2773': 'rbbrk', '\\u2016': 'Vert', '\\xA7': 'sect', '\\xB6': 'para', '@': 'commat', '*': 'ast', '/': 'sol', 'undefined': null, '&': 'amp', '#': 'num', '%': 'percnt', '\\u2030': 'permil', '\\u2031': 'pertenk', '\\u2020': 'dagger', '\\u2021': 'Dagger', '\\u2022': 'bull', '\\u2043': 'hybull', '\\u2032': 'prime', '\\u2033': 'Prime', '\\u2034': 'tprime', '\\u2057': 'qprime', '\\u2035': 'bprime', '\\u2041': 'caret', '`': 'grave', '\\xB4': 'acute', '\\u02DC': 'tilde', '^': 'Hat', '\\xAF': 'macr', '\\u02D8': 'breve', '\\u02D9': 'dot', '\\xA8': 'die', '\\u02DA': 'ring', '\\u02DD': 'dblac', '\\xB8': 'cedil', '\\u02DB': 'ogon', '\\u02C6': 'circ', '\\u02C7': 'caron', '\\xB0': 'deg', '\\xA9': 'copy', '\\xAE': 'reg', '\\u2117': 'copysr', '\\u2118': 'wp', '\\u211E': 'rx', '\\u2127': 'mho', '\\u2129': 'iiota', '\\u2190': 'larr', '\\u219A': 'nlarr', '\\u2192': 'rarr', '\\u219B': 'nrarr', '\\u2191': 'uarr', '\\u2193': 'darr', '\\u2194': 'harr', '\\u21AE': 'nharr', '\\u2195': 'varr', '\\u2196': 'nwarr', '\\u2197': 'nearr', '\\u2198': 'searr', '\\u2199': 'swarr', '\\u219D': 'rarrw', '\\u219D\\u0338': 'nrarrw', '\\u219E': 'Larr', '\\u219F': 'Uarr', '\\u21A0': 'Rarr', '\\u21A1': 'Darr', '\\u21A2': 'larrtl', '\\u21A3': 'rarrtl', '\\u21A4': 'mapstoleft', '\\u21A5': 'mapstoup', '\\u21A6': 'map', '\\u21A7': 'mapstodown', '\\u21A9': 'larrhk', '\\u21AA': 'rarrhk', '\\u21AB': 'larrlp', '\\u21AC': 'rarrlp', '\\u21AD': 'harrw', '\\u21B0': 'lsh', '\\u21B1': 'rsh', '\\u21B2': 'ldsh', '\\u21B3': 'rdsh', '\\u21B5': 'crarr', '\\u21B6': 'cularr', '\\u21B7': 'curarr', '\\u21BA': 'olarr', '\\u21BB': 'orarr', '\\u21BC': 'lharu', '\\u21BD': 'lhard', '\\u21BE': 'uharr', '\\u21BF': 'uharl', '\\u21C0': 'rharu', '\\u21C1': 'rhard', '\\u21C2': 'dharr', '\\u21C3': 'dharl', '\\u21C4': 'rlarr', '\\u21C5': 'udarr', '\\u21C6': 'lrarr', '\\u21C7': 'llarr', '\\u21C8': 'uuarr', '\\u21C9': 'rrarr', '\\u21CA': 'ddarr', '\\u21CB': 'lrhar', '\\u21CC': 'rlhar', '\\u21D0': 'lArr', '\\u21CD': 'nlArr', '\\u21D1': 'uArr', '\\u21D2': 'rArr', '\\u21CF': 'nrArr', '\\u21D3': 'dArr', '\\u21D4': 'iff', '\\u21CE': 'nhArr', '\\u21D5': 'vArr', '\\u21D6': 'nwArr', '\\u21D7': 'neArr', '\\u21D8': 'seArr', '\\u21D9': 'swArr', '\\u21DA': 'lAarr', '\\u21DB': 'rAarr', '\\u21DD': 'zigrarr', '\\u21E4': 'larrb', '\\u21E5': 'rarrb', '\\u21F5': 'duarr', '\\u21FD': 'loarr', '\\u21FE': 'roarr', '\\u21FF': 'hoarr', '\\u2200': 'forall', '\\u2201': 'comp', '\\u2202': 'part', '\\u2202\\u0338': 'npart', '\\u2203': 'exist', '\\u2204': 'nexist', '\\u2205': 'empty', '\\u2207': 'Del', '\\u2208': 'in', '\\u2209': 'notin', '\\u220B': 'ni', '\\u220C': 'notni', '\\u03F6': 'bepsi', '\\u220F': 'prod', '\\u2210': 'coprod', '\\u2211': 'sum', '+': 'plus', '\\xB1': 'pm', '\\xF7': 'div', '\\xD7': 'times', '<': 'lt', '\\u226E': 'nlt', '<\\u20D2': 'nvlt', '=': 'equals', '\\u2260': 'ne', '=\\u20E5': 'bne', '\\u2A75': 'Equal', '>': 'gt', '\\u226F': 'ngt', '>\\u20D2': 'nvgt', '\\xAC': 'not', '|': 'vert', '\\xA6': 'brvbar', '\\u2212': 'minus', '\\u2213': 'mp', '\\u2214': 'plusdo', '\\u2044': 'frasl', '\\u2216': 'setmn', '\\u2217': 'lowast', '\\u2218': 'compfn', '\\u221A': 'Sqrt', '\\u221D': 'prop', '\\u221E': 'infin', '\\u221F': 'angrt', '\\u2220': 'ang', '\\u2220\\u20D2': 'nang', '\\u2221': 'angmsd', '\\u2222': 'angsph', '\\u2223': 'mid', '\\u2224': 'nmid', '\\u2225': 'par', '\\u2226': 'npar', '\\u2227': 'and', '\\u2228': 'or', '\\u2229': 'cap', '\\u2229\\uFE00': 'caps', '\\u222A': 'cup', '\\u222A\\uFE00': 'cups', '\\u222B': 'int', '\\u222C': 'Int', '\\u222D': 'tint', '\\u2A0C': 'qint', '\\u222E': 'oint', '\\u222F': 'Conint', '\\u2230': 'Cconint', '\\u2231': 'cwint', '\\u2232': 'cwconint', '\\u2233': 'awconint', '\\u2234': 'there4', '\\u2235': 'becaus', '\\u2236': 'ratio', '\\u2237': 'Colon', '\\u2238': 'minusd', '\\u223A': 'mDDot', '\\u223B': 'homtht', '\\u223C': 'sim', '\\u2241': 'nsim', '\\u223C\\u20D2': 'nvsim', '\\u223D': 'bsim', '\\u223D\\u0331': 'race', '\\u223E': 'ac', '\\u223E\\u0333': 'acE', '\\u223F': 'acd', '\\u2240': 'wr', '\\u2242': 'esim', '\\u2242\\u0338': 'nesim', '\\u2243': 'sime', '\\u2244': 'nsime', '\\u2245': 'cong', '\\u2247': 'ncong', '\\u2246': 'simne', '\\u2248': 'ap', '\\u2249': 'nap', '\\u224A': 'ape', '\\u224B': 'apid', '\\u224B\\u0338': 'napid', '\\u224C': 'bcong', '\\u224D': 'CupCap', '\\u226D': 'NotCupCap', '\\u224D\\u20D2': 'nvap', '\\u224E': 'bump', '\\u224E\\u0338': 'nbump', '\\u224F': 'bumpe', '\\u224F\\u0338': 'nbumpe', '\\u2250': 'doteq', '\\u2250\\u0338': 'nedot', '\\u2251': 'eDot', '\\u2252': 'efDot', '\\u2253': 'erDot', '\\u2254': 'colone', '\\u2255': 'ecolon', '\\u2256': 'ecir', '\\u2257': 'cire', '\\u2259': 'wedgeq', '\\u225A': 'veeeq', '\\u225C': 'trie', '\\u225F': 'equest', '\\u2261': 'equiv', '\\u2262': 'nequiv', '\\u2261\\u20E5': 'bnequiv', '\\u2264': 'le', '\\u2270': 'nle', '\\u2264\\u20D2': 'nvle', '\\u2265': 'ge', '\\u2271': 'nge', '\\u2265\\u20D2': 'nvge', '\\u2266': 'lE', '\\u2266\\u0338': 'nlE', '\\u2267': 'gE', '\\u2267\\u0338': 'ngE', '\\u2268\\uFE00': 'lvnE', '\\u2268': 'lnE', '\\u2269': 'gnE', '\\u2269\\uFE00': 'gvnE', '\\u226A': 'll', '\\u226A\\u0338': 'nLtv', '\\u226A\\u20D2': 'nLt', '\\u226B': 'gg', '\\u226B\\u0338': 'nGtv', '\\u226B\\u20D2': 'nGt', '\\u226C': 'twixt', '\\u2272': 'lsim', '\\u2274': 'nlsim', '\\u2273': 'gsim', '\\u2275': 'ngsim', '\\u2276': 'lg', '\\u2278': 'ntlg', '\\u2277': 'gl', '\\u2279': 'ntgl', '\\u227A': 'pr', '\\u2280': 'npr', '\\u227B': 'sc', '\\u2281': 'nsc', '\\u227C': 'prcue', '\\u22E0': 'nprcue', '\\u227D': 'sccue', '\\u22E1': 'nsccue', '\\u227E': 'prsim', '\\u227F': 'scsim', '\\u227F\\u0338': 'NotSucceedsTilde', '\\u2282': 'sub', '\\u2284': 'nsub', '\\u2282\\u20D2': 'vnsub', '\\u2283': 'sup', '\\u2285': 'nsup', '\\u2283\\u20D2': 'vnsup', '\\u2286': 'sube', '\\u2288': 'nsube', '\\u2287': 'supe', '\\u2289': 'nsupe', '\\u228A\\uFE00': 'vsubne', '\\u228A': 'subne', '\\u228B\\uFE00': 'vsupne', '\\u228B': 'supne', '\\u228D': 'cupdot', '\\u228E': 'uplus', '\\u228F': 'sqsub', '\\u228F\\u0338': 'NotSquareSubset', '\\u2290': 'sqsup', '\\u2290\\u0338': 'NotSquareSuperset', '\\u2291': 'sqsube', '\\u22E2': 'nsqsube', '\\u2292': 'sqsupe', '\\u22E3': 'nsqsupe', '\\u2293': 'sqcap', '\\u2293\\uFE00': 'sqcaps', '\\u2294': 'sqcup', '\\u2294\\uFE00': 'sqcups', '\\u2295': 'oplus', '\\u2296': 'ominus', '\\u2297': 'otimes', '\\u2298': 'osol', '\\u2299': 'odot', '\\u229A': 'ocir', '\\u229B': 'oast', '\\u229D': 'odash', '\\u229E': 'plusb', '\\u229F': 'minusb', '\\u22A0': 'timesb', '\\u22A1': 'sdotb', '\\u22A2': 'vdash', '\\u22AC': 'nvdash', '\\u22A3': 'dashv', '\\u22A4': 'top', '\\u22A5': 'bot', '\\u22A7': 'models', '\\u22A8': 'vDash', '\\u22AD': 'nvDash', '\\u22A9': 'Vdash', '\\u22AE': 'nVdash', '\\u22AA': 'Vvdash', '\\u22AB': 'VDash', '\\u22AF': 'nVDash', '\\u22B0': 'prurel', '\\u22B2': 'vltri', '\\u22EA': 'nltri', '\\u22B3': 'vrtri', '\\u22EB': 'nrtri', '\\u22B4': 'ltrie', '\\u22EC': 'nltrie', '\\u22B4\\u20D2': 'nvltrie', '\\u22B5': 'rtrie', '\\u22ED': 'nrtrie', '\\u22B5\\u20D2': 'nvrtrie', '\\u22B6': 'origof', '\\u22B7': 'imof', '\\u22B8': 'mumap', '\\u22B9': 'hercon', '\\u22BA': 'intcal', '\\u22BB': 'veebar', '\\u22BD': 'barvee', '\\u22BE': 'angrtvb', '\\u22BF': 'lrtri', '\\u22C0': 'Wedge', '\\u22C1': 'Vee', '\\u22C2': 'xcap', '\\u22C3': 'xcup', '\\u22C4': 'diam', '\\u22C5': 'sdot', '\\u22C6': 'Star', '\\u22C7': 'divonx', '\\u22C8': 'bowtie', '\\u22C9': 'ltimes', '\\u22CA': 'rtimes', '\\u22CB': 'lthree', '\\u22CC': 'rthree', '\\u22CD': 'bsime', '\\u22CE': 'cuvee', '\\u22CF': 'cuwed', '\\u22D0': 'Sub', '\\u22D1': 'Sup', '\\u22D2': 'Cap', '\\u22D3': 'Cup', '\\u22D4': 'fork', '\\u22D5': 'epar', '\\u22D6': 'ltdot', '\\u22D7': 'gtdot', '\\u22D8': 'Ll', '\\u22D8\\u0338': 'nLl', '\\u22D9': 'Gg', '\\u22D9\\u0338': 'nGg', '\\u22DA\\uFE00': 'lesg', '\\u22DA': 'leg', '\\u22DB': 'gel', '\\u22DB\\uFE00': 'gesl', '\\u22DE': 'cuepr', '\\u22DF': 'cuesc', '\\u22E6': 'lnsim', '\\u22E7': 'gnsim', '\\u22E8': 'prnsim', '\\u22E9': 'scnsim', '\\u22EE': 'vellip', '\\u22EF': 'ctdot', '\\u22F0': 'utdot', '\\u22F1': 'dtdot', '\\u22F2': 'disin', '\\u22F3': 'isinsv', '\\u22F4': 'isins', '\\u22F5': 'isindot', '\\u22F5\\u0338': 'notindot', '\\u22F6': 'notinvc', '\\u22F7': 'notinvb', '\\u22F9': 'isinE', '\\u22F9\\u0338': 'notinE', '\\u22FA': 'nisd', '\\u22FB': 'xnis', '\\u22FC': 'nis', '\\u22FD': 'notnivc', '\\u22FE': 'notnivb', '\\u2305': 'barwed', '\\u2306': 'Barwed', '\\u230C': 'drcrop', '\\u230D': 'dlcrop', '\\u230E': 'urcrop', '\\u230F': 'ulcrop', '\\u2310': 'bnot', '\\u2312': 'profline', '\\u2313': 'profsurf', '\\u2315': 'telrec', '\\u2316': 'target', '\\u231C': 'ulcorn', '\\u231D': 'urcorn', '\\u231E': 'dlcorn', '\\u231F': 'drcorn', '\\u2322': 'frown', '\\u2323': 'smile', '\\u232D': 'cylcty', '\\u232E': 'profalar', '\\u2336': 'topbot', '\\u233D': 'ovbar', '\\u233F': 'solbar', '\\u237C': 'angzarr', '\\u23B0': 'lmoust', '\\u23B1': 'rmoust', '\\u23B4': 'tbrk', '\\u23B5': 'bbrk', '\\u23B6': 'bbrktbrk', '\\u23DC': 'OverParenthesis', '\\u23DD': 'UnderParenthesis', '\\u23DE': 'OverBrace', '\\u23DF': 'UnderBrace', '\\u23E2': 'trpezium', '\\u23E7': 'elinters', '\\u2423': 'blank', '\\u2500': 'boxh', '\\u2502': 'boxv', '\\u250C': 'boxdr', '\\u2510': 'boxdl', '\\u2514': 'boxur', '\\u2518': 'boxul', '\\u251C': 'boxvr', '\\u2524': 'boxvl', '\\u252C': 'boxhd', '\\u2534': 'boxhu', '\\u253C': 'boxvh', '\\u2550': 'boxH', '\\u2551': 'boxV', '\\u2552': 'boxdR', '\\u2553': 'boxDr', '\\u2554': 'boxDR', '\\u2555': 'boxdL', '\\u2556': 'boxDl', '\\u2557': 'boxDL', '\\u2558': 'boxuR', '\\u2559': 'boxUr', '\\u255A': 'boxUR', '\\u255B': 'boxuL', '\\u255C': 'boxUl', '\\u255D': 'boxUL', '\\u255E': 'boxvR', '\\u255F': 'boxVr', '\\u2560': 'boxVR', '\\u2561': 'boxvL', '\\u2562': 'boxVl', '\\u2563': 'boxVL', '\\u2564': 'boxHd', '\\u2565': 'boxhD', '\\u2566': 'boxHD', '\\u2567': 'boxHu', '\\u2568': 'boxhU', '\\u2569': 'boxHU', '\\u256A': 'boxvH', '\\u256B': 'boxVh', '\\u256C': 'boxVH', '\\u2580': 'uhblk', '\\u2584': 'lhblk', '\\u2588': 'block', '\\u2591': 'blk14', '\\u2592': 'blk12', '\\u2593': 'blk34', '\\u25A1': 'squ', '\\u25AA': 'squf', '\\u25AB': 'EmptyVerySmallSquare', '\\u25AD': 'rect', '\\u25AE': 'marker', '\\u25B1': 'fltns', '\\u25B3': 'xutri', '\\u25B4': 'utrif', '\\u25B5': 'utri', '\\u25B8': 'rtrif', '\\u25B9': 'rtri', '\\u25BD': 'xdtri', '\\u25BE': 'dtrif', '\\u25BF': 'dtri', '\\u25C2': 'ltrif', '\\u25C3': 'ltri', '\\u25CA': 'loz', '\\u25CB': 'cir', '\\u25EC': 'tridot', '\\u25EF': 'xcirc', '\\u25F8': 'ultri', '\\u25F9': 'urtri', '\\u25FA': 'lltri', '\\u25FB': 'EmptySmallSquare', '\\u25FC': 'FilledSmallSquare', '\\u2605': 'starf', '\\u2606': 'star', '\\u260E': 'phone', '\\u2640': 'female', '\\u2642': 'male', '\\u2660': 'spades', '\\u2663': 'clubs', '\\u2665': 'hearts', '\\u2666': 'diams', '\\u266A': 'sung', '\\u2713': 'check', '\\u2717': 'cross', '\\u2720': 'malt', '\\u2736': 'sext', '\\u2758': 'VerticalSeparator', '\\u27C8': 'bsolhsub', '\\u27C9': 'suphsol', '\\u27F5': 'xlarr', '\\u27F6': 'xrarr', '\\u27F7': 'xharr', '\\u27F8': 'xlArr', '\\u27F9': 'xrArr', '\\u27FA': 'xhArr', '\\u27FC': 'xmap', '\\u27FF': 'dzigrarr', '\\u2902': 'nvlArr', '\\u2903': 'nvrArr', '\\u2904': 'nvHarr', '\\u2905': 'Map', '\\u290C': 'lbarr', '\\u290D': 'rbarr', '\\u290E': 'lBarr', '\\u290F': 'rBarr', '\\u2910': 'RBarr', '\\u2911': 'DDotrahd', '\\u2912': 'UpArrowBar', '\\u2913': 'DownArrowBar', '\\u2916': 'Rarrtl', '\\u2919': 'latail', '\\u291A': 'ratail', '\\u291B': 'lAtail', '\\u291C': 'rAtail', '\\u291D': 'larrfs', '\\u291E': 'rarrfs', '\\u291F': 'larrbfs', '\\u2920': 'rarrbfs', '\\u2923': 'nwarhk', '\\u2924': 'nearhk', '\\u2925': 'searhk', '\\u2926': 'swarhk', '\\u2927': 'nwnear', '\\u2928': 'toea', '\\u2929': 'tosa', '\\u292A': 'swnwar', '\\u2933': 'rarrc', '\\u2933\\u0338': 'nrarrc', '\\u2935': 'cudarrr', '\\u2936': 'ldca', '\\u2937': 'rdca', '\\u2938': 'cudarrl', '\\u2939': 'larrpl', '\\u293C': 'curarrm', '\\u293D': 'cularrp', '\\u2945': 'rarrpl', '\\u2948': 'harrcir', '\\u2949': 'Uarrocir', '\\u294A': 'lurdshar', '\\u294B': 'ldrushar', '\\u294E': 'LeftRightVector', '\\u294F': 'RightUpDownVector', '\\u2950': 'DownLeftRightVector', '\\u2951': 'LeftUpDownVector', '\\u2952': 'LeftVectorBar', '\\u2953': 'RightVectorBar', '\\u2954': 'RightUpVectorBar', '\\u2955': 'RightDownVectorBar', '\\u2956': 'DownLeftVectorBar', '\\u2957': 'DownRightVectorBar', '\\u2958': 'LeftUpVectorBar', '\\u2959': 'LeftDownVectorBar', '\\u295A': 'LeftTeeVector', '\\u295B': 'RightTeeVector', '\\u295C': 'RightUpTeeVector', '\\u295D': 'RightDownTeeVector', '\\u295E': 'DownLeftTeeVector', '\\u295F': 'DownRightTeeVector', '\\u2960': 'LeftUpTeeVector', '\\u2961': 'LeftDownTeeVector', '\\u2962': 'lHar', '\\u2963': 'uHar', '\\u2964': 'rHar', '\\u2965': 'dHar', '\\u2966': 'luruhar', '\\u2967': 'ldrdhar', '\\u2968': 'ruluhar', '\\u2969': 'rdldhar', '\\u296A': 'lharul', '\\u296B': 'llhard', '\\u296C': 'rharul', '\\u296D': 'lrhard', '\\u296E': 'udhar', '\\u296F': 'duhar', '\\u2970': 'RoundImplies', '\\u2971': 'erarr', '\\u2972': 'simrarr', '\\u2973': 'larrsim', '\\u2974': 'rarrsim', '\\u2975': 'rarrap', '\\u2976': 'ltlarr', '\\u2978': 'gtrarr', '\\u2979': 'subrarr', '\\u297B': 'suplarr', '\\u297C': 'lfisht', '\\u297D': 'rfisht', '\\u297E': 'ufisht', '\\u297F': 'dfisht', '\\u299A': 'vzigzag', '\\u299C': 'vangrt', '\\u299D': 'angrtvbd', '\\u29A4': 'ange', '\\u29A5': 'range', '\\u29A6': 'dwangle', '\\u29A7': 'uwangle', '\\u29A8': 'angmsdaa', '\\u29A9': 'angmsdab', '\\u29AA': 'angmsdac', '\\u29AB': 'angmsdad', '\\u29AC': 'angmsdae', '\\u29AD': 'angmsdaf', '\\u29AE': 'angmsdag', '\\u29AF': 'angmsdah', '\\u29B0': 'bemptyv', '\\u29B1': 'demptyv', '\\u29B2': 'cemptyv', '\\u29B3': 'raemptyv', '\\u29B4': 'laemptyv', '\\u29B5': 'ohbar', '\\u29B6': 'omid', '\\u29B7': 'opar', '\\u29B9': 'operp', '\\u29BB': 'olcross', '\\u29BC': 'odsold', '\\u29BE': 'olcir', '\\u29BF': 'ofcir', '\\u29C0': 'olt', '\\u29C1': 'ogt', '\\u29C2': 'cirscir', '\\u29C3': 'cirE', '\\u29C4': 'solb', '\\u29C5': 'bsolb', '\\u29C9': 'boxbox', '\\u29CD': 'trisb', '\\u29CE': 'rtriltri', '\\u29CF': 'LeftTriangleBar', '\\u29CF\\u0338': 'NotLeftTriangleBar', '\\u29D0': 'RightTriangleBar', '\\u29D0\\u0338': 'NotRightTriangleBar', '\\u29DC': 'iinfin', '\\u29DD': 'infintie', '\\u29DE': 'nvinfin', '\\u29E3': 'eparsl', '\\u29E4': 'smeparsl', '\\u29E5': 'eqvparsl', '\\u29EB': 'lozf', '\\u29F4': 'RuleDelayed', '\\u29F6': 'dsol', '\\u2A00': 'xodot', '\\u2A01': 'xoplus', '\\u2A02': 'xotime', '\\u2A04': 'xuplus', '\\u2A06': 'xsqcup', '\\u2A0D': 'fpartint', '\\u2A10': 'cirfnint', '\\u2A11': 'awint', '\\u2A12': 'rppolint', '\\u2A13': 'scpolint', '\\u2A14': 'npolint', '\\u2A15': 'pointint', '\\u2A16': 'quatint', '\\u2A17': 'intlarhk', '\\u2A22': 'pluscir', '\\u2A23': 'plusacir', '\\u2A24': 'simplus', '\\u2A25': 'plusdu', '\\u2A26': 'plussim', '\\u2A27': 'plustwo', '\\u2A29': 'mcomma', '\\u2A2A': 'minusdu', '\\u2A2D': 'loplus', '\\u2A2E': 'roplus', '\\u2A2F': 'Cross', '\\u2A30': 'timesd', '\\u2A31': 'timesbar', '\\u2A33': 'smashp', '\\u2A34': 'lotimes', '\\u2A35': 'rotimes', '\\u2A36': 'otimesas', '\\u2A37': 'Otimes', '\\u2A38': 'odiv', '\\u2A39': 'triplus', '\\u2A3A': 'triminus', '\\u2A3B': 'tritime', '\\u2A3C': 'iprod', '\\u2A3F': 'amalg', '\\u2A40': 'capdot', '\\u2A42': 'ncup', '\\u2A43': 'ncap', '\\u2A44': 'capand', '\\u2A45': 'cupor', '\\u2A46': 'cupcap', '\\u2A47': 'capcup', '\\u2A48': 'cupbrcap', '\\u2A49': 'capbrcup', '\\u2A4A': 'cupcup', '\\u2A4B': 'capcap', '\\u2A4C': 'ccups', '\\u2A4D': 'ccaps', '\\u2A50': 'ccupssm', '\\u2A53': 'And', '\\u2A54': 'Or', '\\u2A55': 'andand', '\\u2A56': 'oror', '\\u2A57': 'orslope', '\\u2A58': 'andslope', '\\u2A5A': 'andv', '\\u2A5B': 'orv', '\\u2A5C': 'andd', '\\u2A5D': 'ord', '\\u2A5F': 'wedbar', '\\u2A66': 'sdote', '\\u2A6A': 'simdot', '\\u2A6D': 'congdot', '\\u2A6D\\u0338': 'ncongdot', '\\u2A6E': 'easter', '\\u2A6F': 'apacir', '\\u2A70': 'apE', '\\u2A70\\u0338': 'napE', '\\u2A71': 'eplus', '\\u2A72': 'pluse', '\\u2A73': 'Esim', '\\u2A77': 'eDDot', '\\u2A78': 'equivDD', '\\u2A79': 'ltcir', '\\u2A7A': 'gtcir', '\\u2A7B': 'ltquest', '\\u2A7C': 'gtquest', '\\u2A7D': 'les', '\\u2A7D\\u0338': 'nles', '\\u2A7E': 'ges', '\\u2A7E\\u0338': 'nges', '\\u2A7F': 'lesdot', '\\u2A80': 'gesdot', '\\u2A81': 'lesdoto', '\\u2A82': 'gesdoto', '\\u2A83': 'lesdotor', '\\u2A84': 'gesdotol', '\\u2A85': 'lap', '\\u2A86': 'gap', '\\u2A87': 'lne', '\\u2A88': 'gne', '\\u2A89': 'lnap', '\\u2A8A': 'gnap', '\\u2A8B': 'lEg', '\\u2A8C': 'gEl', '\\u2A8D': 'lsime', '\\u2A8E': 'gsime', '\\u2A8F': 'lsimg', '\\u2A90': 'gsiml', '\\u2A91': 'lgE', '\\u2A92': 'glE', '\\u2A93': 'lesges', '\\u2A94': 'gesles', '\\u2A95': 'els', '\\u2A96': 'egs', '\\u2A97': 'elsdot', '\\u2A98': 'egsdot', '\\u2A99': 'el', '\\u2A9A': 'eg', '\\u2A9D': 'siml', '\\u2A9E': 'simg', '\\u2A9F': 'simlE', '\\u2AA0': 'simgE', '\\u2AA1': 'LessLess', '\\u2AA1\\u0338': 'NotNestedLessLess', '\\u2AA2': 'GreaterGreater', '\\u2AA2\\u0338': 'NotNestedGreaterGreater', '\\u2AA4': 'glj', '\\u2AA5': 'gla', '\\u2AA6': 'ltcc', '\\u2AA7': 'gtcc', '\\u2AA8': 'lescc', '\\u2AA9': 'gescc', '\\u2AAA': 'smt', '\\u2AAB': 'lat', '\\u2AAC': 'smte', '\\u2AAC\\uFE00': 'smtes', '\\u2AAD': 'late', '\\u2AAD\\uFE00': 'lates', '\\u2AAE': 'bumpE', '\\u2AAF': 'pre', '\\u2AAF\\u0338': 'npre', '\\u2AB0': 'sce', '\\u2AB0\\u0338': 'nsce', '\\u2AB3': 'prE', '\\u2AB4': 'scE', '\\u2AB5': 'prnE', '\\u2AB6': 'scnE', '\\u2AB7': 'prap', '\\u2AB8': 'scap', '\\u2AB9': 'prnap', '\\u2ABA': 'scnap', '\\u2ABB': 'Pr', '\\u2ABC': 'Sc', '\\u2ABD': 'subdot', '\\u2ABE': 'supdot', '\\u2ABF': 'subplus', '\\u2AC0': 'supplus', '\\u2AC1': 'submult', '\\u2AC2': 'supmult', '\\u2AC3': 'subedot', '\\u2AC4': 'supedot', '\\u2AC5': 'subE', '\\u2AC5\\u0338': 'nsubE', '\\u2AC6': 'supE', '\\u2AC6\\u0338': 'nsupE', '\\u2AC7': 'subsim', '\\u2AC8': 'supsim', '\\u2ACB\\uFE00': 'vsubnE', '\\u2ACB': 'subnE', '\\u2ACC\\uFE00': 'vsupnE', '\\u2ACC': 'supnE', '\\u2ACF': 'csub', '\\u2AD0': 'csup', '\\u2AD1': 'csube', '\\u2AD2': 'csupe', '\\u2AD3': 'subsup', '\\u2AD4': 'supsub', '\\u2AD5': 'subsub', '\\u2AD6': 'supsup', '\\u2AD7': 'suphsub', '\\u2AD8': 'supdsub', '\\u2AD9': 'forkv', '\\u2ADA': 'topfork', '\\u2ADB': 'mlcp', '\\u2AE4': 'Dashv', '\\u2AE6': 'Vdashl', '\\u2AE7': 'Barv', '\\u2AE8': 'vBar', '\\u2AE9': 'vBarv', '\\u2AEB': 'Vbar', '\\u2AEC': 'Not', '\\u2AED': 'bNot', '\\u2AEE': 'rnmid', '\\u2AEF': 'cirmid', '\\u2AF0': 'midcir', '\\u2AF1': 'topcir', '\\u2AF2': 'nhpar', '\\u2AF3': 'parsim', '\\u2AFD': 'parsl', '\\u2AFD\\u20E5': 'nparsl', '\\u266D': 'flat', '\\u266E': 'natur', '\\u266F': 'sharp', '\\xA4': 'curren', '\\xA2': 'cent', '$': 'dollar', '\\xA3': 'pound', '\\xA5': 'yen', '\\u20AC': 'euro', '\\xB9': 'sup1', '\\xBD': 'half', '\\u2153': 'frac13', '\\xBC': 'frac14', '\\u2155': 'frac15', '\\u2159': 'frac16', '\\u215B': 'frac18', '\\xB2': 'sup2', '\\u2154': 'frac23', '\\u2156': 'frac25', '\\xB3': 'sup3', '\\xBE': 'frac34', '\\u2157': 'frac35', '\\u215C': 'frac38', '\\u2158': 'frac45', '\\u215A': 'frac56', '\\u215D': 'frac58', '\\u215E': 'frac78', '\\uD835\\uDCB6': 'ascr', '\\uD835\\uDD52': 'aopf', '\\uD835\\uDD1E': 'afr', '\\uD835\\uDD38': 'Aopf', '\\uD835\\uDD04': 'Afr', '\\uD835\\uDC9C': 'Ascr', '\\xAA': 'ordf', '\\xE1': 'aacute', '\\xC1': 'Aacute', '\\xE0': 'agrave', '\\xC0': 'Agrave', '\\u0103': 'abreve', '\\u0102': 'Abreve', '\\xE2': 'acirc', '\\xC2': 'Acirc', '\\xE5': 'aring', '\\xC5': 'angst', '\\xE4': 'auml', '\\xC4': 'Auml', '\\xE3': 'atilde', '\\xC3': 'Atilde', '\\u0105': 'aogon', '\\u0104': 'Aogon', '\\u0101': 'amacr', '\\u0100': 'Amacr', '\\xE6': 'aelig', '\\xC6': 'AElig', '\\uD835\\uDCB7': 'bscr', '\\uD835\\uDD53': 'bopf', '\\uD835\\uDD1F': 'bfr', '\\uD835\\uDD39': 'Bopf', '\\u212C': 'Bscr', '\\uD835\\uDD05': 'Bfr', '\\uD835\\uDD20': 'cfr', '\\uD835\\uDCB8': 'cscr', '\\uD835\\uDD54': 'copf', '\\u212D': 'Cfr', '\\uD835\\uDC9E': 'Cscr', '\\u2102': 'Copf', '\\u0107': 'cacute', '\\u0106': 'Cacute', '\\u0109': 'ccirc', '\\u0108': 'Ccirc', '\\u010D': 'ccaron', '\\u010C': 'Ccaron', '\\u010B': 'cdot', '\\u010A': 'Cdot', '\\xE7': 'ccedil', '\\xC7': 'Ccedil', '\\u2105': 'incare', '\\uD835\\uDD21': 'dfr', '\\u2146': 'dd', '\\uD835\\uDD55': 'dopf', '\\uD835\\uDCB9': 'dscr', '\\uD835\\uDC9F': 'Dscr', '\\uD835\\uDD07': 'Dfr', '\\u2145': 'DD', '\\uD835\\uDD3B': 'Dopf', '\\u010F': 'dcaron', '\\u010E': 'Dcaron', '\\u0111': 'dstrok', '\\u0110': 'Dstrok', '\\xF0': 'eth', '\\xD0': 'ETH', '\\u2147': 'ee', '\\u212F': 'escr', '\\uD835\\uDD22': 'efr', '\\uD835\\uDD56': 'eopf', '\\u2130': 'Escr', '\\uD835\\uDD08': 'Efr', '\\uD835\\uDD3C': 'Eopf', '\\xE9': 'eacute', '\\xC9': 'Eacute', '\\xE8': 'egrave', '\\xC8': 'Egrave', '\\xEA': 'ecirc', '\\xCA': 'Ecirc', '\\u011B': 'ecaron', '\\u011A': 'Ecaron', '\\xEB': 'euml', '\\xCB': 'Euml', '\\u0117': 'edot', '\\u0116': 'Edot', '\\u0119': 'eogon', '\\u0118': 'Eogon', '\\u0113': 'emacr', '\\u0112': 'Emacr', '\\uD835\\uDD23': 'ffr', '\\uD835\\uDD57': 'fopf', '\\uD835\\uDCBB': 'fscr', '\\uD835\\uDD09': 'Ffr', '\\uD835\\uDD3D': 'Fopf', '\\u2131': 'Fscr', '\\uFB00': 'fflig', '\\uFB03': 'ffilig', '\\uFB04': 'ffllig', '\\uFB01': 'filig', 'fj': 'fjlig', '\\uFB02': 'fllig', '\\u0192': 'fnof', '\\u210A': 'gscr', '\\uD835\\uDD58': 'gopf', '\\uD835\\uDD24': 'gfr', '\\uD835\\uDCA2': 'Gscr', '\\uD835\\uDD3E': 'Gopf', '\\uD835\\uDD0A': 'Gfr', '\\u01F5': 'gacute', '\\u011F': 'gbreve', '\\u011E': 'Gbreve', '\\u011D': 'gcirc', '\\u011C': 'Gcirc', '\\u0121': 'gdot', '\\u0120': 'Gdot', '\\u0122': 'Gcedil', '\\uD835\\uDD25': 'hfr', '\\u210E': 'planckh', '\\uD835\\uDCBD': 'hscr', '\\uD835\\uDD59': 'hopf', '\\u210B': 'Hscr', '\\u210C': 'Hfr', '\\u210D': 'Hopf', '\\u0125': 'hcirc', '\\u0124': 'Hcirc', '\\u210F': 'hbar', '\\u0127': 'hstrok', '\\u0126': 'Hstrok', '\\uD835\\uDD5A': 'iopf', '\\uD835\\uDD26': 'ifr', '\\uD835\\uDCBE': 'iscr', '\\u2148': 'ii', '\\uD835\\uDD40': 'Iopf', '\\u2110': 'Iscr', '\\u2111': 'Im', '\\xED': 'iacute', '\\xCD': 'Iacute', '\\xEC': 'igrave', '\\xCC': 'Igrave', '\\xEE': 'icirc', '\\xCE': 'Icirc', '\\xEF': 'iuml', '\\xCF': 'Iuml', '\\u0129': 'itilde', '\\u0128': 'Itilde', '\\u0130': 'Idot', '\\u012F': 'iogon', '\\u012E': 'Iogon', '\\u012B': 'imacr', '\\u012A': 'Imacr', '\\u0133': 'ijlig', '\\u0132': 'IJlig', '\\u0131': 'imath', '\\uD835\\uDCBF': 'jscr', '\\uD835\\uDD5B': 'jopf', '\\uD835\\uDD27': 'jfr', '\\uD835\\uDCA5': 'Jscr', '\\uD835\\uDD0D': 'Jfr', '\\uD835\\uDD41': 'Jopf', '\\u0135': 'jcirc', '\\u0134': 'Jcirc', '\\u0237': 'jmath', '\\uD835\\uDD5C': 'kopf', '\\uD835\\uDCC0': 'kscr', '\\uD835\\uDD28': 'kfr', '\\uD835\\uDCA6': 'Kscr', '\\uD835\\uDD42': 'Kopf', '\\uD835\\uDD0E': 'Kfr', '\\u0137': 'kcedil', '\\u0136': 'Kcedil', '\\uD835\\uDD29': 'lfr', '\\uD835\\uDCC1': 'lscr', '\\u2113': 'ell', '\\uD835\\uDD5D': 'lopf', '\\u2112': 'Lscr', '\\uD835\\uDD0F': 'Lfr', '\\uD835\\uDD43': 'Lopf', '\\u013A': 'lacute', '\\u0139': 'Lacute', '\\u013E': 'lcaron', '\\u013D': 'Lcaron', '\\u013C': 'lcedil', '\\u013B': 'Lcedil', '\\u0142': 'lstrok', '\\u0141': 'Lstrok', '\\u0140': 'lmidot', '\\u013F': 'Lmidot', '\\uD835\\uDD2A': 'mfr', '\\uD835\\uDD5E': 'mopf', '\\uD835\\uDCC2': 'mscr', '\\uD835\\uDD10': 'Mfr', '\\uD835\\uDD44': 'Mopf', '\\u2133': 'Mscr', '\\uD835\\uDD2B': 'nfr', '\\uD835\\uDD5F': 'nopf', '\\uD835\\uDCC3': 'nscr', '\\u2115': 'Nopf', '\\uD835\\uDCA9': 'Nscr', '\\uD835\\uDD11': 'Nfr', '\\u0144': 'nacute', '\\u0143': 'Nacute', '\\u0148': 'ncaron', '\\u0147': 'Ncaron', '\\xF1': 'ntilde', '\\xD1': 'Ntilde', '\\u0146': 'ncedil', '\\u0145': 'Ncedil', '\\u2116': 'numero', '\\u014B': 'eng', '\\u014A': 'ENG', '\\uD835\\uDD60': 'oopf', '\\uD835\\uDD2C': 'ofr', '\\u2134': 'oscr', '\\uD835\\uDCAA': 'Oscr', '\\uD835\\uDD12': 'Ofr', '\\uD835\\uDD46': 'Oopf', '\\xBA': 'ordm', '\\xF3': 'oacute', '\\xD3': 'Oacute', '\\xF2': 'ograve', '\\xD2': 'Ograve', '\\xF4': 'ocirc', '\\xD4': 'Ocirc', '\\xF6': 'ouml', '\\xD6': 'Ouml', '\\u0151': 'odblac', '\\u0150': 'Odblac', '\\xF5': 'otilde', '\\xD5': 'Otilde', '\\xF8': 'oslash', '\\xD8': 'Oslash', '\\u014D': 'omacr', '\\u014C': 'Omacr', '\\u0153': 'oelig', '\\u0152': 'OElig', '\\uD835\\uDD2D': 'pfr', '\\uD835\\uDCC5': 'pscr', '\\uD835\\uDD61': 'popf', '\\u2119': 'Popf', '\\uD835\\uDD13': 'Pfr', '\\uD835\\uDCAB': 'Pscr', '\\uD835\\uDD62': 'qopf', '\\uD835\\uDD2E': 'qfr', '\\uD835\\uDCC6': 'qscr', '\\uD835\\uDCAC': 'Qscr', '\\uD835\\uDD14': 'Qfr', '\\u211A': 'Qopf', '\\u0138': 'kgreen', '\\uD835\\uDD2F': 'rfr', '\\uD835\\uDD63': 'ropf', '\\uD835\\uDCC7': 'rscr', '\\u211B': 'Rscr', '\\u211C': 'Re', '\\u211D': 'Ropf', '\\u0155': 'racute', '\\u0154': 'Racute', '\\u0159': 'rcaron', '\\u0158': 'Rcaron', '\\u0157': 'rcedil', '\\u0156': 'Rcedil', '\\uD835\\uDD64': 'sopf', '\\uD835\\uDCC8': 'sscr', '\\uD835\\uDD30': 'sfr', '\\uD835\\uDD4A': 'Sopf', '\\uD835\\uDD16': 'Sfr', '\\uD835\\uDCAE': 'Sscr', '\\u24C8': 'oS', '\\u015B': 'sacute', '\\u015A': 'Sacute', '\\u015D': 'scirc', '\\u015C': 'Scirc', '\\u0161': 'scaron', '\\u0160': 'Scaron', '\\u015F': 'scedil', '\\u015E': 'Scedil', '\\xDF': 'szlig', '\\uD835\\uDD31': 'tfr', '\\uD835\\uDCC9': 'tscr', '\\uD835\\uDD65': 'topf', '\\uD835\\uDCAF': 'Tscr', '\\uD835\\uDD17': 'Tfr', '\\uD835\\uDD4B': 'Topf', '\\u0165': 'tcaron', '\\u0164': 'Tcaron', '\\u0163': 'tcedil', '\\u0162': 'Tcedil', '\\u2122': 'trade', '\\u0167': 'tstrok', '\\u0166': 'Tstrok', '\\uD835\\uDCCA': 'uscr', '\\uD835\\uDD66': 'uopf', '\\uD835\\uDD32': 'ufr', '\\uD835\\uDD4C': 'Uopf', '\\uD835\\uDD18': 'Ufr', '\\uD835\\uDCB0': 'Uscr', '\\xFA': 'uacute', '\\xDA': 'Uacute', '\\xF9': 'ugrave', '\\xD9': 'Ugrave', '\\u016D': 'ubreve', '\\u016C': 'Ubreve', '\\xFB': 'ucirc', '\\xDB': 'Ucirc', '\\u016F': 'uring', '\\u016E': 'Uring', '\\xFC': 'uuml', '\\xDC': 'Uuml', '\\u0171': 'udblac', '\\u0170': 'Udblac', '\\u0169': 'utilde', '\\u0168': 'Utilde', '\\u0173': 'uogon', '\\u0172': 'Uogon', '\\u016B': 'umacr', '\\u016A': 'Umacr', '\\uD835\\uDD33': 'vfr', '\\uD835\\uDD67': 'vopf', '\\uD835\\uDCCB': 'vscr', '\\uD835\\uDD19': 'Vfr', '\\uD835\\uDD4D': 'Vopf', '\\uD835\\uDCB1': 'Vscr', '\\uD835\\uDD68': 'wopf', '\\uD835\\uDCCC': 'wscr', '\\uD835\\uDD34': 'wfr', '\\uD835\\uDCB2': 'Wscr', '\\uD835\\uDD4E': 'Wopf', '\\uD835\\uDD1A': 'Wfr', '\\u0175': 'wcirc', '\\u0174': 'Wcirc', '\\uD835\\uDD35': 'xfr', '\\uD835\\uDCCD': 'xscr', '\\uD835\\uDD69': 'xopf', '\\uD835\\uDD4F': 'Xopf', '\\uD835\\uDD1B': 'Xfr', '\\uD835\\uDCB3': 'Xscr', '\\uD835\\uDD36': 'yfr', '\\uD835\\uDCCE': 'yscr', '\\uD835\\uDD6A': 'yopf', '\\uD835\\uDCB4': 'Yscr', '\\uD835\\uDD1C': 'Yfr', '\\uD835\\uDD50': 'Yopf', '\\xFD': 'yacute', '\\xDD': 'Yacute', '\\u0177': 'ycirc', '\\u0176': 'Ycirc', '\\xFF': 'yuml', '\\u0178': 'Yuml', '\\uD835\\uDCCF': 'zscr', '\\uD835\\uDD37': 'zfr', '\\uD835\\uDD6B': 'zopf', '\\u2128': 'Zfr', '\\u2124': 'Zopf', '\\uD835\\uDCB5': 'Zscr', '\\u017A': 'zacute', '\\u0179': 'Zacute', '\\u017E': 'zcaron', '\\u017D': 'Zcaron', '\\u017C': 'zdot', '\\u017B': 'Zdot', '\\u01B5': 'imped', '\\xFE': 'thorn', '\\xDE': 'THORN', '\\u0149': 'napos', '\\u03B1': 'alpha', '\\u0391': 'Alpha', '\\u03B2': 'beta', '\\u0392': 'Beta', '\\u03B3': 'gamma', '\\u0393': 'Gamma', '\\u03B4': 'delta', '\\u0394': 'Delta', '\\u03B5': 'epsi', '\\u03F5': 'epsiv', '\\u0395': 'Epsilon', '\\u03DD': 'gammad', '\\u03DC': 'Gammad', '\\u03B6': 'zeta', '\\u0396': 'Zeta', '\\u03B7': 'eta', '\\u0397': 'Eta', '\\u03B8': 'theta', '\\u03D1': 'thetav', '\\u0398': 'Theta', '\\u03B9': 'iota', '\\u0399': 'Iota', '\\u03BA': 'kappa', '\\u03F0': 'kappav', '\\u039A': 'Kappa', '\\u03BB': 'lambda', '\\u039B': 'Lambda', '\\u03BC': 'mu', '\\xB5': 'micro', '\\u039C': 'Mu', '\\u03BD': 'nu', '\\u039D': 'Nu', '\\u03BE': 'xi', '\\u039E': 'Xi', '\\u03BF': 'omicron', '\\u039F': 'Omicron', '\\u03C0': 'pi', '\\u03D6': 'piv', '\\u03A0': 'Pi', '\\u03C1': 'rho', '\\u03F1': 'rhov', '\\u03A1': 'Rho', '\\u03C3': 'sigma', '\\u03A3': 'Sigma', '\\u03C2': 'sigmaf', '\\u03C4': 'tau', '\\u03A4': 'Tau', '\\u03C5': 'upsi', '\\u03A5': 'Upsilon', '\\u03D2': 'Upsi', '\\u03C6': 'phi', '\\u03D5': 'phiv', '\\u03A6': 'Phi', '\\u03C7': 'chi', '\\u03A7': 'Chi', '\\u03C8': 'psi', '\\u03A8': 'Psi', '\\u03C9': 'omega', '\\u03A9': 'ohm', '\\u0430': 'acy', '\\u0410': 'Acy', '\\u0431': 'bcy', '\\u0411': 'Bcy', '\\u0432': 'vcy', '\\u0412': 'Vcy', '\\u0433': 'gcy', '\\u0413': 'Gcy', '\\u0453': 'gjcy', '\\u0403': 'GJcy', '\\u0434': 'dcy', '\\u0414': 'Dcy', '\\u0452': 'djcy', '\\u0402': 'DJcy', '\\u0435': 'iecy', '\\u0415': 'IEcy', '\\u0451': 'iocy', '\\u0401': 'IOcy', '\\u0454': 'jukcy', '\\u0404': 'Jukcy', '\\u0436': 'zhcy', '\\u0416': 'ZHcy', '\\u0437': 'zcy', '\\u0417': 'Zcy', '\\u0455': 'dscy', '\\u0405': 'DScy', '\\u0438': 'icy', '\\u0418': 'Icy', '\\u0456': 'iukcy', '\\u0406': 'Iukcy', '\\u0457': 'yicy', '\\u0407': 'YIcy', '\\u0439': 'jcy', '\\u0419': 'Jcy', '\\u0458': 'jsercy', '\\u0408': 'Jsercy', '\\u043A': 'kcy', '\\u041A': 'Kcy', '\\u045C': 'kjcy', '\\u040C': 'KJcy', '\\u043B': 'lcy', '\\u041B': 'Lcy', '\\u0459': 'ljcy', '\\u0409': 'LJcy', '\\u043C': 'mcy', '\\u041C': 'Mcy', '\\u043D': 'ncy', '\\u041D': 'Ncy', '\\u045A': 'njcy', '\\u040A': 'NJcy', '\\u043E': 'ocy', '\\u041E': 'Ocy', '\\u043F': 'pcy', '\\u041F': 'Pcy', '\\u0440': 'rcy', '\\u0420': 'Rcy', '\\u0441': 'scy', '\\u0421': 'Scy', '\\u0442': 'tcy', '\\u0422': 'Tcy', '\\u045B': 'tshcy', '\\u040B': 'TSHcy', '\\u0443': 'ucy', '\\u0423': 'Ucy', '\\u045E': 'ubrcy', '\\u040E': 'Ubrcy', '\\u0444': 'fcy', '\\u0424': 'Fcy', '\\u0445': 'khcy', '\\u0425': 'KHcy', '\\u0446': 'tscy', '\\u0426': 'TScy', '\\u0447': 'chcy', '\\u0427': 'CHcy', '\\u045F': 'dzcy', '\\u040F': 'DZcy', '\\u0448': 'shcy', '\\u0428': 'SHcy', '\\u0449': 'shchcy', '\\u0429': 'SHCHcy', '\\u044A': 'hardcy', '\\u042A': 'HARDcy', '\\u044B': 'ycy', '\\u042B': 'Ycy', '\\u044C': 'softcy', '\\u042C': 'SOFTcy', '\\u044D': 'ecy', '\\u042D': 'Ecy', '\\u044E': 'yucy', '\\u042E': 'YUcy', '\\u044F': 'yacy', '\\u042F': 'YAcy', '\\u2135': 'aleph', '\\u2136': 'beth', '\\u2137': 'gimel', '\\u2138': 'daleth' };\r\n\r\n\t\t\t\t\t\t\tvar regexEscape = /[\"&'<>`]/g;\r\n\t\t\t\t\t\t\tvar escapeMap = {\r\n\t\t\t\t\t\t\t\t'\"': '&quot;',\r\n\t\t\t\t\t\t\t\t'&': '&amp;',\r\n\t\t\t\t\t\t\t\t'\\'': '&#x27;',\r\n\t\t\t\t\t\t\t\t'<': '&lt;',\r\n\t\t\t\t\t\t\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\r\n\t\t\t\t\t\t\t\t// following is not strictly necessary unless it\u2019s part of a tag or an\r\n\t\t\t\t\t\t\t\t// unquoted attribute value. We\u2019re only escaping it to support those\r\n\t\t\t\t\t\t\t\t// situations, and for XML support.\r\n\t\t\t\t\t\t\t\t'>': '&gt;',\r\n\t\t\t\t\t\t\t\t// In Internet Explorer \u2264 8, the backtick character can be used\r\n\t\t\t\t\t\t\t\t// to break out of (un)quoted attribute values or HTML comments.\r\n\t\t\t\t\t\t\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\r\n\t\t\t\t\t\t\t\t// http://html5sec.org/#133.\r\n\t\t\t\t\t\t\t\t'`': '&#x60;'\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\r\n\t\t\t\t\t\t\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\r\n\t\t\t\t\t\t\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\r\n\t\t\t\t\t\t\tvar decodeMap = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'abreve': '\\u0103', 'Abreve': '\\u0102', 'ac': '\\u223E', 'acd': '\\u223F', 'acE': '\\u223E\\u0333', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'acy': '\\u0430', 'Acy': '\\u0410', 'aelig': '\\xE6', 'AElig': '\\xC6', 'af': '\\u2061', 'afr': '\\uD835\\uDD1E', 'Afr': '\\uD835\\uDD04', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'alefsym': '\\u2135', 'aleph': '\\u2135', 'alpha': '\\u03B1', 'Alpha': '\\u0391', 'amacr': '\\u0101', 'Amacr': '\\u0100', 'amalg': '\\u2A3F', 'amp': '&', 'AMP': '&', 'and': '\\u2227', 'And': '\\u2A53', 'andand': '\\u2A55', 'andd': '\\u2A5C', 'andslope': '\\u2A58', 'andv': '\\u2A5A', 'ang': '\\u2220', 'ange': '\\u29A4', 'angle': '\\u2220', 'angmsd': '\\u2221', 'angmsdaa': '\\u29A8', 'angmsdab': '\\u29A9', 'angmsdac': '\\u29AA', 'angmsdad': '\\u29AB', 'angmsdae': '\\u29AC', 'angmsdaf': '\\u29AD', 'angmsdag': '\\u29AE', 'angmsdah': '\\u29AF', 'angrt': '\\u221F', 'angrtvb': '\\u22BE', 'angrtvbd': '\\u299D', 'angsph': '\\u2222', 'angst': '\\xC5', 'angzarr': '\\u237C', 'aogon': '\\u0105', 'Aogon': '\\u0104', 'aopf': '\\uD835\\uDD52', 'Aopf': '\\uD835\\uDD38', 'ap': '\\u2248', 'apacir': '\\u2A6F', 'ape': '\\u224A', 'apE': '\\u2A70', 'apid': '\\u224B', 'apos': '\\'', 'ApplyFunction': '\\u2061', 'approx': '\\u2248', 'approxeq': '\\u224A', 'aring': '\\xE5', 'Aring': '\\xC5', 'ascr': '\\uD835\\uDCB6', 'Ascr': '\\uD835\\uDC9C', 'Assign': '\\u2254', 'ast': '*', 'asymp': '\\u2248', 'asympeq': '\\u224D', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'awconint': '\\u2233', 'awint': '\\u2A11', 'backcong': '\\u224C', 'backepsilon': '\\u03F6', 'backprime': '\\u2035', 'backsim': '\\u223D', 'backsimeq': '\\u22CD', 'Backslash': '\\u2216', 'Barv': '\\u2AE7', 'barvee': '\\u22BD', 'barwed': '\\u2305', 'Barwed': '\\u2306', 'barwedge': '\\u2305', 'bbrk': '\\u23B5', 'bbrktbrk': '\\u23B6', 'bcong': '\\u224C', 'bcy': '\\u0431', 'Bcy': '\\u0411', 'bdquo': '\\u201E', 'becaus': '\\u2235', 'because': '\\u2235', 'Because': '\\u2235', 'bemptyv': '\\u29B0', 'bepsi': '\\u03F6', 'bernou': '\\u212C', 'Bernoullis': '\\u212C', 'beta': '\\u03B2', 'Beta': '\\u0392', 'beth': '\\u2136', 'between': '\\u226C', 'bfr': '\\uD835\\uDD1F', 'Bfr': '\\uD835\\uDD05', 'bigcap': '\\u22C2', 'bigcirc': '\\u25EF', 'bigcup': '\\u22C3', 'bigodot': '\\u2A00', 'bigoplus': '\\u2A01', 'bigotimes': '\\u2A02', 'bigsqcup': '\\u2A06', 'bigstar': '\\u2605', 'bigtriangledown': '\\u25BD', 'bigtriangleup': '\\u25B3', 'biguplus': '\\u2A04', 'bigvee': '\\u22C1', 'bigwedge': '\\u22C0', 'bkarow': '\\u290D', 'blacklozenge': '\\u29EB', 'blacksquare': '\\u25AA', 'blacktriangle': '\\u25B4', 'blacktriangledown': '\\u25BE', 'blacktriangleleft': '\\u25C2', 'blacktriangleright': '\\u25B8', 'blank': '\\u2423', 'blk12': '\\u2592', 'blk14': '\\u2591', 'blk34': '\\u2593', 'block': '\\u2588', 'bne': '=\\u20E5', 'bnequiv': '\\u2261\\u20E5', 'bnot': '\\u2310', 'bNot': '\\u2AED', 'bopf': '\\uD835\\uDD53', 'Bopf': '\\uD835\\uDD39', 'bot': '\\u22A5', 'bottom': '\\u22A5', 'bowtie': '\\u22C8', 'boxbox': '\\u29C9', 'boxdl': '\\u2510', 'boxdL': '\\u2555', 'boxDl': '\\u2556', 'boxDL': '\\u2557', 'boxdr': '\\u250C', 'boxdR': '\\u2552', 'boxDr': '\\u2553', 'boxDR': '\\u2554', 'boxh': '\\u2500', 'boxH': '\\u2550', 'boxhd': '\\u252C', 'boxhD': '\\u2565', 'boxHd': '\\u2564', 'boxHD': '\\u2566', 'boxhu': '\\u2534', 'boxhU': '\\u2568', 'boxHu': '\\u2567', 'boxHU': '\\u2569', 'boxminus': '\\u229F', 'boxplus': '\\u229E', 'boxtimes': '\\u22A0', 'boxul': '\\u2518', 'boxuL': '\\u255B', 'boxUl': '\\u255C', 'boxUL': '\\u255D', 'boxur': '\\u2514', 'boxuR': '\\u2558', 'boxUr': '\\u2559', 'boxUR': '\\u255A', 'boxv': '\\u2502', 'boxV': '\\u2551', 'boxvh': '\\u253C', 'boxvH': '\\u256A', 'boxVh': '\\u256B', 'boxVH': '\\u256C', 'boxvl': '\\u2524', 'boxvL': '\\u2561', 'boxVl': '\\u2562', 'boxVL': '\\u2563', 'boxvr': '\\u251C', 'boxvR': '\\u255E', 'boxVr': '\\u255F', 'boxVR': '\\u2560', 'bprime': '\\u2035', 'breve': '\\u02D8', 'Breve': '\\u02D8', 'brvbar': '\\xA6', 'bscr': '\\uD835\\uDCB7', 'Bscr': '\\u212C', 'bsemi': '\\u204F', 'bsim': '\\u223D', 'bsime': '\\u22CD', 'bsol': '\\\\', 'bsolb': '\\u29C5', 'bsolhsub': '\\u27C8', 'bull': '\\u2022', 'bullet': '\\u2022', 'bump': '\\u224E', 'bumpe': '\\u224F', 'bumpE': '\\u2AAE', 'bumpeq': '\\u224F', 'Bumpeq': '\\u224E', 'cacute': '\\u0107', 'Cacute': '\\u0106', 'cap': '\\u2229', 'Cap': '\\u22D2', 'capand': '\\u2A44', 'capbrcup': '\\u2A49', 'capcap': '\\u2A4B', 'capcup': '\\u2A47', 'capdot': '\\u2A40', 'CapitalDifferentialD': '\\u2145', 'caps': '\\u2229\\uFE00', 'caret': '\\u2041', 'caron': '\\u02C7', 'Cayleys': '\\u212D', 'ccaps': '\\u2A4D', 'ccaron': '\\u010D', 'Ccaron': '\\u010C', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'ccirc': '\\u0109', 'Ccirc': '\\u0108', 'Cconint': '\\u2230', 'ccups': '\\u2A4C', 'ccupssm': '\\u2A50', 'cdot': '\\u010B', 'Cdot': '\\u010A', 'cedil': '\\xB8', 'Cedilla': '\\xB8', 'cemptyv': '\\u29B2', 'cent': '\\xA2', 'centerdot': '\\xB7', 'CenterDot': '\\xB7', 'cfr': '\\uD835\\uDD20', 'Cfr': '\\u212D', 'chcy': '\\u0447', 'CHcy': '\\u0427', 'check': '\\u2713', 'checkmark': '\\u2713', 'chi': '\\u03C7', 'Chi': '\\u03A7', 'cir': '\\u25CB', 'circ': '\\u02C6', 'circeq': '\\u2257', 'circlearrowleft': '\\u21BA', 'circlearrowright': '\\u21BB', 'circledast': '\\u229B', 'circledcirc': '\\u229A', 'circleddash': '\\u229D', 'CircleDot': '\\u2299', 'circledR': '\\xAE', 'circledS': '\\u24C8', 'CircleMinus': '\\u2296', 'CirclePlus': '\\u2295', 'CircleTimes': '\\u2297', 'cire': '\\u2257', 'cirE': '\\u29C3', 'cirfnint': '\\u2A10', 'cirmid': '\\u2AEF', 'cirscir': '\\u29C2', 'ClockwiseContourIntegral': '\\u2232', 'CloseCurlyDoubleQuote': '\\u201D', 'CloseCurlyQuote': '\\u2019', 'clubs': '\\u2663', 'clubsuit': '\\u2663', 'colon': ':', 'Colon': '\\u2237', 'colone': '\\u2254', 'Colone': '\\u2A74', 'coloneq': '\\u2254', 'comma': ',', 'commat': '@', 'comp': '\\u2201', 'compfn': '\\u2218', 'complement': '\\u2201', 'complexes': '\\u2102', 'cong': '\\u2245', 'congdot': '\\u2A6D', 'Congruent': '\\u2261', 'conint': '\\u222E', 'Conint': '\\u222F', 'ContourIntegral': '\\u222E', 'copf': '\\uD835\\uDD54', 'Copf': '\\u2102', 'coprod': '\\u2210', 'Coproduct': '\\u2210', 'copy': '\\xA9', 'COPY': '\\xA9', 'copysr': '\\u2117', 'CounterClockwiseContourIntegral': '\\u2233', 'crarr': '\\u21B5', 'cross': '\\u2717', 'Cross': '\\u2A2F', 'cscr': '\\uD835\\uDCB8', 'Cscr': '\\uD835\\uDC9E', 'csub': '\\u2ACF', 'csube': '\\u2AD1', 'csup': '\\u2AD0', 'csupe': '\\u2AD2', 'ctdot': '\\u22EF', 'cudarrl': '\\u2938', 'cudarrr': '\\u2935', 'cuepr': '\\u22DE', 'cuesc': '\\u22DF', 'cularr': '\\u21B6', 'cularrp': '\\u293D', 'cup': '\\u222A', 'Cup': '\\u22D3', 'cupbrcap': '\\u2A48', 'cupcap': '\\u2A46', 'CupCap': '\\u224D', 'cupcup': '\\u2A4A', 'cupdot': '\\u228D', 'cupor': '\\u2A45', 'cups': '\\u222A\\uFE00', 'curarr': '\\u21B7', 'curarrm': '\\u293C', 'curlyeqprec': '\\u22DE', 'curlyeqsucc': '\\u22DF', 'curlyvee': '\\u22CE', 'curlywedge': '\\u22CF', 'curren': '\\xA4', 'curvearrowleft': '\\u21B6', 'curvearrowright': '\\u21B7', 'cuvee': '\\u22CE', 'cuwed': '\\u22CF', 'cwconint': '\\u2232', 'cwint': '\\u2231', 'cylcty': '\\u232D', 'dagger': '\\u2020', 'Dagger': '\\u2021', 'daleth': '\\u2138', 'darr': '\\u2193', 'dArr': '\\u21D3', 'Darr': '\\u21A1', 'dash': '\\u2010', 'dashv': '\\u22A3', 'Dashv': '\\u2AE4', 'dbkarow': '\\u290F', 'dblac': '\\u02DD', 'dcaron': '\\u010F', 'Dcaron': '\\u010E', 'dcy': '\\u0434', 'Dcy': '\\u0414', 'dd': '\\u2146', 'DD': '\\u2145', 'ddagger': '\\u2021', 'ddarr': '\\u21CA', 'DDotrahd': '\\u2911', 'ddotseq': '\\u2A77', 'deg': '\\xB0', 'Del': '\\u2207', 'delta': '\\u03B4', 'Delta': '\\u0394', 'demptyv': '\\u29B1', 'dfisht': '\\u297F', 'dfr': '\\uD835\\uDD21', 'Dfr': '\\uD835\\uDD07', 'dHar': '\\u2965', 'dharl': '\\u21C3', 'dharr': '\\u21C2', 'DiacriticalAcute': '\\xB4', 'DiacriticalDot': '\\u02D9', 'DiacriticalDoubleAcute': '\\u02DD', 'DiacriticalGrave': '`', 'DiacriticalTilde': '\\u02DC', 'diam': '\\u22C4', 'diamond': '\\u22C4', 'Diamond': '\\u22C4', 'diamondsuit': '\\u2666', 'diams': '\\u2666', 'die': '\\xA8', 'DifferentialD': '\\u2146', 'digamma': '\\u03DD', 'disin': '\\u22F2', 'div': '\\xF7', 'divide': '\\xF7', 'divideontimes': '\\u22C7', 'divonx': '\\u22C7', 'djcy': '\\u0452', 'DJcy': '\\u0402', 'dlcorn': '\\u231E', 'dlcrop': '\\u230D', 'dollar': '$', 'dopf': '\\uD835\\uDD55', 'Dopf': '\\uD835\\uDD3B', 'dot': '\\u02D9', 'Dot': '\\xA8', 'DotDot': '\\u20DC', 'doteq': '\\u2250', 'doteqdot': '\\u2251', 'DotEqual': '\\u2250', 'dotminus': '\\u2238', 'dotplus': '\\u2214', 'dotsquare': '\\u22A1', 'doublebarwedge': '\\u2306', 'DoubleContourIntegral': '\\u222F', 'DoubleDot': '\\xA8', 'DoubleDownArrow': '\\u21D3', 'DoubleLeftArrow': '\\u21D0', 'DoubleLeftRightArrow': '\\u21D4', 'DoubleLeftTee': '\\u2AE4', 'DoubleLongLeftArrow': '\\u27F8', 'DoubleLongLeftRightArrow': '\\u27FA', 'DoubleLongRightArrow': '\\u27F9', 'DoubleRightArrow': '\\u21D2', 'DoubleRightTee': '\\u22A8', 'DoubleUpArrow': '\\u21D1', 'DoubleUpDownArrow': '\\u21D5', 'DoubleVerticalBar': '\\u2225', 'downarrow': '\\u2193', 'Downarrow': '\\u21D3', 'DownArrow': '\\u2193', 'DownArrowBar': '\\u2913', 'DownArrowUpArrow': '\\u21F5', 'DownBreve': '\\u0311', 'downdownarrows': '\\u21CA', 'downharpoonleft': '\\u21C3', 'downharpoonright': '\\u21C2', 'DownLeftRightVector': '\\u2950', 'DownLeftTeeVector': '\\u295E', 'DownLeftVector': '\\u21BD', 'DownLeftVectorBar': '\\u2956', 'DownRightTeeVector': '\\u295F', 'DownRightVector': '\\u21C1', 'DownRightVectorBar': '\\u2957', 'DownTee': '\\u22A4', 'DownTeeArrow': '\\u21A7', 'drbkarow': '\\u2910', 'drcorn': '\\u231F', 'drcrop': '\\u230C', 'dscr': '\\uD835\\uDCB9', 'Dscr': '\\uD835\\uDC9F', 'dscy': '\\u0455', 'DScy': '\\u0405', 'dsol': '\\u29F6', 'dstrok': '\\u0111', 'Dstrok': '\\u0110', 'dtdot': '\\u22F1', 'dtri': '\\u25BF', 'dtrif': '\\u25BE', 'duarr': '\\u21F5', 'duhar': '\\u296F', 'dwangle': '\\u29A6', 'dzcy': '\\u045F', 'DZcy': '\\u040F', 'dzigrarr': '\\u27FF', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'easter': '\\u2A6E', 'ecaron': '\\u011B', 'Ecaron': '\\u011A', 'ecir': '\\u2256', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'ecolon': '\\u2255', 'ecy': '\\u044D', 'Ecy': '\\u042D', 'eDDot': '\\u2A77', 'edot': '\\u0117', 'eDot': '\\u2251', 'Edot': '\\u0116', 'ee': '\\u2147', 'efDot': '\\u2252', 'efr': '\\uD835\\uDD22', 'Efr': '\\uD835\\uDD08', 'eg': '\\u2A9A', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'egs': '\\u2A96', 'egsdot': '\\u2A98', 'el': '\\u2A99', 'Element': '\\u2208', 'elinters': '\\u23E7', 'ell': '\\u2113', 'els': '\\u2A95', 'elsdot': '\\u2A97', 'emacr': '\\u0113', 'Emacr': '\\u0112', 'empty': '\\u2205', 'emptyset': '\\u2205', 'EmptySmallSquare': '\\u25FB', 'emptyv': '\\u2205', 'EmptyVerySmallSquare': '\\u25AB', 'emsp': '\\u2003', 'emsp13': '\\u2004', 'emsp14': '\\u2005', 'eng': '\\u014B', 'ENG': '\\u014A', 'ensp': '\\u2002', 'eogon': '\\u0119', 'Eogon': '\\u0118', 'eopf': '\\uD835\\uDD56', 'Eopf': '\\uD835\\uDD3C', 'epar': '\\u22D5', 'eparsl': '\\u29E3', 'eplus': '\\u2A71', 'epsi': '\\u03B5', 'epsilon': '\\u03B5', 'Epsilon': '\\u0395', 'epsiv': '\\u03F5', 'eqcirc': '\\u2256', 'eqcolon': '\\u2255', 'eqsim': '\\u2242', 'eqslantgtr': '\\u2A96', 'eqslantless': '\\u2A95', 'Equal': '\\u2A75', 'equals': '=', 'EqualTilde': '\\u2242', 'equest': '\\u225F', 'Equilibrium': '\\u21CC', 'equiv': '\\u2261', 'equivDD': '\\u2A78', 'eqvparsl': '\\u29E5', 'erarr': '\\u2971', 'erDot': '\\u2253', 'escr': '\\u212F', 'Escr': '\\u2130', 'esdot': '\\u2250', 'esim': '\\u2242', 'Esim': '\\u2A73', 'eta': '\\u03B7', 'Eta': '\\u0397', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'euro': '\\u20AC', 'excl': '!', 'exist': '\\u2203', 'Exists': '\\u2203', 'expectation': '\\u2130', 'exponentiale': '\\u2147', 'ExponentialE': '\\u2147', 'fallingdotseq': '\\u2252', 'fcy': '\\u0444', 'Fcy': '\\u0424', 'female': '\\u2640', 'ffilig': '\\uFB03', 'fflig': '\\uFB00', 'ffllig': '\\uFB04', 'ffr': '\\uD835\\uDD23', 'Ffr': '\\uD835\\uDD09', 'filig': '\\uFB01', 'FilledSmallSquare': '\\u25FC', 'FilledVerySmallSquare': '\\u25AA', 'fjlig': 'fj', 'flat': '\\u266D', 'fllig': '\\uFB02', 'fltns': '\\u25B1', 'fnof': '\\u0192', 'fopf': '\\uD835\\uDD57', 'Fopf': '\\uD835\\uDD3D', 'forall': '\\u2200', 'ForAll': '\\u2200', 'fork': '\\u22D4', 'forkv': '\\u2AD9', 'Fouriertrf': '\\u2131', 'fpartint': '\\u2A0D', 'frac12': '\\xBD', 'frac13': '\\u2153', 'frac14': '\\xBC', 'frac15': '\\u2155', 'frac16': '\\u2159', 'frac18': '\\u215B', 'frac23': '\\u2154', 'frac25': '\\u2156', 'frac34': '\\xBE', 'frac35': '\\u2157', 'frac38': '\\u215C', 'frac45': '\\u2158', 'frac56': '\\u215A', 'frac58': '\\u215D', 'frac78': '\\u215E', 'frasl': '\\u2044', 'frown': '\\u2322', 'fscr': '\\uD835\\uDCBB', 'Fscr': '\\u2131', 'gacute': '\\u01F5', 'gamma': '\\u03B3', 'Gamma': '\\u0393', 'gammad': '\\u03DD', 'Gammad': '\\u03DC', 'gap': '\\u2A86', 'gbreve': '\\u011F', 'Gbreve': '\\u011E', 'Gcedil': '\\u0122', 'gcirc': '\\u011D', 'Gcirc': '\\u011C', 'gcy': '\\u0433', 'Gcy': '\\u0413', 'gdot': '\\u0121', 'Gdot': '\\u0120', 'ge': '\\u2265', 'gE': '\\u2267', 'gel': '\\u22DB', 'gEl': '\\u2A8C', 'geq': '\\u2265', 'geqq': '\\u2267', 'geqslant': '\\u2A7E', 'ges': '\\u2A7E', 'gescc': '\\u2AA9', 'gesdot': '\\u2A80', 'gesdoto': '\\u2A82', 'gesdotol': '\\u2A84', 'gesl': '\\u22DB\\uFE00', 'gesles': '\\u2A94', 'gfr': '\\uD835\\uDD24', 'Gfr': '\\uD835\\uDD0A', 'gg': '\\u226B', 'Gg': '\\u22D9', 'ggg': '\\u22D9', 'gimel': '\\u2137', 'gjcy': '\\u0453', 'GJcy': '\\u0403', 'gl': '\\u2277', 'gla': '\\u2AA5', 'glE': '\\u2A92', 'glj': '\\u2AA4', 'gnap': '\\u2A8A', 'gnapprox': '\\u2A8A', 'gne': '\\u2A88', 'gnE': '\\u2269', 'gneq': '\\u2A88', 'gneqq': '\\u2269', 'gnsim': '\\u22E7', 'gopf': '\\uD835\\uDD58', 'Gopf': '\\uD835\\uDD3E', 'grave': '`', 'GreaterEqual': '\\u2265', 'GreaterEqualLess': '\\u22DB', 'GreaterFullEqual': '\\u2267', 'GreaterGreater': '\\u2AA2', 'GreaterLess': '\\u2277', 'GreaterSlantEqual': '\\u2A7E', 'GreaterTilde': '\\u2273', 'gscr': '\\u210A', 'Gscr': '\\uD835\\uDCA2', 'gsim': '\\u2273', 'gsime': '\\u2A8E', 'gsiml': '\\u2A90', 'gt': '>', 'Gt': '\\u226B', 'GT': '>', 'gtcc': '\\u2AA7', 'gtcir': '\\u2A7A', 'gtdot': '\\u22D7', 'gtlPar': '\\u2995', 'gtquest': '\\u2A7C', 'gtrapprox': '\\u2A86', 'gtrarr': '\\u2978', 'gtrdot': '\\u22D7', 'gtreqless': '\\u22DB', 'gtreqqless': '\\u2A8C', 'gtrless': '\\u2277', 'gtrsim': '\\u2273', 'gvertneqq': '\\u2269\\uFE00', 'gvnE': '\\u2269\\uFE00', 'Hacek': '\\u02C7', 'hairsp': '\\u200A', 'half': '\\xBD', 'hamilt': '\\u210B', 'hardcy': '\\u044A', 'HARDcy': '\\u042A', 'harr': '\\u2194', 'hArr': '\\u21D4', 'harrcir': '\\u2948', 'harrw': '\\u21AD', 'Hat': '^', 'hbar': '\\u210F', 'hcirc': '\\u0125', 'Hcirc': '\\u0124', 'hearts': '\\u2665', 'heartsuit': '\\u2665', 'hellip': '\\u2026', 'hercon': '\\u22B9', 'hfr': '\\uD835\\uDD25', 'Hfr': '\\u210C', 'HilbertSpace': '\\u210B', 'hksearow': '\\u2925', 'hkswarow': '\\u2926', 'hoarr': '\\u21FF', 'homtht': '\\u223B', 'hookleftarrow': '\\u21A9', 'hookrightarrow': '\\u21AA', 'hopf': '\\uD835\\uDD59', 'Hopf': '\\u210D', 'horbar': '\\u2015', 'HorizontalLine': '\\u2500', 'hscr': '\\uD835\\uDCBD', 'Hscr': '\\u210B', 'hslash': '\\u210F', 'hstrok': '\\u0127', 'Hstrok': '\\u0126', 'HumpDownHump': '\\u224E', 'HumpEqual': '\\u224F', 'hybull': '\\u2043', 'hyphen': '\\u2010', 'iacute': '\\xED', 'Iacute': '\\xCD', 'ic': '\\u2063', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'icy': '\\u0438', 'Icy': '\\u0418', 'Idot': '\\u0130', 'iecy': '\\u0435', 'IEcy': '\\u0415', 'iexcl': '\\xA1', 'iff': '\\u21D4', 'ifr': '\\uD835\\uDD26', 'Ifr': '\\u2111', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'ii': '\\u2148', 'iiiint': '\\u2A0C', 'iiint': '\\u222D', 'iinfin': '\\u29DC', 'iiota': '\\u2129', 'ijlig': '\\u0133', 'IJlig': '\\u0132', 'Im': '\\u2111', 'imacr': '\\u012B', 'Imacr': '\\u012A', 'image': '\\u2111', 'ImaginaryI': '\\u2148', 'imagline': '\\u2110', 'imagpart': '\\u2111', 'imath': '\\u0131', 'imof': '\\u22B7', 'imped': '\\u01B5', 'Implies': '\\u21D2', 'in': '\\u2208', 'incare': '\\u2105', 'infin': '\\u221E', 'infintie': '\\u29DD', 'inodot': '\\u0131', 'int': '\\u222B', 'Int': '\\u222C', 'intcal': '\\u22BA', 'integers': '\\u2124', 'Integral': '\\u222B', 'intercal': '\\u22BA', 'Intersection': '\\u22C2', 'intlarhk': '\\u2A17', 'intprod': '\\u2A3C', 'InvisibleComma': '\\u2063', 'InvisibleTimes': '\\u2062', 'iocy': '\\u0451', 'IOcy': '\\u0401', 'iogon': '\\u012F', 'Iogon': '\\u012E', 'iopf': '\\uD835\\uDD5A', 'Iopf': '\\uD835\\uDD40', 'iota': '\\u03B9', 'Iota': '\\u0399', 'iprod': '\\u2A3C', 'iquest': '\\xBF', 'iscr': '\\uD835\\uDCBE', 'Iscr': '\\u2110', 'isin': '\\u2208', 'isindot': '\\u22F5', 'isinE': '\\u22F9', 'isins': '\\u22F4', 'isinsv': '\\u22F3', 'isinv': '\\u2208', 'it': '\\u2062', 'itilde': '\\u0129', 'Itilde': '\\u0128', 'iukcy': '\\u0456', 'Iukcy': '\\u0406', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'jcirc': '\\u0135', 'Jcirc': '\\u0134', 'jcy': '\\u0439', 'Jcy': '\\u0419', 'jfr': '\\uD835\\uDD27', 'Jfr': '\\uD835\\uDD0D', 'jmath': '\\u0237', 'jopf': '\\uD835\\uDD5B', 'Jopf': '\\uD835\\uDD41', 'jscr': '\\uD835\\uDCBF', 'Jscr': '\\uD835\\uDCA5', 'jsercy': '\\u0458', 'Jsercy': '\\u0408', 'jukcy': '\\u0454', 'Jukcy': '\\u0404', 'kappa': '\\u03BA', 'Kappa': '\\u039A', 'kappav': '\\u03F0', 'kcedil': '\\u0137', 'Kcedil': '\\u0136', 'kcy': '\\u043A', 'Kcy': '\\u041A', 'kfr': '\\uD835\\uDD28', 'Kfr': '\\uD835\\uDD0E', 'kgreen': '\\u0138', 'khcy': '\\u0445', 'KHcy': '\\u0425', 'kjcy': '\\u045C', 'KJcy': '\\u040C', 'kopf': '\\uD835\\uDD5C', 'Kopf': '\\uD835\\uDD42', 'kscr': '\\uD835\\uDCC0', 'Kscr': '\\uD835\\uDCA6', 'lAarr': '\\u21DA', 'lacute': '\\u013A', 'Lacute': '\\u0139', 'laemptyv': '\\u29B4', 'lagran': '\\u2112', 'lambda': '\\u03BB', 'Lambda': '\\u039B', 'lang': '\\u27E8', 'Lang': '\\u27EA', 'langd': '\\u2991', 'langle': '\\u27E8', 'lap': '\\u2A85', 'Laplacetrf': '\\u2112', 'laquo': '\\xAB', 'larr': '\\u2190', 'lArr': '\\u21D0', 'Larr': '\\u219E', 'larrb': '\\u21E4', 'larrbfs': '\\u291F', 'larrfs': '\\u291D', 'larrhk': '\\u21A9', 'larrlp': '\\u21AB', 'larrpl': '\\u2939', 'larrsim': '\\u2973', 'larrtl': '\\u21A2', 'lat': '\\u2AAB', 'latail': '\\u2919', 'lAtail': '\\u291B', 'late': '\\u2AAD', 'lates': '\\u2AAD\\uFE00', 'lbarr': '\\u290C', 'lBarr': '\\u290E', 'lbbrk': '\\u2772', 'lbrace': '{', 'lbrack': '[', 'lbrke': '\\u298B', 'lbrksld': '\\u298F', 'lbrkslu': '\\u298D', 'lcaron': '\\u013E', 'Lcaron': '\\u013D', 'lcedil': '\\u013C', 'Lcedil': '\\u013B', 'lceil': '\\u2308', 'lcub': '{', 'lcy': '\\u043B', 'Lcy': '\\u041B', 'ldca': '\\u2936', 'ldquo': '\\u201C', 'ldquor': '\\u201E', 'ldrdhar': '\\u2967', 'ldrushar': '\\u294B', 'ldsh': '\\u21B2', 'le': '\\u2264', 'lE': '\\u2266', 'LeftAngleBracket': '\\u27E8', 'leftarrow': '\\u2190', 'Leftarrow': '\\u21D0', 'LeftArrow': '\\u2190', 'LeftArrowBar': '\\u21E4', 'LeftArrowRightArrow': '\\u21C6', 'leftarrowtail': '\\u21A2', 'LeftCeiling': '\\u2308', 'LeftDoubleBracket': '\\u27E6', 'LeftDownTeeVector': '\\u2961', 'LeftDownVector': '\\u21C3', 'LeftDownVectorBar': '\\u2959', 'LeftFloor': '\\u230A', 'leftharpoondown': '\\u21BD', 'leftharpoonup': '\\u21BC', 'leftleftarrows': '\\u21C7', 'leftrightarrow': '\\u2194', 'Leftrightarrow': '\\u21D4', 'LeftRightArrow': '\\u2194', 'leftrightarrows': '\\u21C6', 'leftrightharpoons': '\\u21CB', 'leftrightsquigarrow': '\\u21AD', 'LeftRightVector': '\\u294E', 'LeftTee': '\\u22A3', 'LeftTeeArrow': '\\u21A4', 'LeftTeeVector': '\\u295A', 'leftthreetimes': '\\u22CB', 'LeftTriangle': '\\u22B2', 'LeftTriangleBar': '\\u29CF', 'LeftTriangleEqual': '\\u22B4', 'LeftUpDownVector': '\\u2951', 'LeftUpTeeVector': '\\u2960', 'LeftUpVector': '\\u21BF', 'LeftUpVectorBar': '\\u2958', 'LeftVector': '\\u21BC', 'LeftVectorBar': '\\u2952', 'leg': '\\u22DA', 'lEg': '\\u2A8B', 'leq': '\\u2264', 'leqq': '\\u2266', 'leqslant': '\\u2A7D', 'les': '\\u2A7D', 'lescc': '\\u2AA8', 'lesdot': '\\u2A7F', 'lesdoto': '\\u2A81', 'lesdotor': '\\u2A83', 'lesg': '\\u22DA\\uFE00', 'lesges': '\\u2A93', 'lessapprox': '\\u2A85', 'lessdot': '\\u22D6', 'lesseqgtr': '\\u22DA', 'lesseqqgtr': '\\u2A8B', 'LessEqualGreater': '\\u22DA', 'LessFullEqual': '\\u2266', 'LessGreater': '\\u2276', 'lessgtr': '\\u2276', 'LessLess': '\\u2AA1', 'lesssim': '\\u2272', 'LessSlantEqual': '\\u2A7D', 'LessTilde': '\\u2272', 'lfisht': '\\u297C', 'lfloor': '\\u230A', 'lfr': '\\uD835\\uDD29', 'Lfr': '\\uD835\\uDD0F', 'lg': '\\u2276', 'lgE': '\\u2A91', 'lHar': '\\u2962', 'lhard': '\\u21BD', 'lharu': '\\u21BC', 'lharul': '\\u296A', 'lhblk': '\\u2584', 'ljcy': '\\u0459', 'LJcy': '\\u0409', 'll': '\\u226A', 'Ll': '\\u22D8', 'llarr': '\\u21C7', 'llcorner': '\\u231E', 'Lleftarrow': '\\u21DA', 'llhard': '\\u296B', 'lltri': '\\u25FA', 'lmidot': '\\u0140', 'Lmidot': '\\u013F', 'lmoust': '\\u23B0', 'lmoustache': '\\u23B0', 'lnap': '\\u2A89', 'lnapprox': '\\u2A89', 'lne': '\\u2A87', 'lnE': '\\u2268', 'lneq': '\\u2A87', 'lneqq': '\\u2268', 'lnsim': '\\u22E6', 'loang': '\\u27EC', 'loarr': '\\u21FD', 'lobrk': '\\u27E6', 'longleftarrow': '\\u27F5', 'Longleftarrow': '\\u27F8', 'LongLeftArrow': '\\u27F5', 'longleftrightarrow': '\\u27F7', 'Longleftrightarrow': '\\u27FA', 'LongLeftRightArrow': '\\u27F7', 'longmapsto': '\\u27FC', 'longrightarrow': '\\u27F6', 'Longrightarrow': '\\u27F9', 'LongRightArrow': '\\u27F6', 'looparrowleft': '\\u21AB', 'looparrowright': '\\u21AC', 'lopar': '\\u2985', 'lopf': '\\uD835\\uDD5D', 'Lopf': '\\uD835\\uDD43', 'loplus': '\\u2A2D', 'lotimes': '\\u2A34', 'lowast': '\\u2217', 'lowbar': '_', 'LowerLeftArrow': '\\u2199', 'LowerRightArrow': '\\u2198', 'loz': '\\u25CA', 'lozenge': '\\u25CA', 'lozf': '\\u29EB', 'lpar': '(', 'lparlt': '\\u2993', 'lrarr': '\\u21C6', 'lrcorner': '\\u231F', 'lrhar': '\\u21CB', 'lrhard': '\\u296D', 'lrm': '\\u200E', 'lrtri': '\\u22BF', 'lsaquo': '\\u2039', 'lscr': '\\uD835\\uDCC1', 'Lscr': '\\u2112', 'lsh': '\\u21B0', 'Lsh': '\\u21B0', 'lsim': '\\u2272', 'lsime': '\\u2A8D', 'lsimg': '\\u2A8F', 'lsqb': '[', 'lsquo': '\\u2018', 'lsquor': '\\u201A', 'lstrok': '\\u0142', 'Lstrok': '\\u0141', 'lt': '<', 'Lt': '\\u226A', 'LT': '<', 'ltcc': '\\u2AA6', 'ltcir': '\\u2A79', 'ltdot': '\\u22D6', 'lthree': '\\u22CB', 'ltimes': '\\u22C9', 'ltlarr': '\\u2976', 'ltquest': '\\u2A7B', 'ltri': '\\u25C3', 'ltrie': '\\u22B4', 'ltrif': '\\u25C2', 'ltrPar': '\\u2996', 'lurdshar': '\\u294A', 'luruhar': '\\u2966', 'lvertneqq': '\\u2268\\uFE00', 'lvnE': '\\u2268\\uFE00', 'macr': '\\xAF', 'male': '\\u2642', 'malt': '\\u2720', 'maltese': '\\u2720', 'map': '\\u21A6', 'Map': '\\u2905', 'mapsto': '\\u21A6', 'mapstodown': '\\u21A7', 'mapstoleft': '\\u21A4', 'mapstoup': '\\u21A5', 'marker': '\\u25AE', 'mcomma': '\\u2A29', 'mcy': '\\u043C', 'Mcy': '\\u041C', 'mdash': '\\u2014', 'mDDot': '\\u223A', 'measuredangle': '\\u2221', 'MediumSpace': '\\u205F', 'Mellintrf': '\\u2133', 'mfr': '\\uD835\\uDD2A', 'Mfr': '\\uD835\\uDD10', 'mho': '\\u2127', 'micro': '\\xB5', 'mid': '\\u2223', 'midast': '*', 'midcir': '\\u2AF0', 'middot': '\\xB7', 'minus': '\\u2212', 'minusb': '\\u229F', 'minusd': '\\u2238', 'minusdu': '\\u2A2A', 'MinusPlus': '\\u2213', 'mlcp': '\\u2ADB', 'mldr': '\\u2026', 'mnplus': '\\u2213', 'models': '\\u22A7', 'mopf': '\\uD835\\uDD5E', 'Mopf': '\\uD835\\uDD44', 'mp': '\\u2213', 'mscr': '\\uD835\\uDCC2', 'Mscr': '\\u2133', 'mstpos': '\\u223E', 'mu': '\\u03BC', 'Mu': '\\u039C', 'multimap': '\\u22B8', 'mumap': '\\u22B8', 'nabla': '\\u2207', 'nacute': '\\u0144', 'Nacute': '\\u0143', 'nang': '\\u2220\\u20D2', 'nap': '\\u2249', 'napE': '\\u2A70\\u0338', 'napid': '\\u224B\\u0338', 'napos': '\\u0149', 'napprox': '\\u2249', 'natur': '\\u266E', 'natural': '\\u266E', 'naturals': '\\u2115', 'nbsp': '\\xA0', 'nbump': '\\u224E\\u0338', 'nbumpe': '\\u224F\\u0338', 'ncap': '\\u2A43', 'ncaron': '\\u0148', 'Ncaron': '\\u0147', 'ncedil': '\\u0146', 'Ncedil': '\\u0145', 'ncong': '\\u2247', 'ncongdot': '\\u2A6D\\u0338', 'ncup': '\\u2A42', 'ncy': '\\u043D', 'Ncy': '\\u041D', 'ndash': '\\u2013', 'ne': '\\u2260', 'nearhk': '\\u2924', 'nearr': '\\u2197', 'neArr': '\\u21D7', 'nearrow': '\\u2197', 'nedot': '\\u2250\\u0338', 'NegativeMediumSpace': '\\u200B', 'NegativeThickSpace': '\\u200B', 'NegativeThinSpace': '\\u200B', 'NegativeVeryThinSpace': '\\u200B', 'nequiv': '\\u2262', 'nesear': '\\u2928', 'nesim': '\\u2242\\u0338', 'NestedGreaterGreater': '\\u226B', 'NestedLessLess': '\\u226A', 'NewLine': '\\n', 'nexist': '\\u2204', 'nexists': '\\u2204', 'nfr': '\\uD835\\uDD2B', 'Nfr': '\\uD835\\uDD11', 'nge': '\\u2271', 'ngE': '\\u2267\\u0338', 'ngeq': '\\u2271', 'ngeqq': '\\u2267\\u0338', 'ngeqslant': '\\u2A7E\\u0338', 'nges': '\\u2A7E\\u0338', 'nGg': '\\u22D9\\u0338', 'ngsim': '\\u2275', 'ngt': '\\u226F', 'nGt': '\\u226B\\u20D2', 'ngtr': '\\u226F', 'nGtv': '\\u226B\\u0338', 'nharr': '\\u21AE', 'nhArr': '\\u21CE', 'nhpar': '\\u2AF2', 'ni': '\\u220B', 'nis': '\\u22FC', 'nisd': '\\u22FA', 'niv': '\\u220B', 'njcy': '\\u045A', 'NJcy': '\\u040A', 'nlarr': '\\u219A', 'nlArr': '\\u21CD', 'nldr': '\\u2025', 'nle': '\\u2270', 'nlE': '\\u2266\\u0338', 'nleftarrow': '\\u219A', 'nLeftarrow': '\\u21CD', 'nleftrightarrow': '\\u21AE', 'nLeftrightarrow': '\\u21CE', 'nleq': '\\u2270', 'nleqq': '\\u2266\\u0338', 'nleqslant': '\\u2A7D\\u0338', 'nles': '\\u2A7D\\u0338', 'nless': '\\u226E', 'nLl': '\\u22D8\\u0338', 'nlsim': '\\u2274', 'nlt': '\\u226E', 'nLt': '\\u226A\\u20D2', 'nltri': '\\u22EA', 'nltrie': '\\u22EC', 'nLtv': '\\u226A\\u0338', 'nmid': '\\u2224', 'NoBreak': '\\u2060', 'NonBreakingSpace': '\\xA0', 'nopf': '\\uD835\\uDD5F', 'Nopf': '\\u2115', 'not': '\\xAC', 'Not': '\\u2AEC', 'NotCongruent': '\\u2262', 'NotCupCap': '\\u226D', 'NotDoubleVerticalBar': '\\u2226', 'NotElement': '\\u2209', 'NotEqual': '\\u2260', 'NotEqualTilde': '\\u2242\\u0338', 'NotExists': '\\u2204', 'NotGreater': '\\u226F', 'NotGreaterEqual': '\\u2271', 'NotGreaterFullEqual': '\\u2267\\u0338', 'NotGreaterGreater': '\\u226B\\u0338', 'NotGreaterLess': '\\u2279', 'NotGreaterSlantEqual': '\\u2A7E\\u0338', 'NotGreaterTilde': '\\u2275', 'NotHumpDownHump': '\\u224E\\u0338', 'NotHumpEqual': '\\u224F\\u0338', 'notin': '\\u2209', 'notindot': '\\u22F5\\u0338', 'notinE': '\\u22F9\\u0338', 'notinva': '\\u2209', 'notinvb': '\\u22F7', 'notinvc': '\\u22F6', 'NotLeftTriangle': '\\u22EA', 'NotLeftTriangleBar': '\\u29CF\\u0338', 'NotLeftTriangleEqual': '\\u22EC', 'NotLess': '\\u226E', 'NotLessEqual': '\\u2270', 'NotLessGreater': '\\u2278', 'NotLessLess': '\\u226A\\u0338', 'NotLessSlantEqual': '\\u2A7D\\u0338', 'NotLessTilde': '\\u2274', 'NotNestedGreaterGreater': '\\u2AA2\\u0338', 'NotNestedLessLess': '\\u2AA1\\u0338', 'notni': '\\u220C', 'notniva': '\\u220C', 'notnivb': '\\u22FE', 'notnivc': '\\u22FD', 'NotPrecedes': '\\u2280', 'NotPrecedesEqual': '\\u2AAF\\u0338', 'NotPrecedesSlantEqual': '\\u22E0', 'NotReverseElement': '\\u220C', 'NotRightTriangle': '\\u22EB', 'NotRightTriangleBar': '\\u29D0\\u0338', 'NotRightTriangleEqual': '\\u22ED', 'NotSquareSubset': '\\u228F\\u0338', 'NotSquareSubsetEqual': '\\u22E2', 'NotSquareSuperset': '\\u2290\\u0338', 'NotSquareSupersetEqual': '\\u22E3', 'NotSubset': '\\u2282\\u20D2', 'NotSubsetEqual': '\\u2288', 'NotSucceeds': '\\u2281', 'NotSucceedsEqual': '\\u2AB0\\u0338', 'NotSucceedsSlantEqual': '\\u22E1', 'NotSucceedsTilde': '\\u227F\\u0338', 'NotSuperset': '\\u2283\\u20D2', 'NotSupersetEqual': '\\u2289', 'NotTilde': '\\u2241', 'NotTildeEqual': '\\u2244', 'NotTildeFullEqual': '\\u2247', 'NotTildeTilde': '\\u2249', 'NotVerticalBar': '\\u2224', 'npar': '\\u2226', 'nparallel': '\\u2226', 'nparsl': '\\u2AFD\\u20E5', 'npart': '\\u2202\\u0338', 'npolint': '\\u2A14', 'npr': '\\u2280', 'nprcue': '\\u22E0', 'npre': '\\u2AAF\\u0338', 'nprec': '\\u2280', 'npreceq': '\\u2AAF\\u0338', 'nrarr': '\\u219B', 'nrArr': '\\u21CF', 'nrarrc': '\\u2933\\u0338', 'nrarrw': '\\u219D\\u0338', 'nrightarrow': '\\u219B', 'nRightarrow': '\\u21CF', 'nrtri': '\\u22EB', 'nrtrie': '\\u22ED', 'nsc': '\\u2281', 'nsccue': '\\u22E1', 'nsce': '\\u2AB0\\u0338', 'nscr': '\\uD835\\uDCC3', 'Nscr': '\\uD835\\uDCA9', 'nshortmid': '\\u2224', 'nshortparallel': '\\u2226', 'nsim': '\\u2241', 'nsime': '\\u2244', 'nsimeq': '\\u2244', 'nsmid': '\\u2224', 'nspar': '\\u2226', 'nsqsube': '\\u22E2', 'nsqsupe': '\\u22E3', 'nsub': '\\u2284', 'nsube': '\\u2288', 'nsubE': '\\u2AC5\\u0338', 'nsubset': '\\u2282\\u20D2', 'nsubseteq': '\\u2288', 'nsubseteqq': '\\u2AC5\\u0338', 'nsucc': '\\u2281', 'nsucceq': '\\u2AB0\\u0338', 'nsup': '\\u2285', 'nsupe': '\\u2289', 'nsupE': '\\u2AC6\\u0338', 'nsupset': '\\u2283\\u20D2', 'nsupseteq': '\\u2289', 'nsupseteqq': '\\u2AC6\\u0338', 'ntgl': '\\u2279', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'ntlg': '\\u2278', 'ntriangleleft': '\\u22EA', 'ntrianglelefteq': '\\u22EC', 'ntriangleright': '\\u22EB', 'ntrianglerighteq': '\\u22ED', 'nu': '\\u03BD', 'Nu': '\\u039D', 'num': '#', 'numero': '\\u2116', 'numsp': '\\u2007', 'nvap': '\\u224D\\u20D2', 'nvdash': '\\u22AC', 'nvDash': '\\u22AD', 'nVdash': '\\u22AE', 'nVDash': '\\u22AF', 'nvge': '\\u2265\\u20D2', 'nvgt': '>\\u20D2', 'nvHarr': '\\u2904', 'nvinfin': '\\u29DE', 'nvlArr': '\\u2902', 'nvle': '\\u2264\\u20D2', 'nvlt': '<\\u20D2', 'nvltrie': '\\u22B4\\u20D2', 'nvrArr': '\\u2903', 'nvrtrie': '\\u22B5\\u20D2', 'nvsim': '\\u223C\\u20D2', 'nwarhk': '\\u2923', 'nwarr': '\\u2196', 'nwArr': '\\u21D6', 'nwarrow': '\\u2196', 'nwnear': '\\u2927', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'oast': '\\u229B', 'ocir': '\\u229A', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ocy': '\\u043E', 'Ocy': '\\u041E', 'odash': '\\u229D', 'odblac': '\\u0151', 'Odblac': '\\u0150', 'odiv': '\\u2A38', 'odot': '\\u2299', 'odsold': '\\u29BC', 'oelig': '\\u0153', 'OElig': '\\u0152', 'ofcir': '\\u29BF', 'ofr': '\\uD835\\uDD2C', 'Ofr': '\\uD835\\uDD12', 'ogon': '\\u02DB', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ogt': '\\u29C1', 'ohbar': '\\u29B5', 'ohm': '\\u03A9', 'oint': '\\u222E', 'olarr': '\\u21BA', 'olcir': '\\u29BE', 'olcross': '\\u29BB', 'oline': '\\u203E', 'olt': '\\u29C0', 'omacr': '\\u014D', 'Omacr': '\\u014C', 'omega': '\\u03C9', 'Omega': '\\u03A9', 'omicron': '\\u03BF', 'Omicron': '\\u039F', 'omid': '\\u29B6', 'ominus': '\\u2296', 'oopf': '\\uD835\\uDD60', 'Oopf': '\\uD835\\uDD46', 'opar': '\\u29B7', 'OpenCurlyDoubleQuote': '\\u201C', 'OpenCurlyQuote': '\\u2018', 'operp': '\\u29B9', 'oplus': '\\u2295', 'or': '\\u2228', 'Or': '\\u2A54', 'orarr': '\\u21BB', 'ord': '\\u2A5D', 'order': '\\u2134', 'orderof': '\\u2134', 'ordf': '\\xAA', 'ordm': '\\xBA', 'origof': '\\u22B6', 'oror': '\\u2A56', 'orslope': '\\u2A57', 'orv': '\\u2A5B', 'oS': '\\u24C8', 'oscr': '\\u2134', 'Oscr': '\\uD835\\uDCAA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'osol': '\\u2298', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'otimes': '\\u2297', 'Otimes': '\\u2A37', 'otimesas': '\\u2A36', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'ovbar': '\\u233D', 'OverBar': '\\u203E', 'OverBrace': '\\u23DE', 'OverBracket': '\\u23B4', 'OverParenthesis': '\\u23DC', 'par': '\\u2225', 'para': '\\xB6', 'parallel': '\\u2225', 'parsim': '\\u2AF3', 'parsl': '\\u2AFD', 'part': '\\u2202', 'PartialD': '\\u2202', 'pcy': '\\u043F', 'Pcy': '\\u041F', 'percnt': '%', 'period': '.', 'permil': '\\u2030', 'perp': '\\u22A5', 'pertenk': '\\u2031', 'pfr': '\\uD835\\uDD2D', 'Pfr': '\\uD835\\uDD13', 'phi': '\\u03C6', 'Phi': '\\u03A6', 'phiv': '\\u03D5', 'phmmat': '\\u2133', 'phone': '\\u260E', 'pi': '\\u03C0', 'Pi': '\\u03A0', 'pitchfork': '\\u22D4', 'piv': '\\u03D6', 'planck': '\\u210F', 'planckh': '\\u210E', 'plankv': '\\u210F', 'plus': '+', 'plusacir': '\\u2A23', 'plusb': '\\u229E', 'pluscir': '\\u2A22', 'plusdo': '\\u2214', 'plusdu': '\\u2A25', 'pluse': '\\u2A72', 'PlusMinus': '\\xB1', 'plusmn': '\\xB1', 'plussim': '\\u2A26', 'plustwo': '\\u2A27', 'pm': '\\xB1', 'Poincareplane': '\\u210C', 'pointint': '\\u2A15', 'popf': '\\uD835\\uDD61', 'Popf': '\\u2119', 'pound': '\\xA3', 'pr': '\\u227A', 'Pr': '\\u2ABB', 'prap': '\\u2AB7', 'prcue': '\\u227C', 'pre': '\\u2AAF', 'prE': '\\u2AB3', 'prec': '\\u227A', 'precapprox': '\\u2AB7', 'preccurlyeq': '\\u227C', 'Precedes': '\\u227A', 'PrecedesEqual': '\\u2AAF', 'PrecedesSlantEqual': '\\u227C', 'PrecedesTilde': '\\u227E', 'preceq': '\\u2AAF', 'precnapprox': '\\u2AB9', 'precneqq': '\\u2AB5', 'precnsim': '\\u22E8', 'precsim': '\\u227E', 'prime': '\\u2032', 'Prime': '\\u2033', 'primes': '\\u2119', 'prnap': '\\u2AB9', 'prnE': '\\u2AB5', 'prnsim': '\\u22E8', 'prod': '\\u220F', 'Product': '\\u220F', 'profalar': '\\u232E', 'profline': '\\u2312', 'profsurf': '\\u2313', 'prop': '\\u221D', 'Proportion': '\\u2237', 'Proportional': '\\u221D', 'propto': '\\u221D', 'prsim': '\\u227E', 'prurel': '\\u22B0', 'pscr': '\\uD835\\uDCC5', 'Pscr': '\\uD835\\uDCAB', 'psi': '\\u03C8', 'Psi': '\\u03A8', 'puncsp': '\\u2008', 'qfr': '\\uD835\\uDD2E', 'Qfr': '\\uD835\\uDD14', 'qint': '\\u2A0C', 'qopf': '\\uD835\\uDD62', 'Qopf': '\\u211A', 'qprime': '\\u2057', 'qscr': '\\uD835\\uDCC6', 'Qscr': '\\uD835\\uDCAC', 'quaternions': '\\u210D', 'quatint': '\\u2A16', 'quest': '?', 'questeq': '\\u225F', 'quot': '\"', 'QUOT': '\"', 'rAarr': '\\u21DB', 'race': '\\u223D\\u0331', 'racute': '\\u0155', 'Racute': '\\u0154', 'radic': '\\u221A', 'raemptyv': '\\u29B3', 'rang': '\\u27E9', 'Rang': '\\u27EB', 'rangd': '\\u2992', 'range': '\\u29A5', 'rangle': '\\u27E9', 'raquo': '\\xBB', 'rarr': '\\u2192', 'rArr': '\\u21D2', 'Rarr': '\\u21A0', 'rarrap': '\\u2975', 'rarrb': '\\u21E5', 'rarrbfs': '\\u2920', 'rarrc': '\\u2933', 'rarrfs': '\\u291E', 'rarrhk': '\\u21AA', 'rarrlp': '\\u21AC', 'rarrpl': '\\u2945', 'rarrsim': '\\u2974', 'rarrtl': '\\u21A3', 'Rarrtl': '\\u2916', 'rarrw': '\\u219D', 'ratail': '\\u291A', 'rAtail': '\\u291C', 'ratio': '\\u2236', 'rationals': '\\u211A', 'rbarr': '\\u290D', 'rBarr': '\\u290F', 'RBarr': '\\u2910', 'rbbrk': '\\u2773', 'rbrace': '}', 'rbrack': ']', 'rbrke': '\\u298C', 'rbrksld': '\\u298E', 'rbrkslu': '\\u2990', 'rcaron': '\\u0159', 'Rcaron': '\\u0158', 'rcedil': '\\u0157', 'Rcedil': '\\u0156', 'rceil': '\\u2309', 'rcub': '}', 'rcy': '\\u0440', 'Rcy': '\\u0420', 'rdca': '\\u2937', 'rdldhar': '\\u2969', 'rdquo': '\\u201D', 'rdquor': '\\u201D', 'rdsh': '\\u21B3', 'Re': '\\u211C', 'real': '\\u211C', 'realine': '\\u211B', 'realpart': '\\u211C', 'reals': '\\u211D', 'rect': '\\u25AD', 'reg': '\\xAE', 'REG': '\\xAE', 'ReverseElement': '\\u220B', 'ReverseEquilibrium': '\\u21CB', 'ReverseUpEquilibrium': '\\u296F', 'rfisht': '\\u297D', 'rfloor': '\\u230B', 'rfr': '\\uD835\\uDD2F', 'Rfr': '\\u211C', 'rHar': '\\u2964', 'rhard': '\\u21C1', 'rharu': '\\u21C0', 'rharul': '\\u296C', 'rho': '\\u03C1', 'Rho': '\\u03A1', 'rhov': '\\u03F1', 'RightAngleBracket': '\\u27E9', 'rightarrow': '\\u2192', 'Rightarrow': '\\u21D2', 'RightArrow': '\\u2192', 'RightArrowBar': '\\u21E5', 'RightArrowLeftArrow': '\\u21C4', 'rightarrowtail': '\\u21A3', 'RightCeiling': '\\u2309', 'RightDoubleBracket': '\\u27E7', 'RightDownTeeVector': '\\u295D', 'RightDownVector': '\\u21C2', 'RightDownVectorBar': '\\u2955', 'RightFloor': '\\u230B', 'rightharpoondown': '\\u21C1', 'rightharpoonup': '\\u21C0', 'rightleftarrows': '\\u21C4', 'rightleftharpoons': '\\u21CC', 'rightrightarrows': '\\u21C9', 'rightsquigarrow': '\\u219D', 'RightTee': '\\u22A2', 'RightTeeArrow': '\\u21A6', 'RightTeeVector': '\\u295B', 'rightthreetimes': '\\u22CC', 'RightTriangle': '\\u22B3', 'RightTriangleBar': '\\u29D0', 'RightTriangleEqual': '\\u22B5', 'RightUpDownVector': '\\u294F', 'RightUpTeeVector': '\\u295C', 'RightUpVector': '\\u21BE', 'RightUpVectorBar': '\\u2954', 'RightVector': '\\u21C0', 'RightVectorBar': '\\u2953', 'ring': '\\u02DA', 'risingdotseq': '\\u2253', 'rlarr': '\\u21C4', 'rlhar': '\\u21CC', 'rlm': '\\u200F', 'rmoust': '\\u23B1', 'rmoustache': '\\u23B1', 'rnmid': '\\u2AEE', 'roang': '\\u27ED', 'roarr': '\\u21FE', 'robrk': '\\u27E7', 'ropar': '\\u2986', 'ropf': '\\uD835\\uDD63', 'Ropf': '\\u211D', 'roplus': '\\u2A2E', 'rotimes': '\\u2A35', 'RoundImplies': '\\u2970', 'rpar': ')', 'rpargt': '\\u2994', 'rppolint': '\\u2A12', 'rrarr': '\\u21C9', 'Rrightarrow': '\\u21DB', 'rsaquo': '\\u203A', 'rscr': '\\uD835\\uDCC7', 'Rscr': '\\u211B', 'rsh': '\\u21B1', 'Rsh': '\\u21B1', 'rsqb': ']', 'rsquo': '\\u2019', 'rsquor': '\\u2019', 'rthree': '\\u22CC', 'rtimes': '\\u22CA', 'rtri': '\\u25B9', 'rtrie': '\\u22B5', 'rtrif': '\\u25B8', 'rtriltri': '\\u29CE', 'RuleDelayed': '\\u29F4', 'ruluhar': '\\u2968', 'rx': '\\u211E', 'sacute': '\\u015B', 'Sacute': '\\u015A', 'sbquo': '\\u201A', 'sc': '\\u227B', 'Sc': '\\u2ABC', 'scap': '\\u2AB8', 'scaron': '\\u0161', 'Scaron': '\\u0160', 'sccue': '\\u227D', 'sce': '\\u2AB0', 'scE': '\\u2AB4', 'scedil': '\\u015F', 'Scedil': '\\u015E', 'scirc': '\\u015D', 'Scirc': '\\u015C', 'scnap': '\\u2ABA', 'scnE': '\\u2AB6', 'scnsim': '\\u22E9', 'scpolint': '\\u2A13', 'scsim': '\\u227F', 'scy': '\\u0441', 'Scy': '\\u0421', 'sdot': '\\u22C5', 'sdotb': '\\u22A1', 'sdote': '\\u2A66', 'searhk': '\\u2925', 'searr': '\\u2198', 'seArr': '\\u21D8', 'searrow': '\\u2198', 'sect': '\\xA7', 'semi': ';', 'seswar': '\\u2929', 'setminus': '\\u2216', 'setmn': '\\u2216', 'sext': '\\u2736', 'sfr': '\\uD835\\uDD30', 'Sfr': '\\uD835\\uDD16', 'sfrown': '\\u2322', 'sharp': '\\u266F', 'shchcy': '\\u0449', 'SHCHcy': '\\u0429', 'shcy': '\\u0448', 'SHcy': '\\u0428', 'ShortDownArrow': '\\u2193', 'ShortLeftArrow': '\\u2190', 'shortmid': '\\u2223', 'shortparallel': '\\u2225', 'ShortRightArrow': '\\u2192', 'ShortUpArrow': '\\u2191', 'shy': '\\xAD', 'sigma': '\\u03C3', 'Sigma': '\\u03A3', 'sigmaf': '\\u03C2', 'sigmav': '\\u03C2', 'sim': '\\u223C', 'simdot': '\\u2A6A', 'sime': '\\u2243', 'simeq': '\\u2243', 'simg': '\\u2A9E', 'simgE': '\\u2AA0', 'siml': '\\u2A9D', 'simlE': '\\u2A9F', 'simne': '\\u2246', 'simplus': '\\u2A24', 'simrarr': '\\u2972', 'slarr': '\\u2190', 'SmallCircle': '\\u2218', 'smallsetminus': '\\u2216', 'smashp': '\\u2A33', 'smeparsl': '\\u29E4', 'smid': '\\u2223', 'smile': '\\u2323', 'smt': '\\u2AAA', 'smte': '\\u2AAC', 'smtes': '\\u2AAC\\uFE00', 'softcy': '\\u044C', 'SOFTcy': '\\u042C', 'sol': '/', 'solb': '\\u29C4', 'solbar': '\\u233F', 'sopf': '\\uD835\\uDD64', 'Sopf': '\\uD835\\uDD4A', 'spades': '\\u2660', 'spadesuit': '\\u2660', 'spar': '\\u2225', 'sqcap': '\\u2293', 'sqcaps': '\\u2293\\uFE00', 'sqcup': '\\u2294', 'sqcups': '\\u2294\\uFE00', 'Sqrt': '\\u221A', 'sqsub': '\\u228F', 'sqsube': '\\u2291', 'sqsubset': '\\u228F', 'sqsubseteq': '\\u2291', 'sqsup': '\\u2290', 'sqsupe': '\\u2292', 'sqsupset': '\\u2290', 'sqsupseteq': '\\u2292', 'squ': '\\u25A1', 'square': '\\u25A1', 'Square': '\\u25A1', 'SquareIntersection': '\\u2293', 'SquareSubset': '\\u228F', 'SquareSubsetEqual': '\\u2291', 'SquareSuperset': '\\u2290', 'SquareSupersetEqual': '\\u2292', 'SquareUnion': '\\u2294', 'squarf': '\\u25AA', 'squf': '\\u25AA', 'srarr': '\\u2192', 'sscr': '\\uD835\\uDCC8', 'Sscr': '\\uD835\\uDCAE', 'ssetmn': '\\u2216', 'ssmile': '\\u2323', 'sstarf': '\\u22C6', 'star': '\\u2606', 'Star': '\\u22C6', 'starf': '\\u2605', 'straightepsilon': '\\u03F5', 'straightphi': '\\u03D5', 'strns': '\\xAF', 'sub': '\\u2282', 'Sub': '\\u22D0', 'subdot': '\\u2ABD', 'sube': '\\u2286', 'subE': '\\u2AC5', 'subedot': '\\u2AC3', 'submult': '\\u2AC1', 'subne': '\\u228A', 'subnE': '\\u2ACB', 'subplus': '\\u2ABF', 'subrarr': '\\u2979', 'subset': '\\u2282', 'Subset': '\\u22D0', 'subseteq': '\\u2286', 'subseteqq': '\\u2AC5', 'SubsetEqual': '\\u2286', 'subsetneq': '\\u228A', 'subsetneqq': '\\u2ACB', 'subsim': '\\u2AC7', 'subsub': '\\u2AD5', 'subsup': '\\u2AD3', 'succ': '\\u227B', 'succapprox': '\\u2AB8', 'succcurlyeq': '\\u227D', 'Succeeds': '\\u227B', 'SucceedsEqual': '\\u2AB0', 'SucceedsSlantEqual': '\\u227D', 'SucceedsTilde': '\\u227F', 'succeq': '\\u2AB0', 'succnapprox': '\\u2ABA', 'succneqq': '\\u2AB6', 'succnsim': '\\u22E9', 'succsim': '\\u227F', 'SuchThat': '\\u220B', 'sum': '\\u2211', 'Sum': '\\u2211', 'sung': '\\u266A', 'sup': '\\u2283', 'Sup': '\\u22D1', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'supdot': '\\u2ABE', 'supdsub': '\\u2AD8', 'supe': '\\u2287', 'supE': '\\u2AC6', 'supedot': '\\u2AC4', 'Superset': '\\u2283', 'SupersetEqual': '\\u2287', 'suphsol': '\\u27C9', 'suphsub': '\\u2AD7', 'suplarr': '\\u297B', 'supmult': '\\u2AC2', 'supne': '\\u228B', 'supnE': '\\u2ACC', 'supplus': '\\u2AC0', 'supset': '\\u2283', 'Supset': '\\u22D1', 'supseteq': '\\u2287', 'supseteqq': '\\u2AC6', 'supsetneq': '\\u228B', 'supsetneqq': '\\u2ACC', 'supsim': '\\u2AC8', 'supsub': '\\u2AD4', 'supsup': '\\u2AD6', 'swarhk': '\\u2926', 'swarr': '\\u2199', 'swArr': '\\u21D9', 'swarrow': '\\u2199', 'swnwar': '\\u292A', 'szlig': '\\xDF', 'Tab': '\\t', 'target': '\\u2316', 'tau': '\\u03C4', 'Tau': '\\u03A4', 'tbrk': '\\u23B4', 'tcaron': '\\u0165', 'Tcaron': '\\u0164', 'tcedil': '\\u0163', 'Tcedil': '\\u0162', 'tcy': '\\u0442', 'Tcy': '\\u0422', 'tdot': '\\u20DB', 'telrec': '\\u2315', 'tfr': '\\uD835\\uDD31', 'Tfr': '\\uD835\\uDD17', 'there4': '\\u2234', 'therefore': '\\u2234', 'Therefore': '\\u2234', 'theta': '\\u03B8', 'Theta': '\\u0398', 'thetasym': '\\u03D1', 'thetav': '\\u03D1', 'thickapprox': '\\u2248', 'thicksim': '\\u223C', 'ThickSpace': '\\u205F\\u200A', 'thinsp': '\\u2009', 'ThinSpace': '\\u2009', 'thkap': '\\u2248', 'thksim': '\\u223C', 'thorn': '\\xFE', 'THORN': '\\xDE', 'tilde': '\\u02DC', 'Tilde': '\\u223C', 'TildeEqual': '\\u2243', 'TildeFullEqual': '\\u2245', 'TildeTilde': '\\u2248', 'times': '\\xD7', 'timesb': '\\u22A0', 'timesbar': '\\u2A31', 'timesd': '\\u2A30', 'tint': '\\u222D', 'toea': '\\u2928', 'top': '\\u22A4', 'topbot': '\\u2336', 'topcir': '\\u2AF1', 'topf': '\\uD835\\uDD65', 'Topf': '\\uD835\\uDD4B', 'topfork': '\\u2ADA', 'tosa': '\\u2929', 'tprime': '\\u2034', 'trade': '\\u2122', 'TRADE': '\\u2122', 'triangle': '\\u25B5', 'triangledown': '\\u25BF', 'triangleleft': '\\u25C3', 'trianglelefteq': '\\u22B4', 'triangleq': '\\u225C', 'triangleright': '\\u25B9', 'trianglerighteq': '\\u22B5', 'tridot': '\\u25EC', 'trie': '\\u225C', 'triminus': '\\u2A3A', 'TripleDot': '\\u20DB', 'triplus': '\\u2A39', 'trisb': '\\u29CD', 'tritime': '\\u2A3B', 'trpezium': '\\u23E2', 'tscr': '\\uD835\\uDCC9', 'Tscr': '\\uD835\\uDCAF', 'tscy': '\\u0446', 'TScy': '\\u0426', 'tshcy': '\\u045B', 'TSHcy': '\\u040B', 'tstrok': '\\u0167', 'Tstrok': '\\u0166', 'twixt': '\\u226C', 'twoheadleftarrow': '\\u219E', 'twoheadrightarrow': '\\u21A0', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'uarr': '\\u2191', 'uArr': '\\u21D1', 'Uarr': '\\u219F', 'Uarrocir': '\\u2949', 'ubrcy': '\\u045E', 'Ubrcy': '\\u040E', 'ubreve': '\\u016D', 'Ubreve': '\\u016C', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ucy': '\\u0443', 'Ucy': '\\u0423', 'udarr': '\\u21C5', 'udblac': '\\u0171', 'Udblac': '\\u0170', 'udhar': '\\u296E', 'ufisht': '\\u297E', 'ufr': '\\uD835\\uDD32', 'Ufr': '\\uD835\\uDD18', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uHar': '\\u2963', 'uharl': '\\u21BF', 'uharr': '\\u21BE', 'uhblk': '\\u2580', 'ulcorn': '\\u231C', 'ulcorner': '\\u231C', 'ulcrop': '\\u230F', 'ultri': '\\u25F8', 'umacr': '\\u016B', 'Umacr': '\\u016A', 'uml': '\\xA8', 'UnderBar': '_', 'UnderBrace': '\\u23DF', 'UnderBracket': '\\u23B5', 'UnderParenthesis': '\\u23DD', 'Union': '\\u22C3', 'UnionPlus': '\\u228E', 'uogon': '\\u0173', 'Uogon': '\\u0172', 'uopf': '\\uD835\\uDD66', 'Uopf': '\\uD835\\uDD4C', 'uparrow': '\\u2191', 'Uparrow': '\\u21D1', 'UpArrow': '\\u2191', 'UpArrowBar': '\\u2912', 'UpArrowDownArrow': '\\u21C5', 'updownarrow': '\\u2195', 'Updownarrow': '\\u21D5', 'UpDownArrow': '\\u2195', 'UpEquilibrium': '\\u296E', 'upharpoonleft': '\\u21BF', 'upharpoonright': '\\u21BE', 'uplus': '\\u228E', 'UpperLeftArrow': '\\u2196', 'UpperRightArrow': '\\u2197', 'upsi': '\\u03C5', 'Upsi': '\\u03D2', 'upsih': '\\u03D2', 'upsilon': '\\u03C5', 'Upsilon': '\\u03A5', 'UpTee': '\\u22A5', 'UpTeeArrow': '\\u21A5', 'upuparrows': '\\u21C8', 'urcorn': '\\u231D', 'urcorner': '\\u231D', 'urcrop': '\\u230E', 'uring': '\\u016F', 'Uring': '\\u016E', 'urtri': '\\u25F9', 'uscr': '\\uD835\\uDCCA', 'Uscr': '\\uD835\\uDCB0', 'utdot': '\\u22F0', 'utilde': '\\u0169', 'Utilde': '\\u0168', 'utri': '\\u25B5', 'utrif': '\\u25B4', 'uuarr': '\\u21C8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'uwangle': '\\u29A7', 'vangrt': '\\u299C', 'varepsilon': '\\u03F5', 'varkappa': '\\u03F0', 'varnothing': '\\u2205', 'varphi': '\\u03D5', 'varpi': '\\u03D6', 'varpropto': '\\u221D', 'varr': '\\u2195', 'vArr': '\\u21D5', 'varrho': '\\u03F1', 'varsigma': '\\u03C2', 'varsubsetneq': '\\u228A\\uFE00', 'varsubsetneqq': '\\u2ACB\\uFE00', 'varsupsetneq': '\\u228B\\uFE00', 'varsupsetneqq': '\\u2ACC\\uFE00', 'vartheta': '\\u03D1', 'vartriangleleft': '\\u22B2', 'vartriangleright': '\\u22B3', 'vBar': '\\u2AE8', 'Vbar': '\\u2AEB', 'vBarv': '\\u2AE9', 'vcy': '\\u0432', 'Vcy': '\\u0412', 'vdash': '\\u22A2', 'vDash': '\\u22A8', 'Vdash': '\\u22A9', 'VDash': '\\u22AB', 'Vdashl': '\\u2AE6', 'vee': '\\u2228', 'Vee': '\\u22C1', 'veebar': '\\u22BB', 'veeeq': '\\u225A', 'vellip': '\\u22EE', 'verbar': '|', 'Verbar': '\\u2016', 'vert': '|', 'Vert': '\\u2016', 'VerticalBar': '\\u2223', 'VerticalLine': '|', 'VerticalSeparator': '\\u2758', 'VerticalTilde': '\\u2240', 'VeryThinSpace': '\\u200A', 'vfr': '\\uD835\\uDD33', 'Vfr': '\\uD835\\uDD19', 'vltri': '\\u22B2', 'vnsub': '\\u2282\\u20D2', 'vnsup': '\\u2283\\u20D2', 'vopf': '\\uD835\\uDD67', 'Vopf': '\\uD835\\uDD4D', 'vprop': '\\u221D', 'vrtri': '\\u22B3', 'vscr': '\\uD835\\uDCCB', 'Vscr': '\\uD835\\uDCB1', 'vsubne': '\\u228A\\uFE00', 'vsubnE': '\\u2ACB\\uFE00', 'vsupne': '\\u228B\\uFE00', 'vsupnE': '\\u2ACC\\uFE00', 'Vvdash': '\\u22AA', 'vzigzag': '\\u299A', 'wcirc': '\\u0175', 'Wcirc': '\\u0174', 'wedbar': '\\u2A5F', 'wedge': '\\u2227', 'Wedge': '\\u22C0', 'wedgeq': '\\u2259', 'weierp': '\\u2118', 'wfr': '\\uD835\\uDD34', 'Wfr': '\\uD835\\uDD1A', 'wopf': '\\uD835\\uDD68', 'Wopf': '\\uD835\\uDD4E', 'wp': '\\u2118', 'wr': '\\u2240', 'wreath': '\\u2240', 'wscr': '\\uD835\\uDCCC', 'Wscr': '\\uD835\\uDCB2', 'xcap': '\\u22C2', 'xcirc': '\\u25EF', 'xcup': '\\u22C3', 'xdtri': '\\u25BD', 'xfr': '\\uD835\\uDD35', 'Xfr': '\\uD835\\uDD1B', 'xharr': '\\u27F7', 'xhArr': '\\u27FA', 'xi': '\\u03BE', 'Xi': '\\u039E', 'xlarr': '\\u27F5', 'xlArr': '\\u27F8', 'xmap': '\\u27FC', 'xnis': '\\u22FB', 'xodot': '\\u2A00', 'xopf': '\\uD835\\uDD69', 'Xopf': '\\uD835\\uDD4F', 'xoplus': '\\u2A01', 'xotime': '\\u2A02', 'xrarr': '\\u27F6', 'xrArr': '\\u27F9', 'xscr': '\\uD835\\uDCCD', 'Xscr': '\\uD835\\uDCB3', 'xsqcup': '\\u2A06', 'xuplus': '\\u2A04', 'xutri': '\\u25B3', 'xvee': '\\u22C1', 'xwedge': '\\u22C0', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yacy': '\\u044F', 'YAcy': '\\u042F', 'ycirc': '\\u0177', 'Ycirc': '\\u0176', 'ycy': '\\u044B', 'Ycy': '\\u042B', 'yen': '\\xA5', 'yfr': '\\uD835\\uDD36', 'Yfr': '\\uD835\\uDD1C', 'yicy': '\\u0457', 'YIcy': '\\u0407', 'yopf': '\\uD835\\uDD6A', 'Yopf': '\\uD835\\uDD50', 'yscr': '\\uD835\\uDCCE', 'Yscr': '\\uD835\\uDCB4', 'yucy': '\\u044E', 'YUcy': '\\u042E', 'yuml': '\\xFF', 'Yuml': '\\u0178', 'zacute': '\\u017A', 'Zacute': '\\u0179', 'zcaron': '\\u017E', 'Zcaron': '\\u017D', 'zcy': '\\u0437', 'Zcy': '\\u0417', 'zdot': '\\u017C', 'Zdot': '\\u017B', 'zeetrf': '\\u2128', 'ZeroWidthSpace': '\\u200B', 'zeta': '\\u03B6', 'Zeta': '\\u0396', 'zfr': '\\uD835\\uDD37', 'Zfr': '\\u2128', 'zhcy': '\\u0436', 'ZHcy': '\\u0416', 'zigrarr': '\\u21DD', 'zopf': '\\uD835\\uDD6B', 'Zopf': '\\u2124', 'zscr': '\\uD835\\uDCCF', 'Zscr': '\\uD835\\uDCB5', 'zwj': '\\u200D', 'zwnj': '\\u200C' };\r\n\t\t\t\t\t\t\tvar decodeMapLegacy = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'aelig': '\\xE6', 'AElig': '\\xC6', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'amp': '&', 'AMP': '&', 'aring': '\\xE5', 'Aring': '\\xC5', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'brvbar': '\\xA6', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'cedil': '\\xB8', 'cent': '\\xA2', 'copy': '\\xA9', 'COPY': '\\xA9', 'curren': '\\xA4', 'deg': '\\xB0', 'divide': '\\xF7', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'frac12': '\\xBD', 'frac14': '\\xBC', 'frac34': '\\xBE', 'gt': '>', 'GT': '>', 'iacute': '\\xED', 'Iacute': '\\xCD', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'iexcl': '\\xA1', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'iquest': '\\xBF', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'laquo': '\\xAB', 'lt': '<', 'LT': '<', 'macr': '\\xAF', 'micro': '\\xB5', 'middot': '\\xB7', 'nbsp': '\\xA0', 'not': '\\xAC', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ordf': '\\xAA', 'ordm': '\\xBA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'para': '\\xB6', 'plusmn': '\\xB1', 'pound': '\\xA3', 'quot': '\"', 'QUOT': '\"', 'raquo': '\\xBB', 'reg': '\\xAE', 'REG': '\\xAE', 'sect': '\\xA7', 'shy': '\\xAD', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'szlig': '\\xDF', 'thorn': '\\xFE', 'THORN': '\\xDE', 'times': '\\xD7', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uml': '\\xA8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yen': '\\xA5', 'yuml': '\\xFF' };\r\n\t\t\t\t\t\t\tvar decodeMapNumeric = { '0': '\\uFFFD', '128': '\\u20AC', '130': '\\u201A', '131': '\\u0192', '132': '\\u201E', '133': '\\u2026', '134': '\\u2020', '135': '\\u2021', '136': '\\u02C6', '137': '\\u2030', '138': '\\u0160', '139': '\\u2039', '140': '\\u0152', '142': '\\u017D', '145': '\\u2018', '146': '\\u2019', '147': '\\u201C', '148': '\\u201D', '149': '\\u2022', '150': '\\u2013', '151': '\\u2014', '152': '\\u02DC', '153': '\\u2122', '154': '\\u0161', '155': '\\u203A', '156': '\\u0153', '158': '\\u017E', '159': '\\u0178' };\r\n\t\t\t\t\t\t\tvar invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];\r\n\r\n\t\t\t\t\t\t\t/*--------------------------------------------------------------------------*/\r\n\r\n\t\t\t\t\t\t\tvar stringFromCharCode = String.fromCharCode;\r\n\r\n\t\t\t\t\t\t\tvar object = {};\r\n\t\t\t\t\t\t\tvar hasOwnProperty = object.hasOwnProperty;\r\n\t\t\t\t\t\t\tvar has = function (object, propertyName) {\r\n\t\t\t\t\t\t\t\treturn hasOwnProperty.call(object, propertyName);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar contains = function (array, value) {\r\n\t\t\t\t\t\t\t\tvar index = -1;\r\n\t\t\t\t\t\t\t\tvar length = array.length;\r\n\t\t\t\t\t\t\t\twhile (++index < length) {\r\n\t\t\t\t\t\t\t\t\tif (array[index] == value) {\r\n\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar merge = function (options, defaults) {\r\n\t\t\t\t\t\t\t\tif (!options) {\r\n\t\t\t\t\t\t\t\t\treturn defaults;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar result = {};\r\n\t\t\t\t\t\t\t\tvar key;\r\n\t\t\t\t\t\t\t\tfor (key in defaults) {\r\n\t\t\t\t\t\t\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\r\n\t\t\t\t\t\t\t\t\t// option names are used anyway. Any others are ignored.\r\n\t\t\t\t\t\t\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\r\n\t\t\t\t\t\t\tvar codePointToSymbol = function (codePoint, strict) {\r\n\t\t\t\t\t\t\t\tvar output = '';\r\n\t\t\t\t\t\t\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\r\n\t\t\t\t\t\t\t\t\t// See issue #4:\r\n\t\t\t\t\t\t\t\t\t// \u201COtherwise, if the number is in the range 0xD800 to 0xDFFF or is\r\n\t\t\t\t\t\t\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\r\n\t\t\t\t\t\t\t\t\t// REPLACEMENT CHARACTER.\u201D\r\n\t\t\t\t\t\t\t\t\tif (strict) {\r\n\t\t\t\t\t\t\t\t\t\tparseError('character reference outside the permissible Unicode range');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn '\\uFFFD';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (has(decodeMapNumeric, codePoint)) {\r\n\t\t\t\t\t\t\t\t\tif (strict) {\r\n\t\t\t\t\t\t\t\t\t\tparseError('disallowed character reference');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn decodeMapNumeric[codePoint];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\r\n\t\t\t\t\t\t\t\t\tparseError('disallowed character reference');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (codePoint > 0xFFFF) {\r\n\t\t\t\t\t\t\t\t\tcodePoint -= 0x10000;\r\n\t\t\t\t\t\t\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\r\n\t\t\t\t\t\t\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\toutput += stringFromCharCode(codePoint);\r\n\t\t\t\t\t\t\t\treturn output;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar hexEscape = function (codePoint) {\r\n\t\t\t\t\t\t\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar decEscape = function (codePoint) {\r\n\t\t\t\t\t\t\t\treturn '&#' + codePoint + ';';\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar parseError = function (message) {\r\n\t\t\t\t\t\t\t\tthrow Error('Parse error: ' + message);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/*--------------------------------------------------------------------------*/\r\n\r\n\t\t\t\t\t\t\tvar encode = function (string, options) {\r\n\t\t\t\t\t\t\t\toptions = merge(options, encode.options);\r\n\t\t\t\t\t\t\t\tvar strict = options.strict;\r\n\t\t\t\t\t\t\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\r\n\t\t\t\t\t\t\t\t\tparseError('forbidden code point');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar encodeEverything = options.encodeEverything;\r\n\t\t\t\t\t\t\t\tvar useNamedReferences = options.useNamedReferences;\r\n\t\t\t\t\t\t\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\r\n\t\t\t\t\t\t\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\r\n\r\n\t\t\t\t\t\t\t\tvar escapeBmpSymbol = function (symbol) {\r\n\t\t\t\t\t\t\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\tif (encodeEverything) {\r\n\t\t\t\t\t\t\t\t\t// Encode ASCII symbols.\r\n\t\t\t\t\t\t\t\t\tstring = string.replace(regexAsciiWhitelist, function (symbol) {\r\n\t\t\t\t\t\t\t\t\t\t// Use named references if requested & possible.\r\n\t\t\t\t\t\t\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn escapeBmpSymbol(symbol);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\r\n\t\t\t\t\t\t\t\t\t// is within the ASCII range.\r\n\t\t\t\t\t\t\t\t\tif (useNamedReferences) {\r\n\t\t\t\t\t\t\t\t\t\tstring = string\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\r\n\t\t\t\t\t\t\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// Encode non-ASCII symbols.\r\n\t\t\t\t\t\t\t\t\tif (useNamedReferences) {\r\n\t\t\t\t\t\t\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\r\n\t\t\t\t\t\t\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\r\n\t\t\t\t\t\t\t\t\t\t\treturn '&' + encodeMap[string] + ';';\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\r\n\t\t\t\t\t\t\t\t} else if (useNamedReferences) {\r\n\t\t\t\t\t\t\t\t\t// Apply named character references.\r\n\t\t\t\t\t\t\t\t\t// Encode `<>\"'&` using named character references.\r\n\t\t\t\t\t\t\t\t\tif (!allowUnsafeSymbols) {\r\n\t\t\t\t\t\t\t\t\t\tstring = string.replace(regexEscape, function (string) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// Shorten escapes that represent two symbols, of which at least one is\r\n\t\t\t\t\t\t\t\t\t// `<>\"'&`.\r\n\t\t\t\t\t\t\t\t\tstring = string\r\n\t\t\t\t\t\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\r\n\t\t\t\t\t\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\r\n\t\t\t\t\t\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\r\n\t\t\t\t\t\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\r\n\t\t\t\t\t\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\r\n\t\t\t\t\t\t\t\t\t\treturn '&' + encodeMap[string] + ';';\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t} else if (!allowUnsafeSymbols) {\r\n\t\t\t\t\t\t\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they\u2019re not handled\r\n\t\t\t\t\t\t\t\t\t// using named character references.\r\n\t\t\t\t\t\t\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn string\r\n\t\t\t\t\t\t\t\t\t// Encode astral symbols.\r\n\t\t\t\t\t\t\t\t\t.replace(regexAstralSymbols, function ($0) {\r\n\t\t\t\t\t\t\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\r\n\t\t\t\t\t\t\t\t\t\tvar high = $0.charCodeAt(0);\r\n\t\t\t\t\t\t\t\t\t\tvar low = $0.charCodeAt(1);\r\n\t\t\t\t\t\t\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\r\n\t\t\t\t\t\t\t\t\t\treturn escapeCodePoint(codePoint);\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\r\n\t\t\t\t\t\t\t\t\t// using a hexadecimal escape.\r\n\t\t\t\t\t\t\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t// Expose default options (so they can be overridden globally).\r\n\t\t\t\t\t\t\tencode.options = {\r\n\t\t\t\t\t\t\t\t'allowUnsafeSymbols': false,\r\n\t\t\t\t\t\t\t\t'encodeEverything': false,\r\n\t\t\t\t\t\t\t\t'strict': false,\r\n\t\t\t\t\t\t\t\t'useNamedReferences': false,\r\n\t\t\t\t\t\t\t\t'decimal': false\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar decode = function (html, options) {\r\n\t\t\t\t\t\t\t\toptions = merge(options, decode.options);\r\n\t\t\t\t\t\t\t\tvar strict = options.strict;\r\n\t\t\t\t\t\t\t\tif (strict && regexInvalidEntity.test(html)) {\r\n\t\t\t\t\t\t\t\t\tparseError('malformed character reference');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7, $8) {\r\n\t\t\t\t\t\t\t\t\tvar codePoint;\r\n\t\t\t\t\t\t\t\t\tvar semicolon;\r\n\t\t\t\t\t\t\t\t\tvar decDigits;\r\n\t\t\t\t\t\t\t\t\tvar hexDigits;\r\n\t\t\t\t\t\t\t\t\tvar reference;\r\n\t\t\t\t\t\t\t\t\tvar next;\r\n\r\n\t\t\t\t\t\t\t\t\tif ($1) {\r\n\t\t\t\t\t\t\t\t\t\treference = $1;\r\n\t\t\t\t\t\t\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\r\n\t\t\t\t\t\t\t\t\t\treturn decodeMap[reference];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif ($2) {\r\n\t\t\t\t\t\t\t\t\t\t// Decode named character references without trailing `;`, e.g. `&amp`.\r\n\t\t\t\t\t\t\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\r\n\t\t\t\t\t\t\t\t\t\t// followed by `=` in an attribute context.\r\n\t\t\t\t\t\t\t\t\t\treference = $2;\r\n\t\t\t\t\t\t\t\t\t\tnext = $3;\r\n\t\t\t\t\t\t\t\t\t\tif (next && options.isAttributeValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (strict && next == '=') {\r\n\t\t\t\t\t\t\t\t\t\t\t\tparseError('`&` did not start a character reference');\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\treturn $0;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tif (strict) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tparseError(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\r\n\t\t\t\t\t\t\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif ($4) {\r\n\t\t\t\t\t\t\t\t\t\t// Decode decimal escapes, e.g. `&#119558;`.\r\n\t\t\t\t\t\t\t\t\t\tdecDigits = $4;\r\n\t\t\t\t\t\t\t\t\t\tsemicolon = $5;\r\n\t\t\t\t\t\t\t\t\t\tif (strict && !semicolon) {\r\n\t\t\t\t\t\t\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcodePoint = parseInt(decDigits, 10);\r\n\t\t\t\t\t\t\t\t\t\treturn codePointToSymbol(codePoint, strict);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif ($6) {\r\n\t\t\t\t\t\t\t\t\t\t// Decode hexadecimal escapes, e.g. `&#x1D306;`.\r\n\t\t\t\t\t\t\t\t\t\thexDigits = $6;\r\n\t\t\t\t\t\t\t\t\t\tsemicolon = $7;\r\n\t\t\t\t\t\t\t\t\t\tif (strict && !semicolon) {\r\n\t\t\t\t\t\t\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcodePoint = parseInt(hexDigits, 16);\r\n\t\t\t\t\t\t\t\t\t\treturn codePointToSymbol(codePoint, strict);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// If we\u2019re still here, `if ($7)` is implied; it\u2019s an ambiguous\r\n\t\t\t\t\t\t\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\r\n\t\t\t\t\t\t\t\t\tif (strict) {\r\n\t\t\t\t\t\t\t\t\t\tparseError(\r\n\t\t\t\t\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn $0;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t// Expose default options (so they can be overridden globally).\r\n\t\t\t\t\t\t\tdecode.options = {\r\n\t\t\t\t\t\t\t\t'isAttributeValue': false,\r\n\t\t\t\t\t\t\t\t'strict': false\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar escape = function (string) {\r\n\t\t\t\t\t\t\t\treturn string.replace(regexEscape, function ($0) {\r\n\t\t\t\t\t\t\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\r\n\t\t\t\t\t\t\t\t\treturn escapeMap[$0];\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/*--------------------------------------------------------------------------*/\r\n\r\n\t\t\t\t\t\t\tvar he = {\r\n\t\t\t\t\t\t\t\t'version': '1.2.0',\r\n\t\t\t\t\t\t\t\t'encode': encode,\r\n\t\t\t\t\t\t\t\t'decode': decode,\r\n\t\t\t\t\t\t\t\t'escape': escape,\r\n\t\t\t\t\t\t\t\t'unescape': decode\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Some AMD build optimizers, like r.js, check for specific condition patterns\r\n\t\t\t\t\t\t\t// like the following:\r\n\t\t\t\t\t\t\tif (freeExports && !freeExports.nodeType) {\r\n\t\t\t\t\t\t\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\r\n\t\t\t\t\t\t\t\t\tfreeModule.exports = he;\r\n\t\t\t\t\t\t\t\t} else { // in Narwhal or RingoJS v0.7.0-\r\n\t\t\t\t\t\t\t\t\tfor (var key in he) {\r\n\t\t\t\t\t\t\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else { // in Rhino or a web browser\r\n\t\t\t\t\t\t\t\troot.he = he;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}(commonjsGlobal));\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Cross-platform code generation for component v-model\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction genComponentModel(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar ref = modifiers || {};\r\n\t\t\t\t\t\tvar number = ref.number;\r\n\t\t\t\t\t\tvar trim = ref.trim;\r\n\r\n\t\t\t\t\t\tvar baseValueExpression = '$$v';\r\n\t\t\t\t\t\tvar valueExpression = baseValueExpression;\r\n\t\t\t\t\t\tif (trim) {\r\n\t\t\t\t\t\t\tvalueExpression =\r\n\t\t\t\t\t\t\t\t\"(typeof \" + baseValueExpression + \" === 'string'\" +\r\n\t\t\t\t\t\t\t\t\"? \" + baseValueExpression + \".trim()\" +\r\n\t\t\t\t\t\t\t\t\": \" + baseValueExpression + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (number) {\r\n\t\t\t\t\t\t\tvalueExpression = \"_n(\" + valueExpression + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar assignment = genAssignmentCode(value, valueExpression);\r\n\r\n\t\t\t\t\t\tel.model = {\r\n\t\t\t\t\t\t\tvalue: (\"(\" + value + \")\"),\r\n\t\t\t\t\t\t\texpression: JSON.stringify(value),\r\n\t\t\t\t\t\t\tcallback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Cross-platform codegen helper for generating v-model value assignment code.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction genAssignmentCode(\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tassignment\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar res = parseModel(value);\r\n\t\t\t\t\t\tif (res.key === null) {\r\n\t\t\t\t\t\t\treturn (value + \"=\" + assignment)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Parse a v-model expression into a base path and a final key segment.\r\n\t\t\t\t\t * Handles both dot-path and possible square brackets.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * Possible cases:\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * - test\r\n\t\t\t\t\t * - test[key]\r\n\t\t\t\t\t * - test[test1[key]]\r\n\t\t\t\t\t * - test[\"a\"][key]\r\n\t\t\t\t\t * - xxx.test[a[a].test1[key]]\r\n\t\t\t\t\t * - test.xxx.a[\"asa\"][test1[key]]\r\n\t\t\t\t\t *\r\n\t\t\t\t\t */\r\n\r\n\t\t\t\t\tvar len, str, chr, index, expressionPos, expressionEndPos;\r\n\r\n\r\n\r\n\t\t\t\t\tfunction parseModel(val) {\r\n\t\t\t\t\t\t// Fix https://github.com/vuejs/vue/pull/7730\r\n\t\t\t\t\t\t// allow v-model=\"obj.val \" (trailing whitespace)\r\n\t\t\t\t\t\tval = val.trim();\r\n\t\t\t\t\t\tlen = val.length;\r\n\r\n\t\t\t\t\t\tif (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\r\n\t\t\t\t\t\t\tindex = val.lastIndexOf('.');\r\n\t\t\t\t\t\t\tif (index > -1) {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\texp: val.slice(0, index),\r\n\t\t\t\t\t\t\t\t\tkey: '\"' + val.slice(index + 1) + '\"'\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\texp: val,\r\n\t\t\t\t\t\t\t\t\tkey: null\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstr = val;\r\n\t\t\t\t\t\tindex = expressionPos = expressionEndPos = 0;\r\n\r\n\t\t\t\t\t\twhile (!eof()) {\r\n\t\t\t\t\t\t\tchr = next();\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\tif (isStringStart(chr)) {\r\n\t\t\t\t\t\t\t\tparseString(chr);\r\n\t\t\t\t\t\t\t} else if (chr === 0x5B) {\r\n\t\t\t\t\t\t\t\tparseBracket(chr);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\texp: val.slice(0, expressionPos),\r\n\t\t\t\t\t\t\tkey: val.slice(expressionPos + 1, expressionEndPos)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction next() {\r\n\t\t\t\t\t\treturn str.charCodeAt(++index)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction eof() {\r\n\t\t\t\t\t\treturn index >= len\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isStringStart(chr) {\r\n\t\t\t\t\t\treturn chr === 0x22 || chr === 0x27\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction parseBracket(chr) {\r\n\t\t\t\t\t\tvar inBracket = 1;\r\n\t\t\t\t\t\texpressionPos = index;\r\n\t\t\t\t\t\twhile (!eof()) {\r\n\t\t\t\t\t\t\tchr = next();\r\n\t\t\t\t\t\t\tif (isStringStart(chr)) {\r\n\t\t\t\t\t\t\t\tparseString(chr);\r\n\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (chr === 0x5B) { inBracket++; }\r\n\t\t\t\t\t\t\tif (chr === 0x5D) { inBracket--; }\r\n\t\t\t\t\t\t\tif (inBracket === 0) {\r\n\t\t\t\t\t\t\t\texpressionEndPos = index;\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction parseString(chr) {\r\n\t\t\t\t\t\tvar stringQuote = chr;\r\n\t\t\t\t\t\twhile (!eof()) {\r\n\t\t\t\t\t\t\tchr = next();\r\n\t\t\t\t\t\t\tif (chr === stringQuote) {\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar onRE = /^@|^v-on:/;\r\n\t\t\t\t\tvar dirRE = /^v-|^@|^:|^#/;\r\n\t\t\t\t\tvar forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\r\n\t\t\t\t\tvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\r\n\t\t\t\t\tvar stripParensRE = /^\\(|\\)$/g;\r\n\t\t\t\t\tvar dynamicArgRE = /^\\[.*\\]$/;\r\n\r\n\t\t\t\t\tvar argRE = /:(.*)$/;\r\n\t\t\t\t\tvar bindRE = /^:|^\\.|^v-bind:/;\r\n\t\t\t\t\tvar modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\r\n\r\n\t\t\t\t\tvar slotRE = /^v-slot(:|$)|^#/;\r\n\r\n\t\t\t\t\tvar lineBreakRE = /[\\r\\n]/;\r\n\t\t\t\t\tvar whitespaceRE = /[ \\f\\t\\r\\n]+/g;\r\n\r\n\t\t\t\t\tvar invalidAttributeRE = /[\\s\"'<>\\/=]/;\r\n\r\n\t\t\t\t\tvar decodeHTMLCached = cached(he.decode);\r\n\r\n\t\t\t\t\tvar emptySlotScopeToken = \"_empty_\";\r\n\r\n\t\t\t\t\t// configurable state\r\n\t\t\t\t\tvar warn$1;\r\n\t\t\t\t\tvar delimiters;\r\n\t\t\t\t\tvar transforms;\r\n\t\t\t\t\tvar preTransforms;\r\n\t\t\t\t\tvar postTransforms;\r\n\t\t\t\t\tvar platformIsPreTag;\r\n\t\t\t\t\tvar platformMustUseProp;\r\n\t\t\t\t\tvar platformGetTagNamespace;\r\n\t\t\t\t\tvar maybeComponent;\r\n\r\n\t\t\t\t\tfunction createASTElement(\r\n\t\t\t\t\t\ttag,\r\n\t\t\t\t\t\tattrs,\r\n\t\t\t\t\t\tparent\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttype: 1,\r\n\t\t\t\t\t\t\ttag: tag,\r\n\t\t\t\t\t\t\tattrsList: attrs,\r\n\t\t\t\t\t\t\tattrsMap: makeAttrsMap(attrs),\r\n\t\t\t\t\t\t\trawAttrsMap: {},\r\n\t\t\t\t\t\t\tparent: parent,\r\n\t\t\t\t\t\t\tchildren: []\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Convert HTML string to AST.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction parse(\r\n\t\t\t\t\t\ttemplate,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\twarn$1 = options.warn || baseWarn;\r\n\r\n\t\t\t\t\t\tplatformIsPreTag = options.isPreTag || no;\r\n\t\t\t\t\t\tplatformMustUseProp = options.mustUseProp || no;\r\n\t\t\t\t\t\tplatformGetTagNamespace = options.getTagNamespace || no;\r\n\t\t\t\t\t\tvar isReservedTag = options.isReservedTag || no;\r\n\t\t\t\t\t\tmaybeComponent = function (el) {\r\n\t\t\t\t\t\t\treturn !!(\r\n\t\t\t\t\t\t\t\tel.component ||\r\n\t\t\t\t\t\t\t\tel.attrsMap[':is'] ||\r\n\t\t\t\t\t\t\t\tel.attrsMap['v-bind:is'] ||\r\n\t\t\t\t\t\t\t\t!(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag))\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\ttransforms = pluckModuleFunction(options.modules, 'transformNode');\r\n\t\t\t\t\t\tpreTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\r\n\t\t\t\t\t\tpostTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\r\n\r\n\t\t\t\t\t\tdelimiters = options.delimiters;\r\n\r\n\t\t\t\t\t\tvar stack = [];\r\n\t\t\t\t\t\tvar preserveWhitespace = options.preserveWhitespace !== false;\r\n\t\t\t\t\t\tvar whitespaceOption = options.whitespace;\r\n\t\t\t\t\t\tvar root;\r\n\t\t\t\t\t\tvar currentParent;\r\n\t\t\t\t\t\tvar inVPre = false;\r\n\t\t\t\t\t\tvar inPre = false;\r\n\t\t\t\t\t\tvar warned = false;\r\n\r\n\t\t\t\t\t\tfunction warnOnce(msg, range) {\r\n\t\t\t\t\t\t\tif (!warned) {\r\n\t\t\t\t\t\t\t\twarned = true;\r\n\t\t\t\t\t\t\t\twarn$1(msg, range);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction closeElement(element) {\r\n\t\t\t\t\t\t\ttrimEndingWhitespace(element);\r\n\t\t\t\t\t\t\tif (!inVPre && !element.processed) {\r\n\t\t\t\t\t\t\t\telement = processElement(element, options);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// tree management\r\n\t\t\t\t\t\t\tif (!stack.length && element !== root) {\r\n\t\t\t\t\t\t\t\t// allow root elements with v-if, v-else-if and v-else\r\n\t\t\t\t\t\t\t\tif (root.if && (element.elseif || element.else)) {\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tcheckRootConstraints(element);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\taddIfCondition(root, {\r\n\t\t\t\t\t\t\t\t\t\texp: element.elseif,\r\n\t\t\t\t\t\t\t\t\t\tblock: element\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\t\t\t\t\"Component template should contain exactly one root element. \" +\r\n\t\t\t\t\t\t\t\t\t\t\"If you are using v-if on multiple elements, \" +\r\n\t\t\t\t\t\t\t\t\t\t\"use v-else-if to chain them instead.\",\r\n\t\t\t\t\t\t\t\t\t\t{ start: element.start }\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (currentParent && !element.forbidden) {\r\n\t\t\t\t\t\t\t\tif (element.elseif || element.else) {\r\n\t\t\t\t\t\t\t\t\tprocessIfConditions(element, currentParent);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tif (element.slotScope) {\r\n\t\t\t\t\t\t\t\t\t\t// scoped slot\r\n\t\t\t\t\t\t\t\t\t\t// keep it in the children list so that v-else(-if) conditions can\r\n\t\t\t\t\t\t\t\t\t\t// find it as the prev node.\r\n\t\t\t\t\t\t\t\t\t\tvar name = element.slotTarget || '\"default\"'\r\n\t\t\t\t\t\t\t\t\t\t\t; (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcurrentParent.children.push(element);\r\n\t\t\t\t\t\t\t\t\telement.parent = currentParent;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// final children cleanup\r\n\t\t\t\t\t\t\t// filter out scoped slots\r\n\t\t\t\t\t\t\telement.children = element.children.filter(function (c) { return !(c).slotScope; });\r\n\t\t\t\t\t\t\t// remove trailing whitespace node again\r\n\t\t\t\t\t\t\ttrimEndingWhitespace(element);\r\n\r\n\t\t\t\t\t\t\t// check pre state\r\n\t\t\t\t\t\t\tif (element.pre) {\r\n\t\t\t\t\t\t\t\tinVPre = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (platformIsPreTag(element.tag)) {\r\n\t\t\t\t\t\t\t\tinPre = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// apply post-transforms\r\n\t\t\t\t\t\t\tfor (var i = 0; i < postTransforms.length; i++) {\r\n\t\t\t\t\t\t\t\tpostTransforms[i](element, options);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction trimEndingWhitespace(el) {\r\n\t\t\t\t\t\t\t// remove trailing whitespace node\r\n\t\t\t\t\t\t\tif (!inPre) {\r\n\t\t\t\t\t\t\t\tvar lastNode;\r\n\t\t\t\t\t\t\t\twhile (\r\n\t\t\t\t\t\t\t\t\t(lastNode = el.children[el.children.length - 1]) &&\r\n\t\t\t\t\t\t\t\t\tlastNode.type === 3 &&\r\n\t\t\t\t\t\t\t\t\tlastNode.text === ' '\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tel.children.pop();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction checkRootConstraints(el) {\r\n\t\t\t\t\t\t\tif (el.tag === 'slot' || el.tag === 'template') {\r\n\t\t\t\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\t\t\t\"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\r\n\t\t\t\t\t\t\t\t\t'contain multiple nodes.',\r\n\t\t\t\t\t\t\t\t\t{ start: el.start }\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (el.attrsMap.hasOwnProperty('v-for')) {\r\n\t\t\t\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\t\t\t'Cannot use v-for on stateful component root element because ' +\r\n\t\t\t\t\t\t\t\t\t'it renders multiple elements.',\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['v-for']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tparseHTML(template, {\r\n\t\t\t\t\t\t\twarn: warn$1,\r\n\t\t\t\t\t\t\texpectHTML: options.expectHTML,\r\n\t\t\t\t\t\t\tisUnaryTag: options.isUnaryTag,\r\n\t\t\t\t\t\t\tcanBeLeftOpenTag: options.canBeLeftOpenTag,\r\n\t\t\t\t\t\t\tshouldDecodeNewlines: options.shouldDecodeNewlines,\r\n\t\t\t\t\t\t\tshouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\r\n\t\t\t\t\t\t\tshouldKeepComment: options.comments,\r\n\t\t\t\t\t\t\toutputSourceRange: options.outputSourceRange,\r\n\t\t\t\t\t\t\tstart: function start(tag, attrs, unary, start$1, end) {\r\n\t\t\t\t\t\t\t\t// check namespace.\r\n\t\t\t\t\t\t\t\t// inherit parent ns if there is one\r\n\t\t\t\t\t\t\t\tvar ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\r\n\r\n\t\t\t\t\t\t\t\t// handle IE svg bug\r\n\t\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t\tif (isIE && ns === 'svg') {\r\n\t\t\t\t\t\t\t\t\tattrs = guardIESVGBug(attrs);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar element = createASTElement(tag, attrs, currentParent);\r\n\t\t\t\t\t\t\t\tif (ns) {\r\n\t\t\t\t\t\t\t\t\telement.ns = ns;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\telement.start = start$1;\r\n\t\t\t\t\t\t\t\t\t\telement.end = end;\r\n\t\t\t\t\t\t\t\t\t\telement.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {\r\n\t\t\t\t\t\t\t\t\t\t\tcumulated[attr.name] = attr;\r\n\t\t\t\t\t\t\t\t\t\t\treturn cumulated\r\n\t\t\t\t\t\t\t\t\t\t}, {});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tattrs.forEach(function (attr) {\r\n\t\t\t\t\t\t\t\t\t\tif (invalidAttributeRE.test(attr.name)) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"Invalid dynamic argument expression: attribute names cannot contain \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"spaces, quotes, <, >, / or =.\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstart: attr.start + attr.name.indexOf(\"[\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tend: attr.start + attr.name.length\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (isForbiddenTag(element) && !isServerRendering()) {\r\n\t\t\t\t\t\t\t\t\telement.forbidden = true;\r\n\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t'Templates should only be responsible for mapping the state to the ' +\r\n\t\t\t\t\t\t\t\t\t\t'UI. Avoid placing tags with side-effects in your templates, such as ' +\r\n\t\t\t\t\t\t\t\t\t\t\"<\" + tag + \">\" + ', as they will not be parsed.',\r\n\t\t\t\t\t\t\t\t\t\t{ start: element.start }\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// apply pre-transforms\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < preTransforms.length; i++) {\r\n\t\t\t\t\t\t\t\t\telement = preTransforms[i](element, options) || element;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!inVPre) {\r\n\t\t\t\t\t\t\t\t\tprocessPre(element);\r\n\t\t\t\t\t\t\t\t\tif (element.pre) {\r\n\t\t\t\t\t\t\t\t\t\tinVPre = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (platformIsPreTag(element.tag)) {\r\n\t\t\t\t\t\t\t\t\tinPre = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (inVPre) {\r\n\t\t\t\t\t\t\t\t\tprocessRawAttrs(element);\r\n\t\t\t\t\t\t\t\t} else if (!element.processed) {\r\n\t\t\t\t\t\t\t\t\t// structural directives\r\n\t\t\t\t\t\t\t\t\tprocessFor(element);\r\n\t\t\t\t\t\t\t\t\tprocessIf(element);\r\n\t\t\t\t\t\t\t\t\tprocessOnce(element);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!root) {\r\n\t\t\t\t\t\t\t\t\troot = element;\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tcheckRootConstraints(root);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!unary) {\r\n\t\t\t\t\t\t\t\t\tcurrentParent = element;\r\n\t\t\t\t\t\t\t\t\tstack.push(element);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcloseElement(element);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tend: function end(tag, start, end$1) {\r\n\t\t\t\t\t\t\t\tvar element = stack[stack.length - 1];\r\n\t\t\t\t\t\t\t\t// pop stack\r\n\t\t\t\t\t\t\t\tstack.length -= 1;\r\n\t\t\t\t\t\t\t\tcurrentParent = stack[stack.length - 1];\r\n\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\telement.end = end$1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcloseElement(element);\r\n\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\tchars: function chars(text, start, end) {\r\n\t\t\t\t\t\t\t\tif (!currentParent) {\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tif (text === template) {\r\n\t\t\t\t\t\t\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\t\t\t\t\t\t'Component template requires a root element, rather than just text.',\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ start: start }\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t} else if ((text = text.trim())) {\r\n\t\t\t\t\t\t\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\"text \\\"\" + text + \"\\\" outside root element will be ignored.\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\t{ start: start }\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// IE textarea placeholder bug\r\n\t\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t\tif (isIE &&\r\n\t\t\t\t\t\t\t\t\tcurrentParent.tag === 'textarea' &&\r\n\t\t\t\t\t\t\t\t\tcurrentParent.attrsMap.placeholder === text\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar children = currentParent.children;\r\n\t\t\t\t\t\t\t\tif (inPre || text.trim()) {\r\n\t\t\t\t\t\t\t\t\ttext = isTextTag(currentParent) ? text : decodeHTMLCached(text);\r\n\t\t\t\t\t\t\t\t} else if (!children.length) {\r\n\t\t\t\t\t\t\t\t\t// remove the whitespace-only node right after an opening tag\r\n\t\t\t\t\t\t\t\t\ttext = '';\r\n\t\t\t\t\t\t\t\t} else if (whitespaceOption) {\r\n\t\t\t\t\t\t\t\t\tif (whitespaceOption === 'condense') {\r\n\t\t\t\t\t\t\t\t\t\t// in condense mode, remove the whitespace node if it contains\r\n\t\t\t\t\t\t\t\t\t\t// line break, otherwise condense to a single space\r\n\t\t\t\t\t\t\t\t\t\ttext = lineBreakRE.test(text) ? '' : ' ';\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttext = ' ';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttext = preserveWhitespace ? ' ' : '';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (text) {\r\n\t\t\t\t\t\t\t\t\tif (!inPre && whitespaceOption === 'condense') {\r\n\t\t\t\t\t\t\t\t\t\t// condense consecutive whitespaces into single space\r\n\t\t\t\t\t\t\t\t\t\ttext = text.replace(whitespaceRE, ' ');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar res;\r\n\t\t\t\t\t\t\t\t\tvar child;\r\n\t\t\t\t\t\t\t\t\tif (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\r\n\t\t\t\t\t\t\t\t\t\tchild = {\r\n\t\t\t\t\t\t\t\t\t\t\ttype: 2,\r\n\t\t\t\t\t\t\t\t\t\t\texpression: res.expression,\r\n\t\t\t\t\t\t\t\t\t\t\ttokens: res.tokens,\r\n\t\t\t\t\t\t\t\t\t\t\ttext: text\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t} else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\r\n\t\t\t\t\t\t\t\t\t\tchild = {\r\n\t\t\t\t\t\t\t\t\t\t\ttype: 3,\r\n\t\t\t\t\t\t\t\t\t\t\ttext: text\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (child) {\r\n\t\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\t\tchild.start = start;\r\n\t\t\t\t\t\t\t\t\t\t\tchild.end = end;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tchildren.push(child);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tcomment: function comment(text, start, end) {\r\n\t\t\t\t\t\t\t\t// adding anything as a sibling to the root node is forbidden\r\n\t\t\t\t\t\t\t\t// comments should still be allowed, but ignored\r\n\t\t\t\t\t\t\t\tif (currentParent) {\r\n\t\t\t\t\t\t\t\t\tvar child = {\r\n\t\t\t\t\t\t\t\t\t\ttype: 3,\r\n\t\t\t\t\t\t\t\t\t\ttext: text,\r\n\t\t\t\t\t\t\t\t\t\tisComment: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\tchild.start = start;\r\n\t\t\t\t\t\t\t\t\t\tchild.end = end;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tcurrentParent.children.push(child);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn root\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processPre(el) {\r\n\t\t\t\t\t\tif (getAndRemoveAttr(el, 'v-pre') != null) {\r\n\t\t\t\t\t\t\tel.pre = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processRawAttrs(el) {\r\n\t\t\t\t\t\tvar list = el.attrsList;\r\n\t\t\t\t\t\tvar len = list.length;\r\n\t\t\t\t\t\tif (len) {\r\n\t\t\t\t\t\t\tvar attrs = el.attrs = new Array(len);\r\n\t\t\t\t\t\t\tfor (var i = 0; i < len; i++) {\r\n\t\t\t\t\t\t\t\tattrs[i] = {\r\n\t\t\t\t\t\t\t\t\tname: list[i].name,\r\n\t\t\t\t\t\t\t\t\tvalue: JSON.stringify(list[i].value)\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tif (list[i].start != null) {\r\n\t\t\t\t\t\t\t\t\tattrs[i].start = list[i].start;\r\n\t\t\t\t\t\t\t\t\tattrs[i].end = list[i].end;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (!el.pre) {\r\n\t\t\t\t\t\t\t// non root node in pre blocks with no attributes\r\n\t\t\t\t\t\t\tel.plain = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processElement(\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tprocessKey(element);\r\n\r\n\t\t\t\t\t\t// determine whether this is a plain element after\r\n\t\t\t\t\t\t// removing structural attributes\r\n\t\t\t\t\t\telement.plain = (\r\n\t\t\t\t\t\t\t!element.key &&\r\n\t\t\t\t\t\t\t!element.scopedSlots &&\r\n\t\t\t\t\t\t\t!element.attrsList.length\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tprocessRef(element);\r\n\t\t\t\t\t\tprocessSlotContent(element);\r\n\t\t\t\t\t\tprocessSlotOutlet(element);\r\n\t\t\t\t\t\tprocessComponent(element);\r\n\t\t\t\t\t\tfor (var i = 0; i < transforms.length; i++) {\r\n\t\t\t\t\t\t\telement = transforms[i](element, options) || element;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tprocessAttrs(element);\r\n\t\t\t\t\t\treturn element\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processKey(el) {\r\n\t\t\t\t\t\tvar exp = getBindingAttr(el, 'key');\r\n\t\t\t\t\t\tif (exp) {\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif (el.tag === 'template') {\r\n\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\"<template> cannot be keyed. Place the key on real elements instead.\",\r\n\t\t\t\t\t\t\t\t\t\tgetRawBindingAttr(el, 'key')\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (el.for) {\r\n\t\t\t\t\t\t\t\t\tvar iterator = el.iterator2 || el.iterator1;\r\n\t\t\t\t\t\t\t\t\tvar parent = el.parent;\r\n\t\t\t\t\t\t\t\t\tif (iterator && iterator === exp && parent && parent.tag === 'transition-group') {\r\n\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\"Do not use v-for index as key on <transition-group> children, \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\"this is the same as not using keys.\",\r\n\t\t\t\t\t\t\t\t\t\t\tgetRawBindingAttr(el, 'key'),\r\n\t\t\t\t\t\t\t\t\t\t\ttrue /* tip */\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel.key = exp;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processRef(el) {\r\n\t\t\t\t\t\tvar ref = getBindingAttr(el, 'ref');\r\n\t\t\t\t\t\tif (ref) {\r\n\t\t\t\t\t\t\tel.ref = ref;\r\n\t\t\t\t\t\t\tel.refInFor = checkInFor(el);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processFor(el) {\r\n\t\t\t\t\t\tvar exp;\r\n\t\t\t\t\t\tif ((exp = getAndRemoveAttr(el, 'v-for'))) {\r\n\t\t\t\t\t\t\tvar res = parseFor(exp);\r\n\t\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\t\textend(el, res);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t(\"Invalid v-for expression: \" + exp),\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['v-for']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\tfunction parseFor(exp) {\r\n\t\t\t\t\t\tvar inMatch = exp.match(forAliasRE);\r\n\t\t\t\t\t\tif (!inMatch) { return }\r\n\t\t\t\t\t\tvar res = {};\r\n\t\t\t\t\t\tres.for = inMatch[2].trim();\r\n\t\t\t\t\t\tvar alias = inMatch[1].trim().replace(stripParensRE, '');\r\n\t\t\t\t\t\tvar iteratorMatch = alias.match(forIteratorRE);\r\n\t\t\t\t\t\tif (iteratorMatch) {\r\n\t\t\t\t\t\t\tres.alias = alias.replace(forIteratorRE, '').trim();\r\n\t\t\t\t\t\t\tres.iterator1 = iteratorMatch[1].trim();\r\n\t\t\t\t\t\t\tif (iteratorMatch[2]) {\r\n\t\t\t\t\t\t\t\tres.iterator2 = iteratorMatch[2].trim();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tres.alias = alias;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processIf(el) {\r\n\t\t\t\t\t\tvar exp = getAndRemoveAttr(el, 'v-if');\r\n\t\t\t\t\t\tif (exp) {\r\n\t\t\t\t\t\t\tel.if = exp;\r\n\t\t\t\t\t\t\taddIfCondition(el, {\r\n\t\t\t\t\t\t\t\texp: exp,\r\n\t\t\t\t\t\t\t\tblock: el\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (getAndRemoveAttr(el, 'v-else') != null) {\r\n\t\t\t\t\t\t\t\tel.else = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar elseif = getAndRemoveAttr(el, 'v-else-if');\r\n\t\t\t\t\t\t\tif (elseif) {\r\n\t\t\t\t\t\t\t\tel.elseif = elseif;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processIfConditions(el, parent) {\r\n\t\t\t\t\t\tvar prev = findPrevElement(parent.children);\r\n\t\t\t\t\t\tif (prev && prev.if) {\r\n\t\t\t\t\t\t\taddIfCondition(prev, {\r\n\t\t\t\t\t\t\t\texp: el.elseif,\r\n\t\t\t\t\t\t\t\tblock: el\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\r\n\t\t\t\t\t\t\t\t\"used on element <\" + (el.tag) + \"> without corresponding v-if.\",\r\n\t\t\t\t\t\t\t\tel.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction findPrevElement(children) {\r\n\t\t\t\t\t\tvar i = children.length;\r\n\t\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\t\tif (children[i].type === 1) {\r\n\t\t\t\t\t\t\t\treturn children[i]\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (children[i].text !== ' ') {\r\n\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\r\n\t\t\t\t\t\t\t\t\t\t\"will be ignored.\",\r\n\t\t\t\t\t\t\t\t\t\tchildren[i]\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tchildren.pop();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addIfCondition(el, condition) {\r\n\t\t\t\t\t\tif (!el.ifConditions) {\r\n\t\t\t\t\t\t\tel.ifConditions = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tel.ifConditions.push(condition);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processOnce(el) {\r\n\t\t\t\t\t\tvar once$$1 = getAndRemoveAttr(el, 'v-once');\r\n\t\t\t\t\t\tif (once$$1 != null) {\r\n\t\t\t\t\t\t\tel.once = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// handle content being passed to a component as slot,\r\n\t\t\t\t\t// e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\r\n\t\t\t\t\tfunction processSlotContent(el) {\r\n\t\t\t\t\t\tvar slotScope;\r\n\t\t\t\t\t\tif (el.tag === 'template') {\r\n\t\t\t\t\t\t\tslotScope = getAndRemoveAttr(el, 'scope');\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\tif (slotScope) {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\r\n\t\t\t\t\t\t\t\t\t\"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\r\n\t\t\t\t\t\t\t\t\t\"can also be used on plain elements in addition to <template> to \" +\r\n\t\t\t\t\t\t\t\t\t\"denote scoped slots.\",\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['scope'],\r\n\t\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\r\n\t\t\t\t\t\t} else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\tif (el.attrsMap['v-for']) {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\r\n\t\t\t\t\t\t\t\t\t\"(v-for takes higher priority). Use a wrapper <template> for the \" +\r\n\t\t\t\t\t\t\t\t\t\"scoped slot to make it clearer.\",\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['slot-scope'],\r\n\t\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel.slotScope = slotScope;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// slot=\"xxx\"\r\n\t\t\t\t\t\tvar slotTarget = getBindingAttr(el, 'slot');\r\n\t\t\t\t\t\tif (slotTarget) {\r\n\t\t\t\t\t\t\tel.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\r\n\t\t\t\t\t\t\tel.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\r\n\t\t\t\t\t\t\t// preserve slot as an attribute for native shadow DOM compat\r\n\t\t\t\t\t\t\t// only for non-scoped slots.\r\n\t\t\t\t\t\t\tif (el.tag !== 'template' && !el.slotScope) {\r\n\t\t\t\t\t\t\t\taddAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// 2.6 v-slot syntax\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif (el.tag === 'template') {\r\n\t\t\t\t\t\t\t\t// v-slot on <template>\r\n\t\t\t\t\t\t\t\tvar slotBinding = getAndRemoveAttrByRegex(el, slotRE);\r\n\t\t\t\t\t\t\t\tif (slotBinding) {\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tif (el.slotTarget || el.slotScope) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"Unexpected mixed usage of different slot syntaxes.\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tel\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (el.parent && !maybeComponent(el.parent)) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"<template v-slot> can only appear at the root level inside \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"the receiving component\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tel\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar ref = getSlotName(slotBinding);\r\n\t\t\t\t\t\t\t\t\tvar name = ref.name;\r\n\t\t\t\t\t\t\t\t\tvar dynamic = ref.dynamic;\r\n\t\t\t\t\t\t\t\t\tel.slotTarget = name;\r\n\t\t\t\t\t\t\t\t\tel.slotTargetDynamic = dynamic;\r\n\t\t\t\t\t\t\t\t\tel.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// v-slot on component, denotes default slot\r\n\t\t\t\t\t\t\t\tvar slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);\r\n\t\t\t\t\t\t\t\tif (slotBinding$1) {\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tif (!maybeComponent(el)) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"v-slot can only be used on components or <template>.\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tslotBinding$1\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (el.slotScope || el.slotTarget) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"Unexpected mixed usage of different slot syntaxes.\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tel\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (el.scopedSlots) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"To avoid scope ambiguity, the default slot should also use \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"<template> syntax when there are other named slots.\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tslotBinding$1\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// add the component's children to its default slot\r\n\t\t\t\t\t\t\t\t\tvar slots = el.scopedSlots || (el.scopedSlots = {});\r\n\t\t\t\t\t\t\t\t\tvar ref$1 = getSlotName(slotBinding$1);\r\n\t\t\t\t\t\t\t\t\tvar name$1 = ref$1.name;\r\n\t\t\t\t\t\t\t\t\tvar dynamic$1 = ref$1.dynamic;\r\n\t\t\t\t\t\t\t\t\tvar slotContainer = slots[name$1] = createASTElement('template', [], el);\r\n\t\t\t\t\t\t\t\t\tslotContainer.slotTarget = name$1;\r\n\t\t\t\t\t\t\t\t\tslotContainer.slotTargetDynamic = dynamic$1;\r\n\t\t\t\t\t\t\t\t\tslotContainer.children = el.children.filter(function (c) {\r\n\t\t\t\t\t\t\t\t\t\tif (!c.slotScope) {\r\n\t\t\t\t\t\t\t\t\t\t\tc.parent = slotContainer;\r\n\t\t\t\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tslotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken;\r\n\t\t\t\t\t\t\t\t\t// remove children as they are returned from scopedSlots now\r\n\t\t\t\t\t\t\t\t\tel.children = [];\r\n\t\t\t\t\t\t\t\t\t// mark el non-plain so data gets generated\r\n\t\t\t\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getSlotName(binding) {\r\n\t\t\t\t\t\tvar name = binding.name.replace(slotRE, '');\r\n\t\t\t\t\t\tif (!name) {\r\n\t\t\t\t\t\t\tif (binding.name[0] !== '#') {\r\n\t\t\t\t\t\t\t\tname = 'default';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\"v-slot shorthand syntax requires a slot name.\",\r\n\t\t\t\t\t\t\t\t\tbinding\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn dynamicArgRE.test(name)\r\n\t\t\t\t\t\t\t// dynamic [name]\r\n\t\t\t\t\t\t\t? { name: name.slice(1, -1), dynamic: true }\r\n\t\t\t\t\t\t\t// static name\r\n\t\t\t\t\t\t\t: { name: (\"\\\"\" + name + \"\\\"\"), dynamic: false }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// handle <slot/> outlets\r\n\t\t\t\t\tfunction processSlotOutlet(el) {\r\n\t\t\t\t\t\tif (el.tag === 'slot') {\r\n\t\t\t\t\t\t\tel.slotName = getBindingAttr(el, 'name');\r\n\t\t\t\t\t\t\tif (el.key) {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\"`key` does not work on <slot> because slots are abstract outlets \" +\r\n\t\t\t\t\t\t\t\t\t\"and can possibly expand into multiple elements. \" +\r\n\t\t\t\t\t\t\t\t\t\"Use the key on a wrapping element instead.\",\r\n\t\t\t\t\t\t\t\t\tgetRawBindingAttr(el, 'key')\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processComponent(el) {\r\n\t\t\t\t\t\tvar binding;\r\n\t\t\t\t\t\tif ((binding = getBindingAttr(el, 'is'))) {\r\n\t\t\t\t\t\t\tel.component = binding;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (getAndRemoveAttr(el, 'inline-template') != null) {\r\n\t\t\t\t\t\t\tel.inlineTemplate = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction processAttrs(el) {\r\n\t\t\t\t\t\tvar list = el.attrsList;\r\n\t\t\t\t\t\tvar i, l, name, rawName, value, modifiers, syncGen, isDynamic;\r\n\t\t\t\t\t\tfor (i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\t\t\t\tname = rawName = list[i].name;\r\n\t\t\t\t\t\t\tvalue = list[i].value;\r\n\t\t\t\t\t\t\tif (dirRE.test(name)) {\r\n\t\t\t\t\t\t\t\t// mark element as dynamic\r\n\t\t\t\t\t\t\t\tel.hasBindings = true;\r\n\t\t\t\t\t\t\t\t// modifiers\r\n\t\t\t\t\t\t\t\tmodifiers = parseModifiers(name.replace(dirRE, ''));\r\n\t\t\t\t\t\t\t\t// support .foo shorthand syntax for the .prop modifier\r\n\t\t\t\t\t\t\t\tif (modifiers) {\r\n\t\t\t\t\t\t\t\t\tname = name.replace(modifierRE, '');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (bindRE.test(name)) { // v-bind\r\n\t\t\t\t\t\t\t\t\tname = name.replace(bindRE, '');\r\n\t\t\t\t\t\t\t\t\tvalue = parseFilters(value);\r\n\t\t\t\t\t\t\t\t\tisDynamic = dynamicArgRE.test(name);\r\n\t\t\t\t\t\t\t\t\tif (isDynamic) {\r\n\t\t\t\t\t\t\t\t\t\tname = name.slice(1, -1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\tvalue.trim().length === 0\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\t(\"The value for a v-bind expression cannot be empty. Found in \\\"v-bind:\" + name + \"\\\"\")\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (modifiers) {\r\n\t\t\t\t\t\t\t\t\t\tif (modifiers.prop && !isDynamic) {\r\n\t\t\t\t\t\t\t\t\t\t\tname = camelize(name);\r\n\t\t\t\t\t\t\t\t\t\t\tif (name === 'innerHtml') { name = 'innerHTML'; }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (modifiers.camel && !isDynamic) {\r\n\t\t\t\t\t\t\t\t\t\t\tname = camelize(name);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (modifiers.sync) {\r\n\t\t\t\t\t\t\t\t\t\t\tsyncGen = genAssignmentCode(value, \"$event\");\r\n\t\t\t\t\t\t\t\t\t\t\tif (!isDynamic) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\"update:\" + (camelize(name))),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twarn$1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlist[i]\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (hyphenate(name) !== camelize(name)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\"update:\" + (hyphenate(name))),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twarn$1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlist[i]\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// handler w/ dynamic event name\r\n\t\t\t\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\"\\\"update:\\\"+(\" + name + \")\"),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twarn$1,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlist[i],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue // dynamic\r\n\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif ((modifiers && modifiers.prop) || (\r\n\t\t\t\t\t\t\t\t\t\t!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\r\n\t\t\t\t\t\t\t\t\t)) {\r\n\t\t\t\t\t\t\t\t\t\taddProp(el, name, value, list[i], isDynamic);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\taddAttr(el, name, value, list[i], isDynamic);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else if (onRE.test(name)) { // v-on\r\n\t\t\t\t\t\t\t\t\tname = name.replace(onRE, '');\r\n\t\t\t\t\t\t\t\t\tisDynamic = dynamicArgRE.test(name);\r\n\t\t\t\t\t\t\t\t\tif (isDynamic) {\r\n\t\t\t\t\t\t\t\t\t\tname = name.slice(1, -1);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\taddHandler(el, name, value, modifiers, false, warn$1, list[i], isDynamic);\r\n\t\t\t\t\t\t\t\t} else { // normal directives\r\n\t\t\t\t\t\t\t\t\tname = name.replace(dirRE, '');\r\n\t\t\t\t\t\t\t\t\t// parse arg\r\n\t\t\t\t\t\t\t\t\tvar argMatch = name.match(argRE);\r\n\t\t\t\t\t\t\t\t\tvar arg = argMatch && argMatch[1];\r\n\t\t\t\t\t\t\t\t\tisDynamic = false;\r\n\t\t\t\t\t\t\t\t\tif (arg) {\r\n\t\t\t\t\t\t\t\t\t\tname = name.slice(0, -(arg.length + 1));\r\n\t\t\t\t\t\t\t\t\t\tif (dynamicArgRE.test(arg)) {\r\n\t\t\t\t\t\t\t\t\t\t\targ = arg.slice(1, -1);\r\n\t\t\t\t\t\t\t\t\t\t\tisDynamic = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\taddDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\r\n\t\t\t\t\t\t\t\t\tif (name === 'model') {\r\n\t\t\t\t\t\t\t\t\t\tcheckForAliasModel(el, value);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// literal attribute\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvar res = parseText(value, delimiters);\r\n\t\t\t\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\t\tname + \"=\\\"\" + value + \"\\\": \" +\r\n\t\t\t\t\t\t\t\t\t\t\t'Interpolation inside attributes has been removed. ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'Use v-bind or the colon shorthand instead. For example, ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.',\r\n\t\t\t\t\t\t\t\t\t\t\tlist[i]\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\taddAttr(el, name, JSON.stringify(value), list[i]);\r\n\t\t\t\t\t\t\t\t// #6887 firefox doesn't update muted state if set via attribute\r\n\t\t\t\t\t\t\t\t// even immediately after element creation\r\n\t\t\t\t\t\t\t\tif (!el.component &&\r\n\t\t\t\t\t\t\t\t\tname === 'muted' &&\r\n\t\t\t\t\t\t\t\t\tplatformMustUseProp(el.tag, el.attrsMap.type, name)) {\r\n\t\t\t\t\t\t\t\t\taddProp(el, name, 'true', list[i]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkInFor(el) {\r\n\t\t\t\t\t\tvar parent = el;\r\n\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\tif (parent.for !== undefined) {\r\n\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction parseModifiers(name) {\r\n\t\t\t\t\t\tvar match = name.match(modifierRE);\r\n\t\t\t\t\t\tif (match) {\r\n\t\t\t\t\t\t\tvar ret = {};\r\n\t\t\t\t\t\t\tmatch.forEach(function (m) { ret[m.slice(1)] = true; });\r\n\t\t\t\t\t\t\treturn ret\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction makeAttrsMap(attrs) {\r\n\t\t\t\t\t\tvar map = {};\r\n\t\t\t\t\t\tfor (var i = 0, l = attrs.length; i < l; i++) {\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\tmap[attrs[i].name] && !isIE && !isEdge\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\twarn$1('duplicate attribute: ' + attrs[i].name, attrs[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tmap[attrs[i].name] = attrs[i].value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn map\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// for script (e.g. type=\"x/template\") or style, do not decode content\r\n\t\t\t\t\tfunction isTextTag(el) {\r\n\t\t\t\t\t\treturn el.tag === 'script' || el.tag === 'style'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isForbiddenTag(el) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tel.tag === 'style' ||\r\n\t\t\t\t\t\t\t(el.tag === 'script' && (\r\n\t\t\t\t\t\t\t\t!el.attrsMap.type ||\r\n\t\t\t\t\t\t\t\tel.attrsMap.type === 'text/javascript'\r\n\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar ieNSBug = /^xmlns:NS\\d+/;\r\n\t\t\t\t\tvar ieNSPrefix = /^NS\\d+:/;\r\n\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tfunction guardIESVGBug(attrs) {\r\n\t\t\t\t\t\tvar res = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < attrs.length; i++) {\r\n\t\t\t\t\t\t\tvar attr = attrs[i];\r\n\t\t\t\t\t\t\tif (!ieNSBug.test(attr.name)) {\r\n\t\t\t\t\t\t\t\tattr.name = attr.name.replace(ieNSPrefix, '');\r\n\t\t\t\t\t\t\t\tres.push(attr);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkForAliasModel(el, value) {\r\n\t\t\t\t\t\tvar _el = el;\r\n\t\t\t\t\t\twhile (_el) {\r\n\t\t\t\t\t\t\tif (_el.for && _el.alias === value) {\r\n\t\t\t\t\t\t\t\twarn$1(\r\n\t\t\t\t\t\t\t\t\t\"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\r\n\t\t\t\t\t\t\t\t\t\"You are binding v-model directly to a v-for iteration alias. \" +\r\n\t\t\t\t\t\t\t\t\t\"This will not be able to modify the v-for source array because \" +\r\n\t\t\t\t\t\t\t\t\t\"writing to the alias is like modifying a function local variable. \" +\r\n\t\t\t\t\t\t\t\t\t\"Consider using an array of objects and use v-model on an object property instead.\",\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['v-model']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_el = _el.parent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction preTransformNode(el, options) {\r\n\t\t\t\t\t\tif (el.tag === 'input') {\r\n\t\t\t\t\t\t\tvar map = el.attrsMap;\r\n\t\t\t\t\t\t\tif (!map['v-model']) {\r\n\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar typeBinding;\r\n\t\t\t\t\t\t\tif (map[':type'] || map['v-bind:type']) {\r\n\t\t\t\t\t\t\t\ttypeBinding = getBindingAttr(el, 'type');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!map.type && !typeBinding && map['v-bind']) {\r\n\t\t\t\t\t\t\t\ttypeBinding = \"(\" + (map['v-bind']) + \").type\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (typeBinding) {\r\n\t\t\t\t\t\t\t\tvar ifCondition = getAndRemoveAttr(el, 'v-if', true);\r\n\t\t\t\t\t\t\t\tvar ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\r\n\t\t\t\t\t\t\t\tvar hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\r\n\t\t\t\t\t\t\t\tvar elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\r\n\t\t\t\t\t\t\t\t// 1. checkbox\r\n\t\t\t\t\t\t\t\tvar branch0 = cloneASTElement(el);\r\n\t\t\t\t\t\t\t\t// process for on the main node\r\n\t\t\t\t\t\t\t\tprocessFor(branch0);\r\n\t\t\t\t\t\t\t\taddRawAttr(branch0, 'type', 'checkbox');\r\n\t\t\t\t\t\t\t\tprocessElement(branch0, options);\r\n\t\t\t\t\t\t\t\tbranch0.processed = true; // prevent it from double-processed\r\n\t\t\t\t\t\t\t\tbranch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\r\n\t\t\t\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\t\t\t\texp: branch0.if,\r\n\t\t\t\t\t\t\t\t\tblock: branch0\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t// 2. add radio else-if condition\r\n\t\t\t\t\t\t\t\tvar branch1 = cloneASTElement(el);\r\n\t\t\t\t\t\t\t\tgetAndRemoveAttr(branch1, 'v-for', true);\r\n\t\t\t\t\t\t\t\taddRawAttr(branch1, 'type', 'radio');\r\n\t\t\t\t\t\t\t\tprocessElement(branch1, options);\r\n\t\t\t\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\t\t\t\texp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\r\n\t\t\t\t\t\t\t\t\tblock: branch1\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t// 3. other\r\n\t\t\t\t\t\t\t\tvar branch2 = cloneASTElement(el);\r\n\t\t\t\t\t\t\t\tgetAndRemoveAttr(branch2, 'v-for', true);\r\n\t\t\t\t\t\t\t\taddRawAttr(branch2, ':type', typeBinding);\r\n\t\t\t\t\t\t\t\tprocessElement(branch2, options);\r\n\t\t\t\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\t\t\t\texp: ifCondition,\r\n\t\t\t\t\t\t\t\t\tblock: branch2\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tif (hasElse) {\r\n\t\t\t\t\t\t\t\t\tbranch0.else = true;\r\n\t\t\t\t\t\t\t\t} else if (elseIfCondition) {\r\n\t\t\t\t\t\t\t\t\tbranch0.elseif = elseIfCondition;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn branch0\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction cloneASTElement(el) {\r\n\t\t\t\t\t\treturn createASTElement(el.tag, el.attrsList.slice(), el.parent)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar model = {\r\n\t\t\t\t\t\tpreTransformNode: preTransformNode\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar modules = [\r\n\t\t\t\t\t\tklass,\r\n\t\t\t\t\t\tstyle,\r\n\t\t\t\t\t\tmodel\r\n\t\t\t\t\t];\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar warn$2;\r\n\r\n\t\t\t\t\t// in some cases, the event used has to be determined at runtime\r\n\t\t\t\t\t// so we used some reserved tokens during compile.\r\n\t\t\t\t\tvar RANGE_TOKEN = '__r';\r\n\r\n\t\t\t\t\tfunction model$1(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tdir,\r\n\t\t\t\t\t\t_warn\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\twarn$2 = _warn;\r\n\t\t\t\t\t\tvar value = dir.value;\r\n\t\t\t\t\t\tvar modifiers = dir.modifiers;\r\n\t\t\t\t\t\tvar tag = el.tag;\r\n\t\t\t\t\t\tvar type = el.attrsMap.type;\r\n\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t// inputs with type=\"file\" are read only and setting the input's\r\n\t\t\t\t\t\t\t// value will throw an error.\r\n\t\t\t\t\t\t\tif (tag === 'input' && type === 'file') {\r\n\t\t\t\t\t\t\t\twarn$2(\r\n\t\t\t\t\t\t\t\t\t\"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\r\n\t\t\t\t\t\t\t\t\t\"File inputs are read only. Use a v-on:change listener instead.\",\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['v-model']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (el.component) {\r\n\t\t\t\t\t\t\tgenComponentModel(el, value, modifiers);\r\n\t\t\t\t\t\t\t// component v-model doesn't need extra runtime\r\n\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t} else if (tag === 'select') {\r\n\t\t\t\t\t\t\tgenSelect(el, value, modifiers);\r\n\t\t\t\t\t\t} else if (tag === 'input' && type === 'checkbox') {\r\n\t\t\t\t\t\t\tgenCheckboxModel(el, value, modifiers);\r\n\t\t\t\t\t\t} else if (tag === 'input' && type === 'radio') {\r\n\t\t\t\t\t\t\tgenRadioModel(el, value, modifiers);\r\n\t\t\t\t\t\t} else if (tag === 'input' || tag === 'textarea') {\r\n\t\t\t\t\t\t\tgenDefaultModel(el, value, modifiers);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tgenComponentModel(el, value, modifiers);\r\n\t\t\t\t\t\t\t// component v-model doesn't need extra runtime\r\n\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// ensure runtime directive metadata\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genCheckboxModel(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\t\t\t\tvar valueBinding = getBindingAttr(el, 'value') || 'null';\r\n\t\t\t\t\t\tvar trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\r\n\t\t\t\t\t\tvar falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\r\n\t\t\t\t\t\taddProp(el, 'checked',\r\n\t\t\t\t\t\t\t\"Array.isArray(\" + value + \")\" +\r\n\t\t\t\t\t\t\t\"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\r\n\t\t\t\t\t\t\t\ttrueValueBinding === 'true'\r\n\t\t\t\t\t\t\t\t\t? (\":(\" + value + \")\")\r\n\t\t\t\t\t\t\t\t\t: (\":_q(\" + value + \",\" + trueValueBinding + \")\")\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\taddHandler(el, 'change',\r\n\t\t\t\t\t\t\t\"var $$a=\" + value + \",\" +\r\n\t\t\t\t\t\t\t'$$el=$event.target,' +\r\n\t\t\t\t\t\t\t\"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\r\n\t\t\t\t\t\t\t'if(Array.isArray($$a)){' +\r\n\t\t\t\t\t\t\t\"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\r\n\t\t\t\t\t\t\t'$$i=_i($$a,$$v);' +\r\n\t\t\t\t\t\t\t\"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\r\n\t\t\t\t\t\t\t\"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\r\n\t\t\t\t\t\t\t\"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\r\n\t\t\t\t\t\t\tnull, true\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genRadioModel(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\t\t\t\tvar valueBinding = getBindingAttr(el, 'value') || 'null';\r\n\t\t\t\t\t\tvalueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\r\n\t\t\t\t\t\taddProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\r\n\t\t\t\t\t\taddHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genSelect(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\t\t\t\tvar selectedVal = \"Array.prototype.filter\" +\r\n\t\t\t\t\t\t\t\".call($event.target.options,function(o){return o.selected})\" +\r\n\t\t\t\t\t\t\t\".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\r\n\t\t\t\t\t\t\t\"return \" + (number ? '_n(val)' : 'val') + \"})\";\r\n\r\n\t\t\t\t\t\tvar assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\r\n\t\t\t\t\t\tvar code = \"var $$selectedVal = \" + selectedVal + \";\";\r\n\t\t\t\t\t\tcode = code + \" \" + (genAssignmentCode(value, assignment));\r\n\t\t\t\t\t\taddHandler(el, 'change', code, null, true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genDefaultModel(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\tmodifiers\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar type = el.attrsMap.type;\r\n\r\n\t\t\t\t\t\t// warn if v-bind:value conflicts with v-model\r\n\t\t\t\t\t\t// except for inputs with v-bind:type\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvar value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\r\n\t\t\t\t\t\t\tvar typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\r\n\t\t\t\t\t\t\tif (value$1 && !typeBinding) {\r\n\t\t\t\t\t\t\t\tvar binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\r\n\t\t\t\t\t\t\t\twarn$2(\r\n\t\t\t\t\t\t\t\t\tbinding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\r\n\t\t\t\t\t\t\t\t\t'because the latter already expands to a value binding internally',\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap[binding]\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar ref = modifiers || {};\r\n\t\t\t\t\t\tvar lazy = ref.lazy;\r\n\t\t\t\t\t\tvar number = ref.number;\r\n\t\t\t\t\t\tvar trim = ref.trim;\r\n\t\t\t\t\t\tvar needCompositionGuard = !lazy && type !== 'range';\r\n\t\t\t\t\t\tvar event = lazy\r\n\t\t\t\t\t\t\t? 'change'\r\n\t\t\t\t\t\t\t: type === 'range'\r\n\t\t\t\t\t\t\t\t? RANGE_TOKEN\r\n\t\t\t\t\t\t\t\t: 'input';\r\n\r\n\t\t\t\t\t\tvar valueExpression = '$event.target.value';\r\n\t\t\t\t\t\tif (trim) {\r\n\t\t\t\t\t\t\tvalueExpression = \"$event.target.value.trim()\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (number) {\r\n\t\t\t\t\t\t\tvalueExpression = \"_n(\" + valueExpression + \")\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar code = genAssignmentCode(value, valueExpression);\r\n\t\t\t\t\t\tif (needCompositionGuard) {\r\n\t\t\t\t\t\t\tcode = \"if($event.target.composing)return;\" + code;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taddProp(el, 'value', (\"(\" + value + \")\"));\r\n\t\t\t\t\t\taddHandler(el, event, code, null, true);\r\n\t\t\t\t\t\tif (trim || number) {\r\n\t\t\t\t\t\t\taddHandler(el, 'blur', '$forceUpdate()');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction text(el, dir) {\r\n\t\t\t\t\t\tif (dir.value) {\r\n\t\t\t\t\t\t\taddProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"), dir);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction html(el, dir) {\r\n\t\t\t\t\t\tif (dir.value) {\r\n\t\t\t\t\t\t\taddProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"), dir);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar directives = {\r\n\t\t\t\t\t\tmodel: model$1,\r\n\t\t\t\t\t\ttext: text,\r\n\t\t\t\t\t\thtml: html\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar baseOptions = {\r\n\t\t\t\t\t\texpectHTML: true,\r\n\t\t\t\t\t\tmodules: modules,\r\n\t\t\t\t\t\tdirectives: directives,\r\n\t\t\t\t\t\tisPreTag: isPreTag,\r\n\t\t\t\t\t\tisUnaryTag: isUnaryTag,\r\n\t\t\t\t\t\tmustUseProp: mustUseProp,\r\n\t\t\t\t\t\tcanBeLeftOpenTag: canBeLeftOpenTag,\r\n\t\t\t\t\t\tisReservedTag: isReservedTag,\r\n\t\t\t\t\t\tgetTagNamespace: getTagNamespace,\r\n\t\t\t\t\t\tstaticKeys: genStaticKeys(modules)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar isStaticKey;\r\n\t\t\t\t\tvar isPlatformReservedTag;\r\n\r\n\t\t\t\t\tvar genStaticKeysCached = cached(genStaticKeys$1);\r\n\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * Goal of the optimizer: walk the generated template AST tree\r\n\t\t\t\t\t * and detect sub-trees that are purely static, i.e. parts of\r\n\t\t\t\t\t * the DOM that never needs to change.\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * Once we detect these sub-trees, we can:\r\n\t\t\t\t\t *\r\n\t\t\t\t\t * 1. Hoist them into constants, so that we no longer need to\r\n\t\t\t\t\t *    create fresh nodes for them on each re-render;\r\n\t\t\t\t\t * 2. Completely skip them in the patching process.\r\n\t\t\t\t\t */\r\n\t\t\t\t\tfunction optimize(root, options) {\r\n\t\t\t\t\t\tif (!root) { return }\r\n\t\t\t\t\t\tisStaticKey = genStaticKeysCached(options.staticKeys || '');\r\n\t\t\t\t\t\tisPlatformReservedTag = options.isReservedTag || no;\r\n\t\t\t\t\t\t// first pass: mark all non-static nodes.\r\n\t\t\t\t\t\tmarkStatic(root);\r\n\t\t\t\t\t\t// second pass: mark static roots.\r\n\t\t\t\t\t\tmarkStaticRoots(root, false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genStaticKeys$1(keys) {\r\n\t\t\t\t\t\treturn makeMap(\r\n\t\t\t\t\t\t\t'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\r\n\t\t\t\t\t\t\t(keys ? ',' + keys : '')\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction markStatic(node) {\r\n\t\t\t\t\t\tnode.static = isStatic(node);\r\n\t\t\t\t\t\tif (node.type === 1) {\r\n\t\t\t\t\t\t\t// do not make component slot content static. this avoids\r\n\t\t\t\t\t\t\t// 1. components not able to mutate slot nodes\r\n\t\t\t\t\t\t\t// 2. static slot content fails for hot-reloading\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!isPlatformReservedTag(node.tag) &&\r\n\t\t\t\t\t\t\t\tnode.tag !== 'slot' &&\r\n\t\t\t\t\t\t\t\tnode.attrsMap['inline-template'] == null\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor (var i = 0, l = node.children.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tvar child = node.children[i];\r\n\t\t\t\t\t\t\t\tmarkStatic(child);\r\n\t\t\t\t\t\t\t\tif (!child.static) {\r\n\t\t\t\t\t\t\t\t\tnode.static = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.ifConditions) {\r\n\t\t\t\t\t\t\t\tfor (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\r\n\t\t\t\t\t\t\t\t\tvar block = node.ifConditions[i$1].block;\r\n\t\t\t\t\t\t\t\t\tmarkStatic(block);\r\n\t\t\t\t\t\t\t\t\tif (!block.static) {\r\n\t\t\t\t\t\t\t\t\t\tnode.static = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction markStaticRoots(node, isInFor) {\r\n\t\t\t\t\t\tif (node.type === 1) {\r\n\t\t\t\t\t\t\tif (node.static || node.once) {\r\n\t\t\t\t\t\t\t\tnode.staticInFor = isInFor;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// For a node to qualify as a static root, it should have children that\r\n\t\t\t\t\t\t\t// are not just static text. Otherwise the cost of hoisting out will\r\n\t\t\t\t\t\t\t// outweigh the benefits and it's better off to just always render it fresh.\r\n\t\t\t\t\t\t\tif (node.static && node.children.length && !(\r\n\t\t\t\t\t\t\t\tnode.children.length === 1 &&\r\n\t\t\t\t\t\t\t\tnode.children[0].type === 3\r\n\t\t\t\t\t\t\t)) {\r\n\t\t\t\t\t\t\t\tnode.staticRoot = true;\r\n\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tnode.staticRoot = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.children) {\r\n\t\t\t\t\t\t\t\tfor (var i = 0, l = node.children.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\t\tmarkStaticRoots(node.children[i], isInFor || !!node.for);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.ifConditions) {\r\n\t\t\t\t\t\t\t\tfor (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\r\n\t\t\t\t\t\t\t\t\tmarkStaticRoots(node.ifConditions[i$1].block, isInFor);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isStatic(node) {\r\n\t\t\t\t\t\tif (node.type === 2) { // expression\r\n\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (node.type === 3) { // text\r\n\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn !!(node.pre || (\r\n\t\t\t\t\t\t\t!node.hasBindings && // no dynamic bindings\r\n\t\t\t\t\t\t\t!node.if && !node.for && // not v-if or v-for or v-else\r\n\t\t\t\t\t\t\t!isBuiltInTag(node.tag) && // not a built-in\r\n\t\t\t\t\t\t\tisPlatformReservedTag(node.tag) && // not a component\r\n\t\t\t\t\t\t\t!isDirectChildOfTemplateFor(node) &&\r\n\t\t\t\t\t\t\tObject.keys(node).every(isStaticKey)\r\n\t\t\t\t\t\t))\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isDirectChildOfTemplateFor(node) {\r\n\t\t\t\t\t\twhile (node.parent) {\r\n\t\t\t\t\t\t\tnode = node.parent;\r\n\t\t\t\t\t\t\tif (node.tag !== 'template') {\r\n\t\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.for) {\r\n\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\r\n\t\t\t\t\tvar fnInvokeRE = /\\([^)]*?\\);*$/;\r\n\t\t\t\t\tvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\r\n\r\n\t\t\t\t\t// KeyboardEvent.keyCode aliases\r\n\t\t\t\t\tvar keyCodes = {\r\n\t\t\t\t\t\tesc: 27,\r\n\t\t\t\t\t\ttab: 9,\r\n\t\t\t\t\t\tenter: 13,\r\n\t\t\t\t\t\tspace: 32,\r\n\t\t\t\t\t\tup: 38,\r\n\t\t\t\t\t\tleft: 37,\r\n\t\t\t\t\t\tright: 39,\r\n\t\t\t\t\t\tdown: 40,\r\n\t\t\t\t\t\t'delete': [8, 46]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// KeyboardEvent.key aliases\r\n\t\t\t\t\tvar keyNames = {\r\n\t\t\t\t\t\t// #7880: IE11 and Edge use `Esc` for Escape key name.\r\n\t\t\t\t\t\tesc: ['Esc', 'Escape'],\r\n\t\t\t\t\t\ttab: 'Tab',\r\n\t\t\t\t\t\tenter: 'Enter',\r\n\t\t\t\t\t\t// #9112: IE11 uses `Spacebar` for Space key name.\r\n\t\t\t\t\t\tspace: [' ', 'Spacebar'],\r\n\t\t\t\t\t\t// #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\r\n\t\t\t\t\t\tup: ['Up', 'ArrowUp'],\r\n\t\t\t\t\t\tleft: ['Left', 'ArrowLeft'],\r\n\t\t\t\t\t\tright: ['Right', 'ArrowRight'],\r\n\t\t\t\t\t\tdown: ['Down', 'ArrowDown'],\r\n\t\t\t\t\t\t// #9112: IE11 uses `Del` for Delete key name.\r\n\t\t\t\t\t\t'delete': ['Backspace', 'Delete', 'Del']\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// #4868: modifiers that prevent the execution of the listener\r\n\t\t\t\t\t// need to explicitly return null so that we can determine whether to remove\r\n\t\t\t\t\t// the listener for .once\r\n\t\t\t\t\tvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\r\n\r\n\t\t\t\t\tvar modifierCode = {\r\n\t\t\t\t\t\tstop: '$event.stopPropagation();',\r\n\t\t\t\t\t\tprevent: '$event.preventDefault();',\r\n\t\t\t\t\t\tself: genGuard(\"$event.target !== $event.currentTarget\"),\r\n\t\t\t\t\t\tctrl: genGuard(\"!$event.ctrlKey\"),\r\n\t\t\t\t\t\tshift: genGuard(\"!$event.shiftKey\"),\r\n\t\t\t\t\t\talt: genGuard(\"!$event.altKey\"),\r\n\t\t\t\t\t\tmeta: genGuard(\"!$event.metaKey\"),\r\n\t\t\t\t\t\tleft: genGuard(\"'button' in $event && $event.button !== 0\"),\r\n\t\t\t\t\t\tmiddle: genGuard(\"'button' in $event && $event.button !== 1\"),\r\n\t\t\t\t\t\tright: genGuard(\"'button' in $event && $event.button !== 2\")\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction genHandlers(\r\n\t\t\t\t\t\tevents,\r\n\t\t\t\t\t\tisNative\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar prefix = isNative ? 'nativeOn:' : 'on:';\r\n\t\t\t\t\t\tvar staticHandlers = \"\";\r\n\t\t\t\t\t\tvar dynamicHandlers = \"\";\r\n\t\t\t\t\t\tfor (var name in events) {\r\n\t\t\t\t\t\t\tvar handlerCode = genHandler(events[name]);\r\n\t\t\t\t\t\t\tif (events[name] && events[name].dynamic) {\r\n\t\t\t\t\t\t\t\tdynamicHandlers += name + \",\" + handlerCode + \",\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstaticHandlers += \"\\\"\" + name + \"\\\":\" + handlerCode + \",\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstaticHandlers = \"{\" + (staticHandlers.slice(0, -1)) + \"}\";\r\n\t\t\t\t\t\tif (dynamicHandlers) {\r\n\t\t\t\t\t\t\treturn prefix + \"_d(\" + staticHandlers + \",[\" + (dynamicHandlers.slice(0, -1)) + \"])\"\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn prefix + staticHandlers\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genHandler(handler) {\r\n\t\t\t\t\t\tif (!handler) {\r\n\t\t\t\t\t\t\treturn 'function(){}'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Array.isArray(handler)) {\r\n\t\t\t\t\t\t\treturn (\"[\" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + \"]\")\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar isMethodPath = simplePathRE.test(handler.value);\r\n\t\t\t\t\t\tvar isFunctionExpression = fnExpRE.test(handler.value);\r\n\t\t\t\t\t\tvar isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\r\n\r\n\t\t\t\t\t\tif (!handler.modifiers) {\r\n\t\t\t\t\t\t\tif (isMethodPath || isFunctionExpression) {\r\n\t\t\t\t\t\t\t\treturn handler.value\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn (\"function($event){\" + (isFunctionInvocation ? (\"return \" + (handler.value)) : handler.value) + \"}\") // inline statement\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar code = '';\r\n\t\t\t\t\t\t\tvar genModifierCode = '';\r\n\t\t\t\t\t\t\tvar keys = [];\r\n\t\t\t\t\t\t\tfor (var key in handler.modifiers) {\r\n\t\t\t\t\t\t\t\tif (modifierCode[key]) {\r\n\t\t\t\t\t\t\t\t\tgenModifierCode += modifierCode[key];\r\n\t\t\t\t\t\t\t\t\t// left/right\r\n\t\t\t\t\t\t\t\t\tif (keyCodes[key]) {\r\n\t\t\t\t\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else if (key === 'exact') {\r\n\t\t\t\t\t\t\t\t\tvar modifiers = (handler.modifiers);\r\n\t\t\t\t\t\t\t\t\tgenModifierCode += genGuard(\r\n\t\t\t\t\t\t\t\t\t\t['ctrl', 'shift', 'alt', 'meta']\r\n\t\t\t\t\t\t\t\t\t\t\t.filter(function (keyModifier) { return !modifiers[keyModifier]; })\r\n\t\t\t\t\t\t\t\t\t\t\t.map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\r\n\t\t\t\t\t\t\t\t\t\t\t.join('||')\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (keys.length) {\r\n\t\t\t\t\t\t\t\tcode += genKeyFilter(keys);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// Make sure modifiers like prevent and stop get executed after key filtering\r\n\t\t\t\t\t\t\tif (genModifierCode) {\r\n\t\t\t\t\t\t\t\tcode += genModifierCode;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar handlerCode = isMethodPath\r\n\t\t\t\t\t\t\t\t? (\"return \" + (handler.value) + \".apply(null, arguments)\")\r\n\t\t\t\t\t\t\t\t: isFunctionExpression\r\n\t\t\t\t\t\t\t\t\t? (\"return (\" + (handler.value) + \").apply(null, arguments)\")\r\n\t\t\t\t\t\t\t\t\t: isFunctionInvocation\r\n\t\t\t\t\t\t\t\t\t\t? (\"return \" + (handler.value))\r\n\t\t\t\t\t\t\t\t\t\t: handler.value;\r\n\t\t\t\t\t\t\treturn (\"function($event){\" + code + handlerCode + \"}\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genKeyFilter(keys) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t// make sure the key filters only apply to KeyboardEvents\r\n\t\t\t\t\t\t\t// #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\r\n\t\t\t\t\t\t\t// key events that do not have keyCode property...\r\n\t\t\t\t\t\t\t\"if(!$event.type.indexOf('key')&&\" +\r\n\t\t\t\t\t\t\t(keys.map(genFilterCode).join('&&')) + \")return null;\"\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genFilterCode(key) {\r\n\t\t\t\t\t\tvar keyVal = parseInt(key, 10);\r\n\t\t\t\t\t\tif (keyVal) {\r\n\t\t\t\t\t\t\treturn (\"$event.keyCode!==\" + keyVal)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar keyCode = keyCodes[key];\r\n\t\t\t\t\t\tvar keyName = keyNames[key];\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\"_k($event.keyCode,\" +\r\n\t\t\t\t\t\t\t(JSON.stringify(key)) + \",\" +\r\n\t\t\t\t\t\t\t(JSON.stringify(keyCode)) + \",\" +\r\n\t\t\t\t\t\t\t\"$event.key,\" +\r\n\t\t\t\t\t\t\t\"\" + (JSON.stringify(keyName)) +\r\n\t\t\t\t\t\t\t\")\"\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction on(el, dir) {\r\n\t\t\t\t\t\tif (dir.modifiers) {\r\n\t\t\t\t\t\t\twarn(\"v-on without argument does not support modifiers.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tel.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction bind$1(el, dir) {\r\n\t\t\t\t\t\tel.wrapData = function (code) {\r\n\t\t\t\t\t\t\treturn (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar baseDirectives = {\r\n\t\t\t\t\t\ton: on,\r\n\t\t\t\t\t\tbind: bind$1,\r\n\t\t\t\t\t\tcloak: noop\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar CodegenState = function CodegenState(options) {\r\n\t\t\t\t\t\tthis.options = options;\r\n\t\t\t\t\t\tthis.warn = options.warn || baseWarn;\r\n\t\t\t\t\t\tthis.transforms = pluckModuleFunction(options.modules, 'transformCode');\r\n\t\t\t\t\t\tthis.dataGenFns = pluckModuleFunction(options.modules, 'genData');\r\n\t\t\t\t\t\tthis.directives = extend(extend({}, baseDirectives), options.directives);\r\n\t\t\t\t\t\tvar isReservedTag = options.isReservedTag || no;\r\n\t\t\t\t\t\tthis.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };\r\n\t\t\t\t\t\tthis.onceId = 0;\r\n\t\t\t\t\t\tthis.staticRenderFns = [];\r\n\t\t\t\t\t\tthis.pre = false;\r\n\t\t\t\t\t};\r\n\r\n\r\n\r\n\t\t\t\t\tfunction generate(\r\n\t\t\t\t\t\tast,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar state = new CodegenState(options);\r\n\t\t\t\t\t\t// fix #11483, Root level <script> tags should not be rendered.\r\n\t\t\t\t\t\tvar code = ast ? (ast.tag === 'script' ? 'null' : genElement(ast, state)) : '_c(\"div\")';\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\trender: (\"with(this){return \" + code + \"}\"),\r\n\t\t\t\t\t\t\tstaticRenderFns: state.staticRenderFns\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genElement(el, state) {\r\n\t\t\t\t\t\tif (el.parent) {\r\n\t\t\t\t\t\t\tel.pre = el.pre || el.parent.pre;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (el.staticRoot && !el.staticProcessed) {\r\n\t\t\t\t\t\t\treturn genStatic(el, state)\r\n\t\t\t\t\t\t} else if (el.once && !el.onceProcessed) {\r\n\t\t\t\t\t\t\treturn genOnce(el, state)\r\n\t\t\t\t\t\t} else if (el.for && !el.forProcessed) {\r\n\t\t\t\t\t\t\treturn genFor(el, state)\r\n\t\t\t\t\t\t} else if (el.if && !el.ifProcessed) {\r\n\t\t\t\t\t\t\treturn genIf(el, state)\r\n\t\t\t\t\t\t} else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\r\n\t\t\t\t\t\t\treturn genChildren(el, state) || 'void 0'\r\n\t\t\t\t\t\t} else if (el.tag === 'slot') {\r\n\t\t\t\t\t\t\treturn genSlot(el, state)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// component or element\r\n\t\t\t\t\t\t\tvar code;\r\n\t\t\t\t\t\t\tif (el.component) {\r\n\t\t\t\t\t\t\t\tcode = genComponent(el.component, el, state);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvar data;\r\n\t\t\t\t\t\t\t\tif (!el.plain || (el.pre && state.maybeComponent(el))) {\r\n\t\t\t\t\t\t\t\t\tdata = genData$2(el, state);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar children = el.inlineTemplate ? null : genChildren(el, state, true);\r\n\t\t\t\t\t\t\t\tcode = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// module transforms\r\n\t\t\t\t\t\t\tfor (var i = 0; i < state.transforms.length; i++) {\r\n\t\t\t\t\t\t\t\tcode = state.transforms[i](el, code);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn code\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// hoist static sub-trees out\r\n\t\t\t\t\tfunction genStatic(el, state) {\r\n\t\t\t\t\t\tel.staticProcessed = true;\r\n\t\t\t\t\t\t// Some elements (templates) need to behave differently inside of a v-pre\r\n\t\t\t\t\t\t// node.  All pre nodes are static roots, so we can use this as a location to\r\n\t\t\t\t\t\t// wrap a state change and reset it upon exiting the pre node.\r\n\t\t\t\t\t\tvar originalPreState = state.pre;\r\n\t\t\t\t\t\tif (el.pre) {\r\n\t\t\t\t\t\t\tstate.pre = el.pre;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstate.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\r\n\t\t\t\t\t\tstate.pre = originalPreState;\r\n\t\t\t\t\t\treturn (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// v-once\r\n\t\t\t\t\tfunction genOnce(el, state) {\r\n\t\t\t\t\t\tel.onceProcessed = true;\r\n\t\t\t\t\t\tif (el.if && !el.ifProcessed) {\r\n\t\t\t\t\t\t\treturn genIf(el, state)\r\n\t\t\t\t\t\t} else if (el.staticInFor) {\r\n\t\t\t\t\t\t\tvar key = '';\r\n\t\t\t\t\t\t\tvar parent = el.parent;\r\n\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\tif (parent.for) {\r\n\t\t\t\t\t\t\t\t\tkey = parent.key;\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!key) {\r\n\t\t\t\t\t\t\t\tstate.warn(\r\n\t\t\t\t\t\t\t\t\t\"v-once can only be used inside v-for that is keyed. \",\r\n\t\t\t\t\t\t\t\t\tel.rawAttrsMap['v-once']\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\treturn genElement(el, state)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn genStatic(el, state)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genIf(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\taltGen,\r\n\t\t\t\t\t\taltEmpty\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tel.ifProcessed = true; // avoid recursion\r\n\t\t\t\t\t\treturn genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genIfConditions(\r\n\t\t\t\t\t\tconditions,\r\n\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\taltGen,\r\n\t\t\t\t\t\taltEmpty\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (!conditions.length) {\r\n\t\t\t\t\t\t\treturn altEmpty || '_e()'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar condition = conditions.shift();\r\n\t\t\t\t\t\tif (condition.exp) {\r\n\t\t\t\t\t\t\treturn (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn (\"\" + (genTernaryExp(condition.block)))\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// v-if with v-once should generate code like (a)?_m(0):_m(1)\r\n\t\t\t\t\t\tfunction genTernaryExp(el) {\r\n\t\t\t\t\t\t\treturn altGen\r\n\t\t\t\t\t\t\t\t? altGen(el, state)\r\n\t\t\t\t\t\t\t\t: el.once\r\n\t\t\t\t\t\t\t\t\t? genOnce(el, state)\r\n\t\t\t\t\t\t\t\t\t: genElement(el, state)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genFor(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\taltGen,\r\n\t\t\t\t\t\taltHelper\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar exp = el.for;\r\n\t\t\t\t\t\tvar alias = el.alias;\r\n\t\t\t\t\t\tvar iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\r\n\t\t\t\t\t\tvar iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\r\n\r\n\t\t\t\t\t\tif (state.maybeComponent(el) &&\r\n\t\t\t\t\t\t\tel.tag !== 'slot' &&\r\n\t\t\t\t\t\t\tel.tag !== 'template' &&\r\n\t\t\t\t\t\t\t!el.key\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tstate.warn(\r\n\t\t\t\t\t\t\t\t\"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\r\n\t\t\t\t\t\t\t\t\"v-for should have explicit keys. \" +\r\n\t\t\t\t\t\t\t\t\"See https://vuejs.org/guide/list.html#key for more info.\",\r\n\t\t\t\t\t\t\t\tel.rawAttrsMap['v-for'],\r\n\t\t\t\t\t\t\t\ttrue /* tip */\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tel.forProcessed = true; // avoid recursion\r\n\t\t\t\t\t\treturn (altHelper || '_l') + \"((\" + exp + \"),\" +\r\n\t\t\t\t\t\t\t\"function(\" + alias + iterator1 + iterator2 + \"){\" +\r\n\t\t\t\t\t\t\t\"return \" + ((altGen || genElement)(el, state)) +\r\n\t\t\t\t\t\t\t'})'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genData$2(el, state) {\r\n\t\t\t\t\t\tvar data = '{';\r\n\r\n\t\t\t\t\t\t// directives first.\r\n\t\t\t\t\t\t// directives may mutate the el's other properties before they are generated.\r\n\t\t\t\t\t\tvar dirs = genDirectives(el, state);\r\n\t\t\t\t\t\tif (dirs) { data += dirs + ','; }\r\n\r\n\t\t\t\t\t\t// key\r\n\t\t\t\t\t\tif (el.key) {\r\n\t\t\t\t\t\t\tdata += \"key:\" + (el.key) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// ref\r\n\t\t\t\t\t\tif (el.ref) {\r\n\t\t\t\t\t\t\tdata += \"ref:\" + (el.ref) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.refInFor) {\r\n\t\t\t\t\t\t\tdata += \"refInFor:true,\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// pre\r\n\t\t\t\t\t\tif (el.pre) {\r\n\t\t\t\t\t\t\tdata += \"pre:true,\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// record original tag name for components using \"is\" attribute\r\n\t\t\t\t\t\tif (el.component) {\r\n\t\t\t\t\t\t\tdata += \"tag:\\\"\" + (el.tag) + \"\\\",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// module data generation functions\r\n\t\t\t\t\t\tfor (var i = 0; i < state.dataGenFns.length; i++) {\r\n\t\t\t\t\t\t\tdata += state.dataGenFns[i](el);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// attributes\r\n\t\t\t\t\t\tif (el.attrs) {\r\n\t\t\t\t\t\t\tdata += \"attrs:\" + (genProps(el.attrs)) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// DOM props\r\n\t\t\t\t\t\tif (el.props) {\r\n\t\t\t\t\t\t\tdata += \"domProps:\" + (genProps(el.props)) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// event handlers\r\n\t\t\t\t\t\tif (el.events) {\r\n\t\t\t\t\t\t\tdata += (genHandlers(el.events, false)) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.nativeEvents) {\r\n\t\t\t\t\t\t\tdata += (genHandlers(el.nativeEvents, true)) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// slot target\r\n\t\t\t\t\t\t// only for non-scoped slots\r\n\t\t\t\t\t\tif (el.slotTarget && !el.slotScope) {\r\n\t\t\t\t\t\t\tdata += \"slot:\" + (el.slotTarget) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// scoped slots\r\n\t\t\t\t\t\tif (el.scopedSlots) {\r\n\t\t\t\t\t\t\tdata += (genScopedSlots(el, el.scopedSlots, state)) + \",\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// component v-model\r\n\t\t\t\t\t\tif (el.model) {\r\n\t\t\t\t\t\t\tdata += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// inline-template\r\n\t\t\t\t\t\tif (el.inlineTemplate) {\r\n\t\t\t\t\t\t\tvar inlineTemplate = genInlineTemplate(el, state);\r\n\t\t\t\t\t\t\tif (inlineTemplate) {\r\n\t\t\t\t\t\t\t\tdata += inlineTemplate + \",\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdata = data.replace(/,$/, '') + '}';\r\n\t\t\t\t\t\t// v-bind dynamic argument wrap\r\n\t\t\t\t\t\t// v-bind with dynamic arguments must be applied using the same v-bind object\r\n\t\t\t\t\t\t// merge helper so that class/style/mustUseProp attrs are handled correctly.\r\n\t\t\t\t\t\tif (el.dynamicAttrs) {\r\n\t\t\t\t\t\t\tdata = \"_b(\" + data + \",\\\"\" + (el.tag) + \"\\\",\" + (genProps(el.dynamicAttrs)) + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// v-bind data wrap\r\n\t\t\t\t\t\tif (el.wrapData) {\r\n\t\t\t\t\t\t\tdata = el.wrapData(data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// v-on data wrap\r\n\t\t\t\t\t\tif (el.wrapListeners) {\r\n\t\t\t\t\t\t\tdata = el.wrapListeners(data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn data\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genDirectives(el, state) {\r\n\t\t\t\t\t\tvar dirs = el.directives;\r\n\t\t\t\t\t\tif (!dirs) { return }\r\n\t\t\t\t\t\tvar res = 'directives:[';\r\n\t\t\t\t\t\tvar hasRuntime = false;\r\n\t\t\t\t\t\tvar i, l, dir, needRuntime;\r\n\t\t\t\t\t\tfor (i = 0, l = dirs.length; i < l; i++) {\r\n\t\t\t\t\t\t\tdir = dirs[i];\r\n\t\t\t\t\t\t\tneedRuntime = true;\r\n\t\t\t\t\t\t\tvar gen = state.directives[dir.name];\r\n\t\t\t\t\t\t\tif (gen) {\r\n\t\t\t\t\t\t\t\t// compile-time directive that manipulates AST.\r\n\t\t\t\t\t\t\t\t// returns true if it also needs a runtime counterpart.\r\n\t\t\t\t\t\t\t\tneedRuntime = !!gen(el, dir, state.warn);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (needRuntime) {\r\n\t\t\t\t\t\t\t\thasRuntime = true;\r\n\t\t\t\t\t\t\t\tres += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\" + (dir.isDynamicArg ? dir.arg : (\"\\\"\" + (dir.arg) + \"\\\"\"))) : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (hasRuntime) {\r\n\t\t\t\t\t\t\treturn res.slice(0, -1) + ']'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genInlineTemplate(el, state) {\r\n\t\t\t\t\t\tvar ast = el.children[0];\r\n\t\t\t\t\t\tif (el.children.length !== 1 || ast.type !== 1) {\r\n\t\t\t\t\t\t\tstate.warn(\r\n\t\t\t\t\t\t\t\t'Inline-template components must have exactly one child element.',\r\n\t\t\t\t\t\t\t\t{ start: el.start }\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (ast && ast.type === 1) {\r\n\t\t\t\t\t\t\tvar inlineRenderFns = generate(ast, state.options);\r\n\t\t\t\t\t\t\treturn (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genScopedSlots(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tslots,\r\n\t\t\t\t\t\tstate\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// by default scoped slots are considered \"stable\", this allows child\r\n\t\t\t\t\t\t// components with only scoped slots to skip forced updates from parent.\r\n\t\t\t\t\t\t// but in some cases we have to bail-out of this optimization\r\n\t\t\t\t\t\t// for example if the slot contains dynamic names, has v-if or v-for on them...\r\n\t\t\t\t\t\tvar needsForceUpdate = el.for || Object.keys(slots).some(function (key) {\r\n\t\t\t\t\t\t\tvar slot = slots[key];\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\tslot.slotTargetDynamic ||\r\n\t\t\t\t\t\t\t\tslot.if ||\r\n\t\t\t\t\t\t\t\tslot.for ||\r\n\t\t\t\t\t\t\t\tcontainsSlotChild(slot) // is passing down slot from parent which may be dynamic\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// #9534: if a component with scoped slots is inside a conditional branch,\r\n\t\t\t\t\t\t// it's possible for the same component to be reused but with different\r\n\t\t\t\t\t\t// compiled slot content. To avoid that, we generate a unique key based on\r\n\t\t\t\t\t\t// the generated code of all the slot contents.\r\n\t\t\t\t\t\tvar needsKey = !!el.if;\r\n\r\n\t\t\t\t\t\t// OR when it is inside another scoped slot or v-for (the reactivity may be\r\n\t\t\t\t\t\t// disconnected due to the intermediate scope variable)\r\n\t\t\t\t\t\t// #9438, #9506\r\n\t\t\t\t\t\t// TODO: this can be further optimized by properly analyzing in-scope bindings\r\n\t\t\t\t\t\t// and skip force updating ones that do not actually use scope variables.\r\n\t\t\t\t\t\tif (!needsForceUpdate) {\r\n\t\t\t\t\t\t\tvar parent = el.parent;\r\n\t\t\t\t\t\t\twhile (parent) {\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t(parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||\r\n\t\t\t\t\t\t\t\t\tparent.for\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tneedsForceUpdate = true;\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (parent.if) {\r\n\t\t\t\t\t\t\t\t\tneedsKey = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar generatedSlots = Object.keys(slots)\r\n\t\t\t\t\t\t\t.map(function (key) { return genScopedSlot(slots[key], state); })\r\n\t\t\t\t\t\t\t.join(',');\r\n\r\n\t\t\t\t\t\treturn (\"scopedSlots:_u([\" + generatedSlots + \"]\" + (needsForceUpdate ? \",null,true\" : \"\") + (!needsForceUpdate && needsKey ? (\",null,false,\" + (hash(generatedSlots))) : \"\") + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction hash(str) {\r\n\t\t\t\t\t\tvar hash = 5381;\r\n\t\t\t\t\t\tvar i = str.length;\r\n\t\t\t\t\t\twhile (i) {\r\n\t\t\t\t\t\t\thash = (hash * 33) ^ str.charCodeAt(--i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn hash >>> 0\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction containsSlotChild(el) {\r\n\t\t\t\t\t\tif (el.type === 1) {\r\n\t\t\t\t\t\t\tif (el.tag === 'slot') {\r\n\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn el.children.some(containsSlotChild)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genScopedSlot(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tstate\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar isLegacySyntax = el.attrsMap['slot-scope'];\r\n\t\t\t\t\t\tif (el.if && !el.ifProcessed && !isLegacySyntax) {\r\n\t\t\t\t\t\t\treturn genIf(el, state, genScopedSlot, \"null\")\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.for && !el.forProcessed) {\r\n\t\t\t\t\t\t\treturn genFor(el, state, genScopedSlot)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar slotScope = el.slotScope === emptySlotScopeToken\r\n\t\t\t\t\t\t\t? \"\"\r\n\t\t\t\t\t\t\t: String(el.slotScope);\r\n\t\t\t\t\t\tvar fn = \"function(\" + slotScope + \"){\" +\r\n\t\t\t\t\t\t\t\"return \" + (el.tag === 'template'\r\n\t\t\t\t\t\t\t\t? el.if && isLegacySyntax\r\n\t\t\t\t\t\t\t\t\t? (\"(\" + (el.if) + \")?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\r\n\t\t\t\t\t\t\t\t\t: genChildren(el, state) || 'undefined'\r\n\t\t\t\t\t\t\t\t: genElement(el, state)) + \"}\";\r\n\t\t\t\t\t\t// reverse proxy v-slot without scope on this.$slots\r\n\t\t\t\t\t\tvar reverseProxy = slotScope ? \"\" : \",proxy:true\";\r\n\t\t\t\t\t\treturn (\"{key:\" + (el.slotTarget || \"\\\"default\\\"\") + \",fn:\" + fn + reverseProxy + \"}\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genChildren(\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\tcheckSkip,\r\n\t\t\t\t\t\taltGenElement,\r\n\t\t\t\t\t\taltGenNode\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar children = el.children;\r\n\t\t\t\t\t\tif (children.length) {\r\n\t\t\t\t\t\t\tvar el$1 = children[0];\r\n\t\t\t\t\t\t\t// optimize single v-for\r\n\t\t\t\t\t\t\tif (children.length === 1 &&\r\n\t\t\t\t\t\t\t\tel$1.for &&\r\n\t\t\t\t\t\t\t\tel$1.tag !== 'template' &&\r\n\t\t\t\t\t\t\t\tel$1.tag !== 'slot'\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tvar normalizationType = checkSkip\r\n\t\t\t\t\t\t\t\t\t? state.maybeComponent(el$1) ? \",1\" : \",0\"\r\n\t\t\t\t\t\t\t\t\t: \"\";\r\n\t\t\t\t\t\t\t\treturn (\"\" + ((altGenElement || genElement)(el$1, state)) + normalizationType)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar normalizationType$1 = checkSkip\r\n\t\t\t\t\t\t\t\t? getNormalizationType(children, state.maybeComponent)\r\n\t\t\t\t\t\t\t\t: 0;\r\n\t\t\t\t\t\t\tvar gen = altGenNode || genNode;\r\n\t\t\t\t\t\t\treturn (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType$1 ? (\",\" + normalizationType$1) : ''))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// determine the normalization needed for the children array.\r\n\t\t\t\t\t// 0: no normalization needed\r\n\t\t\t\t\t// 1: simple normalization needed (possible 1-level deep nested array)\r\n\t\t\t\t\t// 2: full normalization needed\r\n\t\t\t\t\tfunction getNormalizationType(\r\n\t\t\t\t\t\tchildren,\r\n\t\t\t\t\t\tmaybeComponent\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar res = 0;\r\n\t\t\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\t\tvar el = children[i];\r\n\t\t\t\t\t\t\tif (el.type !== 1) {\r\n\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (needsNormalization(el) ||\r\n\t\t\t\t\t\t\t\t(el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\r\n\t\t\t\t\t\t\t\tres = 2;\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (maybeComponent(el) ||\r\n\t\t\t\t\t\t\t\t(el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\r\n\t\t\t\t\t\t\t\tres = 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction needsNormalization(el) {\r\n\t\t\t\t\t\treturn el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genNode(node, state) {\r\n\t\t\t\t\t\tif (node.type === 1) {\r\n\t\t\t\t\t\t\treturn genElement(node, state)\r\n\t\t\t\t\t\t} else if (node.type === 3 && node.isComment) {\r\n\t\t\t\t\t\t\treturn genComment(node)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn genText(node)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genText(text) {\r\n\t\t\t\t\t\treturn (\"_v(\" + (text.type === 2\r\n\t\t\t\t\t\t\t? text.expression // no need for () because already wrapped in _s()\r\n\t\t\t\t\t\t\t: transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genComment(comment) {\r\n\t\t\t\t\t\treturn (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genSlot(el, state) {\r\n\t\t\t\t\t\tvar slotName = el.slotName || '\"default\"';\r\n\t\t\t\t\t\tvar children = genChildren(el, state);\r\n\t\t\t\t\t\tvar res = \"_t(\" + slotName + (children ? (\",function(){return \" + children + \"}\") : '');\r\n\t\t\t\t\t\tvar attrs = el.attrs || el.dynamicAttrs\r\n\t\t\t\t\t\t\t? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) {\r\n\t\t\t\t\t\t\t\treturn ({\r\n\t\t\t\t\t\t\t\t\t// slot props are camelized\r\n\t\t\t\t\t\t\t\t\tname: camelize(attr.name),\r\n\t\t\t\t\t\t\t\t\tvalue: attr.value,\r\n\t\t\t\t\t\t\t\t\tdynamic: attr.dynamic\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}))\r\n\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\tvar bind$$1 = el.attrsMap['v-bind'];\r\n\t\t\t\t\t\tif ((attrs || bind$$1) && !children) {\r\n\t\t\t\t\t\t\tres += \",null\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (attrs) {\r\n\t\t\t\t\t\t\tres += \",\" + attrs;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (bind$$1) {\r\n\t\t\t\t\t\t\tres += (attrs ? '' : ',null') + \",\" + bind$$1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res + ')'\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// componentName is el.component, take it as argument to shun flow's pessimistic refinement\r\n\t\t\t\t\tfunction genComponent(\r\n\t\t\t\t\t\tcomponentName,\r\n\t\t\t\t\t\tel,\r\n\t\t\t\t\t\tstate\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar children = el.inlineTemplate ? null : genChildren(el, state, true);\r\n\t\t\t\t\t\treturn (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genProps(props) {\r\n\t\t\t\t\t\tvar staticProps = \"\";\r\n\t\t\t\t\t\tvar dynamicProps = \"\";\r\n\t\t\t\t\t\tfor (var i = 0; i < props.length; i++) {\r\n\t\t\t\t\t\t\tvar prop = props[i];\r\n\t\t\t\t\t\t\tvar value = transformSpecialNewlines(prop.value);\r\n\t\t\t\t\t\t\tif (prop.dynamic) {\r\n\t\t\t\t\t\t\t\tdynamicProps += (prop.name) + \",\" + value + \",\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tstaticProps += \"\\\"\" + (prop.name) + \"\\\":\" + value + \",\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstaticProps = \"{\" + (staticProps.slice(0, -1)) + \"}\";\r\n\t\t\t\t\t\tif (dynamicProps) {\r\n\t\t\t\t\t\t\treturn (\"_d(\" + staticProps + \",[\" + (dynamicProps.slice(0, -1)) + \"])\")\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn staticProps\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// #3895, #4268\r\n\t\t\t\t\tfunction transformSpecialNewlines(text) {\r\n\t\t\t\t\t\treturn text\r\n\t\t\t\t\t\t\t.replace(/\\u2028/g, '\\\\u2028')\r\n\t\t\t\t\t\t\t.replace(/\\u2029/g, '\\\\u2029')\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\t\t\t\t\t// these keywords should not appear inside expressions, but operators like\r\n\t\t\t\t\t// typeof, instanceof and in are allowed\r\n\t\t\t\t\tvar prohibitedKeywordRE = new RegExp('\\\\b' + (\r\n\t\t\t\t\t\t'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\r\n\t\t\t\t\t\t'super,throw,while,yield,delete,export,import,return,switch,default,' +\r\n\t\t\t\t\t\t'extends,finally,continue,debugger,function,arguments'\r\n\t\t\t\t\t).split(',').join('\\\\b|\\\\b') + '\\\\b');\r\n\r\n\t\t\t\t\t// these unary operators should not be used as property/method names\r\n\t\t\t\t\tvar unaryOperatorsRE = new RegExp('\\\\b' + (\r\n\t\t\t\t\t\t'delete,typeof,void'\r\n\t\t\t\t\t).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\r\n\r\n\t\t\t\t\t// strip strings in expressions\r\n\t\t\t\t\tvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\r\n\r\n\t\t\t\t\t// detect problematic expressions in a template\r\n\t\t\t\t\tfunction detectErrors(ast, warn) {\r\n\t\t\t\t\t\tif (ast) {\r\n\t\t\t\t\t\t\tcheckNode(ast, warn);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkNode(node, warn) {\r\n\t\t\t\t\t\tif (node.type === 1) {\r\n\t\t\t\t\t\t\tfor (var name in node.attrsMap) {\r\n\t\t\t\t\t\t\t\tif (dirRE.test(name)) {\r\n\t\t\t\t\t\t\t\t\tvar value = node.attrsMap[name];\r\n\t\t\t\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\t\t\t\tvar range = node.rawAttrsMap[name];\r\n\t\t\t\t\t\t\t\t\t\tif (name === 'v-for') {\r\n\t\t\t\t\t\t\t\t\t\t\tcheckFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t\t\t\t} else if (name === 'v-slot' || name[0] === '#') {\r\n\t\t\t\t\t\t\t\t\t\t\tcheckFunctionParameterExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t\t\t\t} else if (onRE.test(name)) {\r\n\t\t\t\t\t\t\t\t\t\t\tcheckEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tcheckExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.children) {\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < node.children.length; i++) {\r\n\t\t\t\t\t\t\t\t\tcheckNode(node.children[i], warn);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (node.type === 2) {\r\n\t\t\t\t\t\t\tcheckExpression(node.expression, node.text, warn, node);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkEvent(exp, text, warn, range) {\r\n\t\t\t\t\t\tvar stripped = exp.replace(stripStringRE, '');\r\n\t\t\t\t\t\tvar keywordMatch = stripped.match(unaryOperatorsRE);\r\n\t\t\t\t\t\tif (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\"avoid using JavaScript unary operator as property name: \" +\r\n\t\t\t\t\t\t\t\t\"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim()),\r\n\t\t\t\t\t\t\t\trange\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcheckExpression(exp, text, warn, range);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkFor(node, text, warn, range) {\r\n\t\t\t\t\t\tcheckExpression(node.for || '', text, warn, range);\r\n\t\t\t\t\t\tcheckIdentifier(node.alias, 'v-for alias', text, warn, range);\r\n\t\t\t\t\t\tcheckIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\r\n\t\t\t\t\t\tcheckIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkIdentifier(\r\n\t\t\t\t\t\tident,\r\n\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\ttext,\r\n\t\t\t\t\t\twarn,\r\n\t\t\t\t\t\trange\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (typeof ident === 'string') {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tnew Function((\"var \" + ident + \"=_\"));\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\twarn((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())), range);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkExpression(exp, text, warn, range) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tnew Function((\"return \" + exp));\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tvar keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\r\n\t\t\t\t\t\t\tif (keywordMatch) {\r\n\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t\"avoid using JavaScript keyword as property name: \" +\r\n\t\t\t\t\t\t\t\t\t\"\\\"\" + (keywordMatch[0]) + \"\\\"\\n  Raw expression: \" + (text.trim()),\r\n\t\t\t\t\t\t\t\t\trange\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\t\"invalid expression: \" + (e.message) + \" in\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\t\"    \" + exp + \"\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\t\"  Raw expression: \" + (text.trim()) + \"\\n\",\r\n\t\t\t\t\t\t\t\t\trange\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction checkFunctionParameterExpression(exp, text, warn, range) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tnew Function(exp, '');\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t\"invalid function parameter expression: \" + (e.message) + \" in\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\"    \" + exp + \"\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\"  Raw expression: \" + (text.trim()) + \"\\n\",\r\n\t\t\t\t\t\t\t\trange\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar range = 2;\r\n\r\n\t\t\t\t\tfunction generateCodeFrame(\r\n\t\t\t\t\t\tsource,\r\n\t\t\t\t\t\tstart,\r\n\t\t\t\t\t\tend\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (start === void 0) start = 0;\r\n\t\t\t\t\t\tif (end === void 0) end = source.length;\r\n\r\n\t\t\t\t\t\tvar lines = source.split(/\\r?\\n/);\r\n\t\t\t\t\t\tvar count = 0;\r\n\t\t\t\t\t\tvar res = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < lines.length; i++) {\r\n\t\t\t\t\t\t\tcount += lines[i].length + 1;\r\n\t\t\t\t\t\t\tif (count >= start) {\r\n\t\t\t\t\t\t\t\tfor (var j = i - range; j <= i + range || end > count; j++) {\r\n\t\t\t\t\t\t\t\t\tif (j < 0 || j >= lines.length) { continue }\r\n\t\t\t\t\t\t\t\t\tres.push((\"\" + (j + 1) + (repeat$1(\" \", 3 - String(j + 1).length)) + \"|  \" + (lines[j])));\r\n\t\t\t\t\t\t\t\t\tvar lineLength = lines[j].length;\r\n\t\t\t\t\t\t\t\t\tif (j === i) {\r\n\t\t\t\t\t\t\t\t\t\t// push underline\r\n\t\t\t\t\t\t\t\t\t\tvar pad = start - (count - lineLength) + 1;\r\n\t\t\t\t\t\t\t\t\t\tvar length = end > count ? lineLength - pad : end - start;\r\n\t\t\t\t\t\t\t\t\t\tres.push(\"   |  \" + repeat$1(\" \", pad) + repeat$1(\"^\", length));\r\n\t\t\t\t\t\t\t\t\t} else if (j > i) {\r\n\t\t\t\t\t\t\t\t\t\tif (end > count) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar length$1 = Math.min(end - count, lineLength);\r\n\t\t\t\t\t\t\t\t\t\t\tres.push(\"   |  \" + repeat$1(\"^\", length$1));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tcount += lineLength + 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn res.join('\\n')\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction repeat$1(str, n) {\r\n\t\t\t\t\t\tvar result = '';\r\n\t\t\t\t\t\tif (n > 0) {\r\n\t\t\t\t\t\t\twhile (true) { // eslint-disable-line\r\n\t\t\t\t\t\t\t\tif (n & 1) { result += str; }\r\n\t\t\t\t\t\t\t\tn >>>= 1;\r\n\t\t\t\t\t\t\t\tif (n <= 0) { break }\r\n\t\t\t\t\t\t\t\tstr += str;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\t\t\t\t\tfunction createFunction(code, errors) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\treturn new Function(code)\r\n\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\terrors.push({ err: err, code: code });\r\n\t\t\t\t\t\t\treturn noop\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction createCompileToFunctionFn(compile) {\r\n\t\t\t\t\t\tvar cache = Object.create(null);\r\n\r\n\t\t\t\t\t\treturn function compileToFunctions(\r\n\t\t\t\t\t\t\ttemplate,\r\n\t\t\t\t\t\t\toptions,\r\n\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\toptions = extend({}, options);\r\n\t\t\t\t\t\t\tvar warn$$1 = options.warn || warn;\r\n\t\t\t\t\t\t\tdelete options.warn;\r\n\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t// detect possible CSP restriction\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tnew Function('return 1');\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\tif (e.toString().match(/unsafe-eval|CSP/)) {\r\n\t\t\t\t\t\t\t\t\t\twarn$$1(\r\n\t\t\t\t\t\t\t\t\t\t\t'It seems you are using the standalone build of Vue.js in an ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'environment with Content Security Policy that prohibits unsafe-eval. ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'The template compiler cannot work in this environment. Consider ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\r\n\t\t\t\t\t\t\t\t\t\t\t'templates into render functions.'\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// check cache\r\n\t\t\t\t\t\t\tvar key = options.delimiters\r\n\t\t\t\t\t\t\t\t? String(options.delimiters) + template\r\n\t\t\t\t\t\t\t\t: template;\r\n\t\t\t\t\t\t\tif (cache[key]) {\r\n\t\t\t\t\t\t\t\treturn cache[key]\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// compile\r\n\t\t\t\t\t\t\tvar compiled = compile(template, options);\r\n\r\n\t\t\t\t\t\t\t// check compilation errors/tips\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif (compiled.errors && compiled.errors.length) {\r\n\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\tcompiled.errors.forEach(function (e) {\r\n\t\t\t\t\t\t\t\t\t\t\twarn$$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\"Error compiling template:\\n\\n\" + (e.msg) + \"\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\tgenerateCodeFrame(template, e.start, e.end),\r\n\t\t\t\t\t\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\twarn$$1(\r\n\t\t\t\t\t\t\t\t\t\t\t\"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\t\t\tcompiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\r\n\t\t\t\t\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (compiled.tips && compiled.tips.length) {\r\n\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\tcompiled.tips.forEach(function (e) { return tip(e.msg, vm); });\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tcompiled.tips.forEach(function (msg) { return tip(msg, vm); });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// turn code into functions\r\n\t\t\t\t\t\t\tvar res = {};\r\n\t\t\t\t\t\t\tvar fnGenErrors = [];\r\n\t\t\t\t\t\t\tres.render = createFunction(compiled.render, fnGenErrors);\r\n\t\t\t\t\t\t\tres.staticRenderFns = compiled.staticRenderFns.map(function (code) {\r\n\t\t\t\t\t\t\t\treturn createFunction(code, fnGenErrors)\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// check function generation errors.\r\n\t\t\t\t\t\t\t// this should only happen if there is a bug in the compiler itself.\r\n\t\t\t\t\t\t\t// mostly for codegen development use\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\r\n\t\t\t\t\t\t\t\t\twarn$$1(\r\n\t\t\t\t\t\t\t\t\t\t\"Failed to generate render function:\\n\\n\" +\r\n\t\t\t\t\t\t\t\t\t\tfnGenErrors.map(function (ref) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar err = ref.err;\r\n\t\t\t\t\t\t\t\t\t\t\tvar code = ref.code;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\treturn ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\r\n\t\t\t\t\t\t\t\t\t\t}).join('\\n'),\r\n\t\t\t\t\t\t\t\t\t\tvm\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn (cache[key] = res)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tfunction createCompilerCreator(baseCompile) {\r\n\t\t\t\t\t\treturn function createCompiler(baseOptions) {\r\n\t\t\t\t\t\t\tfunction compile(\r\n\t\t\t\t\t\t\t\ttemplate,\r\n\t\t\t\t\t\t\t\toptions\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tvar finalOptions = Object.create(baseOptions);\r\n\t\t\t\t\t\t\t\tvar errors = [];\r\n\t\t\t\t\t\t\t\tvar tips = [];\r\n\r\n\t\t\t\t\t\t\t\tvar warn = function (msg, range, tip) {\r\n\t\t\t\t\t\t\t\t\t(tip ? tips : errors).push(msg);\r\n\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\tif (options) {\r\n\t\t\t\t\t\t\t\t\tif (options.outputSourceRange) {\r\n\t\t\t\t\t\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\t\t\t\t\t\tvar leadingSpaceLength = template.match(/^\\s*/)[0].length;\r\n\r\n\t\t\t\t\t\t\t\t\t\twarn = function (msg, range, tip) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar data = { msg: msg };\r\n\t\t\t\t\t\t\t\t\t\t\tif (range) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (range.start != null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata.start = range.start + leadingSpaceLength;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (range.end != null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata.end = range.end + leadingSpaceLength;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t(tip ? tips : errors).push(data);\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// merge custom modules\r\n\t\t\t\t\t\t\t\t\tif (options.modules) {\r\n\t\t\t\t\t\t\t\t\t\tfinalOptions.modules =\r\n\t\t\t\t\t\t\t\t\t\t\t(baseOptions.modules || []).concat(options.modules);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// merge custom directives\r\n\t\t\t\t\t\t\t\t\tif (options.directives) {\r\n\t\t\t\t\t\t\t\t\t\tfinalOptions.directives = extend(\r\n\t\t\t\t\t\t\t\t\t\t\tObject.create(baseOptions.directives || null),\r\n\t\t\t\t\t\t\t\t\t\t\toptions.directives\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// copy other options\r\n\t\t\t\t\t\t\t\t\tfor (var key in options) {\r\n\t\t\t\t\t\t\t\t\t\tif (key !== 'modules' && key !== 'directives') {\r\n\t\t\t\t\t\t\t\t\t\t\tfinalOptions[key] = options[key];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfinalOptions.warn = warn;\r\n\r\n\t\t\t\t\t\t\t\tvar compiled = baseCompile(template.trim(), finalOptions);\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tdetectErrors(compiled.ast, warn);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcompiled.errors = errors;\r\n\t\t\t\t\t\t\t\tcompiled.tips = tips;\r\n\t\t\t\t\t\t\t\treturn compiled\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tcompile: compile,\r\n\t\t\t\t\t\t\t\tcompileToFunctions: createCompileToFunctionFn(compile)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t// `createCompilerCreator` allows creating compilers that use alternative\r\n\t\t\t\t\t// parser/optimizer/codegen, e.g the SSR optimizing compiler.\r\n\t\t\t\t\t// Here we just export a default compiler using the default parts.\r\n\t\t\t\t\tvar createCompiler = createCompilerCreator(function baseCompile(\r\n\t\t\t\t\t\ttemplate,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar ast = parse(template.trim(), options);\r\n\t\t\t\t\t\tif (options.optimize !== false) {\r\n\t\t\t\t\t\t\toptimize(ast, options);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar code = generate(ast, options);\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tast: ast,\r\n\t\t\t\t\t\t\trender: code.render,\r\n\t\t\t\t\t\t\tstaticRenderFns: code.staticRenderFns\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar ref = createCompiler(baseOptions);\r\n\t\t\t\t\tvar compile = ref.compile;\r\n\t\t\t\t\tvar compileToFunctions = ref.compileToFunctions;\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar isAttr = makeMap(\r\n\t\t\t\t\t\t'accept,accept-charset,accesskey,action,align,alt,async,autocomplete,' +\r\n\t\t\t\t\t\t'autofocus,autoplay,autosave,bgcolor,border,buffered,challenge,charset,' +\r\n\t\t\t\t\t\t'checked,cite,class,code,codebase,color,cols,colspan,content,' +\r\n\t\t\t\t\t\t'contenteditable,contextmenu,controls,coords,data,datetime,default,' +\r\n\t\t\t\t\t\t'defer,dir,dirname,disabled,download,draggable,dropzone,enctype,for,' +\r\n\t\t\t\t\t\t'form,formaction,headers,height,hidden,high,href,hreflang,http-equiv,' +\r\n\t\t\t\t\t\t'icon,id,ismap,itemprop,keytype,kind,label,lang,language,list,loop,low,' +\r\n\t\t\t\t\t\t'manifest,max,maxlength,media,method,GET,POST,min,multiple,email,file,' +\r\n\t\t\t\t\t\t'muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,' +\r\n\t\t\t\t\t\t'preload,radiogroup,readonly,rel,required,reversed,rows,rowspan,sandbox,' +\r\n\t\t\t\t\t\t'scope,scoped,seamless,selected,shape,size,type,text,password,sizes,span,' +\r\n\t\t\t\t\t\t'spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,' +\r\n\t\t\t\t\t\t'target,title,usemap,value,width,wrap'\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\tvar isRenderableAttr = function (name) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tisAttr(name) ||\r\n\t\t\t\t\t\t\tname.indexOf('data-') === 0 ||\r\n\t\t\t\t\t\t\tname.indexOf('aria-') === 0\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar propsToAttrMap = {\r\n\t\t\t\t\t\tacceptCharset: 'accept-charset',\r\n\t\t\t\t\t\tclassName: 'class',\r\n\t\t\t\t\t\thtmlFor: 'for',\r\n\t\t\t\t\t\thttpEquiv: 'http-equiv'\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar ESC = {\r\n\t\t\t\t\t\t'<': '&lt;',\r\n\t\t\t\t\t\t'>': '&gt;',\r\n\t\t\t\t\t\t'\"': '&quot;',\r\n\t\t\t\t\t\t'&': '&amp;'\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfunction escape(s) {\r\n\t\t\t\t\t\treturn s.replace(/[<>\"&]/g, escapeChar)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction escapeChar(a) {\r\n\t\t\t\t\t\treturn ESC[a] || a\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\r\n\t\t\t\t\tvar plainStringRE = /^\"(?:[^\"\\\\]|\\\\.)*\"$|^'(?:[^'\\\\]|\\\\.)*'$/;\r\n\r\n\t\t\t\t\t// let the model AST transform translate v-model into appropriate\r\n\t\t\t\t\t// props bindings\r\n\t\t\t\t\tfunction applyModelTransform(el, state) {\r\n\t\t\t\t\t\tif (el.directives) {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < el.directives.length; i++) {\r\n\t\t\t\t\t\t\t\tvar dir = el.directives[i];\r\n\t\t\t\t\t\t\t\tif (dir.name === 'model') {\r\n\t\t\t\t\t\t\t\t\tstate.directives.model(el, dir, state.warn);\r\n\t\t\t\t\t\t\t\t\t// remove value for textarea as its converted to text\r\n\t\t\t\t\t\t\t\t\tif (el.tag === 'textarea' && el.props) {\r\n\t\t\t\t\t\t\t\t\t\tel.props = el.props.filter(function (p) { return p.name !== 'value'; });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genAttrSegments(\r\n\t\t\t\t\t\tattrs\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn attrs.map(function (ref) {\r\n\t\t\t\t\t\t\tvar name = ref.name;\r\n\t\t\t\t\t\t\tvar value = ref.value;\r\n\r\n\t\t\t\t\t\t\treturn genAttrSegment(name, value);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genDOMPropSegments(\r\n\t\t\t\t\t\tprops,\r\n\t\t\t\t\t\tattrs\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar segments = [];\r\n\t\t\t\t\t\tprops.forEach(function (ref) {\r\n\t\t\t\t\t\t\tvar name = ref.name;\r\n\t\t\t\t\t\t\tvar value = ref.value;\r\n\r\n\t\t\t\t\t\t\tname = propsToAttrMap[name] || name.toLowerCase();\r\n\t\t\t\t\t\t\tif (isRenderableAttr(name) &&\r\n\t\t\t\t\t\t\t\t!(attrs && attrs.some(function (a) { return a.name === name; }))\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tsegments.push(genAttrSegment(name, value));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn segments\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genAttrSegment(name, value) {\r\n\t\t\t\t\t\tif (plainStringRE.test(value)) {\r\n\t\t\t\t\t\t\t// force double quote\r\n\t\t\t\t\t\t\tvalue = value.replace(/^'|'$/g, '\"');\r\n\t\t\t\t\t\t\t// force enumerated attr to \"true\"\r\n\t\t\t\t\t\t\tif (isEnumeratedAttr(name) && value !== \"\\\"false\\\"\") {\r\n\t\t\t\t\t\t\t\tvalue = \"\\\"true\\\"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\ttype: RAW,\r\n\t\t\t\t\t\t\t\tvalue: isBooleanAttr(name)\r\n\t\t\t\t\t\t\t\t\t? (\" \" + name + \"=\\\"\" + name + \"\\\"\")\r\n\t\t\t\t\t\t\t\t\t: value === '\"\"'\r\n\t\t\t\t\t\t\t\t\t\t? (\" \" + name)\r\n\t\t\t\t\t\t\t\t\t\t: (\" \" + name + \"=\\\"\" + (JSON.parse(value)) + \"\\\"\")\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\ttype: EXPRESSION,\r\n\t\t\t\t\t\t\t\tvalue: (\"_ssrAttr(\" + (JSON.stringify(name)) + \",\" + value + \")\")\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genClassSegments(\r\n\t\t\t\t\t\tstaticClass,\r\n\t\t\t\t\t\tclassBinding\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (staticClass && !classBinding) {\r\n\t\t\t\t\t\t\treturn [{ type: RAW, value: (\" class=\\\"\" + (JSON.parse(staticClass)) + \"\\\"\") }]\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn [{\r\n\t\t\t\t\t\t\t\ttype: EXPRESSION,\r\n\t\t\t\t\t\t\t\tvalue: (\"_ssrClass(\" + (staticClass || 'null') + \",\" + (classBinding || 'null') + \")\")\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genStyleSegments(\r\n\t\t\t\t\t\tstaticStyle,\r\n\t\t\t\t\t\tparsedStaticStyle,\r\n\t\t\t\t\t\tstyleBinding,\r\n\t\t\t\t\t\tvShowExpression\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (staticStyle && !styleBinding && !vShowExpression) {\r\n\t\t\t\t\t\t\treturn [{ type: RAW, value: (\" style=\" + (JSON.stringify(staticStyle))) }]\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn [{\r\n\t\t\t\t\t\t\t\ttype: EXPRESSION,\r\n\t\t\t\t\t\t\t\tvalue: (\"_ssrStyle(\" + (parsedStaticStyle || 'null') + \",\" + (styleBinding || 'null') + \", \" + (vShowExpression\r\n\t\t\t\t\t\t\t\t\t? (\"{ display: (\" + vShowExpression + \") ? '' : 'none' }\")\r\n\t\t\t\t\t\t\t\t\t: 'null') + \")\")\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\t// optimizability constants\r\n\t\t\t\t\tvar optimizability = {\r\n\t\t\t\t\t\tFALSE: 0,    // whole sub tree un-optimizable\r\n\t\t\t\t\t\tFULL: 1,     // whole sub tree optimizable\r\n\t\t\t\t\t\tSELF: 2,     // self optimizable but has some un-optimizable children\r\n\t\t\t\t\t\tCHILDREN: 3, // self un-optimizable but have fully optimizable children\r\n\t\t\t\t\t\tPARTIAL: 4   // self un-optimizable with some un-optimizable children\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar isPlatformReservedTag$1;\r\n\r\n\t\t\t\t\tfunction optimize$1(root, options) {\r\n\t\t\t\t\t\tif (!root) { return }\r\n\t\t\t\t\t\tisPlatformReservedTag$1 = options.isReservedTag || no;\r\n\t\t\t\t\t\twalk(root, true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction walk(node, isRoot) {\r\n\t\t\t\t\t\tif (isUnOptimizableTree(node)) {\r\n\t\t\t\t\t\t\tnode.ssrOptimizability = optimizability.FALSE;\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// root node or nodes with custom directives should always be a VNode\r\n\t\t\t\t\t\tvar selfUnoptimizable = isRoot || hasCustomDirective(node);\r\n\t\t\t\t\t\tvar check = function (child) {\r\n\t\t\t\t\t\t\tif (child.ssrOptimizability !== optimizability.FULL) {\r\n\t\t\t\t\t\t\t\tnode.ssrOptimizability = selfUnoptimizable\r\n\t\t\t\t\t\t\t\t\t? optimizability.PARTIAL\r\n\t\t\t\t\t\t\t\t\t: optimizability.SELF;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tif (selfUnoptimizable) {\r\n\t\t\t\t\t\t\tnode.ssrOptimizability = optimizability.CHILDREN;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (node.type === 1) {\r\n\t\t\t\t\t\t\tfor (var i = 0, l = node.children.length; i < l; i++) {\r\n\t\t\t\t\t\t\t\tvar child = node.children[i];\r\n\t\t\t\t\t\t\t\twalk(child);\r\n\t\t\t\t\t\t\t\tcheck(child);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.ifConditions) {\r\n\t\t\t\t\t\t\t\tfor (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\r\n\t\t\t\t\t\t\t\t\tvar block = node.ifConditions[i$1].block;\r\n\t\t\t\t\t\t\t\t\twalk(block, isRoot);\r\n\t\t\t\t\t\t\t\t\tcheck(block);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (node.ssrOptimizability == null ||\r\n\t\t\t\t\t\t\t\t(!isRoot && (node.attrsMap['v-html'] || node.attrsMap['v-text']))\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tnode.ssrOptimizability = optimizability.FULL;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tnode.children = optimizeSiblings(node);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnode.ssrOptimizability = optimizability.FULL;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction optimizeSiblings(el) {\r\n\t\t\t\t\t\tvar children = el.children;\r\n\t\t\t\t\t\tvar optimizedChildren = [];\r\n\r\n\t\t\t\t\t\tvar currentOptimizableGroup = [];\r\n\t\t\t\t\t\tvar pushGroup = function () {\r\n\t\t\t\t\t\t\tif (currentOptimizableGroup.length) {\r\n\t\t\t\t\t\t\t\toptimizedChildren.push({\r\n\t\t\t\t\t\t\t\t\ttype: 1,\r\n\t\t\t\t\t\t\t\t\tparent: el,\r\n\t\t\t\t\t\t\t\t\ttag: 'template',\r\n\t\t\t\t\t\t\t\t\tattrsList: [],\r\n\t\t\t\t\t\t\t\t\tattrsMap: {},\r\n\t\t\t\t\t\t\t\t\trawAttrsMap: {},\r\n\t\t\t\t\t\t\t\t\tchildren: currentOptimizableGroup,\r\n\t\t\t\t\t\t\t\t\tssrOptimizability: optimizability.FULL\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcurrentOptimizableGroup = [];\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\t\tvar c = children[i];\r\n\t\t\t\t\t\t\tif (c.ssrOptimizability === optimizability.FULL) {\r\n\t\t\t\t\t\t\t\tcurrentOptimizableGroup.push(c);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// wrap fully-optimizable adjacent siblings inside a template tag\r\n\t\t\t\t\t\t\t\t// so that they can be optimized into a single ssrNode by codegen\r\n\t\t\t\t\t\t\t\tpushGroup();\r\n\t\t\t\t\t\t\t\toptimizedChildren.push(c);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpushGroup();\r\n\t\t\t\t\t\treturn optimizedChildren\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isUnOptimizableTree(node) {\r\n\t\t\t\t\t\tif (node.type === 2 || node.type === 3) { // text or expression\r\n\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tisBuiltInTag(node.tag) || // built-in (slot, component)\r\n\t\t\t\t\t\t\t!isPlatformReservedTag$1(node.tag) || // custom component\r\n\t\t\t\t\t\t\t!!node.component || // \"is\" component\r\n\t\t\t\t\t\t\tisSelectWithModel(node) // <select v-model> requires runtime inspection\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isBuiltInDir = makeMap('text,html,show,on,bind,model,pre,cloak,once');\r\n\r\n\t\t\t\t\tfunction hasCustomDirective(node) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tnode.type === 1 &&\r\n\t\t\t\t\t\t\tnode.directives &&\r\n\t\t\t\t\t\t\tnode.directives.some(function (d) { return !isBuiltInDir(d.name); })\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// <select v-model> cannot be optimized because it requires a runtime check\r\n\t\t\t\t\t// to determine proper selected option\r\n\t\t\t\t\tfunction isSelectWithModel(node) {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tnode.type === 1 &&\r\n\t\t\t\t\t\t\tnode.tag === 'select' &&\r\n\t\t\t\t\t\t\tnode.directives != null &&\r\n\t\t\t\t\t\t\tnode.directives.some(function (d) { return d.name === 'model'; })\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t// segment types\r\n\t\t\t\t\tvar RAW = 0;\r\n\t\t\t\t\tvar INTERPOLATION = 1;\r\n\t\t\t\t\tvar EXPRESSION = 2;\r\n\r\n\t\t\t\t\tfunction generate$1(\r\n\t\t\t\t\t\tast,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar state = new CodegenState(options);\r\n\t\t\t\t\t\tvar code = ast ? genSSRElement(ast, state) : '_c(\"div\")';\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\trender: (\"with(this){return \" + code + \"}\"),\r\n\t\t\t\t\t\t\tstaticRenderFns: state.staticRenderFns\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genSSRElement(el, state) {\r\n\t\t\t\t\t\tif (el.for && !el.forProcessed) {\r\n\t\t\t\t\t\t\treturn genFor(el, state, genSSRElement)\r\n\t\t\t\t\t\t} else if (el.if && !el.ifProcessed) {\r\n\t\t\t\t\t\t\treturn genIf(el, state, genSSRElement)\r\n\t\t\t\t\t\t} else if (el.tag === 'template' && !el.slotTarget) {\r\n\t\t\t\t\t\t\treturn el.ssrOptimizability === optimizability.FULL\r\n\t\t\t\t\t\t\t\t? genChildrenAsStringNode(el, state)\r\n\t\t\t\t\t\t\t\t: genSSRChildren(el, state) || 'void 0'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tswitch (el.ssrOptimizability) {\r\n\t\t\t\t\t\t\tcase optimizability.FULL:\r\n\t\t\t\t\t\t\t\t// stringify whole tree\r\n\t\t\t\t\t\t\t\treturn genStringElement(el, state)\r\n\t\t\t\t\t\t\tcase optimizability.SELF:\r\n\t\t\t\t\t\t\t\t// stringify self and check children\r\n\t\t\t\t\t\t\t\treturn genStringElementWithChildren(el, state)\r\n\t\t\t\t\t\t\tcase optimizability.CHILDREN:\r\n\t\t\t\t\t\t\t\t// generate self as VNode and stringify children\r\n\t\t\t\t\t\t\t\treturn genNormalElement(el, state, true)\r\n\t\t\t\t\t\t\tcase optimizability.PARTIAL:\r\n\t\t\t\t\t\t\t\t// generate self as VNode and check children\r\n\t\t\t\t\t\t\t\treturn genNormalElement(el, state, false)\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t// bail whole tree\r\n\t\t\t\t\t\t\t\treturn genElement(el, state)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genNormalElement(el, state, stringifyChildren) {\r\n\t\t\t\t\t\tvar data = el.plain ? undefined : genData$2(el, state);\r\n\t\t\t\t\t\tvar children = stringifyChildren\r\n\t\t\t\t\t\t\t? (\"[\" + (genChildrenAsStringNode(el, state)) + \"]\")\r\n\t\t\t\t\t\t\t: genSSRChildren(el, state, true);\r\n\t\t\t\t\t\treturn (\"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genSSRChildren(el, state, checkSkip) {\r\n\t\t\t\t\t\treturn genChildren(el, state, checkSkip, genSSRElement, genSSRNode)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genSSRNode(el, state) {\r\n\t\t\t\t\t\treturn el.type === 1\r\n\t\t\t\t\t\t\t? genSSRElement(el, state)\r\n\t\t\t\t\t\t\t: genText(el)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genChildrenAsStringNode(el, state) {\r\n\t\t\t\t\t\treturn el.children.length\r\n\t\t\t\t\t\t\t? (\"_ssrNode(\" + (flattenSegments(childrenToSegments(el, state))) + \")\")\r\n\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genStringElement(el, state) {\r\n\t\t\t\t\t\treturn (\"_ssrNode(\" + (elementToString(el, state)) + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction genStringElementWithChildren(el, state) {\r\n\t\t\t\t\t\tvar children = genSSRChildren(el, state, true);\r\n\t\t\t\t\t\treturn (\"_ssrNode(\" + (flattenSegments(elementToOpenTagSegments(el, state))) + \",\\\"</\" + (el.tag) + \">\\\"\" + (children ? (\",\" + children) : '') + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction elementToString(el, state) {\r\n\t\t\t\t\t\treturn (\"(\" + (flattenSegments(elementToSegments(el, state))) + \")\")\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction elementToSegments(el, state) {\r\n\t\t\t\t\t\t// v-for / v-if\r\n\t\t\t\t\t\tif (el.for && !el.forProcessed) {\r\n\t\t\t\t\t\t\tel.forProcessed = true;\r\n\t\t\t\t\t\t\treturn [{\r\n\t\t\t\t\t\t\t\ttype: EXPRESSION,\r\n\t\t\t\t\t\t\t\tvalue: genFor(el, state, elementToString, '_ssrList')\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t} else if (el.if && !el.ifProcessed) {\r\n\t\t\t\t\t\t\tel.ifProcessed = true;\r\n\t\t\t\t\t\t\treturn [{\r\n\t\t\t\t\t\t\t\ttype: EXPRESSION,\r\n\t\t\t\t\t\t\t\tvalue: genIf(el, state, elementToString, '\"<!---->\"')\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t} else if (el.tag === 'template') {\r\n\t\t\t\t\t\t\treturn childrenToSegments(el, state)\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar openSegments = elementToOpenTagSegments(el, state);\r\n\t\t\t\t\t\tvar childrenSegments = childrenToSegments(el, state);\r\n\t\t\t\t\t\tvar ref = state.options;\r\n\t\t\t\t\t\tvar isUnaryTag = ref.isUnaryTag;\r\n\t\t\t\t\t\tvar close = (isUnaryTag && isUnaryTag(el.tag))\r\n\t\t\t\t\t\t\t? []\r\n\t\t\t\t\t\t\t: [{ type: RAW, value: (\"</\" + (el.tag) + \">\") }];\r\n\t\t\t\t\t\treturn openSegments.concat(childrenSegments, close)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction elementToOpenTagSegments(el, state) {\r\n\t\t\t\t\t\tapplyModelTransform(el, state);\r\n\t\t\t\t\t\tvar binding;\r\n\t\t\t\t\t\tvar segments = [{ type: RAW, value: (\"<\" + (el.tag)) }];\r\n\t\t\t\t\t\t// attrs\r\n\t\t\t\t\t\tif (el.attrs) {\r\n\t\t\t\t\t\t\tsegments.push.apply(segments, genAttrSegments(el.attrs));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// domProps\r\n\t\t\t\t\t\tif (el.props) {\r\n\t\t\t\t\t\t\tsegments.push.apply(segments, genDOMPropSegments(el.props, el.attrs));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// v-bind=\"object\"\r\n\t\t\t\t\t\tif ((binding = el.attrsMap['v-bind'])) {\r\n\t\t\t\t\t\t\tsegments.push({ type: EXPRESSION, value: (\"_ssrAttrs(\" + binding + \")\") });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// v-bind.prop=\"object\"\r\n\t\t\t\t\t\tif ((binding = el.attrsMap['v-bind.prop'])) {\r\n\t\t\t\t\t\t\tsegments.push({ type: EXPRESSION, value: (\"_ssrDOMProps(\" + binding + \")\") });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// class\r\n\t\t\t\t\t\tif (el.staticClass || el.classBinding) {\r\n\t\t\t\t\t\t\tsegments.push.apply(\r\n\t\t\t\t\t\t\t\tsegments,\r\n\t\t\t\t\t\t\t\tgenClassSegments(el.staticClass, el.classBinding)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// style & v-show\r\n\t\t\t\t\t\tif (el.staticStyle || el.styleBinding || el.attrsMap['v-show']) {\r\n\t\t\t\t\t\t\tsegments.push.apply(\r\n\t\t\t\t\t\t\t\tsegments,\r\n\t\t\t\t\t\t\t\tgenStyleSegments(\r\n\t\t\t\t\t\t\t\t\tel.attrsMap.style,\r\n\t\t\t\t\t\t\t\t\tel.staticStyle,\r\n\t\t\t\t\t\t\t\t\tel.styleBinding,\r\n\t\t\t\t\t\t\t\t\tel.attrsMap['v-show']\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// _scopedId\r\n\t\t\t\t\t\tif (state.options.scopeId) {\r\n\t\t\t\t\t\t\tsegments.push({ type: RAW, value: (\" \" + (state.options.scopeId)) });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsegments.push({ type: RAW, value: \">\" });\r\n\t\t\t\t\t\treturn segments\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction childrenToSegments(el, state) {\r\n\t\t\t\t\t\tvar binding;\r\n\t\t\t\t\t\tif ((binding = el.attrsMap['v-html'])) {\r\n\t\t\t\t\t\t\treturn [{ type: EXPRESSION, value: (\"_s(\" + binding + \")\") }]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ((binding = el.attrsMap['v-text'])) {\r\n\t\t\t\t\t\t\treturn [{ type: INTERPOLATION, value: (\"_s(\" + binding + \")\") }]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (el.tag === 'textarea' && (binding = el.attrsMap['v-model'])) {\r\n\t\t\t\t\t\t\treturn [{ type: INTERPOLATION, value: (\"_s(\" + binding + \")\") }]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn el.children\r\n\t\t\t\t\t\t\t? nodesToSegments(el.children, state)\r\n\t\t\t\t\t\t\t: []\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction nodesToSegments(\r\n\t\t\t\t\t\tchildren,\r\n\t\t\t\t\t\tstate\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar segments = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\t\t\tvar c = children[i];\r\n\t\t\t\t\t\t\tif (c.type === 1) {\r\n\t\t\t\t\t\t\t\tsegments.push.apply(segments, elementToSegments(c, state));\r\n\t\t\t\t\t\t\t} else if (c.type === 2) {\r\n\t\t\t\t\t\t\t\tsegments.push({ type: INTERPOLATION, value: c.expression });\r\n\t\t\t\t\t\t\t} else if (c.type === 3) {\r\n\t\t\t\t\t\t\t\tvar text = escape(c.text);\r\n\t\t\t\t\t\t\t\tif (c.isComment) {\r\n\t\t\t\t\t\t\t\t\ttext = '<!--' + text + '-->';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsegments.push({ type: RAW, value: text });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn segments\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction flattenSegments(segments) {\r\n\t\t\t\t\t\tvar mergedSegments = [];\r\n\t\t\t\t\t\tvar textBuffer = '';\r\n\r\n\t\t\t\t\t\tvar pushBuffer = function () {\r\n\t\t\t\t\t\t\tif (textBuffer) {\r\n\t\t\t\t\t\t\t\tmergedSegments.push(JSON.stringify(textBuffer));\r\n\t\t\t\t\t\t\t\ttextBuffer = '';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < segments.length; i++) {\r\n\t\t\t\t\t\t\tvar s = segments[i];\r\n\t\t\t\t\t\t\tif (s.type === RAW) {\r\n\t\t\t\t\t\t\t\ttextBuffer += s.value;\r\n\t\t\t\t\t\t\t} else if (s.type === INTERPOLATION) {\r\n\t\t\t\t\t\t\t\tpushBuffer();\r\n\t\t\t\t\t\t\t\tmergedSegments.push((\"_ssrEscape(\" + (s.value) + \")\"));\r\n\t\t\t\t\t\t\t} else if (s.type === EXPRESSION) {\r\n\t\t\t\t\t\t\t\tpushBuffer();\r\n\t\t\t\t\t\t\t\tmergedSegments.push((\"(\" + (s.value) + \")\"));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tpushBuffer();\r\n\r\n\t\t\t\t\t\treturn mergedSegments.join('+')\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar createCompiler$1 = createCompilerCreator(function baseCompile(\r\n\t\t\t\t\t\ttemplate,\r\n\t\t\t\t\t\toptions\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar ast = parse(template.trim(), options);\r\n\t\t\t\t\t\toptimize$1(ast, options);\r\n\t\t\t\t\t\tvar code = generate$1(ast, options);\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tast: ast,\r\n\t\t\t\t\t\t\trender: code.render,\r\n\t\t\t\t\t\t\tstaticRenderFns: code.staticRenderFns\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\tvar ref$1 = createCompiler$1(baseOptions);\r\n\t\t\t\t\tvar compile$1 = ref$1.compile;\r\n\t\t\t\t\tvar compileToFunctions$1 = ref$1.compileToFunctions;\r\n\r\n\t\t\t\t\t/*  */\r\n\r\n\t\t\t\t\texports.parseComponent = parseComponent;\r\n\t\t\t\t\texports.compile = compile;\r\n\t\t\t\t\texports.compileToFunctions = compileToFunctions;\r\n\t\t\t\t\texports.ssrCompile = compile$1;\r\n\t\t\t\t\texports.ssrCompileToFunctions = compileToFunctions$1;\r\n\t\t\t\t\texports.generateCodeFrame = generateCodeFrame;\r\n\r\n\t\t\t\t\tObject.defineProperty(exports, '__esModule', { value: true });\r\n\r\n\t\t\t\t}));\r\n\r\n\r\n\t\t\t\t/***/\r\n}),\r\n\r\n/***/ 630:\r\n/***/ (function (module, exports) {\r\n\r\n\t\t\t\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; (function (global, factory) {\r\n\t\t\t\t\tif (true) {\r\n\t\t\t\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\r\n\t\t\t\t\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\r\n\t\t\t\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t\t\t\t\t} else { var mod; }\r\n\t\t\t\t})(this, function (module, exports) {\r\n\t\t\t\t\t'use strict';\r\n\r\n\t\t\t\t\tObject.defineProperty(exports, \"__esModule\", {\r\n\t\t\t\t\t\tvalue: true\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar _class, _temp;\r\n\r\n\t\t\t\t\tfunction _classCallCheck(instance, Constructor) {\r\n\t\t\t\t\t\tif (!(instance instanceof Constructor)) {\r\n\t\t\t\t\t\t\tthrow new TypeError(\"Cannot call a class as a function\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar _createClass = function () {\r\n\t\t\t\t\t\tfunction defineProperties(target, props) {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < props.length; i++) {\r\n\t\t\t\t\t\t\t\tvar descriptor = props[i];\r\n\t\t\t\t\t\t\t\tdescriptor.enumerable = descriptor.enumerable || false;\r\n\t\t\t\t\t\t\t\tdescriptor.configurable = true;\r\n\t\t\t\t\t\t\t\tif (\"value\" in descriptor) descriptor.writable = true;\r\n\t\t\t\t\t\t\t\tObject.defineProperty(target, descriptor.key, descriptor);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn function (Constructor, protoProps, staticProps) {\r\n\t\t\t\t\t\t\tif (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n\t\t\t\t\t\t\tif (staticProps) defineProperties(Constructor, staticProps);\r\n\t\t\t\t\t\t\treturn Constructor;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}();\r\n\r\n\t\t\t\t\tfunction isIn(needle, haystack) {\r\n\t\t\t\t\t\treturn haystack.indexOf(needle) >= 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction extend(custom, defaults) {\r\n\t\t\t\t\t\tfor (var key in defaults) {\r\n\t\t\t\t\t\t\tif (custom[key] == null) {\r\n\t\t\t\t\t\t\t\tvar value = defaults[key];\r\n\t\t\t\t\t\t\t\tcustom[key] = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn custom;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction isMobile(agent) {\r\n\t\t\t\t\t\treturn (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction createEvent(event) {\r\n\t\t\t\t\t\tvar bubble = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\r\n\t\t\t\t\t\tvar cancel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\r\n\t\t\t\t\t\tvar detail = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\r\n\r\n\t\t\t\t\t\tvar customEvent = void 0;\r\n\t\t\t\t\t\tif (document.createEvent != null) {\r\n\t\t\t\t\t\t\t// W3C DOM\r\n\t\t\t\t\t\t\tcustomEvent = document.createEvent('CustomEvent');\r\n\t\t\t\t\t\t\tcustomEvent.initCustomEvent(event, bubble, cancel, detail);\r\n\t\t\t\t\t\t} else if (document.createEventObject != null) {\r\n\t\t\t\t\t\t\t// IE DOM < 9\r\n\t\t\t\t\t\t\tcustomEvent = document.createEventObject();\r\n\t\t\t\t\t\t\tcustomEvent.eventType = event;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcustomEvent.eventName = event;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn customEvent;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction emitEvent(elem, event) {\r\n\t\t\t\t\t\tif (elem.dispatchEvent != null) {\r\n\t\t\t\t\t\t\t// W3C DOM\r\n\t\t\t\t\t\t\telem.dispatchEvent(event);\r\n\t\t\t\t\t\t} else if (event in (elem != null)) {\r\n\t\t\t\t\t\t\telem[event]();\r\n\t\t\t\t\t\t} else if ('on' + event in (elem != null)) {\r\n\t\t\t\t\t\t\telem['on' + event]();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction addEvent(elem, event, fn) {\r\n\t\t\t\t\t\tif (elem.addEventListener != null) {\r\n\t\t\t\t\t\t\t// W3C DOM\r\n\t\t\t\t\t\t\telem.addEventListener(event, fn, false);\r\n\t\t\t\t\t\t} else if (elem.attachEvent != null) {\r\n\t\t\t\t\t\t\t// IE DOM\r\n\t\t\t\t\t\t\telem.attachEvent('on' + event, fn);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// fallback\r\n\t\t\t\t\t\t\telem[event] = fn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction removeEvent(elem, event, fn) {\r\n\t\t\t\t\t\tif (elem.removeEventListener != null) {\r\n\t\t\t\t\t\t\t// W3C DOM\r\n\t\t\t\t\t\t\telem.removeEventListener(event, fn, false);\r\n\t\t\t\t\t\t} else if (elem.detachEvent != null) {\r\n\t\t\t\t\t\t\t// IE DOM\r\n\t\t\t\t\t\t\telem.detachEvent('on' + event, fn);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// fallback\r\n\t\t\t\t\t\t\tdelete elem[event];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfunction getInnerHeight() {\r\n\t\t\t\t\t\tif ('innerHeight' in window) {\r\n\t\t\t\t\t\t\treturn window.innerHeight;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn document.documentElement.clientHeight;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Minimalistic WeakMap shim, just in case.\r\n\t\t\t\t\tvar WeakMap = window.WeakMap || window.MozWeakMap || function () {\r\n\t\t\t\t\t\tfunction WeakMap() {\r\n\t\t\t\t\t\t\t_classCallCheck(this, WeakMap);\r\n\r\n\t\t\t\t\t\t\tthis.keys = [];\r\n\t\t\t\t\t\t\tthis.values = [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_createClass(WeakMap, [{\r\n\t\t\t\t\t\t\tkey: 'get',\r\n\t\t\t\t\t\t\tvalue: function get(key) {\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < this.keys.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar item = this.keys[i];\r\n\t\t\t\t\t\t\t\t\tif (item === key) {\r\n\t\t\t\t\t\t\t\t\t\treturn this.values[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'set',\r\n\t\t\t\t\t\t\tvalue: function set(key, value) {\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < this.keys.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar item = this.keys[i];\r\n\t\t\t\t\t\t\t\t\tif (item === key) {\r\n\t\t\t\t\t\t\t\t\t\tthis.values[i] = value;\r\n\t\t\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis.keys.push(key);\r\n\t\t\t\t\t\t\t\tthis.values.push(value);\r\n\t\t\t\t\t\t\t\treturn this;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}]);\r\n\r\n\t\t\t\t\t\treturn WeakMap;\r\n\t\t\t\t\t}();\r\n\r\n\t\t\t\t\t// Dummy MutationObserver, to avoid raising exceptions.\r\n\t\t\t\t\tvar MutationObserver = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver || (_temp = _class = function () {\r\n\t\t\t\t\t\tfunction MutationObserver() {\r\n\t\t\t\t\t\t\t_classCallCheck(this, MutationObserver);\r\n\r\n\t\t\t\t\t\t\tif (typeof console !== 'undefined' && console !== null) {\r\n\t\t\t\t\t\t\t\tconsole.warn('MutationObserver is not supported by your browser.');\r\n\t\t\t\t\t\t\t\tconsole.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_createClass(MutationObserver, [{\r\n\t\t\t\t\t\t\tkey: 'observe',\r\n\t\t\t\t\t\t\tvalue: function observe() { }\r\n\t\t\t\t\t\t}]);\r\n\r\n\t\t\t\t\t\treturn MutationObserver;\r\n\t\t\t\t\t}(), _class.notSupported = true, _temp);\r\n\r\n\t\t\t\t\t// getComputedStyle shim, from http://stackoverflow.com/a/21797294\r\n\t\t\t\t\tvar getComputedStyle = window.getComputedStyle || function getComputedStyle(el) {\r\n\t\t\t\t\t\tvar getComputedStyleRX = /(\\-([a-z]){1})/g;\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tgetPropertyValue: function getPropertyValue(prop) {\r\n\t\t\t\t\t\t\t\tif (prop === 'float') {\r\n\t\t\t\t\t\t\t\t\tprop = 'styleFloat';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (getComputedStyleRX.test(prop)) {\r\n\t\t\t\t\t\t\t\t\tprop.replace(getComputedStyleRX, function (_, _char) {\r\n\t\t\t\t\t\t\t\t\t\treturn _char.toUpperCase();\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar currentStyle = el.currentStyle;\r\n\r\n\t\t\t\t\t\t\t\treturn (currentStyle != null ? currentStyle[prop] : void 0) || null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar WOW = function () {\r\n\t\t\t\t\t\tfunction WOW() {\r\n\t\t\t\t\t\t\tvar options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n\r\n\t\t\t\t\t\t\t_classCallCheck(this, WOW);\r\n\r\n\t\t\t\t\t\t\tthis.defaults = {\r\n\t\t\t\t\t\t\t\tboxClass: 'wow',\r\n\t\t\t\t\t\t\t\tanimateClass: 'animated',\r\n\t\t\t\t\t\t\t\toffset: 0,\r\n\t\t\t\t\t\t\t\tmobile: true,\r\n\t\t\t\t\t\t\t\tlive: true,\r\n\t\t\t\t\t\t\t\tcallback: null,\r\n\t\t\t\t\t\t\t\tscrollContainer: null\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tthis.animate = function animateFactory() {\r\n\t\t\t\t\t\t\t\tif ('requestAnimationFrame' in window) {\r\n\t\t\t\t\t\t\t\t\treturn function (callback) {\r\n\t\t\t\t\t\t\t\t\t\treturn window.requestAnimationFrame(callback);\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn function (callback) {\r\n\t\t\t\t\t\t\t\t\treturn callback();\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}();\r\n\r\n\t\t\t\t\t\t\tthis.vendors = ['moz', 'webkit'];\r\n\r\n\t\t\t\t\t\t\tthis.start = this.start.bind(this);\r\n\t\t\t\t\t\t\tthis.resetAnimation = this.resetAnimation.bind(this);\r\n\t\t\t\t\t\t\tthis.scrollHandler = this.scrollHandler.bind(this);\r\n\t\t\t\t\t\t\tthis.scrollCallback = this.scrollCallback.bind(this);\r\n\t\t\t\t\t\t\tthis.scrolled = true;\r\n\t\t\t\t\t\t\tthis.config = extend(options, this.defaults);\r\n\t\t\t\t\t\t\tif (options.scrollContainer != null) {\r\n\t\t\t\t\t\t\t\tthis.config.scrollContainer = document.querySelector(options.scrollContainer);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// Map of elements to animation names:\r\n\t\t\t\t\t\t\tthis.animationNameCache = new WeakMap();\r\n\t\t\t\t\t\t\tthis.wowEvent = createEvent(this.config.boxClass);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t_createClass(WOW, [{\r\n\t\t\t\t\t\t\tkey: 'init',\r\n\t\t\t\t\t\t\tvalue: function init() {\r\n\t\t\t\t\t\t\t\tthis.element = window.document.documentElement;\r\n\t\t\t\t\t\t\t\tif (isIn(document.readyState, ['interactive', 'complete'])) {\r\n\t\t\t\t\t\t\t\t\tthis.start();\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\taddEvent(document, 'DOMContentLoaded', this.start);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis.finished = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'start',\r\n\t\t\t\t\t\t\tvalue: function start() {\r\n\t\t\t\t\t\t\t\tvar _this = this;\r\n\r\n\t\t\t\t\t\t\t\tthis.stopped = false;\r\n\t\t\t\t\t\t\t\tthis.boxes = [].slice.call(this.element.querySelectorAll('.' + this.config.boxClass));\r\n\t\t\t\t\t\t\t\tthis.all = this.boxes.slice(0);\r\n\t\t\t\t\t\t\t\tif (this.boxes.length) {\r\n\t\t\t\t\t\t\t\t\tif (this.disabled()) {\r\n\t\t\t\t\t\t\t\t\t\tthis.resetStyle();\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < this.boxes.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar box = this.boxes[i];\r\n\t\t\t\t\t\t\t\t\t\t\tthis.applyStyle(box, true);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!this.disabled()) {\r\n\t\t\t\t\t\t\t\t\taddEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\r\n\t\t\t\t\t\t\t\t\taddEvent(window, 'resize', this.scrollHandler);\r\n\t\t\t\t\t\t\t\t\tthis.interval = setInterval(this.scrollCallback, 50);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (this.config.live) {\r\n\t\t\t\t\t\t\t\t\tvar mut = new MutationObserver(function (records) {\r\n\t\t\t\t\t\t\t\t\t\tfor (var j = 0; j < records.length; j++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar record = records[j];\r\n\t\t\t\t\t\t\t\t\t\t\tfor (var k = 0; k < record.addedNodes.length; k++) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar node = record.addedNodes[k];\r\n\t\t\t\t\t\t\t\t\t\t\t\t_this.doSync(node);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tmut.observe(document.body, {\r\n\t\t\t\t\t\t\t\t\t\tchildList: true,\r\n\t\t\t\t\t\t\t\t\t\tsubtree: true\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'stop',\r\n\t\t\t\t\t\t\tvalue: function stop() {\r\n\t\t\t\t\t\t\t\tthis.stopped = true;\r\n\t\t\t\t\t\t\t\tremoveEvent(this.config.scrollContainer || window, 'scroll', this.scrollHandler);\r\n\t\t\t\t\t\t\t\tremoveEvent(window, 'resize', this.scrollHandler);\r\n\t\t\t\t\t\t\t\tif (this.interval != null) {\r\n\t\t\t\t\t\t\t\t\tclearInterval(this.interval);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'sync',\r\n\t\t\t\t\t\t\tvalue: function sync() {\r\n\t\t\t\t\t\t\t\tif (MutationObserver.notSupported) {\r\n\t\t\t\t\t\t\t\t\tthis.doSync(this.element);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'doSync',\r\n\t\t\t\t\t\t\tvalue: function doSync(element) {\r\n\t\t\t\t\t\t\t\tif (typeof element === 'undefined' || element === null) {\r\n\t\t\t\t\t\t\t\t\telement = this.element;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (element.nodeType !== 1) {\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telement = element.parentNode || element;\r\n\t\t\t\t\t\t\t\tvar iterable = element.querySelectorAll('.' + this.config.boxClass);\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < iterable.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar box = iterable[i];\r\n\t\t\t\t\t\t\t\t\tif (!isIn(box, this.all)) {\r\n\t\t\t\t\t\t\t\t\t\tthis.boxes.push(box);\r\n\t\t\t\t\t\t\t\t\t\tthis.all.push(box);\r\n\t\t\t\t\t\t\t\t\t\tif (this.stopped || this.disabled()) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.resetStyle();\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.applyStyle(box, true);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tthis.scrolled = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'show',\r\n\t\t\t\t\t\t\tvalue: function show(box) {\r\n\t\t\t\t\t\t\t\tthis.applyStyle(box);\r\n\t\t\t\t\t\t\t\tbox.className = box.className + ' ' + this.config.animateClass;\r\n\t\t\t\t\t\t\t\tif (this.config.callback != null) {\r\n\t\t\t\t\t\t\t\t\tthis.config.callback(box);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\temitEvent(box, this.wowEvent);\r\n\r\n\t\t\t\t\t\t\t\taddEvent(box, 'animationend', this.resetAnimation);\r\n\t\t\t\t\t\t\t\taddEvent(box, 'oanimationend', this.resetAnimation);\r\n\t\t\t\t\t\t\t\taddEvent(box, 'webkitAnimationEnd', this.resetAnimation);\r\n\t\t\t\t\t\t\t\taddEvent(box, 'MSAnimationEnd', this.resetAnimation);\r\n\r\n\t\t\t\t\t\t\t\treturn box;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'applyStyle',\r\n\t\t\t\t\t\t\tvalue: function applyStyle(box, hidden) {\r\n\t\t\t\t\t\t\t\tvar _this2 = this;\r\n\r\n\t\t\t\t\t\t\t\tvar duration = box.getAttribute('data-wow-duration');\r\n\t\t\t\t\t\t\t\tvar delay = box.getAttribute('data-wow-delay');\r\n\t\t\t\t\t\t\t\tvar iteration = box.getAttribute('data-wow-iteration');\r\n\r\n\t\t\t\t\t\t\t\treturn this.animate(function () {\r\n\t\t\t\t\t\t\t\t\treturn _this2.customStyle(box, hidden, duration, delay, iteration);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'resetStyle',\r\n\t\t\t\t\t\t\tvalue: function resetStyle() {\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < this.boxes.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar box = this.boxes[i];\r\n\t\t\t\t\t\t\t\t\tbox.style.visibility = 'visible';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'resetAnimation',\r\n\t\t\t\t\t\t\tvalue: function resetAnimation(event) {\r\n\t\t\t\t\t\t\t\tif (event.type.toLowerCase().indexOf('animationend') >= 0) {\r\n\t\t\t\t\t\t\t\t\tvar target = event.target || event.srcElement;\r\n\t\t\t\t\t\t\t\t\ttarget.className = target.className.replace(this.config.animateClass, '').trim();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'customStyle',\r\n\t\t\t\t\t\t\tvalue: function customStyle(box, hidden, duration, delay, iteration) {\r\n\t\t\t\t\t\t\t\tif (hidden) {\r\n\t\t\t\t\t\t\t\t\tthis.cacheAnimationName(box);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbox.style.visibility = hidden ? 'hidden' : 'visible';\r\n\r\n\t\t\t\t\t\t\t\tif (duration) {\r\n\t\t\t\t\t\t\t\t\tthis.vendorSet(box.style, { animationDuration: duration });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (delay) {\r\n\t\t\t\t\t\t\t\t\tthis.vendorSet(box.style, { animationDelay: delay });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (iteration) {\r\n\t\t\t\t\t\t\t\t\tthis.vendorSet(box.style, { animationIterationCount: iteration });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis.vendorSet(box.style, { animationName: hidden ? 'none' : this.cachedAnimationName(box) });\r\n\r\n\t\t\t\t\t\t\t\treturn box;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'vendorSet',\r\n\t\t\t\t\t\t\tvalue: function vendorSet(elem, properties) {\r\n\t\t\t\t\t\t\t\tfor (var name in properties) {\r\n\t\t\t\t\t\t\t\t\tif (properties.hasOwnProperty(name)) {\r\n\t\t\t\t\t\t\t\t\t\tvar value = properties[name];\r\n\t\t\t\t\t\t\t\t\t\telem['' + name] = value;\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < this.vendors.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar vendor = this.vendors[i];\r\n\t\t\t\t\t\t\t\t\t\t\telem['' + vendor + name.charAt(0).toUpperCase() + name.substr(1)] = value;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'vendorCSS',\r\n\t\t\t\t\t\t\tvalue: function vendorCSS(elem, property) {\r\n\t\t\t\t\t\t\t\tvar style = getComputedStyle(elem);\r\n\t\t\t\t\t\t\t\tvar result = style.getPropertyCSSValue(property);\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < this.vendors.length; i++) {\r\n\t\t\t\t\t\t\t\t\tvar vendor = this.vendors[i];\r\n\t\t\t\t\t\t\t\t\tresult = result || style.getPropertyCSSValue('-' + vendor + '-' + property);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'animationName',\r\n\t\t\t\t\t\t\tvalue: function animationName(box) {\r\n\t\t\t\t\t\t\t\tvar aName = void 0;\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\taName = this.vendorCSS(box, 'animation-name').cssText;\r\n\t\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\t\t// Opera, fall back to plain property value\r\n\t\t\t\t\t\t\t\t\taName = getComputedStyle(box).getPropertyValue('animation-name');\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (aName === 'none') {\r\n\t\t\t\t\t\t\t\t\treturn ''; // SVG/Firefox, unable to get animation name?\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn aName;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'cacheAnimationName',\r\n\t\t\t\t\t\t\tvalue: function cacheAnimationName(box) {\r\n\t\t\t\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=921834\r\n\t\t\t\t\t\t\t\t// box.dataset is not supported for SVG elements in Firefox\r\n\t\t\t\t\t\t\t\treturn this.animationNameCache.set(box, this.animationName(box));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'cachedAnimationName',\r\n\t\t\t\t\t\t\tvalue: function cachedAnimationName(box) {\r\n\t\t\t\t\t\t\t\treturn this.animationNameCache.get(box);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'scrollHandler',\r\n\t\t\t\t\t\t\tvalue: function scrollHandler() {\r\n\t\t\t\t\t\t\t\tthis.scrolled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'scrollCallback',\r\n\t\t\t\t\t\t\tvalue: function scrollCallback() {\r\n\t\t\t\t\t\t\t\tif (this.scrolled) {\r\n\t\t\t\t\t\t\t\t\tthis.scrolled = false;\r\n\t\t\t\t\t\t\t\t\tvar results = [];\r\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < this.boxes.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\tvar box = this.boxes[i];\r\n\t\t\t\t\t\t\t\t\t\tif (box) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.isVisible(box)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.show(box);\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tresults.push(box);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tthis.boxes = results;\r\n\t\t\t\t\t\t\t\t\tif (!this.boxes.length && !this.config.live) {\r\n\t\t\t\t\t\t\t\t\t\tthis.stop();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'offsetTop',\r\n\t\t\t\t\t\t\tvalue: function offsetTop(element) {\r\n\t\t\t\t\t\t\t\t// SVG elements don't have an offsetTop in Firefox.\r\n\t\t\t\t\t\t\t\t// This will use their nearest parent that has an offsetTop.\r\n\t\t\t\t\t\t\t\t// Also, using ('offsetTop' of element) causes an exception in Firefox.\r\n\t\t\t\t\t\t\t\twhile (element.offsetTop === undefined) {\r\n\t\t\t\t\t\t\t\t\telement = element.parentNode;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvar top = element.offsetTop;\r\n\t\t\t\t\t\t\t\twhile (element.offsetParent) {\r\n\t\t\t\t\t\t\t\t\telement = element.offsetParent;\r\n\t\t\t\t\t\t\t\t\ttop += element.offsetTop;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn top;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'isVisible',\r\n\t\t\t\t\t\t\tvalue: function isVisible(box) {\r\n\t\t\t\t\t\t\t\tvar offset = box.getAttribute('data-wow-offset') || this.config.offset;\r\n\t\t\t\t\t\t\t\tvar viewTop = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset;\r\n\t\t\t\t\t\t\t\tvar viewBottom = viewTop + Math.min(this.element.clientHeight, getInnerHeight()) - offset;\r\n\t\t\t\t\t\t\t\tvar top = this.offsetTop(box);\r\n\t\t\t\t\t\t\t\tvar bottom = top + box.clientHeight;\r\n\r\n\t\t\t\t\t\t\t\treturn top <= viewBottom && bottom >= viewTop;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tkey: 'disabled',\r\n\t\t\t\t\t\t\tvalue: function disabled() {\r\n\t\t\t\t\t\t\t\treturn !this.config.mobile && isMobile(navigator.userAgent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}]);\r\n\r\n\t\t\t\t\t\treturn WOW;\r\n\t\t\t\t\t}();\r\n\r\n\t\t\t\t\texports.default = WOW;\r\n\t\t\t\t\tmodule.exports = exports['default'];\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t/***/\r\n})\r\n\r\n\t\t/******/\r\n});\r\n/************************************************************************/\r\n/******/ \t// The module cache\r\n/******/ \tvar __webpack_module_cache__ = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\r\n/******/ \t\tif (cachedModule !== undefined) {\r\n/******/ \t\t\treturn cachedModule.exports;\r\n\t\t\t/******/\r\n}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\r\n/******/ \t\t\t// no module.id needed\r\n/******/ \t\t\t// no module.loaded needed\r\n/******/ \t\t\texports: {}\r\n\t\t\t/******/\r\n};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n\t\t/******/\r\n}\r\n/******/\r\n/************************************************************************/\r\n/******/ \t/* webpack/runtime/compat get default export */\r\n/******/ \t(() => {\r\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t\t__webpack_require__.n = (module) => {\r\n/******/ \t\t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\t\t() => (module['default']) :\r\n/******/ \t\t\t\t() => (module);\r\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\r\n/******/ \t\t\treturn getter;\r\n\t\t\t/******/\r\n};\r\n\t\t/******/\r\n})();\r\n/******/\r\n/******/ \t/* webpack/runtime/define property getters */\r\n/******/ \t(() => {\r\n/******/ \t\t// define getter functions for harmony exports\r\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\r\n/******/ \t\t\tfor (var key in definition) {\r\n/******/ \t\t\t\tif (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\r\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\r\n\t\t\t\t\t/******/\r\n}\r\n\t\t\t\t/******/\r\n}\r\n\t\t\t/******/\r\n};\r\n\t\t/******/\r\n})();\r\n/******/\r\n/******/ \t/* webpack/runtime/global */\r\n/******/ \t(() => {\r\n/******/ \t\t__webpack_require__.g = (function () {\r\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\r\n/******/ \t\t\ttry {\r\n/******/ \t\t\t\treturn this || new Function('return this')();\r\n\t\t\t\t/******/\r\n} catch (e) {\r\n/******/ \t\t\t\tif (typeof window === 'object') return window;\r\n\t\t\t\t/******/\r\n}\r\n\t\t\t/******/\r\n})();\r\n\t\t/******/\r\n})();\r\n/******/\r\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\r\n/******/ \t(() => {\r\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\r\n\t\t/******/\r\n})();\r\n\t/******/\r\n\t/************************************************************************/\r\n\tvar __webpack_exports__ = {};\r\n\t// This entry need to be wrapped in an IIFE because it need to be in strict mode.\r\n\t(() => {\r\n\t\t\"use strict\";\r\n\r\n\t\t// EXTERNAL MODULE: ./node_modules/jquery/dist/jquery.js\r\n\t\tvar jquery = __webpack_require__(755);\r\n\t\tvar jquery_default = /*#__PURE__*/__webpack_require__.n(jquery);\r\n\t\t// EXTERNAL MODULE: ./node_modules/wow.js/dist/wow.js\r\n\t\tvar wow = __webpack_require__(630);\r\n\t\tvar wow_default = /*#__PURE__*/__webpack_require__.n(wow);\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue/dist/vue.esm.js\r\n\t\t/*!\r\n\t\t * Vue.js v2.6.14\r\n\t\t * (c) 2014-2021 Evan You\r\n\t\t * Released under the MIT License.\r\n\t\t */\r\n\t\t/*  */\r\n\r\n\t\tvar emptyObject = Object.freeze({});\r\n\r\n\t\t// These helpers produce better VM code in JS engines due to their\r\n\t\t// explicitness and function inlining.\r\n\t\tfunction isUndef(v) {\r\n\t\t\treturn v === undefined || v === null\r\n\t\t}\r\n\r\n\t\tfunction isDef(v) {\r\n\t\t\treturn v !== undefined && v !== null\r\n\t\t}\r\n\r\n\t\tfunction isTrue(v) {\r\n\t\t\treturn v === true\r\n\t\t}\r\n\r\n\t\tfunction isFalse(v) {\r\n\t\t\treturn v === false\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Check if value is primitive.\r\n\t\t */\r\n\t\tfunction isPrimitive(value) {\r\n\t\t\treturn (\r\n\t\t\t\ttypeof value === 'string' ||\r\n\t\t\t\ttypeof value === 'number' ||\r\n\t\t\t\t// $flow-disable-line\r\n\t\t\t\ttypeof value === 'symbol' ||\r\n\t\t\t\ttypeof value === 'boolean'\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Quick object check - this is primarily used to tell\r\n\t\t * Objects from primitive values when we know the value\r\n\t\t * is a JSON-compliant type.\r\n\t\t */\r\n\t\tfunction isObject(obj) {\r\n\t\t\treturn obj !== null && typeof obj === 'object'\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the raw type string of a value, e.g., [object Object].\r\n\t\t */\r\n\t\tvar _toString = Object.prototype.toString;\r\n\r\n\t\tfunction toRawType(value) {\r\n\t\t\treturn _toString.call(value).slice(8, -1)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Strict object type check. Only returns true\r\n\t\t * for plain JavaScript objects.\r\n\t\t */\r\n\t\tfunction isPlainObject(obj) {\r\n\t\t\treturn _toString.call(obj) === '[object Object]'\r\n\t\t}\r\n\r\n\t\tfunction isRegExp(v) {\r\n\t\t\treturn _toString.call(v) === '[object RegExp]'\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Check if val is a valid array index.\r\n\t\t */\r\n\t\tfunction isValidArrayIndex(val) {\r\n\t\t\tvar n = parseFloat(String(val));\r\n\t\t\treturn n >= 0 && Math.floor(n) === n && isFinite(val)\r\n\t\t}\r\n\r\n\t\tfunction isPromise(val) {\r\n\t\t\treturn (\r\n\t\t\t\tisDef(val) &&\r\n\t\t\t\ttypeof val.then === 'function' &&\r\n\t\t\t\ttypeof val.catch === 'function'\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Convert a value to a string that is actually rendered.\r\n\t\t */\r\n\t\tfunction vue_esm_toString(val) {\r\n\t\t\treturn val == null\r\n\t\t\t\t? ''\r\n\t\t\t\t: Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\r\n\t\t\t\t\t? JSON.stringify(val, null, 2)\r\n\t\t\t\t\t: String(val)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Convert an input value to a number for persistence.\r\n\t\t * If the conversion fails, return original string.\r\n\t\t */\r\n\t\tfunction toNumber(val) {\r\n\t\t\tvar n = parseFloat(val);\r\n\t\t\treturn isNaN(n) ? val : n\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make a map and return a function for checking if a key\r\n\t\t * is in that map.\r\n\t\t */\r\n\t\tfunction makeMap(\r\n\t\t\tstr,\r\n\t\t\texpectsLowerCase\r\n\t\t) {\r\n\t\t\tvar map = Object.create(null);\r\n\t\t\tvar list = str.split(',');\r\n\t\t\tfor (var i = 0; i < list.length; i++) {\r\n\t\t\t\tmap[list[i]] = true;\r\n\t\t\t}\r\n\t\t\treturn expectsLowerCase\r\n\t\t\t\t? function (val) { return map[val.toLowerCase()]; }\r\n\t\t\t\t: function (val) { return map[val]; }\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Check if a tag is a built-in tag.\r\n\t\t */\r\n\t\tvar isBuiltInTag = makeMap('slot,component', true);\r\n\r\n\t\t/**\r\n\t\t * Check if an attribute is a reserved attribute.\r\n\t\t */\r\n\t\tvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n\r\n\t\t/**\r\n\t\t * Remove an item from an array.\r\n\t\t */\r\n\t\tfunction remove(arr, item) {\r\n\t\t\tif (arr.length) {\r\n\t\t\t\tvar index = arr.indexOf(item);\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\treturn arr.splice(index, 1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Check whether an object has the property.\r\n\t\t */\r\n\t\tvar vue_esm_hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\t\tfunction hasOwn(obj, key) {\r\n\t\t\treturn vue_esm_hasOwnProperty.call(obj, key)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Create a cached version of a pure function.\r\n\t\t */\r\n\t\tfunction cached(fn) {\r\n\t\t\tvar cache = Object.create(null);\r\n\t\t\treturn (function cachedFn(str) {\r\n\t\t\t\tvar hit = cache[str];\r\n\t\t\t\treturn hit || (cache[str] = fn(str))\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Camelize a hyphen-delimited string.\r\n\t\t */\r\n\t\tvar camelizeRE = /-(\\w)/g;\r\n\t\tvar camelize = cached(function (str) {\r\n\t\t\treturn str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Capitalize a string.\r\n\t\t */\r\n\t\tvar capitalize = cached(function (str) {\r\n\t\t\treturn str.charAt(0).toUpperCase() + str.slice(1)\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Hyphenate a camelCase string.\r\n\t\t */\r\n\t\tvar hyphenateRE = /\\B([A-Z])/g;\r\n\t\tvar hyphenate = cached(function (str) {\r\n\t\t\treturn str.replace(hyphenateRE, '-$1').toLowerCase()\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Simple bind polyfill for environments that do not support it,\r\n\t\t * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n\t\t * since native bind is now performant enough in most browsers.\r\n\t\t * But removing it would mean breaking code that was able to run in\r\n\t\t * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n\t\t */\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tfunction polyfillBind(fn, ctx) {\r\n\t\t\tfunction boundFn(a) {\r\n\t\t\t\tvar l = arguments.length;\r\n\t\t\t\treturn l\r\n\t\t\t\t\t? l > 1\r\n\t\t\t\t\t\t? fn.apply(ctx, arguments)\r\n\t\t\t\t\t\t: fn.call(ctx, a)\r\n\t\t\t\t\t: fn.call(ctx)\r\n\t\t\t}\r\n\r\n\t\t\tboundFn._length = fn.length;\r\n\t\t\treturn boundFn\r\n\t\t}\r\n\r\n\t\tfunction nativeBind(fn, ctx) {\r\n\t\t\treturn fn.bind(ctx)\r\n\t\t}\r\n\r\n\t\tvar bind = Function.prototype.bind\r\n\t\t\t? nativeBind\r\n\t\t\t: polyfillBind;\r\n\r\n\t\t/**\r\n\t\t * Convert an Array-like object to a real Array.\r\n\t\t */\r\n\t\tfunction toArray(list, start) {\r\n\t\t\tstart = start || 0;\r\n\t\t\tvar i = list.length - start;\r\n\t\t\tvar ret = new Array(i);\r\n\t\t\twhile (i--) {\r\n\t\t\t\tret[i] = list[i + start];\r\n\t\t\t}\r\n\t\t\treturn ret\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Mix properties into target object.\r\n\t\t */\r\n\t\tfunction extend(to, _from) {\r\n\t\t\tfor (var key in _from) {\r\n\t\t\t\tto[key] = _from[key];\r\n\t\t\t}\r\n\t\t\treturn to\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Merge an Array of Objects into a single Object.\r\n\t\t */\r\n\t\tfunction toObject(arr) {\r\n\t\t\tvar res = {};\r\n\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\tif (arr[i]) {\r\n\t\t\t\t\textend(res, arr[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/* eslint-disable no-unused-vars */\r\n\r\n\t\t/**\r\n\t\t * Perform no operation.\r\n\t\t * Stubbing args to make Flow happy without leaving useless transpiled code\r\n\t\t * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n\t\t */\r\n\t\tfunction noop(a, b, c) { }\r\n\r\n\t\t/**\r\n\t\t * Always return false.\r\n\t\t */\r\n\t\tvar no = function (a, b, c) { return false; };\r\n\r\n\t\t/* eslint-enable no-unused-vars */\r\n\r\n\t\t/**\r\n\t\t * Return the same value.\r\n\t\t */\r\n\t\tvar identity = function (_) { return _; };\r\n\r\n\t\t/**\r\n\t\t * Generate a string containing static keys from compiler modules.\r\n\t\t */\r\n\t\tfunction genStaticKeys(modules) {\r\n\t\t\treturn modules.reduce(function (keys, m) {\r\n\t\t\t\treturn keys.concat(m.staticKeys || [])\r\n\t\t\t}, []).join(',')\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Check if two values are loosely equal - that is,\r\n\t\t * if they are plain objects, do they have the same shape?\r\n\t\t */\r\n\t\tfunction looseEqual(a, b) {\r\n\t\t\tif (a === b) { return true }\r\n\t\t\tvar isObjectA = isObject(a);\r\n\t\t\tvar isObjectB = isObject(b);\r\n\t\t\tif (isObjectA && isObjectB) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar isArrayA = Array.isArray(a);\r\n\t\t\t\t\tvar isArrayB = Array.isArray(b);\r\n\t\t\t\t\tif (isArrayA && isArrayB) {\r\n\t\t\t\t\t\treturn a.length === b.length && a.every(function (e, i) {\r\n\t\t\t\t\t\t\treturn looseEqual(e, b[i])\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else if (a instanceof Date && b instanceof Date) {\r\n\t\t\t\t\t\treturn a.getTime() === b.getTime()\r\n\t\t\t\t\t} else if (!isArrayA && !isArrayB) {\r\n\t\t\t\t\t\tvar keysA = Object.keys(a);\r\n\t\t\t\t\t\tvar keysB = Object.keys(b);\r\n\t\t\t\t\t\treturn keysA.length === keysB.length && keysA.every(function (key) {\r\n\t\t\t\t\t\t\treturn looseEqual(a[key], b[key])\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t} else if (!isObjectA && !isObjectB) {\r\n\t\t\t\treturn String(a) === String(b)\r\n\t\t\t} else {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Return the first index at which a loosely equal value can be\r\n\t\t * found in the array (if value is a plain object, the array must\r\n\t\t * contain an object of the same shape), or -1 if it is not present.\r\n\t\t */\r\n\t\tfunction looseIndexOf(arr, val) {\r\n\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\tif (looseEqual(arr[i], val)) { return i }\r\n\t\t\t}\r\n\t\t\treturn -1\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Ensure a function is called only once.\r\n\t\t */\r\n\t\tfunction once(fn) {\r\n\t\t\tvar called = false;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (!called) {\r\n\t\t\t\t\tcalled = true;\r\n\t\t\t\t\tfn.apply(this, arguments);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar SSR_ATTR = 'data-server-rendered';\r\n\r\n\t\tvar ASSET_TYPES = [\r\n\t\t\t'component',\r\n\t\t\t'directive',\r\n\t\t\t'filter'\r\n\t\t];\r\n\r\n\t\tvar LIFECYCLE_HOOKS = [\r\n\t\t\t'beforeCreate',\r\n\t\t\t'created',\r\n\t\t\t'beforeMount',\r\n\t\t\t'mounted',\r\n\t\t\t'beforeUpdate',\r\n\t\t\t'updated',\r\n\t\t\t'beforeDestroy',\r\n\t\t\t'destroyed',\r\n\t\t\t'activated',\r\n\t\t\t'deactivated',\r\n\t\t\t'errorCaptured',\r\n\t\t\t'serverPrefetch'\r\n\t\t];\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\tvar config = ({\r\n\t\t\t/**\r\n\t\t\t * Option merge strategies (used in core/util/options)\r\n\t\t\t */\r\n\t\t\t// $flow-disable-line\r\n\t\t\toptionMergeStrategies: Object.create(null),\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether to suppress warnings.\r\n\t\t\t */\r\n\t\t\tsilent: false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Show production mode tip message on boot?\r\n\t\t\t */\r\n\t\t\tproductionTip: \"production\" !== 'production',\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether to enable devtools\r\n\t\t\t */\r\n\t\t\tdevtools: \"production\" !== 'production',\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether to record perf\r\n\t\t\t */\r\n\t\t\tperformance: false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Error handler for watcher errors\r\n\t\t\t */\r\n\t\t\terrorHandler: null,\r\n\r\n\t\t\t/**\r\n\t\t\t * Warn handler for watcher warns\r\n\t\t\t */\r\n\t\t\twarnHandler: null,\r\n\r\n\t\t\t/**\r\n\t\t\t * Ignore certain custom elements\r\n\t\t\t */\r\n\t\t\tignoredElements: [],\r\n\r\n\t\t\t/**\r\n\t\t\t * Custom user key aliases for v-on\r\n\t\t\t */\r\n\t\t\t// $flow-disable-line\r\n\t\t\tkeyCodes: Object.create(null),\r\n\r\n\t\t\t/**\r\n\t\t\t * Check if a tag is reserved so that it cannot be registered as a\r\n\t\t\t * component. This is platform-dependent and may be overwritten.\r\n\t\t\t */\r\n\t\t\tisReservedTag: no,\r\n\r\n\t\t\t/**\r\n\t\t\t * Check if an attribute is reserved so that it cannot be used as a component\r\n\t\t\t * prop. This is platform-dependent and may be overwritten.\r\n\t\t\t */\r\n\t\t\tisReservedAttr: no,\r\n\r\n\t\t\t/**\r\n\t\t\t * Check if a tag is an unknown element.\r\n\t\t\t * Platform-dependent.\r\n\t\t\t */\r\n\t\t\tisUnknownElement: no,\r\n\r\n\t\t\t/**\r\n\t\t\t * Get the namespace of an element\r\n\t\t\t */\r\n\t\t\tgetTagNamespace: noop,\r\n\r\n\t\t\t/**\r\n\t\t\t * Parse the real tag name for the specific platform.\r\n\t\t\t */\r\n\t\t\tparsePlatformTagName: identity,\r\n\r\n\t\t\t/**\r\n\t\t\t * Check if an attribute must be bound using property, e.g. value\r\n\t\t\t * Platform-dependent.\r\n\t\t\t */\r\n\t\t\tmustUseProp: no,\r\n\r\n\t\t\t/**\r\n\t\t\t * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n\t\t\t * This will significantly reduce performance if set to false.\r\n\t\t\t */\r\n\t\t\tasync: true,\r\n\r\n\t\t\t/**\r\n\t\t\t * Exposed for legacy reasons\r\n\t\t\t */\r\n\t\t\t_lifecycleHooks: LIFECYCLE_HOOKS\r\n\t\t});\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * unicode letters used for parsing html tags, component names and property paths.\r\n\t\t * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n\t\t * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n\t\t */\r\n\t\tvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n\r\n\t\t/**\r\n\t\t * Check if a string starts with $ or _\r\n\t\t */\r\n\t\tfunction isReserved(str) {\r\n\t\t\tvar c = (str + '').charCodeAt(0);\r\n\t\t\treturn c === 0x24 || c === 0x5F\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Define a property.\r\n\t\t */\r\n\t\tfunction def(obj, key, val, enumerable) {\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tvalue: val,\r\n\t\t\t\tenumerable: !!enumerable,\r\n\t\t\t\twritable: true,\r\n\t\t\t\tconfigurable: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Parse simple path.\r\n\t\t */\r\n\t\tvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\r\n\t\tfunction parsePath(path) {\r\n\t\t\tif (bailRE.test(path)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar segments = path.split('.');\r\n\t\t\treturn function (obj) {\r\n\t\t\t\tfor (var i = 0; i < segments.length; i++) {\r\n\t\t\t\t\tif (!obj) { return }\r\n\t\t\t\t\tobj = obj[segments[i]];\r\n\t\t\t\t}\r\n\t\t\t\treturn obj\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t// can we use __proto__?\r\n\t\tvar hasProto = '__proto__' in {};\r\n\r\n\t\t// Browser environment sniffing\r\n\t\tvar inBrowser = typeof window !== 'undefined';\r\n\t\tvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\r\n\t\tvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\r\n\t\tvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\n\t\tvar isIE = UA && /msie|trident/.test(UA);\r\n\t\tvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\n\t\tvar isEdge = UA && UA.indexOf('edge/') > 0;\r\n\t\tvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\r\n\t\tvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\r\n\t\tvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\n\t\tvar isPhantomJS = UA && /phantomjs/.test(UA);\r\n\t\tvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n\r\n\t\t// Firefox has a \"watch\" function on Object.prototype...\r\n\t\tvar nativeWatch = ({}).watch;\r\n\r\n\t\tvar supportsPassive = false;\r\n\t\tif (inBrowser) {\r\n\t\t\ttry {\r\n\t\t\t\tvar opts = {};\r\n\t\t\t\tObject.defineProperty(opts, 'passive', ({\r\n\t\t\t\t\tget: function get() {\r\n\t\t\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\t\t\tsupportsPassive = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})); // https://github.com/facebook/flow/issues/285\r\n\t\t\t\twindow.addEventListener('test-passive', null, opts);\r\n\t\t\t} catch (e) { }\r\n\t\t}\r\n\r\n\t\t// this needs to be lazy-evaled because vue may be required before\r\n\t\t// vue-server-renderer can set VUE_ENV\r\n\t\tvar _isServer;\r\n\t\tvar isServerRendering = function () {\r\n\t\t\tif (_isServer === undefined) {\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (!inBrowser && !inWeex && typeof __webpack_require__.g !== 'undefined') {\r\n\t\t\t\t\t// detect presence of vue-server-renderer and avoid\r\n\t\t\t\t\t// Webpack shimming the process\r\n\t\t\t\t\t_isServer = __webpack_require__.g['process'] && __webpack_require__.g['process'].env.VUE_ENV === 'server';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_isServer = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn _isServer\r\n\t\t};\r\n\r\n\t\t// detect devtools\r\n\t\tvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tfunction isNative(Ctor) {\r\n\t\t\treturn typeof Ctor === 'function' && /native code/.test(Ctor.toString())\r\n\t\t}\r\n\r\n\t\tvar hasSymbol =\r\n\t\t\ttypeof Symbol !== 'undefined' && isNative(Symbol) &&\r\n\t\t\ttypeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\r\n\r\n\t\tvar _Set;\r\n\t\t/* istanbul ignore if */ // $flow-disable-line\r\n\t\tif (typeof Set !== 'undefined' && isNative(Set)) {\r\n\t\t\t// use native Set when available.\r\n\t\t\t_Set = Set;\r\n\t\t} else {\r\n\t\t\t// a non-standard Set polyfill that only works with primitive keys.\r\n\t\t\t_Set = /*@__PURE__*/(function () {\r\n\t\t\t\tfunction Set() {\r\n\t\t\t\t\tthis.set = Object.create(null);\r\n\t\t\t\t}\r\n\t\t\t\tSet.prototype.has = function has(key) {\r\n\t\t\t\t\treturn this.set[key] === true\r\n\t\t\t\t};\r\n\t\t\t\tSet.prototype.add = function add(key) {\r\n\t\t\t\t\tthis.set[key] = true;\r\n\t\t\t\t};\r\n\t\t\t\tSet.prototype.clear = function clear() {\r\n\t\t\t\t\tthis.set = Object.create(null);\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn Set;\r\n\t\t\t}());\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar warn = noop;\r\n\t\tvar tip = (/* unused pure expression or super */ null && (noop));\r\n\t\tvar generateComponentTrace = ((/* unused pure expression or super */ null && (noop))); // work around flow check\r\n\t\tvar formatComponentName = ((/* unused pure expression or super */ null && (noop)));\r\n\r\n\t\tif (false) { var repeat, classify, classifyRE, hasConsole; }\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar uid = 0;\r\n\r\n\t\t/**\r\n\t\t * A dep is an observable that can have multiple\r\n\t\t * directives subscribing to it.\r\n\t\t */\r\n\t\tvar Dep = function Dep() {\r\n\t\t\tthis.id = uid++;\r\n\t\t\tthis.subs = [];\r\n\t\t};\r\n\r\n\t\tDep.prototype.addSub = function addSub(sub) {\r\n\t\t\tthis.subs.push(sub);\r\n\t\t};\r\n\r\n\t\tDep.prototype.removeSub = function removeSub(sub) {\r\n\t\t\tremove(this.subs, sub);\r\n\t\t};\r\n\r\n\t\tDep.prototype.depend = function depend() {\r\n\t\t\tif (Dep.target) {\r\n\t\t\t\tDep.target.addDep(this);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tDep.prototype.notify = function notify() {\r\n\t\t\t// stabilize the subscriber list first\r\n\t\t\tvar subs = this.subs.slice();\r\n\t\t\tif (false) { }\r\n\t\t\tfor (var i = 0, l = subs.length; i < l; i++) {\r\n\t\t\t\tsubs[i].update();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// The current target watcher being evaluated.\r\n\t\t// This is globally unique because only one watcher\r\n\t\t// can be evaluated at a time.\r\n\t\tDep.target = null;\r\n\t\tvar targetStack = [];\r\n\r\n\t\tfunction pushTarget(target) {\r\n\t\t\ttargetStack.push(target);\r\n\t\t\tDep.target = target;\r\n\t\t}\r\n\r\n\t\tfunction popTarget() {\r\n\t\t\ttargetStack.pop();\r\n\t\t\tDep.target = targetStack[targetStack.length - 1];\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar VNode = function VNode(\r\n\t\t\ttag,\r\n\t\t\tdata,\r\n\t\t\tchildren,\r\n\t\t\ttext,\r\n\t\t\telm,\r\n\t\t\tcontext,\r\n\t\t\tcomponentOptions,\r\n\t\t\tasyncFactory\r\n\t\t) {\r\n\t\t\tthis.tag = tag;\r\n\t\t\tthis.data = data;\r\n\t\t\tthis.children = children;\r\n\t\t\tthis.text = text;\r\n\t\t\tthis.elm = elm;\r\n\t\t\tthis.ns = undefined;\r\n\t\t\tthis.context = context;\r\n\t\t\tthis.fnContext = undefined;\r\n\t\t\tthis.fnOptions = undefined;\r\n\t\t\tthis.fnScopeId = undefined;\r\n\t\t\tthis.key = data && data.key;\r\n\t\t\tthis.componentOptions = componentOptions;\r\n\t\t\tthis.componentInstance = undefined;\r\n\t\t\tthis.parent = undefined;\r\n\t\t\tthis.raw = false;\r\n\t\t\tthis.isStatic = false;\r\n\t\t\tthis.isRootInsert = true;\r\n\t\t\tthis.isComment = false;\r\n\t\t\tthis.isCloned = false;\r\n\t\t\tthis.isOnce = false;\r\n\t\t\tthis.asyncFactory = asyncFactory;\r\n\t\t\tthis.asyncMeta = undefined;\r\n\t\t\tthis.isAsyncPlaceholder = false;\r\n\t\t};\r\n\r\n\t\tvar prototypeAccessors = { child: { configurable: true } };\r\n\r\n\t\t// DEPRECATED: alias for componentInstance for backwards compat.\r\n\t\t/* istanbul ignore next */\r\n\t\tprototypeAccessors.child.get = function () {\r\n\t\t\treturn this.componentInstance\r\n\t\t};\r\n\r\n\t\tObject.defineProperties(VNode.prototype, prototypeAccessors);\r\n\r\n\t\tvar createEmptyVNode = function (text) {\r\n\t\t\tif (text === void 0) text = '';\r\n\r\n\t\t\tvar node = new VNode();\r\n\t\t\tnode.text = text;\r\n\t\t\tnode.isComment = true;\r\n\t\t\treturn node\r\n\t\t};\r\n\r\n\t\tfunction createTextVNode(val) {\r\n\t\t\treturn new VNode(undefined, undefined, undefined, String(val))\r\n\t\t}\r\n\r\n\t\t// optimized shallow clone\r\n\t\t// used for static nodes and slot nodes because they may be reused across\r\n\t\t// multiple renders, cloning them avoids errors when DOM manipulations rely\r\n\t\t// on their elm reference.\r\n\t\tfunction cloneVNode(vnode) {\r\n\t\t\tvar cloned = new VNode(\r\n\t\t\t\tvnode.tag,\r\n\t\t\t\tvnode.data,\r\n\t\t\t\t// #7975\r\n\t\t\t\t// clone children array to avoid mutating original in case of cloning\r\n\t\t\t\t// a child.\r\n\t\t\t\tvnode.children && vnode.children.slice(),\r\n\t\t\t\tvnode.text,\r\n\t\t\t\tvnode.elm,\r\n\t\t\t\tvnode.context,\r\n\t\t\t\tvnode.componentOptions,\r\n\t\t\t\tvnode.asyncFactory\r\n\t\t\t);\r\n\t\t\tcloned.ns = vnode.ns;\r\n\t\t\tcloned.isStatic = vnode.isStatic;\r\n\t\t\tcloned.key = vnode.key;\r\n\t\t\tcloned.isComment = vnode.isComment;\r\n\t\t\tcloned.fnContext = vnode.fnContext;\r\n\t\t\tcloned.fnOptions = vnode.fnOptions;\r\n\t\t\tcloned.fnScopeId = vnode.fnScopeId;\r\n\t\t\tcloned.asyncMeta = vnode.asyncMeta;\r\n\t\t\tcloned.isCloned = true;\r\n\t\t\treturn cloned\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\t * not type checking this file because flow doesn't play well with\r\n\t\t * dynamically accessing methods on Array prototype\r\n\t\t */\r\n\r\n\t\tvar arrayProto = Array.prototype;\r\n\t\tvar arrayMethods = Object.create(arrayProto);\r\n\r\n\t\tvar methodsToPatch = [\r\n\t\t\t'push',\r\n\t\t\t'pop',\r\n\t\t\t'shift',\r\n\t\t\t'unshift',\r\n\t\t\t'splice',\r\n\t\t\t'sort',\r\n\t\t\t'reverse'\r\n\t\t];\r\n\r\n\t\t/**\r\n\t\t * Intercept mutating methods and emit events\r\n\t\t */\r\n\t\tmethodsToPatch.forEach(function (method) {\r\n\t\t\t// cache original method\r\n\t\t\tvar original = arrayProto[method];\r\n\t\t\tdef(arrayMethods, method, function mutator() {\r\n\t\t\t\tvar args = [], len = arguments.length;\r\n\t\t\t\twhile (len--) args[len] = arguments[len];\r\n\r\n\t\t\t\tvar result = original.apply(this, args);\r\n\t\t\t\tvar ob = this.__ob__;\r\n\t\t\t\tvar inserted;\r\n\t\t\t\tswitch (method) {\r\n\t\t\t\t\tcase 'push':\r\n\t\t\t\t\tcase 'unshift':\r\n\t\t\t\t\t\tinserted = args;\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 'splice':\r\n\t\t\t\t\t\tinserted = args.slice(2);\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tif (inserted) { ob.observeArray(inserted); }\r\n\t\t\t\t// notify change\r\n\t\t\t\tob.dep.notify();\r\n\t\t\t\treturn result\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\n\r\n\t\t/**\r\n\t\t * In some cases we may want to disable observation inside a component's\r\n\t\t * update computation.\r\n\t\t */\r\n\t\tvar shouldObserve = true;\r\n\r\n\t\tfunction toggleObserving(value) {\r\n\t\t\tshouldObserve = value;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Observer class that is attached to each observed\r\n\t\t * object. Once attached, the observer converts the target\r\n\t\t * object's property keys into getter/setters that\r\n\t\t * collect dependencies and dispatch updates.\r\n\t\t */\r\n\t\tvar Observer = function Observer(value) {\r\n\t\t\tthis.value = value;\r\n\t\t\tthis.dep = new Dep();\r\n\t\t\tthis.vmCount = 0;\r\n\t\t\tdef(value, '__ob__', this);\r\n\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\tif (hasProto) {\r\n\t\t\t\t\tprotoAugment(value, arrayMethods);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcopyAugment(value, arrayMethods, arrayKeys);\r\n\t\t\t\t}\r\n\t\t\t\tthis.observeArray(value);\r\n\t\t\t} else {\r\n\t\t\t\tthis.walk(value);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Walk through all properties and convert them into\r\n\t\t * getter/setters. This method should only be called when\r\n\t\t * value type is Object.\r\n\t\t */\r\n\t\tObserver.prototype.walk = function walk(obj) {\r\n\t\t\tvar keys = Object.keys(obj);\r\n\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\tdefineReactive$$1(obj, keys[i]);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Observe a list of Array items.\r\n\t\t */\r\n\t\tObserver.prototype.observeArray = function observeArray(items) {\r\n\t\t\tfor (var i = 0, l = items.length; i < l; i++) {\r\n\t\t\t\tobserve(items[i]);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// helpers\r\n\r\n\t\t/**\r\n\t\t * Augment a target Object or Array by intercepting\r\n\t\t * the prototype chain using __proto__\r\n\t\t */\r\n\t\tfunction protoAugment(target, src) {\r\n\t\t\t/* eslint-disable no-proto */\r\n\t\t\ttarget.__proto__ = src;\r\n\t\t\t/* eslint-enable no-proto */\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Augment a target Object or Array by defining\r\n\t\t * hidden properties.\r\n\t\t */\r\n\t\t/* istanbul ignore next */\r\n\t\tfunction copyAugment(target, src, keys) {\r\n\t\t\tfor (var i = 0, l = keys.length; i < l; i++) {\r\n\t\t\t\tvar key = keys[i];\r\n\t\t\t\tdef(target, key, src[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Attempt to create an observer instance for a value,\r\n\t\t * returns the new observer if successfully observed,\r\n\t\t * or the existing observer if the value already has one.\r\n\t\t */\r\n\t\tfunction observe(value, asRootData) {\r\n\t\t\tif (!isObject(value) || value instanceof VNode) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar ob;\r\n\t\t\tif (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n\t\t\t\tob = value.__ob__;\r\n\t\t\t} else if (\r\n\t\t\t\tshouldObserve &&\r\n\t\t\t\t!isServerRendering() &&\r\n\t\t\t\t(Array.isArray(value) || isPlainObject(value)) &&\r\n\t\t\t\tObject.isExtensible(value) &&\r\n\t\t\t\t!value._isVue\r\n\t\t\t) {\r\n\t\t\t\tob = new Observer(value);\r\n\t\t\t}\r\n\t\t\tif (asRootData && ob) {\r\n\t\t\t\tob.vmCount++;\r\n\t\t\t}\r\n\t\t\treturn ob\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Define a reactive property on an Object.\r\n\t\t */\r\n\t\tfunction defineReactive$$1(\r\n\t\t\tobj,\r\n\t\t\tkey,\r\n\t\t\tval,\r\n\t\t\tcustomSetter,\r\n\t\t\tshallow\r\n\t\t) {\r\n\t\t\tvar dep = new Dep();\r\n\r\n\t\t\tvar property = Object.getOwnPropertyDescriptor(obj, key);\r\n\t\t\tif (property && property.configurable === false) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t// cater for pre-defined getter/setters\r\n\t\t\tvar getter = property && property.get;\r\n\t\t\tvar setter = property && property.set;\r\n\t\t\tif ((!getter || setter) && arguments.length === 2) {\r\n\t\t\t\tval = obj[key];\r\n\t\t\t}\r\n\r\n\t\t\tvar childOb = !shallow && observe(val);\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tget: function reactiveGetter() {\r\n\t\t\t\t\tvar value = getter ? getter.call(obj) : val;\r\n\t\t\t\t\tif (Dep.target) {\r\n\t\t\t\t\t\tdep.depend();\r\n\t\t\t\t\t\tif (childOb) {\r\n\t\t\t\t\t\t\tchildOb.dep.depend();\r\n\t\t\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\t\t\tdependArray(value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn value\r\n\t\t\t\t},\r\n\t\t\t\tset: function reactiveSetter(newVal) {\r\n\t\t\t\t\tvar value = getter ? getter.call(obj) : val;\r\n\t\t\t\t\t/* eslint-disable no-self-compare */\r\n\t\t\t\t\tif (newVal === value || (newVal !== newVal && value !== value)) {\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* eslint-enable no-self-compare */\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t// #7981: for accessor properties without setter\r\n\t\t\t\t\tif (getter && !setter) { return }\r\n\t\t\t\t\tif (setter) {\r\n\t\t\t\t\t\tsetter.call(obj, newVal);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tval = newVal;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchildOb = !shallow && observe(newVal);\r\n\t\t\t\t\tdep.notify();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Set a property on an object. Adds the new property and\r\n\t\t * triggers change notification if the property doesn't\r\n\t\t * already exist.\r\n\t\t */\r\n\t\tfunction set(target, key, val) {\r\n\t\t\tif (false\r\n\t\t\t) { }\r\n\t\t\tif (Array.isArray(target) && isValidArrayIndex(key)) {\r\n\t\t\t\ttarget.length = Math.max(target.length, key);\r\n\t\t\t\ttarget.splice(key, 1, val);\r\n\t\t\t\treturn val\r\n\t\t\t}\r\n\t\t\tif (key in target && !(key in Object.prototype)) {\r\n\t\t\t\ttarget[key] = val;\r\n\t\t\t\treturn val\r\n\t\t\t}\r\n\t\t\tvar ob = (target).__ob__;\r\n\t\t\tif (target._isVue || (ob && ob.vmCount)) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn val\r\n\t\t\t}\r\n\t\t\tif (!ob) {\r\n\t\t\t\ttarget[key] = val;\r\n\t\t\t\treturn val\r\n\t\t\t}\r\n\t\t\tdefineReactive$$1(ob.value, key, val);\r\n\t\t\tob.dep.notify();\r\n\t\t\treturn val\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Delete a property and trigger change if necessary.\r\n\t\t */\r\n\t\tfunction del(target, key) {\r\n\t\t\tif (false\r\n\t\t\t) { }\r\n\t\t\tif (Array.isArray(target) && isValidArrayIndex(key)) {\r\n\t\t\t\ttarget.splice(key, 1);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar ob = (target).__ob__;\r\n\t\t\tif (target._isVue || (ob && ob.vmCount)) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (!hasOwn(target, key)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tdelete target[key];\r\n\t\t\tif (!ob) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tob.dep.notify();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Collect dependencies on array elements when the array is touched, since\r\n\t\t * we cannot intercept array element access like property getters.\r\n\t\t */\r\n\t\tfunction dependArray(value) {\r\n\t\t\tfor (var e = (void 0), i = 0, l = value.length; i < l; i++) {\r\n\t\t\t\te = value[i];\r\n\t\t\t\te && e.__ob__ && e.__ob__.dep.depend();\r\n\t\t\t\tif (Array.isArray(e)) {\r\n\t\t\t\t\tdependArray(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Option overwriting strategies are functions that handle\r\n\t\t * how to merge a parent option value and a child option\r\n\t\t * value into the final value.\r\n\t\t */\r\n\t\tvar strats = config.optionMergeStrategies;\r\n\r\n\t\t/**\r\n\t\t * Options with restrictions\r\n\t\t */\r\n\t\tif (false) { }\r\n\r\n\t\t/**\r\n\t\t * Helper that recursively merges two data objects together.\r\n\t\t */\r\n\t\tfunction mergeData(to, from) {\r\n\t\t\tif (!from) { return to }\r\n\t\t\tvar key, toVal, fromVal;\r\n\r\n\t\t\tvar keys = hasSymbol\r\n\t\t\t\t? Reflect.ownKeys(from)\r\n\t\t\t\t: Object.keys(from);\r\n\r\n\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\t// in case the object is already observed...\r\n\t\t\t\tif (key === '__ob__') { continue }\r\n\t\t\t\ttoVal = to[key];\r\n\t\t\t\tfromVal = from[key];\r\n\t\t\t\tif (!hasOwn(to, key)) {\r\n\t\t\t\t\tset(to, key, fromVal);\r\n\t\t\t\t} else if (\r\n\t\t\t\t\ttoVal !== fromVal &&\r\n\t\t\t\t\tisPlainObject(toVal) &&\r\n\t\t\t\t\tisPlainObject(fromVal)\r\n\t\t\t\t) {\r\n\t\t\t\t\tmergeData(toVal, fromVal);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn to\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Data\r\n\t\t */\r\n\t\tfunction mergeDataOrFn(\r\n\t\t\tparentVal,\r\n\t\t\tchildVal,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tif (!vm) {\r\n\t\t\t\t// in a Vue.extend merge, both should be functions\r\n\t\t\t\tif (!childVal) {\r\n\t\t\t\t\treturn parentVal\r\n\t\t\t\t}\r\n\t\t\t\tif (!parentVal) {\r\n\t\t\t\t\treturn childVal\r\n\t\t\t\t}\r\n\t\t\t\t// when parentVal & childVal are both present,\r\n\t\t\t\t// we need to return a function that returns the\r\n\t\t\t\t// merged result of both functions... no need to\r\n\t\t\t\t// check if parentVal is a function here because\r\n\t\t\t\t// it has to be a function to pass previous merges.\r\n\t\t\t\treturn function mergedDataFn() {\r\n\t\t\t\t\treturn mergeData(\r\n\t\t\t\t\t\ttypeof childVal === 'function' ? childVal.call(this, this) : childVal,\r\n\t\t\t\t\t\ttypeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn function mergedInstanceDataFn() {\r\n\t\t\t\t\t// instance merge\r\n\t\t\t\t\tvar instanceData = typeof childVal === 'function'\r\n\t\t\t\t\t\t? childVal.call(vm, vm)\r\n\t\t\t\t\t\t: childVal;\r\n\t\t\t\t\tvar defaultData = typeof parentVal === 'function'\r\n\t\t\t\t\t\t? parentVal.call(vm, vm)\r\n\t\t\t\t\t\t: parentVal;\r\n\t\t\t\t\tif (instanceData) {\r\n\t\t\t\t\t\treturn mergeData(instanceData, defaultData)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn defaultData\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tstrats.data = function (\r\n\t\t\tparentVal,\r\n\t\t\tchildVal,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tif (!vm) {\r\n\t\t\t\tif (childVal && typeof childVal !== 'function') {\r\n\t\t\t\t\tfalse && 0;\r\n\r\n\t\t\t\t\treturn parentVal\r\n\t\t\t\t}\r\n\t\t\t\treturn mergeDataOrFn(parentVal, childVal)\r\n\t\t\t}\r\n\r\n\t\t\treturn mergeDataOrFn(parentVal, childVal, vm)\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Hooks and props are merged as arrays.\r\n\t\t */\r\n\t\tfunction mergeHook(\r\n\t\t\tparentVal,\r\n\t\t\tchildVal\r\n\t\t) {\r\n\t\t\tvar res = childVal\r\n\t\t\t\t? parentVal\r\n\t\t\t\t\t? parentVal.concat(childVal)\r\n\t\t\t\t\t: Array.isArray(childVal)\r\n\t\t\t\t\t\t? childVal\r\n\t\t\t\t\t\t: [childVal]\r\n\t\t\t\t: parentVal;\r\n\t\t\treturn res\r\n\t\t\t\t? dedupeHooks(res)\r\n\t\t\t\t: res\r\n\t\t}\r\n\r\n\t\tfunction dedupeHooks(hooks) {\r\n\t\t\tvar res = [];\r\n\t\t\tfor (var i = 0; i < hooks.length; i++) {\r\n\t\t\t\tif (res.indexOf(hooks[i]) === -1) {\r\n\t\t\t\t\tres.push(hooks[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tLIFECYCLE_HOOKS.forEach(function (hook) {\r\n\t\t\tstrats[hook] = mergeHook;\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Assets\r\n\t\t *\r\n\t\t * When a vm is present (instance creation), we need to do\r\n\t\t * a three-way merge between constructor options, instance\r\n\t\t * options and parent options.\r\n\t\t */\r\n\t\tfunction mergeAssets(\r\n\t\t\tparentVal,\r\n\t\t\tchildVal,\r\n\t\t\tvm,\r\n\t\t\tkey\r\n\t\t) {\r\n\t\t\tvar res = Object.create(parentVal || null);\r\n\t\t\tif (childVal) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn extend(res, childVal)\r\n\t\t\t} else {\r\n\t\t\t\treturn res\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tASSET_TYPES.forEach(function (type) {\r\n\t\t\tstrats[type + 's'] = mergeAssets;\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Watchers.\r\n\t\t *\r\n\t\t * Watchers hashes should not overwrite one\r\n\t\t * another, so we merge them as arrays.\r\n\t\t */\r\n\t\tstrats.watch = function (\r\n\t\t\tparentVal,\r\n\t\t\tchildVal,\r\n\t\t\tvm,\r\n\t\t\tkey\r\n\t\t) {\r\n\t\t\t// work around Firefox's Object.prototype.watch...\r\n\t\t\tif (parentVal === nativeWatch) { parentVal = undefined; }\r\n\t\t\tif (childVal === nativeWatch) { childVal = undefined; }\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!childVal) { return Object.create(parentVal || null) }\r\n\t\t\tif (false) { }\r\n\t\t\tif (!parentVal) { return childVal }\r\n\t\t\tvar ret = {};\r\n\t\t\textend(ret, parentVal);\r\n\t\t\tfor (var key$1 in childVal) {\r\n\t\t\t\tvar parent = ret[key$1];\r\n\t\t\t\tvar child = childVal[key$1];\r\n\t\t\t\tif (parent && !Array.isArray(parent)) {\r\n\t\t\t\t\tparent = [parent];\r\n\t\t\t\t}\r\n\t\t\t\tret[key$1] = parent\r\n\t\t\t\t\t? parent.concat(child)\r\n\t\t\t\t\t: Array.isArray(child) ? child : [child];\r\n\t\t\t}\r\n\t\t\treturn ret\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Other object hashes.\r\n\t\t */\r\n\t\tstrats.props =\r\n\t\t\tstrats.methods =\r\n\t\t\tstrats.inject =\r\n\t\t\tstrats.computed = function (\r\n\t\t\t\tparentVal,\r\n\t\t\t\tchildVal,\r\n\t\t\t\tvm,\r\n\t\t\t\tkey\r\n\t\t\t) {\r\n\t\t\t\tif (childVal && \"production\" !== 'production') { }\r\n\t\t\t\tif (!parentVal) { return childVal }\r\n\t\t\t\tvar ret = Object.create(null);\r\n\t\t\t\textend(ret, parentVal);\r\n\t\t\t\tif (childVal) { extend(ret, childVal); }\r\n\t\t\t\treturn ret\r\n\t\t\t};\r\n\t\tstrats.provide = mergeDataOrFn;\r\n\r\n\t\t/**\r\n\t\t * Default strategy.\r\n\t\t */\r\n\t\tvar defaultStrat = function (parentVal, childVal) {\r\n\t\t\treturn childVal === undefined\r\n\t\t\t\t? parentVal\r\n\t\t\t\t: childVal\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Validate component names\r\n\t\t */\r\n\t\tfunction checkComponents(options) {\r\n\t\t\tfor (var key in options.components) {\r\n\t\t\t\tvalidateComponentName(key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction validateComponentName(name) {\r\n\t\t\tif (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t'Invalid component name: \"' + name + '\". Component names ' +\r\n\t\t\t\t\t'should conform to valid custom element name in html5 specification.'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (isBuiltInTag(name) || config.isReservedTag(name)) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t'Do not use built-in or reserved HTML elements as component ' +\r\n\t\t\t\t\t'id: ' + name\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Ensure all props option syntax are normalized into the\r\n\t\t * Object-based format.\r\n\t\t */\r\n\t\tfunction normalizeProps(options, vm) {\r\n\t\t\tvar props = options.props;\r\n\t\t\tif (!props) { return }\r\n\t\t\tvar res = {};\r\n\t\t\tvar i, val, name;\r\n\t\t\tif (Array.isArray(props)) {\r\n\t\t\t\ti = props.length;\r\n\t\t\t\twhile (i--) {\r\n\t\t\t\t\tval = props[i];\r\n\t\t\t\t\tif (typeof val === 'string') {\r\n\t\t\t\t\t\tname = camelize(val);\r\n\t\t\t\t\t\tres[name] = { type: null };\r\n\t\t\t\t\t} else if (false) { }\r\n\t\t\t\t}\r\n\t\t\t} else if (isPlainObject(props)) {\r\n\t\t\t\tfor (var key in props) {\r\n\t\t\t\t\tval = props[key];\r\n\t\t\t\t\tname = camelize(key);\r\n\t\t\t\t\tres[name] = isPlainObject(val)\r\n\t\t\t\t\t\t? val\r\n\t\t\t\t\t\t: { type: val };\r\n\t\t\t\t}\r\n\t\t\t} else if (false) { }\r\n\t\t\toptions.props = res;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Normalize all injections into Object-based format\r\n\t\t */\r\n\t\tfunction normalizeInject(options, vm) {\r\n\t\t\tvar inject = options.inject;\r\n\t\t\tif (!inject) { return }\r\n\t\t\tvar normalized = options.inject = {};\r\n\t\t\tif (Array.isArray(inject)) {\r\n\t\t\t\tfor (var i = 0; i < inject.length; i++) {\r\n\t\t\t\t\tnormalized[inject[i]] = { from: inject[i] };\r\n\t\t\t\t}\r\n\t\t\t} else if (isPlainObject(inject)) {\r\n\t\t\t\tfor (var key in inject) {\r\n\t\t\t\t\tvar val = inject[key];\r\n\t\t\t\t\tnormalized[key] = isPlainObject(val)\r\n\t\t\t\t\t\t? extend({ from: key }, val)\r\n\t\t\t\t\t\t: { from: val };\r\n\t\t\t\t}\r\n\t\t\t} else if (false) { }\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Normalize raw function directives into object format.\r\n\t\t */\r\n\t\tfunction normalizeDirectives(options) {\r\n\t\t\tvar dirs = options.directives;\r\n\t\t\tif (dirs) {\r\n\t\t\t\tfor (var key in dirs) {\r\n\t\t\t\t\tvar def$$1 = dirs[key];\r\n\t\t\t\t\tif (typeof def$$1 === 'function') {\r\n\t\t\t\t\t\tdirs[key] = { bind: def$$1, update: def$$1 };\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction assertObjectType(name, value, vm) {\r\n\t\t\tif (!isPlainObject(value)) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t\"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\r\n\t\t\t\t\t\"but got \" + (toRawType(value)) + \".\",\r\n\t\t\t\t\tvm\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Merge two option objects into a new one.\r\n\t\t * Core utility used in both instantiation and inheritance.\r\n\t\t */\r\n\t\tfunction mergeOptions(\r\n\t\t\tparent,\r\n\t\t\tchild,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tif (false) { }\r\n\r\n\t\t\tif (typeof child === 'function') {\r\n\t\t\t\tchild = child.options;\r\n\t\t\t}\r\n\r\n\t\t\tnormalizeProps(child, vm);\r\n\t\t\tnormalizeInject(child, vm);\r\n\t\t\tnormalizeDirectives(child);\r\n\r\n\t\t\t// Apply extends and mixins on the child options,\r\n\t\t\t// but only if it is a raw options object that isn't\r\n\t\t\t// the result of another mergeOptions call.\r\n\t\t\t// Only merged options has the _base property.\r\n\t\t\tif (!child._base) {\r\n\t\t\t\tif (child.extends) {\r\n\t\t\t\t\tparent = mergeOptions(parent, child.extends, vm);\r\n\t\t\t\t}\r\n\t\t\t\tif (child.mixins) {\r\n\t\t\t\t\tfor (var i = 0, l = child.mixins.length; i < l; i++) {\r\n\t\t\t\t\t\tparent = mergeOptions(parent, child.mixins[i], vm);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar options = {};\r\n\t\t\tvar key;\r\n\t\t\tfor (key in parent) {\r\n\t\t\t\tmergeField(key);\r\n\t\t\t}\r\n\t\t\tfor (key in child) {\r\n\t\t\t\tif (!hasOwn(parent, key)) {\r\n\t\t\t\t\tmergeField(key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfunction mergeField(key) {\r\n\t\t\t\tvar strat = strats[key] || defaultStrat;\r\n\t\t\t\toptions[key] = strat(parent[key], child[key], vm, key);\r\n\t\t\t}\r\n\t\t\treturn options\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Resolve an asset.\r\n\t\t * This function is used because child instances need access\r\n\t\t * to assets defined in its ancestor chain.\r\n\t\t */\r\n\t\tfunction resolveAsset(\r\n\t\t\toptions,\r\n\t\t\ttype,\r\n\t\t\tid,\r\n\t\t\twarnMissing\r\n\t\t) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (typeof id !== 'string') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar assets = options[type];\r\n\t\t\t// check local registration variations first\r\n\t\t\tif (hasOwn(assets, id)) { return assets[id] }\r\n\t\t\tvar camelizedId = camelize(id);\r\n\t\t\tif (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\r\n\t\t\tvar PascalCaseId = capitalize(camelizedId);\r\n\t\t\tif (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\r\n\t\t\t// fallback to prototype chain\r\n\t\t\tvar res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\r\n\t\t\tif (false) { }\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\tfunction validateProp(\r\n\t\t\tkey,\r\n\t\t\tpropOptions,\r\n\t\t\tpropsData,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tvar prop = propOptions[key];\r\n\t\t\tvar absent = !hasOwn(propsData, key);\r\n\t\t\tvar value = propsData[key];\r\n\t\t\t// boolean casting\r\n\t\t\tvar booleanIndex = getTypeIndex(Boolean, prop.type);\r\n\t\t\tif (booleanIndex > -1) {\r\n\t\t\t\tif (absent && !hasOwn(prop, 'default')) {\r\n\t\t\t\t\tvalue = false;\r\n\t\t\t\t} else if (value === '' || value === hyphenate(key)) {\r\n\t\t\t\t\t// only cast empty string / same name to boolean if\r\n\t\t\t\t\t// boolean has higher priority\r\n\t\t\t\t\tvar stringIndex = getTypeIndex(String, prop.type);\r\n\t\t\t\t\tif (stringIndex < 0 || booleanIndex < stringIndex) {\r\n\t\t\t\t\t\tvalue = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// check default value\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tvalue = getPropDefaultValue(vm, prop, key);\r\n\t\t\t\t// since the default value is a fresh copy,\r\n\t\t\t\t// make sure to observe it.\r\n\t\t\t\tvar prevShouldObserve = shouldObserve;\r\n\t\t\t\ttoggleObserving(true);\r\n\t\t\t\tobserve(value);\r\n\t\t\t\ttoggleObserving(prevShouldObserve);\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\tfalse\r\n\t\t\t) { }\r\n\t\t\treturn value\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the default value of a prop.\r\n\t\t */\r\n\t\tfunction getPropDefaultValue(vm, prop, key) {\r\n\t\t\t// no default, return undefined\r\n\t\t\tif (!hasOwn(prop, 'default')) {\r\n\t\t\t\treturn undefined\r\n\t\t\t}\r\n\t\t\tvar def = prop.default;\r\n\t\t\t// warn against non-factory defaults for Object & Array\r\n\t\t\tif (false) { }\r\n\t\t\t// the raw prop value was also undefined from previous render,\r\n\t\t\t// return previous default value to avoid unnecessary watcher trigger\r\n\t\t\tif (vm && vm.$options.propsData &&\r\n\t\t\t\tvm.$options.propsData[key] === undefined &&\r\n\t\t\t\tvm._props[key] !== undefined\r\n\t\t\t) {\r\n\t\t\t\treturn vm._props[key]\r\n\t\t\t}\r\n\t\t\t// call factory function for non-Function types\r\n\t\t\t// a value is Function if its prototype is function even across different execution context\r\n\t\t\treturn typeof def === 'function' && getType(prop.type) !== 'Function'\r\n\t\t\t\t? def.call(vm)\r\n\t\t\t\t: def\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Assert whether a prop is valid.\r\n\t\t */\r\n\t\tfunction assertProp(\r\n\t\t\tprop,\r\n\t\t\tname,\r\n\t\t\tvalue,\r\n\t\t\tvm,\r\n\t\t\tabsent\r\n\t\t) {\r\n\t\t\tif (prop.required && absent) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t'Missing required prop: \"' + name + '\"',\r\n\t\t\t\t\tvm\r\n\t\t\t\t);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (value == null && !prop.required) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar type = prop.type;\r\n\t\t\tvar valid = !type || type === true;\r\n\t\t\tvar expectedTypes = [];\r\n\t\t\tif (type) {\r\n\t\t\t\tif (!Array.isArray(type)) {\r\n\t\t\t\t\ttype = [type];\r\n\t\t\t\t}\r\n\t\t\t\tfor (var i = 0; i < type.length && !valid; i++) {\r\n\t\t\t\t\tvar assertedType = assertType(value, type[i], vm);\r\n\t\t\t\t\texpectedTypes.push(assertedType.expectedType || '');\r\n\t\t\t\t\tvalid = assertedType.valid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar haveExpectedTypes = expectedTypes.some(function (t) { return t; });\r\n\t\t\tif (!valid && haveExpectedTypes) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\tgetInvalidTypeMessage(name, value, expectedTypes),\r\n\t\t\t\t\tvm\r\n\t\t\t\t);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar validator = prop.validator;\r\n\t\t\tif (validator) {\r\n\t\t\t\tif (!validator(value)) {\r\n\t\t\t\t\twarn(\r\n\t\t\t\t\t\t'Invalid prop: custom validator check failed for prop \"' + name + '\".',\r\n\t\t\t\t\t\tvm\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\r\n\r\n\t\tfunction assertType(value, type, vm) {\r\n\t\t\tvar valid;\r\n\t\t\tvar expectedType = getType(type);\r\n\t\t\tif (simpleCheckRE.test(expectedType)) {\r\n\t\t\t\tvar t = typeof value;\r\n\t\t\t\tvalid = t === expectedType.toLowerCase();\r\n\t\t\t\t// for primitive wrapper objects\r\n\t\t\t\tif (!valid && t === 'object') {\r\n\t\t\t\t\tvalid = value instanceof type;\r\n\t\t\t\t}\r\n\t\t\t} else if (expectedType === 'Object') {\r\n\t\t\t\tvalid = isPlainObject(value);\r\n\t\t\t} else if (expectedType === 'Array') {\r\n\t\t\t\tvalid = Array.isArray(value);\r\n\t\t\t} else {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvalid = value instanceof type;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\twarn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tvalid: valid,\r\n\t\t\t\texpectedType: expectedType\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar functionTypeCheckRE = /^\\s*function (\\w+)/;\r\n\r\n\t\t/**\r\n\t\t * Use function string name to check built-in types,\r\n\t\t * because a simple equality check will fail when running\r\n\t\t * across different vms / iframes.\r\n\t\t */\r\n\t\tfunction getType(fn) {\r\n\t\t\tvar match = fn && fn.toString().match(functionTypeCheckRE);\r\n\t\t\treturn match ? match[1] : ''\r\n\t\t}\r\n\r\n\t\tfunction isSameType(a, b) {\r\n\t\t\treturn getType(a) === getType(b)\r\n\t\t}\r\n\r\n\t\tfunction getTypeIndex(type, expectedTypes) {\r\n\t\t\tif (!Array.isArray(expectedTypes)) {\r\n\t\t\t\treturn isSameType(expectedTypes, type) ? 0 : -1\r\n\t\t\t}\r\n\t\t\tfor (var i = 0, len = expectedTypes.length; i < len; i++) {\r\n\t\t\t\tif (isSameType(expectedTypes[i], type)) {\r\n\t\t\t\t\treturn i\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn -1\r\n\t\t}\r\n\r\n\t\tfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n\t\t\tvar message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\r\n\t\t\t\t\" Expected \" + (expectedTypes.map(capitalize).join(', '));\r\n\t\t\tvar expectedType = expectedTypes[0];\r\n\t\t\tvar receivedType = toRawType(value);\r\n\t\t\t// check if we need to specify expected value\r\n\t\t\tif (\r\n\t\t\t\texpectedTypes.length === 1 &&\r\n\t\t\t\tisExplicable(expectedType) &&\r\n\t\t\t\tisExplicable(typeof value) &&\r\n\t\t\t\t!isBoolean(expectedType, receivedType)\r\n\t\t\t) {\r\n\t\t\t\tmessage += \" with value \" + (styleValue(value, expectedType));\r\n\t\t\t}\r\n\t\t\tmessage += \", got \" + receivedType + \" \";\r\n\t\t\t// check if we need to specify received value\r\n\t\t\tif (isExplicable(receivedType)) {\r\n\t\t\t\tmessage += \"with value \" + (styleValue(value, receivedType)) + \".\";\r\n\t\t\t}\r\n\t\t\treturn message\r\n\t\t}\r\n\r\n\t\tfunction styleValue(value, type) {\r\n\t\t\tif (type === 'String') {\r\n\t\t\t\treturn (\"\\\"\" + value + \"\\\"\")\r\n\t\t\t} else if (type === 'Number') {\r\n\t\t\t\treturn (\"\" + (Number(value)))\r\n\t\t\t} else {\r\n\t\t\t\treturn (\"\" + value)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar EXPLICABLE_TYPES = (/* unused pure expression or super */ null && (['string', 'number', 'boolean']));\r\n\t\tfunction isExplicable(value) {\r\n\t\t\treturn EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; })\r\n\t\t}\r\n\r\n\t\tfunction isBoolean() {\r\n\t\t\tvar args = [], len = arguments.length;\r\n\t\t\twhile (len--) args[len] = arguments[len];\r\n\r\n\t\t\treturn args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction handleError(err, vm, info) {\r\n\t\t\t// Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\r\n\t\t\t// See: https://github.com/vuejs/vuex/issues/1505\r\n\t\t\tpushTarget();\r\n\t\t\ttry {\r\n\t\t\t\tif (vm) {\r\n\t\t\t\t\tvar cur = vm;\r\n\t\t\t\t\twhile ((cur = cur.$parent)) {\r\n\t\t\t\t\t\tvar hooks = cur.$options.errorCaptured;\r\n\t\t\t\t\t\tif (hooks) {\r\n\t\t\t\t\t\t\tfor (var i = 0; i < hooks.length; i++) {\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tvar capture = hooks[i].call(cur, err, vm, info) === false;\r\n\t\t\t\t\t\t\t\t\tif (capture) { return }\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\tglobalHandleError(e, cur, 'errorCaptured hook');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tglobalHandleError(err, vm, info);\r\n\t\t\t} finally {\r\n\t\t\t\tpopTarget();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction invokeWithErrorHandling(\r\n\t\t\thandler,\r\n\t\t\tcontext,\r\n\t\t\targs,\r\n\t\t\tvm,\r\n\t\t\tinfo\r\n\t\t) {\r\n\t\t\tvar res;\r\n\t\t\ttry {\r\n\t\t\t\tres = args ? handler.apply(context, args) : handler.call(context);\r\n\t\t\t\tif (res && !res._isVue && isPromise(res) && !res._handled) {\r\n\t\t\t\t\tres.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\r\n\t\t\t\t\t// issue #9511\r\n\t\t\t\t\t// avoid catch triggering multiple times when nested calls\r\n\t\t\t\t\tres._handled = true;\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\thandleError(e, vm, info);\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction globalHandleError(err, vm, info) {\r\n\t\t\tif (config.errorHandler) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn config.errorHandler.call(null, err, vm, info)\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\t// if the user intentionally throws the original error in the handler,\r\n\t\t\t\t\t// do not log it twice\r\n\t\t\t\t\tif (e !== err) {\r\n\t\t\t\t\t\tlogError(e, null, 'config.errorHandler');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlogError(err, vm, info);\r\n\t\t}\r\n\r\n\t\tfunction logError(err, vm, info) {\r\n\t\t\tif (false) { }\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif ((inBrowser || inWeex) && typeof console !== 'undefined') {\r\n\t\t\t\tconsole.error(err);\r\n\t\t\t} else {\r\n\t\t\t\tthrow err\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar isUsingMicroTask = false;\r\n\r\n\t\tvar callbacks = [];\r\n\t\tvar pending = false;\r\n\r\n\t\tfunction flushCallbacks() {\r\n\t\t\tpending = false;\r\n\t\t\tvar copies = callbacks.slice(0);\r\n\t\t\tcallbacks.length = 0;\r\n\t\t\tfor (var i = 0; i < copies.length; i++) {\r\n\t\t\t\tcopies[i]();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Here we have async deferring wrappers using microtasks.\r\n\t\t// In 2.5 we used (macro) tasks (in combination with microtasks).\r\n\t\t// However, it has subtle problems when state is changed right before repaint\r\n\t\t// (e.g. #6813, out-in transitions).\r\n\t\t// Also, using (macro) tasks in event handler would cause some weird behaviors\r\n\t\t// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\r\n\t\t// So we now use microtasks everywhere, again.\r\n\t\t// A major drawback of this tradeoff is that there are some scenarios\r\n\t\t// where microtasks have too high a priority and fire in between supposedly\r\n\t\t// sequential events (e.g. #4521, #6690, which have workarounds)\r\n\t\t// or even between bubbling of the same event (#6566).\r\n\t\tvar timerFunc;\r\n\r\n\t\t// The nextTick behavior leverages the microtask queue, which can be accessed\r\n\t\t// via either native Promise.then or MutationObserver.\r\n\t\t// MutationObserver has wider support, however it is seriously bugged in\r\n\t\t// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n\t\t// completely stops working after triggering a few times... so, if native\r\n\t\t// Promise is available, we will use it:\r\n\t\t/* istanbul ignore next, $flow-disable-line */\r\n\t\tif (typeof Promise !== 'undefined' && isNative(Promise)) {\r\n\t\t\tvar p = Promise.resolve();\r\n\t\t\ttimerFunc = function () {\r\n\t\t\t\tp.then(flushCallbacks);\r\n\t\t\t\t// In problematic UIWebViews, Promise.then doesn't completely break, but\r\n\t\t\t\t// it can get stuck in a weird state where callbacks are pushed into the\r\n\t\t\t\t// microtask queue but the queue isn't being flushed, until the browser\r\n\t\t\t\t// needs to do some other work, e.g. handle a timer. Therefore we can\r\n\t\t\t\t// \"force\" the microtask queue to be flushed by adding an empty timer.\r\n\t\t\t\tif (isIOS) { setTimeout(noop); }\r\n\t\t\t};\r\n\t\t\tisUsingMicroTask = true;\r\n\t\t} else if (!isIE && typeof MutationObserver !== 'undefined' && (\r\n\t\t\tisNative(MutationObserver) ||\r\n\t\t\t// PhantomJS and iOS 7.x\r\n\t\t\tMutationObserver.toString() === '[object MutationObserverConstructor]'\r\n\t\t)) {\r\n\t\t\t// Use MutationObserver where native Promise is not available,\r\n\t\t\t// e.g. PhantomJS, iOS7, Android 4.4\r\n\t\t\t// (#6466 MutationObserver is unreliable in IE11)\r\n\t\t\tvar counter = 1;\r\n\t\t\tvar observer = new MutationObserver(flushCallbacks);\r\n\t\t\tvar textNode = document.createTextNode(String(counter));\r\n\t\t\tobserver.observe(textNode, {\r\n\t\t\t\tcharacterData: true\r\n\t\t\t});\r\n\t\t\ttimerFunc = function () {\r\n\t\t\t\tcounter = (counter + 1) % 2;\r\n\t\t\t\ttextNode.data = String(counter);\r\n\t\t\t};\r\n\t\t\tisUsingMicroTask = true;\r\n\t\t} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\r\n\t\t\t// Fallback to setImmediate.\r\n\t\t\t// Technically it leverages the (macro) task queue,\r\n\t\t\t// but it is still a better choice than setTimeout.\r\n\t\t\ttimerFunc = function () {\r\n\t\t\t\tsetImmediate(flushCallbacks);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\t// Fallback to setTimeout.\r\n\t\t\ttimerFunc = function () {\r\n\t\t\t\tsetTimeout(flushCallbacks, 0);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction nextTick(cb, ctx) {\r\n\t\t\tvar _resolve;\r\n\t\t\tcallbacks.push(function () {\r\n\t\t\t\tif (cb) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tcb.call(ctx);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\thandleError(e, ctx, 'nextTick');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (_resolve) {\r\n\t\t\t\t\t_resolve(ctx);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (!pending) {\r\n\t\t\t\tpending = true;\r\n\t\t\t\ttimerFunc();\r\n\t\t\t}\r\n\t\t\t// $flow-disable-line\r\n\t\t\tif (!cb && typeof Promise !== 'undefined') {\r\n\t\t\t\treturn new Promise(function (resolve) {\r\n\t\t\t\t\t_resolve = resolve;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar mark;\r\n\t\tvar measure;\r\n\r\n\t\tif (false) { var perf; }\r\n\r\n\t\t/* not type checking this file because flow doesn't play well with Proxy */\r\n\r\n\t\tvar initProxy;\r\n\r\n\t\tif (false) { var getHandler, hasHandler, isBuiltInModifier, hasProxy, warnReservedPrefix, warnNonPresent, allowedGlobals; }\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar seenObjects = new _Set();\r\n\r\n\t\t/**\r\n\t\t * Recursively traverse an object to evoke all converted\r\n\t\t * getters, so that every nested property inside the object\r\n\t\t * is collected as a \"deep\" dependency.\r\n\t\t */\r\n\t\tfunction traverse(val) {\r\n\t\t\t_traverse(val, seenObjects);\r\n\t\t\tseenObjects.clear();\r\n\t\t}\r\n\r\n\t\tfunction _traverse(val, seen) {\r\n\t\t\tvar i, keys;\r\n\t\t\tvar isA = Array.isArray(val);\r\n\t\t\tif ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (val.__ob__) {\r\n\t\t\t\tvar depId = val.__ob__.dep.id;\r\n\t\t\t\tif (seen.has(depId)) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tseen.add(depId);\r\n\t\t\t}\r\n\t\t\tif (isA) {\r\n\t\t\t\ti = val.length;\r\n\t\t\t\twhile (i--) { _traverse(val[i], seen); }\r\n\t\t\t} else {\r\n\t\t\t\tkeys = Object.keys(val);\r\n\t\t\t\ti = keys.length;\r\n\t\t\t\twhile (i--) { _traverse(val[keys[i]], seen); }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar normalizeEvent = cached(function (name) {\r\n\t\t\tvar passive = name.charAt(0) === '&';\r\n\t\t\tname = passive ? name.slice(1) : name;\r\n\t\t\tvar once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\r\n\t\t\tname = once$$1 ? name.slice(1) : name;\r\n\t\t\tvar capture = name.charAt(0) === '!';\r\n\t\t\tname = capture ? name.slice(1) : name;\r\n\t\t\treturn {\r\n\t\t\t\tname: name,\r\n\t\t\t\tonce: once$$1,\r\n\t\t\t\tcapture: capture,\r\n\t\t\t\tpassive: passive\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction createFnInvoker(fns, vm) {\r\n\t\t\tfunction invoker() {\r\n\t\t\t\tvar arguments$1 = arguments;\r\n\r\n\t\t\t\tvar fns = invoker.fns;\r\n\t\t\t\tif (Array.isArray(fns)) {\r\n\t\t\t\t\tvar cloned = fns.slice();\r\n\t\t\t\t\tfor (var i = 0; i < cloned.length; i++) {\r\n\t\t\t\t\t\tinvokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// return handler return value for single handlers\r\n\t\t\t\t\treturn invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinvoker.fns = fns;\r\n\t\t\treturn invoker\r\n\t\t}\r\n\r\n\t\tfunction updateListeners(\r\n\t\t\ton,\r\n\t\t\toldOn,\r\n\t\t\tadd,\r\n\t\t\tremove$$1,\r\n\t\t\tcreateOnceHandler,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tvar name, def$$1, cur, old, event;\r\n\t\t\tfor (name in on) {\r\n\t\t\t\tdef$$1 = cur = on[name];\r\n\t\t\t\told = oldOn[name];\r\n\t\t\t\tevent = normalizeEvent(name);\r\n\t\t\t\tif (isUndef(cur)) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t} else if (isUndef(old)) {\r\n\t\t\t\t\tif (isUndef(cur.fns)) {\r\n\t\t\t\t\t\tcur = on[name] = createFnInvoker(cur, vm);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isTrue(event.once)) {\r\n\t\t\t\t\t\tcur = on[name] = createOnceHandler(event.name, cur, event.capture);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tadd(event.name, cur, event.capture, event.passive, event.params);\r\n\t\t\t\t} else if (cur !== old) {\r\n\t\t\t\t\told.fns = cur;\r\n\t\t\t\t\ton[name] = old;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (name in oldOn) {\r\n\t\t\t\tif (isUndef(on[name])) {\r\n\t\t\t\t\tevent = normalizeEvent(name);\r\n\t\t\t\t\tremove$$1(event.name, oldOn[name], event.capture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction mergeVNodeHook(def, hookKey, hook) {\r\n\t\t\tif (def instanceof VNode) {\r\n\t\t\t\tdef = def.data.hook || (def.data.hook = {});\r\n\t\t\t}\r\n\t\t\tvar invoker;\r\n\t\t\tvar oldHook = def[hookKey];\r\n\r\n\t\t\tfunction wrappedHook() {\r\n\t\t\t\thook.apply(this, arguments);\r\n\t\t\t\t// important: remove merged hook to ensure it's called only once\r\n\t\t\t\t// and prevent memory leak\r\n\t\t\t\tremove(invoker.fns, wrappedHook);\r\n\t\t\t}\r\n\r\n\t\t\tif (isUndef(oldHook)) {\r\n\t\t\t\t// no existing hook\r\n\t\t\t\tinvoker = createFnInvoker([wrappedHook]);\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\r\n\t\t\t\t\t// already a merged invoker\r\n\t\t\t\t\tinvoker = oldHook;\r\n\t\t\t\t\tinvoker.fns.push(wrappedHook);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// existing plain hook\r\n\t\t\t\t\tinvoker = createFnInvoker([oldHook, wrappedHook]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinvoker.merged = true;\r\n\t\t\tdef[hookKey] = invoker;\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction extractPropsFromVNodeData(\r\n\t\t\tdata,\r\n\t\t\tCtor,\r\n\t\t\ttag\r\n\t\t) {\r\n\t\t\t// we are only extracting raw values here.\r\n\t\t\t// validation and default values are handled in the child\r\n\t\t\t// component itself.\r\n\t\t\tvar propOptions = Ctor.options.props;\r\n\t\t\tif (isUndef(propOptions)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar res = {};\r\n\t\t\tvar attrs = data.attrs;\r\n\t\t\tvar props = data.props;\r\n\t\t\tif (isDef(attrs) || isDef(props)) {\r\n\t\t\t\tfor (var key in propOptions) {\r\n\t\t\t\t\tvar altKey = hyphenate(key);\r\n\t\t\t\t\tif (false) { var keyInLowerCase; }\r\n\t\t\t\t\tcheckProp(res, props, key, altKey, true) ||\r\n\t\t\t\t\t\tcheckProp(res, attrs, key, altKey, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction checkProp(\r\n\t\t\tres,\r\n\t\t\thash,\r\n\t\t\tkey,\r\n\t\t\taltKey,\r\n\t\t\tpreserve\r\n\t\t) {\r\n\t\t\tif (isDef(hash)) {\r\n\t\t\t\tif (hasOwn(hash, key)) {\r\n\t\t\t\t\tres[key] = hash[key];\r\n\t\t\t\t\tif (!preserve) {\r\n\t\t\t\t\t\tdelete hash[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true\r\n\t\t\t\t} else if (hasOwn(hash, altKey)) {\r\n\t\t\t\t\tres[key] = hash[altKey];\r\n\t\t\t\t\tif (!preserve) {\r\n\t\t\t\t\t\tdelete hash[altKey];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t// The template compiler attempts to minimize the need for normalization by\r\n\t\t// statically analyzing the template at compile time.\r\n\t\t//\r\n\t\t// For plain HTML markup, normalization can be completely skipped because the\r\n\t\t// generated render function is guaranteed to return Array<VNode>. There are\r\n\t\t// two cases where extra normalization is needed:\r\n\r\n\t\t// 1. When the children contains components - because a functional component\r\n\t\t// may return an Array instead of a single root. In this case, just a simple\r\n\t\t// normalization is needed - if any child is an Array, we flatten the whole\r\n\t\t// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n\t\t// because functional components already normalize their own children.\r\n\t\tfunction simpleNormalizeChildren(children) {\r\n\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\tif (Array.isArray(children[i])) {\r\n\t\t\t\t\treturn Array.prototype.concat.apply([], children)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn children\r\n\t\t}\r\n\r\n\t\t// 2. When the children contains constructs that always generated nested Arrays,\r\n\t\t// e.g. <template>, <slot>, v-for, or when the children is provided by user\r\n\t\t// with hand-written render functions / JSX. In such cases a full normalization\r\n\t\t// is needed to cater to all possible types of children values.\r\n\t\tfunction normalizeChildren(children) {\r\n\t\t\treturn isPrimitive(children)\r\n\t\t\t\t? [createTextVNode(children)]\r\n\t\t\t\t: Array.isArray(children)\r\n\t\t\t\t\t? normalizeArrayChildren(children)\r\n\t\t\t\t\t: undefined\r\n\t\t}\r\n\r\n\t\tfunction isTextNode(node) {\r\n\t\t\treturn isDef(node) && isDef(node.text) && isFalse(node.isComment)\r\n\t\t}\r\n\r\n\t\tfunction normalizeArrayChildren(children, nestedIndex) {\r\n\t\t\tvar res = [];\r\n\t\t\tvar i, c, lastIndex, last;\r\n\t\t\tfor (i = 0; i < children.length; i++) {\r\n\t\t\t\tc = children[i];\r\n\t\t\t\tif (isUndef(c) || typeof c === 'boolean') { continue }\r\n\t\t\t\tlastIndex = res.length - 1;\r\n\t\t\t\tlast = res[lastIndex];\r\n\t\t\t\t//  nested\r\n\t\t\t\tif (Array.isArray(c)) {\r\n\t\t\t\t\tif (c.length > 0) {\r\n\t\t\t\t\t\tc = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\r\n\t\t\t\t\t\t// merge adjacent text nodes\r\n\t\t\t\t\t\tif (isTextNode(c[0]) && isTextNode(last)) {\r\n\t\t\t\t\t\t\tres[lastIndex] = createTextVNode(last.text + (c[0]).text);\r\n\t\t\t\t\t\t\tc.shift();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tres.push.apply(res, c);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (isPrimitive(c)) {\r\n\t\t\t\t\tif (isTextNode(last)) {\r\n\t\t\t\t\t\t// merge adjacent text nodes\r\n\t\t\t\t\t\t// this is necessary for SSR hydration because text nodes are\r\n\t\t\t\t\t\t// essentially merged when rendered to HTML strings\r\n\t\t\t\t\t\tres[lastIndex] = createTextVNode(last.text + c);\r\n\t\t\t\t\t} else if (c !== '') {\r\n\t\t\t\t\t\t// convert primitive to vnode\r\n\t\t\t\t\t\tres.push(createTextVNode(c));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (isTextNode(c) && isTextNode(last)) {\r\n\t\t\t\t\t\t// merge adjacent text nodes\r\n\t\t\t\t\t\tres[lastIndex] = createTextVNode(last.text + c.text);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// default key for nested array children (likely generated by v-for)\r\n\t\t\t\t\t\tif (isTrue(children._isVList) &&\r\n\t\t\t\t\t\t\tisDef(c.tag) &&\r\n\t\t\t\t\t\t\tisUndef(c.key) &&\r\n\t\t\t\t\t\t\tisDef(nestedIndex)) {\r\n\t\t\t\t\t\t\tc.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tres.push(c);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initProvide(vm) {\r\n\t\t\tvar provide = vm.$options.provide;\r\n\t\t\tif (provide) {\r\n\t\t\t\tvm._provided = typeof provide === 'function'\r\n\t\t\t\t\t? provide.call(vm)\r\n\t\t\t\t\t: provide;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initInjections(vm) {\r\n\t\t\tvar result = resolveInject(vm.$options.inject, vm);\r\n\t\t\tif (result) {\r\n\t\t\t\ttoggleObserving(false);\r\n\t\t\t\tObject.keys(result).forEach(function (key) {\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (false) { } else {\r\n\t\t\t\t\t\tdefineReactive$$1(vm, key, result[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\ttoggleObserving(true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction resolveInject(inject, vm) {\r\n\t\t\tif (inject) {\r\n\t\t\t\t// inject is :any because flow is not smart enough to figure out cached\r\n\t\t\t\tvar result = Object.create(null);\r\n\t\t\t\tvar keys = hasSymbol\r\n\t\t\t\t\t? Reflect.ownKeys(inject)\r\n\t\t\t\t\t: Object.keys(inject);\r\n\r\n\t\t\t\tfor (var i = 0; i < keys.length; i++) {\r\n\t\t\t\t\tvar key = keys[i];\r\n\t\t\t\t\t// #6574 in case the inject object is observed...\r\n\t\t\t\t\tif (key === '__ob__') { continue }\r\n\t\t\t\t\tvar provideKey = inject[key].from;\r\n\t\t\t\t\tvar source = vm;\r\n\t\t\t\t\twhile (source) {\r\n\t\t\t\t\t\tif (source._provided && hasOwn(source._provided, provideKey)) {\r\n\t\t\t\t\t\t\tresult[key] = source._provided[provideKey];\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsource = source.$parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!source) {\r\n\t\t\t\t\t\tif ('default' in inject[key]) {\r\n\t\t\t\t\t\t\tvar provideDefault = inject[key].default;\r\n\t\t\t\t\t\t\tresult[key] = typeof provideDefault === 'function'\r\n\t\t\t\t\t\t\t\t? provideDefault.call(vm)\r\n\t\t\t\t\t\t\t\t: provideDefault;\r\n\t\t\t\t\t\t} else if (false) { }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn result\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for resolving raw children VNodes into a slot object.\r\n\t\t */\r\n\t\tfunction resolveSlots(\r\n\t\t\tchildren,\r\n\t\t\tcontext\r\n\t\t) {\r\n\t\t\tif (!children || !children.length) {\r\n\t\t\t\treturn {}\r\n\t\t\t}\r\n\t\t\tvar slots = {};\r\n\t\t\tfor (var i = 0, l = children.length; i < l; i++) {\r\n\t\t\t\tvar child = children[i];\r\n\t\t\t\tvar data = child.data;\r\n\t\t\t\t// remove slot attribute if the node is resolved as a Vue slot node\r\n\t\t\t\tif (data && data.attrs && data.attrs.slot) {\r\n\t\t\t\t\tdelete data.attrs.slot;\r\n\t\t\t\t}\r\n\t\t\t\t// named slots should only be respected if the vnode was rendered in the\r\n\t\t\t\t// same context.\r\n\t\t\t\tif ((child.context === context || child.fnContext === context) &&\r\n\t\t\t\t\tdata && data.slot != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar name = data.slot;\r\n\t\t\t\t\tvar slot = (slots[name] || (slots[name] = []));\r\n\t\t\t\t\tif (child.tag === 'template') {\r\n\t\t\t\t\t\tslot.push.apply(slot, child.children || []);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tslot.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t(slots.default || (slots.default = [])).push(child);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// ignore slots that contains only whitespace\r\n\t\t\tfor (var name$1 in slots) {\r\n\t\t\t\tif (slots[name$1].every(isWhitespace)) {\r\n\t\t\t\t\tdelete slots[name$1];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn slots\r\n\t\t}\r\n\r\n\t\tfunction isWhitespace(node) {\r\n\t\t\treturn (node.isComment && !node.asyncFactory) || node.text === ' '\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction isAsyncPlaceholder(node) {\r\n\t\t\treturn node.isComment && node.asyncFactory\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction normalizeScopedSlots(\r\n\t\t\tslots,\r\n\t\t\tnormalSlots,\r\n\t\t\tprevSlots\r\n\t\t) {\r\n\t\t\tvar res;\r\n\t\t\tvar hasNormalSlots = Object.keys(normalSlots).length > 0;\r\n\t\t\tvar isStable = slots ? !!slots.$stable : !hasNormalSlots;\r\n\t\t\tvar key = slots && slots.$key;\r\n\t\t\tif (!slots) {\r\n\t\t\t\tres = {};\r\n\t\t\t} else if (slots._normalized) {\r\n\t\t\t\t// fast path 1: child component re-render only, parent did not change\r\n\t\t\t\treturn slots._normalized\r\n\t\t\t} else if (\r\n\t\t\t\tisStable &&\r\n\t\t\t\tprevSlots &&\r\n\t\t\t\tprevSlots !== emptyObject &&\r\n\t\t\t\tkey === prevSlots.$key &&\r\n\t\t\t\t!hasNormalSlots &&\r\n\t\t\t\t!prevSlots.$hasNormal\r\n\t\t\t) {\r\n\t\t\t\t// fast path 2: stable scoped slots w/ no normal slots to proxy,\r\n\t\t\t\t// only need to normalize once\r\n\t\t\t\treturn prevSlots\r\n\t\t\t} else {\r\n\t\t\t\tres = {};\r\n\t\t\t\tfor (var key$1 in slots) {\r\n\t\t\t\t\tif (slots[key$1] && key$1[0] !== '$') {\r\n\t\t\t\t\t\tres[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// expose normal slots on scopedSlots\r\n\t\t\tfor (var key$2 in normalSlots) {\r\n\t\t\t\tif (!(key$2 in res)) {\r\n\t\t\t\t\tres[key$2] = proxyNormalSlot(normalSlots, key$2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// avoriaz seems to mock a non-extensible $scopedSlots object\r\n\t\t\t// and when that is passed down this would cause an error\r\n\t\t\tif (slots && Object.isExtensible(slots)) {\r\n\t\t\t\t(slots)._normalized = res;\r\n\t\t\t}\r\n\t\t\tdef(res, '$stable', isStable);\r\n\t\t\tdef(res, '$key', key);\r\n\t\t\tdef(res, '$hasNormal', hasNormalSlots);\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction normalizeScopedSlot(normalSlots, key, fn) {\r\n\t\t\tvar normalized = function () {\r\n\t\t\t\tvar res = arguments.length ? fn.apply(null, arguments) : fn({});\r\n\t\t\t\tres = res && typeof res === 'object' && !Array.isArray(res)\r\n\t\t\t\t\t? [res] // single vnode\r\n\t\t\t\t\t: normalizeChildren(res);\r\n\t\t\t\tvar vnode = res && res[0];\r\n\t\t\t\treturn res && (\r\n\t\t\t\t\t!vnode ||\r\n\t\t\t\t\t(res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391\r\n\t\t\t\t) ? undefined\r\n\t\t\t\t\t: res\r\n\t\t\t};\r\n\t\t\t// this is a slot using the new v-slot syntax without scope. although it is\r\n\t\t\t// compiled as a scoped slot, render fn users would expect it to be present\r\n\t\t\t// on this.$slots because the usage is semantically a normal slot.\r\n\t\t\tif (fn.proxy) {\r\n\t\t\t\tObject.defineProperty(normalSlots, key, {\r\n\t\t\t\t\tget: normalized,\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tconfigurable: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn normalized\r\n\t\t}\r\n\r\n\t\tfunction proxyNormalSlot(slots, key) {\r\n\t\t\treturn function () { return slots[key]; }\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for rendering v-for lists.\r\n\t\t */\r\n\t\tfunction renderList(\r\n\t\t\tval,\r\n\t\t\trender\r\n\t\t) {\r\n\t\t\tvar ret, i, l, keys, key;\r\n\t\t\tif (Array.isArray(val) || typeof val === 'string') {\r\n\t\t\t\tret = new Array(val.length);\r\n\t\t\t\tfor (i = 0, l = val.length; i < l; i++) {\r\n\t\t\t\t\tret[i] = render(val[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else if (typeof val === 'number') {\r\n\t\t\t\tret = new Array(val);\r\n\t\t\t\tfor (i = 0; i < val; i++) {\r\n\t\t\t\t\tret[i] = render(i + 1, i);\r\n\t\t\t\t}\r\n\t\t\t} else if (isObject(val)) {\r\n\t\t\t\tif (hasSymbol && val[Symbol.iterator]) {\r\n\t\t\t\t\tret = [];\r\n\t\t\t\t\tvar iterator = val[Symbol.iterator]();\r\n\t\t\t\t\tvar result = iterator.next();\r\n\t\t\t\t\twhile (!result.done) {\r\n\t\t\t\t\t\tret.push(render(result.value, ret.length));\r\n\t\t\t\t\t\tresult = iterator.next();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tkeys = Object.keys(val);\r\n\t\t\t\t\tret = new Array(keys.length);\r\n\t\t\t\t\tfor (i = 0, l = keys.length; i < l; i++) {\r\n\t\t\t\t\t\tkey = keys[i];\r\n\t\t\t\t\t\tret[i] = render(val[key], key, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!isDef(ret)) {\r\n\t\t\t\tret = [];\r\n\t\t\t}\r\n\t\t\t(ret)._isVList = true;\r\n\t\t\treturn ret\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for rendering <slot>\r\n\t\t */\r\n\t\tfunction renderSlot(\r\n\t\t\tname,\r\n\t\t\tfallbackRender,\r\n\t\t\tprops,\r\n\t\t\tbindObject\r\n\t\t) {\r\n\t\t\tvar scopedSlotFn = this.$scopedSlots[name];\r\n\t\t\tvar nodes;\r\n\t\t\tif (scopedSlotFn) {\r\n\t\t\t\t// scoped slot\r\n\t\t\t\tprops = props || {};\r\n\t\t\t\tif (bindObject) {\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tprops = extend(extend({}, bindObject), props);\r\n\t\t\t\t}\r\n\t\t\t\tnodes =\r\n\t\t\t\t\tscopedSlotFn(props) ||\r\n\t\t\t\t\t(typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\r\n\t\t\t} else {\r\n\t\t\t\tnodes =\r\n\t\t\t\t\tthis.$slots[name] ||\r\n\t\t\t\t\t(typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\r\n\t\t\t}\r\n\r\n\t\t\tvar target = props && props.slot;\r\n\t\t\tif (target) {\r\n\t\t\t\treturn this.$createElement('template', { slot: target }, nodes)\r\n\t\t\t} else {\r\n\t\t\t\treturn nodes\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for resolving filters\r\n\t\t */\r\n\t\tfunction resolveFilter(id) {\r\n\t\t\treturn resolveAsset(this.$options, 'filters', id, true) || identity\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction isKeyNotMatch(expect, actual) {\r\n\t\t\tif (Array.isArray(expect)) {\r\n\t\t\t\treturn expect.indexOf(actual) === -1\r\n\t\t\t} else {\r\n\t\t\t\treturn expect !== actual\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for checking keyCodes from config.\r\n\t\t * exposed as Vue.prototype._k\r\n\t\t * passing in eventKeyName as last argument separately for backwards compat\r\n\t\t */\r\n\t\tfunction checkKeyCodes(\r\n\t\t\teventKeyCode,\r\n\t\t\tkey,\r\n\t\t\tbuiltInKeyCode,\r\n\t\t\teventKeyName,\r\n\t\t\tbuiltInKeyName\r\n\t\t) {\r\n\t\t\tvar mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\r\n\t\t\tif (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\r\n\t\t\t\treturn isKeyNotMatch(builtInKeyName, eventKeyName)\r\n\t\t\t} else if (mappedKeyCode) {\r\n\t\t\t\treturn isKeyNotMatch(mappedKeyCode, eventKeyCode)\r\n\t\t\t} else if (eventKeyName) {\r\n\t\t\t\treturn hyphenate(eventKeyName) !== key\r\n\t\t\t}\r\n\t\t\treturn eventKeyCode === undefined\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for merging v-bind=\"object\" into a VNode's data.\r\n\t\t */\r\n\t\tfunction bindObjectProps(\r\n\t\t\tdata,\r\n\t\t\ttag,\r\n\t\t\tvalue,\r\n\t\t\tasProp,\r\n\t\t\tisSync\r\n\t\t) {\r\n\t\t\tif (value) {\r\n\t\t\t\tif (!isObject(value)) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\t\t\tvalue = toObject(value);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar hash;\r\n\t\t\t\t\tvar loop = function (key) {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tkey === 'class' ||\r\n\t\t\t\t\t\t\tkey === 'style' ||\r\n\t\t\t\t\t\t\tisReservedAttribute(key)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\thash = data;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar type = data.attrs && data.attrs.type;\r\n\t\t\t\t\t\t\thash = asProp || config.mustUseProp(tag, type, key)\r\n\t\t\t\t\t\t\t\t? data.domProps || (data.domProps = {})\r\n\t\t\t\t\t\t\t\t: data.attrs || (data.attrs = {});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar camelizedKey = camelize(key);\r\n\t\t\t\t\t\tvar hyphenatedKey = hyphenate(key);\r\n\t\t\t\t\t\tif (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\r\n\t\t\t\t\t\t\thash[key] = value[key];\r\n\r\n\t\t\t\t\t\t\tif (isSync) {\r\n\t\t\t\t\t\t\t\tvar on = data.on || (data.on = {});\r\n\t\t\t\t\t\t\t\ton[(\"update:\" + key)] = function ($event) {\r\n\t\t\t\t\t\t\t\t\tvalue[key] = $event;\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tfor (var key in value) loop(key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for rendering static trees.\r\n\t\t */\r\n\t\tfunction renderStatic(\r\n\t\t\tindex,\r\n\t\t\tisInFor\r\n\t\t) {\r\n\t\t\tvar cached = this._staticTrees || (this._staticTrees = []);\r\n\t\t\tvar tree = cached[index];\r\n\t\t\t// if has already-rendered static tree and not inside v-for,\r\n\t\t\t// we can reuse the same tree.\r\n\t\t\tif (tree && !isInFor) {\r\n\t\t\t\treturn tree\r\n\t\t\t}\r\n\t\t\t// otherwise, render a fresh tree.\r\n\t\t\ttree = cached[index] = this.$options.staticRenderFns[index].call(\r\n\t\t\t\tthis._renderProxy,\r\n\t\t\t\tnull,\r\n\t\t\t\tthis // for render fns generated for functional component templates\r\n\t\t\t);\r\n\t\t\tmarkStatic(tree, (\"__static__\" + index), false);\r\n\t\t\treturn tree\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Runtime helper for v-once.\r\n\t\t * Effectively it means marking the node as static with a unique key.\r\n\t\t */\r\n\t\tfunction markOnce(\r\n\t\t\ttree,\r\n\t\t\tindex,\r\n\t\t\tkey\r\n\t\t) {\r\n\t\t\tmarkStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\r\n\t\t\treturn tree\r\n\t\t}\r\n\r\n\t\tfunction markStatic(\r\n\t\t\ttree,\r\n\t\t\tkey,\r\n\t\t\tisOnce\r\n\t\t) {\r\n\t\t\tif (Array.isArray(tree)) {\r\n\t\t\t\tfor (var i = 0; i < tree.length; i++) {\r\n\t\t\t\t\tif (tree[i] && typeof tree[i] !== 'string') {\r\n\t\t\t\t\t\tmarkStaticNode(tree[i], (key + \"_\" + i), isOnce);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tmarkStaticNode(tree, key, isOnce);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction markStaticNode(node, key, isOnce) {\r\n\t\t\tnode.isStatic = true;\r\n\t\t\tnode.key = key;\r\n\t\t\tnode.isOnce = isOnce;\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction bindObjectListeners(data, value) {\r\n\t\t\tif (value) {\r\n\t\t\t\tif (!isPlainObject(value)) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar on = data.on = data.on ? extend({}, data.on) : {};\r\n\t\t\t\t\tfor (var key in value) {\r\n\t\t\t\t\t\tvar existing = on[key];\r\n\t\t\t\t\t\tvar ours = value[key];\r\n\t\t\t\t\t\ton[key] = existing ? [].concat(existing, ours) : ours;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction resolveScopedSlots(\r\n\t\t\tfns, // see flow/vnode\r\n\t\t\tres,\r\n\t\t\t// the following are added in 2.6\r\n\t\t\thasDynamicKeys,\r\n\t\t\tcontentHashKey\r\n\t\t) {\r\n\t\t\tres = res || { $stable: !hasDynamicKeys };\r\n\t\t\tfor (var i = 0; i < fns.length; i++) {\r\n\t\t\t\tvar slot = fns[i];\r\n\t\t\t\tif (Array.isArray(slot)) {\r\n\t\t\t\t\tresolveScopedSlots(slot, res, hasDynamicKeys);\r\n\t\t\t\t} else if (slot) {\r\n\t\t\t\t\t// marker for reverse proxying v-slot without scope on this.$slots\r\n\t\t\t\t\tif (slot.proxy) {\r\n\t\t\t\t\t\tslot.fn.proxy = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tres[slot.key] = slot.fn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (contentHashKey) {\r\n\t\t\t\t(res).$key = contentHashKey;\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction bindDynamicKeys(baseObj, values) {\r\n\t\t\tfor (var i = 0; i < values.length; i += 2) {\r\n\t\t\t\tvar key = values[i];\r\n\t\t\t\tif (typeof key === 'string' && key) {\r\n\t\t\t\t\tbaseObj[values[i]] = values[i + 1];\r\n\t\t\t\t} else if (false) { }\r\n\t\t\t}\r\n\t\t\treturn baseObj\r\n\t\t}\r\n\r\n\t\t// helper to dynamically append modifier runtime markers to event names.\r\n\t\t// ensure only append when value is already string, otherwise it will be cast\r\n\t\t// to string and cause the type check to miss.\r\n\t\tfunction prependModifier(value, symbol) {\r\n\t\t\treturn typeof value === 'string' ? symbol + value : value\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction installRenderHelpers(target) {\r\n\t\t\ttarget._o = markOnce;\r\n\t\t\ttarget._n = toNumber;\r\n\t\t\ttarget._s = vue_esm_toString;\r\n\t\t\ttarget._l = renderList;\r\n\t\t\ttarget._t = renderSlot;\r\n\t\t\ttarget._q = looseEqual;\r\n\t\t\ttarget._i = looseIndexOf;\r\n\t\t\ttarget._m = renderStatic;\r\n\t\t\ttarget._f = resolveFilter;\r\n\t\t\ttarget._k = checkKeyCodes;\r\n\t\t\ttarget._b = bindObjectProps;\r\n\t\t\ttarget._v = createTextVNode;\r\n\t\t\ttarget._e = createEmptyVNode;\r\n\t\t\ttarget._u = resolveScopedSlots;\r\n\t\t\ttarget._g = bindObjectListeners;\r\n\t\t\ttarget._d = bindDynamicKeys;\r\n\t\t\ttarget._p = prependModifier;\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction FunctionalRenderContext(\r\n\t\t\tdata,\r\n\t\t\tprops,\r\n\t\t\tchildren,\r\n\t\t\tparent,\r\n\t\t\tCtor\r\n\t\t) {\r\n\t\t\tvar this$1 = this;\r\n\r\n\t\t\tvar options = Ctor.options;\r\n\t\t\t// ensure the createElement function in functional components\r\n\t\t\t// gets a unique context - this is necessary for correct named slot check\r\n\t\t\tvar contextVm;\r\n\t\t\tif (hasOwn(parent, '_uid')) {\r\n\t\t\t\tcontextVm = Object.create(parent);\r\n\t\t\t\t// $flow-disable-line\r\n\t\t\t\tcontextVm._original = parent;\r\n\t\t\t} else {\r\n\t\t\t\t// the context vm passed in is a functional context as well.\r\n\t\t\t\t// in this case we want to make sure we are able to get a hold to the\r\n\t\t\t\t// real context instance.\r\n\t\t\t\tcontextVm = parent;\r\n\t\t\t\t// $flow-disable-line\r\n\t\t\t\tparent = parent._original;\r\n\t\t\t}\r\n\t\t\tvar isCompiled = isTrue(options._compiled);\r\n\t\t\tvar needNormalization = !isCompiled;\r\n\r\n\t\t\tthis.data = data;\r\n\t\t\tthis.props = props;\r\n\t\t\tthis.children = children;\r\n\t\t\tthis.parent = parent;\r\n\t\t\tthis.listeners = data.on || emptyObject;\r\n\t\t\tthis.injections = resolveInject(options.inject, parent);\r\n\t\t\tthis.slots = function () {\r\n\t\t\t\tif (!this$1.$slots) {\r\n\t\t\t\t\tnormalizeScopedSlots(\r\n\t\t\t\t\t\tdata.scopedSlots,\r\n\t\t\t\t\t\tthis$1.$slots = resolveSlots(children, parent)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\treturn this$1.$slots\r\n\t\t\t};\r\n\r\n\t\t\tObject.defineProperty(this, 'scopedSlots', ({\r\n\t\t\t\tenumerable: true,\r\n\t\t\t\tget: function get() {\r\n\t\t\t\t\treturn normalizeScopedSlots(data.scopedSlots, this.slots())\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\r\n\t\t\t// support for compiled functional template\r\n\t\t\tif (isCompiled) {\r\n\t\t\t\t// exposing $options for renderStatic()\r\n\t\t\t\tthis.$options = options;\r\n\t\t\t\t// pre-resolve slots for renderSlot()\r\n\t\t\t\tthis.$slots = this.slots();\r\n\t\t\t\tthis.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\r\n\t\t\t}\r\n\r\n\t\t\tif (options._scopeId) {\r\n\t\t\t\tthis._c = function (a, b, c, d) {\r\n\t\t\t\t\tvar vnode = createElement(contextVm, a, b, c, d, needNormalization);\r\n\t\t\t\t\tif (vnode && !Array.isArray(vnode)) {\r\n\t\t\t\t\t\tvnode.fnScopeId = options._scopeId;\r\n\t\t\t\t\t\tvnode.fnContext = parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn vnode\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tthis._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tinstallRenderHelpers(FunctionalRenderContext.prototype);\r\n\r\n\t\tfunction createFunctionalComponent(\r\n\t\t\tCtor,\r\n\t\t\tpropsData,\r\n\t\t\tdata,\r\n\t\t\tcontextVm,\r\n\t\t\tchildren\r\n\t\t) {\r\n\t\t\tvar options = Ctor.options;\r\n\t\t\tvar props = {};\r\n\t\t\tvar propOptions = options.props;\r\n\t\t\tif (isDef(propOptions)) {\r\n\t\t\t\tfor (var key in propOptions) {\r\n\t\t\t\t\tprops[key] = validateProp(key, propOptions, propsData || emptyObject);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isDef(data.attrs)) { mergeProps(props, data.attrs); }\r\n\t\t\t\tif (isDef(data.props)) { mergeProps(props, data.props); }\r\n\t\t\t}\r\n\r\n\t\t\tvar renderContext = new FunctionalRenderContext(\r\n\t\t\t\tdata,\r\n\t\t\t\tprops,\r\n\t\t\t\tchildren,\r\n\t\t\t\tcontextVm,\r\n\t\t\t\tCtor\r\n\t\t\t);\r\n\r\n\t\t\tvar vnode = options.render.call(null, renderContext._c, renderContext);\r\n\r\n\t\t\tif (vnode instanceof VNode) {\r\n\t\t\t\treturn cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\r\n\t\t\t} else if (Array.isArray(vnode)) {\r\n\t\t\t\tvar vnodes = normalizeChildren(vnode) || [];\r\n\t\t\t\tvar res = new Array(vnodes.length);\r\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\r\n\t\t\t\t\tres[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\r\n\t\t\t\t}\r\n\t\t\t\treturn res\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\r\n\t\t\t// #7817 clone node before setting fnContext, otherwise if the node is reused\r\n\t\t\t// (e.g. it was from a cached normal slot) the fnContext causes named slots\r\n\t\t\t// that should not be matched to match.\r\n\t\t\tvar clone = cloneVNode(vnode);\r\n\t\t\tclone.fnContext = contextVm;\r\n\t\t\tclone.fnOptions = options;\r\n\t\t\tif (false) { }\r\n\t\t\tif (data.slot) {\r\n\t\t\t\t(clone.data || (clone.data = {})).slot = data.slot;\r\n\t\t\t}\r\n\t\t\treturn clone\r\n\t\t}\r\n\r\n\t\tfunction mergeProps(to, from) {\r\n\t\t\tfor (var key in from) {\r\n\t\t\t\tto[camelize(key)] = from[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/*  */\r\n\r\n\t\t/*  */\r\n\r\n\t\t/*  */\r\n\r\n\t\t// inline hooks to be invoked on component VNodes during patch\r\n\t\tvar componentVNodeHooks = {\r\n\t\t\tinit: function init(vnode, hydrating) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tvnode.componentInstance &&\r\n\t\t\t\t\t!vnode.componentInstance._isDestroyed &&\r\n\t\t\t\t\tvnode.data.keepAlive\r\n\t\t\t\t) {\r\n\t\t\t\t\t// kept-alive components, treat as a patch\r\n\t\t\t\t\tvar mountedNode = vnode; // work around flow\r\n\t\t\t\t\tcomponentVNodeHooks.prepatch(mountedNode, mountedNode);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar child = vnode.componentInstance = createComponentInstanceForVnode(\r\n\t\t\t\t\t\tvnode,\r\n\t\t\t\t\t\tactiveInstance\r\n\t\t\t\t\t);\r\n\t\t\t\t\tchild.$mount(hydrating ? vnode.elm : undefined, hydrating);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tprepatch: function prepatch(oldVnode, vnode) {\r\n\t\t\t\tvar options = vnode.componentOptions;\r\n\t\t\t\tvar child = vnode.componentInstance = oldVnode.componentInstance;\r\n\t\t\t\tupdateChildComponent(\r\n\t\t\t\t\tchild,\r\n\t\t\t\t\toptions.propsData, // updated props\r\n\t\t\t\t\toptions.listeners, // updated listeners\r\n\t\t\t\t\tvnode, // new parent vnode\r\n\t\t\t\t\toptions.children // new children\r\n\t\t\t\t);\r\n\t\t\t},\r\n\r\n\t\t\tinsert: function insert(vnode) {\r\n\t\t\t\tvar context = vnode.context;\r\n\t\t\t\tvar componentInstance = vnode.componentInstance;\r\n\t\t\t\tif (!componentInstance._isMounted) {\r\n\t\t\t\t\tcomponentInstance._isMounted = true;\r\n\t\t\t\t\tcallHook(componentInstance, 'mounted');\r\n\t\t\t\t}\r\n\t\t\t\tif (vnode.data.keepAlive) {\r\n\t\t\t\t\tif (context._isMounted) {\r\n\t\t\t\t\t\t// vue-router#1212\r\n\t\t\t\t\t\t// During updates, a kept-alive component's child components may\r\n\t\t\t\t\t\t// change, so directly walking the tree here may call activated hooks\r\n\t\t\t\t\t\t// on incorrect children. Instead we push them into a queue which will\r\n\t\t\t\t\t\t// be processed after the whole patch process ended.\r\n\t\t\t\t\t\tqueueActivatedComponent(componentInstance);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tactivateChildComponent(componentInstance, true /* direct */);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tdestroy: function destroy(vnode) {\r\n\t\t\t\tvar componentInstance = vnode.componentInstance;\r\n\t\t\t\tif (!componentInstance._isDestroyed) {\r\n\t\t\t\t\tif (!vnode.data.keepAlive) {\r\n\t\t\t\t\t\tcomponentInstance.$destroy();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdeactivateChildComponent(componentInstance, true /* direct */);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar hooksToMerge = Object.keys(componentVNodeHooks);\r\n\r\n\t\tfunction createComponent(\r\n\t\t\tCtor,\r\n\t\t\tdata,\r\n\t\t\tcontext,\r\n\t\t\tchildren,\r\n\t\t\ttag\r\n\t\t) {\r\n\t\t\tif (isUndef(Ctor)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar baseCtor = context.$options._base;\r\n\r\n\t\t\t// plain options object: turn it into a constructor\r\n\t\t\tif (isObject(Ctor)) {\r\n\t\t\t\tCtor = baseCtor.extend(Ctor);\r\n\t\t\t}\r\n\r\n\t\t\t// if at this stage it's not a constructor or an async component factory,\r\n\t\t\t// reject.\r\n\t\t\tif (typeof Ctor !== 'function') {\r\n\t\t\t\tif (false) { }\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t// async component\r\n\t\t\tvar asyncFactory;\r\n\t\t\tif (isUndef(Ctor.cid)) {\r\n\t\t\t\tasyncFactory = Ctor;\r\n\t\t\t\tCtor = resolveAsyncComponent(asyncFactory, baseCtor);\r\n\t\t\t\tif (Ctor === undefined) {\r\n\t\t\t\t\t// return a placeholder node for async component, which is rendered\r\n\t\t\t\t\t// as a comment node but preserves all the raw information for the node.\r\n\t\t\t\t\t// the information will be used for async server-rendering and hydration.\r\n\t\t\t\t\treturn createAsyncPlaceholder(\r\n\t\t\t\t\t\tasyncFactory,\r\n\t\t\t\t\t\tdata,\r\n\t\t\t\t\t\tcontext,\r\n\t\t\t\t\t\tchildren,\r\n\t\t\t\t\t\ttag\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdata = data || {};\r\n\r\n\t\t\t// resolve constructor options in case global mixins are applied after\r\n\t\t\t// component constructor creation\r\n\t\t\tresolveConstructorOptions(Ctor);\r\n\r\n\t\t\t// transform component v-model data into props & events\r\n\t\t\tif (isDef(data.model)) {\r\n\t\t\t\ttransformModel(Ctor.options, data);\r\n\t\t\t}\r\n\r\n\t\t\t// extract props\r\n\t\t\tvar propsData = extractPropsFromVNodeData(data, Ctor, tag);\r\n\r\n\t\t\t// functional component\r\n\t\t\tif (isTrue(Ctor.options.functional)) {\r\n\t\t\t\treturn createFunctionalComponent(Ctor, propsData, data, context, children)\r\n\t\t\t}\r\n\r\n\t\t\t// extract listeners, since these needs to be treated as\r\n\t\t\t// child component listeners instead of DOM listeners\r\n\t\t\tvar listeners = data.on;\r\n\t\t\t// replace with listeners with .native modifier\r\n\t\t\t// so it gets processed during parent component patch.\r\n\t\t\tdata.on = data.nativeOn;\r\n\r\n\t\t\tif (isTrue(Ctor.options.abstract)) {\r\n\t\t\t\t// abstract components do not keep anything\r\n\t\t\t\t// other than props & listeners & slot\r\n\r\n\t\t\t\t// work around flow\r\n\t\t\t\tvar slot = data.slot;\r\n\t\t\t\tdata = {};\r\n\t\t\t\tif (slot) {\r\n\t\t\t\t\tdata.slot = slot;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// install component management hooks onto the placeholder node\r\n\t\t\tinstallComponentHooks(data);\r\n\r\n\t\t\t// return a placeholder vnode\r\n\t\t\tvar name = Ctor.options.name || tag;\r\n\t\t\tvar vnode = new VNode(\r\n\t\t\t\t(\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\r\n\t\t\t\tdata, undefined, undefined, undefined, context,\r\n\t\t\t\t{ Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\r\n\t\t\t\tasyncFactory\r\n\t\t\t);\r\n\r\n\t\t\treturn vnode\r\n\t\t}\r\n\r\n\t\tfunction createComponentInstanceForVnode(\r\n\t\t\t// we know it's MountedComponentVNode but flow doesn't\r\n\t\t\tvnode,\r\n\t\t\t// activeInstance in lifecycle state\r\n\t\t\tparent\r\n\t\t) {\r\n\t\t\tvar options = {\r\n\t\t\t\t_isComponent: true,\r\n\t\t\t\t_parentVnode: vnode,\r\n\t\t\t\tparent: parent\r\n\t\t\t};\r\n\t\t\t// check inline-template render functions\r\n\t\t\tvar inlineTemplate = vnode.data.inlineTemplate;\r\n\t\t\tif (isDef(inlineTemplate)) {\r\n\t\t\t\toptions.render = inlineTemplate.render;\r\n\t\t\t\toptions.staticRenderFns = inlineTemplate.staticRenderFns;\r\n\t\t\t}\r\n\t\t\treturn new vnode.componentOptions.Ctor(options)\r\n\t\t}\r\n\r\n\t\tfunction installComponentHooks(data) {\r\n\t\t\tvar hooks = data.hook || (data.hook = {});\r\n\t\t\tfor (var i = 0; i < hooksToMerge.length; i++) {\r\n\t\t\t\tvar key = hooksToMerge[i];\r\n\t\t\t\tvar existing = hooks[key];\r\n\t\t\t\tvar toMerge = componentVNodeHooks[key];\r\n\t\t\t\tif (existing !== toMerge && !(existing && existing._merged)) {\r\n\t\t\t\t\thooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction mergeHook$1(f1, f2) {\r\n\t\t\tvar merged = function (a, b) {\r\n\t\t\t\t// flow complains about extra args which is why we use any\r\n\t\t\t\tf1(a, b);\r\n\t\t\t\tf2(a, b);\r\n\t\t\t};\r\n\t\t\tmerged._merged = true;\r\n\t\t\treturn merged\r\n\t\t}\r\n\r\n\t\t// transform component v-model info (value and callback) into\r\n\t\t// prop and event handler respectively.\r\n\t\tfunction transformModel(options, data) {\r\n\t\t\tvar prop = (options.model && options.model.prop) || 'value';\r\n\t\t\tvar event = (options.model && options.model.event) || 'input'\r\n\t\t\t\t; (data.attrs || (data.attrs = {}))[prop] = data.model.value;\r\n\t\t\tvar on = data.on || (data.on = {});\r\n\t\t\tvar existing = on[event];\r\n\t\t\tvar callback = data.model.callback;\r\n\t\t\tif (isDef(existing)) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tArray.isArray(existing)\r\n\t\t\t\t\t\t? existing.indexOf(callback) === -1\r\n\t\t\t\t\t\t: existing !== callback\r\n\t\t\t\t) {\r\n\t\t\t\t\ton[event] = [callback].concat(existing);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ton[event] = callback;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar SIMPLE_NORMALIZE = 1;\r\n\t\tvar ALWAYS_NORMALIZE = 2;\r\n\r\n\t\t// wrapper function for providing a more flexible interface\r\n\t\t// without getting yelled at by flow\r\n\t\tfunction createElement(\r\n\t\t\tcontext,\r\n\t\t\ttag,\r\n\t\t\tdata,\r\n\t\t\tchildren,\r\n\t\t\tnormalizationType,\r\n\t\t\talwaysNormalize\r\n\t\t) {\r\n\t\t\tif (Array.isArray(data) || isPrimitive(data)) {\r\n\t\t\t\tnormalizationType = children;\r\n\t\t\t\tchildren = data;\r\n\t\t\t\tdata = undefined;\r\n\t\t\t}\r\n\t\t\tif (isTrue(alwaysNormalize)) {\r\n\t\t\t\tnormalizationType = ALWAYS_NORMALIZE;\r\n\t\t\t}\r\n\t\t\treturn _createElement(context, tag, data, children, normalizationType)\r\n\t\t}\r\n\r\n\t\tfunction _createElement(\r\n\t\t\tcontext,\r\n\t\t\ttag,\r\n\t\t\tdata,\r\n\t\t\tchildren,\r\n\t\t\tnormalizationType\r\n\t\t) {\r\n\t\t\tif (isDef(data) && isDef((data).__ob__)) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn createEmptyVNode()\r\n\t\t\t}\r\n\t\t\t// object syntax in v-bind\r\n\t\t\tif (isDef(data) && isDef(data.is)) {\r\n\t\t\t\ttag = data.is;\r\n\t\t\t}\r\n\t\t\tif (!tag) {\r\n\t\t\t\t// in case of component :is set to falsy value\r\n\t\t\t\treturn createEmptyVNode()\r\n\t\t\t}\r\n\t\t\t// warn against non-primitive key\r\n\t\t\tif (false\r\n\t\t\t) { }\r\n\t\t\t// support single function children as default scoped slot\r\n\t\t\tif (Array.isArray(children) &&\r\n\t\t\t\ttypeof children[0] === 'function'\r\n\t\t\t) {\r\n\t\t\t\tdata = data || {};\r\n\t\t\t\tdata.scopedSlots = { default: children[0] };\r\n\t\t\t\tchildren.length = 0;\r\n\t\t\t}\r\n\t\t\tif (normalizationType === ALWAYS_NORMALIZE) {\r\n\t\t\t\tchildren = normalizeChildren(children);\r\n\t\t\t} else if (normalizationType === SIMPLE_NORMALIZE) {\r\n\t\t\t\tchildren = simpleNormalizeChildren(children);\r\n\t\t\t}\r\n\t\t\tvar vnode, ns;\r\n\t\t\tif (typeof tag === 'string') {\r\n\t\t\t\tvar Ctor;\r\n\t\t\t\tns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\r\n\t\t\t\tif (config.isReservedTag(tag)) {\r\n\t\t\t\t\t// platform built-in elements\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tvnode = new VNode(\r\n\t\t\t\t\t\tconfig.parsePlatformTagName(tag), data, children,\r\n\t\t\t\t\t\tundefined, undefined, context\r\n\t\t\t\t\t);\r\n\t\t\t\t} else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\r\n\t\t\t\t\t// component\r\n\t\t\t\t\tvnode = createComponent(Ctor, data, context, children, tag);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// unknown or unlisted namespaced elements\r\n\t\t\t\t\t// check at runtime because it may get assigned a namespace when its\r\n\t\t\t\t\t// parent normalizes children\r\n\t\t\t\t\tvnode = new VNode(\r\n\t\t\t\t\t\ttag, data, children,\r\n\t\t\t\t\t\tundefined, undefined, context\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// direct component options / constructor\r\n\t\t\t\tvnode = createComponent(tag, data, context, children);\r\n\t\t\t}\r\n\t\t\tif (Array.isArray(vnode)) {\r\n\t\t\t\treturn vnode\r\n\t\t\t} else if (isDef(vnode)) {\r\n\t\t\t\tif (isDef(ns)) { applyNS(vnode, ns); }\r\n\t\t\t\tif (isDef(data)) { registerDeepBindings(data); }\r\n\t\t\t\treturn vnode\r\n\t\t\t} else {\r\n\t\t\t\treturn createEmptyVNode()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction applyNS(vnode, ns, force) {\r\n\t\t\tvnode.ns = ns;\r\n\t\t\tif (vnode.tag === 'foreignObject') {\r\n\t\t\t\t// use default namespace inside foreignObject\r\n\t\t\t\tns = undefined;\r\n\t\t\t\tforce = true;\r\n\t\t\t}\r\n\t\t\tif (isDef(vnode.children)) {\r\n\t\t\t\tfor (var i = 0, l = vnode.children.length; i < l; i++) {\r\n\t\t\t\t\tvar child = vnode.children[i];\r\n\t\t\t\t\tif (isDef(child.tag) && (\r\n\t\t\t\t\t\tisUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\r\n\t\t\t\t\t\tapplyNS(child, ns, force);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// ref #5318\r\n\t\t// necessary to ensure parent re-render when deep bindings like :style and\r\n\t\t// :class are used on slot nodes\r\n\t\tfunction registerDeepBindings(data) {\r\n\t\t\tif (isObject(data.style)) {\r\n\t\t\t\ttraverse(data.style);\r\n\t\t\t}\r\n\t\t\tif (isObject(data.class)) {\r\n\t\t\t\ttraverse(data.class);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initRender(vm) {\r\n\t\t\tvm._vnode = null; // the root of the child tree\r\n\t\t\tvm._staticTrees = null; // v-once cached trees\r\n\t\t\tvar options = vm.$options;\r\n\t\t\tvar parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\r\n\t\t\tvar renderContext = parentVnode && parentVnode.context;\r\n\t\t\tvm.$slots = resolveSlots(options._renderChildren, renderContext);\r\n\t\t\tvm.$scopedSlots = emptyObject;\r\n\t\t\t// bind the createElement fn to this instance\r\n\t\t\t// so that we get proper render context inside it.\r\n\t\t\t// args order: tag, data, children, normalizationType, alwaysNormalize\r\n\t\t\t// internal version is used by render functions compiled from templates\r\n\t\t\tvm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\r\n\t\t\t// normalization is always applied for the public version, used in\r\n\t\t\t// user-written render functions.\r\n\t\t\tvm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\r\n\r\n\t\t\t// $attrs & $listeners are exposed for easier HOC creation.\r\n\t\t\t// they need to be reactive so that HOCs using them are always updated\r\n\t\t\tvar parentData = parentVnode && parentVnode.data;\r\n\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (false) { } else {\r\n\t\t\t\tdefineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\r\n\t\t\t\tdefineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar currentRenderingInstance = null;\r\n\r\n\t\tfunction renderMixin(Vue) {\r\n\t\t\t// install runtime convenience helpers\r\n\t\t\tinstallRenderHelpers(Vue.prototype);\r\n\r\n\t\t\tVue.prototype.$nextTick = function (fn) {\r\n\t\t\t\treturn nextTick(fn, this)\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype._render = function () {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvar ref = vm.$options;\r\n\t\t\t\tvar render = ref.render;\r\n\t\t\t\tvar _parentVnode = ref._parentVnode;\r\n\r\n\t\t\t\tif (_parentVnode) {\r\n\t\t\t\t\tvm.$scopedSlots = normalizeScopedSlots(\r\n\t\t\t\t\t\t_parentVnode.data.scopedSlots,\r\n\t\t\t\t\t\tvm.$slots,\r\n\t\t\t\t\t\tvm.$scopedSlots\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set parent vnode. this allows render functions to have access\r\n\t\t\t\t// to the data on the placeholder node.\r\n\t\t\t\tvm.$vnode = _parentVnode;\r\n\t\t\t\t// render self\r\n\t\t\t\tvar vnode;\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// There's no need to maintain a stack because all render fns are called\r\n\t\t\t\t\t// separately from one another. Nested component's render fns are called\r\n\t\t\t\t\t// when parent component is patched.\r\n\t\t\t\t\tcurrentRenderingInstance = vm;\r\n\t\t\t\t\tvnode = render.call(vm._renderProxy, vm.$createElement);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\thandleError(e, vm, \"render\");\r\n\t\t\t\t\t// return error render result,\r\n\t\t\t\t\t// or previous vnode to prevent render error causing blank component\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (false) { } else {\r\n\t\t\t\t\t\tvnode = vm._vnode;\r\n\t\t\t\t\t}\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tcurrentRenderingInstance = null;\r\n\t\t\t\t}\r\n\t\t\t\t// if the returned array contains only a single node, allow it\r\n\t\t\t\tif (Array.isArray(vnode) && vnode.length === 1) {\r\n\t\t\t\t\tvnode = vnode[0];\r\n\t\t\t\t}\r\n\t\t\t\t// return empty vnode in case the render function errored out\r\n\t\t\t\tif (!(vnode instanceof VNode)) {\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tvnode = createEmptyVNode();\r\n\t\t\t\t}\r\n\t\t\t\t// set parent\r\n\t\t\t\tvnode.parent = _parentVnode;\r\n\t\t\t\treturn vnode\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction ensureCtor(comp, base) {\r\n\t\t\tif (\r\n\t\t\t\tcomp.__esModule ||\r\n\t\t\t\t(hasSymbol && comp[Symbol.toStringTag] === 'Module')\r\n\t\t\t) {\r\n\t\t\t\tcomp = comp.default;\r\n\t\t\t}\r\n\t\t\treturn isObject(comp)\r\n\t\t\t\t? base.extend(comp)\r\n\t\t\t\t: comp\r\n\t\t}\r\n\r\n\t\tfunction createAsyncPlaceholder(\r\n\t\t\tfactory,\r\n\t\t\tdata,\r\n\t\t\tcontext,\r\n\t\t\tchildren,\r\n\t\t\ttag\r\n\t\t) {\r\n\t\t\tvar node = createEmptyVNode();\r\n\t\t\tnode.asyncFactory = factory;\r\n\t\t\tnode.asyncMeta = { data: data, context: context, children: children, tag: tag };\r\n\t\t\treturn node\r\n\t\t}\r\n\r\n\t\tfunction resolveAsyncComponent(\r\n\t\t\tfactory,\r\n\t\t\tbaseCtor\r\n\t\t) {\r\n\t\t\tif (isTrue(factory.error) && isDef(factory.errorComp)) {\r\n\t\t\t\treturn factory.errorComp\r\n\t\t\t}\r\n\r\n\t\t\tif (isDef(factory.resolved)) {\r\n\t\t\t\treturn factory.resolved\r\n\t\t\t}\r\n\r\n\t\t\tvar owner = currentRenderingInstance;\r\n\t\t\tif (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\r\n\t\t\t\t// already pending\r\n\t\t\t\tfactory.owners.push(owner);\r\n\t\t\t}\r\n\r\n\t\t\tif (isTrue(factory.loading) && isDef(factory.loadingComp)) {\r\n\t\t\t\treturn factory.loadingComp\r\n\t\t\t}\r\n\r\n\t\t\tif (owner && !isDef(factory.owners)) {\r\n\t\t\t\tvar owners = factory.owners = [owner];\r\n\t\t\t\tvar sync = true;\r\n\t\t\t\tvar timerLoading = null;\r\n\t\t\t\tvar timerTimeout = null\r\n\r\n\t\t\t\t\t; (owner).$on('hook:destroyed', function () { return remove(owners, owner); });\r\n\r\n\t\t\t\tvar forceRender = function (renderCompleted) {\r\n\t\t\t\t\tfor (var i = 0, l = owners.length; i < l; i++) {\r\n\t\t\t\t\t\t(owners[i]).$forceUpdate();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (renderCompleted) {\r\n\t\t\t\t\t\towners.length = 0;\r\n\t\t\t\t\t\tif (timerLoading !== null) {\r\n\t\t\t\t\t\t\tclearTimeout(timerLoading);\r\n\t\t\t\t\t\t\ttimerLoading = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (timerTimeout !== null) {\r\n\t\t\t\t\t\t\tclearTimeout(timerTimeout);\r\n\t\t\t\t\t\t\ttimerTimeout = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar resolve = once(function (res) {\r\n\t\t\t\t\t// cache resolved\r\n\t\t\t\t\tfactory.resolved = ensureCtor(res, baseCtor);\r\n\t\t\t\t\t// invoke callbacks only if this is not a synchronous resolve\r\n\t\t\t\t\t// (async resolves are shimmed as synchronous during SSR)\r\n\t\t\t\t\tif (!sync) {\r\n\t\t\t\t\t\tforceRender(true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\towners.length = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar reject = once(function (reason) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t\tif (isDef(factory.errorComp)) {\r\n\t\t\t\t\t\tfactory.error = true;\r\n\t\t\t\t\t\tforceRender(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar res = factory(resolve, reject);\r\n\r\n\t\t\t\tif (isObject(res)) {\r\n\t\t\t\t\tif (isPromise(res)) {\r\n\t\t\t\t\t\t// () => Promise\r\n\t\t\t\t\t\tif (isUndef(factory.resolved)) {\r\n\t\t\t\t\t\t\tres.then(resolve, reject);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (isPromise(res.component)) {\r\n\t\t\t\t\t\tres.component.then(resolve, reject);\r\n\r\n\t\t\t\t\t\tif (isDef(res.error)) {\r\n\t\t\t\t\t\t\tfactory.errorComp = ensureCtor(res.error, baseCtor);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isDef(res.loading)) {\r\n\t\t\t\t\t\t\tfactory.loadingComp = ensureCtor(res.loading, baseCtor);\r\n\t\t\t\t\t\t\tif (res.delay === 0) {\r\n\t\t\t\t\t\t\t\tfactory.loading = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttimerLoading = setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\ttimerLoading = null;\r\n\t\t\t\t\t\t\t\t\tif (isUndef(factory.resolved) && isUndef(factory.error)) {\r\n\t\t\t\t\t\t\t\t\t\tfactory.loading = true;\r\n\t\t\t\t\t\t\t\t\t\tforceRender(false);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}, res.delay || 200);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isDef(res.timeout)) {\r\n\t\t\t\t\t\t\ttimerTimeout = setTimeout(function () {\r\n\t\t\t\t\t\t\t\ttimerTimeout = null;\r\n\t\t\t\t\t\t\t\tif (isUndef(factory.resolved)) {\r\n\t\t\t\t\t\t\t\t\treject(\r\n\t\t\t\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t\t\t\t\t\t? (0)\r\n\t\t\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, res.timeout);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsync = false;\r\n\t\t\t\t// return in case resolved synchronously\r\n\t\t\t\treturn factory.loading\r\n\t\t\t\t\t? factory.loadingComp\r\n\t\t\t\t\t: factory.resolved\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction getFirstComponentChild(children) {\r\n\t\t\tif (Array.isArray(children)) {\r\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\tvar c = children[i];\r\n\t\t\t\t\tif (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\r\n\t\t\t\t\t\treturn c\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initEvents(vm) {\r\n\t\t\tvm._events = Object.create(null);\r\n\t\t\tvm._hasHookEvent = false;\r\n\t\t\t// init parent attached events\r\n\t\t\tvar listeners = vm.$options._parentListeners;\r\n\t\t\tif (listeners) {\r\n\t\t\t\tupdateComponentListeners(vm, listeners);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar target;\r\n\r\n\t\tfunction add(event, fn) {\r\n\t\t\ttarget.$on(event, fn);\r\n\t\t}\r\n\r\n\t\tfunction remove$1(event, fn) {\r\n\t\t\ttarget.$off(event, fn);\r\n\t\t}\r\n\r\n\t\tfunction createOnceHandler(event, fn) {\r\n\t\t\tvar _target = target;\r\n\t\t\treturn function onceHandler() {\r\n\t\t\t\tvar res = fn.apply(null, arguments);\r\n\t\t\t\tif (res !== null) {\r\n\t\t\t\t\t_target.$off(event, onceHandler);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateComponentListeners(\r\n\t\t\tvm,\r\n\t\t\tlisteners,\r\n\t\t\toldListeners\r\n\t\t) {\r\n\t\t\ttarget = vm;\r\n\t\t\tupdateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\r\n\t\t\ttarget = undefined;\r\n\t\t}\r\n\r\n\t\tfunction eventsMixin(Vue) {\r\n\t\t\tvar hookRE = /^hook:/;\r\n\t\t\tVue.prototype.$on = function (event, fn) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tif (Array.isArray(event)) {\r\n\t\t\t\t\tfor (var i = 0, l = event.length; i < l; i++) {\r\n\t\t\t\t\t\tvm.$on(event[i], fn);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t(vm._events[event] || (vm._events[event] = [])).push(fn);\r\n\t\t\t\t\t// optimize hook:event cost by using a boolean flag marked at registration\r\n\t\t\t\t\t// instead of a hash lookup\r\n\t\t\t\t\tif (hookRE.test(event)) {\r\n\t\t\t\t\t\tvm._hasHookEvent = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn vm\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype.$once = function (event, fn) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tfunction on() {\r\n\t\t\t\t\tvm.$off(event, on);\r\n\t\t\t\t\tfn.apply(vm, arguments);\r\n\t\t\t\t}\r\n\t\t\t\ton.fn = fn;\r\n\t\t\t\tvm.$on(event, on);\r\n\t\t\t\treturn vm\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype.$off = function (event, fn) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\t// all\r\n\t\t\t\tif (!arguments.length) {\r\n\t\t\t\t\tvm._events = Object.create(null);\r\n\t\t\t\t\treturn vm\r\n\t\t\t\t}\r\n\t\t\t\t// array of events\r\n\t\t\t\tif (Array.isArray(event)) {\r\n\t\t\t\t\tfor (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\r\n\t\t\t\t\t\tvm.$off(event[i$1], fn);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn vm\r\n\t\t\t\t}\r\n\t\t\t\t// specific event\r\n\t\t\t\tvar cbs = vm._events[event];\r\n\t\t\t\tif (!cbs) {\r\n\t\t\t\t\treturn vm\r\n\t\t\t\t}\r\n\t\t\t\tif (!fn) {\r\n\t\t\t\t\tvm._events[event] = null;\r\n\t\t\t\t\treturn vm\r\n\t\t\t\t}\r\n\t\t\t\t// specific handler\r\n\t\t\t\tvar cb;\r\n\t\t\t\tvar i = cbs.length;\r\n\t\t\t\twhile (i--) {\r\n\t\t\t\t\tcb = cbs[i];\r\n\t\t\t\t\tif (cb === fn || cb.fn === fn) {\r\n\t\t\t\t\t\tcbs.splice(i, 1);\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn vm\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype.$emit = function (event) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tif (false) { var lowerCaseEvent; }\r\n\t\t\t\tvar cbs = vm._events[event];\r\n\t\t\t\tif (cbs) {\r\n\t\t\t\t\tcbs = cbs.length > 1 ? toArray(cbs) : cbs;\r\n\t\t\t\t\tvar args = toArray(arguments, 1);\r\n\t\t\t\t\tvar info = \"event handler for \\\"\" + event + \"\\\"\";\r\n\t\t\t\t\tfor (var i = 0, l = cbs.length; i < l; i++) {\r\n\t\t\t\t\t\tinvokeWithErrorHandling(cbs[i], vm, args, vm, info);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn vm\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar activeInstance = null;\r\n\t\tvar isUpdatingChildComponent = false;\r\n\r\n\t\tfunction setActiveInstance(vm) {\r\n\t\t\tvar prevActiveInstance = activeInstance;\r\n\t\t\tactiveInstance = vm;\r\n\t\t\treturn function () {\r\n\t\t\t\tactiveInstance = prevActiveInstance;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initLifecycle(vm) {\r\n\t\t\tvar options = vm.$options;\r\n\r\n\t\t\t// locate first non-abstract parent\r\n\t\t\tvar parent = options.parent;\r\n\t\t\tif (parent && !options.abstract) {\r\n\t\t\t\twhile (parent.$options.abstract && parent.$parent) {\r\n\t\t\t\t\tparent = parent.$parent;\r\n\t\t\t\t}\r\n\t\t\t\tparent.$children.push(vm);\r\n\t\t\t}\r\n\r\n\t\t\tvm.$parent = parent;\r\n\t\t\tvm.$root = parent ? parent.$root : vm;\r\n\r\n\t\t\tvm.$children = [];\r\n\t\t\tvm.$refs = {};\r\n\r\n\t\t\tvm._watcher = null;\r\n\t\t\tvm._inactive = null;\r\n\t\t\tvm._directInactive = false;\r\n\t\t\tvm._isMounted = false;\r\n\t\t\tvm._isDestroyed = false;\r\n\t\t\tvm._isBeingDestroyed = false;\r\n\t\t}\r\n\r\n\t\tfunction lifecycleMixin(Vue) {\r\n\t\t\tVue.prototype._update = function (vnode, hydrating) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tvar prevEl = vm.$el;\r\n\t\t\t\tvar prevVnode = vm._vnode;\r\n\t\t\t\tvar restoreActiveInstance = setActiveInstance(vm);\r\n\t\t\t\tvm._vnode = vnode;\r\n\t\t\t\t// Vue.prototype.__patch__ is injected in entry points\r\n\t\t\t\t// based on the rendering backend used.\r\n\t\t\t\tif (!prevVnode) {\r\n\t\t\t\t\t// initial render\r\n\t\t\t\t\tvm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// updates\r\n\t\t\t\t\tvm.$el = vm.__patch__(prevVnode, vnode);\r\n\t\t\t\t}\r\n\t\t\t\trestoreActiveInstance();\r\n\t\t\t\t// update __vue__ reference\r\n\t\t\t\tif (prevEl) {\r\n\t\t\t\t\tprevEl.__vue__ = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.$el) {\r\n\t\t\t\t\tvm.$el.__vue__ = vm;\r\n\t\t\t\t}\r\n\t\t\t\t// if parent is an HOC, update its $el as well\r\n\t\t\t\tif (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\r\n\t\t\t\t\tvm.$parent.$el = vm.$el;\r\n\t\t\t\t}\r\n\t\t\t\t// updated hook is called by the scheduler to ensure that children are\r\n\t\t\t\t// updated in a parent's updated hook.\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype.$forceUpdate = function () {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tif (vm._watcher) {\r\n\t\t\t\t\tvm._watcher.update();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tVue.prototype.$destroy = function () {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tif (vm._isBeingDestroyed) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tcallHook(vm, 'beforeDestroy');\r\n\t\t\t\tvm._isBeingDestroyed = true;\r\n\t\t\t\t// remove self from parent\r\n\t\t\t\tvar parent = vm.$parent;\r\n\t\t\t\tif (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\r\n\t\t\t\t\tremove(parent.$children, vm);\r\n\t\t\t\t}\r\n\t\t\t\t// teardown watchers\r\n\t\t\t\tif (vm._watcher) {\r\n\t\t\t\t\tvm._watcher.teardown();\r\n\t\t\t\t}\r\n\t\t\t\tvar i = vm._watchers.length;\r\n\t\t\t\twhile (i--) {\r\n\t\t\t\t\tvm._watchers[i].teardown();\r\n\t\t\t\t}\r\n\t\t\t\t// remove reference from data ob\r\n\t\t\t\t// frozen object may not have observer.\r\n\t\t\t\tif (vm._data.__ob__) {\r\n\t\t\t\t\tvm._data.__ob__.vmCount--;\r\n\t\t\t\t}\r\n\t\t\t\t// call the last hook...\r\n\t\t\t\tvm._isDestroyed = true;\r\n\t\t\t\t// invoke destroy hooks on current rendered tree\r\n\t\t\t\tvm.__patch__(vm._vnode, null);\r\n\t\t\t\t// fire destroyed hook\r\n\t\t\t\tcallHook(vm, 'destroyed');\r\n\t\t\t\t// turn off all instance listeners.\r\n\t\t\t\tvm.$off();\r\n\t\t\t\t// remove __vue__ reference\r\n\t\t\t\tif (vm.$el) {\r\n\t\t\t\t\tvm.$el.__vue__ = null;\r\n\t\t\t\t}\r\n\t\t\t\t// release circular reference (#6759)\r\n\t\t\t\tif (vm.$vnode) {\r\n\t\t\t\t\tvm.$vnode.parent = null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction mountComponent(\r\n\t\t\tvm,\r\n\t\t\tel,\r\n\t\t\thydrating\r\n\t\t) {\r\n\t\t\tvm.$el = el;\r\n\t\t\tif (!vm.$options.render) {\r\n\t\t\t\tvm.$options.render = createEmptyVNode;\r\n\t\t\t\tif (false) { }\r\n\t\t\t}\r\n\t\t\tcallHook(vm, 'beforeMount');\r\n\r\n\t\t\tvar updateComponent;\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (false) { } else {\r\n\t\t\t\tupdateComponent = function () {\r\n\t\t\t\t\tvm._update(vm._render(), hydrating);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t// we set this to vm._watcher inside the watcher's constructor\r\n\t\t\t// since the watcher's initial patch may call $forceUpdate (e.g. inside child\r\n\t\t\t// component's mounted hook), which relies on vm._watcher being already defined\r\n\t\t\tnew Watcher(vm, updateComponent, noop, {\r\n\t\t\t\tbefore: function before() {\r\n\t\t\t\t\tif (vm._isMounted && !vm._isDestroyed) {\r\n\t\t\t\t\t\tcallHook(vm, 'beforeUpdate');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, true /* isRenderWatcher */);\r\n\t\t\thydrating = false;\r\n\r\n\t\t\t// manually mounted instance, call mounted on self\r\n\t\t\t// mounted is called for render-created child components in its inserted hook\r\n\t\t\tif (vm.$vnode == null) {\r\n\t\t\t\tvm._isMounted = true;\r\n\t\t\t\tcallHook(vm, 'mounted');\r\n\t\t\t}\r\n\t\t\treturn vm\r\n\t\t}\r\n\r\n\t\tfunction updateChildComponent(\r\n\t\t\tvm,\r\n\t\t\tpropsData,\r\n\t\t\tlisteners,\r\n\t\t\tparentVnode,\r\n\t\t\trenderChildren\r\n\t\t) {\r\n\t\t\tif (false) { }\r\n\r\n\t\t\t// determine whether component has slot children\r\n\t\t\t// we need to do this before overwriting $options._renderChildren.\r\n\r\n\t\t\t// check if there are dynamic scopedSlots (hand-written or compiled but with\r\n\t\t\t// dynamic slot names). Static scoped slots compiled from template has the\r\n\t\t\t// \"$stable\" marker.\r\n\t\t\tvar newScopedSlots = parentVnode.data.scopedSlots;\r\n\t\t\tvar oldScopedSlots = vm.$scopedSlots;\r\n\t\t\tvar hasDynamicScopedSlot = !!(\r\n\t\t\t\t(newScopedSlots && !newScopedSlots.$stable) ||\r\n\t\t\t\t(oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\r\n\t\t\t\t(newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\r\n\t\t\t\t(!newScopedSlots && vm.$scopedSlots.$key)\r\n\t\t\t);\r\n\r\n\t\t\t// Any static slot children from the parent may have changed during parent's\r\n\t\t\t// update. Dynamic scoped slots may also have changed. In such cases, a forced\r\n\t\t\t// update is necessary to ensure correctness.\r\n\t\t\tvar needsForceUpdate = !!(\r\n\t\t\t\trenderChildren ||               // has new static slots\r\n\t\t\t\tvm.$options._renderChildren ||  // has old static slots\r\n\t\t\t\thasDynamicScopedSlot\r\n\t\t\t);\r\n\r\n\t\t\tvm.$options._parentVnode = parentVnode;\r\n\t\t\tvm.$vnode = parentVnode; // update vm's placeholder node without re-render\r\n\r\n\t\t\tif (vm._vnode) { // update child tree's parent\r\n\t\t\t\tvm._vnode.parent = parentVnode;\r\n\t\t\t}\r\n\t\t\tvm.$options._renderChildren = renderChildren;\r\n\r\n\t\t\t// update $attrs and $listeners hash\r\n\t\t\t// these are also reactive so they may trigger child update if the child\r\n\t\t\t// used them during render\r\n\t\t\tvm.$attrs = parentVnode.data.attrs || emptyObject;\r\n\t\t\tvm.$listeners = listeners || emptyObject;\r\n\r\n\t\t\t// update props\r\n\t\t\tif (propsData && vm.$options.props) {\r\n\t\t\t\ttoggleObserving(false);\r\n\t\t\t\tvar props = vm._props;\r\n\t\t\t\tvar propKeys = vm.$options._propKeys || [];\r\n\t\t\t\tfor (var i = 0; i < propKeys.length; i++) {\r\n\t\t\t\t\tvar key = propKeys[i];\r\n\t\t\t\t\tvar propOptions = vm.$options.props; // wtf flow?\r\n\t\t\t\t\tprops[key] = validateProp(key, propOptions, propsData, vm);\r\n\t\t\t\t}\r\n\t\t\t\ttoggleObserving(true);\r\n\t\t\t\t// keep a copy of raw propsData\r\n\t\t\t\tvm.$options.propsData = propsData;\r\n\t\t\t}\r\n\r\n\t\t\t// update listeners\r\n\t\t\tlisteners = listeners || emptyObject;\r\n\t\t\tvar oldListeners = vm.$options._parentListeners;\r\n\t\t\tvm.$options._parentListeners = listeners;\r\n\t\t\tupdateComponentListeners(vm, listeners, oldListeners);\r\n\r\n\t\t\t// resolve slots + force update if has children\r\n\t\t\tif (needsForceUpdate) {\r\n\t\t\t\tvm.$slots = resolveSlots(renderChildren, parentVnode.context);\r\n\t\t\t\tvm.$forceUpdate();\r\n\t\t\t}\r\n\r\n\t\t\tif (false) { }\r\n\t\t}\r\n\r\n\t\tfunction isInInactiveTree(vm) {\r\n\t\t\twhile (vm && (vm = vm.$parent)) {\r\n\t\t\t\tif (vm._inactive) { return true }\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfunction activateChildComponent(vm, direct) {\r\n\t\t\tif (direct) {\r\n\t\t\t\tvm._directInactive = false;\r\n\t\t\t\tif (isInInactiveTree(vm)) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t} else if (vm._directInactive) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (vm._inactive || vm._inactive === null) {\r\n\t\t\t\tvm._inactive = false;\r\n\t\t\t\tfor (var i = 0; i < vm.$children.length; i++) {\r\n\t\t\t\t\tactivateChildComponent(vm.$children[i]);\r\n\t\t\t\t}\r\n\t\t\t\tcallHook(vm, 'activated');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction deactivateChildComponent(vm, direct) {\r\n\t\t\tif (direct) {\r\n\t\t\t\tvm._directInactive = true;\r\n\t\t\t\tif (isInInactiveTree(vm)) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!vm._inactive) {\r\n\t\t\t\tvm._inactive = true;\r\n\t\t\t\tfor (var i = 0; i < vm.$children.length; i++) {\r\n\t\t\t\t\tdeactivateChildComponent(vm.$children[i]);\r\n\t\t\t\t}\r\n\t\t\t\tcallHook(vm, 'deactivated');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction callHook(vm, hook) {\r\n\t\t\t// #7573 disable dep collection when invoking lifecycle hooks\r\n\t\t\tpushTarget();\r\n\t\t\tvar handlers = vm.$options[hook];\r\n\t\t\tvar info = hook + \" hook\";\r\n\t\t\tif (handlers) {\r\n\t\t\t\tfor (var i = 0, j = handlers.length; i < j; i++) {\r\n\t\t\t\t\tinvokeWithErrorHandling(handlers[i], vm, null, vm, info);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (vm._hasHookEvent) {\r\n\t\t\t\tvm.$emit('hook:' + hook);\r\n\t\t\t}\r\n\t\t\tpopTarget();\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar MAX_UPDATE_COUNT = 100;\r\n\r\n\t\tvar queue = [];\r\n\t\tvar activatedChildren = [];\r\n\t\tvar has = {};\r\n\t\tvar circular = {};\r\n\t\tvar waiting = false;\r\n\t\tvar flushing = false;\r\n\t\tvar index = 0;\r\n\r\n\t\t/**\r\n\t\t * Reset the scheduler's state.\r\n\t\t */\r\n\t\tfunction resetSchedulerState() {\r\n\t\t\tindex = queue.length = activatedChildren.length = 0;\r\n\t\t\thas = {};\r\n\t\t\tif (false) { }\r\n\t\t\twaiting = flushing = false;\r\n\t\t}\r\n\r\n\t\t// Async edge case #6566 requires saving the timestamp when event listeners are\r\n\t\t// attached. However, calling performance.now() has a perf overhead especially\r\n\t\t// if the page has thousands of event listeners. Instead, we take a timestamp\r\n\t\t// every time the scheduler flushes and use that for all event listeners\r\n\t\t// attached during that flush.\r\n\t\tvar currentFlushTimestamp = 0;\r\n\r\n\t\t// Async edge case fix requires storing an event listener's attach timestamp.\r\n\t\tvar getNow = Date.now;\r\n\r\n\t\t// Determine what event timestamp the browser is using. Annoyingly, the\r\n\t\t// timestamp can either be hi-res (relative to page load) or low-res\r\n\t\t// (relative to UNIX epoch), so in order to compare time we have to use the\r\n\t\t// same timestamp type when saving the flush timestamp.\r\n\t\t// All IE versions use low-res event timestamps, and have problematic clock\r\n\t\t// implementations (#9632)\r\n\t\tif (inBrowser && !isIE) {\r\n\t\t\tvar vue_esm_performance = window.performance;\r\n\t\t\tif (\r\n\t\t\t\tvue_esm_performance &&\r\n\t\t\t\ttypeof vue_esm_performance.now === 'function' &&\r\n\t\t\t\tgetNow() > document.createEvent('Event').timeStamp\r\n\t\t\t) {\r\n\t\t\t\t// if the event timestamp, although evaluated AFTER the Date.now(), is\r\n\t\t\t\t// smaller than it, it means the event is using a hi-res timestamp,\r\n\t\t\t\t// and we need to use the hi-res version for event listener timestamps as\r\n\t\t\t\t// well.\r\n\t\t\t\tgetNow = function () { return vue_esm_performance.now(); };\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Flush both queues and run the watchers.\r\n\t\t */\r\n\t\tfunction flushSchedulerQueue() {\r\n\t\t\tcurrentFlushTimestamp = getNow();\r\n\t\t\tflushing = true;\r\n\t\t\tvar watcher, id;\r\n\r\n\t\t\t// Sort queue before flush.\r\n\t\t\t// This ensures that:\r\n\t\t\t// 1. Components are updated from parent to child. (because parent is always\r\n\t\t\t//    created before the child)\r\n\t\t\t// 2. A component's user watchers are run before its render watcher (because\r\n\t\t\t//    user watchers are created before the render watcher)\r\n\t\t\t// 3. If a component is destroyed during a parent component's watcher run,\r\n\t\t\t//    its watchers can be skipped.\r\n\t\t\tqueue.sort(function (a, b) { return a.id - b.id; });\r\n\r\n\t\t\t// do not cache length because more watchers might be pushed\r\n\t\t\t// as we run existing watchers\r\n\t\t\tfor (index = 0; index < queue.length; index++) {\r\n\t\t\t\twatcher = queue[index];\r\n\t\t\t\tif (watcher.before) {\r\n\t\t\t\t\twatcher.before();\r\n\t\t\t\t}\r\n\t\t\t\tid = watcher.id;\r\n\t\t\t\thas[id] = null;\r\n\t\t\t\twatcher.run();\r\n\t\t\t\t// in dev build, check and stop circular updates.\r\n\t\t\t\tif (false) { }\r\n\t\t\t}\r\n\r\n\t\t\t// keep copies of post queues before resetting state\r\n\t\t\tvar activatedQueue = activatedChildren.slice();\r\n\t\t\tvar updatedQueue = queue.slice();\r\n\r\n\t\t\tresetSchedulerState();\r\n\r\n\t\t\t// call component updated and activated hooks\r\n\t\t\tcallActivatedHooks(activatedQueue);\r\n\t\t\tcallUpdatedHooks(updatedQueue);\r\n\r\n\t\t\t// devtool hook\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (devtools && config.devtools) {\r\n\t\t\t\tdevtools.emit('flush');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction callUpdatedHooks(queue) {\r\n\t\t\tvar i = queue.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tvar watcher = queue[i];\r\n\t\t\t\tvar vm = watcher.vm;\r\n\t\t\t\tif (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\r\n\t\t\t\t\tcallHook(vm, 'updated');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Queue a kept-alive component that was activated during patch.\r\n\t\t * The queue will be processed after the entire tree has been patched.\r\n\t\t */\r\n\t\tfunction queueActivatedComponent(vm) {\r\n\t\t\t// setting _inactive to false here so that a render function can\r\n\t\t\t// rely on checking whether it's in an inactive tree (e.g. router-view)\r\n\t\t\tvm._inactive = false;\r\n\t\t\tactivatedChildren.push(vm);\r\n\t\t}\r\n\r\n\t\tfunction callActivatedHooks(queue) {\r\n\t\t\tfor (var i = 0; i < queue.length; i++) {\r\n\t\t\t\tqueue[i]._inactive = true;\r\n\t\t\t\tactivateChildComponent(queue[i], true /* true */);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Push a watcher into the watcher queue.\r\n\t\t * Jobs with duplicate IDs will be skipped unless it's\r\n\t\t * pushed when the queue is being flushed.\r\n\t\t */\r\n\t\tfunction queueWatcher(watcher) {\r\n\t\t\tvar id = watcher.id;\r\n\t\t\tif (has[id] == null) {\r\n\t\t\t\thas[id] = true;\r\n\t\t\t\tif (!flushing) {\r\n\t\t\t\t\tqueue.push(watcher);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// if already flushing, splice the watcher based on its id\r\n\t\t\t\t\t// if already past its id, it will be run next immediately.\r\n\t\t\t\t\tvar i = queue.length - 1;\r\n\t\t\t\t\twhile (i > index && queue[i].id > watcher.id) {\r\n\t\t\t\t\t\ti--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tqueue.splice(i + 1, 0, watcher);\r\n\t\t\t\t}\r\n\t\t\t\t// queue the flush\r\n\t\t\t\tif (!waiting) {\r\n\t\t\t\t\twaiting = true;\r\n\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tnextTick(flushSchedulerQueue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\tvar uid$2 = 0;\r\n\r\n\t\t/**\r\n\t\t * A watcher parses an expression, collects dependencies,\r\n\t\t * and fires callback when the expression value changes.\r\n\t\t * This is used for both the $watch() api and directives.\r\n\t\t */\r\n\t\tvar Watcher = function Watcher(\r\n\t\t\tvm,\r\n\t\t\texpOrFn,\r\n\t\t\tcb,\r\n\t\t\toptions,\r\n\t\t\tisRenderWatcher\r\n\t\t) {\r\n\t\t\tthis.vm = vm;\r\n\t\t\tif (isRenderWatcher) {\r\n\t\t\t\tvm._watcher = this;\r\n\t\t\t}\r\n\t\t\tvm._watchers.push(this);\r\n\t\t\t// options\r\n\t\t\tif (options) {\r\n\t\t\t\tthis.deep = !!options.deep;\r\n\t\t\t\tthis.user = !!options.user;\r\n\t\t\t\tthis.lazy = !!options.lazy;\r\n\t\t\t\tthis.sync = !!options.sync;\r\n\t\t\t\tthis.before = options.before;\r\n\t\t\t} else {\r\n\t\t\t\tthis.deep = this.user = this.lazy = this.sync = false;\r\n\t\t\t}\r\n\t\t\tthis.cb = cb;\r\n\t\t\tthis.id = ++uid$2; // uid for batching\r\n\t\t\tthis.active = true;\r\n\t\t\tthis.dirty = this.lazy; // for lazy watchers\r\n\t\t\tthis.deps = [];\r\n\t\t\tthis.newDeps = [];\r\n\t\t\tthis.depIds = new _Set();\r\n\t\t\tthis.newDepIds = new _Set();\r\n\t\t\tthis.expression = false\r\n\t\t\t\t? 0\r\n\t\t\t\t: '';\r\n\t\t\t// parse expression for getter\r\n\t\t\tif (typeof expOrFn === 'function') {\r\n\t\t\t\tthis.getter = expOrFn;\r\n\t\t\t} else {\r\n\t\t\t\tthis.getter = parsePath(expOrFn);\r\n\t\t\t\tif (!this.getter) {\r\n\t\t\t\t\tthis.getter = noop;\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.value = this.lazy\r\n\t\t\t\t? undefined\r\n\t\t\t\t: this.get();\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Evaluate the getter, and re-collect dependencies.\r\n\t\t */\r\n\t\tWatcher.prototype.get = function get() {\r\n\t\t\tpushTarget(this);\r\n\t\t\tvar value;\r\n\t\t\tvar vm = this.vm;\r\n\t\t\ttry {\r\n\t\t\t\tvalue = this.getter.call(vm, vm);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tif (this.user) {\r\n\t\t\t\t\thandleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow e\r\n\t\t\t\t}\r\n\t\t\t} finally {\r\n\t\t\t\t// \"touch\" every property so they are all tracked as\r\n\t\t\t\t// dependencies for deep watching\r\n\t\t\t\tif (this.deep) {\r\n\t\t\t\t\ttraverse(value);\r\n\t\t\t\t}\r\n\t\t\t\tpopTarget();\r\n\t\t\t\tthis.cleanupDeps();\r\n\t\t\t}\r\n\t\t\treturn value\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Add a dependency to this directive.\r\n\t\t */\r\n\t\tWatcher.prototype.addDep = function addDep(dep) {\r\n\t\t\tvar id = dep.id;\r\n\t\t\tif (!this.newDepIds.has(id)) {\r\n\t\t\t\tthis.newDepIds.add(id);\r\n\t\t\t\tthis.newDeps.push(dep);\r\n\t\t\t\tif (!this.depIds.has(id)) {\r\n\t\t\t\t\tdep.addSub(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Clean up for dependency collection.\r\n\t\t */\r\n\t\tWatcher.prototype.cleanupDeps = function cleanupDeps() {\r\n\t\t\tvar i = this.deps.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tvar dep = this.deps[i];\r\n\t\t\t\tif (!this.newDepIds.has(dep.id)) {\r\n\t\t\t\t\tdep.removeSub(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar tmp = this.depIds;\r\n\t\t\tthis.depIds = this.newDepIds;\r\n\t\t\tthis.newDepIds = tmp;\r\n\t\t\tthis.newDepIds.clear();\r\n\t\t\ttmp = this.deps;\r\n\t\t\tthis.deps = this.newDeps;\r\n\t\t\tthis.newDeps = tmp;\r\n\t\t\tthis.newDeps.length = 0;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Subscriber interface.\r\n\t\t * Will be called when a dependency changes.\r\n\t\t */\r\n\t\tWatcher.prototype.update = function update() {\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (this.lazy) {\r\n\t\t\t\tthis.dirty = true;\r\n\t\t\t} else if (this.sync) {\r\n\t\t\t\tthis.run();\r\n\t\t\t} else {\r\n\t\t\t\tqueueWatcher(this);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Scheduler job interface.\r\n\t\t * Will be called by the scheduler.\r\n\t\t */\r\n\t\tWatcher.prototype.run = function run() {\r\n\t\t\tif (this.active) {\r\n\t\t\t\tvar value = this.get();\r\n\t\t\t\tif (\r\n\t\t\t\t\tvalue !== this.value ||\r\n\t\t\t\t\t// Deep watchers and watchers on Object/Arrays should fire even\r\n\t\t\t\t\t// when the value is the same, because the value may\r\n\t\t\t\t\t// have mutated.\r\n\t\t\t\t\tisObject(value) ||\r\n\t\t\t\t\tthis.deep\r\n\t\t\t\t) {\r\n\t\t\t\t\t// set new value\r\n\t\t\t\t\tvar oldValue = this.value;\r\n\t\t\t\t\tthis.value = value;\r\n\t\t\t\t\tif (this.user) {\r\n\t\t\t\t\t\tvar info = \"callback for watcher \\\"\" + (this.expression) + \"\\\"\";\r\n\t\t\t\t\t\tinvokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.cb.call(this.vm, value, oldValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Evaluate the value of the watcher.\r\n\t\t * This only gets called for lazy watchers.\r\n\t\t */\r\n\t\tWatcher.prototype.evaluate = function evaluate() {\r\n\t\t\tthis.value = this.get();\r\n\t\t\tthis.dirty = false;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Depend on all deps collected by this watcher.\r\n\t\t */\r\n\t\tWatcher.prototype.depend = function depend() {\r\n\t\t\tvar i = this.deps.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tthis.deps[i].depend();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove self from all dependencies' subscriber list.\r\n\t\t */\r\n\t\tWatcher.prototype.teardown = function teardown() {\r\n\t\t\tif (this.active) {\r\n\t\t\t\t// remove self from vm's watcher list\r\n\t\t\t\t// this is a somewhat expensive operation so we skip it\r\n\t\t\t\t// if the vm is being destroyed.\r\n\t\t\t\tif (!this.vm._isBeingDestroyed) {\r\n\t\t\t\t\tremove(this.vm._watchers, this);\r\n\t\t\t\t}\r\n\t\t\t\tvar i = this.deps.length;\r\n\t\t\t\twhile (i--) {\r\n\t\t\t\t\tthis.deps[i].removeSub(this);\r\n\t\t\t\t}\r\n\t\t\t\tthis.active = false;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar sharedPropertyDefinition = {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: true,\r\n\t\t\tget: noop,\r\n\t\t\tset: noop\r\n\t\t};\r\n\r\n\t\tfunction proxy(target, sourceKey, key) {\r\n\t\t\tsharedPropertyDefinition.get = function proxyGetter() {\r\n\t\t\t\treturn this[sourceKey][key]\r\n\t\t\t};\r\n\t\t\tsharedPropertyDefinition.set = function proxySetter(val) {\r\n\t\t\t\tthis[sourceKey][key] = val;\r\n\t\t\t};\r\n\t\t\tObject.defineProperty(target, key, sharedPropertyDefinition);\r\n\t\t}\r\n\r\n\t\tfunction initState(vm) {\r\n\t\t\tvm._watchers = [];\r\n\t\t\tvar opts = vm.$options;\r\n\t\t\tif (opts.props) { initProps(vm, opts.props); }\r\n\t\t\tif (opts.methods) { initMethods(vm, opts.methods); }\r\n\t\t\tif (opts.data) {\r\n\t\t\t\tinitData(vm);\r\n\t\t\t} else {\r\n\t\t\t\tobserve(vm._data = {}, true /* asRootData */);\r\n\t\t\t}\r\n\t\t\tif (opts.computed) { initComputed(vm, opts.computed); }\r\n\t\t\tif (opts.watch && opts.watch !== nativeWatch) {\r\n\t\t\t\tinitWatch(vm, opts.watch);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initProps(vm, propsOptions) {\r\n\t\t\tvar propsData = vm.$options.propsData || {};\r\n\t\t\tvar props = vm._props = {};\r\n\t\t\t// cache prop keys so that future props updates can iterate using Array\r\n\t\t\t// instead of dynamic object key enumeration.\r\n\t\t\tvar keys = vm.$options._propKeys = [];\r\n\t\t\tvar isRoot = !vm.$parent;\r\n\t\t\t// root instance props should be converted\r\n\t\t\tif (!isRoot) {\r\n\t\t\t\ttoggleObserving(false);\r\n\t\t\t}\r\n\t\t\tvar loop = function (key) {\r\n\t\t\t\tkeys.push(key);\r\n\t\t\t\tvar value = validateProp(key, propsOptions, propsData, vm);\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (false) { var hyphenatedKey; } else {\r\n\t\t\t\t\tdefineReactive$$1(props, key, value);\r\n\t\t\t\t}\r\n\t\t\t\t// static props are already proxied on the component's prototype\r\n\t\t\t\t// during Vue.extend(). We only need to proxy props defined at\r\n\t\t\t\t// instantiation here.\r\n\t\t\t\tif (!(key in vm)) {\r\n\t\t\t\t\tproxy(vm, \"_props\", key);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tfor (var key in propsOptions) loop(key);\r\n\t\t\ttoggleObserving(true);\r\n\t\t}\r\n\r\n\t\tfunction initData(vm) {\r\n\t\t\tvar data = vm.$options.data;\r\n\t\t\tdata = vm._data = typeof data === 'function'\r\n\t\t\t\t? getData(data, vm)\r\n\t\t\t\t: data || {};\r\n\t\t\tif (!isPlainObject(data)) {\r\n\t\t\t\tdata = {};\r\n\t\t\t\tfalse && 0;\r\n\t\t\t}\r\n\t\t\t// proxy data on instance\r\n\t\t\tvar keys = Object.keys(data);\r\n\t\t\tvar props = vm.$options.props;\r\n\t\t\tvar methods = vm.$options.methods;\r\n\t\t\tvar i = keys.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tvar key = keys[i];\r\n\t\t\t\tif (false) { }\r\n\t\t\t\tif (props && hasOwn(props, key)) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t} else if (!isReserved(key)) {\r\n\t\t\t\t\tproxy(vm, \"_data\", key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// observe data\r\n\t\t\tobserve(data, true /* asRootData */);\r\n\t\t}\r\n\r\n\t\tfunction getData(data, vm) {\r\n\t\t\t// #7573 disable dep collection when invoking data getters\r\n\t\t\tpushTarget();\r\n\t\t\ttry {\r\n\t\t\t\treturn data.call(vm, vm)\r\n\t\t\t} catch (e) {\r\n\t\t\t\thandleError(e, vm, \"data()\");\r\n\t\t\t\treturn {}\r\n\t\t\t} finally {\r\n\t\t\t\tpopTarget();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar computedWatcherOptions = { lazy: true };\r\n\r\n\t\tfunction initComputed(vm, computed) {\r\n\t\t\t// $flow-disable-line\r\n\t\t\tvar watchers = vm._computedWatchers = Object.create(null);\r\n\t\t\t// computed properties are just getters during SSR\r\n\t\t\tvar isSSR = isServerRendering();\r\n\r\n\t\t\tfor (var key in computed) {\r\n\t\t\t\tvar userDef = computed[key];\r\n\t\t\t\tvar getter = typeof userDef === 'function' ? userDef : userDef.get;\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\tif (!isSSR) {\r\n\t\t\t\t\t// create internal watcher for the computed property.\r\n\t\t\t\t\twatchers[key] = new Watcher(\r\n\t\t\t\t\t\tvm,\r\n\t\t\t\t\t\tgetter || noop,\r\n\t\t\t\t\t\tnoop,\r\n\t\t\t\t\t\tcomputedWatcherOptions\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// component-defined computed properties are already defined on the\r\n\t\t\t\t// component prototype. We only need to define computed properties defined\r\n\t\t\t\t// at instantiation here.\r\n\t\t\t\tif (!(key in vm)) {\r\n\t\t\t\t\tdefineComputed(vm, key, userDef);\r\n\t\t\t\t} else if (false) { }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction defineComputed(\r\n\t\t\ttarget,\r\n\t\t\tkey,\r\n\t\t\tuserDef\r\n\t\t) {\r\n\t\t\tvar shouldCache = !isServerRendering();\r\n\t\t\tif (typeof userDef === 'function') {\r\n\t\t\t\tsharedPropertyDefinition.get = shouldCache\r\n\t\t\t\t\t? createComputedGetter(key)\r\n\t\t\t\t\t: createGetterInvoker(userDef);\r\n\t\t\t\tsharedPropertyDefinition.set = noop;\r\n\t\t\t} else {\r\n\t\t\t\tsharedPropertyDefinition.get = userDef.get\r\n\t\t\t\t\t? shouldCache && userDef.cache !== false\r\n\t\t\t\t\t\t? createComputedGetter(key)\r\n\t\t\t\t\t\t: createGetterInvoker(userDef.get)\r\n\t\t\t\t\t: noop;\r\n\t\t\t\tsharedPropertyDefinition.set = userDef.set || noop;\r\n\t\t\t}\r\n\t\t\tif (false) { }\r\n\t\t\tObject.defineProperty(target, key, sharedPropertyDefinition);\r\n\t\t}\r\n\r\n\t\tfunction createComputedGetter(key) {\r\n\t\t\treturn function computedGetter() {\r\n\t\t\t\tvar watcher = this._computedWatchers && this._computedWatchers[key];\r\n\t\t\t\tif (watcher) {\r\n\t\t\t\t\tif (watcher.dirty) {\r\n\t\t\t\t\t\twatcher.evaluate();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (Dep.target) {\r\n\t\t\t\t\t\twatcher.depend();\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn watcher.value\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction createGetterInvoker(fn) {\r\n\t\t\treturn function computedGetter() {\r\n\t\t\t\treturn fn.call(this, this)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initMethods(vm, methods) {\r\n\t\t\tvar props = vm.$options.props;\r\n\t\t\tfor (var key in methods) {\r\n\t\t\t\tif (false) { }\r\n\t\t\t\tvm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initWatch(vm, watch) {\r\n\t\t\tfor (var key in watch) {\r\n\t\t\t\tvar handler = watch[key];\r\n\t\t\t\tif (Array.isArray(handler)) {\r\n\t\t\t\t\tfor (var i = 0; i < handler.length; i++) {\r\n\t\t\t\t\t\tcreateWatcher(vm, key, handler[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcreateWatcher(vm, key, handler);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction createWatcher(\r\n\t\t\tvm,\r\n\t\t\texpOrFn,\r\n\t\t\thandler,\r\n\t\t\toptions\r\n\t\t) {\r\n\t\t\tif (isPlainObject(handler)) {\r\n\t\t\t\toptions = handler;\r\n\t\t\t\thandler = handler.handler;\r\n\t\t\t}\r\n\t\t\tif (typeof handler === 'string') {\r\n\t\t\t\thandler = vm[handler];\r\n\t\t\t}\r\n\t\t\treturn vm.$watch(expOrFn, handler, options)\r\n\t\t}\r\n\r\n\t\tfunction stateMixin(Vue) {\r\n\t\t\t// flow somehow has problems with directly declared definition object\r\n\t\t\t// when using Object.defineProperty, so we have to procedurally build up\r\n\t\t\t// the object here.\r\n\t\t\tvar dataDef = {};\r\n\t\t\tdataDef.get = function () { return this._data };\r\n\t\t\tvar propsDef = {};\r\n\t\t\tpropsDef.get = function () { return this._props };\r\n\t\t\tif (false) { }\r\n\t\t\tObject.defineProperty(Vue.prototype, '$data', dataDef);\r\n\t\t\tObject.defineProperty(Vue.prototype, '$props', propsDef);\r\n\r\n\t\t\tVue.prototype.$set = set;\r\n\t\t\tVue.prototype.$delete = del;\r\n\r\n\t\t\tVue.prototype.$watch = function (\r\n\t\t\t\texpOrFn,\r\n\t\t\t\tcb,\r\n\t\t\t\toptions\r\n\t\t\t) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\tif (isPlainObject(cb)) {\r\n\t\t\t\t\treturn createWatcher(vm, expOrFn, cb, options)\r\n\t\t\t\t}\r\n\t\t\t\toptions = options || {};\r\n\t\t\t\toptions.user = true;\r\n\t\t\t\tvar watcher = new Watcher(vm, expOrFn, cb, options);\r\n\t\t\t\tif (options.immediate) {\r\n\t\t\t\t\tvar info = \"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\";\r\n\t\t\t\t\tpushTarget();\r\n\t\t\t\t\tinvokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\r\n\t\t\t\t\tpopTarget();\r\n\t\t\t\t}\r\n\t\t\t\treturn function unwatchFn() {\r\n\t\t\t\t\twatcher.teardown();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar uid$3 = 0;\r\n\r\n\t\tfunction initMixin(Vue) {\r\n\t\t\tVue.prototype._init = function (options) {\r\n\t\t\t\tvar vm = this;\r\n\t\t\t\t// a uid\r\n\t\t\t\tvm._uid = uid$3++;\r\n\r\n\t\t\t\tvar startTag, endTag;\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t// a flag to avoid this being observed\r\n\t\t\t\tvm._isVue = true;\r\n\t\t\t\t// merge options\r\n\t\t\t\tif (options && options._isComponent) {\r\n\t\t\t\t\t// optimize internal component instantiation\r\n\t\t\t\t\t// since dynamic options merging is pretty slow, and none of the\r\n\t\t\t\t\t// internal component options needs special treatment.\r\n\t\t\t\t\tinitInternalComponent(vm, options);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.$options = mergeOptions(\r\n\t\t\t\t\t\tresolveConstructorOptions(vm.constructor),\r\n\t\t\t\t\t\toptions || {},\r\n\t\t\t\t\t\tvm\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (false) { } else {\r\n\t\t\t\t\tvm._renderProxy = vm;\r\n\t\t\t\t}\r\n\t\t\t\t// expose real self\r\n\t\t\t\tvm._self = vm;\r\n\t\t\t\tinitLifecycle(vm);\r\n\t\t\t\tinitEvents(vm);\r\n\t\t\t\tinitRender(vm);\r\n\t\t\t\tcallHook(vm, 'beforeCreate');\r\n\t\t\t\tinitInjections(vm); // resolve injections before data/props\r\n\t\t\t\tinitState(vm);\r\n\t\t\t\tinitProvide(vm); // resolve provide after data/props\r\n\t\t\t\tcallHook(vm, 'created');\r\n\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\tif (vm.$options.el) {\r\n\t\t\t\t\tvm.$mount(vm.$options.el);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction initInternalComponent(vm, options) {\r\n\t\t\tvar opts = vm.$options = Object.create(vm.constructor.options);\r\n\t\t\t// doing this because it's faster than dynamic enumeration.\r\n\t\t\tvar parentVnode = options._parentVnode;\r\n\t\t\topts.parent = options.parent;\r\n\t\t\topts._parentVnode = parentVnode;\r\n\r\n\t\t\tvar vnodeComponentOptions = parentVnode.componentOptions;\r\n\t\t\topts.propsData = vnodeComponentOptions.propsData;\r\n\t\t\topts._parentListeners = vnodeComponentOptions.listeners;\r\n\t\t\topts._renderChildren = vnodeComponentOptions.children;\r\n\t\t\topts._componentTag = vnodeComponentOptions.tag;\r\n\r\n\t\t\tif (options.render) {\r\n\t\t\t\topts.render = options.render;\r\n\t\t\t\topts.staticRenderFns = options.staticRenderFns;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction resolveConstructorOptions(Ctor) {\r\n\t\t\tvar options = Ctor.options;\r\n\t\t\tif (Ctor.super) {\r\n\t\t\t\tvar superOptions = resolveConstructorOptions(Ctor.super);\r\n\t\t\t\tvar cachedSuperOptions = Ctor.superOptions;\r\n\t\t\t\tif (superOptions !== cachedSuperOptions) {\r\n\t\t\t\t\t// super option changed,\r\n\t\t\t\t\t// need to resolve new options.\r\n\t\t\t\t\tCtor.superOptions = superOptions;\r\n\t\t\t\t\t// check if there are any late-modified/attached options (#4976)\r\n\t\t\t\t\tvar modifiedOptions = resolveModifiedOptions(Ctor);\r\n\t\t\t\t\t// update base extend options\r\n\t\t\t\t\tif (modifiedOptions) {\r\n\t\t\t\t\t\textend(Ctor.extendOptions, modifiedOptions);\r\n\t\t\t\t\t}\r\n\t\t\t\t\toptions = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\r\n\t\t\t\t\tif (options.name) {\r\n\t\t\t\t\t\toptions.components[options.name] = Ctor;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn options\r\n\t\t}\r\n\r\n\t\tfunction resolveModifiedOptions(Ctor) {\r\n\t\t\tvar modified;\r\n\t\t\tvar latest = Ctor.options;\r\n\t\t\tvar sealed = Ctor.sealedOptions;\r\n\t\t\tfor (var key in latest) {\r\n\t\t\t\tif (latest[key] !== sealed[key]) {\r\n\t\t\t\t\tif (!modified) { modified = {}; }\r\n\t\t\t\t\tmodified[key] = latest[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn modified\r\n\t\t}\r\n\r\n\t\tfunction vue_esm_Vue(options) {\r\n\t\t\tif (false\r\n\t\t\t) { }\r\n\t\t\tthis._init(options);\r\n\t\t}\r\n\r\n\t\tinitMixin(vue_esm_Vue);\r\n\t\tstateMixin(vue_esm_Vue);\r\n\t\teventsMixin(vue_esm_Vue);\r\n\t\tlifecycleMixin(vue_esm_Vue);\r\n\t\trenderMixin(vue_esm_Vue);\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initUse(Vue) {\r\n\t\t\tVue.use = function (plugin) {\r\n\t\t\t\tvar installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\r\n\t\t\t\tif (installedPlugins.indexOf(plugin) > -1) {\r\n\t\t\t\t\treturn this\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// additional parameters\r\n\t\t\t\tvar args = toArray(arguments, 1);\r\n\t\t\t\targs.unshift(this);\r\n\t\t\t\tif (typeof plugin.install === 'function') {\r\n\t\t\t\t\tplugin.install.apply(plugin, args);\r\n\t\t\t\t} else if (typeof plugin === 'function') {\r\n\t\t\t\t\tplugin.apply(null, args);\r\n\t\t\t\t}\r\n\t\t\t\tinstalledPlugins.push(plugin);\r\n\t\t\t\treturn this\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initMixin$1(Vue) {\r\n\t\t\tVue.mixin = function (mixin) {\r\n\t\t\t\tthis.options = mergeOptions(this.options, mixin);\r\n\t\t\t\treturn this\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initExtend(Vue) {\r\n\t\t\t/**\r\n\t\t\t * Each instance constructor, including Vue, has a unique\r\n\t\t\t * cid. This enables us to create wrapped \"child\r\n\t\t\t * constructors\" for prototypal inheritance and cache them.\r\n\t\t\t */\r\n\t\t\tVue.cid = 0;\r\n\t\t\tvar cid = 1;\r\n\r\n\t\t\t/**\r\n\t\t\t * Class inheritance\r\n\t\t\t */\r\n\t\t\tVue.extend = function (extendOptions) {\r\n\t\t\t\textendOptions = extendOptions || {};\r\n\t\t\t\tvar Super = this;\r\n\t\t\t\tvar SuperId = Super.cid;\r\n\t\t\t\tvar cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\r\n\t\t\t\tif (cachedCtors[SuperId]) {\r\n\t\t\t\t\treturn cachedCtors[SuperId]\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar name = extendOptions.name || Super.options.name;\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\tvar Sub = function VueComponent(options) {\r\n\t\t\t\t\tthis._init(options);\r\n\t\t\t\t};\r\n\t\t\t\tSub.prototype = Object.create(Super.prototype);\r\n\t\t\t\tSub.prototype.constructor = Sub;\r\n\t\t\t\tSub.cid = cid++;\r\n\t\t\t\tSub.options = mergeOptions(\r\n\t\t\t\t\tSuper.options,\r\n\t\t\t\t\textendOptions\r\n\t\t\t\t);\r\n\t\t\t\tSub['super'] = Super;\r\n\r\n\t\t\t\t// For props and computed properties, we define the proxy getters on\r\n\t\t\t\t// the Vue instances at extension time, on the extended prototype. This\r\n\t\t\t\t// avoids Object.defineProperty calls for each instance created.\r\n\t\t\t\tif (Sub.options.props) {\r\n\t\t\t\t\tinitProps$1(Sub);\r\n\t\t\t\t}\r\n\t\t\t\tif (Sub.options.computed) {\r\n\t\t\t\t\tinitComputed$1(Sub);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// allow further extension/mixin/plugin usage\r\n\t\t\t\tSub.extend = Super.extend;\r\n\t\t\t\tSub.mixin = Super.mixin;\r\n\t\t\t\tSub.use = Super.use;\r\n\r\n\t\t\t\t// create asset registers, so extended classes\r\n\t\t\t\t// can have their private assets too.\r\n\t\t\t\tASSET_TYPES.forEach(function (type) {\r\n\t\t\t\t\tSub[type] = Super[type];\r\n\t\t\t\t});\r\n\t\t\t\t// enable recursive self-lookup\r\n\t\t\t\tif (name) {\r\n\t\t\t\t\tSub.options.components[name] = Sub;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// keep a reference to the super options at extension time.\r\n\t\t\t\t// later at instantiation we can check if Super's options have\r\n\t\t\t\t// been updated.\r\n\t\t\t\tSub.superOptions = Super.options;\r\n\t\t\t\tSub.extendOptions = extendOptions;\r\n\t\t\t\tSub.sealedOptions = extend({}, Sub.options);\r\n\r\n\t\t\t\t// cache constructor\r\n\t\t\t\tcachedCtors[SuperId] = Sub;\r\n\t\t\t\treturn Sub\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction initProps$1(Comp) {\r\n\t\t\tvar props = Comp.options.props;\r\n\t\t\tfor (var key in props) {\r\n\t\t\t\tproxy(Comp.prototype, \"_props\", key);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction initComputed$1(Comp) {\r\n\t\t\tvar computed = Comp.options.computed;\r\n\t\t\tfor (var key in computed) {\r\n\t\t\t\tdefineComputed(Comp.prototype, key, computed[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initAssetRegisters(Vue) {\r\n\t\t\t/**\r\n\t\t\t * Create asset registration methods.\r\n\t\t\t */\r\n\t\t\tASSET_TYPES.forEach(function (type) {\r\n\t\t\t\tVue[type] = function (\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tdefinition\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (!definition) {\r\n\t\t\t\t\t\treturn this.options[type + 's'][id]\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\tif (type === 'component' && isPlainObject(definition)) {\r\n\t\t\t\t\t\t\tdefinition.name = definition.name || id;\r\n\t\t\t\t\t\t\tdefinition = this.options._base.extend(definition);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (type === 'directive' && typeof definition === 'function') {\r\n\t\t\t\t\t\t\tdefinition = { bind: definition, update: definition };\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.options[type + 's'][id] = definition;\r\n\t\t\t\t\t\treturn definition\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\r\n\r\n\t\tfunction getComponentName(opts) {\r\n\t\t\treturn opts && (opts.Ctor.options.name || opts.tag)\r\n\t\t}\r\n\r\n\t\tfunction matches(pattern, name) {\r\n\t\t\tif (Array.isArray(pattern)) {\r\n\t\t\t\treturn pattern.indexOf(name) > -1\r\n\t\t\t} else if (typeof pattern === 'string') {\r\n\t\t\t\treturn pattern.split(',').indexOf(name) > -1\r\n\t\t\t} else if (isRegExp(pattern)) {\r\n\t\t\t\treturn pattern.test(name)\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfunction pruneCache(keepAliveInstance, filter) {\r\n\t\t\tvar cache = keepAliveInstance.cache;\r\n\t\t\tvar keys = keepAliveInstance.keys;\r\n\t\t\tvar _vnode = keepAliveInstance._vnode;\r\n\t\t\tfor (var key in cache) {\r\n\t\t\t\tvar entry = cache[key];\r\n\t\t\t\tif (entry) {\r\n\t\t\t\t\tvar name = entry.name;\r\n\t\t\t\t\tif (name && !filter(name)) {\r\n\t\t\t\t\t\tpruneCacheEntry(cache, key, keys, _vnode);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction pruneCacheEntry(\r\n\t\t\tcache,\r\n\t\t\tkey,\r\n\t\t\tkeys,\r\n\t\t\tcurrent\r\n\t\t) {\r\n\t\t\tvar entry = cache[key];\r\n\t\t\tif (entry && (!current || entry.tag !== current.tag)) {\r\n\t\t\t\tentry.componentInstance.$destroy();\r\n\t\t\t}\r\n\t\t\tcache[key] = null;\r\n\t\t\tremove(keys, key);\r\n\t\t}\r\n\r\n\t\tvar patternTypes = [String, RegExp, Array];\r\n\r\n\t\tvar KeepAlive = {\r\n\t\t\tname: 'keep-alive',\r\n\t\t\tabstract: true,\r\n\r\n\t\t\tprops: {\r\n\t\t\t\tinclude: patternTypes,\r\n\t\t\t\texclude: patternTypes,\r\n\t\t\t\tmax: [String, Number]\r\n\t\t\t},\r\n\r\n\t\t\tmethods: {\r\n\t\t\t\tcacheVNode: function cacheVNode() {\r\n\t\t\t\t\tvar ref = this;\r\n\t\t\t\t\tvar cache = ref.cache;\r\n\t\t\t\t\tvar keys = ref.keys;\r\n\t\t\t\t\tvar vnodeToCache = ref.vnodeToCache;\r\n\t\t\t\t\tvar keyToCache = ref.keyToCache;\r\n\t\t\t\t\tif (vnodeToCache) {\r\n\t\t\t\t\t\tvar tag = vnodeToCache.tag;\r\n\t\t\t\t\t\tvar componentInstance = vnodeToCache.componentInstance;\r\n\t\t\t\t\t\tvar componentOptions = vnodeToCache.componentOptions;\r\n\t\t\t\t\t\tcache[keyToCache] = {\r\n\t\t\t\t\t\t\tname: getComponentName(componentOptions),\r\n\t\t\t\t\t\t\ttag: tag,\r\n\t\t\t\t\t\t\tcomponentInstance: componentInstance,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tkeys.push(keyToCache);\r\n\t\t\t\t\t\t// prune oldest entry\r\n\t\t\t\t\t\tif (this.max && keys.length > parseInt(this.max)) {\r\n\t\t\t\t\t\t\tpruneCacheEntry(cache, keys[0], keys, this._vnode);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.vnodeToCache = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tcreated: function created() {\r\n\t\t\t\tthis.cache = Object.create(null);\r\n\t\t\t\tthis.keys = [];\r\n\t\t\t},\r\n\r\n\t\t\tdestroyed: function destroyed() {\r\n\t\t\t\tfor (var key in this.cache) {\r\n\t\t\t\t\tpruneCacheEntry(this.cache, key, this.keys);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tmounted: function mounted() {\r\n\t\t\t\tvar this$1 = this;\r\n\r\n\t\t\t\tthis.cacheVNode();\r\n\t\t\t\tthis.$watch('include', function (val) {\r\n\t\t\t\t\tpruneCache(this$1, function (name) { return matches(val, name); });\r\n\t\t\t\t});\r\n\t\t\t\tthis.$watch('exclude', function (val) {\r\n\t\t\t\t\tpruneCache(this$1, function (name) { return !matches(val, name); });\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tupdated: function updated() {\r\n\t\t\t\tthis.cacheVNode();\r\n\t\t\t},\r\n\r\n\t\t\trender: function render() {\r\n\t\t\t\tvar slot = this.$slots.default;\r\n\t\t\t\tvar vnode = getFirstComponentChild(slot);\r\n\t\t\t\tvar componentOptions = vnode && vnode.componentOptions;\r\n\t\t\t\tif (componentOptions) {\r\n\t\t\t\t\t// check pattern\r\n\t\t\t\t\tvar name = getComponentName(componentOptions);\r\n\t\t\t\t\tvar ref = this;\r\n\t\t\t\t\tvar include = ref.include;\r\n\t\t\t\t\tvar exclude = ref.exclude;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t// not included\r\n\t\t\t\t\t\t(include && (!name || !matches(include, name))) ||\r\n\t\t\t\t\t\t// excluded\r\n\t\t\t\t\t\t(exclude && name && matches(exclude, name))\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn vnode\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar ref$1 = this;\r\n\t\t\t\t\tvar cache = ref$1.cache;\r\n\t\t\t\t\tvar keys = ref$1.keys;\r\n\t\t\t\t\tvar key = vnode.key == null\r\n\t\t\t\t\t\t// same constructor may get registered as different local components\r\n\t\t\t\t\t\t// so cid alone is not enough (#3269)\r\n\t\t\t\t\t\t? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\r\n\t\t\t\t\t\t: vnode.key;\r\n\t\t\t\t\tif (cache[key]) {\r\n\t\t\t\t\t\tvnode.componentInstance = cache[key].componentInstance;\r\n\t\t\t\t\t\t// make current key freshest\r\n\t\t\t\t\t\tremove(keys, key);\r\n\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// delay setting the cache until update\r\n\t\t\t\t\t\tthis.vnodeToCache = vnode;\r\n\t\t\t\t\t\tthis.keyToCache = key;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvnode.data.keepAlive = true;\r\n\t\t\t\t}\r\n\t\t\t\treturn vnode || (slot && slot[0])\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar builtInComponents = {\r\n\t\t\tKeepAlive: KeepAlive\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction initGlobalAPI(Vue) {\r\n\t\t\t// config\r\n\t\t\tvar configDef = {};\r\n\t\t\tconfigDef.get = function () { return config; };\r\n\t\t\tif (false) { }\r\n\t\t\tObject.defineProperty(Vue, 'config', configDef);\r\n\r\n\t\t\t// exposed util methods.\r\n\t\t\t// NOTE: these are not considered part of the public API - avoid relying on\r\n\t\t\t// them unless you are aware of the risk.\r\n\t\t\tVue.util = {\r\n\t\t\t\twarn: warn,\r\n\t\t\t\textend: extend,\r\n\t\t\t\tmergeOptions: mergeOptions,\r\n\t\t\t\tdefineReactive: defineReactive$$1\r\n\t\t\t};\r\n\r\n\t\t\tVue.set = set;\r\n\t\t\tVue.delete = del;\r\n\t\t\tVue.nextTick = nextTick;\r\n\r\n\t\t\t// 2.6 explicit observable API\r\n\t\t\tVue.observable = function (obj) {\r\n\t\t\t\tobserve(obj);\r\n\t\t\t\treturn obj\r\n\t\t\t};\r\n\r\n\t\t\tVue.options = Object.create(null);\r\n\t\t\tASSET_TYPES.forEach(function (type) {\r\n\t\t\t\tVue.options[type + 's'] = Object.create(null);\r\n\t\t\t});\r\n\r\n\t\t\t// this is used to identify the \"base\" constructor to extend all plain-object\r\n\t\t\t// components with in Weex's multi-instance scenarios.\r\n\t\t\tVue.options._base = Vue;\r\n\r\n\t\t\textend(Vue.options.components, builtInComponents);\r\n\r\n\t\t\tinitUse(Vue);\r\n\t\t\tinitMixin$1(Vue);\r\n\t\t\tinitExtend(Vue);\r\n\t\t\tinitAssetRegisters(Vue);\r\n\t\t}\r\n\r\n\t\tinitGlobalAPI(vue_esm_Vue);\r\n\r\n\t\tObject.defineProperty(vue_esm_Vue.prototype, '$isServer', {\r\n\t\t\tget: isServerRendering\r\n\t\t});\r\n\r\n\t\tObject.defineProperty(vue_esm_Vue.prototype, '$ssrContext', {\r\n\t\t\tget: function get() {\r\n\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\treturn this.$vnode && this.$vnode.ssrContext\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// expose FunctionalRenderContext for ssr runtime helper installation\r\n\t\tObject.defineProperty(vue_esm_Vue, 'FunctionalRenderContext', {\r\n\t\t\tvalue: FunctionalRenderContext\r\n\t\t});\r\n\r\n\t\tvue_esm_Vue.version = '2.6.14';\r\n\r\n\t\t/*  */\r\n\r\n\t\t// these are reserved for web because they are directly compiled away\r\n\t\t// during template compilation\r\n\t\tvar isReservedAttr = makeMap('style,class');\r\n\r\n\t\t// attributes that should be using props for binding\r\n\t\tvar acceptValue = makeMap('input,textarea,option,select,progress');\r\n\t\tvar mustUseProp = function (tag, type, attr) {\r\n\t\t\treturn (\r\n\t\t\t\t(attr === 'value' && acceptValue(tag)) && type !== 'button' ||\r\n\t\t\t\t(attr === 'selected' && tag === 'option') ||\r\n\t\t\t\t(attr === 'checked' && tag === 'input') ||\r\n\t\t\t\t(attr === 'muted' && tag === 'video')\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t\tvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\r\n\r\n\t\tvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\r\n\r\n\t\tvar convertEnumeratedValue = function (key, value) {\r\n\t\t\treturn isFalsyAttrValue(value) || value === 'false'\r\n\t\t\t\t? 'false'\r\n\t\t\t\t// allow arbitrary string value for contenteditable\r\n\t\t\t\t: key === 'contenteditable' && isValidContentEditableValue(value)\r\n\t\t\t\t\t? value\r\n\t\t\t\t\t: 'true'\r\n\t\t};\r\n\r\n\t\tvar isBooleanAttr = makeMap(\r\n\t\t\t'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\r\n\t\t\t'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\r\n\t\t\t'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\r\n\t\t\t'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\r\n\t\t\t'required,reversed,scoped,seamless,selected,sortable,' +\r\n\t\t\t'truespeed,typemustmatch,visible'\r\n\t\t);\r\n\r\n\t\tvar xlinkNS = 'http://www.w3.org/1999/xlink';\r\n\r\n\t\tvar isXlink = function (name) {\r\n\t\t\treturn name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\r\n\t\t};\r\n\r\n\t\tvar getXlinkProp = function (name) {\r\n\t\t\treturn isXlink(name) ? name.slice(6, name.length) : ''\r\n\t\t};\r\n\r\n\t\tvar isFalsyAttrValue = function (val) {\r\n\t\t\treturn val == null || val === false\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction genClassForVnode(vnode) {\r\n\t\t\tvar data = vnode.data;\r\n\t\t\tvar parentNode = vnode;\r\n\t\t\tvar childNode = vnode;\r\n\t\t\twhile (isDef(childNode.componentInstance)) {\r\n\t\t\t\tchildNode = childNode.componentInstance._vnode;\r\n\t\t\t\tif (childNode && childNode.data) {\r\n\t\t\t\t\tdata = mergeClassData(childNode.data, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\twhile (isDef(parentNode = parentNode.parent)) {\r\n\t\t\t\tif (parentNode && parentNode.data) {\r\n\t\t\t\t\tdata = mergeClassData(data, parentNode.data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn renderClass(data.staticClass, data.class)\r\n\t\t}\r\n\r\n\t\tfunction mergeClassData(child, parent) {\r\n\t\t\treturn {\r\n\t\t\t\tstaticClass: concat(child.staticClass, parent.staticClass),\r\n\t\t\t\tclass: isDef(child.class)\r\n\t\t\t\t\t? [child.class, parent.class]\r\n\t\t\t\t\t: parent.class\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction renderClass(\r\n\t\t\tstaticClass,\r\n\t\t\tdynamicClass\r\n\t\t) {\r\n\t\t\tif (isDef(staticClass) || isDef(dynamicClass)) {\r\n\t\t\t\treturn concat(staticClass, stringifyClass(dynamicClass))\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn ''\r\n\t\t}\r\n\r\n\t\tfunction concat(a, b) {\r\n\t\t\treturn a ? b ? (a + ' ' + b) : a : (b || '')\r\n\t\t}\r\n\r\n\t\tfunction stringifyClass(value) {\r\n\t\t\tif (Array.isArray(value)) {\r\n\t\t\t\treturn stringifyArray(value)\r\n\t\t\t}\r\n\t\t\tif (isObject(value)) {\r\n\t\t\t\treturn stringifyObject(value)\r\n\t\t\t}\r\n\t\t\tif (typeof value === 'string') {\r\n\t\t\t\treturn value\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn ''\r\n\t\t}\r\n\r\n\t\tfunction stringifyArray(value) {\r\n\t\t\tvar res = '';\r\n\t\t\tvar stringified;\r\n\t\t\tfor (var i = 0, l = value.length; i < l; i++) {\r\n\t\t\t\tif (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\r\n\t\t\t\t\tif (res) { res += ' '; }\r\n\t\t\t\t\tres += stringified;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction stringifyObject(value) {\r\n\t\t\tvar res = '';\r\n\t\t\tfor (var key in value) {\r\n\t\t\t\tif (value[key]) {\r\n\t\t\t\t\tif (res) { res += ' '; }\r\n\t\t\t\t\tres += key;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar namespaceMap = {\r\n\t\t\tsvg: 'http://www.w3.org/2000/svg',\r\n\t\t\tmath: 'http://www.w3.org/1998/Math/MathML'\r\n\t\t};\r\n\r\n\t\tvar isHTMLTag = makeMap(\r\n\t\t\t'html,body,base,head,link,meta,style,title,' +\r\n\t\t\t'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\r\n\t\t\t'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\r\n\t\t\t'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\r\n\t\t\t's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\r\n\t\t\t'embed,object,param,source,canvas,script,noscript,del,ins,' +\r\n\t\t\t'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\r\n\t\t\t'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\r\n\t\t\t'output,progress,select,textarea,' +\r\n\t\t\t'details,dialog,menu,menuitem,summary,' +\r\n\t\t\t'content,element,shadow,template,blockquote,iframe,tfoot'\r\n\t\t);\r\n\r\n\t\t// this map is intentionally selective, only covering SVG elements that may\r\n\t\t// contain child elements.\r\n\t\tvar isSVG = makeMap(\r\n\t\t\t'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\r\n\t\t\t'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\r\n\t\t\t'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\r\n\t\t\ttrue\r\n\t\t);\r\n\r\n\t\tvar isPreTag = function (tag) { return tag === 'pre'; };\r\n\r\n\t\tvar isReservedTag = function (tag) {\r\n\t\t\treturn isHTMLTag(tag) || isSVG(tag)\r\n\t\t};\r\n\r\n\t\tfunction getTagNamespace(tag) {\r\n\t\t\tif (isSVG(tag)) {\r\n\t\t\t\treturn 'svg'\r\n\t\t\t}\r\n\t\t\t// basic support for MathML\r\n\t\t\t// note it doesn't support other MathML elements being component roots\r\n\t\t\tif (tag === 'math') {\r\n\t\t\t\treturn 'math'\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar unknownElementCache = Object.create(null);\r\n\t\tfunction isUnknownElement(tag) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!inBrowser) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\tif (isReservedTag(tag)) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t\ttag = tag.toLowerCase();\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (unknownElementCache[tag] != null) {\r\n\t\t\t\treturn unknownElementCache[tag]\r\n\t\t\t}\r\n\t\t\tvar el = document.createElement(tag);\r\n\t\t\tif (tag.indexOf('-') > -1) {\r\n\t\t\t\t// http://stackoverflow.com/a/28210364/1070244\r\n\t\t\t\treturn (unknownElementCache[tag] = (\r\n\t\t\t\t\tel.constructor === window.HTMLUnknownElement ||\r\n\t\t\t\t\tel.constructor === window.HTMLElement\r\n\t\t\t\t))\r\n\t\t\t} else {\r\n\t\t\t\treturn (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Query an element selector if it's not an element already.\r\n\t\t */\r\n\t\tfunction query(el) {\r\n\t\t\tif (typeof el === 'string') {\r\n\t\t\t\tvar selected = document.querySelector(el);\r\n\t\t\t\tif (!selected) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t\treturn document.createElement('div')\r\n\t\t\t\t}\r\n\t\t\t\treturn selected\r\n\t\t\t} else {\r\n\t\t\t\treturn el\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction createElement$1(tagName, vnode) {\r\n\t\t\tvar elm = document.createElement(tagName);\r\n\t\t\tif (tagName !== 'select') {\r\n\t\t\t\treturn elm\r\n\t\t\t}\r\n\t\t\t// false or null will remove the attribute but undefined will not\r\n\t\t\tif (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\r\n\t\t\t\telm.setAttribute('multiple', 'multiple');\r\n\t\t\t}\r\n\t\t\treturn elm\r\n\t\t}\r\n\r\n\t\tfunction createElementNS(namespace, tagName) {\r\n\t\t\treturn document.createElementNS(namespaceMap[namespace], tagName)\r\n\t\t}\r\n\r\n\t\tfunction createTextNode(text) {\r\n\t\t\treturn document.createTextNode(text)\r\n\t\t}\r\n\r\n\t\tfunction createComment(text) {\r\n\t\t\treturn document.createComment(text)\r\n\t\t}\r\n\r\n\t\tfunction insertBefore(parentNode, newNode, referenceNode) {\r\n\t\t\tparentNode.insertBefore(newNode, referenceNode);\r\n\t\t}\r\n\r\n\t\tfunction removeChild(node, child) {\r\n\t\t\tnode.removeChild(child);\r\n\t\t}\r\n\r\n\t\tfunction appendChild(node, child) {\r\n\t\t\tnode.appendChild(child);\r\n\t\t}\r\n\r\n\t\tfunction parentNode(node) {\r\n\t\t\treturn node.parentNode\r\n\t\t}\r\n\r\n\t\tfunction nextSibling(node) {\r\n\t\t\treturn node.nextSibling\r\n\t\t}\r\n\r\n\t\tfunction tagName(node) {\r\n\t\t\treturn node.tagName\r\n\t\t}\r\n\r\n\t\tfunction setTextContent(node, text) {\r\n\t\t\tnode.textContent = text;\r\n\t\t}\r\n\r\n\t\tfunction setStyleScope(node, scopeId) {\r\n\t\t\tnode.setAttribute(scopeId, '');\r\n\t\t}\r\n\r\n\t\tvar nodeOps = /*#__PURE__*/Object.freeze({\r\n\t\t\tcreateElement: createElement$1,\r\n\t\t\tcreateElementNS: createElementNS,\r\n\t\t\tcreateTextNode: createTextNode,\r\n\t\t\tcreateComment: createComment,\r\n\t\t\tinsertBefore: insertBefore,\r\n\t\t\tremoveChild: removeChild,\r\n\t\t\tappendChild: appendChild,\r\n\t\t\tparentNode: parentNode,\r\n\t\t\tnextSibling: nextSibling,\r\n\t\t\ttagName: tagName,\r\n\t\t\tsetTextContent: setTextContent,\r\n\t\t\tsetStyleScope: setStyleScope\r\n\t\t});\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar ref = {\r\n\t\t\tcreate: function create(_, vnode) {\r\n\t\t\t\tregisterRef(vnode);\r\n\t\t\t},\r\n\t\t\tupdate: function update(oldVnode, vnode) {\r\n\t\t\t\tif (oldVnode.data.ref !== vnode.data.ref) {\r\n\t\t\t\t\tregisterRef(oldVnode, true);\r\n\t\t\t\t\tregisterRef(vnode);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdestroy: function destroy(vnode) {\r\n\t\t\t\tregisterRef(vnode, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction registerRef(vnode, isRemoval) {\r\n\t\t\tvar key = vnode.data.ref;\r\n\t\t\tif (!isDef(key)) { return }\r\n\r\n\t\t\tvar vm = vnode.context;\r\n\t\t\tvar ref = vnode.componentInstance || vnode.elm;\r\n\t\t\tvar refs = vm.$refs;\r\n\t\t\tif (isRemoval) {\r\n\t\t\t\tif (Array.isArray(refs[key])) {\r\n\t\t\t\t\tremove(refs[key], ref);\r\n\t\t\t\t} else if (refs[key] === ref) {\r\n\t\t\t\t\trefs[key] = undefined;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (vnode.data.refInFor) {\r\n\t\t\t\t\tif (!Array.isArray(refs[key])) {\r\n\t\t\t\t\t\trefs[key] = [ref];\r\n\t\t\t\t\t} else if (refs[key].indexOf(ref) < 0) {\r\n\t\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\t\trefs[key].push(ref);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\trefs[key] = ref;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Virtual DOM patching algorithm based on Snabbdom by\r\n\t\t * Simon Friis Vindum (@paldepind)\r\n\t\t * Licensed under the MIT License\r\n\t\t * https://github.com/paldepind/snabbdom/blob/master/LICENSE\r\n\t\t *\r\n\t\t * modified by Evan You (@yyx990803)\r\n\t\t *\r\n\t\t * Not type-checking this because this file is perf-critical and the cost\r\n\t\t * of making flow understand it is not worth it.\r\n\t\t */\r\n\r\n\t\tvar emptyNode = new VNode('', {}, []);\r\n\r\n\t\tvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\r\n\r\n\t\tfunction sameVnode(a, b) {\r\n\t\t\treturn (\r\n\t\t\t\ta.key === b.key &&\r\n\t\t\t\ta.asyncFactory === b.asyncFactory && (\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\ta.tag === b.tag &&\r\n\t\t\t\t\t\ta.isComment === b.isComment &&\r\n\t\t\t\t\t\tisDef(a.data) === isDef(b.data) &&\r\n\t\t\t\t\t\tsameInputType(a, b)\r\n\t\t\t\t\t) || (\r\n\t\t\t\t\t\tisTrue(a.isAsyncPlaceholder) &&\r\n\t\t\t\t\t\tisUndef(b.asyncFactory.error)\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tfunction sameInputType(a, b) {\r\n\t\t\tif (a.tag !== 'input') { return true }\r\n\t\t\tvar i;\r\n\t\t\tvar typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\r\n\t\t\tvar typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\r\n\t\t\treturn typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\r\n\t\t}\r\n\r\n\t\tfunction createKeyToOldIdx(children, beginIdx, endIdx) {\r\n\t\t\tvar i, key;\r\n\t\t\tvar map = {};\r\n\t\t\tfor (i = beginIdx; i <= endIdx; ++i) {\r\n\t\t\t\tkey = children[i].key;\r\n\t\t\t\tif (isDef(key)) { map[key] = i; }\r\n\t\t\t}\r\n\t\t\treturn map\r\n\t\t}\r\n\r\n\t\tfunction createPatchFunction(backend) {\r\n\t\t\tvar i, j;\r\n\t\t\tvar cbs = {};\r\n\r\n\t\t\tvar modules = backend.modules;\r\n\t\t\tvar nodeOps = backend.nodeOps;\r\n\r\n\t\t\tfor (i = 0; i < hooks.length; ++i) {\r\n\t\t\t\tcbs[hooks[i]] = [];\r\n\t\t\t\tfor (j = 0; j < modules.length; ++j) {\r\n\t\t\t\t\tif (isDef(modules[j][hooks[i]])) {\r\n\t\t\t\t\t\tcbs[hooks[i]].push(modules[j][hooks[i]]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction emptyNodeAt(elm) {\r\n\t\t\t\treturn new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\r\n\t\t\t}\r\n\r\n\t\t\tfunction createRmCb(childElm, listeners) {\r\n\t\t\t\tfunction remove$$1() {\r\n\t\t\t\t\tif (--remove$$1.listeners === 0) {\r\n\t\t\t\t\t\tremoveNode(childElm);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tremove$$1.listeners = listeners;\r\n\t\t\t\treturn remove$$1\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeNode(el) {\r\n\t\t\t\tvar parent = nodeOps.parentNode(el);\r\n\t\t\t\t// element may have already been removed due to v-html / v-text\r\n\t\t\t\tif (isDef(parent)) {\r\n\t\t\t\t\tnodeOps.removeChild(parent, el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction isUnknownElement$$1(vnode, inVPre) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t!inVPre &&\r\n\t\t\t\t\t!vnode.ns &&\r\n\t\t\t\t\t!(\r\n\t\t\t\t\t\tconfig.ignoredElements.length &&\r\n\t\t\t\t\t\tconfig.ignoredElements.some(function (ignore) {\r\n\t\t\t\t\t\t\treturn isRegExp(ignore)\r\n\t\t\t\t\t\t\t\t? ignore.test(vnode.tag)\r\n\t\t\t\t\t\t\t\t: ignore === vnode.tag\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t) &&\r\n\t\t\t\t\tconfig.isUnknownElement(vnode.tag)\r\n\t\t\t\t)\r\n\t\t\t}\r\n\r\n\t\t\tvar creatingElmInVPre = 0;\r\n\r\n\t\t\tfunction createElm(\r\n\t\t\t\tvnode,\r\n\t\t\t\tinsertedVnodeQueue,\r\n\t\t\t\tparentElm,\r\n\t\t\t\trefElm,\r\n\t\t\t\tnested,\r\n\t\t\t\townerArray,\r\n\t\t\t\tindex\r\n\t\t\t) {\r\n\t\t\t\tif (isDef(vnode.elm) && isDef(ownerArray)) {\r\n\t\t\t\t\t// This vnode was used in a previous render!\r\n\t\t\t\t\t// now it's used as a new node, overwriting its elm would cause\r\n\t\t\t\t\t// potential patch errors down the road when it's used as an insertion\r\n\t\t\t\t\t// reference node. Instead, we clone the node on-demand before creating\r\n\t\t\t\t\t// associated DOM element for it.\r\n\t\t\t\t\tvnode = ownerArray[index] = cloneVNode(vnode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvnode.isRootInsert = !nested; // for transition enter check\r\n\t\t\t\tif (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar data = vnode.data;\r\n\t\t\t\tvar children = vnode.children;\r\n\t\t\t\tvar tag = vnode.tag;\r\n\t\t\t\tif (isDef(tag)) {\r\n\t\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t\tvnode.elm = vnode.ns\r\n\t\t\t\t\t\t? nodeOps.createElementNS(vnode.ns, tag)\r\n\t\t\t\t\t\t: nodeOps.createElement(tag, vnode);\r\n\t\t\t\t\tsetScope(vnode);\r\n\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcreateChildren(vnode, children, insertedVnodeQueue);\r\n\t\t\t\t\t\tif (isDef(data)) {\r\n\t\t\t\t\t\t\tinvokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinsert(parentElm, vnode.elm, refElm);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t} else if (isTrue(vnode.isComment)) {\r\n\t\t\t\t\tvnode.elm = nodeOps.createComment(vnode.text);\r\n\t\t\t\t\tinsert(parentElm, vnode.elm, refElm);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvnode.elm = nodeOps.createTextNode(vnode.text);\r\n\t\t\t\t\tinsert(parentElm, vnode.elm, refElm);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n\t\t\t\tvar i = vnode.data;\r\n\t\t\t\tif (isDef(i)) {\r\n\t\t\t\t\tvar isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\r\n\t\t\t\t\tif (isDef(i = i.hook) && isDef(i = i.init)) {\r\n\t\t\t\t\t\ti(vnode, false /* hydrating */);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// after calling the init hook, if the vnode is a child component\r\n\t\t\t\t\t// it should've created a child instance and mounted it. the child\r\n\t\t\t\t\t// component also has set the placeholder vnode's elm.\r\n\t\t\t\t\t// in that case we can just return the element and be done.\r\n\t\t\t\t\tif (isDef(vnode.componentInstance)) {\r\n\t\t\t\t\t\tinitComponent(vnode, insertedVnodeQueue);\r\n\t\t\t\t\t\tinsert(parentElm, vnode.elm, refElm);\r\n\t\t\t\t\t\tif (isTrue(isReactivated)) {\r\n\t\t\t\t\t\t\treactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction initComponent(vnode, insertedVnodeQueue) {\r\n\t\t\t\tif (isDef(vnode.data.pendingInsert)) {\r\n\t\t\t\t\tinsertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\r\n\t\t\t\t\tvnode.data.pendingInsert = null;\r\n\t\t\t\t}\r\n\t\t\t\tvnode.elm = vnode.componentInstance.$el;\r\n\t\t\t\tif (isPatchable(vnode)) {\r\n\t\t\t\t\tinvokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t\t\t\t\tsetScope(vnode);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// empty component root.\r\n\t\t\t\t\t// skip all element-related modules except for ref (#3455)\r\n\t\t\t\t\tregisterRef(vnode);\r\n\t\t\t\t\t// make sure to invoke the insert hook\r\n\t\t\t\t\tinsertedVnodeQueue.push(vnode);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n\t\t\t\tvar i;\r\n\t\t\t\t// hack for #4339: a reactivated component with inner transition\r\n\t\t\t\t// does not trigger because the inner node's created hooks are not called\r\n\t\t\t\t// again. It's not ideal to involve module-specific logic in here but\r\n\t\t\t\t// there doesn't seem to be a better way to do it.\r\n\t\t\t\tvar innerNode = vnode;\r\n\t\t\t\twhile (innerNode.componentInstance) {\r\n\t\t\t\t\tinnerNode = innerNode.componentInstance._vnode;\r\n\t\t\t\t\tif (isDef(i = innerNode.data) && isDef(i = i.transition)) {\r\n\t\t\t\t\t\tfor (i = 0; i < cbs.activate.length; ++i) {\r\n\t\t\t\t\t\t\tcbs.activate[i](emptyNode, innerNode);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinsertedVnodeQueue.push(innerNode);\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// unlike a newly created component,\r\n\t\t\t\t// a reactivated keep-alive component doesn't insert itself\r\n\t\t\t\tinsert(parentElm, vnode.elm, refElm);\r\n\t\t\t}\r\n\r\n\t\t\tfunction insert(parent, elm, ref$$1) {\r\n\t\t\t\tif (isDef(parent)) {\r\n\t\t\t\t\tif (isDef(ref$$1)) {\r\n\t\t\t\t\t\tif (nodeOps.parentNode(ref$$1) === parent) {\r\n\t\t\t\t\t\t\tnodeOps.insertBefore(parent, elm, ref$$1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnodeOps.appendChild(parent, elm);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction createChildren(vnode, children, insertedVnodeQueue) {\r\n\t\t\t\tif (Array.isArray(children)) {\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tfor (var i = 0; i < children.length; ++i) {\r\n\t\t\t\t\t\tcreateElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (isPrimitive(vnode.text)) {\r\n\t\t\t\t\tnodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction isPatchable(vnode) {\r\n\t\t\t\twhile (vnode.componentInstance) {\r\n\t\t\t\t\tvnode = vnode.componentInstance._vnode;\r\n\t\t\t\t}\r\n\t\t\t\treturn isDef(vnode.tag)\r\n\t\t\t}\r\n\r\n\t\t\tfunction invokeCreateHooks(vnode, insertedVnodeQueue) {\r\n\t\t\t\tfor (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\r\n\t\t\t\t\tcbs.create[i$1](emptyNode, vnode);\r\n\t\t\t\t}\r\n\t\t\t\ti = vnode.data.hook; // Reuse variable\r\n\t\t\t\tif (isDef(i)) {\r\n\t\t\t\t\tif (isDef(i.create)) { i.create(emptyNode, vnode); }\r\n\t\t\t\t\tif (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// set scope id attribute for scoped CSS.\r\n\t\t\t// this is implemented as a special case to avoid the overhead\r\n\t\t\t// of going through the normal attribute patching process.\r\n\t\t\tfunction setScope(vnode) {\r\n\t\t\t\tvar i;\r\n\t\t\t\tif (isDef(i = vnode.fnScopeId)) {\r\n\t\t\t\t\tnodeOps.setStyleScope(vnode.elm, i);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar ancestor = vnode;\r\n\t\t\t\t\twhile (ancestor) {\r\n\t\t\t\t\t\tif (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\r\n\t\t\t\t\t\t\tnodeOps.setStyleScope(vnode.elm, i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tancestor = ancestor.parent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// for slot content they should also get the scopeId from the host instance.\r\n\t\t\t\tif (isDef(i = activeInstance) &&\r\n\t\t\t\t\ti !== vnode.context &&\r\n\t\t\t\t\ti !== vnode.fnContext &&\r\n\t\t\t\t\tisDef(i = i.$options._scopeId)\r\n\t\t\t\t) {\r\n\t\t\t\t\tnodeOps.setStyleScope(vnode.elm, i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\r\n\t\t\t\tfor (; startIdx <= endIdx; ++startIdx) {\r\n\t\t\t\t\tcreateElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction invokeDestroyHook(vnode) {\r\n\t\t\t\tvar i, j;\r\n\t\t\t\tvar data = vnode.data;\r\n\t\t\t\tif (isDef(data)) {\r\n\t\t\t\t\tif (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\r\n\t\t\t\t\tfor (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\r\n\t\t\t\t}\r\n\t\t\t\tif (isDef(i = vnode.children)) {\r\n\t\t\t\t\tfor (j = 0; j < vnode.children.length; ++j) {\r\n\t\t\t\t\t\tinvokeDestroyHook(vnode.children[j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeVnodes(vnodes, startIdx, endIdx) {\r\n\t\t\t\tfor (; startIdx <= endIdx; ++startIdx) {\r\n\t\t\t\t\tvar ch = vnodes[startIdx];\r\n\t\t\t\t\tif (isDef(ch)) {\r\n\t\t\t\t\t\tif (isDef(ch.tag)) {\r\n\t\t\t\t\t\t\tremoveAndInvokeRemoveHook(ch);\r\n\t\t\t\t\t\t\tinvokeDestroyHook(ch);\r\n\t\t\t\t\t\t} else { // Text node\r\n\t\t\t\t\t\t\tremoveNode(ch.elm);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeAndInvokeRemoveHook(vnode, rm) {\r\n\t\t\t\tif (isDef(rm) || isDef(vnode.data)) {\r\n\t\t\t\t\tvar i;\r\n\t\t\t\t\tvar listeners = cbs.remove.length + 1;\r\n\t\t\t\t\tif (isDef(rm)) {\r\n\t\t\t\t\t\t// we have a recursively passed down rm callback\r\n\t\t\t\t\t\t// increase the listeners count\r\n\t\t\t\t\t\trm.listeners += listeners;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// directly removing\r\n\t\t\t\t\t\trm = createRmCb(vnode.elm, listeners);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// recursively invoke hooks on child component root node\r\n\t\t\t\t\tif (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\r\n\t\t\t\t\t\tremoveAndInvokeRemoveHook(i, rm);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (i = 0; i < cbs.remove.length; ++i) {\r\n\t\t\t\t\t\tcbs.remove[i](vnode, rm);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\r\n\t\t\t\t\t\ti(vnode, rm);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trm();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremoveNode(vnode.elm);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\r\n\t\t\t\tvar oldStartIdx = 0;\r\n\t\t\t\tvar newStartIdx = 0;\r\n\t\t\t\tvar oldEndIdx = oldCh.length - 1;\r\n\t\t\t\tvar oldStartVnode = oldCh[0];\r\n\t\t\t\tvar oldEndVnode = oldCh[oldEndIdx];\r\n\t\t\t\tvar newEndIdx = newCh.length - 1;\r\n\t\t\t\tvar newStartVnode = newCh[0];\r\n\t\t\t\tvar newEndVnode = newCh[newEndIdx];\r\n\t\t\t\tvar oldKeyToIdx, idxInOld, vnodeToMove, refElm;\r\n\r\n\t\t\t\t// removeOnly is a special flag used only by <transition-group>\r\n\t\t\t\t// to ensure removed elements stay in correct relative positions\r\n\t\t\t\t// during leaving transitions\r\n\t\t\t\tvar canMove = !removeOnly;\r\n\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\twhile (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\r\n\t\t\t\t\tif (isUndef(oldStartVnode)) {\r\n\t\t\t\t\t\toldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\r\n\t\t\t\t\t} else if (isUndef(oldEndVnode)) {\r\n\t\t\t\t\t\toldEndVnode = oldCh[--oldEndIdx];\r\n\t\t\t\t\t} else if (sameVnode(oldStartVnode, newStartVnode)) {\r\n\t\t\t\t\t\tpatchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t\t\t\t\t\toldStartVnode = oldCh[++oldStartIdx];\r\n\t\t\t\t\t\tnewStartVnode = newCh[++newStartIdx];\r\n\t\t\t\t\t} else if (sameVnode(oldEndVnode, newEndVnode)) {\r\n\t\t\t\t\t\tpatchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n\t\t\t\t\t\toldEndVnode = oldCh[--oldEndIdx];\r\n\t\t\t\t\t\tnewEndVnode = newCh[--newEndIdx];\r\n\t\t\t\t\t} else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\r\n\t\t\t\t\t\tpatchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n\t\t\t\t\t\tcanMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\r\n\t\t\t\t\t\toldStartVnode = oldCh[++oldStartIdx];\r\n\t\t\t\t\t\tnewEndVnode = newCh[--newEndIdx];\r\n\t\t\t\t\t} else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\r\n\t\t\t\t\t\tpatchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t\t\t\t\t\tcanMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\r\n\t\t\t\t\t\toldEndVnode = oldCh[--oldEndIdx];\r\n\t\t\t\t\t\tnewStartVnode = newCh[++newStartIdx];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\r\n\t\t\t\t\t\tidxInOld = isDef(newStartVnode.key)\r\n\t\t\t\t\t\t\t? oldKeyToIdx[newStartVnode.key]\r\n\t\t\t\t\t\t\t: findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\r\n\t\t\t\t\t\tif (isUndef(idxInOld)) { // New element\r\n\t\t\t\t\t\t\tcreateElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvnodeToMove = oldCh[idxInOld];\r\n\t\t\t\t\t\t\tif (sameVnode(vnodeToMove, newStartVnode)) {\r\n\t\t\t\t\t\t\t\tpatchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n\t\t\t\t\t\t\t\toldCh[idxInOld] = undefined;\r\n\t\t\t\t\t\t\t\tcanMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// same key but different element. treat as new element\r\n\t\t\t\t\t\t\t\tcreateElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewStartVnode = newCh[++newStartIdx];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (oldStartIdx > oldEndIdx) {\r\n\t\t\t\t\trefElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\r\n\t\t\t\t\taddVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\r\n\t\t\t\t} else if (newStartIdx > newEndIdx) {\r\n\t\t\t\t\tremoveVnodes(oldCh, oldStartIdx, oldEndIdx);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction checkDuplicateKeys(children) {\r\n\t\t\t\tvar seenKeys = {};\r\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\t\tvar vnode = children[i];\r\n\t\t\t\t\tvar key = vnode.key;\r\n\t\t\t\t\tif (isDef(key)) {\r\n\t\t\t\t\t\tif (seenKeys[key]) {\r\n\t\t\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\t\t(\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\r\n\t\t\t\t\t\t\t\tvnode.context\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tseenKeys[key] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction findIdxInOld(node, oldCh, start, end) {\r\n\t\t\t\tfor (var i = start; i < end; i++) {\r\n\t\t\t\t\tvar c = oldCh[i];\r\n\t\t\t\t\tif (isDef(c) && sameVnode(node, c)) { return i }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction patchVnode(\r\n\t\t\t\toldVnode,\r\n\t\t\t\tvnode,\r\n\t\t\t\tinsertedVnodeQueue,\r\n\t\t\t\townerArray,\r\n\t\t\t\tindex,\r\n\t\t\t\tremoveOnly\r\n\t\t\t) {\r\n\t\t\t\tif (oldVnode === vnode) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isDef(vnode.elm) && isDef(ownerArray)) {\r\n\t\t\t\t\t// clone reused vnode\r\n\t\t\t\t\tvnode = ownerArray[index] = cloneVNode(vnode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar elm = vnode.elm = oldVnode.elm;\r\n\r\n\t\t\t\tif (isTrue(oldVnode.isAsyncPlaceholder)) {\r\n\t\t\t\t\tif (isDef(vnode.asyncFactory.resolved)) {\r\n\t\t\t\t\t\thydrate(oldVnode.elm, vnode, insertedVnodeQueue);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvnode.isAsyncPlaceholder = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// reuse element for static trees.\r\n\t\t\t\t// note we only do this if the vnode is cloned -\r\n\t\t\t\t// if the new node is not cloned it means the render functions have been\r\n\t\t\t\t// reset by the hot-reload-api and we need to do a proper re-render.\r\n\t\t\t\tif (isTrue(vnode.isStatic) &&\r\n\t\t\t\t\tisTrue(oldVnode.isStatic) &&\r\n\t\t\t\t\tvnode.key === oldVnode.key &&\r\n\t\t\t\t\t(isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\r\n\t\t\t\t) {\r\n\t\t\t\t\tvnode.componentInstance = oldVnode.componentInstance;\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar i;\r\n\t\t\t\tvar data = vnode.data;\r\n\t\t\t\tif (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\r\n\t\t\t\t\ti(oldVnode, vnode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar oldCh = oldVnode.children;\r\n\t\t\t\tvar ch = vnode.children;\r\n\t\t\t\tif (isDef(data) && isPatchable(vnode)) {\r\n\t\t\t\t\tfor (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\r\n\t\t\t\t\tif (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\r\n\t\t\t\t}\r\n\t\t\t\tif (isUndef(vnode.text)) {\r\n\t\t\t\t\tif (isDef(oldCh) && isDef(ch)) {\r\n\t\t\t\t\t\tif (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\r\n\t\t\t\t\t} else if (isDef(ch)) {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\tif (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\r\n\t\t\t\t\t\taddVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\r\n\t\t\t\t\t} else if (isDef(oldCh)) {\r\n\t\t\t\t\t\tremoveVnodes(oldCh, 0, oldCh.length - 1);\r\n\t\t\t\t\t} else if (isDef(oldVnode.text)) {\r\n\t\t\t\t\t\tnodeOps.setTextContent(elm, '');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (oldVnode.text !== vnode.text) {\r\n\t\t\t\t\tnodeOps.setTextContent(elm, vnode.text);\r\n\t\t\t\t}\r\n\t\t\t\tif (isDef(data)) {\r\n\t\t\t\t\tif (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction invokeInsertHook(vnode, queue, initial) {\r\n\t\t\t\t// delay insert hooks for component root nodes, invoke them after the\r\n\t\t\t\t// element is really inserted\r\n\t\t\t\tif (isTrue(initial) && isDef(vnode.parent)) {\r\n\t\t\t\t\tvnode.parent.data.pendingInsert = queue;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (var i = 0; i < queue.length; ++i) {\r\n\t\t\t\t\t\tqueue[i].data.hook.insert(queue[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar hydrationBailed = false;\r\n\t\t\t// list of modules that can skip create hook during hydration because they\r\n\t\t\t// are already rendered on the client or has no need for initialization\r\n\t\t\t// Note: style is excluded because it relies on initial clone for future\r\n\t\t\t// deep updates (#7063).\r\n\t\t\tvar isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\r\n\r\n\t\t\t// Note: this is a browser-only function so we can assume elms are DOM nodes.\r\n\t\t\tfunction hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\r\n\t\t\t\tvar i;\r\n\t\t\t\tvar tag = vnode.tag;\r\n\t\t\t\tvar data = vnode.data;\r\n\t\t\t\tvar children = vnode.children;\r\n\t\t\t\tinVPre = inVPre || (data && data.pre);\r\n\t\t\t\tvnode.elm = elm;\r\n\r\n\t\t\t\tif (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\r\n\t\t\t\t\tvnode.isAsyncPlaceholder = true;\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t\t// assert node match\r\n\t\t\t\tif (false) { }\r\n\t\t\t\tif (isDef(data)) {\r\n\t\t\t\t\tif (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\r\n\t\t\t\t\tif (isDef(i = vnode.componentInstance)) {\r\n\t\t\t\t\t\t// child component. it should have hydrated its own tree.\r\n\t\t\t\t\t\tinitComponent(vnode, insertedVnodeQueue);\r\n\t\t\t\t\t\treturn true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (isDef(tag)) {\r\n\t\t\t\t\tif (isDef(children)) {\r\n\t\t\t\t\t\t// empty element, allow client to pick up and populate children\r\n\t\t\t\t\t\tif (!elm.hasChildNodes()) {\r\n\t\t\t\t\t\t\tcreateChildren(vnode, children, insertedVnodeQueue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// v-html and domProps: innerHTML\r\n\t\t\t\t\t\t\tif (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\r\n\t\t\t\t\t\t\t\tif (i !== elm.innerHTML) {\r\n\t\t\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t\t\tif (false\r\n\t\t\t\t\t\t\t\t\t) { }\r\n\t\t\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// iterate and compare children lists\r\n\t\t\t\t\t\t\t\tvar childrenMatch = true;\r\n\t\t\t\t\t\t\t\tvar childNode = elm.firstChild;\r\n\t\t\t\t\t\t\t\tfor (var i$1 = 0; i$1 < children.length; i$1++) {\r\n\t\t\t\t\t\t\t\t\tif (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\r\n\t\t\t\t\t\t\t\t\t\tchildrenMatch = false;\r\n\t\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tchildNode = childNode.nextSibling;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// if childNode is not null, it means the actual childNodes list is\r\n\t\t\t\t\t\t\t\t// longer than the virtual children list.\r\n\t\t\t\t\t\t\t\tif (!childrenMatch || childNode) {\r\n\t\t\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\t\t\tif (false\r\n\t\t\t\t\t\t\t\t\t) { }\r\n\t\t\t\t\t\t\t\t\treturn false\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isDef(data)) {\r\n\t\t\t\t\t\tvar fullInvoke = false;\r\n\t\t\t\t\t\tfor (var key in data) {\r\n\t\t\t\t\t\t\tif (!isRenderedModule(key)) {\r\n\t\t\t\t\t\t\t\tfullInvoke = true;\r\n\t\t\t\t\t\t\t\tinvokeCreateHooks(vnode, insertedVnodeQueue);\r\n\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!fullInvoke && data['class']) {\r\n\t\t\t\t\t\t\t// ensure collecting deps for deep class bindings for future updates\r\n\t\t\t\t\t\t\ttraverse(data['class']);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (elm.data !== vnode.text) {\r\n\t\t\t\t\telm.data = vnode.text;\r\n\t\t\t\t}\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\r\n\t\t\tfunction assertNodeMatch(node, vnode, inVPre) {\r\n\t\t\t\tif (isDef(vnode.tag)) {\r\n\t\t\t\t\treturn vnode.tag.indexOf('vue-component') === 0 || (\r\n\t\t\t\t\t\t!isUnknownElement$$1(vnode, inVPre) &&\r\n\t\t\t\t\t\tvnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\r\n\t\t\t\t\t)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn node.nodeType === (vnode.isComment ? 8 : 3)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn function patch(oldVnode, vnode, hydrating, removeOnly) {\r\n\t\t\t\tif (isUndef(vnode)) {\r\n\t\t\t\t\tif (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar isInitialPatch = false;\r\n\t\t\t\tvar insertedVnodeQueue = [];\r\n\r\n\t\t\t\tif (isUndef(oldVnode)) {\r\n\t\t\t\t\t// empty mount (likely as component), create new root element\r\n\t\t\t\t\tisInitialPatch = true;\r\n\t\t\t\t\tcreateElm(vnode, insertedVnodeQueue);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar isRealElement = isDef(oldVnode.nodeType);\r\n\t\t\t\t\tif (!isRealElement && sameVnode(oldVnode, vnode)) {\r\n\t\t\t\t\t\t// patch existing root node\r\n\t\t\t\t\t\tpatchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (isRealElement) {\r\n\t\t\t\t\t\t\t// mounting to a real element\r\n\t\t\t\t\t\t\t// check if this is server-rendered content and if we can perform\r\n\t\t\t\t\t\t\t// a successful hydration.\r\n\t\t\t\t\t\t\tif (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\r\n\t\t\t\t\t\t\t\toldVnode.removeAttribute(SSR_ATTR);\r\n\t\t\t\t\t\t\t\thydrating = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (isTrue(hydrating)) {\r\n\t\t\t\t\t\t\t\tif (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\r\n\t\t\t\t\t\t\t\t\tinvokeInsertHook(vnode, insertedVnodeQueue, true);\r\n\t\t\t\t\t\t\t\t\treturn oldVnode\r\n\t\t\t\t\t\t\t\t} else if (false) { }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// either not server-rendered, or hydration failed.\r\n\t\t\t\t\t\t\t// create an empty node and replace it\r\n\t\t\t\t\t\t\toldVnode = emptyNodeAt(oldVnode);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// replacing existing element\r\n\t\t\t\t\t\tvar oldElm = oldVnode.elm;\r\n\t\t\t\t\t\tvar parentElm = nodeOps.parentNode(oldElm);\r\n\r\n\t\t\t\t\t\t// create new node\r\n\t\t\t\t\t\tcreateElm(\r\n\t\t\t\t\t\t\tvnode,\r\n\t\t\t\t\t\t\tinsertedVnodeQueue,\r\n\t\t\t\t\t\t\t// extremely rare edge case: do not insert if old element is in a\r\n\t\t\t\t\t\t\t// leaving transition. Only happens when combining transition +\r\n\t\t\t\t\t\t\t// keep-alive + HOCs. (#4590)\r\n\t\t\t\t\t\t\toldElm._leaveCb ? null : parentElm,\r\n\t\t\t\t\t\t\tnodeOps.nextSibling(oldElm)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// update parent placeholder node element, recursively\r\n\t\t\t\t\t\tif (isDef(vnode.parent)) {\r\n\t\t\t\t\t\t\tvar ancestor = vnode.parent;\r\n\t\t\t\t\t\t\tvar patchable = isPatchable(vnode);\r\n\t\t\t\t\t\t\twhile (ancestor) {\r\n\t\t\t\t\t\t\t\tfor (var i = 0; i < cbs.destroy.length; ++i) {\r\n\t\t\t\t\t\t\t\t\tcbs.destroy[i](ancestor);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tancestor.elm = vnode.elm;\r\n\t\t\t\t\t\t\t\tif (patchable) {\r\n\t\t\t\t\t\t\t\t\tfor (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\r\n\t\t\t\t\t\t\t\t\t\tcbs.create[i$1](emptyNode, ancestor);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// #6513\r\n\t\t\t\t\t\t\t\t\t// invoke insert hooks that may have been merged by create hooks.\r\n\t\t\t\t\t\t\t\t\t// e.g. for directives that uses the \"inserted\" hook.\r\n\t\t\t\t\t\t\t\t\tvar insert = ancestor.data.hook.insert;\r\n\t\t\t\t\t\t\t\t\tif (insert.merged) {\r\n\t\t\t\t\t\t\t\t\t\t// start at index 1 to avoid re-invoking component mounted hook\r\n\t\t\t\t\t\t\t\t\t\tfor (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\r\n\t\t\t\t\t\t\t\t\t\t\tinsert.fns[i$2]();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tregisterRef(ancestor);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tancestor = ancestor.parent;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// destroy old node\r\n\t\t\t\t\t\tif (isDef(parentElm)) {\r\n\t\t\t\t\t\t\tremoveVnodes([oldVnode], 0, 0);\r\n\t\t\t\t\t\t} else if (isDef(oldVnode.tag)) {\r\n\t\t\t\t\t\t\tinvokeDestroyHook(oldVnode);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinvokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\r\n\t\t\t\treturn vnode.elm\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar directives = {\r\n\t\t\tcreate: updateDirectives,\r\n\t\t\tupdate: updateDirectives,\r\n\t\t\tdestroy: function unbindDirectives(vnode) {\r\n\t\t\t\tupdateDirectives(vnode, emptyNode);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction updateDirectives(oldVnode, vnode) {\r\n\t\t\tif (oldVnode.data.directives || vnode.data.directives) {\r\n\t\t\t\t_update(oldVnode, vnode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction _update(oldVnode, vnode) {\r\n\t\t\tvar isCreate = oldVnode === emptyNode;\r\n\t\t\tvar isDestroy = vnode === emptyNode;\r\n\t\t\tvar oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\r\n\t\t\tvar newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\r\n\r\n\t\t\tvar dirsWithInsert = [];\r\n\t\t\tvar dirsWithPostpatch = [];\r\n\r\n\t\t\tvar key, oldDir, dir;\r\n\t\t\tfor (key in newDirs) {\r\n\t\t\t\toldDir = oldDirs[key];\r\n\t\t\t\tdir = newDirs[key];\r\n\t\t\t\tif (!oldDir) {\r\n\t\t\t\t\t// new directive, bind\r\n\t\t\t\t\tcallHook$1(dir, 'bind', vnode, oldVnode);\r\n\t\t\t\t\tif (dir.def && dir.def.inserted) {\r\n\t\t\t\t\t\tdirsWithInsert.push(dir);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// existing directive, update\r\n\t\t\t\t\tdir.oldValue = oldDir.value;\r\n\t\t\t\t\tdir.oldArg = oldDir.arg;\r\n\t\t\t\t\tcallHook$1(dir, 'update', vnode, oldVnode);\r\n\t\t\t\t\tif (dir.def && dir.def.componentUpdated) {\r\n\t\t\t\t\t\tdirsWithPostpatch.push(dir);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (dirsWithInsert.length) {\r\n\t\t\t\tvar callInsert = function () {\r\n\t\t\t\t\tfor (var i = 0; i < dirsWithInsert.length; i++) {\r\n\t\t\t\t\t\tcallHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tif (isCreate) {\r\n\t\t\t\t\tmergeVNodeHook(vnode, 'insert', callInsert);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallInsert();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (dirsWithPostpatch.length) {\r\n\t\t\t\tmergeVNodeHook(vnode, 'postpatch', function () {\r\n\t\t\t\t\tfor (var i = 0; i < dirsWithPostpatch.length; i++) {\r\n\t\t\t\t\t\tcallHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (!isCreate) {\r\n\t\t\t\tfor (key in oldDirs) {\r\n\t\t\t\t\tif (!newDirs[key]) {\r\n\t\t\t\t\t\t// no longer present, unbind\r\n\t\t\t\t\t\tcallHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar emptyModifiers = Object.create(null);\r\n\r\n\t\tfunction normalizeDirectives$1(\r\n\t\t\tdirs,\r\n\t\t\tvm\r\n\t\t) {\r\n\t\t\tvar res = Object.create(null);\r\n\t\t\tif (!dirs) {\r\n\t\t\t\t// $flow-disable-line\r\n\t\t\t\treturn res\r\n\t\t\t}\r\n\t\t\tvar i, dir;\r\n\t\t\tfor (i = 0; i < dirs.length; i++) {\r\n\t\t\t\tdir = dirs[i];\r\n\t\t\t\tif (!dir.modifiers) {\r\n\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\tdir.modifiers = emptyModifiers;\r\n\t\t\t\t}\r\n\t\t\t\tres[getRawDirName(dir)] = dir;\r\n\t\t\t\tdir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\r\n\t\t\t}\r\n\t\t\t// $flow-disable-line\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction getRawDirName(dir) {\r\n\t\t\treturn dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\r\n\t\t}\r\n\r\n\t\tfunction callHook$1(dir, hook, vnode, oldVnode, isDestroy) {\r\n\t\t\tvar fn = dir.def && dir.def[hook];\r\n\t\t\tif (fn) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfn(vnode.elm, dir, vnode, oldVnode, isDestroy);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\thandleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar baseModules = [\r\n\t\t\tref,\r\n\t\t\tdirectives\r\n\t\t];\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction updateAttrs(oldVnode, vnode) {\r\n\t\t\tvar opts = vnode.componentOptions;\r\n\t\t\tif (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tif (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar key, cur, old;\r\n\t\t\tvar elm = vnode.elm;\r\n\t\t\tvar oldAttrs = oldVnode.data.attrs || {};\r\n\t\t\tvar attrs = vnode.data.attrs || {};\r\n\t\t\t// clone observed objects, as the user probably wants to mutate it\r\n\t\t\tif (isDef(attrs.__ob__)) {\r\n\t\t\t\tattrs = vnode.data.attrs = extend({}, attrs);\r\n\t\t\t}\r\n\r\n\t\t\tfor (key in attrs) {\r\n\t\t\t\tcur = attrs[key];\r\n\t\t\t\told = oldAttrs[key];\r\n\t\t\t\tif (old !== cur) {\r\n\t\t\t\t\tsetAttr(elm, key, cur, vnode.data.pre);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// #4391: in IE9, setting type can reset value for input[type=radio]\r\n\t\t\t// #6666: IE/Edge forces progress value down to 1 before setting a max\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\r\n\t\t\t\tsetAttr(elm, 'value', attrs.value);\r\n\t\t\t}\r\n\t\t\tfor (key in oldAttrs) {\r\n\t\t\t\tif (isUndef(attrs[key])) {\r\n\t\t\t\t\tif (isXlink(key)) {\r\n\t\t\t\t\t\telm.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n\t\t\t\t\t} else if (!isEnumeratedAttr(key)) {\r\n\t\t\t\t\t\telm.removeAttribute(key);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setAttr(el, key, value, isInPre) {\r\n\t\t\tif (isInPre || el.tagName.indexOf('-') > -1) {\r\n\t\t\t\tbaseSetAttr(el, key, value);\r\n\t\t\t} else if (isBooleanAttr(key)) {\r\n\t\t\t\t// set attribute for blank value\r\n\t\t\t\t// e.g. <option disabled>Select one</option>\r\n\t\t\t\tif (isFalsyAttrValue(value)) {\r\n\t\t\t\t\tel.removeAttribute(key);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// technically allowfullscreen is a boolean attribute for <iframe>,\r\n\t\t\t\t\t// but Flash expects a value of \"true\" when used on <embed> tag\r\n\t\t\t\t\tvalue = key === 'allowfullscreen' && el.tagName === 'EMBED'\r\n\t\t\t\t\t\t? 'true'\r\n\t\t\t\t\t\t: key;\r\n\t\t\t\t\tel.setAttribute(key, value);\r\n\t\t\t\t}\r\n\t\t\t} else if (isEnumeratedAttr(key)) {\r\n\t\t\t\tel.setAttribute(key, convertEnumeratedValue(key, value));\r\n\t\t\t} else if (isXlink(key)) {\r\n\t\t\t\tif (isFalsyAttrValue(value)) {\r\n\t\t\t\t\tel.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.setAttributeNS(xlinkNS, key, value);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tbaseSetAttr(el, key, value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction baseSetAttr(el, key, value) {\r\n\t\t\tif (isFalsyAttrValue(value)) {\r\n\t\t\t\tel.removeAttribute(key);\r\n\t\t\t} else {\r\n\t\t\t\t// #7138: IE10 & 11 fires input event when setting placeholder on\r\n\t\t\t\t// <textarea>... block the first input event and remove the blocker\r\n\t\t\t\t// immediately.\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (\r\n\t\t\t\t\tisIE && !isIE9 &&\r\n\t\t\t\t\tel.tagName === 'TEXTAREA' &&\r\n\t\t\t\t\tkey === 'placeholder' && value !== '' && !el.__ieph\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar blocker = function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tel.removeEventListener('input', blocker);\r\n\t\t\t\t\t};\r\n\t\t\t\t\tel.addEventListener('input', blocker);\r\n\t\t\t\t\t// $flow-disable-line\r\n\t\t\t\t\tel.__ieph = true; /* IE placeholder patched */\r\n\t\t\t\t}\r\n\t\t\t\tel.setAttribute(key, value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar attrs = {\r\n\t\t\tcreate: updateAttrs,\r\n\t\t\tupdate: updateAttrs\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction updateClass(oldVnode, vnode) {\r\n\t\t\tvar el = vnode.elm;\r\n\t\t\tvar data = vnode.data;\r\n\t\t\tvar oldData = oldVnode.data;\r\n\t\t\tif (\r\n\t\t\t\tisUndef(data.staticClass) &&\r\n\t\t\t\tisUndef(data.class) && (\r\n\t\t\t\t\tisUndef(oldData) || (\r\n\t\t\t\t\t\tisUndef(oldData.staticClass) &&\r\n\t\t\t\t\t\tisUndef(oldData.class)\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar cls = genClassForVnode(vnode);\r\n\r\n\t\t\t// handle transition classes\r\n\t\t\tvar transitionClass = el._transitionClasses;\r\n\t\t\tif (isDef(transitionClass)) {\r\n\t\t\t\tcls = concat(cls, stringifyClass(transitionClass));\r\n\t\t\t}\r\n\r\n\t\t\t// set the class\r\n\t\t\tif (cls !== el._prevClass) {\r\n\t\t\t\tel.setAttribute('class', cls);\r\n\t\t\t\tel._prevClass = cls;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar klass = {\r\n\t\t\tcreate: updateClass,\r\n\t\t\tupdate: updateClass\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\r\n\r\n\t\tfunction parseFilters(exp) {\r\n\t\t\tvar inSingle = false;\r\n\t\t\tvar inDouble = false;\r\n\t\t\tvar inTemplateString = false;\r\n\t\t\tvar inRegex = false;\r\n\t\t\tvar curly = 0;\r\n\t\t\tvar square = 0;\r\n\t\t\tvar paren = 0;\r\n\t\t\tvar lastFilterIndex = 0;\r\n\t\t\tvar c, prev, i, expression, filters;\r\n\r\n\t\t\tfor (i = 0; i < exp.length; i++) {\r\n\t\t\t\tprev = c;\r\n\t\t\t\tc = exp.charCodeAt(i);\r\n\t\t\t\tif (inSingle) {\r\n\t\t\t\t\tif (c === 0x27 && prev !== 0x5C) { inSingle = false; }\r\n\t\t\t\t} else if (inDouble) {\r\n\t\t\t\t\tif (c === 0x22 && prev !== 0x5C) { inDouble = false; }\r\n\t\t\t\t} else if (inTemplateString) {\r\n\t\t\t\t\tif (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\r\n\t\t\t\t} else if (inRegex) {\r\n\t\t\t\t\tif (c === 0x2f && prev !== 0x5C) { inRegex = false; }\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tc === 0x7C && // pipe\r\n\t\t\t\t\texp.charCodeAt(i + 1) !== 0x7C &&\r\n\t\t\t\t\texp.charCodeAt(i - 1) !== 0x7C &&\r\n\t\t\t\t\t!curly && !square && !paren\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (expression === undefined) {\r\n\t\t\t\t\t\t// first filter, end of expression\r\n\t\t\t\t\t\tlastFilterIndex = i + 1;\r\n\t\t\t\t\t\texpression = exp.slice(0, i).trim();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpushFilter();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswitch (c) {\r\n\t\t\t\t\t\tcase 0x22: inDouble = true; break         // \"\r\n\t\t\t\t\t\tcase 0x27: inSingle = true; break         // '\r\n\t\t\t\t\t\tcase 0x60: inTemplateString = true; break // `\r\n\t\t\t\t\t\tcase 0x28: paren++; break                 // (\r\n\t\t\t\t\t\tcase 0x29: paren--; break                 // )\r\n\t\t\t\t\t\tcase 0x5B: square++; break                // [\r\n\t\t\t\t\t\tcase 0x5D: square--; break                // ]\r\n\t\t\t\t\t\tcase 0x7B: curly++; break                 // {\r\n\t\t\t\t\t\tcase 0x7D: curly--; break                 // }\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (c === 0x2f) { // /\r\n\t\t\t\t\t\tvar j = i - 1;\r\n\t\t\t\t\t\tvar p = (void 0);\r\n\t\t\t\t\t\t// find first non-whitespace prev char\r\n\t\t\t\t\t\tfor (; j >= 0; j--) {\r\n\t\t\t\t\t\t\tp = exp.charAt(j);\r\n\t\t\t\t\t\t\tif (p !== ' ') { break }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!p || !validDivisionCharRE.test(p)) {\r\n\t\t\t\t\t\t\tinRegex = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (expression === undefined) {\r\n\t\t\t\texpression = exp.slice(0, i).trim();\r\n\t\t\t} else if (lastFilterIndex !== 0) {\r\n\t\t\t\tpushFilter();\r\n\t\t\t}\r\n\r\n\t\t\tfunction pushFilter() {\r\n\t\t\t\t(filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\r\n\t\t\t\tlastFilterIndex = i + 1;\r\n\t\t\t}\r\n\r\n\t\t\tif (filters) {\r\n\t\t\t\tfor (i = 0; i < filters.length; i++) {\r\n\t\t\t\t\texpression = wrapFilter(expression, filters[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn expression\r\n\t\t}\r\n\r\n\t\tfunction wrapFilter(exp, filter) {\r\n\t\t\tvar i = filter.indexOf('(');\r\n\t\t\tif (i < 0) {\r\n\t\t\t\t// _f: resolveFilter\r\n\t\t\t\treturn (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\r\n\t\t\t} else {\r\n\t\t\t\tvar name = filter.slice(0, i);\r\n\t\t\t\tvar args = filter.slice(i + 1);\r\n\t\t\t\treturn (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\t/* eslint-disable no-unused-vars */\r\n\t\tfunction baseWarn(msg, range) {\r\n\t\t\tconsole.error((\"[Vue compiler]: \" + msg));\r\n\t\t}\r\n\t\t/* eslint-enable no-unused-vars */\r\n\r\n\t\tfunction pluckModuleFunction(\r\n\t\t\tmodules,\r\n\t\t\tkey\r\n\t\t) {\r\n\t\t\treturn modules\r\n\t\t\t\t? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\r\n\t\t\t\t: []\r\n\t\t}\r\n\r\n\t\tfunction addProp(el, name, value, range, dynamic) {\r\n\t\t\t(el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\r\n\t\t\tel.plain = false;\r\n\t\t}\r\n\r\n\t\tfunction addAttr(el, name, value, range, dynamic) {\r\n\t\t\tvar attrs = dynamic\r\n\t\t\t\t? (el.dynamicAttrs || (el.dynamicAttrs = []))\r\n\t\t\t\t: (el.attrs || (el.attrs = []));\r\n\t\t\tattrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\r\n\t\t\tel.plain = false;\r\n\t\t}\r\n\r\n\t\t// add a raw attr (use this in preTransforms)\r\n\t\tfunction addRawAttr(el, name, value, range) {\r\n\t\t\tel.attrsMap[name] = value;\r\n\t\t\tel.attrsList.push(rangeSetItem({ name: name, value: value }, range));\r\n\t\t}\r\n\r\n\t\tfunction addDirective(\r\n\t\t\tel,\r\n\t\t\tname,\r\n\t\t\trawName,\r\n\t\t\tvalue,\r\n\t\t\targ,\r\n\t\t\tisDynamicArg,\r\n\t\t\tmodifiers,\r\n\t\t\trange\r\n\t\t) {\r\n\t\t\t(el.directives || (el.directives = [])).push(rangeSetItem({\r\n\t\t\t\tname: name,\r\n\t\t\t\trawName: rawName,\r\n\t\t\t\tvalue: value,\r\n\t\t\t\targ: arg,\r\n\t\t\t\tisDynamicArg: isDynamicArg,\r\n\t\t\t\tmodifiers: modifiers\r\n\t\t\t}, range));\r\n\t\t\tel.plain = false;\r\n\t\t}\r\n\r\n\t\tfunction prependModifierMarker(symbol, name, dynamic) {\r\n\t\t\treturn dynamic\r\n\t\t\t\t? (\"_p(\" + name + \",\\\"\" + symbol + \"\\\")\")\r\n\t\t\t\t: symbol + name // mark the event as captured\r\n\t\t}\r\n\r\n\t\tfunction addHandler(\r\n\t\t\tel,\r\n\t\t\tname,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers,\r\n\t\t\timportant,\r\n\t\t\twarn,\r\n\t\t\trange,\r\n\t\t\tdynamic\r\n\t\t) {\r\n\t\t\tmodifiers = modifiers || emptyObject;\r\n\t\t\t// warn prevent and passive modifier\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (\r\n\t\t\t\tfalse\r\n\t\t\t) { }\r\n\r\n\t\t\t// normalize click.right and click.middle since they don't actually fire\r\n\t\t\t// this is technically browser-specific, but at least for now browsers are\r\n\t\t\t// the only target envs that have right/middle clicks.\r\n\t\t\tif (modifiers.right) {\r\n\t\t\t\tif (dynamic) {\r\n\t\t\t\t\tname = \"(\" + name + \")==='click'?'contextmenu':(\" + name + \")\";\r\n\t\t\t\t} else if (name === 'click') {\r\n\t\t\t\t\tname = 'contextmenu';\r\n\t\t\t\t\tdelete modifiers.right;\r\n\t\t\t\t}\r\n\t\t\t} else if (modifiers.middle) {\r\n\t\t\t\tif (dynamic) {\r\n\t\t\t\t\tname = \"(\" + name + \")==='click'?'mouseup':(\" + name + \")\";\r\n\t\t\t\t} else if (name === 'click') {\r\n\t\t\t\t\tname = 'mouseup';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// check capture modifier\r\n\t\t\tif (modifiers.capture) {\r\n\t\t\t\tdelete modifiers.capture;\r\n\t\t\t\tname = prependModifierMarker('!', name, dynamic);\r\n\t\t\t}\r\n\t\t\tif (modifiers.once) {\r\n\t\t\t\tdelete modifiers.once;\r\n\t\t\t\tname = prependModifierMarker('~', name, dynamic);\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (modifiers.passive) {\r\n\t\t\t\tdelete modifiers.passive;\r\n\t\t\t\tname = prependModifierMarker('&', name, dynamic);\r\n\t\t\t}\r\n\r\n\t\t\tvar events;\r\n\t\t\tif (modifiers.native) {\r\n\t\t\t\tdelete modifiers.native;\r\n\t\t\t\tevents = el.nativeEvents || (el.nativeEvents = {});\r\n\t\t\t} else {\r\n\t\t\t\tevents = el.events || (el.events = {});\r\n\t\t\t}\r\n\r\n\t\t\tvar newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);\r\n\t\t\tif (modifiers !== emptyObject) {\r\n\t\t\t\tnewHandler.modifiers = modifiers;\r\n\t\t\t}\r\n\r\n\t\t\tvar handlers = events[name];\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (Array.isArray(handlers)) {\r\n\t\t\t\timportant ? handlers.unshift(newHandler) : handlers.push(newHandler);\r\n\t\t\t} else if (handlers) {\r\n\t\t\t\tevents[name] = important ? [newHandler, handlers] : [handlers, newHandler];\r\n\t\t\t} else {\r\n\t\t\t\tevents[name] = newHandler;\r\n\t\t\t}\r\n\r\n\t\t\tel.plain = false;\r\n\t\t}\r\n\r\n\t\tfunction getRawBindingAttr(\r\n\t\t\tel,\r\n\t\t\tname\r\n\t\t) {\r\n\t\t\treturn el.rawAttrsMap[':' + name] ||\r\n\t\t\t\tel.rawAttrsMap['v-bind:' + name] ||\r\n\t\t\t\tel.rawAttrsMap[name]\r\n\t\t}\r\n\r\n\t\tfunction getBindingAttr(\r\n\t\t\tel,\r\n\t\t\tname,\r\n\t\t\tgetStatic\r\n\t\t) {\r\n\t\t\tvar dynamicValue =\r\n\t\t\t\tgetAndRemoveAttr(el, ':' + name) ||\r\n\t\t\t\tgetAndRemoveAttr(el, 'v-bind:' + name);\r\n\t\t\tif (dynamicValue != null) {\r\n\t\t\t\treturn parseFilters(dynamicValue)\r\n\t\t\t} else if (getStatic !== false) {\r\n\t\t\t\tvar staticValue = getAndRemoveAttr(el, name);\r\n\t\t\t\tif (staticValue != null) {\r\n\t\t\t\t\treturn JSON.stringify(staticValue)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// note: this only removes the attr from the Array (attrsList) so that it\r\n\t\t// doesn't get processed by processAttrs.\r\n\t\t// By default it does NOT remove it from the map (attrsMap) because the map is\r\n\t\t// needed during codegen.\r\n\t\tfunction getAndRemoveAttr(\r\n\t\t\tel,\r\n\t\t\tname,\r\n\t\t\tremoveFromMap\r\n\t\t) {\r\n\t\t\tvar val;\r\n\t\t\tif ((val = el.attrsMap[name]) != null) {\r\n\t\t\t\tvar list = el.attrsList;\r\n\t\t\t\tfor (var i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\t\tif (list[i].name === name) {\r\n\t\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (removeFromMap) {\r\n\t\t\t\tdelete el.attrsMap[name];\r\n\t\t\t}\r\n\t\t\treturn val\r\n\t\t}\r\n\r\n\t\tfunction getAndRemoveAttrByRegex(\r\n\t\t\tel,\r\n\t\t\tname\r\n\t\t) {\r\n\t\t\tvar list = el.attrsList;\r\n\t\t\tfor (var i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\tvar attr = list[i];\r\n\t\t\t\tif (name.test(attr.name)) {\r\n\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\treturn attr\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction rangeSetItem(\r\n\t\t\titem,\r\n\t\t\trange\r\n\t\t) {\r\n\t\t\tif (range) {\r\n\t\t\t\tif (range.start != null) {\r\n\t\t\t\t\titem.start = range.start;\r\n\t\t\t\t}\r\n\t\t\t\tif (range.end != null) {\r\n\t\t\t\t\titem.end = range.end;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn item\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t/**\r\n\t\t * Cross-platform code generation for component v-model\r\n\t\t */\r\n\t\tfunction genComponentModel(\r\n\t\t\tel,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers\r\n\t\t) {\r\n\t\t\tvar ref = modifiers || {};\r\n\t\t\tvar number = ref.number;\r\n\t\t\tvar trim = ref.trim;\r\n\r\n\t\t\tvar baseValueExpression = '$$v';\r\n\t\t\tvar valueExpression = baseValueExpression;\r\n\t\t\tif (trim) {\r\n\t\t\t\tvalueExpression =\r\n\t\t\t\t\t\"(typeof \" + baseValueExpression + \" === 'string'\" +\r\n\t\t\t\t\t\"? \" + baseValueExpression + \".trim()\" +\r\n\t\t\t\t\t\": \" + baseValueExpression + \")\";\r\n\t\t\t}\r\n\t\t\tif (number) {\r\n\t\t\t\tvalueExpression = \"_n(\" + valueExpression + \")\";\r\n\t\t\t}\r\n\t\t\tvar assignment = genAssignmentCode(value, valueExpression);\r\n\r\n\t\t\tel.model = {\r\n\t\t\t\tvalue: (\"(\" + value + \")\"),\r\n\t\t\t\texpression: JSON.stringify(value),\r\n\t\t\t\tcallback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Cross-platform codegen helper for generating v-model value assignment code.\r\n\t\t */\r\n\t\tfunction genAssignmentCode(\r\n\t\t\tvalue,\r\n\t\t\tassignment\r\n\t\t) {\r\n\t\t\tvar res = parseModel(value);\r\n\t\t\tif (res.key === null) {\r\n\t\t\t\treturn (value + \"=\" + assignment)\r\n\t\t\t} else {\r\n\t\t\t\treturn (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Parse a v-model expression into a base path and a final key segment.\r\n\t\t * Handles both dot-path and possible square brackets.\r\n\t\t *\r\n\t\t * Possible cases:\r\n\t\t *\r\n\t\t * - test\r\n\t\t * - test[key]\r\n\t\t * - test[test1[key]]\r\n\t\t * - test[\"a\"][key]\r\n\t\t * - xxx.test[a[a].test1[key]]\r\n\t\t * - test.xxx.a[\"asa\"][test1[key]]\r\n\t\t *\r\n\t\t */\r\n\r\n\t\tvar len, str, chr, index$1, expressionPos, expressionEndPos;\r\n\r\n\r\n\r\n\t\tfunction parseModel(val) {\r\n\t\t\t// Fix https://github.com/vuejs/vue/pull/7730\r\n\t\t\t// allow v-model=\"obj.val \" (trailing whitespace)\r\n\t\t\tval = val.trim();\r\n\t\t\tlen = val.length;\r\n\r\n\t\t\tif (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\r\n\t\t\t\tindex$1 = val.lastIndexOf('.');\r\n\t\t\t\tif (index$1 > -1) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\texp: val.slice(0, index$1),\r\n\t\t\t\t\t\tkey: '\"' + val.slice(index$1 + 1) + '\"'\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\texp: val,\r\n\t\t\t\t\t\tkey: null\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tstr = val;\r\n\t\t\tindex$1 = expressionPos = expressionEndPos = 0;\r\n\r\n\t\t\twhile (!eof()) {\r\n\t\t\t\tchr = next();\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (isStringStart(chr)) {\r\n\t\t\t\t\tparseString(chr);\r\n\t\t\t\t} else if (chr === 0x5B) {\r\n\t\t\t\t\tparseBracket(chr);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\texp: val.slice(0, expressionPos),\r\n\t\t\t\tkey: val.slice(expressionPos + 1, expressionEndPos)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction next() {\r\n\t\t\treturn str.charCodeAt(++index$1)\r\n\t\t}\r\n\r\n\t\tfunction eof() {\r\n\t\t\treturn index$1 >= len\r\n\t\t}\r\n\r\n\t\tfunction isStringStart(chr) {\r\n\t\t\treturn chr === 0x22 || chr === 0x27\r\n\t\t}\r\n\r\n\t\tfunction parseBracket(chr) {\r\n\t\t\tvar inBracket = 1;\r\n\t\t\texpressionPos = index$1;\r\n\t\t\twhile (!eof()) {\r\n\t\t\t\tchr = next();\r\n\t\t\t\tif (isStringStart(chr)) {\r\n\t\t\t\t\tparseString(chr);\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\t\t\t\tif (chr === 0x5B) { inBracket++; }\r\n\t\t\t\tif (chr === 0x5D) { inBracket--; }\r\n\t\t\t\tif (inBracket === 0) {\r\n\t\t\t\t\texpressionEndPos = index$1;\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction parseString(chr) {\r\n\t\t\tvar stringQuote = chr;\r\n\t\t\twhile (!eof()) {\r\n\t\t\t\tchr = next();\r\n\t\t\t\tif (chr === stringQuote) {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar warn$1;\r\n\r\n\t\t// in some cases, the event used has to be determined at runtime\r\n\t\t// so we used some reserved tokens during compile.\r\n\t\tvar RANGE_TOKEN = '__r';\r\n\t\tvar CHECKBOX_RADIO_TOKEN = '__c';\r\n\r\n\t\tfunction model(\r\n\t\t\tel,\r\n\t\t\tdir,\r\n\t\t\t_warn\r\n\t\t) {\r\n\t\t\twarn$1 = _warn;\r\n\t\t\tvar value = dir.value;\r\n\t\t\tvar modifiers = dir.modifiers;\r\n\t\t\tvar tag = el.tag;\r\n\t\t\tvar type = el.attrsMap.type;\r\n\r\n\t\t\tif (false) { }\r\n\r\n\t\t\tif (el.component) {\r\n\t\t\t\tgenComponentModel(el, value, modifiers);\r\n\t\t\t\t// component v-model doesn't need extra runtime\r\n\t\t\t\treturn false\r\n\t\t\t} else if (tag === 'select') {\r\n\t\t\t\tgenSelect(el, value, modifiers);\r\n\t\t\t} else if (tag === 'input' && type === 'checkbox') {\r\n\t\t\t\tgenCheckboxModel(el, value, modifiers);\r\n\t\t\t} else if (tag === 'input' && type === 'radio') {\r\n\t\t\t\tgenRadioModel(el, value, modifiers);\r\n\t\t\t} else if (tag === 'input' || tag === 'textarea') {\r\n\t\t\t\tgenDefaultModel(el, value, modifiers);\r\n\t\t\t} else if (!config.isReservedTag(tag)) {\r\n\t\t\t\tgenComponentModel(el, value, modifiers);\r\n\t\t\t\t// component v-model doesn't need extra runtime\r\n\t\t\t\treturn false\r\n\t\t\t} else if (false) { }\r\n\r\n\t\t\t// ensure runtime directive metadata\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\tfunction genCheckboxModel(\r\n\t\t\tel,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers\r\n\t\t) {\r\n\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\tvar valueBinding = getBindingAttr(el, 'value') || 'null';\r\n\t\t\tvar trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\r\n\t\t\tvar falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\r\n\t\t\taddProp(el, 'checked',\r\n\t\t\t\t\"Array.isArray(\" + value + \")\" +\r\n\t\t\t\t\"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\r\n\t\t\t\t\ttrueValueBinding === 'true'\r\n\t\t\t\t\t\t? (\":(\" + value + \")\")\r\n\t\t\t\t\t\t: (\":_q(\" + value + \",\" + trueValueBinding + \")\")\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t\taddHandler(el, 'change',\r\n\t\t\t\t\"var $$a=\" + value + \",\" +\r\n\t\t\t\t'$$el=$event.target,' +\r\n\t\t\t\t\"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\r\n\t\t\t\t'if(Array.isArray($$a)){' +\r\n\t\t\t\t\"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\r\n\t\t\t\t'$$i=_i($$a,$$v);' +\r\n\t\t\t\t\"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\r\n\t\t\t\t\"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\r\n\t\t\t\t\"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\r\n\t\t\t\tnull, true\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tfunction genRadioModel(\r\n\t\t\tel,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers\r\n\t\t) {\r\n\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\tvar valueBinding = getBindingAttr(el, 'value') || 'null';\r\n\t\t\tvalueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\r\n\t\t\taddProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\r\n\t\t\taddHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\r\n\t\t}\r\n\r\n\t\tfunction genSelect(\r\n\t\t\tel,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers\r\n\t\t) {\r\n\t\t\tvar number = modifiers && modifiers.number;\r\n\t\t\tvar selectedVal = \"Array.prototype.filter\" +\r\n\t\t\t\t\".call($event.target.options,function(o){return o.selected})\" +\r\n\t\t\t\t\".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\r\n\t\t\t\t\"return \" + (number ? '_n(val)' : 'val') + \"})\";\r\n\r\n\t\t\tvar assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\r\n\t\t\tvar code = \"var $$selectedVal = \" + selectedVal + \";\";\r\n\t\t\tcode = code + \" \" + (genAssignmentCode(value, assignment));\r\n\t\t\taddHandler(el, 'change', code, null, true);\r\n\t\t}\r\n\r\n\t\tfunction genDefaultModel(\r\n\t\t\tel,\r\n\t\t\tvalue,\r\n\t\t\tmodifiers\r\n\t\t) {\r\n\t\t\tvar type = el.attrsMap.type;\r\n\r\n\t\t\t// warn if v-bind:value conflicts with v-model\r\n\t\t\t// except for inputs with v-bind:type\r\n\t\t\tif (false) { var binding, typeBinding, value$1; }\r\n\r\n\t\t\tvar ref = modifiers || {};\r\n\t\t\tvar lazy = ref.lazy;\r\n\t\t\tvar number = ref.number;\r\n\t\t\tvar trim = ref.trim;\r\n\t\t\tvar needCompositionGuard = !lazy && type !== 'range';\r\n\t\t\tvar event = lazy\r\n\t\t\t\t? 'change'\r\n\t\t\t\t: type === 'range'\r\n\t\t\t\t\t? RANGE_TOKEN\r\n\t\t\t\t\t: 'input';\r\n\r\n\t\t\tvar valueExpression = '$event.target.value';\r\n\t\t\tif (trim) {\r\n\t\t\t\tvalueExpression = \"$event.target.value.trim()\";\r\n\t\t\t}\r\n\t\t\tif (number) {\r\n\t\t\t\tvalueExpression = \"_n(\" + valueExpression + \")\";\r\n\t\t\t}\r\n\r\n\t\t\tvar code = genAssignmentCode(value, valueExpression);\r\n\t\t\tif (needCompositionGuard) {\r\n\t\t\t\tcode = \"if($event.target.composing)return;\" + code;\r\n\t\t\t}\r\n\r\n\t\t\taddProp(el, 'value', (\"(\" + value + \")\"));\r\n\t\t\taddHandler(el, event, code, null, true);\r\n\t\t\tif (trim || number) {\r\n\t\t\t\taddHandler(el, 'blur', '$forceUpdate()');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t// normalize v-model event tokens that can only be determined at runtime.\r\n\t\t// it's important to place the event as the first in the array because\r\n\t\t// the whole point is ensuring the v-model callback gets called before\r\n\t\t// user-attached handlers.\r\n\t\tfunction normalizeEvents(on) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (isDef(on[RANGE_TOKEN])) {\r\n\t\t\t\t// IE input[type=range] only supports `change` event\r\n\t\t\t\tvar event = isIE ? 'change' : 'input';\r\n\t\t\t\ton[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\r\n\t\t\t\tdelete on[RANGE_TOKEN];\r\n\t\t\t}\r\n\t\t\t// This was originally intended to fix #4521 but no longer necessary\r\n\t\t\t// after 2.5. Keeping it for backwards compat with generated code from < 2.4\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (isDef(on[CHECKBOX_RADIO_TOKEN])) {\r\n\t\t\t\ton.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\r\n\t\t\t\tdelete on[CHECKBOX_RADIO_TOKEN];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar target$1;\r\n\r\n\t\tfunction createOnceHandler$1(event, handler, capture) {\r\n\t\t\tvar _target = target$1; // save current target element in closure\r\n\t\t\treturn function onceHandler() {\r\n\t\t\t\tvar res = handler.apply(null, arguments);\r\n\t\t\t\tif (res !== null) {\r\n\t\t\t\t\tremove$2(event, onceHandler, capture, _target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\r\n\t\t// implementation and does not fire microtasks in between event propagation, so\r\n\t\t// safe to exclude.\r\n\t\tvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\r\n\r\n\t\tfunction add$1(\r\n\t\t\tname,\r\n\t\t\thandler,\r\n\t\t\tcapture,\r\n\t\t\tpassive\r\n\t\t) {\r\n\t\t\t// async edge case #6566: inner click event triggers patch, event handler\r\n\t\t\t// attached to outer element during patch, and triggered again. This\r\n\t\t\t// happens because browsers fire microtask ticks between event propagation.\r\n\t\t\t// the solution is simple: we save the timestamp when a handler is attached,\r\n\t\t\t// and the handler would only fire if the event passed to it was fired\r\n\t\t\t// AFTER it was attached.\r\n\t\t\tif (useMicrotaskFix) {\r\n\t\t\t\tvar attachedTimestamp = currentFlushTimestamp;\r\n\t\t\t\tvar original = handler;\r\n\t\t\t\thandler = original._wrapper = function (e) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t// no bubbling, should always fire.\r\n\t\t\t\t\t\t// this is just a safety net in case event.timeStamp is unreliable in\r\n\t\t\t\t\t\t// certain weird environments...\r\n\t\t\t\t\t\te.target === e.currentTarget ||\r\n\t\t\t\t\t\t// event is fired after handler attachment\r\n\t\t\t\t\t\te.timeStamp >= attachedTimestamp ||\r\n\t\t\t\t\t\t// bail for environments that have buggy event.timeStamp implementations\r\n\t\t\t\t\t\t// #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\r\n\t\t\t\t\t\t// #9681 QtWebEngine event.timeStamp is negative value\r\n\t\t\t\t\t\te.timeStamp <= 0 ||\r\n\t\t\t\t\t\t// #9448 bail if event is fired in another document in a multi-page\r\n\t\t\t\t\t\t// electron/nw.js app, since event.timeStamp will be using a different\r\n\t\t\t\t\t\t// starting reference\r\n\t\t\t\t\t\te.target.ownerDocument !== document\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn original.apply(this, arguments)\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\ttarget$1.addEventListener(\r\n\t\t\t\tname,\r\n\t\t\t\thandler,\r\n\t\t\t\tsupportsPassive\r\n\t\t\t\t\t? { capture: capture, passive: passive }\r\n\t\t\t\t\t: capture\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tfunction remove$2(\r\n\t\t\tname,\r\n\t\t\thandler,\r\n\t\t\tcapture,\r\n\t\t\t_target\r\n\t\t) {\r\n\t\t\t(_target || target$1).removeEventListener(\r\n\t\t\t\tname,\r\n\t\t\t\thandler._wrapper || handler,\r\n\t\t\t\tcapture\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tfunction updateDOMListeners(oldVnode, vnode) {\r\n\t\t\tif (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar on = vnode.data.on || {};\r\n\t\t\tvar oldOn = oldVnode.data.on || {};\r\n\t\t\ttarget$1 = vnode.elm;\r\n\t\t\tnormalizeEvents(on);\r\n\t\t\tupdateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\r\n\t\t\ttarget$1 = undefined;\r\n\t\t}\r\n\r\n\t\tvar events = {\r\n\t\t\tcreate: updateDOMListeners,\r\n\t\t\tupdate: updateDOMListeners\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar svgContainer;\r\n\r\n\t\tfunction updateDOMProps(oldVnode, vnode) {\r\n\t\t\tif (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar key, cur;\r\n\t\t\tvar elm = vnode.elm;\r\n\t\t\tvar oldProps = oldVnode.data.domProps || {};\r\n\t\t\tvar props = vnode.data.domProps || {};\r\n\t\t\t// clone observed objects, as the user probably wants to mutate it\r\n\t\t\tif (isDef(props.__ob__)) {\r\n\t\t\t\tprops = vnode.data.domProps = extend({}, props);\r\n\t\t\t}\r\n\r\n\t\t\tfor (key in oldProps) {\r\n\t\t\t\tif (!(key in props)) {\r\n\t\t\t\t\telm[key] = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (key in props) {\r\n\t\t\t\tcur = props[key];\r\n\t\t\t\t// ignore children if the node has textContent or innerHTML,\r\n\t\t\t\t// as these will throw away existing DOM nodes and cause removal errors\r\n\t\t\t\t// on subsequent patches (#3360)\r\n\t\t\t\tif (key === 'textContent' || key === 'innerHTML') {\r\n\t\t\t\t\tif (vnode.children) { vnode.children.length = 0; }\r\n\t\t\t\t\tif (cur === oldProps[key]) { continue }\r\n\t\t\t\t\t// #6601 work around Chrome version <= 55 bug where single textNode\r\n\t\t\t\t\t// replaced by innerHTML/textContent retains its parentNode property\r\n\t\t\t\t\tif (elm.childNodes.length === 1) {\r\n\t\t\t\t\t\telm.removeChild(elm.childNodes[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (key === 'value' && elm.tagName !== 'PROGRESS') {\r\n\t\t\t\t\t// store value as _value as well since\r\n\t\t\t\t\t// non-string values will be stringified\r\n\t\t\t\t\telm._value = cur;\r\n\t\t\t\t\t// avoid resetting cursor position when value is the same\r\n\t\t\t\t\tvar strCur = isUndef(cur) ? '' : String(cur);\r\n\t\t\t\t\tif (shouldUpdateValue(elm, strCur)) {\r\n\t\t\t\t\t\telm.value = strCur;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\r\n\t\t\t\t\t// IE doesn't support innerHTML for SVG elements\r\n\t\t\t\t\tsvgContainer = svgContainer || document.createElement('div');\r\n\t\t\t\t\tsvgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\r\n\t\t\t\t\tvar svg = svgContainer.firstChild;\r\n\t\t\t\t\twhile (elm.firstChild) {\r\n\t\t\t\t\t\telm.removeChild(elm.firstChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t\twhile (svg.firstChild) {\r\n\t\t\t\t\t\telm.appendChild(svg.firstChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (\r\n\t\t\t\t\t// skip the update if old and new VDOM state is the same.\r\n\t\t\t\t\t// `value` is handled separately because the DOM value may be temporarily\r\n\t\t\t\t\t// out of sync with VDOM state due to focus, composition and modifiers.\r\n\t\t\t\t\t// This  #4521 by skipping the unnecessary `checked` update.\r\n\t\t\t\t\tcur !== oldProps[key]\r\n\t\t\t\t) {\r\n\t\t\t\t\t// some property updates can throw\r\n\t\t\t\t\t// e.g. `value` on <progress> w/ non-finite value\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\telm[key] = cur;\r\n\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// check platforms/web/util/attrs.js acceptValue\r\n\r\n\r\n\t\tfunction shouldUpdateValue(elm, checkVal) {\r\n\t\t\treturn (!elm.composing && (\r\n\t\t\t\telm.tagName === 'OPTION' ||\r\n\t\t\t\tisNotInFocusAndDirty(elm, checkVal) ||\r\n\t\t\t\tisDirtyWithModifiers(elm, checkVal)\r\n\t\t\t))\r\n\t\t}\r\n\r\n\t\tfunction isNotInFocusAndDirty(elm, checkVal) {\r\n\t\t\t// return true when textbox (.number and .trim) loses focus and its value is\r\n\t\t\t// not equal to the updated value\r\n\t\t\tvar notInFocus = true;\r\n\t\t\t// #6157\r\n\t\t\t// work around IE bug when accessing document.activeElement in an iframe\r\n\t\t\ttry { notInFocus = document.activeElement !== elm; } catch (e) { }\r\n\t\t\treturn notInFocus && elm.value !== checkVal\r\n\t\t}\r\n\r\n\t\tfunction isDirtyWithModifiers(elm, newVal) {\r\n\t\t\tvar value = elm.value;\r\n\t\t\tvar modifiers = elm._vModifiers; // injected by v-model runtime\r\n\t\t\tif (isDef(modifiers)) {\r\n\t\t\t\tif (modifiers.number) {\r\n\t\t\t\t\treturn toNumber(value) !== toNumber(newVal)\r\n\t\t\t\t}\r\n\t\t\t\tif (modifiers.trim) {\r\n\t\t\t\t\treturn value.trim() !== newVal.trim()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn value !== newVal\r\n\t\t}\r\n\r\n\t\tvar domProps = {\r\n\t\t\tcreate: updateDOMProps,\r\n\t\t\tupdate: updateDOMProps\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar parseStyleText = cached(function (cssText) {\r\n\t\t\tvar res = {};\r\n\t\t\tvar listDelimiter = /;(?![^(]*\\))/g;\r\n\t\t\tvar propertyDelimiter = /:(.+)/;\r\n\t\t\tcssText.split(listDelimiter).forEach(function (item) {\r\n\t\t\t\tif (item) {\r\n\t\t\t\t\tvar tmp = item.split(propertyDelimiter);\r\n\t\t\t\t\ttmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn res\r\n\t\t});\r\n\r\n\t\t// merge static and dynamic style data on the same vnode\r\n\t\tfunction normalizeStyleData(data) {\r\n\t\t\tvar style = normalizeStyleBinding(data.style);\r\n\t\t\t// static style is pre-processed into an object during compilation\r\n\t\t\t// and is always a fresh object, so it's safe to merge into it\r\n\t\t\treturn data.staticStyle\r\n\t\t\t\t? extend(data.staticStyle, style)\r\n\t\t\t\t: style\r\n\t\t}\r\n\r\n\t\t// normalize possible array / string values into Object\r\n\t\tfunction normalizeStyleBinding(bindingStyle) {\r\n\t\t\tif (Array.isArray(bindingStyle)) {\r\n\t\t\t\treturn toObject(bindingStyle)\r\n\t\t\t}\r\n\t\t\tif (typeof bindingStyle === 'string') {\r\n\t\t\t\treturn parseStyleText(bindingStyle)\r\n\t\t\t}\r\n\t\t\treturn bindingStyle\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * parent component style should be after child's\r\n\t\t * so that parent component's style could override it\r\n\t\t */\r\n\t\tfunction getStyle(vnode, checkChild) {\r\n\t\t\tvar res = {};\r\n\t\t\tvar styleData;\r\n\r\n\t\t\tif (checkChild) {\r\n\t\t\t\tvar childNode = vnode;\r\n\t\t\t\twhile (childNode.componentInstance) {\r\n\t\t\t\t\tchildNode = childNode.componentInstance._vnode;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tchildNode && childNode.data &&\r\n\t\t\t\t\t\t(styleData = normalizeStyleData(childNode.data))\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\textend(res, styleData);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ((styleData = normalizeStyleData(vnode.data))) {\r\n\t\t\t\textend(res, styleData);\r\n\t\t\t}\r\n\r\n\t\t\tvar parentNode = vnode;\r\n\t\t\twhile ((parentNode = parentNode.parent)) {\r\n\t\t\t\tif (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\r\n\t\t\t\t\textend(res, styleData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar cssVarRE = /^--/;\r\n\t\tvar importantRE = /\\s*!important$/;\r\n\t\tvar setProp = function (el, name, val) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (cssVarRE.test(name)) {\r\n\t\t\t\tel.style.setProperty(name, val);\r\n\t\t\t} else if (importantRE.test(val)) {\r\n\t\t\t\tel.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\r\n\t\t\t} else {\r\n\t\t\t\tvar normalizedName = normalize(name);\r\n\t\t\t\tif (Array.isArray(val)) {\r\n\t\t\t\t\t// Support values array created by autoprefixer, e.g.\r\n\t\t\t\t\t// {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\r\n\t\t\t\t\t// Set them one by one, and the browser will only set those it can recognize\r\n\t\t\t\t\tfor (var i = 0, len = val.length; i < len; i++) {\r\n\t\t\t\t\t\tel.style[normalizedName] = val[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.style[normalizedName] = val;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar vendorNames = ['Webkit', 'Moz', 'ms'];\r\n\r\n\t\tvar emptyStyle;\r\n\t\tvar normalize = cached(function (prop) {\r\n\t\t\temptyStyle = emptyStyle || document.createElement('div').style;\r\n\t\t\tprop = camelize(prop);\r\n\t\t\tif (prop !== 'filter' && (prop in emptyStyle)) {\r\n\t\t\t\treturn prop\r\n\t\t\t}\r\n\t\t\tvar capName = prop.charAt(0).toUpperCase() + prop.slice(1);\r\n\t\t\tfor (var i = 0; i < vendorNames.length; i++) {\r\n\t\t\t\tvar name = vendorNames[i] + capName;\r\n\t\t\t\tif (name in emptyStyle) {\r\n\t\t\t\t\treturn name\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tfunction updateStyle(oldVnode, vnode) {\r\n\t\t\tvar data = vnode.data;\r\n\t\t\tvar oldData = oldVnode.data;\r\n\r\n\t\t\tif (isUndef(data.staticStyle) && isUndef(data.style) &&\r\n\t\t\t\tisUndef(oldData.staticStyle) && isUndef(oldData.style)\r\n\t\t\t) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar cur, name;\r\n\t\t\tvar el = vnode.elm;\r\n\t\t\tvar oldStaticStyle = oldData.staticStyle;\r\n\t\t\tvar oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\r\n\r\n\t\t\t// if static style exists, stylebinding already merged into it when doing normalizeStyleData\r\n\t\t\tvar oldStyle = oldStaticStyle || oldStyleBinding;\r\n\r\n\t\t\tvar style = normalizeStyleBinding(vnode.data.style) || {};\r\n\r\n\t\t\t// store normalized style under a different key for next diff\r\n\t\t\t// make sure to clone it if it's reactive, since the user likely wants\r\n\t\t\t// to mutate it.\r\n\t\t\tvnode.data.normalizedStyle = isDef(style.__ob__)\r\n\t\t\t\t? extend({}, style)\r\n\t\t\t\t: style;\r\n\r\n\t\t\tvar newStyle = getStyle(vnode, true);\r\n\r\n\t\t\tfor (name in oldStyle) {\r\n\t\t\t\tif (isUndef(newStyle[name])) {\r\n\t\t\t\t\tsetProp(el, name, '');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (name in newStyle) {\r\n\t\t\t\tcur = newStyle[name];\r\n\t\t\t\tif (cur !== oldStyle[name]) {\r\n\t\t\t\t\t// ie9 setting to null has no effect, must use empty string\r\n\t\t\t\t\tsetProp(el, name, cur == null ? '' : cur);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar style = {\r\n\t\t\tcreate: updateStyle,\r\n\t\t\tupdate: updateStyle\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar whitespaceRE = /\\s+/;\r\n\r\n\t\t/**\r\n\t\t * Add class with compatibility for SVG since classList is not supported on\r\n\t\t * SVG elements in IE\r\n\t\t */\r\n\t\tfunction addClass(el, cls) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!cls || !(cls = cls.trim())) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (el.classList) {\r\n\t\t\t\tif (cls.indexOf(' ') > -1) {\r\n\t\t\t\t\tcls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.classList.add(cls);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar cur = \" \" + (el.getAttribute('class') || '') + \" \";\r\n\t\t\t\tif (cur.indexOf(' ' + cls + ' ') < 0) {\r\n\t\t\t\t\tel.setAttribute('class', (cur + cls).trim());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Remove class with compatibility for SVG since classList is not supported on\r\n\t\t * SVG elements in IE\r\n\t\t */\r\n\t\tfunction removeClass(el, cls) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!cls || !(cls = cls.trim())) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (el.classList) {\r\n\t\t\t\tif (cls.indexOf(' ') > -1) {\r\n\t\t\t\t\tcls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.classList.remove(cls);\r\n\t\t\t\t}\r\n\t\t\t\tif (!el.classList.length) {\r\n\t\t\t\t\tel.removeAttribute('class');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar cur = \" \" + (el.getAttribute('class') || '') + \" \";\r\n\t\t\t\tvar tar = ' ' + cls + ' ';\r\n\t\t\t\twhile (cur.indexOf(tar) >= 0) {\r\n\t\t\t\t\tcur = cur.replace(tar, ' ');\r\n\t\t\t\t}\r\n\t\t\t\tcur = cur.trim();\r\n\t\t\t\tif (cur) {\r\n\t\t\t\t\tel.setAttribute('class', cur);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.removeAttribute('class');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction resolveTransition(def$$1) {\r\n\t\t\tif (!def$$1) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (typeof def$$1 === 'object') {\r\n\t\t\t\tvar res = {};\r\n\t\t\t\tif (def$$1.css !== false) {\r\n\t\t\t\t\textend(res, autoCssTransition(def$$1.name || 'v'));\r\n\t\t\t\t}\r\n\t\t\t\textend(res, def$$1);\r\n\t\t\t\treturn res\r\n\t\t\t} else if (typeof def$$1 === 'string') {\r\n\t\t\t\treturn autoCssTransition(def$$1)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar autoCssTransition = cached(function (name) {\r\n\t\t\treturn {\r\n\t\t\t\tenterClass: (name + \"-enter\"),\r\n\t\t\t\tenterToClass: (name + \"-enter-to\"),\r\n\t\t\t\tenterActiveClass: (name + \"-enter-active\"),\r\n\t\t\t\tleaveClass: (name + \"-leave\"),\r\n\t\t\t\tleaveToClass: (name + \"-leave-to\"),\r\n\t\t\t\tleaveActiveClass: (name + \"-leave-active\")\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar hasTransition = inBrowser && !isIE9;\r\n\t\tvar TRANSITION = 'transition';\r\n\t\tvar ANIMATION = 'animation';\r\n\r\n\t\t// Transition property/event sniffing\r\n\t\tvar transitionProp = 'transition';\r\n\t\tvar transitionEndEvent = 'transitionend';\r\n\t\tvar animationProp = 'animation';\r\n\t\tvar animationEndEvent = 'animationend';\r\n\t\tif (hasTransition) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (window.ontransitionend === undefined &&\r\n\t\t\t\twindow.onwebkittransitionend !== undefined\r\n\t\t\t) {\r\n\t\t\t\ttransitionProp = 'WebkitTransition';\r\n\t\t\t\ttransitionEndEvent = 'webkitTransitionEnd';\r\n\t\t\t}\r\n\t\t\tif (window.onanimationend === undefined &&\r\n\t\t\t\twindow.onwebkitanimationend !== undefined\r\n\t\t\t) {\r\n\t\t\t\tanimationProp = 'WebkitAnimation';\r\n\t\t\t\tanimationEndEvent = 'webkitAnimationEnd';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// binding to window is necessary to make hot reload work in IE in strict mode\r\n\t\tvar raf = inBrowser\r\n\t\t\t? window.requestAnimationFrame\r\n\t\t\t\t? window.requestAnimationFrame.bind(window)\r\n\t\t\t\t: setTimeout\r\n\t\t\t: /* istanbul ignore next */ function (fn) { return fn(); };\r\n\r\n\t\tfunction nextFrame(fn) {\r\n\t\t\traf(function () {\r\n\t\t\t\traf(fn);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction addTransitionClass(el, cls) {\r\n\t\t\tvar transitionClasses = el._transitionClasses || (el._transitionClasses = []);\r\n\t\t\tif (transitionClasses.indexOf(cls) < 0) {\r\n\t\t\t\ttransitionClasses.push(cls);\r\n\t\t\t\taddClass(el, cls);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction removeTransitionClass(el, cls) {\r\n\t\t\tif (el._transitionClasses) {\r\n\t\t\t\tremove(el._transitionClasses, cls);\r\n\t\t\t}\r\n\t\t\tremoveClass(el, cls);\r\n\t\t}\r\n\r\n\t\tfunction whenTransitionEnds(\r\n\t\t\tel,\r\n\t\t\texpectedType,\r\n\t\t\tcb\r\n\t\t) {\r\n\t\t\tvar ref = getTransitionInfo(el, expectedType);\r\n\t\t\tvar type = ref.type;\r\n\t\t\tvar timeout = ref.timeout;\r\n\t\t\tvar propCount = ref.propCount;\r\n\t\t\tif (!type) { return cb() }\r\n\t\t\tvar event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\r\n\t\t\tvar ended = 0;\r\n\t\t\tvar end = function () {\r\n\t\t\t\tel.removeEventListener(event, onEnd);\r\n\t\t\t\tcb();\r\n\t\t\t};\r\n\t\t\tvar onEnd = function (e) {\r\n\t\t\t\tif (e.target === el) {\r\n\t\t\t\t\tif (++ended >= propCount) {\r\n\t\t\t\t\t\tend();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (ended < propCount) {\r\n\t\t\t\t\tend();\r\n\t\t\t\t}\r\n\t\t\t}, timeout + 1);\r\n\t\t\tel.addEventListener(event, onEnd);\r\n\t\t}\r\n\r\n\t\tvar transformRE = /\\b(transform|all)(,|$)/;\r\n\r\n\t\tfunction getTransitionInfo(el, expectedType) {\r\n\t\t\tvar styles = window.getComputedStyle(el);\r\n\t\t\t// JSDOM may return undefined for transition properties\r\n\t\t\tvar transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\r\n\t\t\tvar transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\r\n\t\t\tvar transitionTimeout = getTimeout(transitionDelays, transitionDurations);\r\n\t\t\tvar animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\r\n\t\t\tvar animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\r\n\t\t\tvar animationTimeout = getTimeout(animationDelays, animationDurations);\r\n\r\n\t\t\tvar type;\r\n\t\t\tvar timeout = 0;\r\n\t\t\tvar propCount = 0;\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (expectedType === TRANSITION) {\r\n\t\t\t\tif (transitionTimeout > 0) {\r\n\t\t\t\t\ttype = TRANSITION;\r\n\t\t\t\t\ttimeout = transitionTimeout;\r\n\t\t\t\t\tpropCount = transitionDurations.length;\r\n\t\t\t\t}\r\n\t\t\t} else if (expectedType === ANIMATION) {\r\n\t\t\t\tif (animationTimeout > 0) {\r\n\t\t\t\t\ttype = ANIMATION;\r\n\t\t\t\t\ttimeout = animationTimeout;\r\n\t\t\t\t\tpropCount = animationDurations.length;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttimeout = Math.max(transitionTimeout, animationTimeout);\r\n\t\t\t\ttype = timeout > 0\r\n\t\t\t\t\t? transitionTimeout > animationTimeout\r\n\t\t\t\t\t\t? TRANSITION\r\n\t\t\t\t\t\t: ANIMATION\r\n\t\t\t\t\t: null;\r\n\t\t\t\tpropCount = type\r\n\t\t\t\t\t? type === TRANSITION\r\n\t\t\t\t\t\t? transitionDurations.length\r\n\t\t\t\t\t\t: animationDurations.length\r\n\t\t\t\t\t: 0;\r\n\t\t\t}\r\n\t\t\tvar hasTransform =\r\n\t\t\t\ttype === TRANSITION &&\r\n\t\t\t\ttransformRE.test(styles[transitionProp + 'Property']);\r\n\t\t\treturn {\r\n\t\t\t\ttype: type,\r\n\t\t\t\ttimeout: timeout,\r\n\t\t\t\tpropCount: propCount,\r\n\t\t\t\thasTransform: hasTransform\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getTimeout(delays, durations) {\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\twhile (delays.length < durations.length) {\r\n\t\t\t\tdelays = delays.concat(delays);\r\n\t\t\t}\r\n\r\n\t\t\treturn Math.max.apply(null, durations.map(function (d, i) {\r\n\t\t\t\treturn toMs(d) + toMs(delays[i])\r\n\t\t\t}))\r\n\t\t}\r\n\r\n\t\t// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\r\n\t\t// in a locale-dependent way, using a comma instead of a dot.\r\n\t\t// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\r\n\t\t// as a floor function) causing unexpected behaviors\r\n\t\tfunction toMs(s) {\r\n\t\t\treturn Number(s.slice(0, -1).replace(',', '.')) * 1000\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction enter(vnode, toggleDisplay) {\r\n\t\t\tvar el = vnode.elm;\r\n\r\n\t\t\t// call leave callback now\r\n\t\t\tif (isDef(el._leaveCb)) {\r\n\t\t\t\tel._leaveCb.cancelled = true;\r\n\t\t\t\tel._leaveCb();\r\n\t\t\t}\r\n\r\n\t\t\tvar data = resolveTransition(vnode.data.transition);\r\n\t\t\tif (isUndef(data)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (isDef(el._enterCb) || el.nodeType !== 1) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar css = data.css;\r\n\t\t\tvar type = data.type;\r\n\t\t\tvar enterClass = data.enterClass;\r\n\t\t\tvar enterToClass = data.enterToClass;\r\n\t\t\tvar enterActiveClass = data.enterActiveClass;\r\n\t\t\tvar appearClass = data.appearClass;\r\n\t\t\tvar appearToClass = data.appearToClass;\r\n\t\t\tvar appearActiveClass = data.appearActiveClass;\r\n\t\t\tvar beforeEnter = data.beforeEnter;\r\n\t\t\tvar enter = data.enter;\r\n\t\t\tvar afterEnter = data.afterEnter;\r\n\t\t\tvar enterCancelled = data.enterCancelled;\r\n\t\t\tvar beforeAppear = data.beforeAppear;\r\n\t\t\tvar appear = data.appear;\r\n\t\t\tvar afterAppear = data.afterAppear;\r\n\t\t\tvar appearCancelled = data.appearCancelled;\r\n\t\t\tvar duration = data.duration;\r\n\r\n\t\t\t// activeInstance will always be the <transition> component managing this\r\n\t\t\t// transition. One edge case to check is when the <transition> is placed\r\n\t\t\t// as the root node of a child component. In that case we need to check\r\n\t\t\t// <transition>'s parent for appear check.\r\n\t\t\tvar context = activeInstance;\r\n\t\t\tvar transitionNode = activeInstance.$vnode;\r\n\t\t\twhile (transitionNode && transitionNode.parent) {\r\n\t\t\t\tcontext = transitionNode.context;\r\n\t\t\t\ttransitionNode = transitionNode.parent;\r\n\t\t\t}\r\n\r\n\t\t\tvar isAppear = !context._isMounted || !vnode.isRootInsert;\r\n\r\n\t\t\tif (isAppear && !appear && appear !== '') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar startClass = isAppear && appearClass\r\n\t\t\t\t? appearClass\r\n\t\t\t\t: enterClass;\r\n\t\t\tvar activeClass = isAppear && appearActiveClass\r\n\t\t\t\t? appearActiveClass\r\n\t\t\t\t: enterActiveClass;\r\n\t\t\tvar toClass = isAppear && appearToClass\r\n\t\t\t\t? appearToClass\r\n\t\t\t\t: enterToClass;\r\n\r\n\t\t\tvar beforeEnterHook = isAppear\r\n\t\t\t\t? (beforeAppear || beforeEnter)\r\n\t\t\t\t: beforeEnter;\r\n\t\t\tvar enterHook = isAppear\r\n\t\t\t\t? (typeof appear === 'function' ? appear : enter)\r\n\t\t\t\t: enter;\r\n\t\t\tvar afterEnterHook = isAppear\r\n\t\t\t\t? (afterAppear || afterEnter)\r\n\t\t\t\t: afterEnter;\r\n\t\t\tvar enterCancelledHook = isAppear\r\n\t\t\t\t? (appearCancelled || enterCancelled)\r\n\t\t\t\t: enterCancelled;\r\n\r\n\t\t\tvar explicitEnterDuration = toNumber(\r\n\t\t\t\tisObject(duration)\r\n\t\t\t\t\t? duration.enter\r\n\t\t\t\t\t: duration\r\n\t\t\t);\r\n\r\n\t\t\tif (false) { }\r\n\r\n\t\t\tvar expectsCSS = css !== false && !isIE9;\r\n\t\t\tvar userWantsControl = getHookArgumentsLength(enterHook);\r\n\r\n\t\t\tvar cb = el._enterCb = once(function () {\r\n\t\t\t\tif (expectsCSS) {\r\n\t\t\t\t\tremoveTransitionClass(el, toClass);\r\n\t\t\t\t\tremoveTransitionClass(el, activeClass);\r\n\t\t\t\t}\r\n\t\t\t\tif (cb.cancelled) {\r\n\t\t\t\t\tif (expectsCSS) {\r\n\t\t\t\t\t\tremoveTransitionClass(el, startClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tenterCancelledHook && enterCancelledHook(el);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tafterEnterHook && afterEnterHook(el);\r\n\t\t\t\t}\r\n\t\t\t\tel._enterCb = null;\r\n\t\t\t});\r\n\r\n\t\t\tif (!vnode.data.show) {\r\n\t\t\t\t// remove pending leave element on enter by injecting an insert hook\r\n\t\t\t\tmergeVNodeHook(vnode, 'insert', function () {\r\n\t\t\t\t\tvar parent = el.parentNode;\r\n\t\t\t\t\tvar pendingNode = parent && parent._pending && parent._pending[vnode.key];\r\n\t\t\t\t\tif (pendingNode &&\r\n\t\t\t\t\t\tpendingNode.tag === vnode.tag &&\r\n\t\t\t\t\t\tpendingNode.elm._leaveCb\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tpendingNode.elm._leaveCb();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tenterHook && enterHook(el, cb);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// start enter transition\r\n\t\t\tbeforeEnterHook && beforeEnterHook(el);\r\n\t\t\tif (expectsCSS) {\r\n\t\t\t\taddTransitionClass(el, startClass);\r\n\t\t\t\taddTransitionClass(el, activeClass);\r\n\t\t\t\tnextFrame(function () {\r\n\t\t\t\t\tremoveTransitionClass(el, startClass);\r\n\t\t\t\t\tif (!cb.cancelled) {\r\n\t\t\t\t\t\taddTransitionClass(el, toClass);\r\n\t\t\t\t\t\tif (!userWantsControl) {\r\n\t\t\t\t\t\t\tif (isValidDuration(explicitEnterDuration)) {\r\n\t\t\t\t\t\t\t\tsetTimeout(cb, explicitEnterDuration);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twhenTransitionEnds(el, type, cb);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (vnode.data.show) {\r\n\t\t\t\ttoggleDisplay && toggleDisplay();\r\n\t\t\t\tenterHook && enterHook(el, cb);\r\n\t\t\t}\r\n\r\n\t\t\tif (!expectsCSS && !userWantsControl) {\r\n\t\t\t\tcb();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction leave(vnode, rm) {\r\n\t\t\tvar el = vnode.elm;\r\n\r\n\t\t\t// call enter callback now\r\n\t\t\tif (isDef(el._enterCb)) {\r\n\t\t\t\tel._enterCb.cancelled = true;\r\n\t\t\t\tel._enterCb();\r\n\t\t\t}\r\n\r\n\t\t\tvar data = resolveTransition(vnode.data.transition);\r\n\t\t\tif (isUndef(data) || el.nodeType !== 1) {\r\n\t\t\t\treturn rm()\r\n\t\t\t}\r\n\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (isDef(el._leaveCb)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tvar css = data.css;\r\n\t\t\tvar type = data.type;\r\n\t\t\tvar leaveClass = data.leaveClass;\r\n\t\t\tvar leaveToClass = data.leaveToClass;\r\n\t\t\tvar leaveActiveClass = data.leaveActiveClass;\r\n\t\t\tvar beforeLeave = data.beforeLeave;\r\n\t\t\tvar leave = data.leave;\r\n\t\t\tvar afterLeave = data.afterLeave;\r\n\t\t\tvar leaveCancelled = data.leaveCancelled;\r\n\t\t\tvar delayLeave = data.delayLeave;\r\n\t\t\tvar duration = data.duration;\r\n\r\n\t\t\tvar expectsCSS = css !== false && !isIE9;\r\n\t\t\tvar userWantsControl = getHookArgumentsLength(leave);\r\n\r\n\t\t\tvar explicitLeaveDuration = toNumber(\r\n\t\t\t\tisObject(duration)\r\n\t\t\t\t\t? duration.leave\r\n\t\t\t\t\t: duration\r\n\t\t\t);\r\n\r\n\t\t\tif (false) { }\r\n\r\n\t\t\tvar cb = el._leaveCb = once(function () {\r\n\t\t\t\tif (el.parentNode && el.parentNode._pending) {\r\n\t\t\t\t\tel.parentNode._pending[vnode.key] = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (expectsCSS) {\r\n\t\t\t\t\tremoveTransitionClass(el, leaveToClass);\r\n\t\t\t\t\tremoveTransitionClass(el, leaveActiveClass);\r\n\t\t\t\t}\r\n\t\t\t\tif (cb.cancelled) {\r\n\t\t\t\t\tif (expectsCSS) {\r\n\t\t\t\t\t\tremoveTransitionClass(el, leaveClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tleaveCancelled && leaveCancelled(el);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trm();\r\n\t\t\t\t\tafterLeave && afterLeave(el);\r\n\t\t\t\t}\r\n\t\t\t\tel._leaveCb = null;\r\n\t\t\t});\r\n\r\n\t\t\tif (delayLeave) {\r\n\t\t\t\tdelayLeave(performLeave);\r\n\t\t\t} else {\r\n\t\t\t\tperformLeave();\r\n\t\t\t}\r\n\r\n\t\t\tfunction performLeave() {\r\n\t\t\t\t// the delayed leave may have already been cancelled\r\n\t\t\t\tif (cb.cancelled) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\t// record leaving element\r\n\t\t\t\tif (!vnode.data.show && el.parentNode) {\r\n\t\t\t\t\t(el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\r\n\t\t\t\t}\r\n\t\t\t\tbeforeLeave && beforeLeave(el);\r\n\t\t\t\tif (expectsCSS) {\r\n\t\t\t\t\taddTransitionClass(el, leaveClass);\r\n\t\t\t\t\taddTransitionClass(el, leaveActiveClass);\r\n\t\t\t\t\tnextFrame(function () {\r\n\t\t\t\t\t\tremoveTransitionClass(el, leaveClass);\r\n\t\t\t\t\t\tif (!cb.cancelled) {\r\n\t\t\t\t\t\t\taddTransitionClass(el, leaveToClass);\r\n\t\t\t\t\t\t\tif (!userWantsControl) {\r\n\t\t\t\t\t\t\t\tif (isValidDuration(explicitLeaveDuration)) {\r\n\t\t\t\t\t\t\t\t\tsetTimeout(cb, explicitLeaveDuration);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\twhenTransitionEnds(el, type, cb);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tleave && leave(el, cb);\r\n\t\t\t\tif (!expectsCSS && !userWantsControl) {\r\n\t\t\t\t\tcb();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// only used in dev mode\r\n\t\tfunction checkDuration(val, name, vnode) {\r\n\t\t\tif (typeof val !== 'number') {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t\"<transition> explicit \" + name + \" duration is not a valid number - \" +\r\n\t\t\t\t\t\"got \" + (JSON.stringify(val)) + \".\",\r\n\t\t\t\t\tvnode.context\r\n\t\t\t\t);\r\n\t\t\t} else if (isNaN(val)) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t\"<transition> explicit \" + name + \" duration is NaN - \" +\r\n\t\t\t\t\t'the duration expression might be incorrect.',\r\n\t\t\t\t\tvnode.context\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction isValidDuration(val) {\r\n\t\t\treturn typeof val === 'number' && !isNaN(val)\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Normalize a transition hook's argument length. The hook may be:\r\n\t\t * - a merged hook (invoker) with the original in .fns\r\n\t\t * - a wrapped component method (check ._length)\r\n\t\t * - a plain function (.length)\r\n\t\t */\r\n\t\tfunction getHookArgumentsLength(fn) {\r\n\t\t\tif (isUndef(fn)) {\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t\tvar invokerFns = fn.fns;\r\n\t\t\tif (isDef(invokerFns)) {\r\n\t\t\t\t// invoker\r\n\t\t\t\treturn getHookArgumentsLength(\r\n\t\t\t\t\tArray.isArray(invokerFns)\r\n\t\t\t\t\t\t? invokerFns[0]\r\n\t\t\t\t\t\t: invokerFns\r\n\t\t\t\t)\r\n\t\t\t} else {\r\n\t\t\t\treturn (fn._length || fn.length) > 1\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction _enter(_, vnode) {\r\n\t\t\tif (vnode.data.show !== true) {\r\n\t\t\t\tenter(vnode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar transition = inBrowser ? {\r\n\t\t\tcreate: _enter,\r\n\t\t\tactivate: _enter,\r\n\t\t\tremove: function remove$$1(vnode, rm) {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (vnode.data.show !== true) {\r\n\t\t\t\t\tleave(vnode, rm);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trm();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} : {};\r\n\r\n\t\tvar platformModules = [\r\n\t\t\tattrs,\r\n\t\t\tklass,\r\n\t\t\tevents,\r\n\t\t\tdomProps,\r\n\t\t\tstyle,\r\n\t\t\ttransition\r\n\t\t];\r\n\r\n\t\t/*  */\r\n\r\n\t\t// the directive module should be applied last, after all\r\n\t\t// built-in modules have been applied.\r\n\t\tvar modules = platformModules.concat(baseModules);\r\n\r\n\t\tvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\r\n\r\n\t\t/**\r\n\t\t * Not type checking this file because flow doesn't like attaching\r\n\t\t * properties to Elements.\r\n\t\t */\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isIE9) {\r\n\t\t\t// http://www.matts411.com/post/internet-explorer-9-oninput/\r\n\t\t\tdocument.addEventListener('selectionchange', function () {\r\n\t\t\t\tvar el = document.activeElement;\r\n\t\t\t\tif (el && el.vmodel) {\r\n\t\t\t\t\ttrigger(el, 'input');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar directive = {\r\n\t\t\tinserted: function inserted(el, binding, vnode, oldVnode) {\r\n\t\t\t\tif (vnode.tag === 'select') {\r\n\t\t\t\t\t// #6903\r\n\t\t\t\t\tif (oldVnode.elm && !oldVnode.elm._vOptions) {\r\n\t\t\t\t\t\tmergeVNodeHook(vnode, 'postpatch', function () {\r\n\t\t\t\t\t\t\tdirective.componentUpdated(el, binding, vnode);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetSelected(el, binding, vnode.context);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel._vOptions = [].map.call(el.options, getValue);\r\n\t\t\t\t} else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\r\n\t\t\t\t\tel._vModifiers = binding.modifiers;\r\n\t\t\t\t\tif (!binding.modifiers.lazy) {\r\n\t\t\t\t\t\tel.addEventListener('compositionstart', onCompositionStart);\r\n\t\t\t\t\t\tel.addEventListener('compositionend', onCompositionEnd);\r\n\t\t\t\t\t\t// Safari < 10.2 & UIWebView doesn't fire compositionend when\r\n\t\t\t\t\t\t// switching focus before confirming composition choice\r\n\t\t\t\t\t\t// this also fixes the issue where some browsers e.g. iOS Chrome\r\n\t\t\t\t\t\t// fires \"change\" instead of \"input\" on autocomplete.\r\n\t\t\t\t\t\tel.addEventListener('change', onCompositionEnd);\r\n\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\tif (isIE9) {\r\n\t\t\t\t\t\t\tel.vmodel = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tcomponentUpdated: function componentUpdated(el, binding, vnode) {\r\n\t\t\t\tif (vnode.tag === 'select') {\r\n\t\t\t\t\tsetSelected(el, binding, vnode.context);\r\n\t\t\t\t\t// in case the options rendered by v-for have changed,\r\n\t\t\t\t\t// it's possible that the value is out-of-sync with the rendered options.\r\n\t\t\t\t\t// detect such cases and filter out values that no longer has a matching\r\n\t\t\t\t\t// option in the DOM.\r\n\t\t\t\t\tvar prevOptions = el._vOptions;\r\n\t\t\t\t\tvar curOptions = el._vOptions = [].map.call(el.options, getValue);\r\n\t\t\t\t\tif (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\r\n\t\t\t\t\t\t// trigger change event if\r\n\t\t\t\t\t\t// no matching option found for at least one value\r\n\t\t\t\t\t\tvar needReset = el.multiple\r\n\t\t\t\t\t\t\t? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\r\n\t\t\t\t\t\t\t: binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\r\n\t\t\t\t\t\tif (needReset) {\r\n\t\t\t\t\t\t\ttrigger(el, 'change');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction setSelected(el, binding, vm) {\r\n\t\t\tactuallySetSelected(el, binding, vm);\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (isIE || isEdge) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tactuallySetSelected(el, binding, vm);\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction actuallySetSelected(el, binding, vm) {\r\n\t\t\tvar value = binding.value;\r\n\t\t\tvar isMultiple = el.multiple;\r\n\t\t\tif (isMultiple && !Array.isArray(value)) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar selected, option;\r\n\t\t\tfor (var i = 0, l = el.options.length; i < l; i++) {\r\n\t\t\t\toption = el.options[i];\r\n\t\t\t\tif (isMultiple) {\r\n\t\t\t\t\tselected = looseIndexOf(value, getValue(option)) > -1;\r\n\t\t\t\t\tif (option.selected !== selected) {\r\n\t\t\t\t\t\toption.selected = selected;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (looseEqual(getValue(option), value)) {\r\n\t\t\t\t\t\tif (el.selectedIndex !== i) {\r\n\t\t\t\t\t\t\tel.selectedIndex = i;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!isMultiple) {\r\n\t\t\t\tel.selectedIndex = -1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction hasNoMatchingOption(value, options) {\r\n\t\t\treturn options.every(function (o) { return !looseEqual(o, value); })\r\n\t\t}\r\n\r\n\t\tfunction getValue(option) {\r\n\t\t\treturn '_value' in option\r\n\t\t\t\t? option._value\r\n\t\t\t\t: option.value\r\n\t\t}\r\n\r\n\t\tfunction onCompositionStart(e) {\r\n\t\t\te.target.composing = true;\r\n\t\t}\r\n\r\n\t\tfunction onCompositionEnd(e) {\r\n\t\t\t// prevent triggering an input event for no reason\r\n\t\t\tif (!e.target.composing) { return }\r\n\t\t\te.target.composing = false;\r\n\t\t\ttrigger(e.target, 'input');\r\n\t\t}\r\n\r\n\t\tfunction trigger(el, type) {\r\n\t\t\tvar e = document.createEvent('HTMLEvents');\r\n\t\t\te.initEvent(type, true, true);\r\n\t\t\tel.dispatchEvent(e);\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t// recursively search for possible transition defined inside the component root\r\n\t\tfunction locateNode(vnode) {\r\n\t\t\treturn vnode.componentInstance && (!vnode.data || !vnode.data.transition)\r\n\t\t\t\t? locateNode(vnode.componentInstance._vnode)\r\n\t\t\t\t: vnode\r\n\t\t}\r\n\r\n\t\tvar show = {\r\n\t\t\tbind: function bind(el, ref, vnode) {\r\n\t\t\t\tvar value = ref.value;\r\n\r\n\t\t\t\tvnode = locateNode(vnode);\r\n\t\t\t\tvar transition$$1 = vnode.data && vnode.data.transition;\r\n\t\t\t\tvar originalDisplay = el.__vOriginalDisplay =\r\n\t\t\t\t\tel.style.display === 'none' ? '' : el.style.display;\r\n\t\t\t\tif (value && transition$$1) {\r\n\t\t\t\t\tvnode.data.show = true;\r\n\t\t\t\t\tenter(vnode, function () {\r\n\t\t\t\t\t\tel.style.display = originalDisplay;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.style.display = value ? originalDisplay : 'none';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tupdate: function update(el, ref, vnode) {\r\n\t\t\t\tvar value = ref.value;\r\n\t\t\t\tvar oldValue = ref.oldValue;\r\n\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (!value === !oldValue) { return }\r\n\t\t\t\tvnode = locateNode(vnode);\r\n\t\t\t\tvar transition$$1 = vnode.data && vnode.data.transition;\r\n\t\t\t\tif (transition$$1) {\r\n\t\t\t\t\tvnode.data.show = true;\r\n\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\tenter(vnode, function () {\r\n\t\t\t\t\t\t\tel.style.display = el.__vOriginalDisplay;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tleave(vnode, function () {\r\n\t\t\t\t\t\t\tel.style.display = 'none';\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.style.display = value ? el.__vOriginalDisplay : 'none';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tunbind: function unbind(\r\n\t\t\t\tel,\r\n\t\t\t\tbinding,\r\n\t\t\t\tvnode,\r\n\t\t\t\toldVnode,\r\n\t\t\t\tisDestroy\r\n\t\t\t) {\r\n\t\t\t\tif (!isDestroy) {\r\n\t\t\t\t\tel.style.display = el.__vOriginalDisplay;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar platformDirectives = {\r\n\t\t\tmodel: directive,\r\n\t\t\tshow: show\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar transitionProps = {\r\n\t\t\tname: String,\r\n\t\t\tappear: Boolean,\r\n\t\t\tcss: Boolean,\r\n\t\t\tmode: String,\r\n\t\t\ttype: String,\r\n\t\t\tenterClass: String,\r\n\t\t\tleaveClass: String,\r\n\t\t\tenterToClass: String,\r\n\t\t\tleaveToClass: String,\r\n\t\t\tenterActiveClass: String,\r\n\t\t\tleaveActiveClass: String,\r\n\t\t\tappearClass: String,\r\n\t\t\tappearActiveClass: String,\r\n\t\t\tappearToClass: String,\r\n\t\t\tduration: [Number, String, Object]\r\n\t\t};\r\n\r\n\t\t// in case the child is also an abstract component, e.g. <keep-alive>\r\n\t\t// we want to recursively retrieve the real component to be rendered\r\n\t\tfunction getRealChild(vnode) {\r\n\t\t\tvar compOptions = vnode && vnode.componentOptions;\r\n\t\t\tif (compOptions && compOptions.Ctor.options.abstract) {\r\n\t\t\t\treturn getRealChild(getFirstComponentChild(compOptions.children))\r\n\t\t\t} else {\r\n\t\t\t\treturn vnode\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction extractTransitionData(comp) {\r\n\t\t\tvar data = {};\r\n\t\t\tvar options = comp.$options;\r\n\t\t\t// props\r\n\t\t\tfor (var key in options.propsData) {\r\n\t\t\t\tdata[key] = comp[key];\r\n\t\t\t}\r\n\t\t\t// events.\r\n\t\t\t// extract listeners and pass them directly to the transition methods\r\n\t\t\tvar listeners = options._parentListeners;\r\n\t\t\tfor (var key$1 in listeners) {\r\n\t\t\t\tdata[camelize(key$1)] = listeners[key$1];\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\tfunction placeholder(h, rawChild) {\r\n\t\t\tif (/\\d-keep-alive$/.test(rawChild.tag)) {\r\n\t\t\t\treturn h('keep-alive', {\r\n\t\t\t\t\tprops: rawChild.componentOptions.propsData\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction hasParentTransition(vnode) {\r\n\t\t\twhile ((vnode = vnode.parent)) {\r\n\t\t\t\tif (vnode.data.transition) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction isSameChild(child, oldChild) {\r\n\t\t\treturn oldChild.key === child.key && oldChild.tag === child.tag\r\n\t\t}\r\n\r\n\t\tvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\r\n\r\n\t\tvar isVShowDirective = function (d) { return d.name === 'show'; };\r\n\r\n\t\tvar Transition = {\r\n\t\t\tname: 'transition',\r\n\t\t\tprops: transitionProps,\r\n\t\t\tabstract: true,\r\n\r\n\t\t\trender: function render(h) {\r\n\t\t\t\tvar this$1 = this;\r\n\r\n\t\t\t\tvar children = this.$slots.default;\r\n\t\t\t\tif (!children) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// filter out text nodes (possible whitespaces)\r\n\t\t\t\tchildren = children.filter(isNotTextNode);\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (!children.length) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// warn multiple elements\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\tvar mode = this.mode;\r\n\r\n\t\t\t\t// warn invalid mode\r\n\t\t\t\tif (false\r\n\t\t\t\t) { }\r\n\r\n\t\t\t\tvar rawChild = children[0];\r\n\r\n\t\t\t\t// if this is a component root node and the component's\r\n\t\t\t\t// parent container node also has transition, skip.\r\n\t\t\t\tif (hasParentTransition(this.$vnode)) {\r\n\t\t\t\t\treturn rawChild\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// apply transition data to child\r\n\t\t\t\t// use getRealChild() to ignore abstract components e.g. keep-alive\r\n\t\t\t\tvar child = getRealChild(rawChild);\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (!child) {\r\n\t\t\t\t\treturn rawChild\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._leaving) {\r\n\t\t\t\t\treturn placeholder(h, rawChild)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// ensure a key that is unique to the vnode type and to this transition\r\n\t\t\t\t// component instance. This key will be used to remove pending leaving nodes\r\n\t\t\t\t// during entering.\r\n\t\t\t\tvar id = \"__transition-\" + (this._uid) + \"-\";\r\n\t\t\t\tchild.key = child.key == null\r\n\t\t\t\t\t? child.isComment\r\n\t\t\t\t\t\t? id + 'comment'\r\n\t\t\t\t\t\t: id + child.tag\r\n\t\t\t\t\t: isPrimitive(child.key)\r\n\t\t\t\t\t\t? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\r\n\t\t\t\t\t\t: child.key;\r\n\r\n\t\t\t\tvar data = (child.data || (child.data = {})).transition = extractTransitionData(this);\r\n\t\t\t\tvar oldRawChild = this._vnode;\r\n\t\t\t\tvar oldChild = getRealChild(oldRawChild);\r\n\r\n\t\t\t\t// mark v-show\r\n\t\t\t\t// so that the transition module can hand over the control to the directive\r\n\t\t\t\tif (child.data.directives && child.data.directives.some(isVShowDirective)) {\r\n\t\t\t\t\tchild.data.show = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\toldChild &&\r\n\t\t\t\t\toldChild.data &&\r\n\t\t\t\t\t!isSameChild(child, oldChild) &&\r\n\t\t\t\t\t!isAsyncPlaceholder(oldChild) &&\r\n\t\t\t\t\t// #6687 component root is a comment node\r\n\t\t\t\t\t!(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\r\n\t\t\t\t) {\r\n\t\t\t\t\t// replace old child transition data with fresh one\r\n\t\t\t\t\t// important for dynamic transitions!\r\n\t\t\t\t\tvar oldData = oldChild.data.transition = extend({}, data);\r\n\t\t\t\t\t// handle transition mode\r\n\t\t\t\t\tif (mode === 'out-in') {\r\n\t\t\t\t\t\t// return placeholder node and queue update when leave finishes\r\n\t\t\t\t\t\tthis._leaving = true;\r\n\t\t\t\t\t\tmergeVNodeHook(oldData, 'afterLeave', function () {\r\n\t\t\t\t\t\t\tthis$1._leaving = false;\r\n\t\t\t\t\t\t\tthis$1.$forceUpdate();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn placeholder(h, rawChild)\r\n\t\t\t\t\t} else if (mode === 'in-out') {\r\n\t\t\t\t\t\tif (isAsyncPlaceholder(child)) {\r\n\t\t\t\t\t\t\treturn oldRawChild\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar delayedLeave;\r\n\t\t\t\t\t\tvar performLeave = function () { delayedLeave(); };\r\n\t\t\t\t\t\tmergeVNodeHook(data, 'afterEnter', performLeave);\r\n\t\t\t\t\t\tmergeVNodeHook(data, 'enterCancelled', performLeave);\r\n\t\t\t\t\t\tmergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn rawChild\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar props = extend({\r\n\t\t\ttag: String,\r\n\t\t\tmoveClass: String\r\n\t\t}, transitionProps);\r\n\r\n\t\tdelete props.mode;\r\n\r\n\t\tvar TransitionGroup = {\r\n\t\t\tprops: props,\r\n\r\n\t\t\tbeforeMount: function beforeMount() {\r\n\t\t\t\tvar this$1 = this;\r\n\r\n\t\t\t\tvar update = this._update;\r\n\t\t\t\tthis._update = function (vnode, hydrating) {\r\n\t\t\t\t\tvar restoreActiveInstance = setActiveInstance(this$1);\r\n\t\t\t\t\t// force removing pass\r\n\t\t\t\t\tthis$1.__patch__(\r\n\t\t\t\t\t\tthis$1._vnode,\r\n\t\t\t\t\t\tthis$1.kept,\r\n\t\t\t\t\t\tfalse, // hydrating\r\n\t\t\t\t\t\ttrue // removeOnly (!important, avoids unnecessary moves)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthis$1._vnode = this$1.kept;\r\n\t\t\t\t\trestoreActiveInstance();\r\n\t\t\t\t\tupdate.call(this$1, vnode, hydrating);\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\trender: function render(h) {\r\n\t\t\t\tvar tag = this.tag || this.$vnode.data.tag || 'span';\r\n\t\t\t\tvar map = Object.create(null);\r\n\t\t\t\tvar prevChildren = this.prevChildren = this.children;\r\n\t\t\t\tvar rawChildren = this.$slots.default || [];\r\n\t\t\t\tvar children = this.children = [];\r\n\t\t\t\tvar transitionData = extractTransitionData(this);\r\n\r\n\t\t\t\tfor (var i = 0; i < rawChildren.length; i++) {\r\n\t\t\t\t\tvar c = rawChildren[i];\r\n\t\t\t\t\tif (c.tag) {\r\n\t\t\t\t\t\tif (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\r\n\t\t\t\t\t\t\tchildren.push(c);\r\n\t\t\t\t\t\t\tmap[c.key] = c\r\n\t\t\t\t\t\t\t\t; (c.data || (c.data = {})).transition = transitionData;\r\n\t\t\t\t\t\t} else if (false) { var name, opts; }\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (prevChildren) {\r\n\t\t\t\t\tvar kept = [];\r\n\t\t\t\t\tvar removed = [];\r\n\t\t\t\t\tfor (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\r\n\t\t\t\t\t\tvar c$1 = prevChildren[i$1];\r\n\t\t\t\t\t\tc$1.data.transition = transitionData;\r\n\t\t\t\t\t\tc$1.data.pos = c$1.elm.getBoundingClientRect();\r\n\t\t\t\t\t\tif (map[c$1.key]) {\r\n\t\t\t\t\t\t\tkept.push(c$1);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tremoved.push(c$1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.kept = h(tag, null, kept);\r\n\t\t\t\t\tthis.removed = removed;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn h(tag, null, children)\r\n\t\t\t},\r\n\r\n\t\t\tupdated: function updated() {\r\n\t\t\t\tvar children = this.prevChildren;\r\n\t\t\t\tvar moveClass = this.moveClass || ((this.name || 'v') + '-move');\r\n\t\t\t\tif (!children.length || !this.hasMove(children[0].elm, moveClass)) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// we divide the work into three loops to avoid mixing DOM reads and writes\r\n\t\t\t\t// in each iteration - which helps prevent layout thrashing.\r\n\t\t\t\tchildren.forEach(callPendingCbs);\r\n\t\t\t\tchildren.forEach(recordPosition);\r\n\t\t\t\tchildren.forEach(applyTranslation);\r\n\r\n\t\t\t\t// force reflow to put everything in position\r\n\t\t\t\t// assign to this to avoid being removed in tree-shaking\r\n\t\t\t\t// $flow-disable-line\r\n\t\t\t\tthis._reflow = document.body.offsetHeight;\r\n\r\n\t\t\t\tchildren.forEach(function (c) {\r\n\t\t\t\t\tif (c.data.moved) {\r\n\t\t\t\t\t\tvar el = c.elm;\r\n\t\t\t\t\t\tvar s = el.style;\r\n\t\t\t\t\t\taddTransitionClass(el, moveClass);\r\n\t\t\t\t\t\ts.transform = s.WebkitTransform = s.transitionDuration = '';\r\n\t\t\t\t\t\tel.addEventListener(transitionEndEvent, el._moveCb = function cb(e) {\r\n\t\t\t\t\t\t\tif (e && e.target !== el) {\r\n\t\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!e || /transform$/.test(e.propertyName)) {\r\n\t\t\t\t\t\t\t\tel.removeEventListener(transitionEndEvent, cb);\r\n\t\t\t\t\t\t\t\tel._moveCb = null;\r\n\t\t\t\t\t\t\t\tremoveTransitionClass(el, moveClass);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tmethods: {\r\n\t\t\t\thasMove: function hasMove(el, moveClass) {\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (!hasTransition) {\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (this._hasMove) {\r\n\t\t\t\t\t\treturn this._hasMove\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Detect whether an element with the move class applied has\r\n\t\t\t\t\t// CSS transitions. Since the element may be inside an entering\r\n\t\t\t\t\t// transition at this very moment, we make a clone of it and remove\r\n\t\t\t\t\t// all other transition classes applied to ensure only the move class\r\n\t\t\t\t\t// is applied.\r\n\t\t\t\t\tvar clone = el.cloneNode();\r\n\t\t\t\t\tif (el._transitionClasses) {\r\n\t\t\t\t\t\tel._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddClass(clone, moveClass);\r\n\t\t\t\t\tclone.style.display = 'none';\r\n\t\t\t\t\tthis.$el.appendChild(clone);\r\n\t\t\t\t\tvar info = getTransitionInfo(clone);\r\n\t\t\t\t\tthis.$el.removeChild(clone);\r\n\t\t\t\t\treturn (this._hasMove = info.hasTransform)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tfunction callPendingCbs(c) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (c.elm._moveCb) {\r\n\t\t\t\tc.elm._moveCb();\r\n\t\t\t}\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (c.elm._enterCb) {\r\n\t\t\t\tc.elm._enterCb();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction recordPosition(c) {\r\n\t\t\tc.data.newPos = c.elm.getBoundingClientRect();\r\n\t\t}\r\n\r\n\t\tfunction applyTranslation(c) {\r\n\t\t\tvar oldPos = c.data.pos;\r\n\t\t\tvar newPos = c.data.newPos;\r\n\t\t\tvar dx = oldPos.left - newPos.left;\r\n\t\t\tvar dy = oldPos.top - newPos.top;\r\n\t\t\tif (dx || dy) {\r\n\t\t\t\tc.data.moved = true;\r\n\t\t\t\tvar s = c.elm.style;\r\n\t\t\t\ts.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\r\n\t\t\t\ts.transitionDuration = '0s';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar platformComponents = {\r\n\t\t\tTransition: Transition,\r\n\t\t\tTransitionGroup: TransitionGroup\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\t// install platform specific utils\r\n\t\tvue_esm_Vue.config.mustUseProp = mustUseProp;\r\n\t\tvue_esm_Vue.config.isReservedTag = isReservedTag;\r\n\t\tvue_esm_Vue.config.isReservedAttr = isReservedAttr;\r\n\t\tvue_esm_Vue.config.getTagNamespace = getTagNamespace;\r\n\t\tvue_esm_Vue.config.isUnknownElement = isUnknownElement;\r\n\r\n\t\t// install platform runtime directives & components\r\n\t\textend(vue_esm_Vue.options.directives, platformDirectives);\r\n\t\textend(vue_esm_Vue.options.components, platformComponents);\r\n\r\n\t\t// install platform patch function\r\n\t\tvue_esm_Vue.prototype.__patch__ = inBrowser ? patch : noop;\r\n\r\n\t\t// public mount method\r\n\t\tvue_esm_Vue.prototype.$mount = function (\r\n\t\t\tel,\r\n\t\t\thydrating\r\n\t\t) {\r\n\t\t\tel = el && inBrowser ? query(el) : undefined;\r\n\t\t\treturn mountComponent(this, el, hydrating)\r\n\t\t};\r\n\r\n\t\t// devtools global hook\r\n\t\t/* istanbul ignore next */\r\n\t\tif (inBrowser) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif (config.devtools) {\r\n\t\t\t\t\tif (devtools) {\r\n\t\t\t\t\t\tdevtools.emit('init', vue_esm_Vue);\r\n\t\t\t\t\t} else if (\r\n\t\t\t\t\t\tfalse\r\n\t\t\t\t\t) { }\r\n\t\t\t\t}\r\n\t\t\t\tif (false\r\n\t\t\t\t) { }\r\n\t\t\t}, 0);\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\r\n\t\tvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\r\n\r\n\t\tvar buildRegex = cached(function (delimiters) {\r\n\t\t\tvar open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\r\n\t\t\tvar close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\r\n\t\t\treturn new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\r\n\t\t});\r\n\r\n\r\n\r\n\t\tfunction parseText(\r\n\t\t\ttext,\r\n\t\t\tdelimiters\r\n\t\t) {\r\n\t\t\tvar tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\r\n\t\t\tif (!tagRE.test(text)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tvar tokens = [];\r\n\t\t\tvar rawTokens = [];\r\n\t\t\tvar lastIndex = tagRE.lastIndex = 0;\r\n\t\t\tvar match, index, tokenValue;\r\n\t\t\twhile ((match = tagRE.exec(text))) {\r\n\t\t\t\tindex = match.index;\r\n\t\t\t\t// push text token\r\n\t\t\t\tif (index > lastIndex) {\r\n\t\t\t\t\trawTokens.push(tokenValue = text.slice(lastIndex, index));\r\n\t\t\t\t\ttokens.push(JSON.stringify(tokenValue));\r\n\t\t\t\t}\r\n\t\t\t\t// tag token\r\n\t\t\t\tvar exp = parseFilters(match[1].trim());\r\n\t\t\t\ttokens.push((\"_s(\" + exp + \")\"));\r\n\t\t\t\trawTokens.push({ '@binding': exp });\r\n\t\t\t\tlastIndex = index + match[0].length;\r\n\t\t\t}\r\n\t\t\tif (lastIndex < text.length) {\r\n\t\t\t\trawTokens.push(tokenValue = text.slice(lastIndex));\r\n\t\t\t\ttokens.push(JSON.stringify(tokenValue));\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\texpression: tokens.join('+'),\r\n\t\t\t\ttokens: rawTokens\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction transformNode(el, options) {\r\n\t\t\tvar warn = options.warn || baseWarn;\r\n\t\t\tvar staticClass = getAndRemoveAttr(el, 'class');\r\n\t\t\tif (false) { var res; }\r\n\t\t\tif (staticClass) {\r\n\t\t\t\tel.staticClass = JSON.stringify(staticClass);\r\n\t\t\t}\r\n\t\t\tvar classBinding = getBindingAttr(el, 'class', false /* getStatic */);\r\n\t\t\tif (classBinding) {\r\n\t\t\t\tel.classBinding = classBinding;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genData(el) {\r\n\t\t\tvar data = '';\r\n\t\t\tif (el.staticClass) {\r\n\t\t\t\tdata += \"staticClass:\" + (el.staticClass) + \",\";\r\n\t\t\t}\r\n\t\t\tif (el.classBinding) {\r\n\t\t\t\tdata += \"class:\" + (el.classBinding) + \",\";\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\tvar klass$1 = {\r\n\t\t\tstaticKeys: ['staticClass'],\r\n\t\t\ttransformNode: transformNode,\r\n\t\t\tgenData: genData\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction transformNode$1(el, options) {\r\n\t\t\tvar warn = options.warn || baseWarn;\r\n\t\t\tvar staticStyle = getAndRemoveAttr(el, 'style');\r\n\t\t\tif (staticStyle) {\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { var res; }\r\n\t\t\t\tel.staticStyle = JSON.stringify(parseStyleText(staticStyle));\r\n\t\t\t}\r\n\r\n\t\t\tvar styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\r\n\t\t\tif (styleBinding) {\r\n\t\t\t\tel.styleBinding = styleBinding;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genData$1(el) {\r\n\t\t\tvar data = '';\r\n\t\t\tif (el.staticStyle) {\r\n\t\t\t\tdata += \"staticStyle:\" + (el.staticStyle) + \",\";\r\n\t\t\t}\r\n\t\t\tif (el.styleBinding) {\r\n\t\t\t\tdata += \"style:(\" + (el.styleBinding) + \"),\";\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\tvar style$1 = {\r\n\t\t\tstaticKeys: ['staticStyle'],\r\n\t\t\ttransformNode: transformNode$1,\r\n\t\t\tgenData: genData$1\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar decoder;\r\n\r\n\t\tvar he = {\r\n\t\t\tdecode: function decode(html) {\r\n\t\t\t\tdecoder = decoder || document.createElement('div');\r\n\t\t\t\tdecoder.innerHTML = html;\r\n\t\t\t\treturn decoder.textContent\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar isUnaryTag = makeMap(\r\n\t\t\t'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\r\n\t\t\t'link,meta,param,source,track,wbr'\r\n\t\t);\r\n\r\n\t\t// Elements that you can, intentionally, leave open\r\n\t\t// (and which close themselves)\r\n\t\tvar canBeLeftOpenTag = makeMap(\r\n\t\t\t'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\r\n\t\t);\r\n\r\n\t\t// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\r\n\t\t// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\r\n\t\tvar isNonPhrasingTag = makeMap(\r\n\t\t\t'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\r\n\t\t\t'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\r\n\t\t\t'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\r\n\t\t\t'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\r\n\t\t\t'title,tr,track'\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Not type-checking this file because it's mostly vendor code.\r\n\t\t */\r\n\r\n\t\t// Regular Expressions for parsing tags and attributes\r\n\t\tvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\r\n\t\tvar dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\r\n\t\tvar ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\" + (unicodeRegExp.source) + \"]*\";\r\n\t\tvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\r\n\t\tvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\r\n\t\tvar startTagClose = /^\\s*(\\/?)>/;\r\n\t\tvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\r\n\t\tvar doctype = /^<!DOCTYPE [^>]+>/i;\r\n\t\t// #7298: escape - to avoid being passed as HTML comment when inlined in page\r\n\t\tvar comment = /^<!\\--/;\r\n\t\tvar conditionalComment = /^<!\\[/;\r\n\r\n\t\t// Special Elements (can contain anything)\r\n\t\tvar isPlainTextElement = makeMap('script,style,textarea', true);\r\n\t\tvar reCache = {};\r\n\r\n\t\tvar decodingMap = {\r\n\t\t\t'&lt;': '<',\r\n\t\t\t'&gt;': '>',\r\n\t\t\t'&quot;': '\"',\r\n\t\t\t'&amp;': '&',\r\n\t\t\t'&#10;': '\\n',\r\n\t\t\t'&#9;': '\\t',\r\n\t\t\t'&#39;': \"'\"\r\n\t\t};\r\n\t\tvar encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\r\n\t\tvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\r\n\r\n\t\t// #5992\r\n\t\tvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\r\n\t\tvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\r\n\r\n\t\tfunction decodeAttr(value, shouldDecodeNewlines) {\r\n\t\t\tvar re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\r\n\t\t\treturn value.replace(re, function (match) { return decodingMap[match]; })\r\n\t\t}\r\n\r\n\t\tfunction parseHTML(html, options) {\r\n\t\t\tvar stack = [];\r\n\t\t\tvar expectHTML = options.expectHTML;\r\n\t\t\tvar isUnaryTag$$1 = options.isUnaryTag || no;\r\n\t\t\tvar canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\r\n\t\t\tvar index = 0;\r\n\t\t\tvar last, lastTag;\r\n\t\t\twhile (html) {\r\n\t\t\t\tlast = html;\r\n\t\t\t\t// Make sure we're not in a plaintext content element like script/style\r\n\t\t\t\tif (!lastTag || !isPlainTextElement(lastTag)) {\r\n\t\t\t\t\tvar textEnd = html.indexOf('<');\r\n\t\t\t\t\tif (textEnd === 0) {\r\n\t\t\t\t\t\t// Comment:\r\n\t\t\t\t\t\tif (comment.test(html)) {\r\n\t\t\t\t\t\t\tvar commentEnd = html.indexOf('-->');\r\n\r\n\t\t\t\t\t\t\tif (commentEnd >= 0) {\r\n\t\t\t\t\t\t\t\tif (options.shouldKeepComment) {\r\n\t\t\t\t\t\t\t\t\toptions.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tadvance(commentEnd + 3);\r\n\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\r\n\t\t\t\t\t\tif (conditionalComment.test(html)) {\r\n\t\t\t\t\t\t\tvar conditionalEnd = html.indexOf(']>');\r\n\r\n\t\t\t\t\t\t\tif (conditionalEnd >= 0) {\r\n\t\t\t\t\t\t\t\tadvance(conditionalEnd + 2);\r\n\t\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Doctype:\r\n\t\t\t\t\t\tvar doctypeMatch = html.match(doctype);\r\n\t\t\t\t\t\tif (doctypeMatch) {\r\n\t\t\t\t\t\t\tadvance(doctypeMatch[0].length);\r\n\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// End tag:\r\n\t\t\t\t\t\tvar endTagMatch = html.match(endTag);\r\n\t\t\t\t\t\tif (endTagMatch) {\r\n\t\t\t\t\t\t\tvar curIndex = index;\r\n\t\t\t\t\t\t\tadvance(endTagMatch[0].length);\r\n\t\t\t\t\t\t\tparseEndTag(endTagMatch[1], curIndex, index);\r\n\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Start tag:\r\n\t\t\t\t\t\tvar startTagMatch = parseStartTag();\r\n\t\t\t\t\t\tif (startTagMatch) {\r\n\t\t\t\t\t\t\thandleStartTag(startTagMatch);\r\n\t\t\t\t\t\t\tif (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\r\n\t\t\t\t\t\t\t\tadvance(1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontinue\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar text = (void 0), rest = (void 0), next = (void 0);\r\n\t\t\t\t\tif (textEnd >= 0) {\r\n\t\t\t\t\t\trest = html.slice(textEnd);\r\n\t\t\t\t\t\twhile (\r\n\t\t\t\t\t\t\t!endTag.test(rest) &&\r\n\t\t\t\t\t\t\t!startTagOpen.test(rest) &&\r\n\t\t\t\t\t\t\t!comment.test(rest) &&\r\n\t\t\t\t\t\t\t!conditionalComment.test(rest)\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t// < in plain text, be forgiving and treat it as text\r\n\t\t\t\t\t\t\tnext = rest.indexOf('<', 1);\r\n\t\t\t\t\t\t\tif (next < 0) { break }\r\n\t\t\t\t\t\t\ttextEnd += next;\r\n\t\t\t\t\t\t\trest = html.slice(textEnd);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttext = html.substring(0, textEnd);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (textEnd < 0) {\r\n\t\t\t\t\t\ttext = html;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (text) {\r\n\t\t\t\t\t\tadvance(text.length);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (options.chars && text) {\r\n\t\t\t\t\t\toptions.chars(text, index - text.length, index);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar endTagLength = 0;\r\n\t\t\t\t\tvar stackedTag = lastTag.toLowerCase();\r\n\t\t\t\t\tvar reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\r\n\t\t\t\t\tvar rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\r\n\t\t\t\t\t\tendTagLength = endTag.length;\r\n\t\t\t\t\t\tif (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\r\n\t\t\t\t\t\t\ttext = text\r\n\t\t\t\t\t\t\t\t.replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\r\n\t\t\t\t\t\t\t\t.replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (shouldIgnoreFirstNewline(stackedTag, text)) {\r\n\t\t\t\t\t\t\ttext = text.slice(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (options.chars) {\r\n\t\t\t\t\t\t\toptions.chars(text);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ''\r\n\t\t\t\t\t});\r\n\t\t\t\t\tindex += html.length - rest$1.length;\r\n\t\t\t\t\thtml = rest$1;\r\n\t\t\t\t\tparseEndTag(stackedTag, index - endTagLength, index);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (html === last) {\r\n\t\t\t\t\toptions.chars && options.chars(html);\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Clean up any remaining tags\r\n\t\t\tparseEndTag();\r\n\r\n\t\t\tfunction advance(n) {\r\n\t\t\t\tindex += n;\r\n\t\t\t\thtml = html.substring(n);\r\n\t\t\t}\r\n\r\n\t\t\tfunction parseStartTag() {\r\n\t\t\t\tvar start = html.match(startTagOpen);\r\n\t\t\t\tif (start) {\r\n\t\t\t\t\tvar match = {\r\n\t\t\t\t\t\ttagName: start[1],\r\n\t\t\t\t\t\tattrs: [],\r\n\t\t\t\t\t\tstart: index\r\n\t\t\t\t\t};\r\n\t\t\t\t\tadvance(start[0].length);\r\n\t\t\t\t\tvar end, attr;\r\n\t\t\t\t\twhile (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\r\n\t\t\t\t\t\tattr.start = index;\r\n\t\t\t\t\t\tadvance(attr[0].length);\r\n\t\t\t\t\t\tattr.end = index;\r\n\t\t\t\t\t\tmatch.attrs.push(attr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (end) {\r\n\t\t\t\t\t\tmatch.unarySlash = end[1];\r\n\t\t\t\t\t\tadvance(end[0].length);\r\n\t\t\t\t\t\tmatch.end = index;\r\n\t\t\t\t\t\treturn match\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction handleStartTag(match) {\r\n\t\t\t\tvar tagName = match.tagName;\r\n\t\t\t\tvar unarySlash = match.unarySlash;\r\n\r\n\t\t\t\tif (expectHTML) {\r\n\t\t\t\t\tif (lastTag === 'p' && isNonPhrasingTag(tagName)) {\r\n\t\t\t\t\t\tparseEndTag(lastTag);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\r\n\t\t\t\t\t\tparseEndTag(tagName);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar unary = isUnaryTag$$1(tagName) || !!unarySlash;\r\n\r\n\t\t\t\tvar l = match.attrs.length;\r\n\t\t\t\tvar attrs = new Array(l);\r\n\t\t\t\tfor (var i = 0; i < l; i++) {\r\n\t\t\t\t\tvar args = match.attrs[i];\r\n\t\t\t\t\tvar value = args[3] || args[4] || args[5] || '';\r\n\t\t\t\t\tvar shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\r\n\t\t\t\t\t\t? options.shouldDecodeNewlinesForHref\r\n\t\t\t\t\t\t: options.shouldDecodeNewlines;\r\n\t\t\t\t\tattrs[i] = {\r\n\t\t\t\t\t\tname: args[1],\r\n\t\t\t\t\t\tvalue: decodeAttr(value, shouldDecodeNewlines)\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!unary) {\r\n\t\t\t\t\tstack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });\r\n\t\t\t\t\tlastTag = tagName;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.start) {\r\n\t\t\t\t\toptions.start(tagName, attrs, unary, match.start, match.end);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction parseEndTag(tagName, start, end) {\r\n\t\t\t\tvar pos, lowerCasedTagName;\r\n\t\t\t\tif (start == null) { start = index; }\r\n\t\t\t\tif (end == null) { end = index; }\r\n\r\n\t\t\t\t// Find the closest opened tag of the same type\r\n\t\t\t\tif (tagName) {\r\n\t\t\t\t\tlowerCasedTagName = tagName.toLowerCase();\r\n\t\t\t\t\tfor (pos = stack.length - 1; pos >= 0; pos--) {\r\n\t\t\t\t\t\tif (stack[pos].lowerCasedTag === lowerCasedTagName) {\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// If no tag name is provided, clean shop\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (pos >= 0) {\r\n\t\t\t\t\t// Close all the open elements, up the stack\r\n\t\t\t\t\tfor (var i = stack.length - 1; i >= pos; i--) {\r\n\t\t\t\t\t\tif (false\r\n\t\t\t\t\t\t) { }\r\n\t\t\t\t\t\tif (options.end) {\r\n\t\t\t\t\t\t\toptions.end(stack[i].tag, start, end);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove the open elements from the stack\r\n\t\t\t\t\tstack.length = pos;\r\n\t\t\t\t\tlastTag = pos && stack[pos - 1].tag;\r\n\t\t\t\t} else if (lowerCasedTagName === 'br') {\r\n\t\t\t\t\tif (options.start) {\r\n\t\t\t\t\t\toptions.start(tagName, [], true, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (lowerCasedTagName === 'p') {\r\n\t\t\t\t\tif (options.start) {\r\n\t\t\t\t\t\toptions.start(tagName, [], false, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (options.end) {\r\n\t\t\t\t\t\toptions.end(tagName, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar onRE = /^@|^v-on:/;\r\n\t\tvar dirRE = /^v-|^@|^:|^#/;\r\n\t\tvar forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\r\n\t\tvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\r\n\t\tvar stripParensRE = /^\\(|\\)$/g;\r\n\t\tvar dynamicArgRE = /^\\[.*\\]$/;\r\n\r\n\t\tvar argRE = /:(.*)$/;\r\n\t\tvar bindRE = /^:|^\\.|^v-bind:/;\r\n\t\tvar modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\r\n\r\n\t\tvar slotRE = /^v-slot(:|$)|^#/;\r\n\r\n\t\tvar lineBreakRE = /[\\r\\n]/;\r\n\t\tvar whitespaceRE$1 = /[ \\f\\t\\r\\n]+/g;\r\n\r\n\t\tvar invalidAttributeRE = /[\\s\"'<>\\/=]/;\r\n\r\n\t\tvar decodeHTMLCached = cached(he.decode);\r\n\r\n\t\tvar emptySlotScopeToken = \"_empty_\";\r\n\r\n\t\t// configurable state\r\n\t\tvar warn$2;\r\n\t\tvar delimiters;\r\n\t\tvar transforms;\r\n\t\tvar preTransforms;\r\n\t\tvar postTransforms;\r\n\t\tvar platformIsPreTag;\r\n\t\tvar platformMustUseProp;\r\n\t\tvar platformGetTagNamespace;\r\n\t\tvar maybeComponent;\r\n\r\n\t\tfunction createASTElement(\r\n\t\t\ttag,\r\n\t\t\tattrs,\r\n\t\t\tparent\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\ttype: 1,\r\n\t\t\t\ttag: tag,\r\n\t\t\t\tattrsList: attrs,\r\n\t\t\t\tattrsMap: makeAttrsMap(attrs),\r\n\t\t\t\trawAttrsMap: {},\r\n\t\t\t\tparent: parent,\r\n\t\t\t\tchildren: []\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Convert HTML string to AST.\r\n\t\t */\r\n\t\tfunction parse(\r\n\t\t\ttemplate,\r\n\t\t\toptions\r\n\t\t) {\r\n\t\t\twarn$2 = options.warn || baseWarn;\r\n\r\n\t\t\tplatformIsPreTag = options.isPreTag || no;\r\n\t\t\tplatformMustUseProp = options.mustUseProp || no;\r\n\t\t\tplatformGetTagNamespace = options.getTagNamespace || no;\r\n\t\t\tvar isReservedTag = options.isReservedTag || no;\r\n\t\t\tmaybeComponent = function (el) {\r\n\t\t\t\treturn !!(\r\n\t\t\t\t\tel.component ||\r\n\t\t\t\t\tel.attrsMap[':is'] ||\r\n\t\t\t\t\tel.attrsMap['v-bind:is'] ||\r\n\t\t\t\t\t!(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag))\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\ttransforms = pluckModuleFunction(options.modules, 'transformNode');\r\n\t\t\tpreTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\r\n\t\t\tpostTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\r\n\r\n\t\t\tdelimiters = options.delimiters;\r\n\r\n\t\t\tvar stack = [];\r\n\t\t\tvar preserveWhitespace = options.preserveWhitespace !== false;\r\n\t\t\tvar whitespaceOption = options.whitespace;\r\n\t\t\tvar root;\r\n\t\t\tvar currentParent;\r\n\t\t\tvar inVPre = false;\r\n\t\t\tvar inPre = false;\r\n\t\t\tvar warned = false;\r\n\r\n\t\t\tfunction warnOnce(msg, range) {\r\n\t\t\t\tif (!warned) {\r\n\t\t\t\t\twarned = true;\r\n\t\t\t\t\twarn$2(msg, range);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction closeElement(element) {\r\n\t\t\t\ttrimEndingWhitespace(element);\r\n\t\t\t\tif (!inVPre && !element.processed) {\r\n\t\t\t\t\telement = processElement(element, options);\r\n\t\t\t\t}\r\n\t\t\t\t// tree management\r\n\t\t\t\tif (!stack.length && element !== root) {\r\n\t\t\t\t\t// allow root elements with v-if, v-else-if and v-else\r\n\t\t\t\t\tif (root.if && (element.elseif || element.else)) {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\taddIfCondition(root, {\r\n\t\t\t\t\t\t\texp: element.elseif,\r\n\t\t\t\t\t\t\tblock: element\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (false) { }\r\n\t\t\t\t}\r\n\t\t\t\tif (currentParent && !element.forbidden) {\r\n\t\t\t\t\tif (element.elseif || element.else) {\r\n\t\t\t\t\t\tprocessIfConditions(element, currentParent);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (element.slotScope) {\r\n\t\t\t\t\t\t\t// scoped slot\r\n\t\t\t\t\t\t\t// keep it in the children list so that v-else(-if) conditions can\r\n\t\t\t\t\t\t\t// find it as the prev node.\r\n\t\t\t\t\t\t\tvar name = element.slotTarget || '\"default\"'\r\n\t\t\t\t\t\t\t\t; (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcurrentParent.children.push(element);\r\n\t\t\t\t\t\telement.parent = currentParent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// final children cleanup\r\n\t\t\t\t// filter out scoped slots\r\n\t\t\t\telement.children = element.children.filter(function (c) { return !(c).slotScope; });\r\n\t\t\t\t// remove trailing whitespace node again\r\n\t\t\t\ttrimEndingWhitespace(element);\r\n\r\n\t\t\t\t// check pre state\r\n\t\t\t\tif (element.pre) {\r\n\t\t\t\t\tinVPre = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (platformIsPreTag(element.tag)) {\r\n\t\t\t\t\tinPre = false;\r\n\t\t\t\t}\r\n\t\t\t\t// apply post-transforms\r\n\t\t\t\tfor (var i = 0; i < postTransforms.length; i++) {\r\n\t\t\t\t\tpostTransforms[i](element, options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction trimEndingWhitespace(el) {\r\n\t\t\t\t// remove trailing whitespace node\r\n\t\t\t\tif (!inPre) {\r\n\t\t\t\t\tvar lastNode;\r\n\t\t\t\t\twhile (\r\n\t\t\t\t\t\t(lastNode = el.children[el.children.length - 1]) &&\r\n\t\t\t\t\t\tlastNode.type === 3 &&\r\n\t\t\t\t\t\tlastNode.text === ' '\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tel.children.pop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction checkRootConstraints(el) {\r\n\t\t\t\tif (el.tag === 'slot' || el.tag === 'template') {\r\n\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t\"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\r\n\t\t\t\t\t\t'contain multiple nodes.',\r\n\t\t\t\t\t\t{ start: el.start }\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tif (el.attrsMap.hasOwnProperty('v-for')) {\r\n\t\t\t\t\twarnOnce(\r\n\t\t\t\t\t\t'Cannot use v-for on stateful component root element because ' +\r\n\t\t\t\t\t\t'it renders multiple elements.',\r\n\t\t\t\t\t\tel.rawAttrsMap['v-for']\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tparseHTML(template, {\r\n\t\t\t\twarn: warn$2,\r\n\t\t\t\texpectHTML: options.expectHTML,\r\n\t\t\t\tisUnaryTag: options.isUnaryTag,\r\n\t\t\t\tcanBeLeftOpenTag: options.canBeLeftOpenTag,\r\n\t\t\t\tshouldDecodeNewlines: options.shouldDecodeNewlines,\r\n\t\t\t\tshouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\r\n\t\t\t\tshouldKeepComment: options.comments,\r\n\t\t\t\toutputSourceRange: options.outputSourceRange,\r\n\t\t\t\tstart: function start(tag, attrs, unary, start$1, end) {\r\n\t\t\t\t\t// check namespace.\r\n\t\t\t\t\t// inherit parent ns if there is one\r\n\t\t\t\t\tvar ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\r\n\r\n\t\t\t\t\t// handle IE svg bug\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (isIE && ns === 'svg') {\r\n\t\t\t\t\t\tattrs = guardIESVGBug(attrs);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar element = createASTElement(tag, attrs, currentParent);\r\n\t\t\t\t\tif (ns) {\r\n\t\t\t\t\t\telement.ns = ns;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t\tif (isForbiddenTag(element) && !isServerRendering()) {\r\n\t\t\t\t\t\telement.forbidden = true;\r\n\t\t\t\t\t\tfalse && 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// apply pre-transforms\r\n\t\t\t\t\tfor (var i = 0; i < preTransforms.length; i++) {\r\n\t\t\t\t\t\telement = preTransforms[i](element, options) || element;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!inVPre) {\r\n\t\t\t\t\t\tprocessPre(element);\r\n\t\t\t\t\t\tif (element.pre) {\r\n\t\t\t\t\t\t\tinVPre = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (platformIsPreTag(element.tag)) {\r\n\t\t\t\t\t\tinPre = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (inVPre) {\r\n\t\t\t\t\t\tprocessRawAttrs(element);\r\n\t\t\t\t\t} else if (!element.processed) {\r\n\t\t\t\t\t\t// structural directives\r\n\t\t\t\t\t\tprocessFor(element);\r\n\t\t\t\t\t\tprocessIf(element);\r\n\t\t\t\t\t\tprocessOnce(element);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!root) {\r\n\t\t\t\t\t\troot = element;\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!unary) {\r\n\t\t\t\t\t\tcurrentParent = element;\r\n\t\t\t\t\t\tstack.push(element);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcloseElement(element);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tend: function end(tag, start, end$1) {\r\n\t\t\t\t\tvar element = stack[stack.length - 1];\r\n\t\t\t\t\t// pop stack\r\n\t\t\t\t\tstack.length -= 1;\r\n\t\t\t\t\tcurrentParent = stack[stack.length - 1];\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tcloseElement(element);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tchars: function chars(text, start, end) {\r\n\t\t\t\t\tif (!currentParent) {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// IE textarea placeholder bug\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (isIE &&\r\n\t\t\t\t\t\tcurrentParent.tag === 'textarea' &&\r\n\t\t\t\t\t\tcurrentParent.attrsMap.placeholder === text\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar children = currentParent.children;\r\n\t\t\t\t\tif (inPre || text.trim()) {\r\n\t\t\t\t\t\ttext = isTextTag(currentParent) ? text : decodeHTMLCached(text);\r\n\t\t\t\t\t} else if (!children.length) {\r\n\t\t\t\t\t\t// remove the whitespace-only node right after an opening tag\r\n\t\t\t\t\t\ttext = '';\r\n\t\t\t\t\t} else if (whitespaceOption) {\r\n\t\t\t\t\t\tif (whitespaceOption === 'condense') {\r\n\t\t\t\t\t\t\t// in condense mode, remove the whitespace node if it contains\r\n\t\t\t\t\t\t\t// line break, otherwise condense to a single space\r\n\t\t\t\t\t\t\ttext = lineBreakRE.test(text) ? '' : ' ';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttext = ' ';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttext = preserveWhitespace ? ' ' : '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (text) {\r\n\t\t\t\t\t\tif (!inPre && whitespaceOption === 'condense') {\r\n\t\t\t\t\t\t\t// condense consecutive whitespaces into single space\r\n\t\t\t\t\t\t\ttext = text.replace(whitespaceRE$1, ' ');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar res;\r\n\t\t\t\t\t\tvar child;\r\n\t\t\t\t\t\tif (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\r\n\t\t\t\t\t\t\tchild = {\r\n\t\t\t\t\t\t\t\ttype: 2,\r\n\t\t\t\t\t\t\t\texpression: res.expression,\r\n\t\t\t\t\t\t\t\ttokens: res.tokens,\r\n\t\t\t\t\t\t\t\ttext: text\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t} else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\r\n\t\t\t\t\t\t\tchild = {\r\n\t\t\t\t\t\t\t\ttype: 3,\r\n\t\t\t\t\t\t\t\ttext: text\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (child) {\r\n\t\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\t\tchildren.push(child);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcomment: function comment(text, start, end) {\r\n\t\t\t\t\t// adding anything as a sibling to the root node is forbidden\r\n\t\t\t\t\t// comments should still be allowed, but ignored\r\n\t\t\t\t\tif (currentParent) {\r\n\t\t\t\t\t\tvar child = {\r\n\t\t\t\t\t\t\ttype: 3,\r\n\t\t\t\t\t\t\ttext: text,\r\n\t\t\t\t\t\t\tisComment: true\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\tcurrentParent.children.push(child);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn root\r\n\t\t}\r\n\r\n\t\tfunction processPre(el) {\r\n\t\t\tif (getAndRemoveAttr(el, 'v-pre') != null) {\r\n\t\t\t\tel.pre = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processRawAttrs(el) {\r\n\t\t\tvar list = el.attrsList;\r\n\t\t\tvar len = list.length;\r\n\t\t\tif (len) {\r\n\t\t\t\tvar attrs = el.attrs = new Array(len);\r\n\t\t\t\tfor (var i = 0; i < len; i++) {\r\n\t\t\t\t\tattrs[i] = {\r\n\t\t\t\t\t\tname: list[i].name,\r\n\t\t\t\t\t\tvalue: JSON.stringify(list[i].value)\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (list[i].start != null) {\r\n\t\t\t\t\t\tattrs[i].start = list[i].start;\r\n\t\t\t\t\t\tattrs[i].end = list[i].end;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (!el.pre) {\r\n\t\t\t\t// non root node in pre blocks with no attributes\r\n\t\t\t\tel.plain = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processElement(\r\n\t\t\telement,\r\n\t\t\toptions\r\n\t\t) {\r\n\t\t\tprocessKey(element);\r\n\r\n\t\t\t// determine whether this is a plain element after\r\n\t\t\t// removing structural attributes\r\n\t\t\telement.plain = (\r\n\t\t\t\t!element.key &&\r\n\t\t\t\t!element.scopedSlots &&\r\n\t\t\t\t!element.attrsList.length\r\n\t\t\t);\r\n\r\n\t\t\tprocessRef(element);\r\n\t\t\tprocessSlotContent(element);\r\n\t\t\tprocessSlotOutlet(element);\r\n\t\t\tprocessComponent(element);\r\n\t\t\tfor (var i = 0; i < transforms.length; i++) {\r\n\t\t\t\telement = transforms[i](element, options) || element;\r\n\t\t\t}\r\n\t\t\tprocessAttrs(element);\r\n\t\t\treturn element\r\n\t\t}\r\n\r\n\t\tfunction processKey(el) {\r\n\t\t\tvar exp = getBindingAttr(el, 'key');\r\n\t\t\tif (exp) {\r\n\t\t\t\tif (false) { var parent, iterator; }\r\n\t\t\t\tel.key = exp;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processRef(el) {\r\n\t\t\tvar ref = getBindingAttr(el, 'ref');\r\n\t\t\tif (ref) {\r\n\t\t\t\tel.ref = ref;\r\n\t\t\t\tel.refInFor = checkInFor(el);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processFor(el) {\r\n\t\t\tvar exp;\r\n\t\t\tif ((exp = getAndRemoveAttr(el, 'v-for'))) {\r\n\t\t\t\tvar res = parseFor(exp);\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\textend(el, res);\r\n\t\t\t\t} else if (false) { }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\tfunction parseFor(exp) {\r\n\t\t\tvar inMatch = exp.match(forAliasRE);\r\n\t\t\tif (!inMatch) { return }\r\n\t\t\tvar res = {};\r\n\t\t\tres.for = inMatch[2].trim();\r\n\t\t\tvar alias = inMatch[1].trim().replace(stripParensRE, '');\r\n\t\t\tvar iteratorMatch = alias.match(forIteratorRE);\r\n\t\t\tif (iteratorMatch) {\r\n\t\t\t\tres.alias = alias.replace(forIteratorRE, '').trim();\r\n\t\t\t\tres.iterator1 = iteratorMatch[1].trim();\r\n\t\t\t\tif (iteratorMatch[2]) {\r\n\t\t\t\t\tres.iterator2 = iteratorMatch[2].trim();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tres.alias = alias;\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction processIf(el) {\r\n\t\t\tvar exp = getAndRemoveAttr(el, 'v-if');\r\n\t\t\tif (exp) {\r\n\t\t\t\tel.if = exp;\r\n\t\t\t\taddIfCondition(el, {\r\n\t\t\t\t\texp: exp,\r\n\t\t\t\t\tblock: el\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tif (getAndRemoveAttr(el, 'v-else') != null) {\r\n\t\t\t\t\tel.else = true;\r\n\t\t\t\t}\r\n\t\t\t\tvar elseif = getAndRemoveAttr(el, 'v-else-if');\r\n\t\t\t\tif (elseif) {\r\n\t\t\t\t\tel.elseif = elseif;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processIfConditions(el, parent) {\r\n\t\t\tvar prev = findPrevElement(parent.children);\r\n\t\t\tif (prev && prev.if) {\r\n\t\t\t\taddIfCondition(prev, {\r\n\t\t\t\t\texp: el.elseif,\r\n\t\t\t\t\tblock: el\r\n\t\t\t\t});\r\n\t\t\t} else if (false) { }\r\n\t\t}\r\n\r\n\t\tfunction findPrevElement(children) {\r\n\t\t\tvar i = children.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tif (children[i].type === 1) {\r\n\t\t\t\t\treturn children[i]\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tchildren.pop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction addIfCondition(el, condition) {\r\n\t\t\tif (!el.ifConditions) {\r\n\t\t\t\tel.ifConditions = [];\r\n\t\t\t}\r\n\t\t\tel.ifConditions.push(condition);\r\n\t\t}\r\n\r\n\t\tfunction processOnce(el) {\r\n\t\t\tvar once$$1 = getAndRemoveAttr(el, 'v-once');\r\n\t\t\tif (once$$1 != null) {\r\n\t\t\t\tel.once = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// handle content being passed to a component as slot,\r\n\t\t// e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\r\n\t\tfunction processSlotContent(el) {\r\n\t\t\tvar slotScope;\r\n\t\t\tif (el.tag === 'template') {\r\n\t\t\t\tslotScope = getAndRemoveAttr(el, 'scope');\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\t\t\t\tel.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\r\n\t\t\t} else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\t\t\t\tel.slotScope = slotScope;\r\n\t\t\t}\r\n\r\n\t\t\t// slot=\"xxx\"\r\n\t\t\tvar slotTarget = getBindingAttr(el, 'slot');\r\n\t\t\tif (slotTarget) {\r\n\t\t\t\tel.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\r\n\t\t\t\tel.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\r\n\t\t\t\t// preserve slot as an attribute for native shadow DOM compat\r\n\t\t\t\t// only for non-scoped slots.\r\n\t\t\t\tif (el.tag !== 'template' && !el.slotScope) {\r\n\t\t\t\t\taddAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// 2.6 v-slot syntax\r\n\t\t\t{\r\n\t\t\t\tif (el.tag === 'template') {\r\n\t\t\t\t\t// v-slot on <template>\r\n\t\t\t\t\tvar slotBinding = getAndRemoveAttrByRegex(el, slotRE);\r\n\t\t\t\t\tif (slotBinding) {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\tvar ref = getSlotName(slotBinding);\r\n\t\t\t\t\t\tvar name = ref.name;\r\n\t\t\t\t\t\tvar dynamic = ref.dynamic;\r\n\t\t\t\t\t\tel.slotTarget = name;\r\n\t\t\t\t\t\tel.slotTargetDynamic = dynamic;\r\n\t\t\t\t\t\tel.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// v-slot on component, denotes default slot\r\n\t\t\t\t\tvar slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);\r\n\t\t\t\t\tif (slotBinding$1) {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\t// add the component's children to its default slot\r\n\t\t\t\t\t\tvar slots = el.scopedSlots || (el.scopedSlots = {});\r\n\t\t\t\t\t\tvar ref$1 = getSlotName(slotBinding$1);\r\n\t\t\t\t\t\tvar name$1 = ref$1.name;\r\n\t\t\t\t\t\tvar dynamic$1 = ref$1.dynamic;\r\n\t\t\t\t\t\tvar slotContainer = slots[name$1] = createASTElement('template', [], el);\r\n\t\t\t\t\t\tslotContainer.slotTarget = name$1;\r\n\t\t\t\t\t\tslotContainer.slotTargetDynamic = dynamic$1;\r\n\t\t\t\t\t\tslotContainer.children = el.children.filter(function (c) {\r\n\t\t\t\t\t\t\tif (!c.slotScope) {\r\n\t\t\t\t\t\t\t\tc.parent = slotContainer;\r\n\t\t\t\t\t\t\t\treturn true\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tslotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken;\r\n\t\t\t\t\t\t// remove children as they are returned from scopedSlots now\r\n\t\t\t\t\t\tel.children = [];\r\n\t\t\t\t\t\t// mark el non-plain so data gets generated\r\n\t\t\t\t\t\tel.plain = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getSlotName(binding) {\r\n\t\t\tvar name = binding.name.replace(slotRE, '');\r\n\t\t\tif (!name) {\r\n\t\t\t\tif (binding.name[0] !== '#') {\r\n\t\t\t\t\tname = 'default';\r\n\t\t\t\t} else if (false) { }\r\n\t\t\t}\r\n\t\t\treturn dynamicArgRE.test(name)\r\n\t\t\t\t// dynamic [name]\r\n\t\t\t\t? { name: name.slice(1, -1), dynamic: true }\r\n\t\t\t\t// static name\r\n\t\t\t\t: { name: (\"\\\"\" + name + \"\\\"\"), dynamic: false }\r\n\t\t}\r\n\r\n\t\t// handle <slot/> outlets\r\n\t\tfunction processSlotOutlet(el) {\r\n\t\t\tif (el.tag === 'slot') {\r\n\t\t\t\tel.slotName = getBindingAttr(el, 'name');\r\n\t\t\t\tif (false) { }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processComponent(el) {\r\n\t\t\tvar binding;\r\n\t\t\tif ((binding = getBindingAttr(el, 'is'))) {\r\n\t\t\t\tel.component = binding;\r\n\t\t\t}\r\n\t\t\tif (getAndRemoveAttr(el, 'inline-template') != null) {\r\n\t\t\t\tel.inlineTemplate = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction processAttrs(el) {\r\n\t\t\tvar list = el.attrsList;\r\n\t\t\tvar i, l, name, rawName, value, modifiers, syncGen, isDynamic;\r\n\t\t\tfor (i = 0, l = list.length; i < l; i++) {\r\n\t\t\t\tname = rawName = list[i].name;\r\n\t\t\t\tvalue = list[i].value;\r\n\t\t\t\tif (dirRE.test(name)) {\r\n\t\t\t\t\t// mark element as dynamic\r\n\t\t\t\t\tel.hasBindings = true;\r\n\t\t\t\t\t// modifiers\r\n\t\t\t\t\tmodifiers = parseModifiers(name.replace(dirRE, ''));\r\n\t\t\t\t\t// support .foo shorthand syntax for the .prop modifier\r\n\t\t\t\t\tif (modifiers) {\r\n\t\t\t\t\t\tname = name.replace(modifierRE, '');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (bindRE.test(name)) { // v-bind\r\n\t\t\t\t\t\tname = name.replace(bindRE, '');\r\n\t\t\t\t\t\tvalue = parseFilters(value);\r\n\t\t\t\t\t\tisDynamic = dynamicArgRE.test(name);\r\n\t\t\t\t\t\tif (isDynamic) {\r\n\t\t\t\t\t\t\tname = name.slice(1, -1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tfalse\r\n\t\t\t\t\t\t) { }\r\n\t\t\t\t\t\tif (modifiers) {\r\n\t\t\t\t\t\t\tif (modifiers.prop && !isDynamic) {\r\n\t\t\t\t\t\t\t\tname = camelize(name);\r\n\t\t\t\t\t\t\t\tif (name === 'innerHtml') { name = 'innerHTML'; }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (modifiers.camel && !isDynamic) {\r\n\t\t\t\t\t\t\t\tname = camelize(name);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (modifiers.sync) {\r\n\t\t\t\t\t\t\t\tsyncGen = genAssignmentCode(value, \"$event\");\r\n\t\t\t\t\t\t\t\tif (!isDynamic) {\r\n\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t(\"update:\" + (camelize(name))),\r\n\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\twarn$2,\r\n\t\t\t\t\t\t\t\t\t\tlist[i]\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\tif (hyphenate(name) !== camelize(name)) {\r\n\t\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t\t(\"update:\" + (hyphenate(name))),\r\n\t\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\t\twarn$2,\r\n\t\t\t\t\t\t\t\t\t\t\tlist[i]\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t// handler w/ dynamic event name\r\n\t\t\t\t\t\t\t\t\taddHandler(\r\n\t\t\t\t\t\t\t\t\t\tel,\r\n\t\t\t\t\t\t\t\t\t\t(\"\\\"update:\\\"+(\" + name + \")\"),\r\n\t\t\t\t\t\t\t\t\t\tsyncGen,\r\n\t\t\t\t\t\t\t\t\t\tnull,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\twarn$2,\r\n\t\t\t\t\t\t\t\t\t\tlist[i],\r\n\t\t\t\t\t\t\t\t\t\ttrue // dynamic\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ((modifiers && modifiers.prop) || (\r\n\t\t\t\t\t\t\t!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\r\n\t\t\t\t\t\t)) {\r\n\t\t\t\t\t\t\taddProp(el, name, value, list[i], isDynamic);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\taddAttr(el, name, value, list[i], isDynamic);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (onRE.test(name)) { // v-on\r\n\t\t\t\t\t\tname = name.replace(onRE, '');\r\n\t\t\t\t\t\tisDynamic = dynamicArgRE.test(name);\r\n\t\t\t\t\t\tif (isDynamic) {\r\n\t\t\t\t\t\t\tname = name.slice(1, -1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);\r\n\t\t\t\t\t} else { // normal directives\r\n\t\t\t\t\t\tname = name.replace(dirRE, '');\r\n\t\t\t\t\t\t// parse arg\r\n\t\t\t\t\t\tvar argMatch = name.match(argRE);\r\n\t\t\t\t\t\tvar arg = argMatch && argMatch[1];\r\n\t\t\t\t\t\tisDynamic = false;\r\n\t\t\t\t\t\tif (arg) {\r\n\t\t\t\t\t\t\tname = name.slice(0, -(arg.length + 1));\r\n\t\t\t\t\t\t\tif (dynamicArgRE.test(arg)) {\r\n\t\t\t\t\t\t\t\targ = arg.slice(1, -1);\r\n\t\t\t\t\t\t\t\tisDynamic = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// literal attribute\r\n\t\t\t\t\tif (false) { var res; }\r\n\t\t\t\t\taddAttr(el, name, JSON.stringify(value), list[i]);\r\n\t\t\t\t\t// #6887 firefox doesn't update muted state if set via attribute\r\n\t\t\t\t\t// even immediately after element creation\r\n\t\t\t\t\tif (!el.component &&\r\n\t\t\t\t\t\tname === 'muted' &&\r\n\t\t\t\t\t\tplatformMustUseProp(el.tag, el.attrsMap.type, name)) {\r\n\t\t\t\t\t\taddProp(el, name, 'true', list[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkInFor(el) {\r\n\t\t\tvar parent = el;\r\n\t\t\twhile (parent) {\r\n\t\t\t\tif (parent.for !== undefined) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t\tparent = parent.parent;\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfunction parseModifiers(name) {\r\n\t\t\tvar match = name.match(modifierRE);\r\n\t\t\tif (match) {\r\n\t\t\t\tvar ret = {};\r\n\t\t\t\tmatch.forEach(function (m) { ret[m.slice(1)] = true; });\r\n\t\t\t\treturn ret\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction makeAttrsMap(attrs) {\r\n\t\t\tvar map = {};\r\n\t\t\tfor (var i = 0, l = attrs.length; i < l; i++) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tfalse\r\n\t\t\t\t) { }\r\n\t\t\t\tmap[attrs[i].name] = attrs[i].value;\r\n\t\t\t}\r\n\t\t\treturn map\r\n\t\t}\r\n\r\n\t\t// for script (e.g. type=\"x/template\") or style, do not decode content\r\n\t\tfunction isTextTag(el) {\r\n\t\t\treturn el.tag === 'script' || el.tag === 'style'\r\n\t\t}\r\n\r\n\t\tfunction isForbiddenTag(el) {\r\n\t\t\treturn (\r\n\t\t\t\tel.tag === 'style' ||\r\n\t\t\t\t(el.tag === 'script' && (\r\n\t\t\t\t\t!el.attrsMap.type ||\r\n\t\t\t\t\tel.attrsMap.type === 'text/javascript'\r\n\t\t\t\t))\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tvar ieNSBug = /^xmlns:NS\\d+/;\r\n\t\tvar ieNSPrefix = /^NS\\d+:/;\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tfunction guardIESVGBug(attrs) {\r\n\t\t\tvar res = [];\r\n\t\t\tfor (var i = 0; i < attrs.length; i++) {\r\n\t\t\t\tvar attr = attrs[i];\r\n\t\t\t\tif (!ieNSBug.test(attr.name)) {\r\n\t\t\t\t\tattr.name = attr.name.replace(ieNSPrefix, '');\r\n\t\t\t\t\tres.push(attr);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction checkForAliasModel(el, value) {\r\n\t\t\tvar _el = el;\r\n\t\t\twhile (_el) {\r\n\t\t\t\tif (_el.for && _el.alias === value) {\r\n\t\t\t\t\twarn$2(\r\n\t\t\t\t\t\t\"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\r\n\t\t\t\t\t\t\"You are binding v-model directly to a v-for iteration alias. \" +\r\n\t\t\t\t\t\t\"This will not be able to modify the v-for source array because \" +\r\n\t\t\t\t\t\t\"writing to the alias is like modifying a function local variable. \" +\r\n\t\t\t\t\t\t\"Consider using an array of objects and use v-model on an object property instead.\",\r\n\t\t\t\t\t\tel.rawAttrsMap['v-model']\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\t_el = _el.parent;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction preTransformNode(el, options) {\r\n\t\t\tif (el.tag === 'input') {\r\n\t\t\t\tvar map = el.attrsMap;\r\n\t\t\t\tif (!map['v-model']) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar typeBinding;\r\n\t\t\t\tif (map[':type'] || map['v-bind:type']) {\r\n\t\t\t\t\ttypeBinding = getBindingAttr(el, 'type');\r\n\t\t\t\t}\r\n\t\t\t\tif (!map.type && !typeBinding && map['v-bind']) {\r\n\t\t\t\t\ttypeBinding = \"(\" + (map['v-bind']) + \").type\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeBinding) {\r\n\t\t\t\t\tvar ifCondition = getAndRemoveAttr(el, 'v-if', true);\r\n\t\t\t\t\tvar ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\r\n\t\t\t\t\tvar hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\r\n\t\t\t\t\tvar elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\r\n\t\t\t\t\t// 1. checkbox\r\n\t\t\t\t\tvar branch0 = cloneASTElement(el);\r\n\t\t\t\t\t// process for on the main node\r\n\t\t\t\t\tprocessFor(branch0);\r\n\t\t\t\t\taddRawAttr(branch0, 'type', 'checkbox');\r\n\t\t\t\t\tprocessElement(branch0, options);\r\n\t\t\t\t\tbranch0.processed = true; // prevent it from double-processed\r\n\t\t\t\t\tbranch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\r\n\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\texp: branch0.if,\r\n\t\t\t\t\t\tblock: branch0\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// 2. add radio else-if condition\r\n\t\t\t\t\tvar branch1 = cloneASTElement(el);\r\n\t\t\t\t\tgetAndRemoveAttr(branch1, 'v-for', true);\r\n\t\t\t\t\taddRawAttr(branch1, 'type', 'radio');\r\n\t\t\t\t\tprocessElement(branch1, options);\r\n\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\texp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\r\n\t\t\t\t\t\tblock: branch1\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// 3. other\r\n\t\t\t\t\tvar branch2 = cloneASTElement(el);\r\n\t\t\t\t\tgetAndRemoveAttr(branch2, 'v-for', true);\r\n\t\t\t\t\taddRawAttr(branch2, ':type', typeBinding);\r\n\t\t\t\t\tprocessElement(branch2, options);\r\n\t\t\t\t\taddIfCondition(branch0, {\r\n\t\t\t\t\t\texp: ifCondition,\r\n\t\t\t\t\t\tblock: branch2\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (hasElse) {\r\n\t\t\t\t\t\tbranch0.else = true;\r\n\t\t\t\t\t} else if (elseIfCondition) {\r\n\t\t\t\t\t\tbranch0.elseif = elseIfCondition;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn branch0\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction cloneASTElement(el) {\r\n\t\t\treturn createASTElement(el.tag, el.attrsList.slice(), el.parent)\r\n\t\t}\r\n\r\n\t\tvar model$1 = {\r\n\t\t\tpreTransformNode: preTransformNode\r\n\t\t};\r\n\r\n\t\tvar modules$1 = [\r\n\t\t\tklass$1,\r\n\t\t\tstyle$1,\r\n\t\t\tmodel$1\r\n\t\t];\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction vue_esm_text(el, dir) {\r\n\t\t\tif (dir.value) {\r\n\t\t\t\taddProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"), dir);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction html(el, dir) {\r\n\t\t\tif (dir.value) {\r\n\t\t\t\taddProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"), dir);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar directives$1 = {\r\n\t\t\tmodel: model,\r\n\t\t\ttext: vue_esm_text,\r\n\t\t\thtml: html\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar baseOptions = {\r\n\t\t\texpectHTML: true,\r\n\t\t\tmodules: modules$1,\r\n\t\t\tdirectives: directives$1,\r\n\t\t\tisPreTag: isPreTag,\r\n\t\t\tisUnaryTag: isUnaryTag,\r\n\t\t\tmustUseProp: mustUseProp,\r\n\t\t\tcanBeLeftOpenTag: canBeLeftOpenTag,\r\n\t\t\tisReservedTag: isReservedTag,\r\n\t\t\tgetTagNamespace: getTagNamespace,\r\n\t\t\tstaticKeys: genStaticKeys(modules$1)\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar isStaticKey;\r\n\t\tvar isPlatformReservedTag;\r\n\r\n\t\tvar genStaticKeysCached = cached(genStaticKeys$1);\r\n\r\n\t\t/**\r\n\t\t * Goal of the optimizer: walk the generated template AST tree\r\n\t\t * and detect sub-trees that are purely static, i.e. parts of\r\n\t\t * the DOM that never needs to change.\r\n\t\t *\r\n\t\t * Once we detect these sub-trees, we can:\r\n\t\t *\r\n\t\t * 1. Hoist them into constants, so that we no longer need to\r\n\t\t *    create fresh nodes for them on each re-render;\r\n\t\t * 2. Completely skip them in the patching process.\r\n\t\t */\r\n\t\tfunction optimize(root, options) {\r\n\t\t\tif (!root) { return }\r\n\t\t\tisStaticKey = genStaticKeysCached(options.staticKeys || '');\r\n\t\t\tisPlatformReservedTag = options.isReservedTag || no;\r\n\t\t\t// first pass: mark all non-static nodes.\r\n\t\t\tmarkStatic$1(root);\r\n\t\t\t// second pass: mark static roots.\r\n\t\t\tmarkStaticRoots(root, false);\r\n\t\t}\r\n\r\n\t\tfunction genStaticKeys$1(keys) {\r\n\t\t\treturn makeMap(\r\n\t\t\t\t'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\r\n\t\t\t\t(keys ? ',' + keys : '')\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tfunction markStatic$1(node) {\r\n\t\t\tnode.static = isStatic(node);\r\n\t\t\tif (node.type === 1) {\r\n\t\t\t\t// do not make component slot content static. this avoids\r\n\t\t\t\t// 1. components not able to mutate slot nodes\r\n\t\t\t\t// 2. static slot content fails for hot-reloading\r\n\t\t\t\tif (\r\n\t\t\t\t\t!isPlatformReservedTag(node.tag) &&\r\n\t\t\t\t\tnode.tag !== 'slot' &&\r\n\t\t\t\t\tnode.attrsMap['inline-template'] == null\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tfor (var i = 0, l = node.children.length; i < l; i++) {\r\n\t\t\t\t\tvar child = node.children[i];\r\n\t\t\t\t\tmarkStatic$1(child);\r\n\t\t\t\t\tif (!child.static) {\r\n\t\t\t\t\t\tnode.static = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (node.ifConditions) {\r\n\t\t\t\t\tfor (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\r\n\t\t\t\t\t\tvar block = node.ifConditions[i$1].block;\r\n\t\t\t\t\t\tmarkStatic$1(block);\r\n\t\t\t\t\t\tif (!block.static) {\r\n\t\t\t\t\t\t\tnode.static = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction markStaticRoots(node, isInFor) {\r\n\t\t\tif (node.type === 1) {\r\n\t\t\t\tif (node.static || node.once) {\r\n\t\t\t\t\tnode.staticInFor = isInFor;\r\n\t\t\t\t}\r\n\t\t\t\t// For a node to qualify as a static root, it should have children that\r\n\t\t\t\t// are not just static text. Otherwise the cost of hoisting out will\r\n\t\t\t\t// outweigh the benefits and it's better off to just always render it fresh.\r\n\t\t\t\tif (node.static && node.children.length && !(\r\n\t\t\t\t\tnode.children.length === 1 &&\r\n\t\t\t\t\tnode.children[0].type === 3\r\n\t\t\t\t)) {\r\n\t\t\t\t\tnode.staticRoot = true;\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnode.staticRoot = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (node.children) {\r\n\t\t\t\t\tfor (var i = 0, l = node.children.length; i < l; i++) {\r\n\t\t\t\t\t\tmarkStaticRoots(node.children[i], isInFor || !!node.for);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (node.ifConditions) {\r\n\t\t\t\t\tfor (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\r\n\t\t\t\t\t\tmarkStaticRoots(node.ifConditions[i$1].block, isInFor);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction isStatic(node) {\r\n\t\t\tif (node.type === 2) { // expression\r\n\t\t\t\treturn false\r\n\t\t\t}\r\n\t\t\tif (node.type === 3) { // text\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\treturn !!(node.pre || (\r\n\t\t\t\t!node.hasBindings && // no dynamic bindings\r\n\t\t\t\t!node.if && !node.for && // not v-if or v-for or v-else\r\n\t\t\t\t!isBuiltInTag(node.tag) && // not a built-in\r\n\t\t\t\tisPlatformReservedTag(node.tag) && // not a component\r\n\t\t\t\t!isDirectChildOfTemplateFor(node) &&\r\n\t\t\t\tObject.keys(node).every(isStaticKey)\r\n\t\t\t))\r\n\t\t}\r\n\r\n\t\tfunction isDirectChildOfTemplateFor(node) {\r\n\t\t\twhile (node.parent) {\r\n\t\t\t\tnode = node.parent;\r\n\t\t\t\tif (node.tag !== 'template') {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t\tif (node.for) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\r\n\t\tvar fnInvokeRE = /\\([^)]*?\\);*$/;\r\n\t\tvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\r\n\r\n\t\t// KeyboardEvent.keyCode aliases\r\n\t\tvar keyCodes = {\r\n\t\t\tesc: 27,\r\n\t\t\ttab: 9,\r\n\t\t\tenter: 13,\r\n\t\t\tspace: 32,\r\n\t\t\tup: 38,\r\n\t\t\tleft: 37,\r\n\t\t\tright: 39,\r\n\t\t\tdown: 40,\r\n\t\t\t'delete': [8, 46]\r\n\t\t};\r\n\r\n\t\t// KeyboardEvent.key aliases\r\n\t\tvar keyNames = {\r\n\t\t\t// #7880: IE11 and Edge use `Esc` for Escape key name.\r\n\t\t\tesc: ['Esc', 'Escape'],\r\n\t\t\ttab: 'Tab',\r\n\t\t\tenter: 'Enter',\r\n\t\t\t// #9112: IE11 uses `Spacebar` for Space key name.\r\n\t\t\tspace: [' ', 'Spacebar'],\r\n\t\t\t// #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\r\n\t\t\tup: ['Up', 'ArrowUp'],\r\n\t\t\tleft: ['Left', 'ArrowLeft'],\r\n\t\t\tright: ['Right', 'ArrowRight'],\r\n\t\t\tdown: ['Down', 'ArrowDown'],\r\n\t\t\t// #9112: IE11 uses `Del` for Delete key name.\r\n\t\t\t'delete': ['Backspace', 'Delete', 'Del']\r\n\t\t};\r\n\r\n\t\t// #4868: modifiers that prevent the execution of the listener\r\n\t\t// need to explicitly return null so that we can determine whether to remove\r\n\t\t// the listener for .once\r\n\t\tvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\r\n\r\n\t\tvar modifierCode = {\r\n\t\t\tstop: '$event.stopPropagation();',\r\n\t\t\tprevent: '$event.preventDefault();',\r\n\t\t\tself: genGuard(\"$event.target !== $event.currentTarget\"),\r\n\t\t\tctrl: genGuard(\"!$event.ctrlKey\"),\r\n\t\t\tshift: genGuard(\"!$event.shiftKey\"),\r\n\t\t\talt: genGuard(\"!$event.altKey\"),\r\n\t\t\tmeta: genGuard(\"!$event.metaKey\"),\r\n\t\t\tleft: genGuard(\"'button' in $event && $event.button !== 0\"),\r\n\t\t\tmiddle: genGuard(\"'button' in $event && $event.button !== 1\"),\r\n\t\t\tright: genGuard(\"'button' in $event && $event.button !== 2\")\r\n\t\t};\r\n\r\n\t\tfunction genHandlers(\r\n\t\t\tevents,\r\n\t\t\tisNative\r\n\t\t) {\r\n\t\t\tvar prefix = isNative ? 'nativeOn:' : 'on:';\r\n\t\t\tvar staticHandlers = \"\";\r\n\t\t\tvar dynamicHandlers = \"\";\r\n\t\t\tfor (var name in events) {\r\n\t\t\t\tvar handlerCode = genHandler(events[name]);\r\n\t\t\t\tif (events[name] && events[name].dynamic) {\r\n\t\t\t\t\tdynamicHandlers += name + \",\" + handlerCode + \",\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstaticHandlers += \"\\\"\" + name + \"\\\":\" + handlerCode + \",\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstaticHandlers = \"{\" + (staticHandlers.slice(0, -1)) + \"}\";\r\n\t\t\tif (dynamicHandlers) {\r\n\t\t\t\treturn prefix + \"_d(\" + staticHandlers + \",[\" + (dynamicHandlers.slice(0, -1)) + \"])\"\r\n\t\t\t} else {\r\n\t\t\t\treturn prefix + staticHandlers\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genHandler(handler) {\r\n\t\t\tif (!handler) {\r\n\t\t\t\treturn 'function(){}'\r\n\t\t\t}\r\n\r\n\t\t\tif (Array.isArray(handler)) {\r\n\t\t\t\treturn (\"[\" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + \"]\")\r\n\t\t\t}\r\n\r\n\t\t\tvar isMethodPath = simplePathRE.test(handler.value);\r\n\t\t\tvar isFunctionExpression = fnExpRE.test(handler.value);\r\n\t\t\tvar isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\r\n\r\n\t\t\tif (!handler.modifiers) {\r\n\t\t\t\tif (isMethodPath || isFunctionExpression) {\r\n\t\t\t\t\treturn handler.value\r\n\t\t\t\t}\r\n\t\t\t\treturn (\"function($event){\" + (isFunctionInvocation ? (\"return \" + (handler.value)) : handler.value) + \"}\") // inline statement\r\n\t\t\t} else {\r\n\t\t\t\tvar code = '';\r\n\t\t\t\tvar genModifierCode = '';\r\n\t\t\t\tvar keys = [];\r\n\t\t\t\tfor (var key in handler.modifiers) {\r\n\t\t\t\t\tif (modifierCode[key]) {\r\n\t\t\t\t\t\tgenModifierCode += modifierCode[key];\r\n\t\t\t\t\t\t// left/right\r\n\t\t\t\t\t\tif (keyCodes[key]) {\r\n\t\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (key === 'exact') {\r\n\t\t\t\t\t\tvar modifiers = (handler.modifiers);\r\n\t\t\t\t\t\tgenModifierCode += genGuard(\r\n\t\t\t\t\t\t\t['ctrl', 'shift', 'alt', 'meta']\r\n\t\t\t\t\t\t\t\t.filter(function (keyModifier) { return !modifiers[keyModifier]; })\r\n\t\t\t\t\t\t\t\t.map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\r\n\t\t\t\t\t\t\t\t.join('||')\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (keys.length) {\r\n\t\t\t\t\tcode += genKeyFilter(keys);\r\n\t\t\t\t}\r\n\t\t\t\t// Make sure modifiers like prevent and stop get executed after key filtering\r\n\t\t\t\tif (genModifierCode) {\r\n\t\t\t\t\tcode += genModifierCode;\r\n\t\t\t\t}\r\n\t\t\t\tvar handlerCode = isMethodPath\r\n\t\t\t\t\t? (\"return \" + (handler.value) + \".apply(null, arguments)\")\r\n\t\t\t\t\t: isFunctionExpression\r\n\t\t\t\t\t\t? (\"return (\" + (handler.value) + \").apply(null, arguments)\")\r\n\t\t\t\t\t\t: isFunctionInvocation\r\n\t\t\t\t\t\t\t? (\"return \" + (handler.value))\r\n\t\t\t\t\t\t\t: handler.value;\r\n\t\t\t\treturn (\"function($event){\" + code + handlerCode + \"}\")\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genKeyFilter(keys) {\r\n\t\t\treturn (\r\n\t\t\t\t// make sure the key filters only apply to KeyboardEvents\r\n\t\t\t\t// #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\r\n\t\t\t\t// key events that do not have keyCode property...\r\n\t\t\t\t\"if(!$event.type.indexOf('key')&&\" +\r\n\t\t\t\t(keys.map(genFilterCode).join('&&')) + \")return null;\"\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tfunction genFilterCode(key) {\r\n\t\t\tvar keyVal = parseInt(key, 10);\r\n\t\t\tif (keyVal) {\r\n\t\t\t\treturn (\"$event.keyCode!==\" + keyVal)\r\n\t\t\t}\r\n\t\t\tvar keyCode = keyCodes[key];\r\n\t\t\tvar keyName = keyNames[key];\r\n\t\t\treturn (\r\n\t\t\t\t\"_k($event.keyCode,\" +\r\n\t\t\t\t(JSON.stringify(key)) + \",\" +\r\n\t\t\t\t(JSON.stringify(keyCode)) + \",\" +\r\n\t\t\t\t\"$event.key,\" +\r\n\t\t\t\t\"\" + (JSON.stringify(keyName)) +\r\n\t\t\t\t\")\"\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction on(el, dir) {\r\n\t\t\tif (false) { }\r\n\t\t\tel.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction bind$1(el, dir) {\r\n\t\t\tel.wrapData = function (code) {\r\n\t\t\t\treturn (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar baseDirectives = {\r\n\t\t\ton: on,\r\n\t\t\tbind: bind$1,\r\n\t\t\tcloak: noop\r\n\t\t};\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\r\n\r\n\t\tvar CodegenState = function CodegenState(options) {\r\n\t\t\tthis.options = options;\r\n\t\t\tthis.warn = options.warn || baseWarn;\r\n\t\t\tthis.transforms = pluckModuleFunction(options.modules, 'transformCode');\r\n\t\t\tthis.dataGenFns = pluckModuleFunction(options.modules, 'genData');\r\n\t\t\tthis.directives = extend(extend({}, baseDirectives), options.directives);\r\n\t\t\tvar isReservedTag = options.isReservedTag || no;\r\n\t\t\tthis.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };\r\n\t\t\tthis.onceId = 0;\r\n\t\t\tthis.staticRenderFns = [];\r\n\t\t\tthis.pre = false;\r\n\t\t};\r\n\r\n\r\n\r\n\t\tfunction generate(\r\n\t\t\tast,\r\n\t\t\toptions\r\n\t\t) {\r\n\t\t\tvar state = new CodegenState(options);\r\n\t\t\t// fix #11483, Root level <script> tags should not be rendered.\r\n\t\t\tvar code = ast ? (ast.tag === 'script' ? 'null' : genElement(ast, state)) : '_c(\"div\")';\r\n\t\t\treturn {\r\n\t\t\t\trender: (\"with(this){return \" + code + \"}\"),\r\n\t\t\t\tstaticRenderFns: state.staticRenderFns\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genElement(el, state) {\r\n\t\t\tif (el.parent) {\r\n\t\t\t\tel.pre = el.pre || el.parent.pre;\r\n\t\t\t}\r\n\r\n\t\t\tif (el.staticRoot && !el.staticProcessed) {\r\n\t\t\t\treturn genStatic(el, state)\r\n\t\t\t} else if (el.once && !el.onceProcessed) {\r\n\t\t\t\treturn genOnce(el, state)\r\n\t\t\t} else if (el.for && !el.forProcessed) {\r\n\t\t\t\treturn genFor(el, state)\r\n\t\t\t} else if (el.if && !el.ifProcessed) {\r\n\t\t\t\treturn genIf(el, state)\r\n\t\t\t} else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\r\n\t\t\t\treturn genChildren(el, state) || 'void 0'\r\n\t\t\t} else if (el.tag === 'slot') {\r\n\t\t\t\treturn genSlot(el, state)\r\n\t\t\t} else {\r\n\t\t\t\t// component or element\r\n\t\t\t\tvar code;\r\n\t\t\t\tif (el.component) {\r\n\t\t\t\t\tcode = genComponent(el.component, el, state);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar data;\r\n\t\t\t\t\tif (!el.plain || (el.pre && state.maybeComponent(el))) {\r\n\t\t\t\t\t\tdata = genData$2(el, state);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar children = el.inlineTemplate ? null : genChildren(el, state, true);\r\n\t\t\t\t\tcode = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\r\n\t\t\t\t}\r\n\t\t\t\t// module transforms\r\n\t\t\t\tfor (var i = 0; i < state.transforms.length; i++) {\r\n\t\t\t\t\tcode = state.transforms[i](el, code);\r\n\t\t\t\t}\r\n\t\t\t\treturn code\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// hoist static sub-trees out\r\n\t\tfunction genStatic(el, state) {\r\n\t\t\tel.staticProcessed = true;\r\n\t\t\t// Some elements (templates) need to behave differently inside of a v-pre\r\n\t\t\t// node.  All pre nodes are static roots, so we can use this as a location to\r\n\t\t\t// wrap a state change and reset it upon exiting the pre node.\r\n\t\t\tvar originalPreState = state.pre;\r\n\t\t\tif (el.pre) {\r\n\t\t\t\tstate.pre = el.pre;\r\n\t\t\t}\r\n\t\t\tstate.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\r\n\t\t\tstate.pre = originalPreState;\r\n\t\t\treturn (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\r\n\t\t}\r\n\r\n\t\t// v-once\r\n\t\tfunction genOnce(el, state) {\r\n\t\t\tel.onceProcessed = true;\r\n\t\t\tif (el.if && !el.ifProcessed) {\r\n\t\t\t\treturn genIf(el, state)\r\n\t\t\t} else if (el.staticInFor) {\r\n\t\t\t\tvar key = '';\r\n\t\t\t\tvar parent = el.parent;\r\n\t\t\t\twhile (parent) {\r\n\t\t\t\t\tif (parent.for) {\r\n\t\t\t\t\t\tkey = parent.key;\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t}\r\n\t\t\t\tif (!key) {\r\n\t\t\t\t\tfalse && 0;\r\n\t\t\t\t\treturn genElement(el, state)\r\n\t\t\t\t}\r\n\t\t\t\treturn (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\r\n\t\t\t} else {\r\n\t\t\t\treturn genStatic(el, state)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genIf(\r\n\t\t\tel,\r\n\t\t\tstate,\r\n\t\t\taltGen,\r\n\t\t\taltEmpty\r\n\t\t) {\r\n\t\t\tel.ifProcessed = true; // avoid recursion\r\n\t\t\treturn genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\r\n\t\t}\r\n\r\n\t\tfunction genIfConditions(\r\n\t\t\tconditions,\r\n\t\t\tstate,\r\n\t\t\taltGen,\r\n\t\t\taltEmpty\r\n\t\t) {\r\n\t\t\tif (!conditions.length) {\r\n\t\t\t\treturn altEmpty || '_e()'\r\n\t\t\t}\r\n\r\n\t\t\tvar condition = conditions.shift();\r\n\t\t\tif (condition.exp) {\r\n\t\t\t\treturn (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\r\n\t\t\t} else {\r\n\t\t\t\treturn (\"\" + (genTernaryExp(condition.block)))\r\n\t\t\t}\r\n\r\n\t\t\t// v-if with v-once should generate code like (a)?_m(0):_m(1)\r\n\t\t\tfunction genTernaryExp(el) {\r\n\t\t\t\treturn altGen\r\n\t\t\t\t\t? altGen(el, state)\r\n\t\t\t\t\t: el.once\r\n\t\t\t\t\t\t? genOnce(el, state)\r\n\t\t\t\t\t\t: genElement(el, state)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genFor(\r\n\t\t\tel,\r\n\t\t\tstate,\r\n\t\t\taltGen,\r\n\t\t\taltHelper\r\n\t\t) {\r\n\t\t\tvar exp = el.for;\r\n\t\t\tvar alias = el.alias;\r\n\t\t\tvar iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\r\n\t\t\tvar iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\r\n\r\n\t\t\tif (false\r\n\t\t\t) { }\r\n\r\n\t\t\tel.forProcessed = true; // avoid recursion\r\n\t\t\treturn (altHelper || '_l') + \"((\" + exp + \"),\" +\r\n\t\t\t\t\"function(\" + alias + iterator1 + iterator2 + \"){\" +\r\n\t\t\t\t\"return \" + ((altGen || genElement)(el, state)) +\r\n\t\t\t\t'})'\r\n\t\t}\r\n\r\n\t\tfunction genData$2(el, state) {\r\n\t\t\tvar data = '{';\r\n\r\n\t\t\t// directives first.\r\n\t\t\t// directives may mutate the el's other properties before they are generated.\r\n\t\t\tvar dirs = genDirectives(el, state);\r\n\t\t\tif (dirs) { data += dirs + ','; }\r\n\r\n\t\t\t// key\r\n\t\t\tif (el.key) {\r\n\t\t\t\tdata += \"key:\" + (el.key) + \",\";\r\n\t\t\t}\r\n\t\t\t// ref\r\n\t\t\tif (el.ref) {\r\n\t\t\t\tdata += \"ref:\" + (el.ref) + \",\";\r\n\t\t\t}\r\n\t\t\tif (el.refInFor) {\r\n\t\t\t\tdata += \"refInFor:true,\";\r\n\t\t\t}\r\n\t\t\t// pre\r\n\t\t\tif (el.pre) {\r\n\t\t\t\tdata += \"pre:true,\";\r\n\t\t\t}\r\n\t\t\t// record original tag name for components using \"is\" attribute\r\n\t\t\tif (el.component) {\r\n\t\t\t\tdata += \"tag:\\\"\" + (el.tag) + \"\\\",\";\r\n\t\t\t}\r\n\t\t\t// module data generation functions\r\n\t\t\tfor (var i = 0; i < state.dataGenFns.length; i++) {\r\n\t\t\t\tdata += state.dataGenFns[i](el);\r\n\t\t\t}\r\n\t\t\t// attributes\r\n\t\t\tif (el.attrs) {\r\n\t\t\t\tdata += \"attrs:\" + (genProps(el.attrs)) + \",\";\r\n\t\t\t}\r\n\t\t\t// DOM props\r\n\t\t\tif (el.props) {\r\n\t\t\t\tdata += \"domProps:\" + (genProps(el.props)) + \",\";\r\n\t\t\t}\r\n\t\t\t// event handlers\r\n\t\t\tif (el.events) {\r\n\t\t\t\tdata += (genHandlers(el.events, false)) + \",\";\r\n\t\t\t}\r\n\t\t\tif (el.nativeEvents) {\r\n\t\t\t\tdata += (genHandlers(el.nativeEvents, true)) + \",\";\r\n\t\t\t}\r\n\t\t\t// slot target\r\n\t\t\t// only for non-scoped slots\r\n\t\t\tif (el.slotTarget && !el.slotScope) {\r\n\t\t\t\tdata += \"slot:\" + (el.slotTarget) + \",\";\r\n\t\t\t}\r\n\t\t\t// scoped slots\r\n\t\t\tif (el.scopedSlots) {\r\n\t\t\t\tdata += (genScopedSlots(el, el.scopedSlots, state)) + \",\";\r\n\t\t\t}\r\n\t\t\t// component v-model\r\n\t\t\tif (el.model) {\r\n\t\t\t\tdata += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\r\n\t\t\t}\r\n\t\t\t// inline-template\r\n\t\t\tif (el.inlineTemplate) {\r\n\t\t\t\tvar inlineTemplate = genInlineTemplate(el, state);\r\n\t\t\t\tif (inlineTemplate) {\r\n\t\t\t\t\tdata += inlineTemplate + \",\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdata = data.replace(/,$/, '') + '}';\r\n\t\t\t// v-bind dynamic argument wrap\r\n\t\t\t// v-bind with dynamic arguments must be applied using the same v-bind object\r\n\t\t\t// merge helper so that class/style/mustUseProp attrs are handled correctly.\r\n\t\t\tif (el.dynamicAttrs) {\r\n\t\t\t\tdata = \"_b(\" + data + \",\\\"\" + (el.tag) + \"\\\",\" + (genProps(el.dynamicAttrs)) + \")\";\r\n\t\t\t}\r\n\t\t\t// v-bind data wrap\r\n\t\t\tif (el.wrapData) {\r\n\t\t\t\tdata = el.wrapData(data);\r\n\t\t\t}\r\n\t\t\t// v-on data wrap\r\n\t\t\tif (el.wrapListeners) {\r\n\t\t\t\tdata = el.wrapListeners(data);\r\n\t\t\t}\r\n\t\t\treturn data\r\n\t\t}\r\n\r\n\t\tfunction genDirectives(el, state) {\r\n\t\t\tvar dirs = el.directives;\r\n\t\t\tif (!dirs) { return }\r\n\t\t\tvar res = 'directives:[';\r\n\t\t\tvar hasRuntime = false;\r\n\t\t\tvar i, l, dir, needRuntime;\r\n\t\t\tfor (i = 0, l = dirs.length; i < l; i++) {\r\n\t\t\t\tdir = dirs[i];\r\n\t\t\t\tneedRuntime = true;\r\n\t\t\t\tvar gen = state.directives[dir.name];\r\n\t\t\t\tif (gen) {\r\n\t\t\t\t\t// compile-time directive that manipulates AST.\r\n\t\t\t\t\t// returns true if it also needs a runtime counterpart.\r\n\t\t\t\t\tneedRuntime = !!gen(el, dir, state.warn);\r\n\t\t\t\t}\r\n\t\t\t\tif (needRuntime) {\r\n\t\t\t\t\thasRuntime = true;\r\n\t\t\t\t\tres += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\" + (dir.isDynamicArg ? dir.arg : (\"\\\"\" + (dir.arg) + \"\\\"\"))) : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (hasRuntime) {\r\n\t\t\t\treturn res.slice(0, -1) + ']'\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genInlineTemplate(el, state) {\r\n\t\t\tvar ast = el.children[0];\r\n\t\t\tif (false) { }\r\n\t\t\tif (ast && ast.type === 1) {\r\n\t\t\t\tvar inlineRenderFns = generate(ast, state.options);\r\n\t\t\t\treturn (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genScopedSlots(\r\n\t\t\tel,\r\n\t\t\tslots,\r\n\t\t\tstate\r\n\t\t) {\r\n\t\t\t// by default scoped slots are considered \"stable\", this allows child\r\n\t\t\t// components with only scoped slots to skip forced updates from parent.\r\n\t\t\t// but in some cases we have to bail-out of this optimization\r\n\t\t\t// for example if the slot contains dynamic names, has v-if or v-for on them...\r\n\t\t\tvar needsForceUpdate = el.for || Object.keys(slots).some(function (key) {\r\n\t\t\t\tvar slot = slots[key];\r\n\t\t\t\treturn (\r\n\t\t\t\t\tslot.slotTargetDynamic ||\r\n\t\t\t\t\tslot.if ||\r\n\t\t\t\t\tslot.for ||\r\n\t\t\t\t\tcontainsSlotChild(slot) // is passing down slot from parent which may be dynamic\r\n\t\t\t\t)\r\n\t\t\t});\r\n\r\n\t\t\t// #9534: if a component with scoped slots is inside a conditional branch,\r\n\t\t\t// it's possible for the same component to be reused but with different\r\n\t\t\t// compiled slot content. To avoid that, we generate a unique key based on\r\n\t\t\t// the generated code of all the slot contents.\r\n\t\t\tvar needsKey = !!el.if;\r\n\r\n\t\t\t// OR when it is inside another scoped slot or v-for (the reactivity may be\r\n\t\t\t// disconnected due to the intermediate scope variable)\r\n\t\t\t// #9438, #9506\r\n\t\t\t// TODO: this can be further optimized by properly analyzing in-scope bindings\r\n\t\t\t// and skip force updating ones that do not actually use scope variables.\r\n\t\t\tif (!needsForceUpdate) {\r\n\t\t\t\tvar parent = el.parent;\r\n\t\t\t\twhile (parent) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t(parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||\r\n\t\t\t\t\t\tparent.for\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tneedsForceUpdate = true;\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (parent.if) {\r\n\t\t\t\t\t\tneedsKey = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparent = parent.parent;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar generatedSlots = Object.keys(slots)\r\n\t\t\t\t.map(function (key) { return genScopedSlot(slots[key], state); })\r\n\t\t\t\t.join(',');\r\n\r\n\t\t\treturn (\"scopedSlots:_u([\" + generatedSlots + \"]\" + (needsForceUpdate ? \",null,true\" : \"\") + (!needsForceUpdate && needsKey ? (\",null,false,\" + (hash(generatedSlots))) : \"\") + \")\")\r\n\t\t}\r\n\r\n\t\tfunction hash(str) {\r\n\t\t\tvar hash = 5381;\r\n\t\t\tvar i = str.length;\r\n\t\t\twhile (i) {\r\n\t\t\t\thash = (hash * 33) ^ str.charCodeAt(--i);\r\n\t\t\t}\r\n\t\t\treturn hash >>> 0\r\n\t\t}\r\n\r\n\t\tfunction containsSlotChild(el) {\r\n\t\t\tif (el.type === 1) {\r\n\t\t\t\tif (el.tag === 'slot') {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t\treturn el.children.some(containsSlotChild)\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tfunction genScopedSlot(\r\n\t\t\tel,\r\n\t\t\tstate\r\n\t\t) {\r\n\t\t\tvar isLegacySyntax = el.attrsMap['slot-scope'];\r\n\t\t\tif (el.if && !el.ifProcessed && !isLegacySyntax) {\r\n\t\t\t\treturn genIf(el, state, genScopedSlot, \"null\")\r\n\t\t\t}\r\n\t\t\tif (el.for && !el.forProcessed) {\r\n\t\t\t\treturn genFor(el, state, genScopedSlot)\r\n\t\t\t}\r\n\t\t\tvar slotScope = el.slotScope === emptySlotScopeToken\r\n\t\t\t\t? \"\"\r\n\t\t\t\t: String(el.slotScope);\r\n\t\t\tvar fn = \"function(\" + slotScope + \"){\" +\r\n\t\t\t\t\"return \" + (el.tag === 'template'\r\n\t\t\t\t\t? el.if && isLegacySyntax\r\n\t\t\t\t\t\t? (\"(\" + (el.if) + \")?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\r\n\t\t\t\t\t\t: genChildren(el, state) || 'undefined'\r\n\t\t\t\t\t: genElement(el, state)) + \"}\";\r\n\t\t\t// reverse proxy v-slot without scope on this.$slots\r\n\t\t\tvar reverseProxy = slotScope ? \"\" : \",proxy:true\";\r\n\t\t\treturn (\"{key:\" + (el.slotTarget || \"\\\"default\\\"\") + \",fn:\" + fn + reverseProxy + \"}\")\r\n\t\t}\r\n\r\n\t\tfunction genChildren(\r\n\t\t\tel,\r\n\t\t\tstate,\r\n\t\t\tcheckSkip,\r\n\t\t\taltGenElement,\r\n\t\t\taltGenNode\r\n\t\t) {\r\n\t\t\tvar children = el.children;\r\n\t\t\tif (children.length) {\r\n\t\t\t\tvar el$1 = children[0];\r\n\t\t\t\t// optimize single v-for\r\n\t\t\t\tif (children.length === 1 &&\r\n\t\t\t\t\tel$1.for &&\r\n\t\t\t\t\tel$1.tag !== 'template' &&\r\n\t\t\t\t\tel$1.tag !== 'slot'\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar normalizationType = checkSkip\r\n\t\t\t\t\t\t? state.maybeComponent(el$1) ? \",1\" : \",0\"\r\n\t\t\t\t\t\t: \"\";\r\n\t\t\t\t\treturn (\"\" + ((altGenElement || genElement)(el$1, state)) + normalizationType)\r\n\t\t\t\t}\r\n\t\t\t\tvar normalizationType$1 = checkSkip\r\n\t\t\t\t\t? getNormalizationType(children, state.maybeComponent)\r\n\t\t\t\t\t: 0;\r\n\t\t\t\tvar gen = altGenNode || genNode;\r\n\t\t\t\treturn (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType$1 ? (\",\" + normalizationType$1) : ''))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// determine the normalization needed for the children array.\r\n\t\t// 0: no normalization needed\r\n\t\t// 1: simple normalization needed (possible 1-level deep nested array)\r\n\t\t// 2: full normalization needed\r\n\t\tfunction getNormalizationType(\r\n\t\t\tchildren,\r\n\t\t\tmaybeComponent\r\n\t\t) {\r\n\t\t\tvar res = 0;\r\n\t\t\tfor (var i = 0; i < children.length; i++) {\r\n\t\t\t\tvar el = children[i];\r\n\t\t\t\tif (el.type !== 1) {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\t\t\t\tif (needsNormalization(el) ||\r\n\t\t\t\t\t(el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\r\n\t\t\t\t\tres = 2;\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t\tif (maybeComponent(el) ||\r\n\t\t\t\t\t(el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\r\n\t\t\t\t\tres = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res\r\n\t\t}\r\n\r\n\t\tfunction needsNormalization(el) {\r\n\t\t\treturn el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\r\n\t\t}\r\n\r\n\t\tfunction genNode(node, state) {\r\n\t\t\tif (node.type === 1) {\r\n\t\t\t\treturn genElement(node, state)\r\n\t\t\t} else if (node.type === 3 && node.isComment) {\r\n\t\t\t\treturn genComment(node)\r\n\t\t\t} else {\r\n\t\t\t\treturn genText(node)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction genText(text) {\r\n\t\t\treturn (\"_v(\" + (text.type === 2\r\n\t\t\t\t? text.expression // no need for () because already wrapped in _s()\r\n\t\t\t\t: transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\r\n\t\t}\r\n\r\n\t\tfunction genComment(comment) {\r\n\t\t\treturn (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\r\n\t\t}\r\n\r\n\t\tfunction genSlot(el, state) {\r\n\t\t\tvar slotName = el.slotName || '\"default\"';\r\n\t\t\tvar children = genChildren(el, state);\r\n\t\t\tvar res = \"_t(\" + slotName + (children ? (\",function(){return \" + children + \"}\") : '');\r\n\t\t\tvar attrs = el.attrs || el.dynamicAttrs\r\n\t\t\t\t? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) {\r\n\t\t\t\t\treturn ({\r\n\t\t\t\t\t\t// slot props are camelized\r\n\t\t\t\t\t\tname: camelize(attr.name),\r\n\t\t\t\t\t\tvalue: attr.value,\r\n\t\t\t\t\t\tdynamic: attr.dynamic\r\n\t\t\t\t\t});\r\n\t\t\t\t}))\r\n\t\t\t\t: null;\r\n\t\t\tvar bind$$1 = el.attrsMap['v-bind'];\r\n\t\t\tif ((attrs || bind$$1) && !children) {\r\n\t\t\t\tres += \",null\";\r\n\t\t\t}\r\n\t\t\tif (attrs) {\r\n\t\t\t\tres += \",\" + attrs;\r\n\t\t\t}\r\n\t\t\tif (bind$$1) {\r\n\t\t\t\tres += (attrs ? '' : ',null') + \",\" + bind$$1;\r\n\t\t\t}\r\n\t\t\treturn res + ')'\r\n\t\t}\r\n\r\n\t\t// componentName is el.component, take it as argument to shun flow's pessimistic refinement\r\n\t\tfunction genComponent(\r\n\t\t\tcomponentName,\r\n\t\t\tel,\r\n\t\t\tstate\r\n\t\t) {\r\n\t\t\tvar children = el.inlineTemplate ? null : genChildren(el, state, true);\r\n\t\t\treturn (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\r\n\t\t}\r\n\r\n\t\tfunction genProps(props) {\r\n\t\t\tvar staticProps = \"\";\r\n\t\t\tvar dynamicProps = \"\";\r\n\t\t\tfor (var i = 0; i < props.length; i++) {\r\n\t\t\t\tvar prop = props[i];\r\n\t\t\t\tvar value = transformSpecialNewlines(prop.value);\r\n\t\t\t\tif (prop.dynamic) {\r\n\t\t\t\t\tdynamicProps += (prop.name) + \",\" + value + \",\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstaticProps += \"\\\"\" + (prop.name) + \"\\\":\" + value + \",\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tstaticProps = \"{\" + (staticProps.slice(0, -1)) + \"}\";\r\n\t\t\tif (dynamicProps) {\r\n\t\t\t\treturn (\"_d(\" + staticProps + \",[\" + (dynamicProps.slice(0, -1)) + \"])\")\r\n\t\t\t} else {\r\n\t\t\t\treturn staticProps\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// #3895, #4268\r\n\t\tfunction transformSpecialNewlines(text) {\r\n\t\t\treturn text\r\n\t\t\t\t.replace(/\\u2028/g, '\\\\u2028')\r\n\t\t\t\t.replace(/\\u2029/g, '\\\\u2029')\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\t// these keywords should not appear inside expressions, but operators like\r\n\t\t// typeof, instanceof and in are allowed\r\n\t\tvar prohibitedKeywordRE = new RegExp('\\\\b' + (\r\n\t\t\t'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\r\n\t\t\t'super,throw,while,yield,delete,export,import,return,switch,default,' +\r\n\t\t\t'extends,finally,continue,debugger,function,arguments'\r\n\t\t).split(',').join('\\\\b|\\\\b') + '\\\\b');\r\n\r\n\t\t// these unary operators should not be used as property/method names\r\n\t\tvar unaryOperatorsRE = new RegExp('\\\\b' + (\r\n\t\t\t'delete,typeof,void'\r\n\t\t).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\r\n\r\n\t\t// strip strings in expressions\r\n\t\tvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\r\n\r\n\t\t// detect problematic expressions in a template\r\n\t\tfunction detectErrors(ast, warn) {\r\n\t\t\tif (ast) {\r\n\t\t\t\tcheckNode(ast, warn);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkNode(node, warn) {\r\n\t\t\tif (node.type === 1) {\r\n\t\t\t\tfor (var name in node.attrsMap) {\r\n\t\t\t\t\tif (dirRE.test(name)) {\r\n\t\t\t\t\t\tvar value = node.attrsMap[name];\r\n\t\t\t\t\t\tif (value) {\r\n\t\t\t\t\t\t\tvar range = node.rawAttrsMap[name];\r\n\t\t\t\t\t\t\tif (name === 'v-for') {\r\n\t\t\t\t\t\t\t\tcheckFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t} else if (name === 'v-slot' || name[0] === '#') {\r\n\t\t\t\t\t\t\t\tcheckFunctionParameterExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t} else if (onRE.test(name)) {\r\n\t\t\t\t\t\t\t\tcheckEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcheckExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (node.children) {\r\n\t\t\t\t\tfor (var i = 0; i < node.children.length; i++) {\r\n\t\t\t\t\t\tcheckNode(node.children[i], warn);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (node.type === 2) {\r\n\t\t\t\tcheckExpression(node.expression, node.text, warn, node);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkEvent(exp, text, warn, range) {\r\n\t\t\tvar stripped = exp.replace(stripStringRE, '');\r\n\t\t\tvar keywordMatch = stripped.match(unaryOperatorsRE);\r\n\t\t\tif (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t\"avoid using JavaScript unary operator as property name: \" +\r\n\t\t\t\t\t\"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim()),\r\n\t\t\t\t\trange\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tcheckExpression(exp, text, warn, range);\r\n\t\t}\r\n\r\n\t\tfunction checkFor(node, text, warn, range) {\r\n\t\t\tcheckExpression(node.for || '', text, warn, range);\r\n\t\t\tcheckIdentifier(node.alias, 'v-for alias', text, warn, range);\r\n\t\t\tcheckIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\r\n\t\t\tcheckIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\r\n\t\t}\r\n\r\n\t\tfunction checkIdentifier(\r\n\t\t\tident,\r\n\t\t\ttype,\r\n\t\t\ttext,\r\n\t\t\twarn,\r\n\t\t\trange\r\n\t\t) {\r\n\t\t\tif (typeof ident === 'string') {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tnew Function((\"var \" + ident + \"=_\"));\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\twarn((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())), range);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkExpression(exp, text, warn, range) {\r\n\t\t\ttry {\r\n\t\t\t\tnew Function((\"return \" + exp));\r\n\t\t\t} catch (e) {\r\n\t\t\t\tvar keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\r\n\t\t\t\tif (keywordMatch) {\r\n\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\"avoid using JavaScript keyword as property name: \" +\r\n\t\t\t\t\t\t\"\\\"\" + (keywordMatch[0]) + \"\\\"\\n  Raw expression: \" + (text.trim()),\r\n\t\t\t\t\t\trange\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twarn(\r\n\t\t\t\t\t\t\"invalid expression: \" + (e.message) + \" in\\n\\n\" +\r\n\t\t\t\t\t\t\"    \" + exp + \"\\n\\n\" +\r\n\t\t\t\t\t\t\"  Raw expression: \" + (text.trim()) + \"\\n\",\r\n\t\t\t\t\t\trange\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction checkFunctionParameterExpression(exp, text, warn, range) {\r\n\t\t\ttry {\r\n\t\t\t\tnew Function(exp, '');\r\n\t\t\t} catch (e) {\r\n\t\t\t\twarn(\r\n\t\t\t\t\t\"invalid function parameter expression: \" + (e.message) + \" in\\n\\n\" +\r\n\t\t\t\t\t\"    \" + exp + \"\\n\\n\" +\r\n\t\t\t\t\t\"  Raw expression: \" + (text.trim()) + \"\\n\",\r\n\t\t\t\t\trange\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar range = 2;\r\n\r\n\t\tfunction generateCodeFrame(\r\n\t\t\tsource,\r\n\t\t\tstart,\r\n\t\t\tend\r\n\t\t) {\r\n\t\t\tif (start === void 0) start = 0;\r\n\t\t\tif (end === void 0) end = source.length;\r\n\r\n\t\t\tvar lines = source.split(/\\r?\\n/);\r\n\t\t\tvar count = 0;\r\n\t\t\tvar res = [];\r\n\t\t\tfor (var i = 0; i < lines.length; i++) {\r\n\t\t\t\tcount += lines[i].length + 1;\r\n\t\t\t\tif (count >= start) {\r\n\t\t\t\t\tfor (var j = i - range; j <= i + range || end > count; j++) {\r\n\t\t\t\t\t\tif (j < 0 || j >= lines.length) { continue }\r\n\t\t\t\t\t\tres.push((\"\" + (j + 1) + (repeat$1(\" \", 3 - String(j + 1).length)) + \"|  \" + (lines[j])));\r\n\t\t\t\t\t\tvar lineLength = lines[j].length;\r\n\t\t\t\t\t\tif (j === i) {\r\n\t\t\t\t\t\t\t// push underline\r\n\t\t\t\t\t\t\tvar pad = start - (count - lineLength) + 1;\r\n\t\t\t\t\t\t\tvar length = end > count ? lineLength - pad : end - start;\r\n\t\t\t\t\t\t\tres.push(\"   |  \" + repeat$1(\" \", pad) + repeat$1(\"^\", length));\r\n\t\t\t\t\t\t} else if (j > i) {\r\n\t\t\t\t\t\t\tif (end > count) {\r\n\t\t\t\t\t\t\t\tvar length$1 = Math.min(end - count, lineLength);\r\n\t\t\t\t\t\t\t\tres.push(\"   |  \" + repeat$1(\"^\", length$1));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcount += lineLength + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn res.join('\\n')\r\n\t\t}\r\n\r\n\t\tfunction repeat$1(str, n) {\r\n\t\t\tvar result = '';\r\n\t\t\tif (n > 0) {\r\n\t\t\t\twhile (true) { // eslint-disable-line\r\n\t\t\t\t\tif (n & 1) { result += str; }\r\n\t\t\t\t\tn >>>= 1;\r\n\t\t\t\t\tif (n <= 0) { break }\r\n\t\t\t\t\tstr += str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\r\n\r\n\t\tfunction createFunction(code, errors) {\r\n\t\t\ttry {\r\n\t\t\t\treturn new Function(code)\r\n\t\t\t} catch (err) {\r\n\t\t\t\terrors.push({ err: err, code: code });\r\n\t\t\t\treturn noop\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction createCompileToFunctionFn(compile) {\r\n\t\t\tvar cache = Object.create(null);\r\n\r\n\t\t\treturn function compileToFunctions(\r\n\t\t\t\ttemplate,\r\n\t\t\t\toptions,\r\n\t\t\t\tvm\r\n\t\t\t) {\r\n\t\t\t\toptions = extend({}, options);\r\n\t\t\t\tvar warn$$1 = options.warn || warn;\r\n\t\t\t\tdelete options.warn;\r\n\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t// check cache\r\n\t\t\t\tvar key = options.delimiters\r\n\t\t\t\t\t? String(options.delimiters) + template\r\n\t\t\t\t\t: template;\r\n\t\t\t\tif (cache[key]) {\r\n\t\t\t\t\treturn cache[key]\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// compile\r\n\t\t\t\tvar compiled = compile(template, options);\r\n\r\n\t\t\t\t// check compilation errors/tips\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t// turn code into functions\r\n\t\t\t\tvar res = {};\r\n\t\t\t\tvar fnGenErrors = [];\r\n\t\t\t\tres.render = createFunction(compiled.render, fnGenErrors);\r\n\t\t\t\tres.staticRenderFns = compiled.staticRenderFns.map(function (code) {\r\n\t\t\t\t\treturn createFunction(code, fnGenErrors)\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// check function generation errors.\r\n\t\t\t\t// this should only happen if there is a bug in the compiler itself.\r\n\t\t\t\t// mostly for codegen development use\r\n\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\treturn (cache[key] = res)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\tfunction createCompilerCreator(baseCompile) {\r\n\t\t\treturn function createCompiler(baseOptions) {\r\n\t\t\t\tfunction compile(\r\n\t\t\t\t\ttemplate,\r\n\t\t\t\t\toptions\r\n\t\t\t\t) {\r\n\t\t\t\t\tvar finalOptions = Object.create(baseOptions);\r\n\t\t\t\t\tvar errors = [];\r\n\t\t\t\t\tvar tips = [];\r\n\r\n\t\t\t\t\tvar warn = function (msg, range, tip) {\r\n\t\t\t\t\t\t(tip ? tips : errors).push(msg);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (options) {\r\n\t\t\t\t\t\tif (false) { var leadingSpaceLength; }\r\n\t\t\t\t\t\t// merge custom modules\r\n\t\t\t\t\t\tif (options.modules) {\r\n\t\t\t\t\t\t\tfinalOptions.modules =\r\n\t\t\t\t\t\t\t\t(baseOptions.modules || []).concat(options.modules);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// merge custom directives\r\n\t\t\t\t\t\tif (options.directives) {\r\n\t\t\t\t\t\t\tfinalOptions.directives = extend(\r\n\t\t\t\t\t\t\t\tObject.create(baseOptions.directives || null),\r\n\t\t\t\t\t\t\t\toptions.directives\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// copy other options\r\n\t\t\t\t\t\tfor (var key in options) {\r\n\t\t\t\t\t\t\tif (key !== 'modules' && key !== 'directives') {\r\n\t\t\t\t\t\t\t\tfinalOptions[key] = options[key];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfinalOptions.warn = warn;\r\n\r\n\t\t\t\t\tvar compiled = baseCompile(template.trim(), finalOptions);\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t\tcompiled.errors = errors;\r\n\t\t\t\t\tcompiled.tips = tips;\r\n\t\t\t\t\treturn compiled\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tcompile: compile,\r\n\t\t\t\t\tcompileToFunctions: createCompileToFunctionFn(compile)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/*  */\r\n\r\n\t\t// `createCompilerCreator` allows creating compilers that use alternative\r\n\t\t// parser/optimizer/codegen, e.g the SSR optimizing compiler.\r\n\t\t// Here we just export a default compiler using the default parts.\r\n\t\tvar createCompiler = createCompilerCreator(function baseCompile(\r\n\t\t\ttemplate,\r\n\t\t\toptions\r\n\t\t) {\r\n\t\t\tvar ast = parse(template.trim(), options);\r\n\t\t\tif (options.optimize !== false) {\r\n\t\t\t\toptimize(ast, options);\r\n\t\t\t}\r\n\t\t\tvar code = generate(ast, options);\r\n\t\t\treturn {\r\n\t\t\t\tast: ast,\r\n\t\t\t\trender: code.render,\r\n\t\t\t\tstaticRenderFns: code.staticRenderFns\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar ref$1 = createCompiler(baseOptions);\r\n\t\tvar compile = ref$1.compile;\r\n\t\tvar compileToFunctions = ref$1.compileToFunctions;\r\n\r\n\t\t/*  */\r\n\r\n\t\t// check whether current browser encodes a char inside attribute values\r\n\t\tvar div;\r\n\t\tfunction getShouldDecode(href) {\r\n\t\t\tdiv = div || document.createElement('div');\r\n\t\t\tdiv.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\r\n\t\t\treturn div.innerHTML.indexOf('&#10;') > 0\r\n\t\t}\r\n\r\n\t\t// #3663: IE encodes newlines inside attribute values while other browsers don't\r\n\t\tvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\r\n\t\t// #6828: chrome encodes content in a[href]\r\n\t\tvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\r\n\r\n\t\t/*  */\r\n\r\n\t\tvar idToTemplate = cached(function (id) {\r\n\t\t\tvar el = query(id);\r\n\t\t\treturn el && el.innerHTML\r\n\t\t});\r\n\r\n\t\tvar mount = vue_esm_Vue.prototype.$mount;\r\n\t\tvue_esm_Vue.prototype.$mount = function (\r\n\t\t\tel,\r\n\t\t\thydrating\r\n\t\t) {\r\n\t\t\tel = el && query(el);\r\n\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (el === document.body || el === document.documentElement) {\r\n\t\t\t\tfalse && 0;\r\n\t\t\t\treturn this\r\n\t\t\t}\r\n\r\n\t\t\tvar options = this.$options;\r\n\t\t\t// resolve template/el and convert to render function\r\n\t\t\tif (!options.render) {\r\n\t\t\t\tvar template = options.template;\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tif (typeof template === 'string') {\r\n\t\t\t\t\t\tif (template.charAt(0) === '#') {\r\n\t\t\t\t\t\t\ttemplate = idToTemplate(template);\r\n\t\t\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (template.nodeType) {\r\n\t\t\t\t\t\ttemplate = template.innerHTML;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (false) { }\r\n\t\t\t\t\t\treturn this\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (el) {\r\n\t\t\t\t\ttemplate = getOuterHTML(el);\r\n\t\t\t\t}\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (false) { }\r\n\r\n\t\t\t\t\tvar ref = compileToFunctions(template, {\r\n\t\t\t\t\t\toutputSourceRange: \"production\" !== 'production',\r\n\t\t\t\t\t\tshouldDecodeNewlines: shouldDecodeNewlines,\r\n\t\t\t\t\t\tshouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\r\n\t\t\t\t\t\tdelimiters: options.delimiters,\r\n\t\t\t\t\t\tcomments: options.comments\r\n\t\t\t\t\t}, this);\r\n\t\t\t\t\tvar render = ref.render;\r\n\t\t\t\t\tvar staticRenderFns = ref.staticRenderFns;\r\n\t\t\t\t\toptions.render = render;\r\n\t\t\t\t\toptions.staticRenderFns = staticRenderFns;\r\n\r\n\t\t\t\t\t/* istanbul ignore if */\r\n\t\t\t\t\tif (false) { }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn mount.call(this, el, hydrating)\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Get outerHTML of elements, taking care\r\n\t\t * of SVG elements in IE as well.\r\n\t\t */\r\n\t\tfunction getOuterHTML(el) {\r\n\t\t\tif (el.outerHTML) {\r\n\t\t\t\treturn el.outerHTML\r\n\t\t\t} else {\r\n\t\t\t\tvar container = document.createElement('div');\r\n\t\t\t\tcontainer.appendChild(el.cloneNode(true));\r\n\t\t\t\treturn container.innerHTML\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvue_esm_Vue.compile = compileToFunctions;\r\n\r\n/* harmony default export */ const vue_esm = (vue_esm_Vue);\r\n\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/constants.js\r\n\t\t/**\r\n\t\t  * @typedef {Object} Breakpoint\r\n\t\t  * @param {number} min\r\n\t\t  * @param {number} max\r\n\t\t  * @param {string} name\r\n\t\t  * @param {number} order\r\n\t\t  */\r\n\r\n\t\t/** @enum {Breakpoint} */\r\n\t\tconst Breakpoints = {\r\n\t\t\txs: {\r\n\t\t\t\tmin: 0,\r\n\t\t\t\tmax: 480,\r\n\t\t\t\tname: 'xs',\r\n\t\t\t\torder: 1\r\n\t\t\t},\r\n\t\t\t// Extra small devices (portrait phones, less than 576px)\r\n\t\t\tsm: {\r\n\t\t\t\tmin: 481,\r\n\t\t\t\tmax: 767,\r\n\t\t\t\tname: 'sm',\r\n\t\t\t\torder: 2\r\n\t\t\t},\r\n\t\t\t// Small devices (landscape phones, 576px and up)\r\n\t\t\tmd: {\r\n\t\t\t\tmin: 768,\r\n\t\t\t\tmax: 991,\r\n\t\t\t\tname: 'md',\r\n\t\t\t\torder: 3\r\n\t\t\t},\r\n\t\t\t// Medium devices (tablets, 768px and up)\r\n\t\t\tlg: {\r\n\t\t\t\tmin: 992,\r\n\t\t\t\tmax: 1199,\r\n\t\t\t\tname: 'lg',\r\n\t\t\t\torder: 4\r\n\t\t\t},\r\n\t\t\t// Large devices (desktops, 992px and up)\r\n\t\t\txl: {\r\n\t\t\t\tmin: 1200,\r\n\t\t\t\tmax: Number.POSITIVE_INFINITY,\r\n\t\t\t\tname: 'xl',\r\n\t\t\t\torder: 5\r\n\t\t\t} // Extra large devices (large desktops, 1200px and up)\r\n\r\n\t\t};\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/ThemeBase.js\r\n\t\t/* eslint-disable no-unused-vars */\r\n\r\n\t\tconst TOGGLE_RIGHT_DRAWER_EVENT = 'wetheme-toggle-right-drawer';\r\n\t\tconst TOGGLE_LEFT_DRAWER_EVENT = 'wetheme-toggle-left-drawer';\r\n\t\tconst CART_UPDATE_EVENT = 'wetheme-cart-update';\r\n\t\tconst SYNC_CART = 'wetheme-sync-cart';\r\n\r\n\t\tclass ThemeBase {\r\n\t\t\tconstructor() {\r\n\t\t\t\tthis.$ = void 0;\r\n\t\t\t\tthis.translations = void 0;\r\n\t\t\t\tthis.moneyFormat = void 0;\r\n\t\t\t\tthis.giftwrapProduct = void 0;\r\n\t\t\t\tthis.giftwrapEnabled = void 0;\r\n\t\t\t\tthis.breakpoint = void 0;\r\n\r\n\t\t\t\tthis.formatMoney = (cents, format) => {\r\n\t\t\t\t\tvar moneyFormat = this.moneyFormat;\r\n\r\n\t\t\t\t\tif (typeof cents === 'string') {\r\n\t\t\t\t\t\tcents = cents.replace('.', '');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar value = '';\r\n\t\t\t\t\tvar placeholderRegex = /\\{\\{\\s*(\\w+)\\s*\\}\\}/;\r\n\t\t\t\t\tvar formatString = format || moneyFormat;\r\n\r\n\t\t\t\t\t//   function formatWithDelimiters(number, precision, thousands, decimal) {\r\n\t\t\t\t\t//     if (precision === null || precision === undefined) {\r\n\t\t\t\t\t//       precision = 2;\r\n\t\t\t\t\t//     }\r\n\r\n\t\t\t\t\t//     thousands = thousands || ',';\r\n\t\t\t\t\t//     decimal = decimal || '.';\r\n\r\n\t\t\t\t\t//     if (isNaN(number) || number == null) {\r\n\t\t\t\t\t//       return 0;\r\n\t\t\t\t\t//     }\r\n\r\n\t\t\t\t\t//     number = (number / 100.0).toFixed(precision);\r\n\t\t\t\t\t//     var parts = number.split('.');\r\n\t\t\t\t\t//     var dollarsAmount = parts[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + thousands);\r\n\t\t\t\t\t//     var centsAmount = parts[1] ? decimal + parts[1] : '';\r\n\t\t\t\t\t//     retuo9rn dollarsAmount + centsAmount;\r\n\t\t\t\t\t//   }\r\n\r\n\t\t\t\t\tfunction formatWithDelimiters(number, precision, thousands, decimal) {\r\n\t\t\t\t\t\tif (precision === null || precision === undefined) {\r\n\t\t\t\t\t\t\tprecision = 2;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthousands = thousands || ',';\r\n\t\t\t\t\t\tdecimal = decimal || '.';\r\n\r\n\t\t\t\t\t\tif (isNaN(number) || number == null) {\r\n\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tnumber = (number / 100.0).toFixed(precision);\r\n\t\t\t\t\t\tvar parts = number.split('.');\r\n\t\t\t\t\t\tvar dollarsAmount = parts[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + thousands);\r\n\t\t\t\t\t\tvar centsAmount = parts[1] ? decimal + parts[1] : '';\r\n\r\n\t\t\t\t\t\t// --- NE\r\n\t\t\t\t\t\t// W LOGIC START ---\r\n\t\t\t\t\t\t// This removes the decimal point and trailing zeros if they are exactly \".00\"\r\n\t\t\t\t\t\tvar result = dollarsAmount + centsAmount;\r\n\t\t\t\t\t\treturn result.replace(/\\.00$/, '');\r\n\t\t\t\t\t\t// --- NEW LOGIC END ---\r\n\t\t\t\t\t}\r\n\t\t\t\t\tswitch (formatString.match(placeholderRegex)[1]) {\r\n\t\t\t\t\t\tcase 'amount':\r\n\t\t\t\t\t\t\tvalue = formatWithDelimiters(cents, 2);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'amount_no_decimals':\r\n\t\t\t\t\t\t\tvalue = formatWithDelimiters(cents, 0);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'amount_with_comma_separator':\r\n\t\t\t\t\t\t\tvalue = formatWithDelimiters(cents, 2, '.', ',');\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'amount_no_decimals_with_comma_separator':\r\n\t\t\t\t\t\t\tvalue = formatWithDelimiters(cents, 0, '.', ',');\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'amount_no_decimals_with_space_separator':\r\n\t\t\t\t\t\t\tvalue = formatWithDelimiters(cents, 0, ' ');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn '<span class=\"money\">' + formatString.replace(placeholderRegex, value) + '</span>';\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getWindowWidth = () => {\r\n\t\t\t\t\treturn Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getBreakpoint = (width = undefined) => {\r\n\t\t\t\t\tconst w = width === null || width === undefined ? this.getWindowWidth() : width;\r\n\t\t\t\t\tlet breakpoint;\r\n\t\t\t\t\tObject.values(Breakpoints).forEach(b => {\r\n\t\t\t\t\t\tif (w >= b.min && w <= b.max) {\r\n\t\t\t\t\t\t\tbreakpoint = b;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn breakpoint;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.toggleRightDrawer = (type = 'cart', forceOpen = undefined, params = {}) => { };\r\n\r\n\t\t\t\tthis.toggleLeftDrawer = (forceOpen = undefined) => { };\r\n\r\n\t\t\t\tthis.updateCartDrawer = cart => { };\r\n\r\n\t\t\t\tthis.loadYoutubeApi = () => {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadVimeoApi = () => {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.createScript = (id, src) => {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.registerComponent = component => { };\r\n\r\n\t\t\t\tthis.addBadges = (root, timeout) => { };\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/Component.js\r\n\t\tclass Component {\r\n\t\t\t/**\r\n\t\t\t * Generic component, inherited class will be called to receive things like resize events.\r\n\t\t\t *\r\n\t\t\t * @param {import('./ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.onWindowResizeRaw = ({\r\n\t\t\t\t\twidth\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onWindowResize = ({\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\toldWidth,\r\n\t\t\t\t\tbreakpoint\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onWindowResizeBreakpoint = ({\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\tbreakpoint,\r\n\t\t\t\t\toldBreakpoint\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onWindowScroll = () => { };\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\ttheme.registerComponent(this);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * This will be called immediatelly when window resizes.\r\n\t\t\t *\r\n\t\t\t * NOTE: prefer using onWindowResize as it's already debounced.\r\n\t\t\t *\r\n\t\t\t * @param {Object} params\r\n\t\t\t * @param {number} params.width Width of the window\r\n\t\t\t */\r\n\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/Section.js\r\n\r\n\t\t/**\r\n\t\t * Base class for all the section components\r\n\t\t *\r\n\t\t * All components should inherit this class and implement what method they need\r\n\t\t */\r\n\r\n\t\tclass Section extends Component {\r\n\t\t\t/**\r\n\t\t\t *\r\n\t\t\t * @param {import(\"./ThemeBase\").default} theme Global theme object\r\n\t\t\t * @param {HTMLElement} element Toplevel element for the section\r\n\t\t\t * @param {boolean} pageLoad True on initial page load, False when this section reloads\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element);\r\n\r\n\t\t\t\tthis.onSectionSelect = ({\r\n\t\t\t\t\telement,\r\n\t\t\t\t\tsectionId,\r\n\t\t\t\t\tload\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onSectionDeselect = ({\r\n\t\t\t\t\telement,\r\n\t\t\t\t\tsectionId\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onSectionReorder = ({\r\n\t\t\t\t\telement,\r\n\t\t\t\t\tsectionId\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onBlockSelect = ({\r\n\t\t\t\t\telement,\r\n\t\t\t\t\tsectionId,\r\n\t\t\t\t\tblockId,\r\n\t\t\t\t\tload\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.onBlockDeselect = ({\r\n\t\t\t\t\telement,\r\n\t\t\t\t\tsectionId,\r\n\t\t\t\t\tblockId\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.destroy = ({\r\n\t\t\t\t\telement\r\n\t\t\t\t}) => { };\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * This will be called when section gets selected in Shopify Theme Editor\r\n\t\t\t *\r\n\t\t\t * @param {Object} params\r\n\t\t\t * @param {HTMLElement} params.element Toplevel element for the section\r\n\t\t\t * @param {string} params.sectionId Identification of the section\r\n\t\t\t * @param {boolean} params.load True if block was loaded, False if user just openeded previously selected block\r\n\t\t\t * */\r\n\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/MobileMenu.js\r\n\r\n\r\n\t\tclass MobileMenu {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.handleToggle = e => {\r\n\t\t\t\t\tthis.toggle(e.detail.forceOpen);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.close = () => {\r\n\t\t\t\t\tdocument.body.classList.remove('js-drawer-open');\r\n\t\t\t\t\tdocument.body.classList.remove('js-drawer-open-left');\r\n\t\t\t\t\tthis.isOpen = false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.open = () => {\r\n\t\t\t\t\tdocument.body.classList.add('js-drawer-open');\r\n\t\t\t\t\tdocument.body.classList.add('js-drawer-open-left');\r\n\t\t\t\t\tthis.isOpen = true;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.toggle = (forceOpen = undefined) => {\r\n\t\t\t\t\tif (forceOpen === true) {\r\n\t\t\t\t\t\tthis.open();\r\n\t\t\t\t\t} else if (forceOpen === false) {\r\n\t\t\t\t\t\tthis.close();\r\n\t\t\t\t\t} else if (this.isOpen) {\r\n\t\t\t\t\t\tthis.close();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.open();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.isOpen = false;\r\n\t\t\t\tdocument.documentElement.addEventListener(TOGGLE_LEFT_DRAWER_EVENT, this.handleToggle);\r\n\t\t\t\tjquery_default()('.mobile-nav__toggle').off('click').on('click', function (evt) {\r\n\t\t\t\t\tjquery_default()(this).parent().toggleClass('mobile-nav--expanded');\r\n\t\t\t\t});\r\n\t\t\t\tthis.element.querySelector('.mobile-menu--close-btn').addEventListener('click', e => {\r\n\t\t\t\t\te.preventDefault;\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// EXTERNAL MODULE: ./node_modules/hoverintent/index.js\r\n\t\tvar hoverintent = __webpack_require__(876);\r\n\t\tvar hoverintent_default = /*#__PURE__*/__webpack_require__.n(hoverintent);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Menu.js\r\n\t\t// @ts-nocheck\r\n\r\n\r\n\t\tclass Menu {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.closeSiblings = ($el, evt) => {\r\n\t\t\t\t\tif (!$el.hasClass(this.activeClass)) {\r\n\t\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t\tthis.hideDropdown($el.siblings());\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.showDropdown = $el => {\r\n\t\t\t\t\t$el.addClass(this.activeClass);\r\n\t\t\t\t\tconst self2 = this;\r\n\r\n\t\t\t\t\tif (jquery_default()('.site-header').hasClass('overlay-header')) {\r\n\t\t\t\t\t\tjquery_default()('.sticky-header').addClass('sticked sticky-header-open');\r\n\t\t\t\t\t} // Remove iOS workaround because it breaks menu z-index\r\n\r\n\r\n\t\t\t\t\tjquery_default()('.sticky-header').removeClass('sticky-header-transformed'); // Select if the submenu should appear left or right of the menu\r\n\r\n\t\t\t\t\tvar $child = $el.parent().find('.site-nav__subdropdown');\r\n\t\t\t\t\tvar childWidth = Math.max.apply(null, $child.map(function () {\r\n\t\t\t\t\t\treturn jquery_default()(this).width();\r\n\t\t\t\t\t}).get());\r\n\t\t\t\t\tvar right = $el.offset().left + $el.outerWidth() + childWidth;\r\n\r\n\t\t\t\t\tif (right > jquery_default()('body').width()) {\r\n\t\t\t\t\t\t$child.css({\r\n\t\t\t\t\t\t\tright: '100%',\r\n\t\t\t\t\t\t\tleft: 'auto'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$child.css({\r\n\t\t\t\t\t\t\tleft: '100%',\r\n\t\t\t\t\t\t\tright: 'auto'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tjquery_default()(document.body).on('touchstart', evt => {\r\n\t\t\t\t\t\t\tif (jquery_default()(evt.target).closest('.site-nav__link,.dropdown-submenu').length === 0) {\r\n\t\t\t\t\t\t\t\t// Hide dropdown if the touchstart was not on nav link\r\n\t\t\t\t\t\t\t\tself2.hideDropdown($el);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.hideDropdown = $el => {\r\n\t\t\t\t\tif ($el !== undefined) $el.removeClass(this.activeClass); else jquery_default()('.site-nav--has-dropdown').removeClass(this.activeClass);\r\n\t\t\t\t\tjquery_default()(document.body).off('touchstart');\r\n\r\n\t\t\t\t\tif (jquery_default()('.site-header').hasClass('overlay-header')) {\r\n\t\t\t\t\t\tjquery_default()('.sticky-header').removeClass('sticky-header-open');\r\n\t\t\t\t\t} // Reenable iOS workaround\r\n\r\n\r\n\t\t\t\t\tif (jquery_default()('.nav-hover').length === 0) {\r\n\t\t\t\t\t\tjquery_default()('.sticky-header').addClass('sticky-header-transformed');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.$element = jquery_default()(element);\r\n\t\t\t\tthis.$nav = jquery_default()('#AccessibleNav');\r\n\t\t\t\tthis.$allLinks = this.$nav.find('a');\r\n\t\t\t\tthis.$topLevel = this.$nav.children('li').find('a');\r\n\t\t\t\tthis.$parents = this.$nav.find('.site-nav--has-dropdown');\r\n\t\t\t\tthis.$subMenus = this.$nav.find('.site-nav__dropdown');\r\n\t\t\t\tthis.$subMenuLinks = this.$subMenus.find('a');\r\n\t\t\t\tthis.activeClass = 'nav-hover';\r\n\t\t\t\tthis.$parents.on('mouseover touchstart focusin', function (evt) {\r\n\t\t\t\t\tvar ret = true;\r\n\t\t\t\t\tvar $el = jquery_default()(this);\r\n\r\n\t\t\t\t\tif (!$el.hasClass(self.activeClass)) {\r\n\t\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\t\tself.hideDropdown($el.siblings());\r\n\t\t\t\t\t\tret = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.showDropdown($el);\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t});\r\n\t\t\t\tthis.$parents.each((i, el) => {\r\n\t\t\t\t\thoverintent_default()(el, function (evt) {\r\n\t\t\t\t\t\tjquery_default()('.' + self.activeClass).each(function (el) {\r\n\t\t\t\t\t\t\tvar $active = jquery_default()(this);\r\n\r\n\t\t\t\t\t\t\tif ($active.has(evt.target).length === 0) {\r\n\t\t\t\t\t\t\t\t$active.removeClass(self.activeClass);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, function () {// This is triggered when hovering over sub-menus /\r\n\t\t\t\t\t\t// child elements, so avoid using self.hideDropdown()\r\n\t\t\t\t\t\t// here.\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (!jquery_default()(el).hasClass('mega-menu') && jquery_default()(el).parent().hasClass('site-nav')) {\r\n\t\t\t\t\t\tjquery_default()(el).on('mouseleave', () => {\r\n\t\t\t\t\t\t\tself.hideDropdown();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}); // Handle focus for submenus.\r\n\r\n\t\t\t\tthis.$parents.each((i, el) => {\r\n\t\t\t\t\tjquery_default()(el).on('focusin', function (elem) {\r\n\t\t\t\t\t\tself.showDropdown(jquery_default()(el));\r\n\t\t\t\t\t});\r\n\t\t\t\t}); // Mouseout / blur.\r\n\r\n\t\t\t\tjquery_default()('.site-header').on('mouseleave', () => {\r\n\t\t\t\t\tself.hideDropdown();\r\n\t\t\t\t});\r\n\t\t\t\tjquery_default()('.site-nav__dropdown').on('mouseleave focusout', evt => {\r\n\t\t\t\t\tself.hideDropdown(jquery_default()(this));\r\n\t\t\t\t});\r\n\t\t\t\tthis.$subMenuLinks.on('touchstart', function (evt) {\r\n\t\t\t\t\t// Prevent touchstart on body from firing instead of link\r\n\t\t\t\t\tevt.stopImmediatePropagation();\r\n\t\t\t\t});\r\n\t\t\t\tthis.$allLinks.on('focusin', function (evt) {\r\n\t\t\t\t\tlet $el = jquery_default()(this).parent();\r\n\t\t\t\t\tself.closeSiblings($el, evt);\r\n\t\t\t\t});\r\n\t\t\t\tjquery_default()('.site-header').find('a, button, select').on('focusin', function () {\r\n\t\t\t\t\t// If this is not a menu (e.g. icon, logo), close all menus.\r\n\t\t\t\t\tlet thisElem = this;\r\n\t\t\t\t\tlet closeAllMenus = true;\r\n\t\t\t\t\tself.$allLinks.each(function () {\r\n\t\t\t\t\t\tif (jquery_default()(this).is(thisElem)) {\r\n\t\t\t\t\t\t\tcloseAllMenus = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (closeAllMenus) {\r\n\t\t\t\t\t\tself.$parents.each(function () {\r\n\t\t\t\t\t\t\tself.hideDropdown(jquery_default()(this));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Header.js\r\n\r\n\r\n\t\tfunction checkforSI(cart) {\r\n\t\t\tlet shipInsureSettings = document.querySelector('script[data-section-data]')?.textContent;\r\n\t\t\tif (shipInsureSettings) {\r\n\t\t\t\tlet settingsData = JSON.parse(shipInsureSettings)\r\n\t\t\t\tlet shipInsureProductId = localStorage.getItem('ship_insure_option') && localStorage.getItem('ship_insure_option') == \"b\" ? settingsData?.ship_insure_nt_option_b : settingsData?.ship_insure_nt;\r\n\t\t\t\tlet hasSI = cart.items.some(item => item.variant_id == shipInsureProductId)\r\n\t\t\t\treturn hasSI;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\tclass Header extends Section {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t * @param {boolean} pageLoad\r\n\t\t\t */\r\n\t\t\tconstructor(theme, _element, pageLoad) {\r\n\t\t\t\tsuper(theme, _element, pageLoad);\r\n\r\n\t\t\t\t// Store timeout for debouncing empty cart updates\r\n\t\t\t\tthis.cartUpdateTimeout = null;\r\n\t\t\t\t// Track if we've ever shown a non-empty cart (to handle page load)\r\n\t\t\t\tthis.hasShownNonEmptyCart = false;\r\n\r\n\t\t\t\t\tthis.onCartUpdate = e => {\r\n\t\t\t\t\t// Function to perform the actual visual update\r\n\t\t\t\t\tconst performUpdate = () => {\r\n\t\t\t\t\t\tArray.prototype.forEach.call(document.querySelectorAll('.cart-item-count-header--quantity'), el => {\r\n\t\t\t\t\t\t\tconst hasSI = checkforSI(e.detail.cart)\r\n\t\t\t\t\t\t\tel.classList.add('hide');\r\n\t\t\t\t\t\t\tconst cartHasItems = e.detail.cart && e.detail.cart.item_count > 0;\r\n\t\t\t\t\t\t\tel.textContent = !hasSI ? (e.detail.cart && e.detail.cart.item_count !== undefined ? e.detail.cart.item_count : 0) : (e.detail.cart && e.detail.cart.item_count !== undefined ? e.detail.cart.item_count - 1 : 0);\r\n\t\t\t\t\t\t\tif (cartHasItems) el.classList.remove('hide');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tconst price = this.theme.formatMoney(e.detail.cart.total_price);\r\n\t\t\t\t\t\tArray.prototype.forEach.call(document.querySelectorAll('.cart-item-count-header--total'), el => {\r\n\t\t\t\t\t\t\tel.classList.add('hide');\r\n\t\t\t\t\t\t\tconst cartHasPrice = e.detail.cart.total_price > 0;\r\n\t\t\t\t\t\t\tel.innerHTML = price;\r\n\t\t\t\t\t\t\tif (cartHasPrice) el.classList.remove('hide');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst itemCount = e.detail.cart?.item_count || 0;\r\n\r\n\t\t\t\t\tif (itemCount > 0) {\r\n\t\t\t\t\t\tthis.hasShownNonEmptyCart = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tperformUpdate();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onCartButtonClick = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('cart');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onMobileMenuButtonClick = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.mobileMenu.toggle();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadLogIn = () => {\r\n\t\t\t\t\tconst button = this.element.querySelector('.log-in-button');\r\n\r\n\t\t\t\t\tif (button) {\r\n\t\t\t\t\t\tbutton.addEventListener('click', this.onLogIn);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onLogIn = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('login', true);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadSearchDrawer = () => {\r\n\t\t\t\t\tdocument.querySelectorAll('.search-button').forEach(item => {\r\n\t\t\t\t\t\titem.addEventListener('click', this.onSearch);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSearch = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('search', true);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadAccessibleMenu = () => {\r\n\t\t\t\t\tthis.$element.find('.site-nav').addClass('js');\r\n\t\t\t\t\tthis.$element.find('.site-nav li a').focus(function () {\r\n\t\t\t\t\t\t// main nav anchor focus\r\n\t\t\t\t\t\tjquery_default()(this).parent().children('ul').fadeIn();\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.$element.find('.site-nav li li a').off(); // unbind hide drop downs from sub nav anchors\r\n\r\n\t\t\t\t\tconst self = this;\r\n\t\t\t\t\tthis.$element.find('.mobile-nav__link').on('click', function () {\r\n\t\t\t\t\t\tconst a = this;\r\n\r\n\t\t\t\t\t\tif (a.href && a.href.split('#')[0] === window.location.href.split('#')[0]) {\r\n\t\t\t\t\t\t\t// Anchor on same page - just close the drawer\r\n\t\t\t\t\t\t\tself.theme.toggleLeftDrawer(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.tabindexMobileNav();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.tabindexMobileNav = () => {\r\n\t\t\t\t\t// Mobile menu should not be keyboard-navigable while viewing on desktop.\r\n\t\t\t\t\tif (window.innerWidth > 768) {\r\n\t\t\t\t\t\tthis.$element.find('#NavDrawer a, #NavDrawer button').attr('tabindex', -1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.$element.find('#NavDrawer a, #NavDrawer button').removeAttr('tabindex');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResize = ({\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\toldWidth,\r\n\t\t\t\t\tbreakpoint\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tthis.tabindexMobileNav();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadStickyHeader = () => {\r\n\t\t\t\t\tif ('IntersectionObserver' in window) {\r\n\t\t\t\t\t\t// We need to apply sticky to child of element that is being scrolled, in\r\n\t\t\t\t\t\t// this case it's whole `shopify-section`\r\n\t\t\t\t\t\tconst headerWrapper = this.element.closest('.shopify-section');\r\n\t\t\t\t\t\theaderWrapper.classList.add('sticky-header');\r\n\t\t\t\t\t\tconst observer = new IntersectionObserver(([e]) => {\r\n\t\t\t\t\t\t\te.target.classList.toggle('sticked', e.intersectionRatio < 1);\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tthreshold: [1]\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobserver.observe(headerWrapper);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockSelect = ({\r\n\t\t\t\t\telement\r\n\t\t\t\t}) => {\r\n\t\t\t\t\t// Open mega menu and make overlay force-hovered\r\n\t\t\t\t\tif (element.dataset.megaMenuBlockId) {\r\n\t\t\t\t\t\tthis.$element.find('[data-mega-menu-block-id=' + element.dataset.megaMenuBlockId + ']').closest('li.mega-menu').addClass('force-open');\r\n\t\t\t\t\t\tthis.$element.find('.overlay-header').addClass('force-hover');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockDeselect = () => {\r\n\t\t\t\t\t// Close mega menu and make overlay non-hovered\r\n\t\t\t\t\tthis.$element.find('li.mega-menu.force-open').removeClass('force-open');\r\n\t\t\t\t\tthis.$element.find('.overlay-header').removeClass('force-hover');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.$element = jquery_default()(this.element);\r\n\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.js-drawer-open-right-link'), el => el.addEventListener('click', this.onCartButtonClick));\r\n\t\t\t\tthis.element.querySelector('.js-drawer-open-left-link').addEventListener('click', this.onMobileMenuButtonClick);\r\n\t\t\t\tthis.mobileMenu = new MobileMenu(theme, this.element.querySelector('.drawer--left'));\r\n\t\t\t\tdocument.documentElement.addEventListener(CART_UPDATE_EVENT, this.onCartUpdate);\r\n\r\n\t\t\t\tif (window.Shopify.designMode) {\r\n\t\t\t\t\tconst headerEl = this.element.querySelector('header');\r\n\t\t\t\t\tconst overlayHeader = this.element.dataset.headerOverlay;\r\n\t\t\t\t\tdocument.addEventListener('shopify:inspector:activate', () => {\r\n\t\t\t\t\t\t// Disable sticky header\r\n\t\t\t\t\t\tthis.element.setAttribute('data-inspector-active', 'true');\r\n\t\t\t\t\t\tconst headerWrapper = this.element.closest('.shopify-section');\r\n\t\t\t\t\t\tif (this.element.dataset.headerSticky === 'true') headerWrapper.classList.remove('sticky-header'); // Disable overlay header\r\n\r\n\t\t\t\t\t\tif (overlayHeader == 'true') {\r\n\t\t\t\t\t\t\tthis.element.classList.remove('overlay-header-wrapper');\r\n\t\t\t\t\t\t\tif (headerEl) headerEl.classList.remove('overlay-header');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdocument.addEventListener('shopify:inspector:deactivate', () => {\r\n\t\t\t\t\t\t// Re-enable sticky header\r\n\t\t\t\t\t\tthis.element.setAttribute('data-inspector-active', 'false');\r\n\t\t\t\t\t\tif (this.element.dataset.headerSticky === 'true') this.loadStickyHeader(); // Re-enable overlay header\r\n\r\n\t\t\t\t\t\tif (overlayHeader == 'true') {\r\n\t\t\t\t\t\t\tthis.element.classList.add('overlay-header-wrapper');\r\n\t\t\t\t\t\t\tif (headerEl) headerEl.classList.add('overlay-header');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} // Close mobile menu on overlay click\r\n\r\n\r\n\t\t\t\tthis.element.querySelector('#NavDrawerOverlay').addEventListener('click', () => this.theme.toggleLeftDrawer(false));\r\n\t\t\t\tthis.loadAccessibleMenu();\r\n\r\n\t\t\t\tif (this.element.dataset.headerSticky === 'true' && (this.element.dataset.inspectorActive == 'false' || !this.element.dataset.inspectorActive)) {\r\n\t\t\t\t\tthis.loadStickyHeader();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.loadLogIn();\r\n\t\t\t\tthis.loadSearchDrawer();\r\n\t\t\t\tthis.menu = new Menu(this, _element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Footer.js\r\n\r\n\t\tclass Footer extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.fixFooterToBottom = () => {\r\n\t\t\t\t\tlet heightOfContent = this.pageContainer.offsetHeight + this.footerWrapper.offsetHeight;\r\n\t\t\t\t\tthis.footerWrapper.classList.remove('fix-to-bottom'); // If the viewport is higher than the content.\r\n\r\n\t\t\t\t\tif (window.innerHeight > heightOfContent) {\r\n\t\t\t\t\t\tthis.footerWrapper.classList.add('fix-to-bottom');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockSelect = () => {\r\n\t\t\t\t\tthis.fixFooterToBottom();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.footerWrapper = document.querySelector('.footer-wrapper');\r\n\t\t\t\tthis.footer = document.querySelector('footer');\r\n\t\t\t\tthis.pageContainer = document.querySelector('#PageContainer');\r\n\t\t\t\tthis.fixFooterToBottom();\r\n\t\t\t\tlet self = this;\r\n\t\t\t\tdocument.addEventListener('shopify:section:load', this.fixFooterToBottom);\r\n\t\t\t\tdocument.addEventListener('shopify:section:unload', this.fixFooterToBottom);\r\n\t\t\t\tdocument.addEventListener('shopify:section:select', this.fixFooterToBottom);\r\n\t\t\t\tdocument.addEventListener('shopify:section:deselect', this.fixFooterToBottom);\r\n\t\t\t\tdocument.addEventListener('shopify:section:reorder', this.fixFooterToBottom);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/AnnouncementBar.js\r\n\r\n\t\tclass AnnouncementBar extends Section { }\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/CustomHtml.js\r\n\r\n\t\tclass CustomHtml extends Section { }\r\n\t\t// EXTERNAL MODULE: ./node_modules/imagesloaded/imagesloaded.js\r\n\t\tvar imagesloaded = __webpack_require__(564);\r\n\t\tvar imagesloaded_default = /*#__PURE__*/__webpack_require__.n(imagesloaded);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/KenBurns.js\r\n\t\tclass KenBurns {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.load = () => {\r\n\t\t\t\t\tif ('IntersectionObserver' in window) {\r\n\t\t\t\t\t\tthis.observer = new IntersectionObserver(() => {\r\n\t\t\t\t\t\t\tthis.apply();\r\n\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\tthreshold: [1]\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.observer.observe(this.element);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.apply = () => {\r\n\t\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.kb-enabled'), (el, index) => {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tel.classList.add('in-viewport');\r\n\t\t\t\t\t\t}, 150 * index);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.reapply = () => {\r\n\t\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.kb-enabled'), el => {\r\n\t\t\t\t\t\tif (el.classList.contains('in-viewport')) {\r\n\t\t\t\t\t\t\t// Reapply ken burns with a slight delay.\r\n\t\t\t\t\t\t\tel.classList.add('no-anim');\r\n\t\t\t\t\t\t\tel.classList.remove('in-viewport');\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tel.classList.remove('no-anim');\r\n\t\t\t\t\t\t\t\tel.classList.add('in-viewport');\r\n\t\t\t\t\t\t\t}, 150);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.load();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Hero.js\r\n\r\n\r\n\r\n\r\n\t\tclass Hero extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.hoverEffect = $link => {\r\n\t\t\t\t\tconst $overlay = jquery_default()('#' + $link.data('overlayId'));\r\n\t\t\t\t\t$link.hover(() => {\r\n\t\t\t\t\t\t$overlay.addClass(\"active\");\r\n\t\t\t\t\t}, () => {\r\n\t\t\t\t\t\t$overlay.removeClass(\"active\");\r\n\t\t\t\t\t}); // Apply hover on page load\r\n\r\n\t\t\t\t\tif ($link.is(':hover')) {\r\n\t\t\t\t\t\t$overlay.addClass(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\timagesloaded_default()(this.element.querySelectorAll('.homepage-hero-content-overlay-menu-item'), {\r\n\t\t\t\t\tbackground: true\r\n\t\t\t\t}, () => {\r\n\t\t\t\t\tthis.kenBurns = new KenBurns(theme, element);\r\n\t\t\t\t\tjquery_default()(\".homepage-hero-text-advert-link\").each((index, link) => {\r\n\t\t\t\t\t\tthis.hoverEffect(jquery_default()(link));\r\n\t\t\t\t\t});\r\n\t\t\t\t\tjquery_default()('.homepage-hero-menu li').each((index, link) => {\r\n\t\t\t\t\t\tthis.hoverEffect(jquery_default()(link));\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./node_modules/ssr-window/dist/ssr-window.esm.js\r\n\t\t/**\r\n\t\t * SSR Window 2.0.0\r\n\t\t * Better handling for window object in SSR environment\r\n\t\t * https://github.com/nolimits4web/ssr-window\r\n\t\t *\r\n\t\t * Copyright 2020, Vladimir Kharlampidi\r\n\t\t *\r\n\t\t * Licensed under MIT\r\n\t\t *\r\n\t\t * Released on: May 12, 2020\r\n\t\t */\r\n\t\t/* eslint-disable no-param-reassign */\r\n\t\tfunction ssr_window_esm_isObject(obj) {\r\n\t\t\treturn (obj !== null &&\r\n\t\t\t\ttypeof obj === 'object' &&\r\n\t\t\t\t'constructor' in obj &&\r\n\t\t\t\tobj.constructor === Object);\r\n\t\t}\r\n\t\tfunction ssr_window_esm_extend(target, src) {\r\n\t\t\tif (target === void 0) { target = {}; }\r\n\t\t\tif (src === void 0) { src = {}; }\r\n\t\t\tObject.keys(src).forEach(function (key) {\r\n\t\t\t\tif (typeof target[key] === 'undefined')\r\n\t\t\t\t\ttarget[key] = src[key];\r\n\t\t\t\telse if (ssr_window_esm_isObject(src[key]) &&\r\n\t\t\t\t\tssr_window_esm_isObject(target[key]) &&\r\n\t\t\t\t\tObject.keys(src[key]).length > 0) {\r\n\t\t\t\t\tssr_window_esm_extend(target[key], src[key]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar doc = typeof document !== 'undefined' ? document : {};\r\n\t\tvar ssrDocument = {\r\n\t\t\tbody: {},\r\n\t\t\taddEventListener: function () { },\r\n\t\t\tremoveEventListener: function () { },\r\n\t\t\tactiveElement: {\r\n\t\t\t\tblur: function () { },\r\n\t\t\t\tnodeName: '',\r\n\t\t\t},\r\n\t\t\tquerySelector: function () {\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tquerySelectorAll: function () {\r\n\t\t\t\treturn [];\r\n\t\t\t},\r\n\t\t\tgetElementById: function () {\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tcreateEvent: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tinitEvent: function () { },\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tcreateElement: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tchildren: [],\r\n\t\t\t\t\tchildNodes: [],\r\n\t\t\t\t\tstyle: {},\r\n\t\t\t\t\tsetAttribute: function () { },\r\n\t\t\t\t\tgetElementsByTagName: function () {\r\n\t\t\t\t\t\treturn [];\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tcreateElementNS: function () {\r\n\t\t\t\treturn {};\r\n\t\t\t},\r\n\t\t\timportNode: function () {\r\n\t\t\t\treturn null;\r\n\t\t\t},\r\n\t\t\tlocation: {\r\n\t\t\t\thash: '',\r\n\t\t\t\thost: '',\r\n\t\t\t\thostname: '',\r\n\t\t\t\thref: '',\r\n\t\t\t\torigin: '',\r\n\t\t\t\tpathname: '',\r\n\t\t\t\tprotocol: '',\r\n\t\t\t\tsearch: '',\r\n\t\t\t},\r\n\t\t};\r\n\t\tssr_window_esm_extend(doc, ssrDocument);\r\n\r\n\t\tvar win = typeof window !== 'undefined' ? window : {};\r\n\t\tvar ssrWindow = {\r\n\t\t\tdocument: ssrDocument,\r\n\t\t\tnavigator: {\r\n\t\t\t\tuserAgent: '',\r\n\t\t\t},\r\n\t\t\tlocation: {\r\n\t\t\t\thash: '',\r\n\t\t\t\thost: '',\r\n\t\t\t\thostname: '',\r\n\t\t\t\thref: '',\r\n\t\t\t\torigin: '',\r\n\t\t\t\tpathname: '',\r\n\t\t\t\tprotocol: '',\r\n\t\t\t\tsearch: '',\r\n\t\t\t},\r\n\t\t\thistory: {\r\n\t\t\t\treplaceState: function () { },\r\n\t\t\t\tpushState: function () { },\r\n\t\t\t\tgo: function () { },\r\n\t\t\t\tback: function () { },\r\n\t\t\t},\r\n\t\t\tCustomEvent: function CustomEvent() {\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\taddEventListener: function () { },\r\n\t\t\tremoveEventListener: function () { },\r\n\t\t\tgetComputedStyle: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tgetPropertyValue: function () {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tImage: function () { },\r\n\t\t\tDate: function () { },\r\n\t\t\tscreen: {},\r\n\t\t\tsetTimeout: function () { },\r\n\t\t\tclearTimeout: function () { },\r\n\t\t\tmatchMedia: function () {\r\n\t\t\t\treturn {};\r\n\t\t\t},\r\n\t\t};\r\n\t\tssr_window_esm_extend(win, ssrWindow);\r\n\r\n\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/dom7/dist/dom7.modular.js\r\n\t\t/**\r\n\t\t * Dom7 2.1.5\r\n\t\t * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\r\n\t\t * http://framework7.io/docs/dom.html\r\n\t\t *\r\n\t\t * Copyright 2020, Vladimir Kharlampidi\r\n\t\t * The iDangero.us\r\n\t\t * http://www.idangero.us/\r\n\t\t *\r\n\t\t * Licensed under MIT\r\n\t\t *\r\n\t\t * Released on: May 15, 2020\r\n\t\t */\r\n\r\n\r\n\t\tclass Dom7 {\r\n\t\t\tconstructor(arr) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\t// Create array-like object\r\n\t\t\t\tfor (let i = 0; i < arr.length; i += 1) {\r\n\t\t\t\t\tself[i] = arr[i];\r\n\t\t\t\t}\r\n\t\t\t\tself.length = arr.length;\r\n\t\t\t\t// Return collection with methods\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction $(selector, context) {\r\n\t\t\tconst arr = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tif (selector && !context) {\r\n\t\t\t\tif (selector instanceof Dom7) {\r\n\t\t\t\t\treturn selector;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (selector) {\r\n\t\t\t\t// String\r\n\t\t\t\tif (typeof selector === 'string') {\r\n\t\t\t\t\tlet els;\r\n\t\t\t\t\tlet tempParent;\r\n\t\t\t\t\tconst html = selector.trim();\r\n\t\t\t\t\tif (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\r\n\t\t\t\t\t\tlet toCreate = 'div';\r\n\t\t\t\t\t\tif (html.indexOf('<li') === 0) toCreate = 'ul';\r\n\t\t\t\t\t\tif (html.indexOf('<tr') === 0) toCreate = 'tbody';\r\n\t\t\t\t\t\tif (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\r\n\t\t\t\t\t\tif (html.indexOf('<tbody') === 0) toCreate = 'table';\r\n\t\t\t\t\t\tif (html.indexOf('<option') === 0) toCreate = 'select';\r\n\t\t\t\t\t\ttempParent = doc.createElement(toCreate);\r\n\t\t\t\t\t\ttempParent.innerHTML = html;\r\n\t\t\t\t\t\tfor (i = 0; i < tempParent.childNodes.length; i += 1) {\r\n\t\t\t\t\t\t\tarr.push(tempParent.childNodes[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {\r\n\t\t\t\t\t\t\t// Pure ID selector\r\n\t\t\t\t\t\t\tels = [doc.getElementById(selector.trim().split('#')[1])];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Other selectors\r\n\t\t\t\t\t\t\tels = (context || doc).querySelectorAll(selector.trim());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (i = 0; i < els.length; i += 1) {\r\n\t\t\t\t\t\t\tif (els[i]) arr.push(els[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (selector.nodeType || selector === win || selector === doc) {\r\n\t\t\t\t\t// Node/element\r\n\t\t\t\t\tarr.push(selector);\r\n\t\t\t\t} else if (selector.length > 0 && selector[0].nodeType) {\r\n\t\t\t\t\t// Array of elements or instance of Dom\r\n\t\t\t\t\tfor (i = 0; i < selector.length; i += 1) {\r\n\t\t\t\t\t\tarr.push(selector[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn new Dom7(arr);\r\n\t\t}\r\n\r\n\t\t$.fn = Dom7.prototype;\r\n\t\t$.Class = Dom7;\r\n\t\t$.Dom7 = Dom7;\r\n\r\n\t\tfunction unique(arr) {\r\n\t\t\tconst uniqueArray = [];\r\n\t\t\tfor (let i = 0; i < arr.length; i += 1) {\r\n\t\t\t\tif (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\r\n\t\t\t}\r\n\t\t\treturn uniqueArray;\r\n\t\t}\r\n\t\tfunction toCamelCase(string) {\r\n\t\t\treturn string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\r\n\t\t}\r\n\r\n\t\tfunction requestAnimationFrame(callback) {\r\n\t\t\tif (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\r\n\t\t\telse if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\r\n\t\t\treturn window.setTimeout(callback, 1000 / 60);\r\n\t\t}\r\n\t\tfunction cancelAnimationFrame(id) {\r\n\t\t\tif (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\r\n\t\t\telse if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\r\n\t\t\treturn window.clearTimeout(id);\r\n\t\t}\r\n\r\n\t\t// Classes and attributes\r\n\t\tfunction dom7_modular_addClass(className) {\r\n\t\t\tif (typeof className === 'undefined') {\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t\tconst classes = className.split(' ');\r\n\t\t\tfor (let i = 0; i < classes.length; i += 1) {\r\n\t\t\t\tfor (let j = 0; j < this.length; j += 1) {\r\n\t\t\t\t\tif (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction dom7_modular_removeClass(className) {\r\n\t\t\tconst classes = className.split(' ');\r\n\t\t\tfor (let i = 0; i < classes.length; i += 1) {\r\n\t\t\t\tfor (let j = 0; j < this.length; j += 1) {\r\n\t\t\t\t\tif (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction hasClass(className) {\r\n\t\t\tif (!this[0]) return false;\r\n\t\t\treturn this[0].classList.contains(className);\r\n\t\t}\r\n\t\tfunction toggleClass(className) {\r\n\t\t\tconst classes = className.split(' ');\r\n\t\t\tfor (let i = 0; i < classes.length; i += 1) {\r\n\t\t\t\tfor (let j = 0; j < this.length; j += 1) {\r\n\t\t\t\t\tif (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction attr(attrs, value) {\r\n\t\t\tif (arguments.length === 1 && typeof attrs === 'string') {\r\n\t\t\t\t// Get attr\r\n\t\t\t\tif (this[0]) return this[0].getAttribute(attrs);\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\r\n\t\t\t// Set attrs\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (arguments.length === 2) {\r\n\t\t\t\t\t// String\r\n\t\t\t\t\tthis[i].setAttribute(attrs, value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Object\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tfor (const attrName in attrs) {\r\n\t\t\t\t\t\tthis[i][attrName] = attrs[attrName];\r\n\t\t\t\t\t\tthis[i].setAttribute(attrName, attrs[attrName]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction removeAttr(attr) {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tthis[i].removeAttribute(attr);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction prop(props, value) {\r\n\t\t\tif (arguments.length === 1 && typeof props === 'string') {\r\n\t\t\t\t// Get prop\r\n\t\t\t\tif (this[0]) return this[0][props];\r\n\t\t\t} else {\r\n\t\t\t\t// Set props\r\n\t\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\t\tif (arguments.length === 2) {\r\n\t\t\t\t\t\t// String\r\n\t\t\t\t\t\tthis[i][props] = value;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Object\r\n\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\tfor (const propName in props) {\r\n\t\t\t\t\t\t\tthis[i][propName] = props[propName];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction data(key, value) {\r\n\t\t\tlet el;\r\n\t\t\tif (typeof value === 'undefined') {\r\n\t\t\t\tel = this[0];\r\n\t\t\t\t// Get value\r\n\t\t\t\tif (el) {\r\n\t\t\t\t\tif (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\r\n\t\t\t\t\t\treturn el.dom7ElementDataStorage[key];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst dataKey = el.getAttribute(`data-${key}`);\r\n\t\t\t\t\tif (dataKey) {\r\n\t\t\t\t\t\treturn dataKey;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\r\n\t\t\t// Set value\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tel = this[i];\r\n\t\t\t\tif (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\r\n\t\t\t\tel.dom7ElementDataStorage[key] = value;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction removeData(key) {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst el = this[i];\r\n\t\t\t\tif (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\r\n\t\t\t\t\tel.dom7ElementDataStorage[key] = null;\r\n\t\t\t\t\tdelete el.dom7ElementDataStorage[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction dataset() {\r\n\t\t\tconst el = this[0];\r\n\t\t\tif (!el) return undefined;\r\n\t\t\tconst dataset = {}; // eslint-disable-line\r\n\t\t\tif (el.dataset) {\r\n\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\tfor (const dataKey in el.dataset) {\r\n\t\t\t\t\tdataset[dataKey] = el.dataset[dataKey];\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (let i = 0; i < el.attributes.length; i += 1) {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tconst attr = el.attributes[i];\r\n\t\t\t\t\tif (attr.name.indexOf('data-') >= 0) {\r\n\t\t\t\t\t\tdataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// eslint-disable-next-line\r\n\t\t\tfor (const key in dataset) {\r\n\t\t\t\tif (dataset[key] === 'false') dataset[key] = false;\r\n\t\t\t\telse if (dataset[key] === 'true') dataset[key] = true;\r\n\t\t\t\telse if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\r\n\t\t\t}\r\n\t\t\treturn dataset;\r\n\t\t}\r\n\t\tfunction val(value) {\r\n\t\t\tconst dom = this;\r\n\t\t\tif (typeof value === 'undefined') {\r\n\t\t\t\tif (dom[0]) {\r\n\t\t\t\t\tif (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\r\n\t\t\t\t\t\tconst values = [];\r\n\t\t\t\t\t\tfor (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\r\n\t\t\t\t\t\t\tvalues.push(dom[0].selectedOptions[i].value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn values;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn dom[0].value;\r\n\t\t\t\t}\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < dom.length; i += 1) {\r\n\t\t\t\tconst el = dom[i];\r\n\t\t\t\tif (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\r\n\t\t\t\t\tfor (let j = 0; j < el.options.length; j += 1) {\r\n\t\t\t\t\t\tel.options[j].selected = value.indexOf(el.options[j].value) >= 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.value = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t}\r\n\t\t// Transforms\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction transform(transform) {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst elStyle = this[i].style;\r\n\t\t\t\telStyle.webkitTransform = transform;\r\n\t\t\t\telStyle.transform = transform;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction dom7_modular_transition(duration) {\r\n\t\t\tif (typeof duration !== 'string') {\r\n\t\t\t\tduration = `${duration}ms`; // eslint-disable-line\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst elStyle = this[i].style;\r\n\t\t\t\telStyle.webkitTransitionDuration = duration;\r\n\t\t\t\telStyle.transitionDuration = duration;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// Events\r\n\t\tfunction dom7_modular_on(...args) {\r\n\t\t\tlet [eventType, targetSelector, listener, capture] = args;\r\n\t\t\tif (typeof args[1] === 'function') {\r\n\t\t\t\t[eventType, listener, capture] = args;\r\n\t\t\t\ttargetSelector = undefined;\r\n\t\t\t}\r\n\t\t\tif (!capture) capture = false;\r\n\r\n\t\t\tfunction handleLiveEvent(e) {\r\n\t\t\t\tconst target = e.target;\r\n\t\t\t\tif (!target) return;\r\n\t\t\t\tconst eventData = e.target.dom7EventData || [];\r\n\t\t\t\tif (eventData.indexOf(e) < 0) {\r\n\t\t\t\t\teventData.unshift(e);\r\n\t\t\t\t}\r\n\t\t\t\tif ($(target).is(targetSelector)) listener.apply(target, eventData);\r\n\t\t\t\telse {\r\n\t\t\t\t\tconst parents = $(target).parents(); // eslint-disable-line\r\n\t\t\t\t\tfor (let k = 0; k < parents.length; k += 1) {\r\n\t\t\t\t\t\tif ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfunction handleEvent(e) {\r\n\t\t\t\tconst eventData = e && e.target ? e.target.dom7EventData || [] : [];\r\n\t\t\t\tif (eventData.indexOf(e) < 0) {\r\n\t\t\t\t\teventData.unshift(e);\r\n\t\t\t\t}\r\n\t\t\t\tlistener.apply(this, eventData);\r\n\t\t\t}\r\n\t\t\tconst events = eventType.split(' ');\r\n\t\t\tlet j;\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst el = this[i];\r\n\t\t\t\tif (!targetSelector) {\r\n\t\t\t\t\tfor (j = 0; j < events.length; j += 1) {\r\n\t\t\t\t\t\tconst event = events[j];\r\n\t\t\t\t\t\tif (!el.dom7Listeners) el.dom7Listeners = {};\r\n\t\t\t\t\t\tif (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\r\n\t\t\t\t\t\tel.dom7Listeners[event].push({\r\n\t\t\t\t\t\t\tlistener,\r\n\t\t\t\t\t\t\tproxyListener: handleEvent,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tel.addEventListener(event, handleEvent, capture);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Live events\r\n\t\t\t\t\tfor (j = 0; j < events.length; j += 1) {\r\n\t\t\t\t\t\tconst event = events[j];\r\n\t\t\t\t\t\tif (!el.dom7LiveListeners) el.dom7LiveListeners = {};\r\n\t\t\t\t\t\tif (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\r\n\t\t\t\t\t\tel.dom7LiveListeners[event].push({\r\n\t\t\t\t\t\t\tlistener,\r\n\t\t\t\t\t\t\tproxyListener: handleLiveEvent,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tel.addEventListener(event, handleLiveEvent, capture);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction off(...args) {\r\n\t\t\tlet [eventType, targetSelector, listener, capture] = args;\r\n\t\t\tif (typeof args[1] === 'function') {\r\n\t\t\t\t[eventType, listener, capture] = args;\r\n\t\t\t\ttargetSelector = undefined;\r\n\t\t\t}\r\n\t\t\tif (!capture) capture = false;\r\n\r\n\t\t\tconst events = eventType.split(' ');\r\n\t\t\tfor (let i = 0; i < events.length; i += 1) {\r\n\t\t\t\tconst event = events[i];\r\n\t\t\t\tfor (let j = 0; j < this.length; j += 1) {\r\n\t\t\t\t\tconst el = this[j];\r\n\t\t\t\t\tlet handlers;\r\n\t\t\t\t\tif (!targetSelector && el.dom7Listeners) {\r\n\t\t\t\t\t\thandlers = el.dom7Listeners[event];\r\n\t\t\t\t\t} else if (targetSelector && el.dom7LiveListeners) {\r\n\t\t\t\t\t\thandlers = el.dom7LiveListeners[event];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (handlers && handlers.length) {\r\n\t\t\t\t\t\tfor (let k = handlers.length - 1; k >= 0; k -= 1) {\r\n\t\t\t\t\t\t\tconst handler = handlers[k];\r\n\t\t\t\t\t\t\tif (listener && handler.listener === listener) {\r\n\t\t\t\t\t\t\t\tel.removeEventListener(event, handler.proxyListener, capture);\r\n\t\t\t\t\t\t\t\thandlers.splice(k, 1);\r\n\t\t\t\t\t\t\t} else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\r\n\t\t\t\t\t\t\t\tel.removeEventListener(event, handler.proxyListener, capture);\r\n\t\t\t\t\t\t\t\thandlers.splice(k, 1);\r\n\t\t\t\t\t\t\t} else if (!listener) {\r\n\t\t\t\t\t\t\t\tel.removeEventListener(event, handler.proxyListener, capture);\r\n\t\t\t\t\t\t\t\thandlers.splice(k, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction dom7_modular_once(...args) {\r\n\t\t\tconst dom = this;\r\n\t\t\tlet [eventName, targetSelector, listener, capture] = args;\r\n\t\t\tif (typeof args[1] === 'function') {\r\n\t\t\t\t[eventName, listener, capture] = args;\r\n\t\t\t\ttargetSelector = undefined;\r\n\t\t\t}\r\n\t\t\tfunction onceHandler(...eventArgs) {\r\n\t\t\t\tlistener.apply(this, eventArgs);\r\n\t\t\t\tdom.off(eventName, targetSelector, onceHandler, capture);\r\n\t\t\t\tif (onceHandler.dom7proxy) {\r\n\t\t\t\t\tdelete onceHandler.dom7proxy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tonceHandler.dom7proxy = listener;\r\n\t\t\treturn dom.on(eventName, targetSelector, onceHandler, capture);\r\n\t\t}\r\n\t\tfunction dom7_modular_trigger(...args) {\r\n\t\t\tconst events = args[0].split(' ');\r\n\t\t\tconst eventData = args[1];\r\n\t\t\tfor (let i = 0; i < events.length; i += 1) {\r\n\t\t\t\tconst event = events[i];\r\n\t\t\t\tfor (let j = 0; j < this.length; j += 1) {\r\n\t\t\t\t\tconst el = this[j];\r\n\t\t\t\t\tlet evt;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tevt = new win.CustomEvent(event, {\r\n\t\t\t\t\t\t\tdetail: eventData,\r\n\t\t\t\t\t\t\tbubbles: true,\r\n\t\t\t\t\t\t\tcancelable: true,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tevt = doc.createEvent('Event');\r\n\t\t\t\t\t\tevt.initEvent(event, true, true);\r\n\t\t\t\t\t\tevt.detail = eventData;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tel.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\r\n\t\t\t\t\tel.dispatchEvent(evt);\r\n\t\t\t\t\tel.dom7EventData = [];\r\n\t\t\t\t\tdelete el.dom7EventData;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction transitionEnd(callback) {\r\n\t\t\tconst events = ['webkitTransitionEnd', 'transitionend'];\r\n\t\t\tconst dom = this;\r\n\t\t\tlet i;\r\n\t\t\tfunction fireCallBack(e) {\r\n\t\t\t\t/* jshint validthis:true */\r\n\t\t\t\tif (e.target !== this) return;\r\n\t\t\t\tcallback.call(this, e);\r\n\t\t\t\tfor (i = 0; i < events.length; i += 1) {\r\n\t\t\t\t\tdom.off(events[i], fireCallBack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (callback) {\r\n\t\t\t\tfor (i = 0; i < events.length; i += 1) {\r\n\t\t\t\t\tdom.on(events[i], fireCallBack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction animationEnd(callback) {\r\n\t\t\tconst events = ['webkitAnimationEnd', 'animationend'];\r\n\t\t\tconst dom = this;\r\n\t\t\tlet i;\r\n\t\t\tfunction fireCallBack(e) {\r\n\t\t\t\tif (e.target !== this) return;\r\n\t\t\t\tcallback.call(this, e);\r\n\t\t\t\tfor (i = 0; i < events.length; i += 1) {\r\n\t\t\t\t\tdom.off(events[i], fireCallBack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (callback) {\r\n\t\t\t\tfor (i = 0; i < events.length; i += 1) {\r\n\t\t\t\t\tdom.on(events[i], fireCallBack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// Sizing/Styles\r\n\t\tfunction width() {\r\n\t\t\tif (this[0] === window) {\r\n\t\t\t\treturn window.innerWidth;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\treturn parseFloat(this.css('width'));\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tfunction dom7_modular_outerWidth(includeMargins) {\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\tif (includeMargins) {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tconst styles = this.styles();\r\n\t\t\t\t\treturn this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\r\n\t\t\t\t}\r\n\t\t\t\treturn this[0].offsetWidth;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tfunction height() {\r\n\t\t\tif (this[0] === window) {\r\n\t\t\t\treturn window.innerHeight;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\treturn parseFloat(this.css('height'));\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tfunction dom7_modular_outerHeight(includeMargins) {\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\tif (includeMargins) {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tconst styles = this.styles();\r\n\t\t\t\t\treturn this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\r\n\t\t\t\t}\r\n\t\t\t\treturn this[0].offsetHeight;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tfunction offset() {\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\tconst el = this[0];\r\n\t\t\t\tconst box = el.getBoundingClientRect();\r\n\t\t\t\tconst body = doc.body;\r\n\t\t\t\tconst clientTop = el.clientTop || body.clientTop || 0;\r\n\t\t\t\tconst clientLeft = el.clientLeft || body.clientLeft || 0;\r\n\t\t\t\tconst scrollTop = el === win ? win.scrollY : el.scrollTop;\r\n\t\t\t\tconst scrollLeft = el === win ? win.scrollX : el.scrollLeft;\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttop: (box.top + scrollTop) - clientTop,\r\n\t\t\t\t\tleft: (box.left + scrollLeft) - clientLeft,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tfunction hide() {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tthis[i].style.display = 'none';\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction dom7_modular_show() {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst el = this[i];\r\n\t\t\t\tif (el.style.display === 'none') {\r\n\t\t\t\t\tel.style.display = '';\r\n\t\t\t\t}\r\n\t\t\t\tif (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\r\n\t\t\t\t\t// Still not visible\r\n\t\t\t\t\tel.style.display = 'block';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction styles() {\r\n\t\t\tif (this[0]) return win.getComputedStyle(this[0], null);\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tfunction css(props, value) {\r\n\t\t\tlet i;\r\n\t\t\tif (arguments.length === 1) {\r\n\t\t\t\tif (typeof props === 'string') {\r\n\t\t\t\t\tif (this[0]) return win.getComputedStyle(this[0], null).getPropertyValue(props);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (i = 0; i < this.length; i += 1) {\r\n\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\tfor (let prop in props) {\r\n\t\t\t\t\t\t\tthis[i].style[prop] = props[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (arguments.length === 2 && typeof props === 'string') {\r\n\t\t\t\tfor (i = 0; i < this.length; i += 1) {\r\n\t\t\t\t\tthis[i].style[props] = value;\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\t// Dom manipulation\r\n\t\tfunction dom7_modular_toArray() {\r\n\t\t\tconst arr = [];\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tarr.push(this[i]);\r\n\t\t\t}\r\n\t\t\treturn arr;\r\n\t\t}\r\n\t\t// Iterate over the collection passing elements to `callback`\r\n\t\tfunction each(callback) {\r\n\t\t\t// Don't bother continuing without a callback\r\n\t\t\tif (!callback) return this;\r\n\t\t\t// Iterate over the current collection\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\t// If the callback returns false\r\n\t\t\t\tif (callback.call(this[i], i, this[i]) === false) {\r\n\t\t\t\t\t// End the loop early\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Return `this` to allow chained DOM operations\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction forEach(callback) {\r\n\t\t\t// Don't bother continuing without a callback\r\n\t\t\tif (!callback) return this;\r\n\t\t\t// Iterate over the current collection\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\t// If the callback returns false\r\n\t\t\t\tif (callback.call(this[i], this[i], i) === false) {\r\n\t\t\t\t\t// End the loop early\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Return `this` to allow chained DOM operations\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction filter(callback) {\r\n\t\t\tconst matchedItems = [];\r\n\t\t\tconst dom = this;\r\n\t\t\tfor (let i = 0; i < dom.length; i += 1) {\r\n\t\t\t\tif (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\r\n\t\t\t}\r\n\t\t\treturn new Dom7(matchedItems);\r\n\t\t}\r\n\t\tfunction map(callback) {\r\n\t\t\tconst modifiedItems = [];\r\n\t\t\tconst dom = this;\r\n\t\t\tfor (let i = 0; i < dom.length; i += 1) {\r\n\t\t\t\tmodifiedItems.push(callback.call(dom[i], i, dom[i]));\r\n\t\t\t}\r\n\t\t\treturn new Dom7(modifiedItems);\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction dom7_modular_html(html) {\r\n\t\t\tif (typeof html === 'undefined') {\r\n\t\t\t\treturn this[0] ? this[0].innerHTML : undefined;\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tthis[i].innerHTML = html;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction dom7_modular_text(text) {\r\n\t\t\tif (typeof text === 'undefined') {\r\n\t\t\t\tif (this[0]) {\r\n\t\t\t\t\treturn this[0].textContent.trim();\r\n\t\t\t\t}\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tthis[i].textContent = text;\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction is(selector) {\r\n\t\t\tconst el = this[0];\r\n\t\t\tlet compareWith;\r\n\t\t\tlet i;\r\n\t\t\tif (!el || typeof selector === 'undefined') return false;\r\n\t\t\tif (typeof selector === 'string') {\r\n\t\t\t\tif (el.matches) return el.matches(selector);\r\n\t\t\t\telse if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\r\n\t\t\t\telse if (el.msMatchesSelector) return el.msMatchesSelector(selector);\r\n\r\n\t\t\t\tcompareWith = $(selector);\r\n\t\t\t\tfor (i = 0; i < compareWith.length; i += 1) {\r\n\t\t\t\t\tif (compareWith[i] === el) return true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t} else if (selector === doc) return el === doc;\r\n\t\t\telse if (selector === win) return el === win;\r\n\r\n\t\t\tif (selector.nodeType || selector instanceof Dom7) {\r\n\t\t\t\tcompareWith = selector.nodeType ? [selector] : selector;\r\n\t\t\t\tfor (i = 0; i < compareWith.length; i += 1) {\r\n\t\t\t\t\tif (compareWith[i] === el) return true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tfunction indexOf(el) {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (this[i] === el) return i;\r\n\t\t\t}\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\tfunction dom7_modular_index() {\r\n\t\t\tlet child = this[0];\r\n\t\t\tlet i;\r\n\t\t\tif (child) {\r\n\t\t\t\ti = 0;\r\n\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\twhile ((child = child.previousSibling) !== null) {\r\n\t\t\t\t\tif (child.nodeType === 1) i += 1;\r\n\t\t\t\t}\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction eq(index) {\r\n\t\t\tif (typeof index === 'undefined') return this;\r\n\t\t\tconst length = this.length;\r\n\t\t\tlet returnIndex;\r\n\t\t\tif (index > length - 1) {\r\n\t\t\t\treturn new Dom7([]);\r\n\t\t\t}\r\n\t\t\tif (index < 0) {\r\n\t\t\t\treturnIndex = length + index;\r\n\t\t\t\tif (returnIndex < 0) return new Dom7([]);\r\n\t\t\t\treturn new Dom7([this[returnIndex]]);\r\n\t\t\t}\r\n\t\t\treturn new Dom7([this[index]]);\r\n\t\t}\r\n\t\tfunction append(...args) {\r\n\t\t\tlet newChild;\r\n\r\n\t\t\tfor (let k = 0; k < args.length; k += 1) {\r\n\t\t\t\tnewChild = args[k];\r\n\t\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\t\tif (typeof newChild === 'string') {\r\n\t\t\t\t\t\tconst tempDiv = doc.createElement('div');\r\n\t\t\t\t\t\ttempDiv.innerHTML = newChild;\r\n\t\t\t\t\t\twhile (tempDiv.firstChild) {\r\n\t\t\t\t\t\t\tthis[i].appendChild(tempDiv.firstChild);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (newChild instanceof Dom7) {\r\n\t\t\t\t\t\tfor (let j = 0; j < newChild.length; j += 1) {\r\n\t\t\t\t\t\t\tthis[i].appendChild(newChild[j]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis[i].appendChild(newChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction appendTo(parent) {\r\n\t\t\t$(parent).append(this);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction prepend(newChild) {\r\n\t\t\tlet i;\r\n\t\t\tlet j;\r\n\t\t\tfor (i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (typeof newChild === 'string') {\r\n\t\t\t\t\tconst tempDiv = doc.createElement('div');\r\n\t\t\t\t\ttempDiv.innerHTML = newChild;\r\n\t\t\t\t\tfor (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\r\n\t\t\t\t\t\tthis[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (newChild instanceof Dom7) {\r\n\t\t\t\t\tfor (j = 0; j < newChild.length; j += 1) {\r\n\t\t\t\t\t\tthis[i].insertBefore(newChild[j], this[i].childNodes[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis[i].insertBefore(newChild, this[i].childNodes[0]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t\tfunction prependTo(parent) {\r\n\t\t\t$(parent).prepend(this);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction dom7_modular_insertBefore(selector) {\r\n\t\t\tconst before = $(selector);\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (before.length === 1) {\r\n\t\t\t\t\tbefore[0].parentNode.insertBefore(this[i], before[0]);\r\n\t\t\t\t} else if (before.length > 1) {\r\n\t\t\t\t\tfor (let j = 0; j < before.length; j += 1) {\r\n\t\t\t\t\t\tbefore[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction insertAfter(selector) {\r\n\t\t\tconst after = $(selector);\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (after.length === 1) {\r\n\t\t\t\t\tafter[0].parentNode.insertBefore(this[i], after[0].nextSibling);\r\n\t\t\t\t} else if (after.length > 1) {\r\n\t\t\t\t\tfor (let j = 0; j < after.length; j += 1) {\r\n\t\t\t\t\t\tafter[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction dom7_modular_next(selector) {\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\tif (selector) {\r\n\t\t\t\t\tif (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\r\n\t\t\t\t\t\treturn new Dom7([this[0].nextElementSibling]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn new Dom7([]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\r\n\t\t\t\treturn new Dom7([]);\r\n\t\t\t}\r\n\t\t\treturn new Dom7([]);\r\n\t\t}\r\n\t\tfunction nextAll(selector) {\r\n\t\t\tconst nextEls = [];\r\n\t\t\tlet el = this[0];\r\n\t\t\tif (!el) return new Dom7([]);\r\n\t\t\twhile (el.nextElementSibling) {\r\n\t\t\t\tconst next = el.nextElementSibling; // eslint-disable-line\r\n\t\t\t\tif (selector) {\r\n\t\t\t\t\tif ($(next).is(selector)) nextEls.push(next);\r\n\t\t\t\t} else nextEls.push(next);\r\n\t\t\t\tel = next;\r\n\t\t\t}\r\n\t\t\treturn new Dom7(nextEls);\r\n\t\t}\r\n\t\tfunction prev(selector) {\r\n\t\t\tif (this.length > 0) {\r\n\t\t\t\tconst el = this[0];\r\n\t\t\t\tif (selector) {\r\n\t\t\t\t\tif (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\r\n\t\t\t\t\t\treturn new Dom7([el.previousElementSibling]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn new Dom7([]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\r\n\t\t\t\treturn new Dom7([]);\r\n\t\t\t}\r\n\t\t\treturn new Dom7([]);\r\n\t\t}\r\n\t\tfunction prevAll(selector) {\r\n\t\t\tconst prevEls = [];\r\n\t\t\tlet el = this[0];\r\n\t\t\tif (!el) return new Dom7([]);\r\n\t\t\twhile (el.previousElementSibling) {\r\n\t\t\t\tconst prev = el.previousElementSibling; // eslint-disable-line\r\n\t\t\t\tif (selector) {\r\n\t\t\t\t\tif ($(prev).is(selector)) prevEls.push(prev);\r\n\t\t\t\t} else prevEls.push(prev);\r\n\t\t\t\tel = prev;\r\n\t\t\t}\r\n\t\t\treturn new Dom7(prevEls);\r\n\t\t}\r\n\t\tfunction siblings(selector) {\r\n\t\t\treturn this.nextAll(selector).add(this.prevAll(selector));\r\n\t\t}\r\n\t\tfunction dom7_modular_parent(selector) {\r\n\t\t\tconst parents = []; // eslint-disable-line\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (this[i].parentNode !== null) {\r\n\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\tif ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tparents.push(this[i].parentNode);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn $(unique(parents));\r\n\t\t}\r\n\t\tfunction parents(selector) {\r\n\t\t\tconst parents = []; // eslint-disable-line\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tlet parent = this[i].parentNode; // eslint-disable-line\r\n\t\t\t\twhile (parent) {\r\n\t\t\t\t\tif (selector) {\r\n\t\t\t\t\t\tif ($(parent).is(selector)) parents.push(parent);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tparents.push(parent);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparent = parent.parentNode;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn $(unique(parents));\r\n\t\t}\r\n\t\tfunction closest(selector) {\r\n\t\t\tlet closest = this; // eslint-disable-line\r\n\t\t\tif (typeof selector === 'undefined') {\r\n\t\t\t\treturn new Dom7([]);\r\n\t\t\t}\r\n\t\t\tif (!closest.is(selector)) {\r\n\t\t\t\tclosest = closest.parents(selector).eq(0);\r\n\t\t\t}\r\n\t\t\treturn closest;\r\n\t\t}\r\n\t\tfunction find(selector) {\r\n\t\t\tconst foundElements = [];\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst found = this[i].querySelectorAll(selector);\r\n\t\t\t\tfor (let j = 0; j < found.length; j += 1) {\r\n\t\t\t\t\tfoundElements.push(found[j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn new Dom7(foundElements);\r\n\t\t}\r\n\t\tfunction children(selector) {\r\n\t\t\tconst children = []; // eslint-disable-line\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst childNodes = this[i].childNodes;\r\n\r\n\t\t\t\tfor (let j = 0; j < childNodes.length; j += 1) {\r\n\t\t\t\t\tif (!selector) {\r\n\t\t\t\t\t\tif (childNodes[j].nodeType === 1) children.push(childNodes[j]);\r\n\t\t\t\t\t} else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\r\n\t\t\t\t\t\tchildren.push(childNodes[j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn new Dom7(unique(children));\r\n\t\t}\r\n\t\tfunction dom7_modular_remove() {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tif (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tfunction detach() {\r\n\t\t\treturn this.remove();\r\n\t\t}\r\n\t\tfunction dom7_modular_add(...args) {\r\n\t\t\tconst dom = this;\r\n\t\t\tlet i;\r\n\t\t\tlet j;\r\n\t\t\tfor (i = 0; i < args.length; i += 1) {\r\n\t\t\t\tconst toAdd = $(args[i]);\r\n\t\t\t\tfor (j = 0; j < toAdd.length; j += 1) {\r\n\t\t\t\t\tdom[dom.length] = toAdd[j];\r\n\t\t\t\t\tdom.length += 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t}\r\n\t\tfunction empty() {\r\n\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\tconst el = this[i];\r\n\t\t\t\tif (el.nodeType === 1) {\r\n\t\t\t\t\tfor (let j = 0; j < el.childNodes.length; j += 1) {\r\n\t\t\t\t\t\tif (el.childNodes[j].parentNode) {\r\n\t\t\t\t\t\t\tel.childNodes[j].parentNode.removeChild(el.childNodes[j]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.textContent = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tfunction scrollTo(...args) {\r\n\t\t\tlet [left, top, duration, easing, callback] = args;\r\n\t\t\tif (args.length === 4 && typeof easing === 'function') {\r\n\t\t\t\tcallback = easing;\r\n\t\t\t\t[left, top, duration, callback, easing] = args;\r\n\t\t\t}\r\n\t\t\tif (typeof easing === 'undefined') easing = 'swing';\r\n\r\n\t\t\treturn this.each(function animate() {\r\n\t\t\t\tconst el = this;\r\n\t\t\t\tlet currentTop;\r\n\t\t\t\tlet currentLeft;\r\n\t\t\t\tlet maxTop;\r\n\t\t\t\tlet maxLeft;\r\n\t\t\t\tlet newTop;\r\n\t\t\t\tlet newLeft;\r\n\t\t\t\tlet scrollTop; // eslint-disable-line\r\n\t\t\t\tlet scrollLeft; // eslint-disable-line\r\n\t\t\t\tlet animateTop = top > 0 || top === 0;\r\n\t\t\t\tlet animateLeft = left > 0 || left === 0;\r\n\t\t\t\tif (typeof easing === 'undefined') {\r\n\t\t\t\t\teasing = 'swing';\r\n\t\t\t\t}\r\n\t\t\t\tif (animateTop) {\r\n\t\t\t\t\tcurrentTop = el.scrollTop;\r\n\t\t\t\t\tif (!duration) {\r\n\t\t\t\t\t\tel.scrollTop = top;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (animateLeft) {\r\n\t\t\t\t\tcurrentLeft = el.scrollLeft;\r\n\t\t\t\t\tif (!duration) {\r\n\t\t\t\t\t\tel.scrollLeft = left;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (!duration) return;\r\n\t\t\t\tif (animateTop) {\r\n\t\t\t\t\tmaxTop = el.scrollHeight - el.offsetHeight;\r\n\t\t\t\t\tnewTop = Math.max(Math.min(top, maxTop), 0);\r\n\t\t\t\t}\r\n\t\t\t\tif (animateLeft) {\r\n\t\t\t\t\tmaxLeft = el.scrollWidth - el.offsetWidth;\r\n\t\t\t\t\tnewLeft = Math.max(Math.min(left, maxLeft), 0);\r\n\t\t\t\t}\r\n\t\t\t\tlet startTime = null;\r\n\t\t\t\tif (animateTop && newTop === currentTop) animateTop = false;\r\n\t\t\t\tif (animateLeft && newLeft === currentLeft) animateLeft = false;\r\n\t\t\t\tfunction render(time = new Date().getTime()) {\r\n\t\t\t\t\tif (startTime === null) {\r\n\t\t\t\t\t\tstartTime = time;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\r\n\t\t\t\t\tconst easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\r\n\t\t\t\t\tlet done;\r\n\t\t\t\t\tif (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\r\n\t\t\t\t\tif (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\r\n\t\t\t\t\tif (animateTop && newTop > currentTop && scrollTop >= newTop) {\r\n\t\t\t\t\t\tel.scrollTop = newTop;\r\n\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (animateTop && newTop < currentTop && scrollTop <= newTop) {\r\n\t\t\t\t\t\tel.scrollTop = newTop;\r\n\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\r\n\t\t\t\t\t\tel.scrollLeft = newLeft;\r\n\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\r\n\t\t\t\t\t\tel.scrollLeft = newLeft;\r\n\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (done) {\r\n\t\t\t\t\t\tif (callback) callback();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (animateTop) el.scrollTop = scrollTop;\r\n\t\t\t\t\tif (animateLeft) el.scrollLeft = scrollLeft;\r\n\t\t\t\t\trequestAnimationFrame(render);\r\n\t\t\t\t}\r\n\t\t\t\trequestAnimationFrame(render);\r\n\t\t\t});\r\n\t\t}\r\n\t\t// scrollTop(top, duration, easing, callback) {\r\n\t\tfunction scrollTop(...args) {\r\n\t\t\tlet [top, duration, easing, callback] = args;\r\n\t\t\tif (args.length === 3 && typeof easing === 'function') {\r\n\t\t\t\t[top, duration, callback, easing] = args;\r\n\t\t\t}\r\n\t\t\tconst dom = this;\r\n\t\t\tif (typeof top === 'undefined') {\r\n\t\t\t\tif (dom.length > 0) return dom[0].scrollTop;\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn dom.scrollTo(undefined, top, duration, easing, callback);\r\n\t\t}\r\n\t\tfunction scrollLeft(...args) {\r\n\t\t\tlet [left, duration, easing, callback] = args;\r\n\t\t\tif (args.length === 3 && typeof easing === 'function') {\r\n\t\t\t\t[left, duration, callback, easing] = args;\r\n\t\t\t}\r\n\t\t\tconst dom = this;\r\n\t\t\tif (typeof left === 'undefined') {\r\n\t\t\t\tif (dom.length > 0) return dom[0].scrollLeft;\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn dom.scrollTo(left, undefined, duration, easing, callback);\r\n\t\t}\r\n\r\n\t\tfunction animate(initialProps, initialParams) {\r\n\t\t\tconst els = this;\r\n\t\t\tconst a = {\r\n\t\t\t\tprops: Object.assign({}, initialProps),\r\n\t\t\t\tparams: Object.assign({\r\n\t\t\t\t\tduration: 300,\r\n\t\t\t\t\teasing: 'swing', // or 'linear'\r\n\t\t\t\t\t/* Callbacks\r\n\t\t\t\t\tbegin(elements)\r\n\t\t\t\t\tcomplete(elements)\r\n\t\t\t\t\tprogress(elements, complete, remaining, start, tweenValue)\r\n\t\t\t\t\t*/\r\n\t\t\t\t}, initialParams),\r\n\r\n\t\t\t\telements: els,\r\n\t\t\t\tanimating: false,\r\n\t\t\t\tque: [],\r\n\r\n\t\t\t\teasingProgress(easing, progress) {\r\n\t\t\t\t\tif (easing === 'swing') {\r\n\t\t\t\t\t\treturn 0.5 - (Math.cos(progress * Math.PI) / 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof easing === 'function') {\r\n\t\t\t\t\t\treturn easing(progress);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn progress;\r\n\t\t\t\t},\r\n\t\t\t\tstop() {\r\n\t\t\t\t\tif (a.frameId) {\r\n\t\t\t\t\t\tcancelAnimationFrame(a.frameId);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ta.animating = false;\r\n\t\t\t\t\ta.elements.each((index, el) => {\r\n\t\t\t\t\t\tconst element = el;\r\n\t\t\t\t\t\tdelete element.dom7AnimateInstance;\r\n\t\t\t\t\t});\r\n\t\t\t\t\ta.que = [];\r\n\t\t\t\t},\r\n\t\t\t\tdone(complete) {\r\n\t\t\t\t\ta.animating = false;\r\n\t\t\t\t\ta.elements.each((index, el) => {\r\n\t\t\t\t\t\tconst element = el;\r\n\t\t\t\t\t\tdelete element.dom7AnimateInstance;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (complete) complete(els);\r\n\t\t\t\t\tif (a.que.length > 0) {\r\n\t\t\t\t\t\tconst que = a.que.shift();\r\n\t\t\t\t\t\ta.animate(que[0], que[1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tanimate(props, params) {\r\n\t\t\t\t\tif (a.animating) {\r\n\t\t\t\t\t\ta.que.push([props, params]);\r\n\t\t\t\t\t\treturn a;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst elements = [];\r\n\r\n\t\t\t\t\t// Define & Cache Initials & Units\r\n\t\t\t\t\ta.elements.each((index, el) => {\r\n\t\t\t\t\t\tlet initialFullValue;\r\n\t\t\t\t\t\tlet initialValue;\r\n\t\t\t\t\t\tlet unit;\r\n\t\t\t\t\t\tlet finalValue;\r\n\t\t\t\t\t\tlet finalFullValue;\r\n\r\n\t\t\t\t\t\tif (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\r\n\r\n\t\t\t\t\t\telements[index] = {\r\n\t\t\t\t\t\t\tcontainer: el,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tObject.keys(props).forEach((prop) => {\r\n\t\t\t\t\t\t\tinitialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\r\n\t\t\t\t\t\t\tinitialValue = parseFloat(initialFullValue);\r\n\t\t\t\t\t\t\tunit = initialFullValue.replace(initialValue, '');\r\n\t\t\t\t\t\t\tfinalValue = parseFloat(props[prop]);\r\n\t\t\t\t\t\t\tfinalFullValue = props[prop] + unit;\r\n\t\t\t\t\t\t\telements[index][prop] = {\r\n\t\t\t\t\t\t\t\tinitialFullValue,\r\n\t\t\t\t\t\t\t\tinitialValue,\r\n\t\t\t\t\t\t\t\tunit,\r\n\t\t\t\t\t\t\t\tfinalValue,\r\n\t\t\t\t\t\t\t\tfinalFullValue,\r\n\t\t\t\t\t\t\t\tcurrentValue: initialValue,\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tlet startTime = null;\r\n\t\t\t\t\tlet time;\r\n\t\t\t\t\tlet elementsDone = 0;\r\n\t\t\t\t\tlet propsDone = 0;\r\n\t\t\t\t\tlet done;\r\n\t\t\t\t\tlet began = false;\r\n\r\n\t\t\t\t\ta.animating = true;\r\n\r\n\t\t\t\t\tfunction render() {\r\n\t\t\t\t\t\ttime = new Date().getTime();\r\n\t\t\t\t\t\tlet progress;\r\n\t\t\t\t\t\tlet easeProgress;\r\n\t\t\t\t\t\t// let el;\r\n\t\t\t\t\t\tif (!began) {\r\n\t\t\t\t\t\t\tbegan = true;\r\n\t\t\t\t\t\t\tif (params.begin) params.begin(els);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (startTime === null) {\r\n\t\t\t\t\t\t\tstartTime = time;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (params.progress) {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\t\tparams.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\telements.forEach((element) => {\r\n\t\t\t\t\t\t\tconst el = element;\r\n\t\t\t\t\t\t\tif (done || el.done) return;\r\n\t\t\t\t\t\t\tObject.keys(props).forEach((prop) => {\r\n\t\t\t\t\t\t\t\tif (done || el.done) return;\r\n\t\t\t\t\t\t\t\tprogress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\r\n\t\t\t\t\t\t\t\teaseProgress = a.easingProgress(params.easing, progress);\r\n\t\t\t\t\t\t\t\tconst { initialValue, finalValue, unit } = el[prop];\r\n\t\t\t\t\t\t\t\tel[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\r\n\t\t\t\t\t\t\t\tconst currentValue = el[prop].currentValue;\r\n\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t(finalValue > initialValue && currentValue >= finalValue) ||\r\n\t\t\t\t\t\t\t\t\t(finalValue < initialValue && currentValue <= finalValue)) {\r\n\t\t\t\t\t\t\t\t\tel.container.style[prop] = finalValue + unit;\r\n\t\t\t\t\t\t\t\t\tpropsDone += 1;\r\n\t\t\t\t\t\t\t\t\tif (propsDone === Object.keys(props).length) {\r\n\t\t\t\t\t\t\t\t\t\tel.done = true;\r\n\t\t\t\t\t\t\t\t\t\telementsDone += 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (elementsDone === elements.length) {\r\n\t\t\t\t\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (done) {\r\n\t\t\t\t\t\t\t\t\ta.done(params.complete);\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tel.container.style[prop] = currentValue + unit;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (done) return;\r\n\t\t\t\t\t\t// Then call\r\n\t\t\t\t\t\ta.frameId = requestAnimationFrame(render);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ta.frameId = requestAnimationFrame(render);\r\n\t\t\t\t\treturn a;\r\n\t\t\t\t},\r\n\t\t\t};\r\n\r\n\t\t\tif (a.elements.length === 0) {\r\n\t\t\t\treturn els;\r\n\t\t\t}\r\n\r\n\t\t\tlet animateInstance;\r\n\t\t\tfor (let i = 0; i < a.elements.length; i += 1) {\r\n\t\t\t\tif (a.elements[i].dom7AnimateInstance) {\r\n\t\t\t\t\tanimateInstance = a.elements[i].dom7AnimateInstance;\r\n\t\t\t\t} else a.elements[i].dom7AnimateInstance = a;\r\n\t\t\t}\r\n\t\t\tif (!animateInstance) {\r\n\t\t\t\tanimateInstance = a;\r\n\t\t\t}\r\n\r\n\t\t\tif (initialProps === 'stop') {\r\n\t\t\t\tanimateInstance.stop();\r\n\t\t\t} else {\r\n\t\t\t\tanimateInstance.animate(a.props, a.params);\r\n\t\t\t}\r\n\r\n\t\t\treturn els;\r\n\t\t}\r\n\r\n\t\tfunction stop() {\r\n\t\t\tconst els = this;\r\n\t\t\tfor (let i = 0; i < els.length; i += 1) {\r\n\t\t\t\tif (els[i].dom7AnimateInstance) {\r\n\t\t\t\t\tels[i].dom7AnimateInstance.stop();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst noTrigger = ('resize scroll').split(' ');\r\n\t\tfunction eventShortcut(name, ...args) {\r\n\t\t\tif (typeof args[0] === 'undefined') {\r\n\t\t\t\tfor (let i = 0; i < this.length; i += 1) {\r\n\t\t\t\t\tif (noTrigger.indexOf(name) < 0) {\r\n\t\t\t\t\t\tif (name in this[i]) this[i][name]();\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t$(this[i]).trigger(name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t\treturn this.on(name, ...args);\r\n\t\t}\r\n\r\n\t\tfunction click(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('click', ...args);\r\n\t\t}\r\n\t\tfunction dom7_modular_blur(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('blur', ...args);\r\n\t\t}\r\n\t\tfunction dom7_modular_focus(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('focus', ...args);\r\n\t\t}\r\n\t\tfunction focusin(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('focusin', ...args);\r\n\t\t}\r\n\t\tfunction focusout(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('focusout', ...args);\r\n\t\t}\r\n\t\tfunction keyup(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('keyup', ...args);\r\n\t\t}\r\n\t\tfunction keydown(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('keydown', ...args);\r\n\t\t}\r\n\t\tfunction keypress(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('keypress', ...args);\r\n\t\t}\r\n\t\tfunction dom7_modular_submit(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('submit', ...args);\r\n\t\t}\r\n\t\tfunction change(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('change', ...args);\r\n\t\t}\r\n\t\tfunction mousedown(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mousedown', ...args);\r\n\t\t}\r\n\t\tfunction mousemove(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mousemove', ...args);\r\n\t\t}\r\n\t\tfunction mouseup(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mouseup', ...args);\r\n\t\t}\r\n\t\tfunction mouseenter(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mouseenter', ...args);\r\n\t\t}\r\n\t\tfunction mouseleave(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mouseleave', ...args);\r\n\t\t}\r\n\t\tfunction mouseout(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mouseout', ...args);\r\n\t\t}\r\n\t\tfunction mouseover(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('mouseover', ...args);\r\n\t\t}\r\n\t\tfunction touchstart(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('touchstart', ...args);\r\n\t\t}\r\n\t\tfunction touchend(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('touchend', ...args);\r\n\t\t}\r\n\t\tfunction touchmove(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('touchmove', ...args);\r\n\t\t}\r\n\t\tfunction resize(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('resize', ...args);\r\n\t\t}\r\n\t\tfunction dom7_modular_scroll(...args) {\r\n\t\t\treturn eventShortcut.bind(this)('scroll', ...args);\r\n\t\t}\r\n\r\n\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/swiper/js/swiper.esm.bundle.js\r\n\t\t/**\r\n\t\t * Swiper 5.4.5\r\n\t\t * Most modern mobile touch slider and framework with hardware accelerated transitions\r\n\t\t * http://swiperjs.com\r\n\t\t *\r\n\t\t * Copyright 2014-2020 Vladimir Kharlampidi\r\n\t\t *\r\n\t\t * Released under the MIT License\r\n\t\t *\r\n\t\t * Released on: June 16, 2020\r\n\t\t */\r\n\r\n\r\n\r\n\r\n\t\tconst Methods = {\r\n\t\t\taddClass: dom7_modular_addClass,\r\n\t\t\tremoveClass: dom7_modular_removeClass,\r\n\t\t\thasClass: hasClass,\r\n\t\t\ttoggleClass: toggleClass,\r\n\t\t\tattr: attr,\r\n\t\t\tremoveAttr: removeAttr,\r\n\t\t\tdata: data,\r\n\t\t\ttransform: transform,\r\n\t\t\ttransition: dom7_modular_transition,\r\n\t\t\ton: dom7_modular_on,\r\n\t\t\toff: off,\r\n\t\t\ttrigger: dom7_modular_trigger,\r\n\t\t\ttransitionEnd: transitionEnd,\r\n\t\t\touterWidth: dom7_modular_outerWidth,\r\n\t\t\touterHeight: dom7_modular_outerHeight,\r\n\t\t\toffset: offset,\r\n\t\t\tcss: css,\r\n\t\t\teach: each,\r\n\t\t\thtml: dom7_modular_html,\r\n\t\t\ttext: dom7_modular_text,\r\n\t\t\tis: is,\r\n\t\t\tindex: dom7_modular_index,\r\n\t\t\teq: eq,\r\n\t\t\tappend: append,\r\n\t\t\tprepend: prepend,\r\n\t\t\tnext: dom7_modular_next,\r\n\t\t\tnextAll: nextAll,\r\n\t\t\tprev: prev,\r\n\t\t\tprevAll: prevAll,\r\n\t\t\tparent: dom7_modular_parent,\r\n\t\t\tparents: parents,\r\n\t\t\tclosest: closest,\r\n\t\t\tfind: find,\r\n\t\t\tchildren: children,\r\n\t\t\tfilter: filter,\r\n\t\t\tremove: dom7_modular_remove,\r\n\t\t\tadd: dom7_modular_add,\r\n\t\t\tstyles: styles,\r\n\t\t};\r\n\r\n\t\tObject.keys(Methods).forEach((methodName) => {\r\n\t\t\t$.fn[methodName] = $.fn[methodName] || Methods[methodName];\r\n\t\t});\r\n\r\n\t\tconst Utils = {\r\n\t\t\tdeleteProps(obj) {\r\n\t\t\t\tconst object = obj;\r\n\t\t\t\tObject.keys(object).forEach((key) => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tobject[key] = null;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t// no getter for object\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tdelete object[key];\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t// something got wrong\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tnextTick(callback, delay = 0) {\r\n\t\t\t\treturn setTimeout(callback, delay);\r\n\t\t\t},\r\n\t\t\tnow() {\r\n\t\t\t\treturn Date.now();\r\n\t\t\t},\r\n\t\t\tgetTranslate(el, axis = 'x') {\r\n\t\t\t\tlet matrix;\r\n\t\t\t\tlet curTransform;\r\n\t\t\t\tlet transformMatrix;\r\n\r\n\t\t\t\tconst curStyle = win.getComputedStyle(el, null);\r\n\r\n\t\t\t\tif (win.WebKitCSSMatrix) {\r\n\t\t\t\t\tcurTransform = curStyle.transform || curStyle.webkitTransform;\r\n\t\t\t\t\tif (curTransform.split(',').length > 6) {\r\n\t\t\t\t\t\tcurTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Some old versions of Webkit choke when 'none' is passed; pass\r\n\t\t\t\t\t// empty string instead in this case\r\n\t\t\t\t\ttransformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttransformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\r\n\t\t\t\t\tmatrix = transformMatrix.toString().split(',');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (axis === 'x') {\r\n\t\t\t\t\t// Latest Chrome and webkits Fix\r\n\t\t\t\t\tif (win.WebKitCSSMatrix) curTransform = transformMatrix.m41;\r\n\t\t\t\t\t// Crazy IE10 Matrix\r\n\t\t\t\t\telse if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\r\n\t\t\t\t\t// Normal Browsers\r\n\t\t\t\t\telse curTransform = parseFloat(matrix[4]);\r\n\t\t\t\t}\r\n\t\t\t\tif (axis === 'y') {\r\n\t\t\t\t\t// Latest Chrome and webkits Fix\r\n\t\t\t\t\tif (win.WebKitCSSMatrix) curTransform = transformMatrix.m42;\r\n\t\t\t\t\t// Crazy IE10 Matrix\r\n\t\t\t\t\telse if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\r\n\t\t\t\t\t// Normal Browsers\r\n\t\t\t\t\telse curTransform = parseFloat(matrix[5]);\r\n\t\t\t\t}\r\n\t\t\t\treturn curTransform || 0;\r\n\t\t\t},\r\n\t\t\tparseUrlQuery(url) {\r\n\t\t\t\tconst query = {};\r\n\t\t\t\tlet urlToParse = url || win.location.href;\r\n\t\t\t\tlet i;\r\n\t\t\t\tlet params;\r\n\t\t\t\tlet param;\r\n\t\t\t\tlet length;\r\n\t\t\t\tif (typeof urlToParse === 'string' && urlToParse.length) {\r\n\t\t\t\t\turlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\r\n\t\t\t\t\tparams = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\r\n\t\t\t\t\tlength = params.length;\r\n\r\n\t\t\t\t\tfor (i = 0; i < length; i += 1) {\r\n\t\t\t\t\t\tparam = params[i].replace(/#\\S+/g, '').split('=');\r\n\t\t\t\t\t\tquery[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn query;\r\n\t\t\t},\r\n\t\t\tisObject(o) {\r\n\t\t\t\treturn typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\r\n\t\t\t},\r\n\t\t\textend(...args) {\r\n\t\t\t\tconst to = Object(args[0]);\r\n\t\t\t\tfor (let i = 1; i < args.length; i += 1) {\r\n\t\t\t\t\tconst nextSource = args[i];\r\n\t\t\t\t\tif (nextSource !== undefined && nextSource !== null) {\r\n\t\t\t\t\t\tconst keysArray = Object.keys(Object(nextSource));\r\n\t\t\t\t\t\tfor (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\r\n\t\t\t\t\t\t\tconst nextKey = keysArray[nextIndex];\r\n\t\t\t\t\t\t\tconst desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n\t\t\t\t\t\t\tif (desc !== undefined && desc.enumerable) {\r\n\t\t\t\t\t\t\t\tif (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\r\n\t\t\t\t\t\t\t\t\tUtils.extend(to[nextKey], nextSource[nextKey]);\r\n\t\t\t\t\t\t\t\t} else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\r\n\t\t\t\t\t\t\t\t\tto[nextKey] = {};\r\n\t\t\t\t\t\t\t\t\tUtils.extend(to[nextKey], nextSource[nextKey]);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tto[nextKey] = nextSource[nextKey];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn to;\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Support = (function Support() {\r\n\t\t\treturn {\r\n\t\t\t\ttouch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)),\r\n\r\n\t\t\t\tpointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0,\r\n\r\n\t\t\t\tobserver: (function checkObserver() {\r\n\t\t\t\t\treturn ('MutationObserver' in win || 'WebkitMutationObserver' in win);\r\n\t\t\t\t}()),\r\n\r\n\t\t\t\tpassiveListener: (function checkPassiveListener() {\r\n\t\t\t\t\tlet supportsPassive = false;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\t\tget() {\r\n\t\t\t\t\t\t\t\tsupportsPassive = true;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\twin.addEventListener('testPassiveListener', null, opts);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t// No support\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn supportsPassive;\r\n\t\t\t\t}()),\r\n\r\n\t\t\t\tgestures: (function checkGestures() {\r\n\t\t\t\t\treturn 'ongesturestart' in win;\r\n\t\t\t\t}()),\r\n\t\t\t};\r\n\t\t}());\r\n\r\n\t\tclass SwiperClass {\r\n\t\t\tconstructor(params = {}) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tself.params = params;\r\n\r\n\t\t\t\t// Events\r\n\t\t\t\tself.eventsListeners = {};\r\n\r\n\t\t\t\tif (self.params && self.params.on) {\r\n\t\t\t\t\tObject.keys(self.params.on).forEach((eventName) => {\r\n\t\t\t\t\t\tself.on(eventName, self.params.on[eventName]);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ton(events, handler, priority) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tif (typeof handler !== 'function') return self;\r\n\t\t\t\tconst method = priority ? 'unshift' : 'push';\r\n\t\t\t\tevents.split(' ').forEach((event) => {\r\n\t\t\t\t\tif (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n\t\t\t\t\tself.eventsListeners[event][method](handler);\r\n\t\t\t\t});\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\r\n\t\t\tonce(events, handler, priority) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tif (typeof handler !== 'function') return self;\r\n\t\t\t\tfunction onceHandler(...args) {\r\n\t\t\t\t\tself.off(events, onceHandler);\r\n\t\t\t\t\tif (onceHandler.f7proxy) {\r\n\t\t\t\t\t\tdelete onceHandler.f7proxy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\thandler.apply(self, args);\r\n\t\t\t\t}\r\n\t\t\t\tonceHandler.f7proxy = handler;\r\n\t\t\t\treturn self.on(events, onceHandler, priority);\r\n\t\t\t}\r\n\r\n\t\t\toff(events, handler) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tif (!self.eventsListeners) return self;\r\n\t\t\t\tevents.split(' ').forEach((event) => {\r\n\t\t\t\t\tif (typeof handler === 'undefined') {\r\n\t\t\t\t\t\tself.eventsListeners[event] = [];\r\n\t\t\t\t\t} else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\r\n\t\t\t\t\t\tself.eventsListeners[event].forEach((eventHandler, index) => {\r\n\t\t\t\t\t\t\tif (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\r\n\t\t\t\t\t\t\t\tself.eventsListeners[event].splice(index, 1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\r\n\t\t\temit(...args) {\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tif (!self.eventsListeners) return self;\r\n\t\t\t\tlet events;\r\n\t\t\t\tlet data;\r\n\t\t\t\tlet context;\r\n\t\t\t\tif (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n\t\t\t\t\tevents = args[0];\r\n\t\t\t\t\tdata = args.slice(1, args.length);\r\n\t\t\t\t\tcontext = self;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tevents = args[0].events;\r\n\t\t\t\t\tdata = args[0].data;\r\n\t\t\t\t\tcontext = args[0].context || self;\r\n\t\t\t\t}\r\n\t\t\t\tconst eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n\t\t\t\teventsArray.forEach((event) => {\r\n\t\t\t\t\tif (self.eventsListeners && self.eventsListeners[event]) {\r\n\t\t\t\t\t\tconst handlers = [];\r\n\t\t\t\t\t\tself.eventsListeners[event].forEach((eventHandler) => {\r\n\t\t\t\t\t\t\thandlers.push(eventHandler);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\thandlers.forEach((eventHandler) => {\r\n\t\t\t\t\t\t\teventHandler.apply(context, data);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn self;\r\n\t\t\t}\r\n\r\n\t\t\tuseModulesParams(instanceParams) {\r\n\t\t\t\tconst instance = this;\r\n\t\t\t\tif (!instance.modules) return;\r\n\t\t\t\tObject.keys(instance.modules).forEach((moduleName) => {\r\n\t\t\t\t\tconst module = instance.modules[moduleName];\r\n\t\t\t\t\t// Extend params\r\n\t\t\t\t\tif (module.params) {\r\n\t\t\t\t\t\tUtils.extend(instanceParams, module.params);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tuseModules(modulesParams = {}) {\r\n\t\t\t\tconst instance = this;\r\n\t\t\t\tif (!instance.modules) return;\r\n\t\t\t\tObject.keys(instance.modules).forEach((moduleName) => {\r\n\t\t\t\t\tconst module = instance.modules[moduleName];\r\n\t\t\t\t\tconst moduleParams = modulesParams[moduleName] || {};\r\n\t\t\t\t\t// Extend instance methods and props\r\n\t\t\t\t\tif (module.instance) {\r\n\t\t\t\t\t\tObject.keys(module.instance).forEach((modulePropName) => {\r\n\t\t\t\t\t\t\tconst moduleProp = module.instance[modulePropName];\r\n\t\t\t\t\t\t\tif (typeof moduleProp === 'function') {\r\n\t\t\t\t\t\t\t\tinstance[modulePropName] = moduleProp.bind(instance);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tinstance[modulePropName] = moduleProp;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Add event listeners\r\n\t\t\t\t\tif (module.on && instance.on) {\r\n\t\t\t\t\t\tObject.keys(module.on).forEach((moduleEventName) => {\r\n\t\t\t\t\t\t\tinstance.on(moduleEventName, module.on[moduleEventName]);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Module create callback\r\n\t\t\t\t\tif (module.create) {\r\n\t\t\t\t\t\tmodule.create.bind(instance)(moduleParams);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tstatic set components(components) {\r\n\t\t\t\tconst Class = this;\r\n\t\t\t\tif (!Class.use) return;\r\n\t\t\t\tClass.use(components);\r\n\t\t\t}\r\n\r\n\t\t\tstatic installModule(module, ...params) {\r\n\t\t\t\tconst Class = this;\r\n\t\t\t\tif (!Class.prototype.modules) Class.prototype.modules = {};\r\n\t\t\t\tconst name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\r\n\t\t\t\tClass.prototype.modules[name] = module;\r\n\t\t\t\t// Prototype\r\n\t\t\t\tif (module.proto) {\r\n\t\t\t\t\tObject.keys(module.proto).forEach((key) => {\r\n\t\t\t\t\t\tClass.prototype[key] = module.proto[key];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// Class\r\n\t\t\t\tif (module.static) {\r\n\t\t\t\t\tObject.keys(module.static).forEach((key) => {\r\n\t\t\t\t\t\tClass[key] = module.static[key];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// Callback\r\n\t\t\t\tif (module.install) {\r\n\t\t\t\t\tmodule.install.apply(Class, params);\r\n\t\t\t\t}\r\n\t\t\t\treturn Class;\r\n\t\t\t}\r\n\r\n\t\t\tstatic use(module, ...params) {\r\n\t\t\t\tconst Class = this;\r\n\t\t\t\tif (Array.isArray(module)) {\r\n\t\t\t\t\tmodule.forEach((m) => Class.installModule(m));\r\n\t\t\t\t\treturn Class;\r\n\t\t\t\t}\r\n\t\t\t\treturn Class.installModule(module, ...params);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateSize() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tlet width;\r\n\t\t\tlet height;\r\n\t\t\tconst $el = swiper.$el;\r\n\t\t\tif (typeof swiper.params.width !== 'undefined') {\r\n\t\t\t\twidth = swiper.params.width;\r\n\t\t\t} else {\r\n\t\t\t\twidth = $el[0].clientWidth;\r\n\t\t\t}\r\n\t\t\tif (typeof swiper.params.height !== 'undefined') {\r\n\t\t\t\theight = swiper.params.height;\r\n\t\t\t} else {\r\n\t\t\t\theight = $el[0].clientHeight;\r\n\t\t\t}\r\n\t\t\tif ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Subtract paddings\r\n\t\t\twidth = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\r\n\t\t\theight = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\r\n\r\n\t\t\tUtils.extend(swiper, {\r\n\t\t\t\twidth,\r\n\t\t\t\theight,\r\n\t\t\t\tsize: swiper.isHorizontal() ? width : height,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction updateSlides() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst params = swiper.params;\r\n\r\n\t\t\tconst {\r\n\t\t\t\t$wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\r\n\t\t\t} = swiper;\r\n\t\t\tconst isVirtual = swiper.virtual && params.virtual.enabled;\r\n\t\t\tconst previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\r\n\t\t\tconst slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\r\n\t\t\tconst slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\r\n\t\t\tlet snapGrid = [];\r\n\t\t\tconst slidesGrid = [];\r\n\t\t\tconst slidesSizesGrid = [];\r\n\r\n\t\t\tfunction slidesForMargin(slideIndex) {\r\n\t\t\t\tif (!params.cssMode) return true;\r\n\t\t\t\tif (slideIndex === slides.length - 1) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tlet offsetBefore = params.slidesOffsetBefore;\r\n\t\t\tif (typeof offsetBefore === 'function') {\r\n\t\t\t\toffsetBefore = params.slidesOffsetBefore.call(swiper);\r\n\t\t\t}\r\n\r\n\t\t\tlet offsetAfter = params.slidesOffsetAfter;\r\n\t\t\tif (typeof offsetAfter === 'function') {\r\n\t\t\t\toffsetAfter = params.slidesOffsetAfter.call(swiper);\r\n\t\t\t}\r\n\r\n\t\t\tconst previousSnapGridLength = swiper.snapGrid.length;\r\n\t\t\tconst previousSlidesGridLength = swiper.snapGrid.length;\r\n\r\n\t\t\tlet spaceBetween = params.spaceBetween;\r\n\t\t\tlet slidePosition = -offsetBefore;\r\n\t\t\tlet prevSlideSize = 0;\r\n\t\t\tlet index = 0;\r\n\t\t\tif (typeof swiperSize === 'undefined') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\r\n\t\t\t\tspaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\r\n\t\t\t}\r\n\r\n\t\t\tswiper.virtualSize = -spaceBetween;\r\n\r\n\t\t\t// reset margins\r\n\t\t\tif (rtl) slides.css({ marginLeft: '', marginTop: '' });\r\n\t\t\telse slides.css({ marginRight: '', marginBottom: '' });\r\n\r\n\t\t\tlet slidesNumberEvenToRows;\r\n\t\t\tif (params.slidesPerColumn > 1) {\r\n\t\t\t\tif (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\r\n\t\t\t\t\tslidesNumberEvenToRows = slidesLength;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tslidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\r\n\t\t\t\t}\r\n\t\t\t\tif (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\r\n\t\t\t\t\tslidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Calc slides\r\n\t\t\tlet slideSize;\r\n\t\t\tconst slidesPerColumn = params.slidesPerColumn;\r\n\t\t\tconst slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\r\n\t\t\tconst numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\r\n\t\t\tfor (let i = 0; i < slidesLength; i += 1) {\r\n\t\t\t\tslideSize = 0;\r\n\t\t\t\tconst slide = slides.eq(i);\r\n\t\t\t\tif (params.slidesPerColumn > 1) {\r\n\t\t\t\t\t// Set slides order\r\n\t\t\t\t\tlet newSlideOrderIndex;\r\n\t\t\t\t\tlet column;\r\n\t\t\t\t\tlet row;\r\n\t\t\t\t\tif (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\r\n\t\t\t\t\t\tconst groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\r\n\t\t\t\t\t\tconst slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\r\n\t\t\t\t\t\tconst columnsInGroup = groupIndex === 0\r\n\t\t\t\t\t\t\t? params.slidesPerGroup\r\n\t\t\t\t\t\t\t: Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\r\n\t\t\t\t\t\trow = Math.floor(slideIndexInGroup / columnsInGroup);\r\n\t\t\t\t\t\tcolumn = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\r\n\r\n\t\t\t\t\t\tnewSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\r\n\t\t\t\t\t\tslide\r\n\t\t\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\t\t'-webkit-box-ordinal-group': newSlideOrderIndex,\r\n\t\t\t\t\t\t\t\t'-moz-box-ordinal-group': newSlideOrderIndex,\r\n\t\t\t\t\t\t\t\t'-ms-flex-order': newSlideOrderIndex,\r\n\t\t\t\t\t\t\t\t'-webkit-order': newSlideOrderIndex,\r\n\t\t\t\t\t\t\t\torder: newSlideOrderIndex,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (params.slidesPerColumnFill === 'column') {\r\n\t\t\t\t\t\tcolumn = Math.floor(i / slidesPerColumn);\r\n\t\t\t\t\t\trow = i - (column * slidesPerColumn);\r\n\t\t\t\t\t\tif (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\r\n\t\t\t\t\t\t\trow += 1;\r\n\t\t\t\t\t\t\tif (row >= slidesPerColumn) {\r\n\t\t\t\t\t\t\t\trow = 0;\r\n\t\t\t\t\t\t\t\tcolumn += 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trow = Math.floor(i / slidesPerRow);\r\n\t\t\t\t\t\tcolumn = i - (row * slidesPerRow);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tslide.css(\r\n\t\t\t\t\t\t`margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\r\n\t\t\t\t\t\t(row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tif (slide.css('display') === 'none') continue; // eslint-disable-line\r\n\r\n\t\t\t\tif (params.slidesPerView === 'auto') {\r\n\t\t\t\t\tconst slideStyles = win.getComputedStyle(slide[0], null);\r\n\t\t\t\t\tconst currentTransform = slide[0].style.transform;\r\n\t\t\t\t\tconst currentWebKitTransform = slide[0].style.webkitTransform;\r\n\t\t\t\t\tif (currentTransform) {\r\n\t\t\t\t\t\tslide[0].style.transform = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (currentWebKitTransform) {\r\n\t\t\t\t\t\tslide[0].style.webkitTransform = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (params.roundLengths) {\r\n\t\t\t\t\t\tslideSize = swiper.isHorizontal()\r\n\t\t\t\t\t\t\t? slide.outerWidth(true)\r\n\t\t\t\t\t\t\t: slide.outerHeight(true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\t\t\tconst width = parseFloat(slideStyles.getPropertyValue('width'));\r\n\t\t\t\t\t\t\tconst paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\r\n\t\t\t\t\t\t\tconst paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\r\n\t\t\t\t\t\t\tconst marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\r\n\t\t\t\t\t\t\tconst marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\r\n\t\t\t\t\t\t\tconst boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n\t\t\t\t\t\t\tif (boxSizing && boxSizing === 'border-box') {\r\n\t\t\t\t\t\t\t\tslideSize = width + marginLeft + marginRight;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tslideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconst height = parseFloat(slideStyles.getPropertyValue('height'));\r\n\t\t\t\t\t\t\tconst paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\r\n\t\t\t\t\t\t\tconst paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\r\n\t\t\t\t\t\t\tconst marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\r\n\t\t\t\t\t\t\tconst marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\r\n\t\t\t\t\t\t\tconst boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n\t\t\t\t\t\t\tif (boxSizing && boxSizing === 'border-box') {\r\n\t\t\t\t\t\t\t\tslideSize = height + marginTop + marginBottom;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tslideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (currentTransform) {\r\n\t\t\t\t\t\tslide[0].style.transform = currentTransform;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (currentWebKitTransform) {\r\n\t\t\t\t\t\tslide[0].style.webkitTransform = currentWebKitTransform;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (params.roundLengths) slideSize = Math.floor(slideSize);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tslideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\r\n\t\t\t\t\tif (params.roundLengths) slideSize = Math.floor(slideSize);\r\n\r\n\t\t\t\t\tif (slides[i]) {\r\n\t\t\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\t\t\tslides[i].style.width = `${slideSize}px`;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tslides[i].style.height = `${slideSize}px`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (slides[i]) {\r\n\t\t\t\t\tslides[i].swiperSlideSize = slideSize;\r\n\t\t\t\t}\r\n\t\t\t\tslidesSizesGrid.push(slideSize);\r\n\r\n\r\n\t\t\t\tif (params.centeredSlides) {\r\n\t\t\t\t\tslidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\r\n\t\t\t\t\tif (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\r\n\t\t\t\t\tif (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\r\n\t\t\t\t\tif (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\r\n\t\t\t\t\tif (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n\t\t\t\t\tif ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n\t\t\t\t\tslidesGrid.push(slidePosition);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n\t\t\t\t\tif ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n\t\t\t\t\tslidesGrid.push(slidePosition);\r\n\t\t\t\t\tslidePosition = slidePosition + slideSize + spaceBetween;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswiper.virtualSize += slideSize + spaceBetween;\r\n\r\n\t\t\t\tprevSlideSize = slideSize;\r\n\r\n\t\t\t\tindex += 1;\r\n\t\t\t}\r\n\t\t\tswiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\r\n\t\t\tlet newSlidesGrid;\r\n\r\n\t\t\tif (\r\n\t\t\t\trtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\r\n\t\t\t\t$wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\r\n\t\t\t}\r\n\t\t\tif (params.setWrapperSize) {\r\n\t\t\t\tif (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\r\n\t\t\t\telse $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\r\n\t\t\t}\r\n\r\n\t\t\tif (params.slidesPerColumn > 1) {\r\n\t\t\t\tswiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\r\n\t\t\t\tswiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\r\n\t\t\t\tif (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\r\n\t\t\t\telse $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\r\n\t\t\t\tif (params.centeredSlides) {\r\n\t\t\t\t\tnewSlidesGrid = [];\r\n\t\t\t\t\tfor (let i = 0; i < snapGrid.length; i += 1) {\r\n\t\t\t\t\t\tlet slidesGridItem = snapGrid[i];\r\n\t\t\t\t\t\tif (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n\t\t\t\t\t\tif (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsnapGrid = newSlidesGrid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove last grid elements depending on width\r\n\t\t\tif (!params.centeredSlides) {\r\n\t\t\t\tnewSlidesGrid = [];\r\n\t\t\t\tfor (let i = 0; i < snapGrid.length; i += 1) {\r\n\t\t\t\t\tlet slidesGridItem = snapGrid[i];\r\n\t\t\t\t\tif (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n\t\t\t\t\tif (snapGrid[i] <= swiper.virtualSize - swiperSize) {\r\n\t\t\t\t\t\tnewSlidesGrid.push(slidesGridItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tsnapGrid = newSlidesGrid;\r\n\t\t\t\tif (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\r\n\t\t\t\t\tsnapGrid.push(swiper.virtualSize - swiperSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (snapGrid.length === 0) snapGrid = [0];\r\n\r\n\t\t\tif (params.spaceBetween !== 0) {\r\n\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\tif (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\r\n\t\t\t\t\telse slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\r\n\t\t\t\t} else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\r\n\t\t\t}\r\n\r\n\t\t\tif (params.centeredSlides && params.centeredSlidesBounds) {\r\n\t\t\t\tlet allSlidesSize = 0;\r\n\t\t\t\tslidesSizesGrid.forEach((slideSizeValue) => {\r\n\t\t\t\t\tallSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n\t\t\t\t});\r\n\t\t\t\tallSlidesSize -= params.spaceBetween;\r\n\t\t\t\tconst maxSnap = allSlidesSize - swiperSize;\r\n\t\t\t\tsnapGrid = snapGrid.map((snap) => {\r\n\t\t\t\t\tif (snap < 0) return -offsetBefore;\r\n\t\t\t\t\tif (snap > maxSnap) return maxSnap + offsetAfter;\r\n\t\t\t\t\treturn snap;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (params.centerInsufficientSlides) {\r\n\t\t\t\tlet allSlidesSize = 0;\r\n\t\t\t\tslidesSizesGrid.forEach((slideSizeValue) => {\r\n\t\t\t\t\tallSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n\t\t\t\t});\r\n\t\t\t\tallSlidesSize -= params.spaceBetween;\r\n\t\t\t\tif (allSlidesSize < swiperSize) {\r\n\t\t\t\t\tconst allSlidesOffset = (swiperSize - allSlidesSize) / 2;\r\n\t\t\t\t\tsnapGrid.forEach((snap, snapIndex) => {\r\n\t\t\t\t\t\tsnapGrid[snapIndex] = snap - allSlidesOffset;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tslidesGrid.forEach((snap, snapIndex) => {\r\n\t\t\t\t\t\tslidesGrid[snapIndex] = snap + allSlidesOffset;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tUtils.extend(swiper, {\r\n\t\t\t\tslides,\r\n\t\t\t\tsnapGrid,\r\n\t\t\t\tslidesGrid,\r\n\t\t\t\tslidesSizesGrid,\r\n\t\t\t});\r\n\r\n\t\t\tif (slidesLength !== previousSlidesLength) {\r\n\t\t\t\tswiper.emit('slidesLengthChange');\r\n\t\t\t}\r\n\t\t\tif (snapGrid.length !== previousSnapGridLength) {\r\n\t\t\t\tif (swiper.params.watchOverflow) swiper.checkOverflow();\r\n\t\t\t\tswiper.emit('snapGridLengthChange');\r\n\t\t\t}\r\n\t\t\tif (slidesGrid.length !== previousSlidesGridLength) {\r\n\t\t\t\tswiper.emit('slidesGridLengthChange');\r\n\t\t\t}\r\n\r\n\t\t\tif (params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n\t\t\t\tswiper.updateSlidesOffset();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateAutoHeight(speed) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst activeSlides = [];\r\n\t\t\tlet newHeight = 0;\r\n\t\t\tlet i;\r\n\t\t\tif (typeof speed === 'number') {\r\n\t\t\t\tswiper.setTransition(speed);\r\n\t\t\t} else if (speed === true) {\r\n\t\t\t\tswiper.setTransition(swiper.params.speed);\r\n\t\t\t}\r\n\t\t\t// Find slides currently in view\r\n\t\t\tif (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\r\n\t\t\t\tif (swiper.params.centeredSlides) {\r\n\t\t\t\t\tswiper.visibleSlides.each((index, slide) => {\r\n\t\t\t\t\t\tactiveSlides.push(slide);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\r\n\t\t\t\t\t\tconst index = swiper.activeIndex + i;\r\n\t\t\t\t\t\tif (index > swiper.slides.length) break;\r\n\t\t\t\t\t\tactiveSlides.push(swiper.slides.eq(index)[0]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tactiveSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\r\n\t\t\t}\r\n\r\n\t\t\t// Find new height from highest slide in view\r\n\t\t\tfor (i = 0; i < activeSlides.length; i += 1) {\r\n\t\t\t\tif (typeof activeSlides[i] !== 'undefined') {\r\n\t\t\t\t\tconst height = activeSlides[i].offsetHeight;\r\n\t\t\t\t\tnewHeight = height > newHeight ? height : newHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Update Height\r\n\t\t\tif (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\r\n\t\t}\r\n\r\n\t\tfunction updateSlidesOffset() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst slides = swiper.slides;\r\n\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\tslides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateSlidesProgress(translate = (this && this.translate) || 0) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst params = swiper.params;\r\n\r\n\t\t\tconst { slides, rtlTranslate: rtl } = swiper;\r\n\r\n\t\t\tif (slides.length === 0) return;\r\n\t\t\tif (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\r\n\r\n\t\t\tlet offsetCenter = -translate;\r\n\t\t\tif (rtl) offsetCenter = translate;\r\n\r\n\t\t\t// Visible Slides\r\n\t\t\tslides.removeClass(params.slideVisibleClass);\r\n\r\n\t\t\tswiper.visibleSlidesIndexes = [];\r\n\t\t\tswiper.visibleSlides = [];\r\n\r\n\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\tconst slide = slides[i];\r\n\t\t\t\tconst slideProgress = (\r\n\t\t\t\t\t(offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\r\n\t\t\t\t) / (slide.swiperSlideSize + params.spaceBetween);\r\n\t\t\t\tif (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\r\n\t\t\t\t\tconst slideBefore = -(offsetCenter - slide.swiperSlideOffset);\r\n\t\t\t\t\tconst slideAfter = slideBefore + swiper.slidesSizesGrid[i];\r\n\t\t\t\t\tconst isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\r\n\t\t\t\t\t\t|| (slideAfter > 1 && slideAfter <= swiper.size)\r\n\t\t\t\t\t\t|| (slideBefore <= 0 && slideAfter >= swiper.size);\r\n\t\t\t\t\tif (isVisible) {\r\n\t\t\t\t\t\tswiper.visibleSlides.push(slide);\r\n\t\t\t\t\t\tswiper.visibleSlidesIndexes.push(i);\r\n\t\t\t\t\t\tslides.eq(i).addClass(params.slideVisibleClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tslide.progress = rtl ? -slideProgress : slideProgress;\r\n\t\t\t}\r\n\t\t\tswiper.visibleSlides = $(swiper.visibleSlides);\r\n\t\t}\r\n\r\n\t\tfunction updateProgress(translate) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tif (typeof translate === 'undefined') {\r\n\t\t\t\tconst multiplier = swiper.rtlTranslate ? -1 : 1;\r\n\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\ttranslate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\r\n\t\t\t}\r\n\t\t\tconst params = swiper.params;\r\n\t\t\tconst translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n\t\t\tlet { progress, isBeginning, isEnd } = swiper;\r\n\t\t\tconst wasBeginning = isBeginning;\r\n\t\t\tconst wasEnd = isEnd;\r\n\t\t\tif (translatesDiff === 0) {\r\n\t\t\t\tprogress = 0;\r\n\t\t\t\tisBeginning = true;\r\n\t\t\t\tisEnd = true;\r\n\t\t\t} else {\r\n\t\t\t\tprogress = (translate - swiper.minTranslate()) / (translatesDiff);\r\n\t\t\t\tisBeginning = progress <= 0;\r\n\t\t\t\tisEnd = progress >= 1;\r\n\t\t\t}\r\n\t\t\tUtils.extend(swiper, {\r\n\t\t\t\tprogress,\r\n\t\t\t\tisBeginning,\r\n\t\t\t\tisEnd,\r\n\t\t\t});\r\n\r\n\t\t\tif (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\r\n\r\n\t\t\tif (isBeginning && !wasBeginning) {\r\n\t\t\t\tswiper.emit('reachBeginning toEdge');\r\n\t\t\t}\r\n\t\t\tif (isEnd && !wasEnd) {\r\n\t\t\t\tswiper.emit('reachEnd toEdge');\r\n\t\t\t}\r\n\t\t\tif ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\r\n\t\t\t\tswiper.emit('fromEdge');\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('progress', progress);\r\n\t\t}\r\n\r\n\t\tfunction updateSlidesClasses() {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tslides, params, $wrapperEl, activeIndex, realIndex,\r\n\t\t\t} = swiper;\r\n\t\t\tconst isVirtual = swiper.virtual && params.virtual.enabled;\r\n\r\n\t\t\tslides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\r\n\r\n\t\t\tlet activeSlide;\r\n\t\t\tif (isVirtual) {\r\n\t\t\t\tactiveSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\r\n\t\t\t} else {\r\n\t\t\t\tactiveSlide = slides.eq(activeIndex);\r\n\t\t\t}\r\n\r\n\t\t\t// Active classes\r\n\t\t\tactiveSlide.addClass(params.slideActiveClass);\r\n\r\n\t\t\tif (params.loop) {\r\n\t\t\t\t// Duplicate to all looped slides\r\n\t\t\t\tif (activeSlide.hasClass(params.slideDuplicateClass)) {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicateActiveClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicateActiveClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Next Slide\r\n\t\t\tlet nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\r\n\t\t\tif (params.loop && nextSlide.length === 0) {\r\n\t\t\t\tnextSlide = slides.eq(0);\r\n\t\t\t\tnextSlide.addClass(params.slideNextClass);\r\n\t\t\t}\r\n\t\t\t// Prev Slide\r\n\t\t\tlet prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\r\n\t\t\tif (params.loop && prevSlide.length === 0) {\r\n\t\t\t\tprevSlide = slides.eq(-1);\r\n\t\t\t\tprevSlide.addClass(params.slidePrevClass);\r\n\t\t\t}\r\n\t\t\tif (params.loop) {\r\n\t\t\t\t// Duplicate to all looped slides\r\n\t\t\t\tif (nextSlide.hasClass(params.slideDuplicateClass)) {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicateNextClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicateNextClass);\r\n\t\t\t\t}\r\n\t\t\t\tif (prevSlide.hasClass(params.slideDuplicateClass)) {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicatePrevClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\r\n\t\t\t\t\t\t.addClass(params.slideDuplicatePrevClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateActiveIndex(newActiveIndex) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\t\t\tconst {\r\n\t\t\t\tslidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\r\n\t\t\t} = swiper;\r\n\t\t\tlet activeIndex = newActiveIndex;\r\n\t\t\tlet snapIndex;\r\n\t\t\tif (typeof activeIndex === 'undefined') {\r\n\t\t\t\tfor (let i = 0; i < slidesGrid.length; i += 1) {\r\n\t\t\t\t\tif (typeof slidesGrid[i + 1] !== 'undefined') {\r\n\t\t\t\t\t\tif (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\r\n\t\t\t\t\t\t\tactiveIndex = i;\r\n\t\t\t\t\t\t} else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\r\n\t\t\t\t\t\t\tactiveIndex = i + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (translate >= slidesGrid[i]) {\r\n\t\t\t\t\t\tactiveIndex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// Normalize slideIndex\r\n\t\t\t\tif (params.normalizeSlideIndex) {\r\n\t\t\t\t\tif (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (snapGrid.indexOf(translate) >= 0) {\r\n\t\t\t\tsnapIndex = snapGrid.indexOf(translate);\r\n\t\t\t} else {\r\n\t\t\t\tconst skip = Math.min(params.slidesPerGroupSkip, activeIndex);\r\n\t\t\t\tsnapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\r\n\t\t\t}\r\n\t\t\tif (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\t\t\tif (activeIndex === previousIndex) {\r\n\t\t\t\tif (snapIndex !== previousSnapIndex) {\r\n\t\t\t\t\tswiper.snapIndex = snapIndex;\r\n\t\t\t\t\tswiper.emit('snapIndexChange');\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Get real index\r\n\t\t\tconst realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\r\n\r\n\t\t\tUtils.extend(swiper, {\r\n\t\t\t\tsnapIndex,\r\n\t\t\t\trealIndex,\r\n\t\t\t\tpreviousIndex,\r\n\t\t\t\tactiveIndex,\r\n\t\t\t});\r\n\t\t\tswiper.emit('activeIndexChange');\r\n\t\t\tswiper.emit('snapIndexChange');\r\n\t\t\tif (previousRealIndex !== realIndex) {\r\n\t\t\t\tswiper.emit('realIndexChange');\r\n\t\t\t}\r\n\t\t\tif (swiper.initialized || swiper.params.runCallbacksOnInit) {\r\n\t\t\t\tswiper.emit('slideChange');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction updateClickedSlide(e) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst params = swiper.params;\r\n\t\t\tconst slide = $(e.target).closest(`.${params.slideClass}`)[0];\r\n\t\t\tlet slideFound = false;\r\n\t\t\tif (slide) {\r\n\t\t\t\tfor (let i = 0; i < swiper.slides.length; i += 1) {\r\n\t\t\t\t\tif (swiper.slides[i] === slide) slideFound = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (slide && slideFound) {\r\n\t\t\t\tswiper.clickedSlide = slide;\r\n\t\t\t\tif (swiper.virtual && swiper.params.virtual.enabled) {\r\n\t\t\t\t\tswiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.clickedIndex = $(slide).index();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswiper.clickedSlide = undefined;\r\n\t\t\t\tswiper.clickedIndex = undefined;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\r\n\t\t\t\tswiper.slideToClickedSlide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar update = {\r\n\t\t\tupdateSize,\r\n\t\t\tupdateSlides,\r\n\t\t\tupdateAutoHeight,\r\n\t\t\tupdateSlidesOffset,\r\n\t\t\tupdateSlidesProgress,\r\n\t\t\tupdateProgress,\r\n\t\t\tupdateSlidesClasses,\r\n\t\t\tupdateActiveIndex,\r\n\t\t\tupdateClickedSlide,\r\n\t\t};\r\n\r\n\t\tfunction getTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tparams, rtlTranslate: rtl, translate, $wrapperEl,\r\n\t\t\t} = swiper;\r\n\r\n\t\t\tif (params.virtualTranslate) {\r\n\t\t\t\treturn rtl ? -translate : translate;\r\n\t\t\t}\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\treturn translate;\r\n\t\t\t}\r\n\r\n\t\t\tlet currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\r\n\t\t\tif (rtl) currentTranslate = -currentTranslate;\r\n\r\n\t\t\treturn currentTranslate || 0;\r\n\t\t}\r\n\r\n\t\tfunction setTranslate(translate, byController) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst {\r\n\t\t\t\trtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress,\r\n\t\t\t} = swiper;\r\n\t\t\tlet x = 0;\r\n\t\t\tlet y = 0;\r\n\t\t\tconst z = 0;\r\n\r\n\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\tx = rtl ? -translate : translate;\r\n\t\t\t} else {\r\n\t\t\t\ty = translate;\r\n\t\t\t}\r\n\r\n\t\t\tif (params.roundLengths) {\r\n\t\t\t\tx = Math.floor(x);\r\n\t\t\t\ty = Math.floor(y);\r\n\t\t\t}\r\n\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\twrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\r\n\t\t\t} else if (!params.virtualTranslate) {\r\n\t\t\t\t$wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\r\n\t\t\t}\r\n\t\t\tswiper.previousTranslate = swiper.translate;\r\n\t\t\tswiper.translate = swiper.isHorizontal() ? x : y;\r\n\r\n\t\t\t// Check if we need to update progress\r\n\t\t\tlet newProgress;\r\n\t\t\tconst translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n\t\t\tif (translatesDiff === 0) {\r\n\t\t\t\tnewProgress = 0;\r\n\t\t\t} else {\r\n\t\t\t\tnewProgress = (translate - swiper.minTranslate()) / (translatesDiff);\r\n\t\t\t}\r\n\t\t\tif (newProgress !== progress) {\r\n\t\t\t\tswiper.updateProgress(translate);\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('setTranslate', swiper.translate, byController);\r\n\t\t}\r\n\r\n\t\tfunction minTranslate() {\r\n\t\t\treturn (-this.snapGrid[0]);\r\n\t\t}\r\n\r\n\t\tfunction maxTranslate() {\r\n\t\t\treturn (-this.snapGrid[this.snapGrid.length - 1]);\r\n\t\t}\r\n\r\n\t\tfunction translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tparams,\r\n\t\t\t\twrapperEl,\r\n\t\t\t} = swiper;\r\n\r\n\t\t\tif (swiper.animating && params.preventInteractionOnTransition) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tconst minTranslate = swiper.minTranslate();\r\n\t\t\tconst maxTranslate = swiper.maxTranslate();\r\n\t\t\tlet newTranslate;\r\n\t\t\tif (translateBounds && translate > minTranslate) newTranslate = minTranslate;\r\n\t\t\telse if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\r\n\t\t\telse newTranslate = translate;\r\n\r\n\t\t\t// Update progress\r\n\t\t\tswiper.updateProgress(newTranslate);\r\n\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\tconst isH = swiper.isHorizontal();\r\n\t\t\t\tif (speed === 0) {\r\n\t\t\t\t\twrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tif (wrapperEl.scrollTo) {\r\n\t\t\t\t\t\twrapperEl.scrollTo({\r\n\t\t\t\t\t\t\t[isH ? 'left' : 'top']: -newTranslate,\r\n\t\t\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (speed === 0) {\r\n\t\t\t\tswiper.setTransition(0);\r\n\t\t\t\tswiper.setTranslate(newTranslate);\r\n\t\t\t\tif (runCallbacks) {\r\n\t\t\t\t\tswiper.emit('beforeTransitionStart', speed, internal);\r\n\t\t\t\t\tswiper.emit('transitionEnd');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswiper.setTransition(speed);\r\n\t\t\t\tswiper.setTranslate(newTranslate);\r\n\t\t\t\tif (runCallbacks) {\r\n\t\t\t\t\tswiper.emit('beforeTransitionStart', speed, internal);\r\n\t\t\t\t\tswiper.emit('transitionStart');\r\n\t\t\t\t}\r\n\t\t\t\tif (!swiper.animating) {\r\n\t\t\t\t\tswiper.animating = true;\r\n\t\t\t\t\tif (!swiper.onTranslateToWrapperTransitionEnd) {\r\n\t\t\t\t\t\tswiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\t\tif (e.target !== this) return;\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.onTranslateToWrapperTransitionEnd = null;\r\n\t\t\t\t\t\t\tdelete swiper.onTranslateToWrapperTransitionEnd;\r\n\t\t\t\t\t\t\tif (runCallbacks) {\r\n\t\t\t\t\t\t\t\tswiper.emit('transitionEnd');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tvar translate = {\r\n\t\t\tgetTranslate,\r\n\t\t\tsetTranslate,\r\n\t\t\tminTranslate,\r\n\t\t\tmaxTranslate,\r\n\t\t\ttranslateTo,\r\n\t\t};\r\n\r\n\t\tfunction setTransition(duration, byController) {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tif (!swiper.params.cssMode) {\r\n\t\t\t\tswiper.$wrapperEl.transition(duration);\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('setTransition', duration, byController);\r\n\t\t}\r\n\r\n\t\tfunction transitionStart(runCallbacks = true, direction) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { activeIndex, params, previousIndex } = swiper;\r\n\t\t\tif (params.cssMode) return;\r\n\t\t\tif (params.autoHeight) {\r\n\t\t\t\tswiper.updateAutoHeight();\r\n\t\t\t}\r\n\r\n\t\t\tlet dir = direction;\r\n\t\t\tif (!dir) {\r\n\t\t\t\tif (activeIndex > previousIndex) dir = 'next';\r\n\t\t\t\telse if (activeIndex < previousIndex) dir = 'prev';\r\n\t\t\t\telse dir = 'reset';\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('transitionStart');\r\n\r\n\t\t\tif (runCallbacks && activeIndex !== previousIndex) {\r\n\t\t\t\tif (dir === 'reset') {\r\n\t\t\t\t\tswiper.emit('slideResetTransitionStart');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('slideChangeTransitionStart');\r\n\t\t\t\tif (dir === 'next') {\r\n\t\t\t\t\tswiper.emit('slideNextTransitionStart');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.emit('slidePrevTransitionStart');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction swiper_esm_bundle_transitionEnd(runCallbacks = true, direction) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { activeIndex, previousIndex, params } = swiper;\r\n\t\t\tswiper.animating = false;\r\n\t\t\tif (params.cssMode) return;\r\n\t\t\tswiper.setTransition(0);\r\n\r\n\t\t\tlet dir = direction;\r\n\t\t\tif (!dir) {\r\n\t\t\t\tif (activeIndex > previousIndex) dir = 'next';\r\n\t\t\t\telse if (activeIndex < previousIndex) dir = 'prev';\r\n\t\t\t\telse dir = 'reset';\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('transitionEnd');\r\n\r\n\t\t\tif (runCallbacks && activeIndex !== previousIndex) {\r\n\t\t\t\tif (dir === 'reset') {\r\n\t\t\t\t\tswiper.emit('slideResetTransitionEnd');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('slideChangeTransitionEnd');\r\n\t\t\t\tif (dir === 'next') {\r\n\t\t\t\t\tswiper.emit('slideNextTransitionEnd');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.emit('slidePrevTransitionEnd');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar swiper_esm_bundle_transition = {\r\n\t\t\tsetTransition,\r\n\t\t\ttransitionStart,\r\n\t\t\ttransitionEnd: swiper_esm_bundle_transitionEnd,\r\n\t\t};\r\n\r\n\t\tfunction slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tlet slideIndex = index;\r\n\t\t\tif (slideIndex < 0) slideIndex = 0;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tparams, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\r\n\t\t\t} = swiper;\r\n\t\t\tif (swiper.animating && params.preventInteractionOnTransition) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tconst skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\r\n\t\t\tlet snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\r\n\t\t\tif (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\r\n\t\t\tif ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\r\n\t\t\t\tswiper.emit('beforeSlideChangeStart');\r\n\t\t\t}\r\n\r\n\t\t\tconst translate = -snapGrid[snapIndex];\r\n\r\n\t\t\t// Update progress\r\n\t\t\tswiper.updateProgress(translate);\r\n\r\n\t\t\t// Normalize slideIndex\r\n\t\t\tif (params.normalizeSlideIndex) {\r\n\t\t\t\tfor (let i = 0; i < slidesGrid.length; i += 1) {\r\n\t\t\t\t\tif (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\r\n\t\t\t\t\t\tslideIndex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Directions locks\r\n\t\t\tif (swiper.initialized && slideIndex !== activeIndex) {\r\n\t\t\t\tif (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\r\n\t\t\t\t\tif ((activeIndex || 0) !== slideIndex) return false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet direction;\r\n\t\t\tif (slideIndex > activeIndex) direction = 'next';\r\n\t\t\telse if (slideIndex < activeIndex) direction = 'prev';\r\n\t\t\telse direction = 'reset';\r\n\r\n\r\n\t\t\t// Update Index\r\n\t\t\tif ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\r\n\t\t\t\tswiper.updateActiveIndex(slideIndex);\r\n\t\t\t\t// Update Height\r\n\t\t\t\tif (params.autoHeight) {\r\n\t\t\t\t\tswiper.updateAutoHeight();\r\n\t\t\t\t}\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\tif (params.effect !== 'slide') {\r\n\t\t\t\t\tswiper.setTranslate(translate);\r\n\t\t\t\t}\r\n\t\t\t\tif (direction !== 'reset') {\r\n\t\t\t\t\tswiper.transitionStart(runCallbacks, direction);\r\n\t\t\t\t\tswiper.transitionEnd(runCallbacks, direction);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\tconst isH = swiper.isHorizontal();\r\n\t\t\t\tlet t = -translate;\r\n\t\t\t\tif (rtl) {\r\n\t\t\t\t\tt = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\r\n\t\t\t\t}\r\n\t\t\t\tif (speed === 0) {\r\n\t\t\t\t\twrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tif (wrapperEl.scrollTo) {\r\n\t\t\t\t\t\twrapperEl.scrollTo({\r\n\t\t\t\t\t\t\t[isH ? 'left' : 'top']: t,\r\n\t\t\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (speed === 0) {\r\n\t\t\t\tswiper.setTransition(0);\r\n\t\t\t\tswiper.setTranslate(translate);\r\n\t\t\t\tswiper.updateActiveIndex(slideIndex);\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\tswiper.emit('beforeTransitionStart', speed, internal);\r\n\t\t\t\tswiper.transitionStart(runCallbacks, direction);\r\n\t\t\t\tswiper.transitionEnd(runCallbacks, direction);\r\n\t\t\t} else {\r\n\t\t\t\tswiper.setTransition(speed);\r\n\t\t\t\tswiper.setTranslate(translate);\r\n\t\t\t\tswiper.updateActiveIndex(slideIndex);\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\tswiper.emit('beforeTransitionStart', speed, internal);\r\n\t\t\t\tswiper.transitionStart(runCallbacks, direction);\r\n\t\t\t\tif (!swiper.animating) {\r\n\t\t\t\t\tswiper.animating = true;\r\n\t\t\t\t\tif (!swiper.onSlideToWrapperTransitionEnd) {\r\n\t\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\t\tif (e.target !== this) return;\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.onSlideToWrapperTransitionEnd = null;\r\n\t\t\t\t\t\t\tdelete swiper.onSlideToWrapperTransitionEnd;\r\n\t\t\t\t\t\t\tswiper.transitionEnd(runCallbacks, direction);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfunction slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tlet newIndex = index;\r\n\t\t\tif (swiper.params.loop) {\r\n\t\t\t\tnewIndex += swiper.loopedSlides;\r\n\t\t\t}\r\n\r\n\t\t\treturn swiper.slideTo(newIndex, speed, runCallbacks, internal);\r\n\t\t}\r\n\r\n\t\t/* eslint no-unused-vars: \"off\" */\r\n\t\tfunction slideNext(speed = this.params.speed, runCallbacks = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { params, animating } = swiper;\r\n\t\t\tconst increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tif (animating) return false;\r\n\t\t\t\tswiper.loopFix();\r\n\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n\t\t\t}\r\n\t\t\treturn swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\r\n\t\t}\r\n\r\n\t\t/* eslint no-unused-vars: \"off\" */\r\n\t\tfunction slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst {\r\n\t\t\t\tparams, animating, snapGrid, slidesGrid, rtlTranslate,\r\n\t\t\t} = swiper;\r\n\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tif (animating) return false;\r\n\t\t\t\tswiper.loopFix();\r\n\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n\t\t\t}\r\n\t\t\tconst translate = rtlTranslate ? swiper.translate : -swiper.translate;\r\n\t\t\tfunction normalize(val) {\r\n\t\t\t\tif (val < 0) return -Math.floor(Math.abs(val));\r\n\t\t\t\treturn Math.floor(val);\r\n\t\t\t}\r\n\t\t\tconst normalizedTranslate = normalize(translate);\r\n\t\t\tconst normalizedSnapGrid = snapGrid.map((val) => normalize(val));\r\n\t\t\tconst normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\r\n\r\n\t\t\tconst currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\r\n\t\t\tlet prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\r\n\t\t\tif (typeof prevSnap === 'undefined' && params.cssMode) {\r\n\t\t\t\tsnapGrid.forEach((snap) => {\r\n\t\t\t\t\tif (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tlet prevIndex;\r\n\t\t\tif (typeof prevSnap !== 'undefined') {\r\n\t\t\t\tprevIndex = slidesGrid.indexOf(prevSnap);\r\n\t\t\t\tif (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\r\n\t\t\t}\r\n\t\t\treturn swiper.slideTo(prevIndex, speed, runCallbacks, internal);\r\n\t\t}\r\n\r\n\t\t/* eslint no-unused-vars: \"off\" */\r\n\t\tfunction slideReset(speed = this.params.speed, runCallbacks = true, internal) {\r\n\t\t\tconst swiper = this;\r\n\t\t\treturn swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n\t\t}\r\n\r\n\t\t/* eslint no-unused-vars: \"off\" */\r\n\t\tfunction slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tlet index = swiper.activeIndex;\r\n\t\t\tconst skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n\t\t\tconst snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n\r\n\t\t\tconst translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n\t\t\tif (translate >= swiper.snapGrid[snapIndex]) {\r\n\t\t\t\t// The current translate is on or after the current snap index, so the choice\r\n\t\t\t\t// is between the current index and the one after it.\r\n\t\t\t\tconst currentSnap = swiper.snapGrid[snapIndex];\r\n\t\t\t\tconst nextSnap = swiper.snapGrid[snapIndex + 1];\r\n\t\t\t\tif ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\r\n\t\t\t\t\tindex += swiper.params.slidesPerGroup;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// The current translate is before the current snap index, so the choice\r\n\t\t\t\t// is between the current index and the one before it.\r\n\t\t\t\tconst prevSnap = swiper.snapGrid[snapIndex - 1];\r\n\t\t\t\tconst currentSnap = swiper.snapGrid[snapIndex];\r\n\t\t\t\tif ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\r\n\t\t\t\t\tindex -= swiper.params.slidesPerGroup;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tindex = Math.max(index, 0);\r\n\t\t\tindex = Math.min(index, swiper.slidesGrid.length - 1);\r\n\r\n\t\t\treturn swiper.slideTo(index, speed, runCallbacks, internal);\r\n\t\t}\r\n\r\n\t\tfunction slideToClickedSlide() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { params, $wrapperEl } = swiper;\r\n\r\n\t\t\tconst slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\r\n\t\t\tlet slideToIndex = swiper.clickedIndex;\r\n\t\t\tlet realIndex;\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tif (swiper.animating) return;\r\n\t\t\t\trealIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n\t\t\t\tif (params.centeredSlides) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t(slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\r\n\t\t\t\t\t\t|| (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\tslideToIndex = $wrapperEl\r\n\t\t\t\t\t\t\t.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\r\n\t\t\t\t\t\t\t.eq(0)\r\n\t\t\t\t\t\t\t.index();\r\n\r\n\t\t\t\t\t\tUtils.nextTick(() => {\r\n\t\t\t\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (slideToIndex > swiper.slides.length - slidesPerView) {\r\n\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\tslideToIndex = $wrapperEl\r\n\t\t\t\t\t\t.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\r\n\t\t\t\t\t\t.eq(0)\r\n\t\t\t\t\t\t.index();\r\n\r\n\t\t\t\t\tUtils.nextTick(() => {\r\n\t\t\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar slide = {\r\n\t\t\tslideTo,\r\n\t\t\tslideToLoop,\r\n\t\t\tslideNext,\r\n\t\t\tslidePrev,\r\n\t\t\tslideReset,\r\n\t\t\tslideToClosest,\r\n\t\t\tslideToClickedSlide,\r\n\t\t};\r\n\r\n\t\tfunction loopCreate() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { params, $wrapperEl } = swiper;\r\n\t\t\t// Remove duplicated slides\r\n\t\t\t$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\r\n\r\n\t\t\tlet slides = $wrapperEl.children(`.${params.slideClass}`);\r\n\r\n\t\t\tif (params.loopFillGroupWithBlank) {\r\n\t\t\t\tconst blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\r\n\t\t\t\tif (blankSlidesNum !== params.slidesPerGroup) {\r\n\t\t\t\t\tfor (let i = 0; i < blankSlidesNum; i += 1) {\r\n\t\t\t\t\t\tconst blankNode = $(doc.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\r\n\t\t\t\t\t\t$wrapperEl.append(blankNode);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tslides = $wrapperEl.children(`.${params.slideClass}`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\r\n\r\n\t\t\tswiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\r\n\t\t\tswiper.loopedSlides += params.loopAdditionalSlides;\r\n\t\t\tif (swiper.loopedSlides > slides.length) {\r\n\t\t\t\tswiper.loopedSlides = slides.length;\r\n\t\t\t}\r\n\r\n\t\t\tconst prependSlides = [];\r\n\t\t\tconst appendSlides = [];\r\n\t\t\tslides.each((index, el) => {\r\n\t\t\t\tconst slide = $(el);\r\n\t\t\t\tif (index < swiper.loopedSlides) appendSlides.push(el);\r\n\t\t\t\tif (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\r\n\t\t\t\tslide.attr('data-swiper-slide-index', index);\r\n\t\t\t});\r\n\t\t\tfor (let i = 0; i < appendSlides.length; i += 1) {\r\n\t\t\t\t$wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n\t\t\t}\r\n\t\t\tfor (let i = prependSlides.length - 1; i >= 0; i -= 1) {\r\n\t\t\t\t$wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction loopFix() {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tswiper.emit('beforeLoopFix');\r\n\r\n\t\t\tconst {\r\n\t\t\t\tactiveIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\r\n\t\t\t} = swiper;\r\n\t\t\tlet newIndex;\r\n\t\t\tswiper.allowSlidePrev = true;\r\n\t\t\tswiper.allowSlideNext = true;\r\n\r\n\t\t\tconst snapTranslate = -snapGrid[activeIndex];\r\n\t\t\tconst diff = snapTranslate - swiper.getTranslate();\r\n\r\n\t\t\t// Fix For Negative Oversliding\r\n\t\t\tif (activeIndex < loopedSlides) {\r\n\t\t\t\tnewIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\r\n\t\t\t\tnewIndex += loopedSlides;\r\n\t\t\t\tconst slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n\t\t\t\tif (slideChanged && diff !== 0) {\r\n\t\t\t\t\tswiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n\t\t\t\t}\r\n\t\t\t} else if (activeIndex >= slides.length - loopedSlides) {\r\n\t\t\t\t// Fix For Positive Oversliding\r\n\t\t\t\tnewIndex = -slides.length + activeIndex + loopedSlides;\r\n\t\t\t\tnewIndex += loopedSlides;\r\n\t\t\t\tconst slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n\t\t\t\tif (slideChanged && diff !== 0) {\r\n\t\t\t\t\tswiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tswiper.allowSlidePrev = allowSlidePrev;\r\n\t\t\tswiper.allowSlideNext = allowSlideNext;\r\n\r\n\t\t\tswiper.emit('loopFix');\r\n\t\t}\r\n\r\n\t\tfunction loopDestroy() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { $wrapperEl, params, slides } = swiper;\r\n\t\t\t$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\r\n\t\t\tslides.removeAttr('data-swiper-slide-index');\r\n\t\t}\r\n\r\n\t\tvar loop = {\r\n\t\t\tloopCreate,\r\n\t\t\tloopFix,\r\n\t\t\tloopDestroy,\r\n\t\t};\r\n\r\n\t\tfunction setGrabCursor(moving) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tif (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\r\n\t\t\tconst el = swiper.el;\r\n\t\t\tel.style.cursor = 'move';\r\n\t\t\tel.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\r\n\t\t\tel.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\r\n\t\t\tel.style.cursor = moving ? 'grabbing' : 'grab';\r\n\t\t}\r\n\r\n\t\tfunction unsetGrabCursor() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tif (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\r\n\t\t\tswiper.el.style.cursor = '';\r\n\t\t}\r\n\r\n\t\tvar grabCursor = {\r\n\t\t\tsetGrabCursor,\r\n\t\t\tunsetGrabCursor,\r\n\t\t};\r\n\r\n\t\tfunction appendSlide(slides) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { $wrapperEl, params } = swiper;\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopDestroy();\r\n\t\t\t}\r\n\t\t\tif (typeof slides === 'object' && 'length' in slides) {\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tif (slides[i]) $wrapperEl.append(slides[i]);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$wrapperEl.append(slides);\r\n\t\t\t}\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopCreate();\r\n\t\t\t}\r\n\t\t\tif (!(params.observer && Support.observer)) {\r\n\t\t\t\tswiper.update();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction prependSlide(slides) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopDestroy();\r\n\t\t\t}\r\n\t\t\tlet newActiveIndex = activeIndex + 1;\r\n\t\t\tif (typeof slides === 'object' && 'length' in slides) {\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tif (slides[i]) $wrapperEl.prepend(slides[i]);\r\n\t\t\t\t}\r\n\t\t\t\tnewActiveIndex = activeIndex + slides.length;\r\n\t\t\t} else {\r\n\t\t\t\t$wrapperEl.prepend(slides);\r\n\t\t\t}\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopCreate();\r\n\t\t\t}\r\n\t\t\tif (!(params.observer && Support.observer)) {\r\n\t\t\t\tswiper.update();\r\n\t\t\t}\r\n\t\t\tswiper.slideTo(newActiveIndex, 0, false);\r\n\t\t}\r\n\r\n\t\tfunction addSlide(index, slides) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { $wrapperEl, params, activeIndex } = swiper;\r\n\t\t\tlet activeIndexBuffer = activeIndex;\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tactiveIndexBuffer -= swiper.loopedSlides;\r\n\t\t\t\tswiper.loopDestroy();\r\n\t\t\t\tswiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n\t\t\t}\r\n\t\t\tconst baseLength = swiper.slides.length;\r\n\t\t\tif (index <= 0) {\r\n\t\t\t\tswiper.prependSlide(slides);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (index >= baseLength) {\r\n\t\t\t\tswiper.appendSlide(slides);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\r\n\r\n\t\t\tconst slidesBuffer = [];\r\n\t\t\tfor (let i = baseLength - 1; i >= index; i -= 1) {\r\n\t\t\t\tconst currentSlide = swiper.slides.eq(i);\r\n\t\t\t\tcurrentSlide.remove();\r\n\t\t\t\tslidesBuffer.unshift(currentSlide);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof slides === 'object' && 'length' in slides) {\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tif (slides[i]) $wrapperEl.append(slides[i]);\r\n\t\t\t\t}\r\n\t\t\t\tnewActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\r\n\t\t\t} else {\r\n\t\t\t\t$wrapperEl.append(slides);\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < slidesBuffer.length; i += 1) {\r\n\t\t\t\t$wrapperEl.append(slidesBuffer[i]);\r\n\t\t\t}\r\n\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopCreate();\r\n\t\t\t}\r\n\t\t\tif (!(params.observer && Support.observer)) {\r\n\t\t\t\tswiper.update();\r\n\t\t\t}\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n\t\t\t} else {\r\n\t\t\t\tswiper.slideTo(newActiveIndex, 0, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction removeSlide(slidesIndexes) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n\t\t\tlet activeIndexBuffer = activeIndex;\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tactiveIndexBuffer -= swiper.loopedSlides;\r\n\t\t\t\tswiper.loopDestroy();\r\n\t\t\t\tswiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n\t\t\t}\r\n\t\t\tlet newActiveIndex = activeIndexBuffer;\r\n\t\t\tlet indexToRemove;\r\n\r\n\t\t\tif (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\r\n\t\t\t\tfor (let i = 0; i < slidesIndexes.length; i += 1) {\r\n\t\t\t\t\tindexToRemove = slidesIndexes[i];\r\n\t\t\t\t\tif (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n\t\t\t\t\tif (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n\t\t\t\t}\r\n\t\t\t\tnewActiveIndex = Math.max(newActiveIndex, 0);\r\n\t\t\t} else {\r\n\t\t\t\tindexToRemove = slidesIndexes;\r\n\t\t\t\tif (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n\t\t\t\tif (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n\t\t\t\tnewActiveIndex = Math.max(newActiveIndex, 0);\r\n\t\t\t}\r\n\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.loopCreate();\r\n\t\t\t}\r\n\r\n\t\t\tif (!(params.observer && Support.observer)) {\r\n\t\t\t\tswiper.update();\r\n\t\t\t}\r\n\t\t\tif (params.loop) {\r\n\t\t\t\tswiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n\t\t\t} else {\r\n\t\t\t\tswiper.slideTo(newActiveIndex, 0, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction removeAllSlides() {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst slidesIndexes = [];\r\n\t\t\tfor (let i = 0; i < swiper.slides.length; i += 1) {\r\n\t\t\t\tslidesIndexes.push(i);\r\n\t\t\t}\r\n\t\t\tswiper.removeSlide(slidesIndexes);\r\n\t\t}\r\n\r\n\t\tvar manipulation = {\r\n\t\t\tappendSlide,\r\n\t\t\tprependSlide,\r\n\t\t\taddSlide,\r\n\t\t\tremoveSlide,\r\n\t\t\tremoveAllSlides,\r\n\t\t};\r\n\r\n\t\tconst Device = (function Device() {\r\n\t\t\tconst platform = win.navigator.platform;\r\n\t\t\tconst ua = win.navigator.userAgent;\r\n\r\n\t\t\tconst device = {\r\n\t\t\t\tios: false,\r\n\t\t\t\tandroid: false,\r\n\t\t\t\tandroidChrome: false,\r\n\t\t\t\tdesktop: false,\r\n\t\t\t\tiphone: false,\r\n\t\t\t\tipod: false,\r\n\t\t\t\tipad: false,\r\n\t\t\t\tedge: false,\r\n\t\t\t\tie: false,\r\n\t\t\t\tfirefox: false,\r\n\t\t\t\tmacos: false,\r\n\t\t\t\twindows: false,\r\n\t\t\t\tcordova: !!(win.cordova || win.phonegap),\r\n\t\t\t\tphonegap: !!(win.cordova || win.phonegap),\r\n\t\t\t\telectron: false,\r\n\t\t\t};\r\n\r\n\t\t\tconst screenWidth = win.screen.width;\r\n\t\t\tconst screenHeight = win.screen.height;\r\n\r\n\t\t\tconst android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n\t\t\tlet ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n\t\t\tconst ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n\t\t\tconst iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n\t\t\tconst ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n\t\t\tconst edge = ua.indexOf('Edge/') >= 0;\r\n\t\t\tconst firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\r\n\t\t\tconst windows = platform === 'Win32';\r\n\t\t\tconst electron = ua.toLowerCase().indexOf('electron') >= 0;\r\n\t\t\tlet macos = platform === 'MacIntel';\r\n\r\n\t\t\t// iPadOs 13 fix\r\n\t\t\tif (!ipad\r\n\t\t\t\t&& macos\r\n\t\t\t\t&& Support.touch\r\n\t\t\t\t&& (\r\n\t\t\t\t\t(screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\r\n\t\t\t\t\t|| (screenWidth === 834 && screenHeight === 1194) // Pro 11\r\n\t\t\t\t\t|| (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\r\n\t\t\t\t\t|| (screenWidth === 768 && screenHeight === 1024) // other\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n\t\t\t\tmacos = false;\r\n\t\t\t}\r\n\r\n\t\t\tdevice.ie = ie;\r\n\t\t\tdevice.edge = edge;\r\n\t\t\tdevice.firefox = firefox;\r\n\r\n\t\t\t// Android\r\n\t\t\tif (android && !windows) {\r\n\t\t\t\tdevice.os = 'android';\r\n\t\t\t\tdevice.osVersion = android[2];\r\n\t\t\t\tdevice.android = true;\r\n\t\t\t\tdevice.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\r\n\t\t\t}\r\n\t\t\tif (ipad || iphone || ipod) {\r\n\t\t\t\tdevice.os = 'ios';\r\n\t\t\t\tdevice.ios = true;\r\n\t\t\t}\r\n\t\t\t// iOS\r\n\t\t\tif (iphone && !ipod) {\r\n\t\t\t\tdevice.osVersion = iphone[2].replace(/_/g, '.');\r\n\t\t\t\tdevice.iphone = true;\r\n\t\t\t}\r\n\t\t\tif (ipad) {\r\n\t\t\t\tdevice.osVersion = ipad[2].replace(/_/g, '.');\r\n\t\t\t\tdevice.ipad = true;\r\n\t\t\t}\r\n\t\t\tif (ipod) {\r\n\t\t\t\tdevice.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\r\n\t\t\t\tdevice.ipod = true;\r\n\t\t\t}\r\n\t\t\t// iOS 8+ changed UA\r\n\t\t\tif (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\r\n\t\t\t\tif (device.osVersion.split('.')[0] === '10') {\r\n\t\t\t\t\tdevice.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Webview\r\n\t\t\tdevice.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone))\r\n\t\t\t\t|| (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches);\r\n\t\t\tdevice.webview = device.webView;\r\n\t\t\tdevice.standalone = device.webView;\r\n\r\n\t\t\t// Desktop\r\n\t\t\tdevice.desktop = !(device.ios || device.android) || electron;\r\n\t\t\tif (device.desktop) {\r\n\t\t\t\tdevice.electron = electron;\r\n\t\t\t\tdevice.macos = macos;\r\n\t\t\t\tdevice.windows = windows;\r\n\t\t\t\tif (device.macos) {\r\n\t\t\t\t\tdevice.os = 'macos';\r\n\t\t\t\t}\r\n\t\t\t\tif (device.windows) {\r\n\t\t\t\t\tdevice.os = 'windows';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Pixel Ratio\r\n\t\t\tdevice.pixelRatio = win.devicePixelRatio || 1;\r\n\r\n\t\t\t// Export object\r\n\t\t\treturn device;\r\n\t\t}());\r\n\r\n\t\tfunction onTouchStart(event) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst data = swiper.touchEventsData;\r\n\t\t\tconst { params, touches } = swiper;\r\n\r\n\t\t\tif (swiper.animating && params.preventInteractionOnTransition) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet e = event;\r\n\t\t\tif (e.originalEvent) e = e.originalEvent;\r\n\t\t\tconst $targetEl = $(e.target);\r\n\r\n\t\t\tif (params.touchEventsTarget === 'wrapper') {\r\n\t\t\t\tif (!$targetEl.closest(swiper.wrapperEl).length) return;\r\n\t\t\t}\r\n\t\t\tdata.isTouchEvent = e.type === 'touchstart';\r\n\t\t\tif (!data.isTouchEvent && 'which' in e && e.which === 3) return;\r\n\t\t\tif (!data.isTouchEvent && 'button' in e && e.button > 0) return;\r\n\t\t\tif (data.isTouched && data.isMoved) return;\r\n\t\t\tif (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\r\n\t\t\t\tswiper.allowClick = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (params.swipeHandler) {\r\n\t\t\t\tif (!$targetEl.closest(params.swipeHandler)[0]) return;\r\n\t\t\t}\r\n\r\n\t\t\ttouches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n\t\t\ttouches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n\t\t\tconst startX = touches.currentX;\r\n\t\t\tconst startY = touches.currentY;\r\n\r\n\t\t\t// Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\r\n\r\n\t\t\tconst edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\r\n\t\t\tconst edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\r\n\t\t\tif (\r\n\t\t\t\tedgeSwipeDetection\r\n\t\t\t\t&& ((startX <= edgeSwipeThreshold)\r\n\t\t\t\t\t|| (startX >= win.screen.width - edgeSwipeThreshold))\r\n\t\t\t) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tUtils.extend(data, {\r\n\t\t\t\tisTouched: true,\r\n\t\t\t\tisMoved: false,\r\n\t\t\t\tallowTouchCallbacks: true,\r\n\t\t\t\tisScrolling: undefined,\r\n\t\t\t\tstartMoving: undefined,\r\n\t\t\t});\r\n\r\n\t\t\ttouches.startX = startX;\r\n\t\t\ttouches.startY = startY;\r\n\t\t\tdata.touchStartTime = Utils.now();\r\n\t\t\tswiper.allowClick = true;\r\n\t\t\tswiper.updateSize();\r\n\t\t\tswiper.swipeDirection = undefined;\r\n\t\t\tif (params.threshold > 0) data.allowThresholdMove = false;\r\n\t\t\tif (e.type !== 'touchstart') {\r\n\t\t\t\tlet preventDefault = true;\r\n\t\t\t\tif ($targetEl.is(data.formElements)) preventDefault = false;\r\n\t\t\t\tif (\r\n\t\t\t\t\tdoc.activeElement\r\n\t\t\t\t\t&& $(doc.activeElement).is(data.formElements)\r\n\t\t\t\t\t&& doc.activeElement !== $targetEl[0]\r\n\t\t\t\t) {\r\n\t\t\t\t\tdoc.activeElement.blur();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\r\n\t\t\t\tif (params.touchStartForcePreventDefault || shouldPreventDefault) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tswiper.emit('touchStart', e);\r\n\t\t}\r\n\r\n\t\tfunction onTouchMove(event) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst data = swiper.touchEventsData;\r\n\t\t\tconst { params, touches, rtlTranslate: rtl } = swiper;\r\n\t\t\tlet e = event;\r\n\t\t\tif (e.originalEvent) e = e.originalEvent;\r\n\t\t\tif (!data.isTouched) {\r\n\t\t\t\tif (data.startMoving && data.isScrolling) {\r\n\t\t\t\t\tswiper.emit('touchMoveOpposite', e);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (data.isTouchEvent && e.type !== 'touchmove') return;\r\n\t\t\tconst targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\r\n\t\t\tconst pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\r\n\t\t\tconst pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\r\n\t\t\tif (e.preventedByNestedSwiper) {\r\n\t\t\t\ttouches.startX = pageX;\r\n\t\t\t\ttouches.startY = pageY;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!swiper.allowTouchMove) {\r\n\t\t\t\t// isMoved = true;\r\n\t\t\t\tswiper.allowClick = false;\r\n\t\t\t\tif (data.isTouched) {\r\n\t\t\t\t\tUtils.extend(touches, {\r\n\t\t\t\t\t\tstartX: pageX,\r\n\t\t\t\t\t\tstartY: pageY,\r\n\t\t\t\t\t\tcurrentX: pageX,\r\n\t\t\t\t\t\tcurrentY: pageY,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdata.touchStartTime = Utils.now();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\r\n\t\t\t\tif (swiper.isVertical()) {\r\n\t\t\t\t\t// Vertical\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t(pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\r\n\t\t\t\t\t\t|| (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tdata.isTouched = false;\r\n\t\t\t\t\t\tdata.isMoved = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (\r\n\t\t\t\t\t(pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\r\n\t\t\t\t\t|| (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (data.isTouchEvent && doc.activeElement) {\r\n\t\t\t\tif (e.target === doc.activeElement && $(e.target).is(data.formElements)) {\r\n\t\t\t\t\tdata.isMoved = true;\r\n\t\t\t\t\tswiper.allowClick = false;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (data.allowTouchCallbacks) {\r\n\t\t\t\tswiper.emit('touchMove', e);\r\n\t\t\t}\r\n\t\t\tif (e.targetTouches && e.targetTouches.length > 1) return;\r\n\r\n\t\t\ttouches.currentX = pageX;\r\n\t\t\ttouches.currentY = pageY;\r\n\r\n\t\t\tconst diffX = touches.currentX - touches.startX;\r\n\t\t\tconst diffY = touches.currentY - touches.startY;\r\n\t\t\tif (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\r\n\r\n\t\t\tif (typeof data.isScrolling === 'undefined') {\r\n\t\t\t\tlet touchAngle;\r\n\t\t\t\tif ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\r\n\t\t\t\t\tdata.isScrolling = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tif ((diffX * diffX) + (diffY * diffY) >= 25) {\r\n\t\t\t\t\t\ttouchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\r\n\t\t\t\t\t\tdata.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (data.isScrolling) {\r\n\t\t\t\tswiper.emit('touchMoveOpposite', e);\r\n\t\t\t}\r\n\t\t\tif (typeof data.startMoving === 'undefined') {\r\n\t\t\t\tif (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\r\n\t\t\t\t\tdata.startMoving = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (data.isScrolling) {\r\n\t\t\t\tdata.isTouched = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!data.startMoving) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tswiper.allowClick = false;\r\n\t\t\tif (!params.cssMode && e.cancelable) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t\tif (params.touchMoveStopPropagation && !params.nested) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\r\n\t\t\tif (!data.isMoved) {\r\n\t\t\t\tif (params.loop) {\r\n\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t}\r\n\t\t\t\tdata.startTranslate = swiper.getTranslate();\r\n\t\t\t\tswiper.setTransition(0);\r\n\t\t\t\tif (swiper.animating) {\r\n\t\t\t\t\tswiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\r\n\t\t\t\t}\r\n\t\t\t\tdata.allowMomentumBounce = false;\r\n\t\t\t\t// Grab Cursor\r\n\t\t\t\tif (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n\t\t\t\t\tswiper.setGrabCursor(true);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('sliderFirstMove', e);\r\n\t\t\t}\r\n\t\t\tswiper.emit('sliderMove', e);\r\n\t\t\tdata.isMoved = true;\r\n\r\n\t\t\tlet diff = swiper.isHorizontal() ? diffX : diffY;\r\n\t\t\ttouches.diff = diff;\r\n\r\n\t\t\tdiff *= params.touchRatio;\r\n\t\t\tif (rtl) diff = -diff;\r\n\r\n\t\t\tswiper.swipeDirection = diff > 0 ? 'prev' : 'next';\r\n\t\t\tdata.currentTranslate = diff + data.startTranslate;\r\n\r\n\t\t\tlet disableParentSwiper = true;\r\n\t\t\tlet resistanceRatio = params.resistanceRatio;\r\n\t\t\tif (params.touchReleaseOnEdges) {\r\n\t\t\t\tresistanceRatio = 0;\r\n\t\t\t}\r\n\t\t\tif ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\r\n\t\t\t\tdisableParentSwiper = false;\r\n\t\t\t\tif (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\r\n\t\t\t} else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\r\n\t\t\t\tdisableParentSwiper = false;\r\n\t\t\t\tif (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\r\n\t\t\t}\r\n\r\n\t\t\tif (disableParentSwiper) {\r\n\t\t\t\te.preventedByNestedSwiper = true;\r\n\t\t\t}\r\n\r\n\t\t\t// Directions locks\r\n\t\t\tif (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\r\n\t\t\t\tdata.currentTranslate = data.startTranslate;\r\n\t\t\t}\r\n\t\t\tif (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\r\n\t\t\t\tdata.currentTranslate = data.startTranslate;\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Threshold\r\n\t\t\tif (params.threshold > 0) {\r\n\t\t\t\tif (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\r\n\t\t\t\t\tif (!data.allowThresholdMove) {\r\n\t\t\t\t\t\tdata.allowThresholdMove = true;\r\n\t\t\t\t\t\ttouches.startX = touches.currentX;\r\n\t\t\t\t\t\ttouches.startY = touches.currentY;\r\n\t\t\t\t\t\tdata.currentTranslate = data.startTranslate;\r\n\t\t\t\t\t\ttouches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata.currentTranslate = data.startTranslate;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!params.followFinger || params.cssMode) return;\r\n\r\n\t\t\t// Update active index in free mode\r\n\t\t\tif (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t}\r\n\t\t\tif (params.freeMode) {\r\n\t\t\t\t// Velocity\r\n\t\t\t\tif (data.velocities.length === 0) {\r\n\t\t\t\t\tdata.velocities.push({\r\n\t\t\t\t\t\tposition: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\r\n\t\t\t\t\t\ttime: data.touchStartTime,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tdata.velocities.push({\r\n\t\t\t\t\tposition: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\r\n\t\t\t\t\ttime: Utils.now(),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t// Update progress\r\n\t\t\tswiper.updateProgress(data.currentTranslate);\r\n\t\t\t// Update translate\r\n\t\t\tswiper.setTranslate(data.currentTranslate);\r\n\t\t}\r\n\r\n\t\tfunction onTouchEnd(event) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst data = swiper.touchEventsData;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tparams, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\r\n\t\t\t} = swiper;\r\n\t\t\tlet e = event;\r\n\t\t\tif (e.originalEvent) e = e.originalEvent;\r\n\t\t\tif (data.allowTouchCallbacks) {\r\n\t\t\t\tswiper.emit('touchEnd', e);\r\n\t\t\t}\r\n\t\t\tdata.allowTouchCallbacks = false;\r\n\t\t\tif (!data.isTouched) {\r\n\t\t\t\tif (data.isMoved && params.grabCursor) {\r\n\t\t\t\t\tswiper.setGrabCursor(false);\r\n\t\t\t\t}\r\n\t\t\t\tdata.isMoved = false;\r\n\t\t\t\tdata.startMoving = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t// Return Grab Cursor\r\n\t\t\tif (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n\t\t\t\tswiper.setGrabCursor(false);\r\n\t\t\t}\r\n\r\n\t\t\t// Time diff\r\n\t\t\tconst touchEndTime = Utils.now();\r\n\t\t\tconst timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n\t\t\t// Tap, doubleTap, Click\r\n\t\t\tif (swiper.allowClick) {\r\n\t\t\t\tswiper.updateClickedSlide(e);\r\n\t\t\t\tswiper.emit('tap click', e);\r\n\t\t\t\tif (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\r\n\t\t\t\t\tswiper.emit('doubleTap doubleClick', e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdata.lastClickTime = Utils.now();\r\n\t\t\tUtils.nextTick(() => {\r\n\t\t\t\tif (!swiper.destroyed) swiper.allowClick = true;\r\n\t\t\t});\r\n\r\n\t\t\tif (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\r\n\t\t\t\tdata.isTouched = false;\r\n\t\t\t\tdata.isMoved = false;\r\n\t\t\t\tdata.startMoving = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tdata.isTouched = false;\r\n\t\t\tdata.isMoved = false;\r\n\t\t\tdata.startMoving = false;\r\n\r\n\t\t\tlet currentPos;\r\n\t\t\tif (params.followFinger) {\r\n\t\t\t\tcurrentPos = rtl ? swiper.translate : -swiper.translate;\r\n\t\t\t} else {\r\n\t\t\t\tcurrentPos = -data.currentTranslate;\r\n\t\t\t}\r\n\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (params.freeMode) {\r\n\t\t\t\tif (currentPos < -swiper.minTranslate()) {\r\n\t\t\t\t\tswiper.slideTo(swiper.activeIndex);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (currentPos > -swiper.maxTranslate()) {\r\n\t\t\t\t\tif (swiper.slides.length < snapGrid.length) {\r\n\t\t\t\t\t\tswiper.slideTo(snapGrid.length - 1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.slideTo(swiper.slides.length - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.freeModeMomentum) {\r\n\t\t\t\t\tif (data.velocities.length > 1) {\r\n\t\t\t\t\t\tconst lastMoveEvent = data.velocities.pop();\r\n\t\t\t\t\t\tconst velocityEvent = data.velocities.pop();\r\n\r\n\t\t\t\t\t\tconst distance = lastMoveEvent.position - velocityEvent.position;\r\n\t\t\t\t\t\tconst time = lastMoveEvent.time - velocityEvent.time;\r\n\t\t\t\t\t\tswiper.velocity = distance / time;\r\n\t\t\t\t\t\tswiper.velocity /= 2;\r\n\t\t\t\t\t\tif (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\r\n\t\t\t\t\t\t\tswiper.velocity = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// this implies that the user stopped moving a finger then released.\r\n\t\t\t\t\t\t// There would be no events with distance zero, so the last event is stale.\r\n\t\t\t\t\t\tif (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\r\n\t\t\t\t\t\t\tswiper.velocity = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.velocity = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tswiper.velocity *= params.freeModeMomentumVelocityRatio;\r\n\r\n\t\t\t\t\tdata.velocities.length = 0;\r\n\t\t\t\t\tlet momentumDuration = 1000 * params.freeModeMomentumRatio;\r\n\t\t\t\t\tconst momentumDistance = swiper.velocity * momentumDuration;\r\n\r\n\t\t\t\t\tlet newPosition = swiper.translate + momentumDistance;\r\n\t\t\t\t\tif (rtl) newPosition = -newPosition;\r\n\r\n\t\t\t\t\tlet doBounce = false;\r\n\t\t\t\t\tlet afterBouncePosition;\r\n\t\t\t\t\tconst bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\r\n\t\t\t\t\tlet needsLoopFix;\r\n\t\t\t\t\tif (newPosition < swiper.maxTranslate()) {\r\n\t\t\t\t\t\tif (params.freeModeMomentumBounce) {\r\n\t\t\t\t\t\t\tif (newPosition + swiper.maxTranslate() < -bounceAmount) {\r\n\t\t\t\t\t\t\t\tnewPosition = swiper.maxTranslate() - bounceAmount;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tafterBouncePosition = swiper.maxTranslate();\r\n\t\t\t\t\t\t\tdoBounce = true;\r\n\t\t\t\t\t\t\tdata.allowMomentumBounce = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnewPosition = swiper.maxTranslate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (params.loop && params.centeredSlides) needsLoopFix = true;\r\n\t\t\t\t\t} else if (newPosition > swiper.minTranslate()) {\r\n\t\t\t\t\t\tif (params.freeModeMomentumBounce) {\r\n\t\t\t\t\t\t\tif (newPosition - swiper.minTranslate() > bounceAmount) {\r\n\t\t\t\t\t\t\t\tnewPosition = swiper.minTranslate() + bounceAmount;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tafterBouncePosition = swiper.minTranslate();\r\n\t\t\t\t\t\t\tdoBounce = true;\r\n\t\t\t\t\t\t\tdata.allowMomentumBounce = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnewPosition = swiper.minTranslate();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (params.loop && params.centeredSlides) needsLoopFix = true;\r\n\t\t\t\t\t} else if (params.freeModeSticky) {\r\n\t\t\t\t\t\tlet nextSlide;\r\n\t\t\t\t\t\tfor (let j = 0; j < snapGrid.length; j += 1) {\r\n\t\t\t\t\t\t\tif (snapGrid[j] > -newPosition) {\r\n\t\t\t\t\t\t\t\tnextSlide = j;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\r\n\t\t\t\t\t\t\tnewPosition = snapGrid[nextSlide];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnewPosition = snapGrid[nextSlide - 1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewPosition = -newPosition;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (needsLoopFix) {\r\n\t\t\t\t\t\tswiper.once('transitionEnd', () => {\r\n\t\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Fix duration\r\n\t\t\t\t\tif (swiper.velocity !== 0) {\r\n\t\t\t\t\t\tif (rtl) {\r\n\t\t\t\t\t\t\tmomentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tmomentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (params.freeModeSticky) {\r\n\t\t\t\t\t\t\t// If freeModeSticky is active and the user ends a swipe with a slow-velocity\r\n\t\t\t\t\t\t\t// event, then durations can be 20+ seconds to slide one (or zero!) slides.\r\n\t\t\t\t\t\t\t// It's easy to see this when simulating touch with mouse events. To fix this,\r\n\t\t\t\t\t\t\t// limit single-slide swipes to the default slide duration. This also has the\r\n\t\t\t\t\t\t\t// nice side effect of matching slide speed if the user stopped moving before\r\n\t\t\t\t\t\t\t// lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\r\n\t\t\t\t\t\t\t// For faster swipes, also apply limits (albeit higher ones).\r\n\t\t\t\t\t\t\tconst moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\r\n\t\t\t\t\t\t\tconst currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\r\n\t\t\t\t\t\t\tif (moveDistance < currentSlideSize) {\r\n\t\t\t\t\t\t\t\tmomentumDuration = params.speed;\r\n\t\t\t\t\t\t\t} else if (moveDistance < 2 * currentSlideSize) {\r\n\t\t\t\t\t\t\t\tmomentumDuration = params.speed * 1.5;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmomentumDuration = params.speed * 2.5;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (params.freeModeSticky) {\r\n\t\t\t\t\t\tswiper.slideToClosest();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (params.freeModeMomentumBounce && doBounce) {\r\n\t\t\t\t\t\tswiper.updateProgress(afterBouncePosition);\r\n\t\t\t\t\t\tswiper.setTransition(momentumDuration);\r\n\t\t\t\t\t\tswiper.setTranslate(newPosition);\r\n\t\t\t\t\t\tswiper.transitionStart(true, swiper.swipeDirection);\r\n\t\t\t\t\t\tswiper.animating = true;\r\n\t\t\t\t\t\t$wrapperEl.transitionEnd(() => {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\r\n\t\t\t\t\t\t\tswiper.emit('momentumBounce');\r\n\t\t\t\t\t\t\tswiper.setTransition(params.speed);\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tswiper.setTranslate(afterBouncePosition);\r\n\t\t\t\t\t\t\t\t$wrapperEl.transitionEnd(() => {\r\n\t\t\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\t\t\t\tswiper.transitionEnd();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (swiper.velocity) {\r\n\t\t\t\t\t\tswiper.updateProgress(newPosition);\r\n\t\t\t\t\t\tswiper.setTransition(momentumDuration);\r\n\t\t\t\t\t\tswiper.setTranslate(newPosition);\r\n\t\t\t\t\t\tswiper.transitionStart(true, swiper.swipeDirection);\r\n\t\t\t\t\t\tif (!swiper.animating) {\r\n\t\t\t\t\t\t\tswiper.animating = true;\r\n\t\t\t\t\t\t\t$wrapperEl.transitionEnd(() => {\r\n\t\t\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\t\t\tswiper.transitionEnd();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.updateProgress(newPosition);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\t} else if (params.freeModeSticky) {\r\n\t\t\t\t\tswiper.slideToClosest();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\r\n\t\t\t\t\tswiper.updateProgress();\r\n\t\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Find current slide\r\n\t\t\tlet stopIndex = 0;\r\n\t\t\tlet groupSize = swiper.slidesSizesGrid[0];\r\n\t\t\tfor (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\r\n\t\t\t\tconst increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\r\n\t\t\t\tif (typeof slidesGrid[i + increment] !== 'undefined') {\r\n\t\t\t\t\tif (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\r\n\t\t\t\t\t\tstopIndex = i;\r\n\t\t\t\t\t\tgroupSize = slidesGrid[i + increment] - slidesGrid[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (currentPos >= slidesGrid[i]) {\r\n\t\t\t\t\tstopIndex = i;\r\n\t\t\t\t\tgroupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Find current slide size\r\n\t\t\tconst ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\r\n\t\t\tconst increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\r\n\r\n\t\t\tif (timeDiff > params.longSwipesMs) {\r\n\t\t\t\t// Long touches\r\n\t\t\t\tif (!params.longSwipes) {\r\n\t\t\t\t\tswiper.slideTo(swiper.activeIndex);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.swipeDirection === 'next') {\r\n\t\t\t\t\tif (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\r\n\t\t\t\t\telse swiper.slideTo(stopIndex);\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.swipeDirection === 'prev') {\r\n\t\t\t\t\tif (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\r\n\t\t\t\t\telse swiper.slideTo(stopIndex);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Short swipes\r\n\t\t\t\tif (!params.shortSwipes) {\r\n\t\t\t\t\tswiper.slideTo(swiper.activeIndex);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\r\n\t\t\t\tif (!isNavButtonTarget) {\r\n\t\t\t\t\tif (swiper.swipeDirection === 'next') {\r\n\t\t\t\t\t\tswiper.slideTo(stopIndex + increment);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.swipeDirection === 'prev') {\r\n\t\t\t\t\t\tswiper.slideTo(stopIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (e.target === swiper.navigation.nextEl) {\r\n\t\t\t\t\tswiper.slideTo(stopIndex + increment);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.slideTo(stopIndex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onResize() {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst { params, el } = swiper;\r\n\r\n\t\t\tif (el && el.offsetWidth === 0) return;\r\n\r\n\t\t\t// Breakpoints\r\n\t\t\tif (params.breakpoints) {\r\n\t\t\t\tswiper.setBreakpoint();\r\n\t\t\t}\r\n\r\n\t\t\t// Save locks\r\n\t\t\tconst { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\r\n\r\n\t\t\t// Disable locks on resize\r\n\t\t\tswiper.allowSlideNext = true;\r\n\t\t\tswiper.allowSlidePrev = true;\r\n\r\n\t\t\tswiper.updateSize();\r\n\t\t\tswiper.updateSlides();\r\n\r\n\t\t\tswiper.updateSlidesClasses();\r\n\t\t\tif ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\r\n\t\t\t\tswiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n\t\t\t} else {\r\n\t\t\t\tswiper.slideTo(swiper.activeIndex, 0, false, true);\r\n\t\t\t}\r\n\r\n\t\t\tif (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\r\n\t\t\t\tswiper.autoplay.run();\r\n\t\t\t}\r\n\t\t\t// Return locks after resize\r\n\t\t\tswiper.allowSlidePrev = allowSlidePrev;\r\n\t\t\tswiper.allowSlideNext = allowSlideNext;\r\n\r\n\t\t\tif (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n\t\t\t\tswiper.checkOverflow();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onClick(e) {\r\n\t\t\tconst swiper = this;\r\n\t\t\tif (!swiper.allowClick) {\r\n\t\t\t\tif (swiper.params.preventClicks) e.preventDefault();\r\n\t\t\t\tif (swiper.params.preventClicksPropagation && swiper.animating) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onScroll() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { wrapperEl, rtlTranslate } = swiper;\r\n\t\t\tswiper.previousTranslate = swiper.translate;\r\n\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\tif (rtlTranslate) {\r\n\t\t\t\t\tswiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.translate = -wrapperEl.scrollLeft;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswiper.translate = -wrapperEl.scrollTop;\r\n\t\t\t}\r\n\t\t\t// eslint-disable-next-line\r\n\t\t\tif (swiper.translate === -0) swiper.translate = 0;\r\n\r\n\t\t\tswiper.updateActiveIndex();\r\n\t\t\tswiper.updateSlidesClasses();\r\n\r\n\t\t\tlet newProgress;\r\n\t\t\tconst translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n\t\t\tif (translatesDiff === 0) {\r\n\t\t\t\tnewProgress = 0;\r\n\t\t\t} else {\r\n\t\t\t\tnewProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\r\n\t\t\t}\r\n\t\t\tif (newProgress !== swiper.progress) {\r\n\t\t\t\tswiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n\t\t\t}\r\n\r\n\t\t\tswiper.emit('setTranslate', swiper.translate, false);\r\n\t\t}\r\n\r\n\t\tlet dummyEventAttached = false;\r\n\t\tfunction dummyEventListener() { }\r\n\r\n\t\tfunction attachEvents() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst {\r\n\t\t\t\tparams, touchEvents, el, wrapperEl,\r\n\t\t\t} = swiper;\r\n\r\n\t\t\tswiper.onTouchStart = onTouchStart.bind(swiper);\r\n\t\t\tswiper.onTouchMove = onTouchMove.bind(swiper);\r\n\t\t\tswiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\tswiper.onScroll = onScroll.bind(swiper);\r\n\t\t\t}\r\n\r\n\t\t\tswiper.onClick = onClick.bind(swiper);\r\n\r\n\t\t\tconst capture = !!params.nested;\r\n\r\n\t\t\t// Touch Events\r\n\t\t\tif (!Support.touch && Support.pointerEvents) {\r\n\t\t\t\tel.addEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n\t\t\t\tdoc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n\t\t\t\tdoc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n\t\t\t} else {\r\n\t\t\t\tif (Support.touch) {\r\n\t\t\t\t\tconst passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\t\tel.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n\t\t\t\t\tel.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\r\n\t\t\t\t\tel.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n\t\t\t\t\tif (touchEvents.cancel) {\r\n\t\t\t\t\t\tel.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!dummyEventAttached) {\r\n\t\t\t\t\t\tdoc.addEventListener('touchstart', dummyEventListener);\r\n\t\t\t\t\t\tdummyEventAttached = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n\t\t\t\t\tel.addEventListener('mousedown', swiper.onTouchStart, false);\r\n\t\t\t\t\tdoc.addEventListener('mousemove', swiper.onTouchMove, capture);\r\n\t\t\t\t\tdoc.addEventListener('mouseup', swiper.onTouchEnd, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Prevent Links Clicks\r\n\t\t\tif (params.preventClicks || params.preventClicksPropagation) {\r\n\t\t\t\tel.addEventListener('click', swiper.onClick, true);\r\n\t\t\t}\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\twrapperEl.addEventListener('scroll', swiper.onScroll);\r\n\t\t\t}\r\n\r\n\t\t\t// Resize handler\r\n\t\t\tif (params.updateOnWindowResize) {\r\n\t\t\t\tswiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\r\n\t\t\t} else {\r\n\t\t\t\tswiper.on('observerUpdate', onResize, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction detachEvents() {\r\n\t\t\tconst swiper = this;\r\n\r\n\t\t\tconst {\r\n\t\t\t\tparams, touchEvents, el, wrapperEl,\r\n\t\t\t} = swiper;\r\n\r\n\t\t\tconst capture = !!params.nested;\r\n\r\n\t\t\t// Touch Events\r\n\t\t\tif (!Support.touch && Support.pointerEvents) {\r\n\t\t\t\tel.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n\t\t\t\tdoc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n\t\t\t\tdoc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n\t\t\t} else {\r\n\t\t\t\tif (Support.touch) {\r\n\t\t\t\t\tconst passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\t\tel.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n\t\t\t\t\tel.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n\t\t\t\t\tel.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n\t\t\t\t\tif (touchEvents.cancel) {\r\n\t\t\t\t\t\tel.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n\t\t\t\t\tel.removeEventListener('mousedown', swiper.onTouchStart, false);\r\n\t\t\t\t\tdoc.removeEventListener('mousemove', swiper.onTouchMove, capture);\r\n\t\t\t\t\tdoc.removeEventListener('mouseup', swiper.onTouchEnd, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Prevent Links Clicks\r\n\t\t\tif (params.preventClicks || params.preventClicksPropagation) {\r\n\t\t\t\tel.removeEventListener('click', swiper.onClick, true);\r\n\t\t\t}\r\n\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\twrapperEl.removeEventListener('scroll', swiper.onScroll);\r\n\t\t\t}\r\n\r\n\t\t\t// Resize handler\r\n\t\t\tswiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\r\n\t\t}\r\n\r\n\t\tvar swiper_esm_bundle_events = {\r\n\t\t\tattachEvents,\r\n\t\t\tdetachEvents,\r\n\t\t};\r\n\r\n\t\tfunction setBreakpoint() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst {\r\n\t\t\t\tactiveIndex, initialized, loopedSlides = 0, params, $el,\r\n\t\t\t} = swiper;\r\n\t\t\tconst breakpoints = params.breakpoints;\r\n\t\t\tif (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\r\n\r\n\t\t\t// Get breakpoint for window width and update parameters\r\n\t\t\tconst breakpoint = swiper.getBreakpoint(breakpoints);\r\n\r\n\t\t\tif (breakpoint && swiper.currentBreakpoint !== breakpoint) {\r\n\t\t\t\tconst breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\r\n\t\t\t\tif (breakpointOnlyParams) {\r\n\t\t\t\t\t['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\r\n\t\t\t\t\t\tconst paramValue = breakpointOnlyParams[param];\r\n\t\t\t\t\t\tif (typeof paramValue === 'undefined') return;\r\n\t\t\t\t\t\tif (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\r\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] = 'auto';\r\n\t\t\t\t\t\t} else if (param === 'slidesPerView') {\r\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] = parseFloat(paramValue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tbreakpointOnlyParams[param] = parseInt(paramValue, 10);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst breakpointParams = breakpointOnlyParams || swiper.originalParams;\r\n\t\t\t\tconst wasMultiRow = params.slidesPerColumn > 1;\r\n\t\t\t\tconst isMultiRow = breakpointParams.slidesPerColumn > 1;\r\n\t\t\t\tif (wasMultiRow && !isMultiRow) {\r\n\t\t\t\t\t$el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\r\n\t\t\t\t} else if (!wasMultiRow && isMultiRow) {\r\n\t\t\t\t\t$el.addClass(`${params.containerModifierClass}multirow`);\r\n\t\t\t\t\tif (breakpointParams.slidesPerColumnFill === 'column') {\r\n\t\t\t\t\t\t$el.addClass(`${params.containerModifierClass}multirow-column`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\r\n\t\t\t\tconst needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\r\n\r\n\t\t\t\tif (directionChanged && initialized) {\r\n\t\t\t\t\tswiper.changeDirection();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tUtils.extend(swiper.params, breakpointParams);\r\n\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tallowTouchMove: swiper.params.allowTouchMove,\r\n\t\t\t\t\tallowSlideNext: swiper.params.allowSlideNext,\r\n\t\t\t\t\tallowSlidePrev: swiper.params.allowSlidePrev,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tswiper.currentBreakpoint = breakpoint;\r\n\r\n\t\t\t\tif (needsReLoop && initialized) {\r\n\t\t\t\t\tswiper.loopDestroy();\r\n\t\t\t\t\tswiper.loopCreate();\r\n\t\t\t\t\tswiper.updateSlides();\r\n\t\t\t\t\tswiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswiper.emit('breakpoint', breakpointParams);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getBreakpoint(breakpoints) {\r\n\t\t\t// Get breakpoint for window width\r\n\t\t\tif (!breakpoints) return undefined;\r\n\t\t\tlet breakpoint = false;\r\n\r\n\t\t\tconst points = Object.keys(breakpoints).map((point) => {\r\n\t\t\t\tif (typeof point === 'string' && point.indexOf('@') === 0) {\r\n\t\t\t\t\tconst minRatio = parseFloat(point.substr(1));\r\n\t\t\t\t\tconst value = win.innerHeight * minRatio;\r\n\t\t\t\t\treturn { value, point };\r\n\t\t\t\t}\r\n\t\t\t\treturn { value: point, point };\r\n\t\t\t});\r\n\r\n\t\t\tpoints.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\r\n\t\t\tfor (let i = 0; i < points.length; i += 1) {\r\n\t\t\t\tconst { point, value } = points[i];\r\n\t\t\t\tif (value <= win.innerWidth) {\r\n\t\t\t\t\tbreakpoint = point;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn breakpoint || 'max';\r\n\t\t}\r\n\r\n\t\tvar breakpoints = { setBreakpoint, getBreakpoint };\r\n\r\n\t\tfunction addClasses() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst {\r\n\t\t\t\tclassNames, params, rtl, $el,\r\n\t\t\t} = swiper;\r\n\t\t\tconst suffixes = [];\r\n\r\n\t\t\tsuffixes.push('initialized');\r\n\t\t\tsuffixes.push(params.direction);\r\n\r\n\t\t\tif (params.freeMode) {\r\n\t\t\t\tsuffixes.push('free-mode');\r\n\t\t\t}\r\n\t\t\tif (params.autoHeight) {\r\n\t\t\t\tsuffixes.push('autoheight');\r\n\t\t\t}\r\n\t\t\tif (rtl) {\r\n\t\t\t\tsuffixes.push('rtl');\r\n\t\t\t}\r\n\t\t\tif (params.slidesPerColumn > 1) {\r\n\t\t\t\tsuffixes.push('multirow');\r\n\t\t\t\tif (params.slidesPerColumnFill === 'column') {\r\n\t\t\t\t\tsuffixes.push('multirow-column');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (Device.android) {\r\n\t\t\t\tsuffixes.push('android');\r\n\t\t\t}\r\n\t\t\tif (Device.ios) {\r\n\t\t\t\tsuffixes.push('ios');\r\n\t\t\t}\r\n\r\n\t\t\tif (params.cssMode) {\r\n\t\t\t\tsuffixes.push('css-mode');\r\n\t\t\t}\r\n\r\n\t\t\tsuffixes.forEach((suffix) => {\r\n\t\t\t\tclassNames.push(params.containerModifierClass + suffix);\r\n\t\t\t});\r\n\r\n\t\t\t$el.addClass(classNames.join(' '));\r\n\t\t}\r\n\r\n\t\tfunction removeClasses() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst { $el, classNames } = swiper;\r\n\r\n\t\t\t$el.removeClass(classNames.join(' '));\r\n\t\t}\r\n\r\n\t\tvar classes = { addClasses, removeClasses };\r\n\r\n\t\tfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\r\n\t\t\tlet image;\r\n\t\t\tfunction onReady() {\r\n\t\t\t\tif (callback) callback();\r\n\t\t\t}\r\n\t\t\tconst isPicture = $(imageEl).parent('picture')[0];\r\n\r\n\t\t\tif (!isPicture && (!imageEl.complete || !checkForComplete)) {\r\n\t\t\t\tif (src) {\r\n\t\t\t\t\timage = new win.Image();\r\n\t\t\t\t\timage.onload = onReady;\r\n\t\t\t\t\timage.onerror = onReady;\r\n\t\t\t\t\tif (sizes) {\r\n\t\t\t\t\t\timage.sizes = sizes;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (srcset) {\r\n\t\t\t\t\t\timage.srcset = srcset;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (src) {\r\n\t\t\t\t\t\timage.src = src;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tonReady();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// image already loaded...\r\n\t\t\t\tonReady();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction preloadImages() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tswiper.imagesToLoad = swiper.$el.find('img');\r\n\t\t\tfunction onReady() {\r\n\t\t\t\tif (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\r\n\t\t\t\tif (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\r\n\t\t\t\tif (swiper.imagesLoaded === swiper.imagesToLoad.length) {\r\n\t\t\t\t\tif (swiper.params.updateOnImagesReady) swiper.update();\r\n\t\t\t\t\tswiper.emit('imagesReady');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\r\n\t\t\t\tconst imageEl = swiper.imagesToLoad[i];\r\n\t\t\t\tswiper.loadImage(\r\n\t\t\t\t\timageEl,\r\n\t\t\t\t\timageEl.currentSrc || imageEl.getAttribute('src'),\r\n\t\t\t\t\timageEl.srcset || imageEl.getAttribute('srcset'),\r\n\t\t\t\t\timageEl.sizes || imageEl.getAttribute('sizes'),\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tonReady\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar swiper_esm_bundle_images = {\r\n\t\t\tloadImage,\r\n\t\t\tpreloadImages,\r\n\t\t};\r\n\r\n\t\tfunction checkOverflow() {\r\n\t\t\tconst swiper = this;\r\n\t\t\tconst params = swiper.params;\r\n\t\t\tconst wasLocked = swiper.isLocked;\r\n\t\t\tconst lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\r\n\r\n\t\t\tif (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\r\n\t\t\t\tswiper.isLocked = lastSlidePosition <= swiper.size;\r\n\t\t\t} else {\r\n\t\t\t\tswiper.isLocked = swiper.snapGrid.length === 1;\r\n\t\t\t}\r\n\r\n\t\t\tswiper.allowSlideNext = !swiper.isLocked;\r\n\t\t\tswiper.allowSlidePrev = !swiper.isLocked;\r\n\r\n\t\t\t// events\r\n\t\t\tif (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n\r\n\t\t\tif (wasLocked && wasLocked !== swiper.isLocked) {\r\n\t\t\t\tswiper.isEnd = false;\r\n\t\t\t\tif (swiper.navigation) swiper.navigation.update();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar checkOverflow$1 = { checkOverflow };\r\n\r\n\t\tvar defaults = {\r\n\t\t\tinit: true,\r\n\t\t\tdirection: 'horizontal',\r\n\t\t\ttouchEventsTarget: 'container',\r\n\t\t\tinitialSlide: 0,\r\n\t\t\tspeed: 300,\r\n\t\t\tcssMode: false,\r\n\t\t\tupdateOnWindowResize: true,\r\n\t\t\t//\r\n\t\t\tpreventInteractionOnTransition: false,\r\n\r\n\t\t\t// To support iOS's swipe-to-go-back gesture (when being used in-app).\r\n\t\t\tedgeSwipeDetection: false,\r\n\t\t\tedgeSwipeThreshold: 20,\r\n\r\n\t\t\t// Free mode\r\n\t\t\tfreeMode: false,\r\n\t\t\tfreeModeMomentum: true,\r\n\t\t\tfreeModeMomentumRatio: 1,\r\n\t\t\tfreeModeMomentumBounce: true,\r\n\t\t\tfreeModeMomentumBounceRatio: 1,\r\n\t\t\tfreeModeMomentumVelocityRatio: 1,\r\n\t\t\tfreeModeSticky: false,\r\n\t\t\tfreeModeMinimumVelocity: 0.02,\r\n\r\n\t\t\t// Autoheight\r\n\t\t\tautoHeight: false,\r\n\r\n\t\t\t// Set wrapper width\r\n\t\t\tsetWrapperSize: false,\r\n\r\n\t\t\t// Virtual Translate\r\n\t\t\tvirtualTranslate: false,\r\n\r\n\t\t\t// Effects\r\n\t\t\teffect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\r\n\r\n\t\t\t// Breakpoints\r\n\t\t\tbreakpoints: undefined,\r\n\r\n\t\t\t// Slides grid\r\n\t\t\tspaceBetween: 0,\r\n\t\t\tslidesPerView: 1,\r\n\t\t\tslidesPerColumn: 1,\r\n\t\t\tslidesPerColumnFill: 'column',\r\n\t\t\tslidesPerGroup: 1,\r\n\t\t\tslidesPerGroupSkip: 0,\r\n\t\t\tcenteredSlides: false,\r\n\t\t\tcenteredSlidesBounds: false,\r\n\t\t\tslidesOffsetBefore: 0, // in px\r\n\t\t\tslidesOffsetAfter: 0, // in px\r\n\t\t\tnormalizeSlideIndex: true,\r\n\t\t\tcenterInsufficientSlides: false,\r\n\r\n\t\t\t// Disable swiper and hide navigation when container not overflow\r\n\t\t\twatchOverflow: false,\r\n\r\n\t\t\t// Round length\r\n\t\t\troundLengths: false,\r\n\r\n\t\t\t// Touches\r\n\t\t\ttouchRatio: 1,\r\n\t\t\ttouchAngle: 45,\r\n\t\t\tsimulateTouch: true,\r\n\t\t\tshortSwipes: true,\r\n\t\t\tlongSwipes: true,\r\n\t\t\tlongSwipesRatio: 0.5,\r\n\t\t\tlongSwipesMs: 300,\r\n\t\t\tfollowFinger: true,\r\n\t\t\tallowTouchMove: true,\r\n\t\t\tthreshold: 0,\r\n\t\t\ttouchMoveStopPropagation: false,\r\n\t\t\ttouchStartPreventDefault: true,\r\n\t\t\ttouchStartForcePreventDefault: false,\r\n\t\t\ttouchReleaseOnEdges: false,\r\n\r\n\t\t\t// Unique Navigation Elements\r\n\t\t\tuniqueNavElements: true,\r\n\r\n\t\t\t// Resistance\r\n\t\t\tresistance: true,\r\n\t\t\tresistanceRatio: 0.85,\r\n\r\n\t\t\t// Progress\r\n\t\t\twatchSlidesProgress: false,\r\n\t\t\twatchSlidesVisibility: false,\r\n\r\n\t\t\t// Cursor\r\n\t\t\tgrabCursor: false,\r\n\r\n\t\t\t// Clicks\r\n\t\t\tpreventClicks: true,\r\n\t\t\tpreventClicksPropagation: true,\r\n\t\t\tslideToClickedSlide: false,\r\n\r\n\t\t\t// Images\r\n\t\t\tpreloadImages: true,\r\n\t\t\tupdateOnImagesReady: true,\r\n\r\n\t\t\t// loop\r\n\t\t\tloop: false,\r\n\t\t\tloopAdditionalSlides: 0,\r\n\t\t\tloopedSlides: null,\r\n\t\t\tloopFillGroupWithBlank: false,\r\n\r\n\t\t\t// Swiping/no swiping\r\n\t\t\tallowSlidePrev: true,\r\n\t\t\tallowSlideNext: true,\r\n\t\t\tswipeHandler: null, // '.swipe-handler',\r\n\t\t\tnoSwiping: true,\r\n\t\t\tnoSwipingClass: 'swiper-no-swiping',\r\n\t\t\tnoSwipingSelector: null,\r\n\r\n\t\t\t// Passive Listeners\r\n\t\t\tpassiveListeners: true,\r\n\r\n\t\t\t// NS\r\n\t\t\tcontainerModifierClass: 'swiper-container-', // NEW\r\n\t\t\tslideClass: 'swiper-slide',\r\n\t\t\tslideBlankClass: 'swiper-slide-invisible-blank',\r\n\t\t\tslideActiveClass: 'swiper-slide-active',\r\n\t\t\tslideDuplicateActiveClass: 'swiper-slide-duplicate-active',\r\n\t\t\tslideVisibleClass: 'swiper-slide-visible',\r\n\t\t\tslideDuplicateClass: 'swiper-slide-duplicate',\r\n\t\t\tslideNextClass: 'swiper-slide-next',\r\n\t\t\tslideDuplicateNextClass: 'swiper-slide-duplicate-next',\r\n\t\t\tslidePrevClass: 'swiper-slide-prev',\r\n\t\t\tslideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\r\n\t\t\twrapperClass: 'swiper-wrapper',\r\n\r\n\t\t\t// Callbacks\r\n\t\t\trunCallbacksOnInit: true,\r\n\t\t};\r\n\r\n\t\t/* eslint no-param-reassign: \"off\" */\r\n\r\n\t\tconst prototypes = {\r\n\t\t\tupdate,\r\n\t\t\ttranslate,\r\n\t\t\ttransition: swiper_esm_bundle_transition,\r\n\t\t\tslide,\r\n\t\t\tloop,\r\n\t\t\tgrabCursor,\r\n\t\t\tmanipulation,\r\n\t\t\tevents: swiper_esm_bundle_events,\r\n\t\t\tbreakpoints,\r\n\t\t\tcheckOverflow: checkOverflow$1,\r\n\t\t\tclasses,\r\n\t\t\timages: swiper_esm_bundle_images,\r\n\t\t};\r\n\r\n\t\tconst extendedDefaults = {};\r\n\r\n\t\tclass Swiper extends SwiperClass {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tlet el;\r\n\t\t\t\tlet params;\r\n\t\t\t\tif (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\r\n\t\t\t\t\tparams = args[0];\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[el, params] = args;\r\n\t\t\t\t}\r\n\t\t\t\tif (!params) params = {};\r\n\r\n\t\t\t\tparams = Utils.extend({}, params);\r\n\t\t\t\tif (el && !params.el) params.el = el;\r\n\r\n\t\t\t\tsuper(params);\r\n\r\n\t\t\t\tObject.keys(prototypes).forEach((prototypeGroup) => {\r\n\t\t\t\t\tObject.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\r\n\t\t\t\t\t\tif (!Swiper.prototype[protoMethod]) {\r\n\t\t\t\t\t\t\tSwiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Swiper Instance\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (typeof swiper.modules === 'undefined') {\r\n\t\t\t\t\tswiper.modules = {};\r\n\t\t\t\t}\r\n\t\t\t\tObject.keys(swiper.modules).forEach((moduleName) => {\r\n\t\t\t\t\tconst module = swiper.modules[moduleName];\r\n\t\t\t\t\tif (module.params) {\r\n\t\t\t\t\t\tconst moduleParamName = Object.keys(module.params)[0];\r\n\t\t\t\t\t\tconst moduleParams = module.params[moduleParamName];\r\n\t\t\t\t\t\tif (typeof moduleParams !== 'object' || moduleParams === null) return;\r\n\t\t\t\t\t\tif (!(moduleParamName in params && 'enabled' in moduleParams)) return;\r\n\t\t\t\t\t\tif (params[moduleParamName] === true) {\r\n\t\t\t\t\t\t\tparams[moduleParamName] = { enabled: true };\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\ttypeof params[moduleParamName] === 'object'\r\n\t\t\t\t\t\t\t&& !('enabled' in params[moduleParamName])\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tparams[moduleParamName].enabled = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Extend defaults with modules params\r\n\t\t\t\tconst swiperParams = Utils.extend({}, defaults);\r\n\t\t\t\tswiper.useModulesParams(swiperParams);\r\n\r\n\t\t\t\t// Extend defaults with passed params\r\n\t\t\t\tswiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\r\n\t\t\t\tswiper.originalParams = Utils.extend({}, swiper.params);\r\n\t\t\t\tswiper.passedParams = Utils.extend({}, params);\r\n\r\n\t\t\t\t// Save Dom lib\r\n\t\t\t\tswiper.$ = $;\r\n\r\n\t\t\t\t// Find el\r\n\t\t\t\tconst $el = $(swiper.params.el);\r\n\t\t\t\tel = $el[0];\r\n\r\n\t\t\t\tif (!el) {\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($el.length > 1) {\r\n\t\t\t\t\tconst swipers = [];\r\n\t\t\t\t\t$el.each((index, containerEl) => {\r\n\t\t\t\t\t\tconst newParams = Utils.extend({}, params, { el: containerEl });\r\n\t\t\t\t\t\tswipers.push(new Swiper(newParams));\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn swipers;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tel.swiper = swiper;\r\n\t\t\t\t$el.data('swiper', swiper);\r\n\r\n\t\t\t\t// Find Wrapper\r\n\t\t\t\tlet $wrapperEl;\r\n\t\t\t\tif (el && el.shadowRoot && el.shadowRoot.querySelector) {\r\n\t\t\t\t\t$wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\r\n\t\t\t\t\t// Children needs to return slot items\r\n\t\t\t\t\t$wrapperEl.children = (options) => $el.children(options);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\r\n\t\t\t\t}\r\n\t\t\t\t// Extend Swiper\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\t$el,\r\n\t\t\t\t\tel,\r\n\t\t\t\t\t$wrapperEl,\r\n\t\t\t\t\twrapperEl: $wrapperEl[0],\r\n\r\n\t\t\t\t\t// Classes\r\n\t\t\t\t\tclassNames: [],\r\n\r\n\t\t\t\t\t// Slides\r\n\t\t\t\t\tslides: $(),\r\n\t\t\t\t\tslidesGrid: [],\r\n\t\t\t\t\tsnapGrid: [],\r\n\t\t\t\t\tslidesSizesGrid: [],\r\n\r\n\t\t\t\t\t// isDirection\r\n\t\t\t\t\tisHorizontal() {\r\n\t\t\t\t\t\treturn swiper.params.direction === 'horizontal';\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisVertical() {\r\n\t\t\t\t\t\treturn swiper.params.direction === 'vertical';\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// RTL\r\n\t\t\t\t\trtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n\t\t\t\t\trtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n\t\t\t\t\twrongRTL: $wrapperEl.css('display') === '-webkit-box',\r\n\r\n\t\t\t\t\t// Indexes\r\n\t\t\t\t\tactiveIndex: 0,\r\n\t\t\t\t\trealIndex: 0,\r\n\r\n\t\t\t\t\t//\r\n\t\t\t\t\tisBeginning: true,\r\n\t\t\t\t\tisEnd: false,\r\n\r\n\t\t\t\t\t// Props\r\n\t\t\t\t\ttranslate: 0,\r\n\t\t\t\t\tpreviousTranslate: 0,\r\n\t\t\t\t\tprogress: 0,\r\n\t\t\t\t\tvelocity: 0,\r\n\t\t\t\t\tanimating: false,\r\n\r\n\t\t\t\t\t// Locks\r\n\t\t\t\t\tallowSlideNext: swiper.params.allowSlideNext,\r\n\t\t\t\t\tallowSlidePrev: swiper.params.allowSlidePrev,\r\n\r\n\t\t\t\t\t// Touch Events\r\n\t\t\t\t\ttouchEvents: (function touchEvents() {\r\n\t\t\t\t\t\tconst touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\r\n\t\t\t\t\t\tlet desktop = ['mousedown', 'mousemove', 'mouseup'];\r\n\t\t\t\t\t\tif (Support.pointerEvents) {\r\n\t\t\t\t\t\t\tdesktop = ['pointerdown', 'pointermove', 'pointerup'];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tswiper.touchEventsTouch = {\r\n\t\t\t\t\t\t\tstart: touch[0],\r\n\t\t\t\t\t\t\tmove: touch[1],\r\n\t\t\t\t\t\t\tend: touch[2],\r\n\t\t\t\t\t\t\tcancel: touch[3],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tswiper.touchEventsDesktop = {\r\n\t\t\t\t\t\t\tstart: desktop[0],\r\n\t\t\t\t\t\t\tmove: desktop[1],\r\n\t\t\t\t\t\t\tend: desktop[2],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treturn Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\r\n\t\t\t\t\t}()),\r\n\t\t\t\t\ttouchEventsData: {\r\n\t\t\t\t\t\tisTouched: undefined,\r\n\t\t\t\t\t\tisMoved: undefined,\r\n\t\t\t\t\t\tallowTouchCallbacks: undefined,\r\n\t\t\t\t\t\ttouchStartTime: undefined,\r\n\t\t\t\t\t\tisScrolling: undefined,\r\n\t\t\t\t\t\tcurrentTranslate: undefined,\r\n\t\t\t\t\t\tstartTranslate: undefined,\r\n\t\t\t\t\t\tallowThresholdMove: undefined,\r\n\t\t\t\t\t\t// Form elements to match\r\n\t\t\t\t\t\tformElements: 'input, select, option, textarea, button, video, label',\r\n\t\t\t\t\t\t// Last click time\r\n\t\t\t\t\t\tlastClickTime: Utils.now(),\r\n\t\t\t\t\t\tclickTimeout: undefined,\r\n\t\t\t\t\t\t// Velocities\r\n\t\t\t\t\t\tvelocities: [],\r\n\t\t\t\t\t\tallowMomentumBounce: undefined,\r\n\t\t\t\t\t\tisTouchEvent: undefined,\r\n\t\t\t\t\t\tstartMoving: undefined,\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// Clicks\r\n\t\t\t\t\tallowClick: true,\r\n\r\n\t\t\t\t\t// Touches\r\n\t\t\t\t\tallowTouchMove: swiper.params.allowTouchMove,\r\n\r\n\t\t\t\t\ttouches: {\r\n\t\t\t\t\t\tstartX: 0,\r\n\t\t\t\t\t\tstartY: 0,\r\n\t\t\t\t\t\tcurrentX: 0,\r\n\t\t\t\t\t\tcurrentY: 0,\r\n\t\t\t\t\t\tdiff: 0,\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// Images\r\n\t\t\t\t\timagesToLoad: [],\r\n\t\t\t\t\timagesLoaded: 0,\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Install Modules\r\n\t\t\t\tswiper.useModules();\r\n\r\n\t\t\t\t// Init\r\n\t\t\t\tif (swiper.params.init) {\r\n\t\t\t\t\tswiper.init();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return app instance\r\n\t\t\t\treturn swiper;\r\n\t\t\t}\r\n\r\n\t\t\tslidesPerViewDynamic() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tparams, slides, slidesGrid, size: swiperSize, activeIndex,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tlet spv = 1;\r\n\t\t\t\tif (params.centeredSlides) {\r\n\t\t\t\t\tlet slideSize = slides[activeIndex].swiperSlideSize;\r\n\t\t\t\t\tlet breakLoop;\r\n\t\t\t\t\tfor (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n\t\t\t\t\t\tif (slides[i] && !breakLoop) {\r\n\t\t\t\t\t\t\tslideSize += slides[i].swiperSlideSize;\r\n\t\t\t\t\t\t\tspv += 1;\r\n\t\t\t\t\t\t\tif (slideSize > swiperSize) breakLoop = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (let i = activeIndex - 1; i >= 0; i -= 1) {\r\n\t\t\t\t\t\tif (slides[i] && !breakLoop) {\r\n\t\t\t\t\t\t\tslideSize += slides[i].swiperSlideSize;\r\n\t\t\t\t\t\t\tspv += 1;\r\n\t\t\t\t\t\t\tif (slideSize > swiperSize) breakLoop = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n\t\t\t\t\t\tif (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\r\n\t\t\t\t\t\t\tspv += 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn spv;\r\n\t\t\t}\r\n\r\n\t\t\tupdate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\tconst { snapGrid, params } = swiper;\r\n\t\t\t\t// Breakpoints\r\n\t\t\t\tif (params.breakpoints) {\r\n\t\t\t\t\tswiper.setBreakpoint();\r\n\t\t\t\t}\r\n\t\t\t\tswiper.updateSize();\r\n\t\t\t\tswiper.updateSlides();\r\n\t\t\t\tswiper.updateProgress();\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\r\n\t\t\t\tfunction setTranslate() {\r\n\t\t\t\t\tconst translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\r\n\t\t\t\t\tconst newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\r\n\t\t\t\t\tswiper.setTranslate(newTranslate);\r\n\t\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\t}\r\n\t\t\t\tlet translated;\r\n\t\t\t\tif (swiper.params.freeMode) {\r\n\t\t\t\t\tsetTranslate();\r\n\t\t\t\t\tif (swiper.params.autoHeight) {\r\n\t\t\t\t\t\tswiper.updateAutoHeight();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\r\n\t\t\t\t\t\ttranslated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttranslated = swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!translated) {\r\n\t\t\t\t\t\tsetTranslate();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n\t\t\t\t\tswiper.checkOverflow();\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('update');\r\n\t\t\t}\r\n\r\n\t\t\tchangeDirection(newDirection, needUpdate = true) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst currentDirection = swiper.params.direction;\r\n\t\t\t\tif (!newDirection) {\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tnewDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\r\n\t\t\t\t}\r\n\t\t\t\tif ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\r\n\t\t\t\t\treturn swiper;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswiper.$el\r\n\t\t\t\t\t.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\r\n\t\t\t\t\t.addClass(`${swiper.params.containerModifierClass}${newDirection}`);\r\n\r\n\t\t\t\tswiper.params.direction = newDirection;\r\n\r\n\t\t\t\tswiper.slides.each((slideIndex, slideEl) => {\r\n\t\t\t\t\tif (newDirection === 'vertical') {\r\n\t\t\t\t\t\tslideEl.style.width = '';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tslideEl.style.height = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tswiper.emit('changeDirection');\r\n\t\t\t\tif (needUpdate) swiper.update();\r\n\r\n\t\t\t\treturn swiper;\r\n\t\t\t}\r\n\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (swiper.initialized) return;\r\n\r\n\t\t\t\tswiper.emit('beforeInit');\r\n\r\n\t\t\t\t// Set breakpoint\r\n\t\t\t\tif (swiper.params.breakpoints) {\r\n\t\t\t\t\tswiper.setBreakpoint();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Add Classes\r\n\t\t\t\tswiper.addClasses();\r\n\r\n\t\t\t\t// Create loop\r\n\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\tswiper.loopCreate();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update size\r\n\t\t\t\tswiper.updateSize();\r\n\r\n\t\t\t\t// Update slides\r\n\t\t\t\tswiper.updateSlides();\r\n\r\n\t\t\t\tif (swiper.params.watchOverflow) {\r\n\t\t\t\t\tswiper.checkOverflow();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set Grab Cursor\r\n\t\t\t\tif (swiper.params.grabCursor) {\r\n\t\t\t\t\tswiper.setGrabCursor();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (swiper.params.preloadImages) {\r\n\t\t\t\t\tswiper.preloadImages();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Slide To Initial Slide\r\n\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\tswiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attach events\r\n\t\t\t\tswiper.attachEvents();\r\n\r\n\t\t\t\t// Init Flag\r\n\t\t\t\tswiper.initialized = true;\r\n\r\n\t\t\t\t// Emit\r\n\t\t\t\tswiper.emit('init');\r\n\t\t\t}\r\n\r\n\t\t\tdestroy(deleteInstance = true, cleanStyles = true) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tparams, $el, $wrapperEl, slides,\r\n\t\t\t\t} = swiper;\r\n\r\n\t\t\t\tif (typeof swiper.params === 'undefined' || swiper.destroyed) {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswiper.emit('beforeDestroy');\r\n\r\n\t\t\t\t// Init Flag\r\n\t\t\t\tswiper.initialized = false;\r\n\r\n\t\t\t\t// Detach events\r\n\t\t\t\tswiper.detachEvents();\r\n\r\n\t\t\t\t// Destroy loop\r\n\t\t\t\tif (params.loop) {\r\n\t\t\t\t\tswiper.loopDestroy();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Cleanup styles\r\n\t\t\t\tif (cleanStyles) {\r\n\t\t\t\t\tswiper.removeClasses();\r\n\t\t\t\t\t$el.removeAttr('style');\r\n\t\t\t\t\t$wrapperEl.removeAttr('style');\r\n\t\t\t\t\tif (slides && slides.length) {\r\n\t\t\t\t\t\tslides\r\n\t\t\t\t\t\t\t.removeClass([\r\n\t\t\t\t\t\t\t\tparams.slideVisibleClass,\r\n\t\t\t\t\t\t\t\tparams.slideActiveClass,\r\n\t\t\t\t\t\t\t\tparams.slideNextClass,\r\n\t\t\t\t\t\t\t\tparams.slidePrevClass,\r\n\t\t\t\t\t\t\t].join(' '))\r\n\t\t\t\t\t\t\t.removeAttr('style')\r\n\t\t\t\t\t\t\t.removeAttr('data-swiper-slide-index');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tswiper.emit('destroy');\r\n\r\n\t\t\t\t// Detach emitter events\r\n\t\t\t\tObject.keys(swiper.eventsListeners).forEach((eventName) => {\r\n\t\t\t\t\tswiper.off(eventName);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (deleteInstance !== false) {\r\n\t\t\t\t\tswiper.$el[0].swiper = null;\r\n\t\t\t\t\tswiper.$el.data('swiper', null);\r\n\t\t\t\t\tUtils.deleteProps(swiper);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.destroyed = true;\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tstatic extendDefaults(newDefaults) {\r\n\t\t\t\tUtils.extend(extendedDefaults, newDefaults);\r\n\t\t\t}\r\n\r\n\t\t\tstatic get extendedDefaults() {\r\n\t\t\t\treturn extendedDefaults;\r\n\t\t\t}\r\n\r\n\t\t\tstatic get defaults() {\r\n\t\t\t\treturn defaults;\r\n\t\t\t}\r\n\r\n\t\t\tstatic get Class() {\r\n\t\t\t\treturn SwiperClass;\r\n\t\t\t}\r\n\r\n\t\t\tstatic get $() {\r\n\t\t\t\treturn $;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar Device$1 = {\r\n\t\t\tname: 'device',\r\n\t\t\tproto: {\r\n\t\t\t\tdevice: Device,\r\n\t\t\t},\r\n\t\t\tstatic: {\r\n\t\t\t\tdevice: Device,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Support$1 = {\r\n\t\t\tname: 'support',\r\n\t\t\tproto: {\r\n\t\t\t\tsupport: Support,\r\n\t\t\t},\r\n\t\t\tstatic: {\r\n\t\t\t\tsupport: Support,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Browser = (function Browser() {\r\n\t\t\tfunction isSafari() {\r\n\t\t\t\tconst ua = win.navigator.userAgent.toLowerCase();\r\n\t\t\t\treturn (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tisEdge: !!win.navigator.userAgent.match(/Edge/g),\r\n\t\t\t\tisSafari: isSafari(),\r\n\t\t\t\tisWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\r\n\t\t\t};\r\n\t\t}());\r\n\r\n\t\tvar Browser$1 = {\r\n\t\t\tname: 'browser',\r\n\t\t\tproto: {\r\n\t\t\t\tbrowser: Browser,\r\n\t\t\t},\r\n\t\t\tstatic: {\r\n\t\t\t\tbrowser: Browser,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Resize = {\r\n\t\t\tname: 'resize',\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tresize: {\r\n\t\t\t\t\t\tresizeHandler() {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n\t\t\t\t\t\t\tswiper.emit('beforeResize');\r\n\t\t\t\t\t\t\tswiper.emit('resize');\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\torientationChangeHandler() {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n\t\t\t\t\t\t\tswiper.emit('orientationchange');\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\t// Emit resize\r\n\t\t\t\t\twin.addEventListener('resize', swiper.resize.resizeHandler);\r\n\r\n\t\t\t\t\t// Emit orientationchange\r\n\t\t\t\t\twin.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\twin.removeEventListener('resize', swiper.resize.resizeHandler);\r\n\t\t\t\t\twin.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst swiper_esm_bundle_Observer = {\r\n\t\t\tfunc: win.MutationObserver || win.WebkitMutationObserver,\r\n\t\t\tattach(target, options = {}) {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tconst ObserverFunc = swiper_esm_bundle_Observer.func;\r\n\t\t\t\tconst observer = new ObserverFunc((mutations) => {\r\n\t\t\t\t\t// The observerUpdate event should only be triggered\r\n\t\t\t\t\t// once despite the number of mutations.  Additional\r\n\t\t\t\t\t// triggers are redundant and are very costly\r\n\t\t\t\t\tif (mutations.length === 1) {\r\n\t\t\t\t\t\tswiper.emit('observerUpdate', mutations[0]);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst observerUpdate = function observerUpdate() {\r\n\t\t\t\t\t\tswiper.emit('observerUpdate', mutations[0]);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (win.requestAnimationFrame) {\r\n\t\t\t\t\t\twin.requestAnimationFrame(observerUpdate);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\twin.setTimeout(observerUpdate, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tobserver.observe(target, {\r\n\t\t\t\t\tattributes: typeof options.attributes === 'undefined' ? true : options.attributes,\r\n\t\t\t\t\tchildList: typeof options.childList === 'undefined' ? true : options.childList,\r\n\t\t\t\t\tcharacterData: typeof options.characterData === 'undefined' ? true : options.characterData,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tswiper.observer.observers.push(observer);\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!Support.observer || !swiper.params.observer) return;\r\n\t\t\t\tif (swiper.params.observeParents) {\r\n\t\t\t\t\tconst containerParents = swiper.$el.parents();\r\n\t\t\t\t\tfor (let i = 0; i < containerParents.length; i += 1) {\r\n\t\t\t\t\t\tswiper.observer.attach(containerParents[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// Observe container\r\n\t\t\t\tswiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\r\n\r\n\t\t\t\t// Observe wrapper\r\n\t\t\t\tswiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.observer.observers.forEach((observer) => {\r\n\t\t\t\t\tobserver.disconnect();\r\n\t\t\t\t});\r\n\t\t\t\tswiper.observer.observers = [];\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Observer$1 = {\r\n\t\t\tname: 'observer',\r\n\t\t\tparams: {\r\n\t\t\t\tobserver: false,\r\n\t\t\t\tobserveParents: false,\r\n\t\t\t\tobserveSlideChildren: false,\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tobserver: {\r\n\t\t\t\t\t\tinit: swiper_esm_bundle_Observer.init.bind(swiper),\r\n\t\t\t\t\t\tattach: swiper_esm_bundle_Observer.attach.bind(swiper),\r\n\t\t\t\t\t\tdestroy: swiper_esm_bundle_Observer.destroy.bind(swiper),\r\n\t\t\t\t\t\tobservers: [],\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.observer.init();\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.observer.destroy();\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Virtual = {\r\n\t\t\tupdate(force) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\r\n\t\t\t\tconst { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tfrom: previousFrom,\r\n\t\t\t\t\tto: previousTo,\r\n\t\t\t\t\tslides,\r\n\t\t\t\t\tslidesGrid: previousSlidesGrid,\r\n\t\t\t\t\trenderSlide,\r\n\t\t\t\t\toffset: previousOffset,\r\n\t\t\t\t} = swiper.virtual;\r\n\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\tconst activeIndex = swiper.activeIndex || 0;\r\n\r\n\t\t\t\tlet offsetProp;\r\n\t\t\t\tif (swiper.rtlTranslate) offsetProp = 'right';\r\n\t\t\t\telse offsetProp = swiper.isHorizontal() ? 'left' : 'top';\r\n\r\n\t\t\t\tlet slidesAfter;\r\n\t\t\t\tlet slidesBefore;\r\n\t\t\t\tif (centeredSlides) {\r\n\t\t\t\t\tslidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\r\n\t\t\t\t\tslidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tslidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\r\n\t\t\t\t\tslidesBefore = slidesPerGroup + addSlidesAfter;\r\n\t\t\t\t}\r\n\t\t\t\tconst from = Math.max((activeIndex || 0) - slidesBefore, 0);\r\n\t\t\t\tconst to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\r\n\t\t\t\tconst offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\r\n\r\n\t\t\t\tUtils.extend(swiper.virtual, {\r\n\t\t\t\t\tfrom,\r\n\t\t\t\t\tto,\r\n\t\t\t\t\toffset,\r\n\t\t\t\t\tslidesGrid: swiper.slidesGrid,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfunction onRendered() {\r\n\t\t\t\t\tswiper.updateSlides();\r\n\t\t\t\t\tswiper.updateProgress();\r\n\t\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\t\tif (swiper.lazy && swiper.params.lazy.enabled) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (previousFrom === from && previousTo === to && !force) {\r\n\t\t\t\t\tif (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\r\n\t\t\t\t\t\tswiper.slides.css(offsetProp, `${offset}px`);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tswiper.updateProgress();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.virtual.renderExternal) {\r\n\t\t\t\t\tswiper.params.virtual.renderExternal.call(swiper, {\r\n\t\t\t\t\t\toffset,\r\n\t\t\t\t\t\tfrom,\r\n\t\t\t\t\t\tto,\r\n\t\t\t\t\t\tslides: (function getSlides() {\r\n\t\t\t\t\t\t\tconst slidesToRender = [];\r\n\t\t\t\t\t\t\tfor (let i = from; i <= to; i += 1) {\r\n\t\t\t\t\t\t\t\tslidesToRender.push(slides[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn slidesToRender;\r\n\t\t\t\t\t\t}()),\r\n\t\t\t\t\t});\r\n\t\t\t\t\tonRendered();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst prependIndexes = [];\r\n\t\t\t\tconst appendIndexes = [];\r\n\t\t\t\tif (force) {\r\n\t\t\t\t\tswiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (let i = previousFrom; i <= previousTo; i += 1) {\r\n\t\t\t\t\t\tif (i < from || i > to) {\r\n\t\t\t\t\t\t\tswiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tif (i >= from && i <= to) {\r\n\t\t\t\t\t\tif (typeof previousTo === 'undefined' || force) {\r\n\t\t\t\t\t\t\tappendIndexes.push(i);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (i > previousTo) appendIndexes.push(i);\r\n\t\t\t\t\t\t\tif (i < previousFrom) prependIndexes.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tappendIndexes.forEach((index) => {\r\n\t\t\t\t\tswiper.$wrapperEl.append(renderSlide(slides[index], index));\r\n\t\t\t\t});\r\n\t\t\t\tprependIndexes.sort((a, b) => b - a).forEach((index) => {\r\n\t\t\t\t\tswiper.$wrapperEl.prepend(renderSlide(slides[index], index));\r\n\t\t\t\t});\r\n\t\t\t\tswiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\r\n\t\t\t\tonRendered();\r\n\t\t\t},\r\n\t\t\trenderSlide(slide, index) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.virtual;\r\n\t\t\t\tif (params.cache && swiper.virtual.cache[index]) {\r\n\t\t\t\t\treturn swiper.virtual.cache[index];\r\n\t\t\t\t}\r\n\t\t\t\tconst $slideEl = params.renderSlide\r\n\t\t\t\t\t? $(params.renderSlide.call(swiper, slide, index))\r\n\t\t\t\t\t: $(`<div class=\"${swiper.params.slideClass}\" data-swiper-slide-index=\"${index}\">${slide}</div>`);\r\n\t\t\t\tif (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\r\n\t\t\t\tif (params.cache) swiper.virtual.cache[index] = $slideEl;\r\n\t\t\t\treturn $slideEl;\r\n\t\t\t},\r\n\t\t\tappendSlide(slides) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (typeof slides === 'object' && 'length' in slides) {\r\n\t\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\t\tif (slides[i]) swiper.virtual.slides.push(slides[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.virtual.slides.push(slides);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.virtual.update(true);\r\n\t\t\t},\r\n\t\t\tprependSlide(slides) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst activeIndex = swiper.activeIndex;\r\n\t\t\t\tlet newActiveIndex = activeIndex + 1;\r\n\t\t\t\tlet numberOfNewSlides = 1;\r\n\r\n\t\t\t\tif (Array.isArray(slides)) {\r\n\t\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\t\tif (slides[i]) swiper.virtual.slides.unshift(slides[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewActiveIndex = activeIndex + slides.length;\r\n\t\t\t\t\tnumberOfNewSlides = slides.length;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.virtual.slides.unshift(slides);\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.virtual.cache) {\r\n\t\t\t\t\tconst cache = swiper.virtual.cache;\r\n\t\t\t\t\tconst newCache = {};\r\n\t\t\t\t\tObject.keys(cache).forEach((cachedIndex) => {\r\n\t\t\t\t\t\tconst $cachedEl = cache[cachedIndex];\r\n\t\t\t\t\t\tconst cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\r\n\t\t\t\t\t\tif (cachedElIndex) {\r\n\t\t\t\t\t\t\t$cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tswiper.virtual.cache = newCache;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.virtual.update(true);\r\n\t\t\t\tswiper.slideTo(newActiveIndex, 0);\r\n\t\t\t},\r\n\t\t\tremoveSlide(slidesIndexes) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\r\n\t\t\t\tlet activeIndex = swiper.activeIndex;\r\n\t\t\t\tif (Array.isArray(slidesIndexes)) {\r\n\t\t\t\t\tfor (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\r\n\t\t\t\t\t\tswiper.virtual.slides.splice(slidesIndexes[i], 1);\r\n\t\t\t\t\t\tif (swiper.params.virtual.cache) {\r\n\t\t\t\t\t\t\tdelete swiper.virtual.cache[slidesIndexes[i]];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (slidesIndexes[i] < activeIndex) activeIndex -= 1;\r\n\t\t\t\t\t\tactiveIndex = Math.max(activeIndex, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.virtual.slides.splice(slidesIndexes, 1);\r\n\t\t\t\t\tif (swiper.params.virtual.cache) {\r\n\t\t\t\t\t\tdelete swiper.virtual.cache[slidesIndexes];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (slidesIndexes < activeIndex) activeIndex -= 1;\r\n\t\t\t\t\tactiveIndex = Math.max(activeIndex, 0);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.virtual.update(true);\r\n\t\t\t\tswiper.slideTo(activeIndex, 0);\r\n\t\t\t},\r\n\t\t\tremoveAllSlides() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.virtual.slides = [];\r\n\t\t\t\tif (swiper.params.virtual.cache) {\r\n\t\t\t\t\tswiper.virtual.cache = {};\r\n\t\t\t\t}\r\n\t\t\t\tswiper.virtual.update(true);\r\n\t\t\t\tswiper.slideTo(0, 0);\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Virtual$1 = {\r\n\t\t\tname: 'virtual',\r\n\t\t\tparams: {\r\n\t\t\t\tvirtual: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tslides: [],\r\n\t\t\t\t\tcache: true,\r\n\t\t\t\t\trenderSlide: null,\r\n\t\t\t\t\trenderExternal: null,\r\n\t\t\t\t\taddSlidesBefore: 0,\r\n\t\t\t\t\taddSlidesAfter: 0,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tvirtual: {\r\n\t\t\t\t\t\tupdate: Virtual.update.bind(swiper),\r\n\t\t\t\t\t\tappendSlide: Virtual.appendSlide.bind(swiper),\r\n\t\t\t\t\t\tprependSlide: Virtual.prependSlide.bind(swiper),\r\n\t\t\t\t\t\tremoveSlide: Virtual.removeSlide.bind(swiper),\r\n\t\t\t\t\t\tremoveAllSlides: Virtual.removeAllSlides.bind(swiper),\r\n\t\t\t\t\t\trenderSlide: Virtual.renderSlide.bind(swiper),\r\n\t\t\t\t\t\tslides: swiper.params.virtual.slides,\r\n\t\t\t\t\t\tcache: {},\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.virtual.enabled) return;\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\r\n\t\t\t\t\tconst overwriteParams = {\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tUtils.extend(swiper.params, overwriteParams);\r\n\t\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\r\n\r\n\t\t\t\t\tif (!swiper.params.initialSlide) {\r\n\t\t\t\t\t\tswiper.virtual.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.virtual.enabled) return;\r\n\t\t\t\t\tswiper.virtual.update();\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Keyboard = {\r\n\t\t\thandle(event) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { rtlTranslate: rtl } = swiper;\r\n\t\t\t\tlet e = event;\r\n\t\t\t\tif (e.originalEvent) e = e.originalEvent; // jquery fix\r\n\t\t\t\tconst kc = e.keyCode || e.charCode;\r\n\t\t\t\tconst pageUpDown = swiper.params.keyboard.pageUpDown;\r\n\t\t\t\tconst isPageUp = pageUpDown && kc === 33;\r\n\t\t\t\tconst isPageDown = pageUpDown && kc === 34;\r\n\t\t\t\tconst isArrowLeft = kc === 37;\r\n\t\t\t\tconst isArrowRight = kc === 39;\r\n\t\t\t\tconst isArrowUp = kc === 38;\r\n\t\t\t\tconst isArrowDown = kc === 40;\r\n\t\t\t\t// Directions locks\r\n\t\t\t\tif (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\r\n\t\t\t\t\tlet inView = false;\r\n\t\t\t\t\t// Check that swiper should be inside of visible area of window\r\n\t\t\t\t\tif (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\r\n\t\t\t\t\t\treturn undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst windowWidth = win.innerWidth;\r\n\t\t\t\t\tconst windowHeight = win.innerHeight;\r\n\t\t\t\t\tconst swiperOffset = swiper.$el.offset();\r\n\t\t\t\t\tif (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n\t\t\t\t\tconst swiperCoord = [\r\n\t\t\t\t\t\t[swiperOffset.left, swiperOffset.top],\r\n\t\t\t\t\t\t[swiperOffset.left + swiper.width, swiperOffset.top],\r\n\t\t\t\t\t\t[swiperOffset.left, swiperOffset.top + swiper.height],\r\n\t\t\t\t\t\t[swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\r\n\t\t\t\t\t];\r\n\t\t\t\t\tfor (let i = 0; i < swiperCoord.length; i += 1) {\r\n\t\t\t\t\t\tconst point = swiperCoord[i];\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tpoint[0] >= 0 && point[0] <= windowWidth\r\n\t\t\t\t\t\t\t&& point[1] >= 0 && point[1] <= windowHeight\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tinView = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!inView) return undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\tif (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\r\n\t\t\t\t\t\tif (e.preventDefault) e.preventDefault();\r\n\t\t\t\t\t\telse e.returnValue = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) swiper.slideNext();\r\n\t\t\t\t\tif (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) swiper.slidePrev();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (isPageUp || isPageDown || isArrowUp || isArrowDown) {\r\n\t\t\t\t\t\tif (e.preventDefault) e.preventDefault();\r\n\t\t\t\t\t\telse e.returnValue = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isPageDown || isArrowDown) swiper.slideNext();\r\n\t\t\t\t\tif (isPageUp || isArrowUp) swiper.slidePrev();\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('keyPress', kc);\r\n\t\t\t\treturn undefined;\r\n\t\t\t},\r\n\t\t\tenable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (swiper.keyboard.enabled) return;\r\n\t\t\t\t$(doc).on('keydown', swiper.keyboard.handle);\r\n\t\t\t\tswiper.keyboard.enabled = true;\r\n\t\t\t},\r\n\t\t\tdisable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.keyboard.enabled) return;\r\n\t\t\t\t$(doc).off('keydown', swiper.keyboard.handle);\r\n\t\t\t\tswiper.keyboard.enabled = false;\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Keyboard$1 = {\r\n\t\t\tname: 'keyboard',\r\n\t\t\tparams: {\r\n\t\t\t\tkeyboard: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tonlyInViewport: true,\r\n\t\t\t\t\tpageUpDown: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tkeyboard: {\r\n\t\t\t\t\t\tenabled: false,\r\n\t\t\t\t\t\tenable: Keyboard.enable.bind(swiper),\r\n\t\t\t\t\t\tdisable: Keyboard.disable.bind(swiper),\r\n\t\t\t\t\t\thandle: Keyboard.handle.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.keyboard.enabled) {\r\n\t\t\t\t\t\tswiper.keyboard.enable();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.keyboard.enabled) {\r\n\t\t\t\t\t\tswiper.keyboard.disable();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tfunction isEventSupported() {\r\n\t\t\tconst eventName = 'onwheel';\r\n\t\t\tlet isSupported = eventName in doc;\r\n\r\n\t\t\tif (!isSupported) {\r\n\t\t\t\tconst element = doc.createElement('div');\r\n\t\t\t\telement.setAttribute(eventName, 'return;');\r\n\t\t\t\tisSupported = typeof element[eventName] === 'function';\r\n\t\t\t}\r\n\r\n\t\t\tif (!isSupported\r\n\t\t\t\t&& doc.implementation\r\n\t\t\t\t&& doc.implementation.hasFeature\r\n\t\t\t\t// always returns true in newer browsers as per the standard.\r\n\t\t\t\t// @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\r\n\t\t\t\t&& doc.implementation.hasFeature('', '') !== true\r\n\t\t\t) {\r\n\t\t\t\t// This is the only way to test support for the `wheel` event in IE9+.\r\n\t\t\t\tisSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\r\n\t\t\t}\r\n\r\n\t\t\treturn isSupported;\r\n\t\t}\r\n\t\tconst Mousewheel = {\r\n\t\t\tlastScrollTime: Utils.now(),\r\n\t\t\tlastEventBeforeSnap: undefined,\r\n\t\t\trecentWheelEvents: [],\r\n\t\t\tevent() {\r\n\t\t\t\tif (win.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\r\n\t\t\t\treturn isEventSupported() ? 'wheel' : 'mousewheel';\r\n\t\t\t},\r\n\t\t\tnormalize(e) {\r\n\t\t\t\t// Reasonable defaults\r\n\t\t\t\tconst PIXEL_STEP = 10;\r\n\t\t\t\tconst LINE_HEIGHT = 40;\r\n\t\t\t\tconst PAGE_HEIGHT = 800;\r\n\r\n\t\t\t\tlet sX = 0;\r\n\t\t\t\tlet sY = 0; // spinX, spinY\r\n\t\t\t\tlet pX = 0;\r\n\t\t\t\tlet pY = 0; // pixelX, pixelY\r\n\r\n\t\t\t\t// Legacy\r\n\t\t\t\tif ('detail' in e) {\r\n\t\t\t\t\tsY = e.detail;\r\n\t\t\t\t}\r\n\t\t\t\tif ('wheelDelta' in e) {\r\n\t\t\t\t\tsY = -e.wheelDelta / 120;\r\n\t\t\t\t}\r\n\t\t\t\tif ('wheelDeltaY' in e) {\r\n\t\t\t\t\tsY = -e.wheelDeltaY / 120;\r\n\t\t\t\t}\r\n\t\t\t\tif ('wheelDeltaX' in e) {\r\n\t\t\t\t\tsX = -e.wheelDeltaX / 120;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// side scrolling on FF with DOMMouseScroll\r\n\t\t\t\tif ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\r\n\t\t\t\t\tsX = sY;\r\n\t\t\t\t\tsY = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpX = sX * PIXEL_STEP;\r\n\t\t\t\tpY = sY * PIXEL_STEP;\r\n\r\n\t\t\t\tif ('deltaY' in e) {\r\n\t\t\t\t\tpY = e.deltaY;\r\n\t\t\t\t}\r\n\t\t\t\tif ('deltaX' in e) {\r\n\t\t\t\t\tpX = e.deltaX;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\r\n\t\t\t\t\tpX = pY;\r\n\t\t\t\t\tpY = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ((pX || pY) && e.deltaMode) {\r\n\t\t\t\t\tif (e.deltaMode === 1) { // delta in LINE units\r\n\t\t\t\t\t\tpX *= LINE_HEIGHT;\r\n\t\t\t\t\t\tpY *= LINE_HEIGHT;\r\n\t\t\t\t\t} else { // delta in PAGE units\r\n\t\t\t\t\t\tpX *= PAGE_HEIGHT;\r\n\t\t\t\t\t\tpY *= PAGE_HEIGHT;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Fall-back if spin cannot be determined\r\n\t\t\t\tif (pX && !sX) {\r\n\t\t\t\t\tsX = (pX < 1) ? -1 : 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (pY && !sY) {\r\n\t\t\t\t\tsY = (pY < 1) ? -1 : 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tspinX: sX,\r\n\t\t\t\t\tspinY: sY,\r\n\t\t\t\t\tpixelX: pX,\r\n\t\t\t\t\tpixelY: pY,\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\thandleMouseEnter() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.mouseEntered = true;\r\n\t\t\t},\r\n\t\t\thandleMouseLeave() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.mouseEntered = false;\r\n\t\t\t},\r\n\t\t\thandle(event) {\r\n\t\t\t\tlet e = event;\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.mousewheel;\r\n\r\n\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet target = swiper.$el;\r\n\t\t\t\tif (swiper.params.mousewheel.eventsTarged !== 'container') {\r\n\t\t\t\t\ttarget = $(swiper.params.mousewheel.eventsTarged);\r\n\t\t\t\t}\r\n\t\t\t\tif (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\r\n\r\n\t\t\t\tif (e.originalEvent) e = e.originalEvent; // jquery fix\r\n\t\t\t\tlet delta = 0;\r\n\t\t\t\tconst rtlFactor = swiper.rtlTranslate ? -1 : 1;\r\n\r\n\t\t\t\tconst data = Mousewheel.normalize(e);\r\n\r\n\t\t\t\tif (params.forceToAxis) {\r\n\t\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\t\tif (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\r\n\t\t\t\t\t\telse return true;\r\n\t\t\t\t\t} else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\r\n\t\t\t\t\telse return true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdelta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (delta === 0) return true;\r\n\r\n\t\t\t\tif (params.invert) delta = -delta;\r\n\r\n\t\t\t\tif (!swiper.params.freeMode) {\r\n\t\t\t\t\t// Register the new event in a variable which stores the relevant data\r\n\t\t\t\t\tconst newEvent = {\r\n\t\t\t\t\t\ttime: Utils.now(),\r\n\t\t\t\t\t\tdelta: Math.abs(delta),\r\n\t\t\t\t\t\tdirection: Math.sign(delta),\r\n\t\t\t\t\t\traw: event,\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Keep the most recent events\r\n\t\t\t\t\tconst recentWheelEvents = swiper.mousewheel.recentWheelEvents;\r\n\t\t\t\t\tif (recentWheelEvents.length >= 2) {\r\n\t\t\t\t\t\trecentWheelEvents.shift(); // only store the last N events\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\r\n\t\t\t\t\trecentWheelEvents.push(newEvent);\r\n\r\n\t\t\t\t\t// If there is at least one previous recorded event:\r\n\t\t\t\t\t//   If direction has changed or\r\n\t\t\t\t\t//   if the scroll is quicker than the previous one:\r\n\t\t\t\t\t//     Animate the slider.\r\n\t\t\t\t\t// Else (this is the first time the wheel is moved):\r\n\t\t\t\t\t//     Animate the slider.\r\n\t\t\t\t\tif (prevEvent) {\r\n\t\t\t\t\t\tif (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\r\n\t\t\t\t\t\t\tswiper.mousewheel.animateSlider(newEvent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.mousewheel.animateSlider(newEvent);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If it's time to release the scroll:\r\n\t\t\t\t\t//   Return now so you don't hit the preventDefault.\r\n\t\t\t\t\tif (swiper.mousewheel.releaseScroll(newEvent)) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Freemode or scrollContainer:\r\n\r\n\t\t\t\t\t// If we recently snapped after a momentum scroll, then ignore wheel events\r\n\t\t\t\t\t// to give time for the deceleration to finish. Stop ignoring after 500 msecs\r\n\t\t\t\t\t// or if it's a new scroll (larger delta or inverse sign as last event before\r\n\t\t\t\t\t// an end-of-momentum snap).\r\n\t\t\t\t\tconst newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\r\n\t\t\t\t\tconst { lastEventBeforeSnap } = swiper.mousewheel;\r\n\t\t\t\t\tconst ignoreWheelEvents = lastEventBeforeSnap\r\n\t\t\t\t\t\t&& newEvent.time < lastEventBeforeSnap.time + 500\r\n\t\t\t\t\t\t&& newEvent.delta <= lastEventBeforeSnap.delta\r\n\t\t\t\t\t\t&& newEvent.direction === lastEventBeforeSnap.direction;\r\n\t\t\t\t\tif (!ignoreWheelEvents) {\r\n\t\t\t\t\t\tswiper.mousewheel.lastEventBeforeSnap = undefined;\r\n\r\n\t\t\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlet position = swiper.getTranslate() + (delta * params.sensitivity);\r\n\t\t\t\t\t\tconst wasBeginning = swiper.isBeginning;\r\n\t\t\t\t\t\tconst wasEnd = swiper.isEnd;\r\n\r\n\t\t\t\t\t\tif (position >= swiper.minTranslate()) position = swiper.minTranslate();\r\n\t\t\t\t\t\tif (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\r\n\r\n\t\t\t\t\t\tswiper.setTransition(0);\r\n\t\t\t\t\t\tswiper.setTranslate(position);\r\n\t\t\t\t\t\tswiper.updateProgress();\r\n\t\t\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\t\t\tswiper.updateSlidesClasses();\r\n\r\n\t\t\t\t\t\tif ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\r\n\t\t\t\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (swiper.params.freeModeSticky) {\r\n\t\t\t\t\t\t\t// When wheel scrolling starts with sticky (aka snap) enabled, then detect\r\n\t\t\t\t\t\t\t// the end of a momentum scroll by storing recent (N=15?) wheel events.\r\n\t\t\t\t\t\t\t// 1. do all N events have decreasing or same (absolute value) delta?\r\n\t\t\t\t\t\t\t// 2. did all N events arrive in the last M (M=500?) msecs?\r\n\t\t\t\t\t\t\t// 3. does the earliest event have an (absolute value) delta that's\r\n\t\t\t\t\t\t\t//    at least P (P=1?) larger than the most recent event's delta?\r\n\t\t\t\t\t\t\t// 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\r\n\t\t\t\t\t\t\t// If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\r\n\t\t\t\t\t\t\t// Snap immediately and ignore remaining wheel events in this scroll.\r\n\t\t\t\t\t\t\t// See comment above for \"remaining wheel events in this scroll\" determination.\r\n\t\t\t\t\t\t\t// If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\r\n\t\t\t\t\t\t\tclearTimeout(swiper.mousewheel.timeout);\r\n\t\t\t\t\t\t\tswiper.mousewheel.timeout = undefined;\r\n\t\t\t\t\t\t\tconst recentWheelEvents = swiper.mousewheel.recentWheelEvents;\r\n\t\t\t\t\t\t\tif (recentWheelEvents.length >= 15) {\r\n\t\t\t\t\t\t\t\trecentWheelEvents.shift(); // only store the last N events\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tconst prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\r\n\t\t\t\t\t\t\tconst firstEvent = recentWheelEvents[0];\r\n\t\t\t\t\t\t\trecentWheelEvents.push(newEvent);\r\n\t\t\t\t\t\t\tif (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\r\n\t\t\t\t\t\t\t\t// Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\r\n\t\t\t\t\t\t\t\trecentWheelEvents.splice(0);\r\n\t\t\t\t\t\t\t} else if (recentWheelEvents.length >= 15\r\n\t\t\t\t\t\t\t\t&& newEvent.time - firstEvent.time < 500\r\n\t\t\t\t\t\t\t\t&& firstEvent.delta - newEvent.delta >= 1\r\n\t\t\t\t\t\t\t\t&& newEvent.delta <= 6\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t// We're at the end of the deceleration of a momentum scroll, so there's no need\r\n\t\t\t\t\t\t\t\t// to wait for more events. Snap ASAP on the next tick.\r\n\t\t\t\t\t\t\t\t// Also, because there's some remaining momentum we'll bias the snap in the\r\n\t\t\t\t\t\t\t\t// direction of the ongoing scroll because it's better UX for the scroll to snap\r\n\t\t\t\t\t\t\t\t// in the same direction as the scroll instead of reversing to snap.  Therefore,\r\n\t\t\t\t\t\t\t\t// if it's already scrolled more than 20% in the current direction, keep going.\r\n\t\t\t\t\t\t\t\tconst snapToThreshold = delta > 0 ? 0.8 : 0.2;\r\n\t\t\t\t\t\t\t\tswiper.mousewheel.lastEventBeforeSnap = newEvent;\r\n\t\t\t\t\t\t\t\trecentWheelEvents.splice(0);\r\n\t\t\t\t\t\t\t\tswiper.mousewheel.timeout = Utils.nextTick(() => {\r\n\t\t\t\t\t\t\t\t\tswiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n\t\t\t\t\t\t\t\t}, 0); // no delay; move on next tick\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!swiper.mousewheel.timeout) {\r\n\t\t\t\t\t\t\t\t// if we get here, then we haven't detected the end of a momentum scroll, so\r\n\t\t\t\t\t\t\t\t// we'll consider a scroll \"complete\" when there haven't been any wheel events\r\n\t\t\t\t\t\t\t\t// for 500ms.\r\n\t\t\t\t\t\t\t\tswiper.mousewheel.timeout = Utils.nextTick(() => {\r\n\t\t\t\t\t\t\t\t\tconst snapToThreshold = 0.5;\r\n\t\t\t\t\t\t\t\t\tswiper.mousewheel.lastEventBeforeSnap = newEvent;\r\n\t\t\t\t\t\t\t\t\trecentWheelEvents.splice(0);\r\n\t\t\t\t\t\t\t\t\tswiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n\t\t\t\t\t\t\t\t}, 500); q\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Emit event\r\n\t\t\t\t\t\tif (!ignoreWheelEvents) swiper.emit('scroll', e);\r\n\r\n\t\t\t\t\t\t// Stop autoplay\r\n\t\t\t\t\t\tif (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\r\n\t\t\t\t\t\t// Return page scroll on edge positions\r\n\t\t\t\t\t\tif (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (e.preventDefault) e.preventDefault();\r\n\t\t\t\telse e.returnValue = false;\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tanimateSlider(newEvent) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\t// If the movement is NOT big enough and\r\n\t\t\t\t// if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\r\n\t\t\t\t//   Don't go any further (avoid insignificant scroll movement).\r\n\t\t\t\tif (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\r\n\t\t\t\t\t// Return false as a default\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\t// If user is scrolling towards the end:\r\n\t\t\t\t//   If the slider hasn't hit the latest slide or\r\n\t\t\t\t//   if the slider is a loop and\r\n\t\t\t\t//   if the slider isn't moving right now:\r\n\t\t\t\t//     Go to next slide and\r\n\t\t\t\t//     emit a scroll event.\r\n\t\t\t\t// Else (the user is scrolling towards the beginning) and\r\n\t\t\t\t// if the slider hasn't hit the first slide or\r\n\t\t\t\t// if the slider is a loop and\r\n\t\t\t\t// if the slider isn't moving right now:\r\n\t\t\t\t//   Go to prev slide and\r\n\t\t\t\t//   emit a scroll event.\r\n\t\t\t\tif (newEvent.direction < 0) {\r\n\t\t\t\t\tif ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\r\n\t\t\t\t\t\tswiper.slideNext();\r\n\t\t\t\t\t\tswiper.emit('scroll', newEvent.raw);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\r\n\t\t\t\t\tswiper.slidePrev();\r\n\t\t\t\t\tswiper.emit('scroll', newEvent.raw);\r\n\t\t\t\t}\r\n\t\t\t\t// If you got here is because an animation has been triggered so store the current time\r\n\t\t\t\tswiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\r\n\t\t\t\t// Return false as a default\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\treleaseScroll(newEvent) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.mousewheel;\r\n\t\t\t\tif (newEvent.direction < 0) {\r\n\t\t\t\t\tif (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\r\n\t\t\t\t\t\t// Return true to animate scroll on edges\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\r\n\t\t\t\t\t// Return true to animate scroll on edges\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tenable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst event = Mousewheel.event();\r\n\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\tswiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tif (!event) return false;\r\n\t\t\t\tif (swiper.mousewheel.enabled) return false;\r\n\t\t\t\tlet target = swiper.$el;\r\n\t\t\t\tif (swiper.params.mousewheel.eventsTarged !== 'container') {\r\n\t\t\t\t\ttarget = $(swiper.params.mousewheel.eventsTarged);\r\n\t\t\t\t}\r\n\t\t\t\ttarget.on('mouseenter', swiper.mousewheel.handleMouseEnter);\r\n\t\t\t\ttarget.on('mouseleave', swiper.mousewheel.handleMouseLeave);\r\n\t\t\t\ttarget.on(event, swiper.mousewheel.handle);\r\n\t\t\t\tswiper.mousewheel.enabled = true;\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\tdisable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst event = Mousewheel.event();\r\n\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\tswiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\tif (!event) return false;\r\n\t\t\t\tif (!swiper.mousewheel.enabled) return false;\r\n\t\t\t\tlet target = swiper.$el;\r\n\t\t\t\tif (swiper.params.mousewheel.eventsTarged !== 'container') {\r\n\t\t\t\t\ttarget = $(swiper.params.mousewheel.eventsTarged);\r\n\t\t\t\t}\r\n\t\t\t\ttarget.off(event, swiper.mousewheel.handle);\r\n\t\t\t\tswiper.mousewheel.enabled = false;\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Mousewheel$1 = {\r\n\t\t\tname: 'mousewheel',\r\n\t\t\tparams: {\r\n\t\t\t\tmousewheel: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\treleaseOnEdges: false,\r\n\t\t\t\t\tinvert: false,\r\n\t\t\t\t\tforceToAxis: false,\r\n\t\t\t\t\tsensitivity: 1,\r\n\t\t\t\t\teventsTarged: 'container',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tmousewheel: {\r\n\t\t\t\t\t\tenabled: false,\r\n\t\t\t\t\t\tenable: Mousewheel.enable.bind(swiper),\r\n\t\t\t\t\t\tdisable: Mousewheel.disable.bind(swiper),\r\n\t\t\t\t\t\thandle: Mousewheel.handle.bind(swiper),\r\n\t\t\t\t\t\thandleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\r\n\t\t\t\t\t\thandleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\r\n\t\t\t\t\t\tanimateSlider: Mousewheel.animateSlider.bind(swiper),\r\n\t\t\t\t\t\treleaseScroll: Mousewheel.releaseScroll.bind(swiper),\r\n\t\t\t\t\t\tlastScrollTime: Utils.now(),\r\n\t\t\t\t\t\tlastEventBeforeSnap: undefined,\r\n\t\t\t\t\t\trecentWheelEvents: [],\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.mousewheel.disable();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.mousewheel.enable();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.mousewheel.enabled) swiper.mousewheel.disable();\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Navigation = {\r\n\t\t\tupdate() {\r\n\t\t\t\t// Update Navigation Buttons\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.navigation;\r\n\r\n\t\t\t\tif (swiper.params.loop) return;\r\n\t\t\t\tconst { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n\t\t\t\tif ($prevEl && $prevEl.length > 0) {\r\n\t\t\t\t\tif (swiper.isBeginning) {\r\n\t\t\t\t\t\t$prevEl.addClass(params.disabledClass);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$prevEl.removeClass(params.disabledClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n\t\t\t\t}\r\n\t\t\t\tif ($nextEl && $nextEl.length > 0) {\r\n\t\t\t\t\tif (swiper.isEnd) {\r\n\t\t\t\t\t\t$nextEl.addClass(params.disabledClass);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$nextEl.removeClass(params.disabledClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonPrevClick(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (swiper.isBeginning && !swiper.params.loop) return;\r\n\t\t\t\tswiper.slidePrev();\r\n\t\t\t},\r\n\t\t\tonNextClick(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (swiper.isEnd && !swiper.params.loop) return;\r\n\t\t\t\tswiper.slideNext();\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.navigation;\r\n\t\t\t\tif (!(params.nextEl || params.prevEl)) return;\r\n\r\n\t\t\t\tlet $nextEl;\r\n\t\t\t\tlet $prevEl;\r\n\t\t\t\tif (params.nextEl) {\r\n\t\t\t\t\t$nextEl = $(params.nextEl);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tswiper.params.uniqueNavElements\r\n\t\t\t\t\t\t&& typeof params.nextEl === 'string'\r\n\t\t\t\t\t\t&& $nextEl.length > 1\r\n\t\t\t\t\t\t&& swiper.$el.find(params.nextEl).length === 1\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t$nextEl = swiper.$el.find(params.nextEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (params.prevEl) {\r\n\t\t\t\t\t$prevEl = $(params.prevEl);\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tswiper.params.uniqueNavElements\r\n\t\t\t\t\t\t&& typeof params.prevEl === 'string'\r\n\t\t\t\t\t\t&& $prevEl.length > 1\r\n\t\t\t\t\t\t&& swiper.$el.find(params.prevEl).length === 1\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t$prevEl = swiper.$el.find(params.prevEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($nextEl && $nextEl.length > 0) {\r\n\t\t\t\t\t$nextEl.on('click', swiper.navigation.onNextClick);\r\n\t\t\t\t}\r\n\t\t\t\tif ($prevEl && $prevEl.length > 0) {\r\n\t\t\t\t\t$prevEl.on('click', swiper.navigation.onPrevClick);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tUtils.extend(swiper.navigation, {\r\n\t\t\t\t\t$nextEl,\r\n\t\t\t\t\tnextEl: $nextEl && $nextEl[0],\r\n\t\t\t\t\t$prevEl,\r\n\t\t\t\t\tprevEl: $prevEl && $prevEl[0],\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { $nextEl, $prevEl } = swiper.navigation;\r\n\t\t\t\tif ($nextEl && $nextEl.length) {\r\n\t\t\t\t\t$nextEl.off('click', swiper.navigation.onNextClick);\r\n\t\t\t\t\t$nextEl.removeClass(swiper.params.navigation.disabledClass);\r\n\t\t\t\t}\r\n\t\t\t\tif ($prevEl && $prevEl.length) {\r\n\t\t\t\t\t$prevEl.off('click', swiper.navigation.onPrevClick);\r\n\t\t\t\t\t$prevEl.removeClass(swiper.params.navigation.disabledClass);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Navigation$1 = {\r\n\t\t\tname: 'navigation',\r\n\t\t\tparams: {\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\tnextEl: null,\r\n\t\t\t\t\tprevEl: null,\r\n\r\n\t\t\t\t\thideOnClick: false,\r\n\t\t\t\t\tdisabledClass: 'swiper-button-disabled',\r\n\t\t\t\t\thiddenClass: 'swiper-button-hidden',\r\n\t\t\t\t\tlockClass: 'swiper-button-lock',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tinit: Navigation.init.bind(swiper),\r\n\t\t\t\t\t\tupdate: Navigation.update.bind(swiper),\r\n\t\t\t\t\t\tdestroy: Navigation.destroy.bind(swiper),\r\n\t\t\t\t\t\tonNextClick: Navigation.onNextClick.bind(swiper),\r\n\t\t\t\t\t\tonPrevClick: Navigation.onPrevClick.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.navigation.init();\r\n\t\t\t\t\tswiper.navigation.update();\r\n\t\t\t\t},\r\n\t\t\t\ttoEdge() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.navigation.update();\r\n\t\t\t\t},\r\n\t\t\t\tfromEdge() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.navigation.update();\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.navigation.destroy();\r\n\t\t\t\t},\r\n\t\t\t\tclick(e) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tconst { $nextEl, $prevEl } = swiper.navigation;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tswiper.params.navigation.hideOnClick\r\n\t\t\t\t\t\t&& !$(e.target).is($prevEl)\r\n\t\t\t\t\t\t&& !$(e.target).is($nextEl)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tlet isHidden;\r\n\t\t\t\t\t\tif ($nextEl) {\r\n\t\t\t\t\t\t\tisHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\r\n\t\t\t\t\t\t} else if ($prevEl) {\r\n\t\t\t\t\t\t\tisHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (isHidden === true) {\r\n\t\t\t\t\t\t\tswiper.emit('navigationShow', swiper);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswiper.emit('navigationHide', swiper);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($nextEl) {\r\n\t\t\t\t\t\t\t$nextEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($prevEl) {\r\n\t\t\t\t\t\t\t$prevEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Pagination = {\r\n\t\t\tupdate() {\r\n\t\t\t\t// Render || Update Pagination bullets/items\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst rtl = swiper.rtl;\r\n\t\t\t\tconst params = swiper.params.pagination;\r\n\t\t\t\tif (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n\t\t\t\tconst slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n\t\t\t\tconst $el = swiper.pagination.$el;\r\n\t\t\t\t// Current/Total\r\n\t\t\t\tlet current;\r\n\t\t\t\tconst total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\tcurrent = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\r\n\t\t\t\t\tif (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\r\n\t\t\t\t\t\tcurrent -= (slidesLength - (swiper.loopedSlides * 2));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (current > total - 1) current -= total;\r\n\t\t\t\t\tif (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\r\n\t\t\t\t} else if (typeof swiper.snapIndex !== 'undefined') {\r\n\t\t\t\t\tcurrent = swiper.snapIndex;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcurrent = swiper.activeIndex || 0;\r\n\t\t\t\t}\r\n\t\t\t\t// Types\r\n\t\t\t\tif (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\r\n\t\t\t\t\tconst bullets = swiper.pagination.bullets;\r\n\t\t\t\t\tlet firstIndex;\r\n\t\t\t\t\tlet lastIndex;\r\n\t\t\t\t\tlet midIndex;\r\n\t\t\t\t\tif (params.dynamicBullets) {\r\n\t\t\t\t\t\tswiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\r\n\t\t\t\t\t\t$el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\r\n\t\t\t\t\t\tif (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\r\n\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\r\n\t\t\t\t\t\t\tif (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\r\n\t\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\r\n\t\t\t\t\t\t\t} else if (swiper.pagination.dynamicBulletIndex < 0) {\r\n\t\t\t\t\t\t\t\tswiper.pagination.dynamicBulletIndex = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfirstIndex = current - swiper.pagination.dynamicBulletIndex;\r\n\t\t\t\t\t\tlastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\r\n\t\t\t\t\t\tmidIndex = (lastIndex + firstIndex) / 2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\r\n\t\t\t\t\tif ($el.length > 1) {\r\n\t\t\t\t\t\tbullets.each((index, bullet) => {\r\n\t\t\t\t\t\t\tconst $bullet = $(bullet);\r\n\t\t\t\t\t\t\tconst bulletIndex = $bullet.index();\r\n\t\t\t\t\t\t\tif (bulletIndex === current) {\r\n\t\t\t\t\t\t\t\t$bullet.addClass(params.bulletActiveClass);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (params.dynamicBullets) {\r\n\t\t\t\t\t\t\t\tif (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\r\n\t\t\t\t\t\t\t\t\t$bullet.addClass(`${params.bulletActiveClass}-main`);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (bulletIndex === firstIndex) {\r\n\t\t\t\t\t\t\t\t\t$bullet\r\n\t\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev`)\r\n\t\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev-prev`);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (bulletIndex === lastIndex) {\r\n\t\t\t\t\t\t\t\t\t$bullet\r\n\t\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next`)\r\n\t\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next-next`);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst $bullet = bullets.eq(current);\r\n\t\t\t\t\t\tconst bulletIndex = $bullet.index();\r\n\t\t\t\t\t\t$bullet.addClass(params.bulletActiveClass);\r\n\t\t\t\t\t\tif (params.dynamicBullets) {\r\n\t\t\t\t\t\t\tconst $firstDisplayedBullet = bullets.eq(firstIndex);\r\n\t\t\t\t\t\t\tconst $lastDisplayedBullet = bullets.eq(lastIndex);\r\n\t\t\t\t\t\t\tfor (let i = firstIndex; i <= lastIndex; i += 1) {\r\n\t\t\t\t\t\t\t\tbullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\t\t\t\tif (bulletIndex >= bullets.length - params.dynamicMainBullets) {\r\n\t\t\t\t\t\t\t\t\tfor (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\r\n\t\t\t\t\t\t\t\t\t\tbullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tbullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$firstDisplayedBullet\r\n\t\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev`)\r\n\t\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev-prev`);\r\n\t\t\t\t\t\t\t\t\t$lastDisplayedBullet\r\n\t\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next`)\r\n\t\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next-next`);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$firstDisplayedBullet\r\n\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev`)\r\n\t\t\t\t\t\t\t\t\t.prev()\r\n\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-prev-prev`);\r\n\t\t\t\t\t\t\t\t$lastDisplayedBullet\r\n\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next`)\r\n\t\t\t\t\t\t\t\t\t.next()\r\n\t\t\t\t\t\t\t\t\t.addClass(`${params.bulletActiveClass}-next-next`);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (params.dynamicBullets) {\r\n\t\t\t\t\t\tconst dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\r\n\t\t\t\t\t\tconst bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\r\n\t\t\t\t\t\tconst offsetProp = rtl ? 'right' : 'left';\r\n\t\t\t\t\t\tbullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'fraction') {\r\n\t\t\t\t\t$el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\r\n\t\t\t\t\t$el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'progressbar') {\r\n\t\t\t\t\tlet progressbarDirection;\r\n\t\t\t\t\tif (params.progressbarOpposite) {\r\n\t\t\t\t\t\tprogressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprogressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst scale = (current + 1) / total;\r\n\t\t\t\t\tlet scaleX = 1;\r\n\t\t\t\t\tlet scaleY = 1;\r\n\t\t\t\t\tif (progressbarDirection === 'horizontal') {\r\n\t\t\t\t\t\tscaleX = scale;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tscaleY = scale;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'custom' && params.renderCustom) {\r\n\t\t\t\t\t$el.html(params.renderCustom(swiper, current + 1, total));\r\n\t\t\t\t\tswiper.emit('paginationRender', swiper, $el[0]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.emit('paginationUpdate', swiper, $el[0]);\r\n\t\t\t\t}\r\n\t\t\t\t$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n\t\t\t},\r\n\t\t\trender() {\r\n\t\t\t\t// Render Container\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.pagination;\r\n\t\t\t\tif (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n\t\t\t\tconst slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n\r\n\t\t\t\tconst $el = swiper.pagination.$el;\r\n\t\t\t\tlet paginationHTML = '';\r\n\t\t\t\tif (params.type === 'bullets') {\r\n\t\t\t\t\tconst numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n\t\t\t\t\tfor (let i = 0; i < numberOfBullets; i += 1) {\r\n\t\t\t\t\t\tif (params.renderBullet) {\r\n\t\t\t\t\t\t\tpaginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpaginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$el.html(paginationHTML);\r\n\t\t\t\t\tswiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'fraction') {\r\n\t\t\t\t\tif (params.renderFraction) {\r\n\t\t\t\t\t\tpaginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpaginationHTML = `<span class=\"${params.currentClass}\"></span>`\r\n\t\t\t\t\t\t\t+ ' / '\r\n\t\t\t\t\t\t\t+ `<span class=\"${params.totalClass}\"></span>`;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$el.html(paginationHTML);\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'progressbar') {\r\n\t\t\t\t\tif (params.renderProgressbar) {\r\n\t\t\t\t\t\tpaginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpaginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$el.html(paginationHTML);\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type !== 'custom') {\r\n\t\t\t\t\tswiper.emit('paginationRender', swiper.pagination.$el[0]);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.pagination;\r\n\t\t\t\tif (!params.el) return;\r\n\r\n\t\t\t\tlet $el = $(params.el);\r\n\t\t\t\tif ($el.length === 0) return;\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tswiper.params.uniqueNavElements\r\n\t\t\t\t\t&& typeof params.el === 'string'\r\n\t\t\t\t\t&& $el.length > 1\r\n\t\t\t\t) {\r\n\t\t\t\t\t$el = swiper.$el.find(params.el);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.type === 'bullets' && params.clickable) {\r\n\t\t\t\t\t$el.addClass(params.clickableClass);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$el.addClass(params.modifierClass + params.type);\r\n\r\n\t\t\t\tif (params.type === 'bullets' && params.dynamicBullets) {\r\n\t\t\t\t\t$el.addClass(`${params.modifierClass}${params.type}-dynamic`);\r\n\t\t\t\t\tswiper.pagination.dynamicBulletIndex = 0;\r\n\t\t\t\t\tif (params.dynamicMainBullets < 1) {\r\n\t\t\t\t\t\tparams.dynamicMainBullets = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (params.type === 'progressbar' && params.progressbarOpposite) {\r\n\t\t\t\t\t$el.addClass(params.progressbarOppositeClass);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.clickable) {\r\n\t\t\t\t\t$el.on('click', `.${params.bulletClass}`, function onClick(e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tlet index = $(this).index() * swiper.params.slidesPerGroup;\r\n\t\t\t\t\t\tif (swiper.params.loop) index += swiper.loopedSlides;\r\n\t\t\t\t\t\tswiper.slideTo(index);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tUtils.extend(swiper.pagination, {\r\n\t\t\t\t\t$el,\r\n\t\t\t\t\tel: $el[0],\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.pagination;\r\n\t\t\t\tif (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\r\n\t\t\t\tconst $el = swiper.pagination.$el;\r\n\r\n\t\t\t\t$el.removeClass(params.hiddenClass);\r\n\t\t\t\t$el.removeClass(params.modifierClass + params.type);\r\n\t\t\t\tif (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\r\n\t\t\t\tif (params.clickable) {\r\n\t\t\t\t\t$el.off('click', `.${params.bulletClass}`);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Pagination$1 = {\r\n\t\t\tname: 'pagination',\r\n\t\t\tparams: {\r\n\t\t\t\tpagination: {\r\n\t\t\t\t\tel: null,\r\n\t\t\t\t\tbulletElement: 'span',\r\n\t\t\t\t\tclickable: false,\r\n\t\t\t\t\thideOnClick: false,\r\n\t\t\t\t\trenderBullet: null,\r\n\t\t\t\t\trenderProgressbar: null,\r\n\t\t\t\t\trenderFraction: null,\r\n\t\t\t\t\trenderCustom: null,\r\n\t\t\t\t\tprogressbarOpposite: false,\r\n\t\t\t\t\ttype: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\r\n\t\t\t\t\tdynamicBullets: false,\r\n\t\t\t\t\tdynamicMainBullets: 1,\r\n\t\t\t\t\tformatFractionCurrent: (number) => number,\r\n\t\t\t\t\tformatFractionTotal: (number) => number,\r\n\t\t\t\t\tbulletClass: 'swiper-pagination-bullet',\r\n\t\t\t\t\tbulletActiveClass: 'swiper-pagination-bullet-active',\r\n\t\t\t\t\tmodifierClass: 'swiper-pagination-', // NEW\r\n\t\t\t\t\tcurrentClass: 'swiper-pagination-current',\r\n\t\t\t\t\ttotalClass: 'swiper-pagination-total',\r\n\t\t\t\t\thiddenClass: 'swiper-pagination-hidden',\r\n\t\t\t\t\tprogressbarFillClass: 'swiper-pagination-progressbar-fill',\r\n\t\t\t\t\tprogressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\r\n\t\t\t\t\tclickableClass: 'swiper-pagination-clickable', // NEW\r\n\t\t\t\t\tlockClass: 'swiper-pagination-lock',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\tinit: Pagination.init.bind(swiper),\r\n\t\t\t\t\t\trender: Pagination.render.bind(swiper),\r\n\t\t\t\t\t\tupdate: Pagination.update.bind(swiper),\r\n\t\t\t\t\t\tdestroy: Pagination.destroy.bind(swiper),\r\n\t\t\t\t\t\tdynamicBulletIndex: 0,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.pagination.init();\r\n\t\t\t\t\tswiper.pagination.render();\r\n\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t},\r\n\t\t\t\tactiveIndexChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t\t} else if (typeof swiper.snapIndex === 'undefined') {\r\n\t\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsnapIndexChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.loop) {\r\n\t\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tslidesLengthChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\t\tswiper.pagination.render();\r\n\t\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsnapGridLengthChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.loop) {\r\n\t\t\t\t\t\tswiper.pagination.render();\r\n\t\t\t\t\t\tswiper.pagination.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.pagination.destroy();\r\n\t\t\t\t},\r\n\t\t\t\tclick(e) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tswiper.params.pagination.el\r\n\t\t\t\t\t\t&& swiper.params.pagination.hideOnClick\r\n\t\t\t\t\t\t&& swiper.pagination.$el.length > 0\r\n\t\t\t\t\t\t&& !$(e.target).hasClass(swiper.params.pagination.bulletClass)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tconst isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\r\n\t\t\t\t\t\tif (isHidden === true) {\r\n\t\t\t\t\t\t\tswiper.emit('paginationShow', swiper);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswiper.emit('paginationHide', swiper);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tswiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Scrollbar = {\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n\t\t\t\tconst { scrollbar, rtlTranslate: rtl, progress } = swiper;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tdragSize, trackSize, $dragEl, $el,\r\n\t\t\t\t} = scrollbar;\r\n\t\t\t\tconst params = swiper.params.scrollbar;\r\n\r\n\t\t\t\tlet newSize = dragSize;\r\n\t\t\t\tlet newPos = (trackSize - dragSize) * progress;\r\n\t\t\t\tif (rtl) {\r\n\t\t\t\t\tnewPos = -newPos;\r\n\t\t\t\t\tif (newPos > 0) {\r\n\t\t\t\t\t\tnewSize = dragSize - newPos;\r\n\t\t\t\t\t\tnewPos = 0;\r\n\t\t\t\t\t} else if (-newPos + dragSize > trackSize) {\r\n\t\t\t\t\t\tnewSize = trackSize + newPos;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (newPos < 0) {\r\n\t\t\t\t\tnewSize = dragSize + newPos;\r\n\t\t\t\t\tnewPos = 0;\r\n\t\t\t\t} else if (newPos + dragSize > trackSize) {\r\n\t\t\t\t\tnewSize = trackSize - newPos;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\t$dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\r\n\t\t\t\t\t$dragEl[0].style.width = `${newSize}px`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\r\n\t\t\t\t\t$dragEl[0].style.height = `${newSize}px`;\r\n\t\t\t\t}\r\n\t\t\t\tif (params.hide) {\r\n\t\t\t\t\tclearTimeout(swiper.scrollbar.timeout);\r\n\t\t\t\t\t$el[0].style.opacity = 1;\r\n\t\t\t\t\tswiper.scrollbar.timeout = setTimeout(() => {\r\n\t\t\t\t\t\t$el[0].style.opacity = 0;\r\n\t\t\t\t\t\t$el.transition(400);\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTransition(duration) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n\t\t\t\tswiper.scrollbar.$dragEl.transition(duration);\r\n\t\t\t},\r\n\t\t\tupdateSize() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n\r\n\t\t\t\tconst { scrollbar } = swiper;\r\n\t\t\t\tconst { $dragEl, $el } = scrollbar;\r\n\r\n\t\t\t\t$dragEl[0].style.width = '';\r\n\t\t\t\t$dragEl[0].style.height = '';\r\n\t\t\t\tconst trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\r\n\r\n\t\t\t\tconst divider = swiper.size / swiper.virtualSize;\r\n\t\t\t\tconst moveDivider = divider * (trackSize / swiper.size);\r\n\t\t\t\tlet dragSize;\r\n\t\t\t\tif (swiper.params.scrollbar.dragSize === 'auto') {\r\n\t\t\t\t\tdragSize = trackSize * divider;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\t$dragEl[0].style.width = `${dragSize}px`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$dragEl[0].style.height = `${dragSize}px`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (divider >= 1) {\r\n\t\t\t\t\t$el[0].style.display = 'none';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$el[0].style.display = '';\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.scrollbar.hide) {\r\n\t\t\t\t\t$el[0].style.opacity = 0;\r\n\t\t\t\t}\r\n\t\t\t\tUtils.extend(scrollbar, {\r\n\t\t\t\t\ttrackSize,\r\n\t\t\t\t\tdivider,\r\n\t\t\t\t\tmoveDivider,\r\n\t\t\t\t\tdragSize,\r\n\t\t\t\t});\r\n\t\t\t\tscrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\r\n\t\t\t},\r\n\t\t\tgetPointerPosition(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (swiper.isHorizontal()) {\r\n\t\t\t\t\treturn ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\r\n\t\t\t\t}\r\n\t\t\t\treturn ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\r\n\t\t\t},\r\n\t\t\tsetDragPosition(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { scrollbar, rtlTranslate: rtl } = swiper;\r\n\t\t\t\tconst {\r\n\t\t\t\t\t$el,\r\n\t\t\t\t\tdragSize,\r\n\t\t\t\t\ttrackSize,\r\n\t\t\t\t\tdragStartPos,\r\n\t\t\t\t} = scrollbar;\r\n\r\n\t\t\t\tlet positionRatio;\r\n\t\t\t\tpositionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\r\n\t\t\t\t\t- (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\r\n\t\t\t\tpositionRatio = Math.max(Math.min(positionRatio, 1), 0);\r\n\t\t\t\tif (rtl) {\r\n\t\t\t\t\tpositionRatio = 1 - positionRatio;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\r\n\r\n\t\t\t\tswiper.updateProgress(position);\r\n\t\t\t\tswiper.setTranslate(position);\r\n\t\t\t\tswiper.updateActiveIndex();\r\n\t\t\t\tswiper.updateSlidesClasses();\r\n\t\t\t},\r\n\t\t\tonDragStart(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.scrollbar;\r\n\t\t\t\tconst { scrollbar, $wrapperEl } = swiper;\r\n\t\t\t\tconst { $el, $dragEl } = scrollbar;\r\n\t\t\t\tswiper.scrollbar.isTouched = true;\r\n\t\t\t\tswiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\r\n\t\t\t\t\t? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t$wrapperEl.transition(100);\r\n\t\t\t\t$dragEl.transition(100);\r\n\t\t\t\tscrollbar.setDragPosition(e);\r\n\r\n\t\t\t\tclearTimeout(swiper.scrollbar.dragTimeout);\r\n\r\n\t\t\t\t$el.transition(0);\r\n\t\t\t\tif (params.hide) {\r\n\t\t\t\t\t$el.css('opacity', 1);\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\tswiper.$wrapperEl.css('scroll-snap-type', 'none');\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('scrollbarDragStart', e);\r\n\t\t\t},\r\n\t\t\tonDragMove(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { scrollbar, $wrapperEl } = swiper;\r\n\t\t\t\tconst { $el, $dragEl } = scrollbar;\r\n\r\n\t\t\t\tif (!swiper.scrollbar.isTouched) return;\r\n\t\t\t\tif (e.preventDefault) e.preventDefault();\r\n\t\t\t\telse e.returnValue = false;\r\n\t\t\t\tscrollbar.setDragPosition(e);\r\n\t\t\t\t$wrapperEl.transition(0);\r\n\t\t\t\t$el.transition(0);\r\n\t\t\t\t$dragEl.transition(0);\r\n\t\t\t\tswiper.emit('scrollbarDragMove', e);\r\n\t\t\t},\r\n\t\t\tonDragEnd(e) {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tconst params = swiper.params.scrollbar;\r\n\t\t\t\tconst { scrollbar, $wrapperEl } = swiper;\r\n\t\t\t\tconst { $el } = scrollbar;\r\n\r\n\t\t\t\tif (!swiper.scrollbar.isTouched) return;\r\n\t\t\t\tswiper.scrollbar.isTouched = false;\r\n\t\t\t\tif (swiper.params.cssMode) {\r\n\t\t\t\t\tswiper.$wrapperEl.css('scroll-snap-type', '');\r\n\t\t\t\t\t$wrapperEl.transition('');\r\n\t\t\t\t}\r\n\t\t\t\tif (params.hide) {\r\n\t\t\t\t\tclearTimeout(swiper.scrollbar.dragTimeout);\r\n\t\t\t\t\tswiper.scrollbar.dragTimeout = Utils.nextTick(() => {\r\n\t\t\t\t\t\t$el.css('opacity', 0);\r\n\t\t\t\t\t\t$el.transition(400);\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.emit('scrollbarDragEnd', e);\r\n\t\t\t\tif (params.snapOnRelease) {\r\n\t\t\t\t\tswiper.slideToClosest();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tenableDraggable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el) return;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tscrollbar, touchEventsTouch, touchEventsDesktop, params,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tconst $el = scrollbar.$el;\r\n\t\t\t\tconst target = $el[0];\r\n\t\t\t\tconst activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\r\n\t\t\t\tconst passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\tif (!Support.touch) {\r\n\t\t\t\t\ttarget.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n\t\t\t\t\tdoc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n\t\t\t\t\tdoc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\r\n\t\t\t\t\ttarget.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\r\n\t\t\t\t\ttarget.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdisableDraggable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el) return;\r\n\t\t\t\tconst {\r\n\t\t\t\t\tscrollbar, touchEventsTouch, touchEventsDesktop, params,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tconst $el = scrollbar.$el;\r\n\t\t\t\tconst target = $el[0];\r\n\t\t\t\tconst activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\r\n\t\t\t\tconst passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\tif (!Support.touch) {\r\n\t\t\t\t\ttarget.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n\t\t\t\t\tdoc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n\t\t\t\t\tdoc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\r\n\t\t\t\t\ttarget.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\r\n\t\t\t\t\ttarget.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.scrollbar.el) return;\r\n\t\t\t\tconst { scrollbar, $el: $swiperEl } = swiper;\r\n\t\t\t\tconst params = swiper.params.scrollbar;\r\n\r\n\t\t\t\tlet $el = $(params.el);\r\n\t\t\t\tif (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\r\n\t\t\t\t\t$el = $swiperEl.find(params.el);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\r\n\t\t\t\tif ($dragEl.length === 0) {\r\n\t\t\t\t\t$dragEl = $(`<div class=\"${swiper.params.scrollbar.dragClass}\"></div>`);\r\n\t\t\t\t\t$el.append($dragEl);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tUtils.extend(scrollbar, {\r\n\t\t\t\t\t$el,\r\n\t\t\t\t\tel: $el[0],\r\n\t\t\t\t\t$dragEl,\r\n\t\t\t\t\tdragEl: $dragEl[0],\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (params.draggable) {\r\n\t\t\t\t\tscrollbar.enableDraggable();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.scrollbar.disableDraggable();\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Scrollbar$1 = {\r\n\t\t\tname: 'scrollbar',\r\n\t\t\tparams: {\r\n\t\t\t\tscrollbar: {\r\n\t\t\t\t\tel: null,\r\n\t\t\t\t\tdragSize: 'auto',\r\n\t\t\t\t\thide: false,\r\n\t\t\t\t\tdraggable: false,\r\n\t\t\t\t\tsnapOnRelease: true,\r\n\t\t\t\t\tlockClass: 'swiper-scrollbar-lock',\r\n\t\t\t\t\tdragClass: 'swiper-scrollbar-drag',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tscrollbar: {\r\n\t\t\t\t\t\tinit: Scrollbar.init.bind(swiper),\r\n\t\t\t\t\t\tdestroy: Scrollbar.destroy.bind(swiper),\r\n\t\t\t\t\t\tupdateSize: Scrollbar.updateSize.bind(swiper),\r\n\t\t\t\t\t\tsetTranslate: Scrollbar.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Scrollbar.setTransition.bind(swiper),\r\n\t\t\t\t\t\tenableDraggable: Scrollbar.enableDraggable.bind(swiper),\r\n\t\t\t\t\t\tdisableDraggable: Scrollbar.disableDraggable.bind(swiper),\r\n\t\t\t\t\t\tsetDragPosition: Scrollbar.setDragPosition.bind(swiper),\r\n\t\t\t\t\t\tgetPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\r\n\t\t\t\t\t\tonDragStart: Scrollbar.onDragStart.bind(swiper),\r\n\t\t\t\t\t\tonDragMove: Scrollbar.onDragMove.bind(swiper),\r\n\t\t\t\t\t\tonDragEnd: Scrollbar.onDragEnd.bind(swiper),\r\n\t\t\t\t\t\tisTouched: false,\r\n\t\t\t\t\t\ttimeout: null,\r\n\t\t\t\t\t\tdragTimeout: null,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.init();\r\n\t\t\t\t\tswiper.scrollbar.updateSize();\r\n\t\t\t\t\tswiper.scrollbar.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tupdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.updateSize();\r\n\t\t\t\t},\r\n\t\t\t\tresize() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.updateSize();\r\n\t\t\t\t},\r\n\t\t\t\tobserverUpdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.updateSize();\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.scrollbar.destroy();\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Parallax = {\r\n\t\t\tsetTransform(el, progress) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { rtl } = swiper;\r\n\r\n\t\t\t\tconst $el = $(el);\r\n\t\t\t\tconst rtlFactor = rtl ? -1 : 1;\r\n\r\n\t\t\t\tconst p = $el.attr('data-swiper-parallax') || '0';\r\n\t\t\t\tlet x = $el.attr('data-swiper-parallax-x');\r\n\t\t\t\tlet y = $el.attr('data-swiper-parallax-y');\r\n\t\t\t\tconst scale = $el.attr('data-swiper-parallax-scale');\r\n\t\t\t\tconst opacity = $el.attr('data-swiper-parallax-opacity');\r\n\r\n\t\t\t\tif (x || y) {\r\n\t\t\t\t\tx = x || '0';\r\n\t\t\t\t\ty = y || '0';\r\n\t\t\t\t} else if (swiper.isHorizontal()) {\r\n\t\t\t\t\tx = p;\r\n\t\t\t\t\ty = '0';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ty = p;\r\n\t\t\t\t\tx = '0';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ((x).indexOf('%') >= 0) {\r\n\t\t\t\t\tx = `${parseInt(x, 10) * progress * rtlFactor}%`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tx = `${x * progress * rtlFactor}px`;\r\n\t\t\t\t}\r\n\t\t\t\tif ((y).indexOf('%') >= 0) {\r\n\t\t\t\t\ty = `${parseInt(y, 10) * progress}%`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ty = `${y * progress}px`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof opacity !== 'undefined' && opacity !== null) {\r\n\t\t\t\t\tconst currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\r\n\t\t\t\t\t$el[0].style.opacity = currentOpacity;\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof scale === 'undefined' || scale === null) {\r\n\t\t\t\t\t$el.transform(`translate3d(${x}, ${y}, 0px)`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\r\n\t\t\t\t\t$el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\t$el, slides, progress, snapGrid,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\t$el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\r\n\t\t\t\t\t.each((index, el) => {\r\n\t\t\t\t\t\tswiper.parallax.setTransform(el, progress);\r\n\t\t\t\t\t});\r\n\t\t\t\tslides.each((slideIndex, slideEl) => {\r\n\t\t\t\t\tlet slideProgress = slideEl.progress;\r\n\t\t\t\t\tif (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\r\n\t\t\t\t\t\tslideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tslideProgress = Math.min(Math.max(slideProgress, -1), 1);\r\n\t\t\t\t\t$(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\r\n\t\t\t\t\t\t.each((index, el) => {\r\n\t\t\t\t\t\t\tswiper.parallax.setTransform(el, slideProgress);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tsetTransition(duration = this.params.speed) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { $el } = swiper;\r\n\t\t\t\t$el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\r\n\t\t\t\t\t.each((index, parallaxEl) => {\r\n\t\t\t\t\t\tconst $parallaxEl = $(parallaxEl);\r\n\t\t\t\t\t\tlet parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\r\n\t\t\t\t\t\tif (duration === 0) parallaxDuration = 0;\r\n\t\t\t\t\t\t$parallaxEl.transition(parallaxDuration);\r\n\t\t\t\t\t});\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Parallax$1 = {\r\n\t\t\tname: 'parallax',\r\n\t\t\tparams: {\r\n\t\t\t\tparallax: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tparallax: {\r\n\t\t\t\t\t\tsetTransform: Parallax.setTransform.bind(swiper),\r\n\t\t\t\t\t\tsetTranslate: Parallax.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Parallax.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.parallax.enabled) return;\r\n\t\t\t\t\tswiper.params.watchSlidesProgress = true;\r\n\t\t\t\t\tswiper.originalParams.watchSlidesProgress = true;\r\n\t\t\t\t},\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.parallax.enabled) return;\r\n\t\t\t\t\tswiper.parallax.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.parallax.enabled) return;\r\n\t\t\t\t\tswiper.parallax.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.parallax.enabled) return;\r\n\t\t\t\t\tswiper.parallax.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Zoom = {\r\n\t\t\t// Calc Scale From Multi-touches\r\n\t\t\tgetDistanceBetweenTouches(e) {\r\n\t\t\t\tif (e.targetTouches.length < 2) return 1;\r\n\t\t\t\tconst x1 = e.targetTouches[0].pageX;\r\n\t\t\t\tconst y1 = e.targetTouches[0].pageY;\r\n\t\t\t\tconst x2 = e.targetTouches[1].pageX;\r\n\t\t\t\tconst y2 = e.targetTouches[1].pageY;\r\n\t\t\t\tconst distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\r\n\t\t\t\treturn distance;\r\n\t\t\t},\r\n\t\t\t// Events\r\n\t\t\tonGestureStart(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.zoom;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture } = zoom;\r\n\t\t\t\tzoom.fakeGestureTouched = false;\r\n\t\t\t\tzoom.fakeGestureMoved = false;\r\n\t\t\t\tif (!Support.gestures) {\r\n\t\t\t\t\tif (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tzoom.fakeGestureTouched = true;\r\n\t\t\t\t\tgesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\r\n\t\t\t\t}\r\n\t\t\t\tif (!gesture.$slideEl || !gesture.$slideEl.length) {\r\n\t\t\t\t\tgesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\r\n\t\t\t\t\tif (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n\t\t\t\t\tgesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n\t\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n\t\t\t\t\tgesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n\t\t\t\t\tif (gesture.$imageWrapEl.length === 0) {\r\n\t\t\t\t\t\tgesture.$imageEl = undefined;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (gesture.$imageEl) {\r\n\t\t\t\t\tgesture.$imageEl.transition(0);\r\n\t\t\t\t}\r\n\t\t\t\tswiper.zoom.isScaling = true;\r\n\t\t\t},\r\n\t\t\tonGestureChange(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.zoom;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture } = zoom;\r\n\t\t\t\tif (!Support.gestures) {\r\n\t\t\t\t\tif (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tzoom.fakeGestureMoved = true;\r\n\t\t\t\t\tgesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\r\n\t\t\t\t}\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\t\t\t\tif (Support.gestures) {\r\n\t\t\t\t\tzoom.scale = e.scale * zoom.currentScale;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tzoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\r\n\t\t\t\t}\r\n\t\t\t\tif (zoom.scale > gesture.maxRatio) {\r\n\t\t\t\t\tzoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\r\n\t\t\t\t}\r\n\t\t\t\tif (zoom.scale < params.minRatio) {\r\n\t\t\t\t\tzoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\r\n\t\t\t\t}\r\n\t\t\t\tgesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n\t\t\t},\r\n\t\t\tonGestureEnd(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.zoom;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture } = zoom;\r\n\t\t\t\tif (!Support.gestures) {\r\n\t\t\t\t\tif (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tzoom.fakeGestureTouched = false;\r\n\t\t\t\t\tzoom.fakeGestureMoved = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\t\t\t\tzoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\r\n\t\t\t\tgesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n\t\t\t\tzoom.currentScale = zoom.scale;\r\n\t\t\t\tzoom.isScaling = false;\r\n\t\t\t\tif (zoom.scale === 1) gesture.$slideEl = undefined;\r\n\t\t\t},\r\n\t\t\tonTouchStart(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture, image } = zoom;\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\t\t\t\tif (image.isTouched) return;\r\n\t\t\t\tif (Device.android && e.cancelable) e.preventDefault();\r\n\t\t\t\timage.isTouched = true;\r\n\t\t\t\timage.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n\t\t\t\timage.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n\t\t\t},\r\n\t\t\tonTouchMove(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture, image, velocity } = zoom;\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\t\t\t\tswiper.allowClick = false;\r\n\t\t\t\tif (!image.isTouched || !gesture.$slideEl) return;\r\n\r\n\t\t\t\tif (!image.isMoved) {\r\n\t\t\t\t\timage.width = gesture.$imageEl[0].offsetWidth;\r\n\t\t\t\t\timage.height = gesture.$imageEl[0].offsetHeight;\r\n\t\t\t\t\timage.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\r\n\t\t\t\t\timage.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\r\n\t\t\t\t\tgesture.slideWidth = gesture.$slideEl[0].offsetWidth;\r\n\t\t\t\t\tgesture.slideHeight = gesture.$slideEl[0].offsetHeight;\r\n\t\t\t\t\tgesture.$imageWrapEl.transition(0);\r\n\t\t\t\t\tif (swiper.rtl) {\r\n\t\t\t\t\t\timage.startX = -image.startX;\r\n\t\t\t\t\t\timage.startY = -image.startY;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// Define if we need image drag\r\n\t\t\t\tconst scaledWidth = image.width * zoom.scale;\r\n\t\t\t\tconst scaledHeight = image.height * zoom.scale;\r\n\r\n\t\t\t\tif (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\r\n\r\n\t\t\t\timage.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\r\n\t\t\t\timage.maxX = -image.minX;\r\n\t\t\t\timage.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\r\n\t\t\t\timage.maxY = -image.minY;\r\n\r\n\t\t\t\timage.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n\t\t\t\timage.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n\r\n\t\t\t\tif (!image.isMoved && !zoom.isScaling) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tswiper.isHorizontal()\r\n\t\t\t\t\t\t&& (\r\n\t\t\t\t\t\t\t(Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\r\n\t\t\t\t\t\t\t|| (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\timage.isTouched = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} if (\r\n\t\t\t\t\t\t!swiper.isHorizontal()\r\n\t\t\t\t\t\t&& (\r\n\t\t\t\t\t\t\t(Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\r\n\t\t\t\t\t\t\t|| (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\timage.isTouched = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (e.cancelable) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\timage.isMoved = true;\r\n\t\t\t\timage.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\r\n\t\t\t\timage.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\r\n\r\n\t\t\t\tif (image.currentX < image.minX) {\r\n\t\t\t\t\timage.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\r\n\t\t\t\t}\r\n\t\t\t\tif (image.currentX > image.maxX) {\r\n\t\t\t\t\timage.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (image.currentY < image.minY) {\r\n\t\t\t\t\timage.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\r\n\t\t\t\t}\r\n\t\t\t\tif (image.currentY > image.maxY) {\r\n\t\t\t\t\timage.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Velocity\r\n\t\t\t\tif (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\r\n\t\t\t\tif (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\r\n\t\t\t\tif (!velocity.prevTime) velocity.prevTime = Date.now();\r\n\t\t\t\tvelocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\r\n\t\t\t\tvelocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\r\n\t\t\t\tif (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\r\n\t\t\t\tif (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\r\n\t\t\t\tvelocity.prevPositionX = image.touchesCurrent.x;\r\n\t\t\t\tvelocity.prevPositionY = image.touchesCurrent.y;\r\n\t\t\t\tvelocity.prevTime = Date.now();\r\n\r\n\t\t\t\tgesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n\t\t\t},\r\n\t\t\tonTouchEnd() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture, image, velocity } = zoom;\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\t\t\t\tif (!image.isTouched || !image.isMoved) {\r\n\t\t\t\t\timage.isTouched = false;\r\n\t\t\t\t\timage.isMoved = false;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\timage.isTouched = false;\r\n\t\t\t\timage.isMoved = false;\r\n\t\t\t\tlet momentumDurationX = 300;\r\n\t\t\t\tlet momentumDurationY = 300;\r\n\t\t\t\tconst momentumDistanceX = velocity.x * momentumDurationX;\r\n\t\t\t\tconst newPositionX = image.currentX + momentumDistanceX;\r\n\t\t\t\tconst momentumDistanceY = velocity.y * momentumDurationY;\r\n\t\t\t\tconst newPositionY = image.currentY + momentumDistanceY;\r\n\r\n\t\t\t\t// Fix duration\r\n\t\t\t\tif (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\r\n\t\t\t\tif (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\r\n\t\t\t\tconst momentumDuration = Math.max(momentumDurationX, momentumDurationY);\r\n\r\n\t\t\t\timage.currentX = newPositionX;\r\n\t\t\t\timage.currentY = newPositionY;\r\n\r\n\t\t\t\t// Define if we need image drag\r\n\t\t\t\tconst scaledWidth = image.width * zoom.scale;\r\n\t\t\t\tconst scaledHeight = image.height * zoom.scale;\r\n\t\t\t\timage.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\r\n\t\t\t\timage.maxX = -image.minX;\r\n\t\t\t\timage.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\r\n\t\t\t\timage.maxY = -image.minY;\r\n\t\t\t\timage.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\r\n\t\t\t\timage.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\r\n\r\n\t\t\t\tgesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n\t\t\t},\r\n\t\t\tonTransitionEnd() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst { gesture } = zoom;\r\n\t\t\t\tif (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\r\n\t\t\t\t\tif (gesture.$imageEl) {\r\n\t\t\t\t\t\tgesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (gesture.$imageWrapEl) {\r\n\t\t\t\t\t\tgesture.$imageWrapEl.transform('translate3d(0,0,0)');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tzoom.scale = 1;\r\n\t\t\t\t\tzoom.currentScale = 1;\r\n\r\n\t\t\t\t\tgesture.$slideEl = undefined;\r\n\t\t\t\t\tgesture.$imageEl = undefined;\r\n\t\t\t\t\tgesture.$imageWrapEl = undefined;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t// Toggle Zoom\r\n\t\t\ttoggle(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\r\n\t\t\t\tif (zoom.scale && zoom.scale !== 1) {\r\n\t\t\t\t\t// Zoom Out\r\n\t\t\t\t\tzoom.out();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Zoom In\r\n\t\t\t\t\tzoom.in(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tin(e) {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst params = swiper.params.zoom;\r\n\t\t\t\tconst { gesture, image } = zoom;\r\n\r\n\t\t\t\tif (!gesture.$slideEl) {\r\n\t\t\t\t\tif (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n\t\t\t\t\t\tgesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tgesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n\t\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n\t\t\t\t}\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\r\n\t\t\t\tgesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\r\n\r\n\t\t\t\tlet touchX;\r\n\t\t\t\tlet touchY;\r\n\t\t\t\tlet offsetX;\r\n\t\t\t\tlet offsetY;\r\n\t\t\t\tlet diffX;\r\n\t\t\t\tlet diffY;\r\n\t\t\t\tlet translateX;\r\n\t\t\t\tlet translateY;\r\n\t\t\t\tlet imageWidth;\r\n\t\t\t\tlet imageHeight;\r\n\t\t\t\tlet scaledWidth;\r\n\t\t\t\tlet scaledHeight;\r\n\t\t\t\tlet translateMinX;\r\n\t\t\t\tlet translateMinY;\r\n\t\t\t\tlet translateMaxX;\r\n\t\t\t\tlet translateMaxY;\r\n\t\t\t\tlet slideWidth;\r\n\t\t\t\tlet slideHeight;\r\n\r\n\t\t\t\tif (typeof image.touchesStart.x === 'undefined' && e) {\r\n\t\t\t\t\ttouchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\r\n\t\t\t\t\ttouchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttouchX = image.touchesStart.x;\r\n\t\t\t\t\ttouchY = image.touchesStart.y;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tzoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n\t\t\t\tzoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n\t\t\t\tif (e) {\r\n\t\t\t\t\tslideWidth = gesture.$slideEl[0].offsetWidth;\r\n\t\t\t\t\tslideHeight = gesture.$slideEl[0].offsetHeight;\r\n\t\t\t\t\toffsetX = gesture.$slideEl.offset().left;\r\n\t\t\t\t\toffsetY = gesture.$slideEl.offset().top;\r\n\t\t\t\t\tdiffX = (offsetX + (slideWidth / 2)) - touchX;\r\n\t\t\t\t\tdiffY = (offsetY + (slideHeight / 2)) - touchY;\r\n\r\n\t\t\t\t\timageWidth = gesture.$imageEl[0].offsetWidth;\r\n\t\t\t\t\timageHeight = gesture.$imageEl[0].offsetHeight;\r\n\t\t\t\t\tscaledWidth = imageWidth * zoom.scale;\r\n\t\t\t\t\tscaledHeight = imageHeight * zoom.scale;\r\n\r\n\t\t\t\t\ttranslateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\r\n\t\t\t\t\ttranslateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\r\n\t\t\t\t\ttranslateMaxX = -translateMinX;\r\n\t\t\t\t\ttranslateMaxY = -translateMinY;\r\n\r\n\t\t\t\t\ttranslateX = diffX * zoom.scale;\r\n\t\t\t\t\ttranslateY = diffY * zoom.scale;\r\n\r\n\t\t\t\t\tif (translateX < translateMinX) {\r\n\t\t\t\t\t\ttranslateX = translateMinX;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (translateX > translateMaxX) {\r\n\t\t\t\t\t\ttranslateX = translateMaxX;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (translateY < translateMinY) {\r\n\t\t\t\t\t\ttranslateY = translateMinY;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (translateY > translateMaxY) {\r\n\t\t\t\t\t\ttranslateY = translateMaxY;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttranslateX = 0;\r\n\t\t\t\t\ttranslateY = 0;\r\n\t\t\t\t}\r\n\t\t\t\tgesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\r\n\t\t\t\tgesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n\t\t\t},\r\n\t\t\tout() {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tconst params = swiper.params.zoom;\r\n\t\t\t\tconst { gesture } = zoom;\r\n\r\n\t\t\t\tif (!gesture.$slideEl) {\r\n\t\t\t\t\tif (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n\t\t\t\t\t\tgesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tgesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\r\n\t\t\t\t\tgesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n\t\t\t\t}\r\n\t\t\t\tif (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n\r\n\t\t\t\tzoom.scale = 1;\r\n\t\t\t\tzoom.currentScale = 1;\r\n\t\t\t\tgesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\r\n\t\t\t\tgesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\r\n\t\t\t\tgesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\r\n\t\t\t\tgesture.$slideEl = undefined;\r\n\t\t\t},\r\n\t\t\t// Attach/Detach Events\r\n\t\t\tenable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tif (zoom.enabled) return;\r\n\t\t\t\tzoom.enabled = true;\r\n\r\n\t\t\t\tconst passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\tconst activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\r\n\r\n\t\t\t\tconst slideSelector = `.${swiper.params.slideClass}`;\r\n\r\n\t\t\t\t// Scale image\r\n\t\t\t\tif (Support.gestures) {\r\n\t\t\t\t\tswiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t} else if (swiper.touchEvents.start === 'touchstart') {\r\n\t\t\t\t\tswiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\r\n\t\t\t\t\tswiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t\tif (swiper.touchEvents.cancel) {\r\n\t\t\t\t\t\tswiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move image\r\n\t\t\t\tswiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\r\n\t\t\t},\r\n\t\t\tdisable() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = swiper.zoom;\r\n\t\t\t\tif (!zoom.enabled) return;\r\n\r\n\t\t\t\tswiper.zoom.enabled = false;\r\n\r\n\t\t\t\tconst passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\r\n\t\t\t\tconst activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\r\n\r\n\t\t\t\tconst slideSelector = `.${swiper.params.slideClass}`;\r\n\r\n\t\t\t\t// Scale image\r\n\t\t\t\tif (Support.gestures) {\r\n\t\t\t\t\tswiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t} else if (swiper.touchEvents.start === 'touchstart') {\r\n\t\t\t\t\tswiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\r\n\t\t\t\t\tswiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\r\n\t\t\t\t\tswiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t\tif (swiper.touchEvents.cancel) {\r\n\t\t\t\t\t\tswiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move image\r\n\t\t\t\tswiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Zoom$1 = {\r\n\t\t\tname: 'zoom',\r\n\t\t\tparams: {\r\n\t\t\t\tzoom: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tmaxRatio: 3,\r\n\t\t\t\t\tminRatio: 1,\r\n\t\t\t\t\ttoggle: true,\r\n\t\t\t\t\tcontainerClass: 'swiper-zoom-container',\r\n\t\t\t\t\tzoomedSlideClass: 'swiper-slide-zoomed',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst zoom = {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tscale: 1,\r\n\t\t\t\t\tcurrentScale: 1,\r\n\t\t\t\t\tisScaling: false,\r\n\t\t\t\t\tgesture: {\r\n\t\t\t\t\t\t$slideEl: undefined,\r\n\t\t\t\t\t\tslideWidth: undefined,\r\n\t\t\t\t\t\tslideHeight: undefined,\r\n\t\t\t\t\t\t$imageEl: undefined,\r\n\t\t\t\t\t\t$imageWrapEl: undefined,\r\n\t\t\t\t\t\tmaxRatio: 3,\r\n\t\t\t\t\t},\r\n\t\t\t\t\timage: {\r\n\t\t\t\t\t\tisTouched: undefined,\r\n\t\t\t\t\t\tisMoved: undefined,\r\n\t\t\t\t\t\tcurrentX: undefined,\r\n\t\t\t\t\t\tcurrentY: undefined,\r\n\t\t\t\t\t\tminX: undefined,\r\n\t\t\t\t\t\tminY: undefined,\r\n\t\t\t\t\t\tmaxX: undefined,\r\n\t\t\t\t\t\tmaxY: undefined,\r\n\t\t\t\t\t\twidth: undefined,\r\n\t\t\t\t\t\theight: undefined,\r\n\t\t\t\t\t\tstartX: undefined,\r\n\t\t\t\t\t\tstartY: undefined,\r\n\t\t\t\t\t\ttouchesStart: {},\r\n\t\t\t\t\t\ttouchesCurrent: {},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tvelocity: {\r\n\t\t\t\t\t\tx: undefined,\r\n\t\t\t\t\t\ty: undefined,\r\n\t\t\t\t\t\tprevPositionX: undefined,\r\n\t\t\t\t\t\tprevPositionY: undefined,\r\n\t\t\t\t\t\tprevTime: undefined,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\r\n\t\t\t\t('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\r\n\t\t\t\t\tzoom[methodName] = Zoom[methodName].bind(swiper);\r\n\t\t\t\t});\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tzoom,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tlet scale = 1;\r\n\t\t\t\tObject.defineProperty(swiper.zoom, 'scale', {\r\n\t\t\t\t\tget() {\r\n\t\t\t\t\t\treturn scale;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tset(value) {\r\n\t\t\t\t\t\tif (scale !== value) {\r\n\t\t\t\t\t\t\tconst imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\r\n\t\t\t\t\t\t\tconst slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\r\n\t\t\t\t\t\t\tswiper.emit('zoomChange', value, imageEl, slideEl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tscale = value;\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.zoom.enabled) {\r\n\t\t\t\t\t\tswiper.zoom.enable();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tswiper.zoom.disable();\r\n\t\t\t\t},\r\n\t\t\t\ttouchStart(e) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.zoom.enabled) return;\r\n\t\t\t\t\tswiper.zoom.onTouchStart(e);\r\n\t\t\t\t},\r\n\t\t\t\ttouchEnd(e) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.zoom.enabled) return;\r\n\t\t\t\t\tswiper.zoom.onTouchEnd(e);\r\n\t\t\t\t},\r\n\t\t\t\tdoubleTap(e) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\r\n\t\t\t\t\t\tswiper.zoom.toggle(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttransitionEnd() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.zoom.enabled && swiper.params.zoom.enabled) {\r\n\t\t\t\t\t\tswiper.zoom.onTransitionEnd();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tslideChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.zoom.onTransitionEnd();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Lazy = {\r\n\t\t\tloadInSlide(index, loadInDuplicate = true) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.lazy;\r\n\t\t\t\tif (typeof index === 'undefined') return;\r\n\t\t\t\tif (swiper.slides.length === 0) return;\r\n\t\t\t\tconst isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n\r\n\t\t\t\tconst $slideEl = isVirtual\r\n\t\t\t\t\t? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\r\n\t\t\t\t\t: swiper.slides.eq(index);\r\n\r\n\t\t\t\tlet $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\r\n\t\t\t\tif ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\r\n\t\t\t\t\t$images = $images.add($slideEl[0]);\r\n\t\t\t\t}\r\n\t\t\t\tif ($images.length === 0) return;\r\n\r\n\t\t\t\t$images.each((imageIndex, imageEl) => {\r\n\t\t\t\t\tconst $imageEl = $(imageEl);\r\n\t\t\t\t\t$imageEl.addClass(params.loadingClass);\r\n\r\n\t\t\t\t\tconst background = $imageEl.attr('data-background');\r\n\t\t\t\t\tconst src = $imageEl.attr('data-src');\r\n\t\t\t\t\tconst srcset = $imageEl.attr('data-srcset');\r\n\t\t\t\t\tconst sizes = $imageEl.attr('data-sizes');\r\n\t\t\t\t\tconst $pictureEl = $imageEl.parent('picture');\r\n\r\n\t\t\t\t\tswiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\r\n\t\t\t\t\t\tif (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\r\n\t\t\t\t\t\tif (background) {\r\n\t\t\t\t\t\t\t$imageEl.css('background-image', `url(\"${background}\")`);\r\n\t\t\t\t\t\t\t$imageEl.removeAttr('data-background');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (srcset) {\r\n\t\t\t\t\t\t\t\t$imageEl.attr('srcset', srcset);\r\n\t\t\t\t\t\t\t\t$imageEl.removeAttr('data-srcset');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (sizes) {\r\n\t\t\t\t\t\t\t\t$imageEl.attr('sizes', sizes);\r\n\t\t\t\t\t\t\t\t$imageEl.removeAttr('data-sizes');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ($pictureEl.length) {\r\n\t\t\t\t\t\t\t\t$pictureEl.children('source').each((sourceIndex, sourceEl) => {\r\n\t\t\t\t\t\t\t\t\tconst $source = $(sourceEl);\r\n\r\n\t\t\t\t\t\t\t\t\tif ($source.attr('data-srcset')) {\r\n\t\t\t\t\t\t\t\t\t\t$source.attr('srcset', $source.attr('data-srcset'));\r\n\t\t\t\t\t\t\t\t\t\t$source.removeAttr('data-srcset');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (src) {\r\n\t\t\t\t\t\t\t\t$imageEl.attr('src', src);\r\n\t\t\t\t\t\t\t\t$imageEl.removeAttr('data-src');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\r\n\t\t\t\t\t\t$slideEl.find(`.${params.preloaderClass}`).remove();\r\n\t\t\t\t\t\tif (swiper.params.loop && loadInDuplicate) {\r\n\t\t\t\t\t\t\tconst slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\r\n\t\t\t\t\t\t\tif ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\r\n\t\t\t\t\t\t\t\tconst originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\r\n\t\t\t\t\t\t\t\tswiper.lazy.loadInSlide(originalSlide.index(), false);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconst duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\r\n\t\t\t\t\t\t\t\tswiper.lazy.loadInSlide(duplicatedSlide.index(), false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tswiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\r\n\t\t\t\t\t\tif (swiper.params.autoHeight) {\r\n\t\t\t\t\t\t\tswiper.updateAutoHeight();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tswiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tload() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\t$wrapperEl, params: swiperParams, slides, activeIndex,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tconst isVirtual = swiper.virtual && swiperParams.virtual.enabled;\r\n\t\t\t\tconst params = swiperParams.lazy;\r\n\r\n\t\t\t\tlet slidesPerView = swiperParams.slidesPerView;\r\n\t\t\t\tif (slidesPerView === 'auto') {\r\n\t\t\t\t\tslidesPerView = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction slideExist(index) {\r\n\t\t\t\t\tif (isVirtual) {\r\n\t\t\t\t\t\tif ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (slides[index]) return true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction slideIndex(slideEl) {\r\n\t\t\t\t\tif (isVirtual) {\r\n\t\t\t\t\t\treturn $(slideEl).attr('data-swiper-slide-index');\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn $(slideEl).index();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\r\n\t\t\t\tif (swiper.params.watchSlidesVisibility) {\r\n\t\t\t\t\t$wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\r\n\t\t\t\t\t\tconst index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\r\n\t\t\t\t\t\tswiper.lazy.loadInSlide(index);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (slidesPerView > 1) {\r\n\t\t\t\t\tfor (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\r\n\t\t\t\t\t\tif (slideExist(i)) swiper.lazy.loadInSlide(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.lazy.loadInSlide(activeIndex);\r\n\t\t\t\t}\r\n\t\t\t\tif (params.loadPrevNext) {\r\n\t\t\t\t\tif (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\r\n\t\t\t\t\t\tconst amount = params.loadPrevNextAmount;\r\n\t\t\t\t\t\tconst spv = slidesPerView;\r\n\t\t\t\t\t\tconst maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\r\n\t\t\t\t\t\tconst minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\r\n\t\t\t\t\t\t// Next Slides\r\n\t\t\t\t\t\tfor (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\r\n\t\t\t\t\t\t\tif (slideExist(i)) swiper.lazy.loadInSlide(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Prev Slides\r\n\t\t\t\t\t\tfor (let i = minIndex; i < activeIndex; i += 1) {\r\n\t\t\t\t\t\t\tif (slideExist(i)) swiper.lazy.loadInSlide(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\r\n\t\t\t\t\t\tif (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\r\n\r\n\t\t\t\t\t\tconst prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\r\n\t\t\t\t\t\tif (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Lazy$1 = {\r\n\t\t\tname: 'lazy',\r\n\t\t\tparams: {\r\n\t\t\t\tlazy: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tloadPrevNext: false,\r\n\t\t\t\t\tloadPrevNextAmount: 1,\r\n\t\t\t\t\tloadOnTransitionStart: false,\r\n\r\n\t\t\t\t\telementClass: 'swiper-lazy',\r\n\t\t\t\t\tloadingClass: 'swiper-lazy-loading',\r\n\t\t\t\t\tloadedClass: 'swiper-lazy-loaded',\r\n\t\t\t\t\tpreloaderClass: 'swiper-lazy-preloader',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tlazy: {\r\n\t\t\t\t\t\tinitialImageLoaded: false,\r\n\t\t\t\t\t\tload: Lazy.load.bind(swiper),\r\n\t\t\t\t\t\tloadInSlide: Lazy.loadInSlide.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled && swiper.params.preloadImages) {\r\n\t\t\t\t\t\tswiper.params.preloadImages = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tscroll() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.freeMode && !swiper.params.freeModeSticky) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresize() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tscrollbarDragMove() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttransitionStart() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled) {\r\n\t\t\t\t\t\tif (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\r\n\t\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttransitionEnd() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tslideChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.lazy.enabled && swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.lazy.load();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\t/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\r\n\r\n\t\tconst Controller = {\r\n\t\t\tLinearSpline: function LinearSpline(x, y) {\r\n\t\t\t\tconst binarySearch = (function search() {\r\n\t\t\t\t\tlet maxIndex;\r\n\t\t\t\t\tlet minIndex;\r\n\t\t\t\t\tlet guess;\r\n\t\t\t\t\treturn (array, val) => {\r\n\t\t\t\t\t\tminIndex = -1;\r\n\t\t\t\t\t\tmaxIndex = array.length;\r\n\t\t\t\t\t\twhile (maxIndex - minIndex > 1) {\r\n\t\t\t\t\t\t\tguess = maxIndex + minIndex >> 1;\r\n\t\t\t\t\t\t\tif (array[guess] <= val) {\r\n\t\t\t\t\t\t\t\tminIndex = guess;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tmaxIndex = guess;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn maxIndex;\r\n\t\t\t\t\t};\r\n\t\t\t\t}());\r\n\t\t\t\tthis.x = x;\r\n\t\t\t\tthis.y = y;\r\n\t\t\t\tthis.lastIndex = x.length - 1;\r\n\t\t\t\t// Given an x value (x2), return the expected y2 value:\r\n\t\t\t\t// (x1,y1) is the known point before given value,\r\n\t\t\t\t// (x3,y3) is the known point after given value.\r\n\t\t\t\tlet i1;\r\n\t\t\t\tlet i3;\r\n\r\n\t\t\t\tthis.interpolate = function interpolate(x2) {\r\n\t\t\t\t\tif (!x2) return 0;\r\n\r\n\t\t\t\t\t// Get the indexes of x1 and x3 (the array indexes before and after given x2):\r\n\t\t\t\t\ti3 = binarySearch(this.x, x2);\r\n\t\t\t\t\ti1 = i3 - 1;\r\n\r\n\t\t\t\t\t// We have our indexes i1 & i3, so we can calculate already:\r\n\t\t\t\t\t// y2 := ((x2\u2212x1) \u00D7 (y3\u2212y1)) \u00F7 (x3\u2212x1) + y1\r\n\t\t\t\t\treturn (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\r\n\t\t\t\t};\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// xxx: for now i will just save one spline function to to\r\n\t\t\tgetInterpolateFunction(c) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.controller.spline) {\r\n\t\t\t\t\tswiper.controller.spline = swiper.params.loop\r\n\t\t\t\t\t\t? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\r\n\t\t\t\t\t\t: new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTranslate(setTranslate, byController) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst controlled = swiper.controller.control;\r\n\t\t\t\tlet multiplier;\r\n\t\t\t\tlet controlledTranslate;\r\n\t\t\t\tfunction setControlledTranslate(c) {\r\n\t\t\t\t\t// this will create an Interpolate function based on the snapGrids\r\n\t\t\t\t\t// x is the Grid of the scrolled scroller and y will be the controlled scroller\r\n\t\t\t\t\t// it makes sense to create this only once and recall it for the interpolation\r\n\t\t\t\t\t// the function does a lot of value caching for performance\r\n\t\t\t\t\tconst translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\r\n\t\t\t\t\tif (swiper.params.controller.by === 'slide') {\r\n\t\t\t\t\t\tswiper.controller.getInterpolateFunction(c);\r\n\t\t\t\t\t\t// i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\r\n\t\t\t\t\t\t// but it did not work out\r\n\t\t\t\t\t\tcontrolledTranslate = -swiper.controller.spline.interpolate(-translate);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!controlledTranslate || swiper.params.controller.by === 'container') {\r\n\t\t\t\t\t\tmultiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\r\n\t\t\t\t\t\tcontrolledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (swiper.params.controller.inverse) {\r\n\t\t\t\t\t\tcontrolledTranslate = c.maxTranslate() - controlledTranslate;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tc.updateProgress(controlledTranslate);\r\n\t\t\t\t\tc.setTranslate(controlledTranslate, swiper);\r\n\t\t\t\t\tc.updateActiveIndex();\r\n\t\t\t\t\tc.updateSlidesClasses();\r\n\t\t\t\t}\r\n\t\t\t\tif (Array.isArray(controlled)) {\r\n\t\t\t\t\tfor (let i = 0; i < controlled.length; i += 1) {\r\n\t\t\t\t\t\tif (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n\t\t\t\t\t\t\tsetControlledTranslate(controlled[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (controlled instanceof Swiper && byController !== controlled) {\r\n\t\t\t\t\tsetControlledTranslate(controlled);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTransition(duration, byController) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst controlled = swiper.controller.control;\r\n\t\t\t\tlet i;\r\n\t\t\t\tfunction setControlledTransition(c) {\r\n\t\t\t\t\tc.setTransition(duration, swiper);\r\n\t\t\t\t\tif (duration !== 0) {\r\n\t\t\t\t\t\tc.transitionStart();\r\n\t\t\t\t\t\tif (c.params.autoHeight) {\r\n\t\t\t\t\t\t\tUtils.nextTick(() => {\r\n\t\t\t\t\t\t\t\tc.updateAutoHeight();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tc.$wrapperEl.transitionEnd(() => {\r\n\t\t\t\t\t\t\tif (!controlled) return;\r\n\t\t\t\t\t\t\tif (c.params.loop && swiper.params.controller.by === 'slide') {\r\n\t\t\t\t\t\t\t\tc.loopFix();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tc.transitionEnd();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (Array.isArray(controlled)) {\r\n\t\t\t\t\tfor (i = 0; i < controlled.length; i += 1) {\r\n\t\t\t\t\t\tif (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n\t\t\t\t\t\t\tsetControlledTransition(controlled[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (controlled instanceof Swiper && byController !== controlled) {\r\n\t\t\t\t\tsetControlledTransition(controlled);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tvar Controller$1 = {\r\n\t\t\tname: 'controller',\r\n\t\t\tparams: {\r\n\t\t\t\tcontroller: {\r\n\t\t\t\t\tcontrol: undefined,\r\n\t\t\t\t\tinverse: false,\r\n\t\t\t\t\tby: 'slide', // or 'container'\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tcontroller: {\r\n\t\t\t\t\t\tcontrol: swiper.params.controller.control,\r\n\t\t\t\t\t\tgetInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\r\n\t\t\t\t\t\tsetTranslate: Controller.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Controller.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tupdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.controller.control) return;\r\n\t\t\t\t\tif (swiper.controller.spline) {\r\n\t\t\t\t\t\tswiper.controller.spline = undefined;\r\n\t\t\t\t\t\tdelete swiper.controller.spline;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresize() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.controller.control) return;\r\n\t\t\t\t\tif (swiper.controller.spline) {\r\n\t\t\t\t\t\tswiper.controller.spline = undefined;\r\n\t\t\t\t\t\tdelete swiper.controller.spline;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tobserverUpdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.controller.control) return;\r\n\t\t\t\t\tif (swiper.controller.spline) {\r\n\t\t\t\t\t\tswiper.controller.spline = undefined;\r\n\t\t\t\t\t\tdelete swiper.controller.spline;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate(translate, byController) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.controller.control) return;\r\n\t\t\t\t\tswiper.controller.setTranslate(translate, byController);\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration, byController) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.controller.control) return;\r\n\t\t\t\t\tswiper.controller.setTransition(duration, byController);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst a11y = {\r\n\t\t\tmakeElFocusable($el) {\r\n\t\t\t\t$el.attr('tabIndex', '0');\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\tmakeElNotFocusable($el) {\r\n\t\t\t\t$el.attr('tabIndex', '-1');\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\taddElRole($el, role) {\r\n\t\t\t\t$el.attr('role', role);\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\taddElLabel($el, label) {\r\n\t\t\t\t$el.attr('aria-label', label);\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\tdisableEl($el) {\r\n\t\t\t\t$el.attr('aria-disabled', true);\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\tenableEl($el) {\r\n\t\t\t\t$el.attr('aria-disabled', false);\r\n\t\t\t\treturn $el;\r\n\t\t\t},\r\n\t\t\tonEnterKey(e) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.a11y;\r\n\t\t\t\tif (e.keyCode !== 13) return;\r\n\t\t\t\tconst $targetEl = $(e.target);\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\r\n\t\t\t\t\tif (!(swiper.isEnd && !swiper.params.loop)) {\r\n\t\t\t\t\t\tswiper.slideNext();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.isEnd) {\r\n\t\t\t\t\t\tswiper.a11y.notify(params.lastSlideMessage);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.a11y.notify(params.nextSlideMessage);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\r\n\t\t\t\t\tif (!(swiper.isBeginning && !swiper.params.loop)) {\r\n\t\t\t\t\t\tswiper.slidePrev();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.isBeginning) {\r\n\t\t\t\t\t\tswiper.a11y.notify(params.firstSlideMessage);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.a11y.notify(params.prevSlideMessage);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\r\n\t\t\t\t\t$targetEl[0].click();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnotify(message) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst notification = swiper.a11y.liveRegion;\r\n\t\t\t\tif (notification.length === 0) return;\r\n\t\t\t\tnotification.html('');\r\n\t\t\t\tnotification.html(message);\r\n\t\t\t},\r\n\t\t\tupdateNavigation() {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tif (swiper.params.loop || !swiper.navigation) return;\r\n\t\t\t\tconst { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n\t\t\t\tif ($prevEl && $prevEl.length > 0) {\r\n\t\t\t\t\tif (swiper.isBeginning) {\r\n\t\t\t\t\t\tswiper.a11y.disableEl($prevEl);\r\n\t\t\t\t\t\tswiper.a11y.makeElNotFocusable($prevEl);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.a11y.enableEl($prevEl);\r\n\t\t\t\t\t\tswiper.a11y.makeElFocusable($prevEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif ($nextEl && $nextEl.length > 0) {\r\n\t\t\t\t\tif (swiper.isEnd) {\r\n\t\t\t\t\t\tswiper.a11y.disableEl($nextEl);\r\n\t\t\t\t\t\tswiper.a11y.makeElNotFocusable($nextEl);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.a11y.enableEl($nextEl);\r\n\t\t\t\t\t\tswiper.a11y.makeElFocusable($nextEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tupdatePagination() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst params = swiper.params.a11y;\r\n\t\t\t\tif (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n\t\t\t\t\tswiper.pagination.bullets.each((bulletIndex, bulletEl) => {\r\n\t\t\t\t\t\tconst $bulletEl = $(bulletEl);\r\n\t\t\t\t\t\tswiper.a11y.makeElFocusable($bulletEl);\r\n\t\t\t\t\t\tswiper.a11y.addElRole($bulletEl, 'button');\r\n\t\t\t\t\t\tswiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\r\n\t\t\t\tswiper.$el.append(swiper.a11y.liveRegion);\r\n\r\n\t\t\t\t// Navigation\r\n\t\t\t\tconst params = swiper.params.a11y;\r\n\t\t\t\tlet $nextEl;\r\n\t\t\t\tlet $prevEl;\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$nextEl) {\r\n\t\t\t\t\t$nextEl = swiper.navigation.$nextEl;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$prevEl) {\r\n\t\t\t\t\t$prevEl = swiper.navigation.$prevEl;\r\n\t\t\t\t}\r\n\t\t\t\tif ($nextEl) {\r\n\t\t\t\t\tswiper.a11y.makeElFocusable($nextEl);\r\n\t\t\t\t\tswiper.a11y.addElRole($nextEl, 'button');\r\n\t\t\t\t\tswiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\r\n\t\t\t\t\t$nextEl.on('keydown', swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\t\t\t\tif ($prevEl) {\r\n\t\t\t\t\tswiper.a11y.makeElFocusable($prevEl);\r\n\t\t\t\t\tswiper.a11y.addElRole($prevEl, 'button');\r\n\t\t\t\t\tswiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\r\n\t\t\t\t\t$prevEl.on('keydown', swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Pagination\r\n\t\t\t\tif (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n\t\t\t\t\tswiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\r\n\r\n\t\t\t\tlet $nextEl;\r\n\t\t\t\tlet $prevEl;\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$nextEl) {\r\n\t\t\t\t\t$nextEl = swiper.navigation.$nextEl;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.navigation && swiper.navigation.$prevEl) {\r\n\t\t\t\t\t$prevEl = swiper.navigation.$prevEl;\r\n\t\t\t\t}\r\n\t\t\t\tif ($nextEl) {\r\n\t\t\t\t\t$nextEl.off('keydown', swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\t\t\t\tif ($prevEl) {\r\n\t\t\t\t\t$prevEl.off('keydown', swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Pagination\r\n\t\t\t\tif (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n\t\t\t\t\tswiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tvar A11y = {\r\n\t\t\tname: 'a11y',\r\n\t\t\tparams: {\r\n\t\t\t\ta11y: {\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tnotificationClass: 'swiper-notification',\r\n\t\t\t\t\tprevSlideMessage: 'Previous slide',\r\n\t\t\t\t\tnextSlideMessage: 'Next slide',\r\n\t\t\t\t\tfirstSlideMessage: 'This is the first slide',\r\n\t\t\t\t\tlastSlideMessage: 'This is the last slide',\r\n\t\t\t\t\tpaginationBulletMessage: 'Go to slide {{index}}',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\ta11y: {\r\n\t\t\t\t\t\tliveRegion: $(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t\tObject.keys(a11y).forEach((methodName) => {\r\n\t\t\t\t\tswiper.a11y[methodName] = a11y[methodName].bind(swiper);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.a11y.enabled) return;\r\n\t\t\t\t\tswiper.a11y.init();\r\n\t\t\t\t\tswiper.a11y.updateNavigation();\r\n\t\t\t\t},\r\n\t\t\t\ttoEdge() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.a11y.enabled) return;\r\n\t\t\t\t\tswiper.a11y.updateNavigation();\r\n\t\t\t\t},\r\n\t\t\t\tfromEdge() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.a11y.enabled) return;\r\n\t\t\t\t\tswiper.a11y.updateNavigation();\r\n\t\t\t\t},\r\n\t\t\t\tpaginationUpdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.a11y.enabled) return;\r\n\t\t\t\t\tswiper.a11y.updatePagination();\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.params.a11y.enabled) return;\r\n\t\t\t\t\tswiper.a11y.destroy();\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst History = {\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.history) return;\r\n\t\t\t\tif (!win.history || !win.history.pushState) {\r\n\t\t\t\t\tswiper.params.history.enabled = false;\r\n\t\t\t\t\tswiper.params.hashNavigation.enabled = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst history = swiper.history;\r\n\t\t\t\thistory.initialized = true;\r\n\t\t\t\thistory.paths = History.getPathValues();\r\n\t\t\t\tif (!history.paths.key && !history.paths.value) return;\r\n\t\t\t\thistory.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\r\n\t\t\t\tif (!swiper.params.history.replaceState) {\r\n\t\t\t\t\twin.addEventListener('popstate', swiper.history.setHistoryPopState);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.history.replaceState) {\r\n\t\t\t\t\twin.removeEventListener('popstate', swiper.history.setHistoryPopState);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetHistoryPopState() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.history.paths = History.getPathValues();\r\n\t\t\t\tswiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\r\n\t\t\t},\r\n\t\t\tgetPathValues() {\r\n\t\t\t\tconst pathArray = win.location.pathname.slice(1).split('/').filter((part) => part !== '');\r\n\t\t\t\tconst total = pathArray.length;\r\n\t\t\t\tconst key = pathArray[total - 2];\r\n\t\t\t\tconst value = pathArray[total - 1];\r\n\t\t\t\treturn { key, value };\r\n\t\t\t},\r\n\t\t\tsetHistory(key, index) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.history.initialized || !swiper.params.history.enabled) return;\r\n\t\t\t\tconst slide = swiper.slides.eq(index);\r\n\t\t\t\tlet value = History.slugify(slide.attr('data-history'));\r\n\t\t\t\tif (!win.location.pathname.includes(key)) {\r\n\t\t\t\t\tvalue = `${key}/${value}`;\r\n\t\t\t\t}\r\n\t\t\t\tconst currentState = win.history.state;\r\n\t\t\t\tif (currentState && currentState.value === value) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.history.replaceState) {\r\n\t\t\t\t\twin.history.replaceState({ value }, null, value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twin.history.pushState({ value }, null, value);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tslugify(text) {\r\n\t\t\t\treturn text.toString()\r\n\t\t\t\t\t.replace(/\\s+/g, '-')\r\n\t\t\t\t\t.replace(/[^\\w-]+/g, '')\r\n\t\t\t\t\t.replace(/--+/g, '-')\r\n\t\t\t\t\t.replace(/^-+/, '')\r\n\t\t\t\t\t.replace(/-+$/, '');\r\n\t\t\t},\r\n\t\t\tscrollToSlide(speed, value, runCallbacks) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tfor (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n\t\t\t\t\t\tconst slide = swiper.slides.eq(i);\r\n\t\t\t\t\t\tconst slideHistory = History.slugify(slide.attr('data-history'));\r\n\t\t\t\t\t\tif (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n\t\t\t\t\t\t\tconst index = slide.index();\r\n\t\t\t\t\t\t\tswiper.slideTo(index, speed, runCallbacks);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.slideTo(0, speed, runCallbacks);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar History$1 = {\r\n\t\t\tname: 'history',\r\n\t\t\tparams: {\r\n\t\t\t\thistory: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\treplaceState: false,\r\n\t\t\t\t\tkey: 'slides',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\thistory: {\r\n\t\t\t\t\t\tinit: History.init.bind(swiper),\r\n\t\t\t\t\t\tsetHistory: History.setHistory.bind(swiper),\r\n\t\t\t\t\t\tsetHistoryPopState: History.setHistoryPopState.bind(swiper),\r\n\t\t\t\t\t\tscrollToSlide: History.scrollToSlide.bind(swiper),\r\n\t\t\t\t\t\tdestroy: History.destroy.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.history.enabled) {\r\n\t\t\t\t\t\tswiper.history.init();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.history.enabled) {\r\n\t\t\t\t\t\tswiper.history.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttransitionEnd() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.history.initialized) {\r\n\t\t\t\t\t\tswiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tslideChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.history.initialized && swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst HashNavigation = {\r\n\t\t\tonHashCange() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.emit('hashChange');\r\n\t\t\t\tconst newHash = doc.location.hash.replace('#', '');\r\n\t\t\t\tconst activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\r\n\t\t\t\tif (newHash !== activeSlideHash) {\r\n\t\t\t\t\tconst newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\r\n\t\t\t\t\tif (typeof newIndex === 'undefined') return;\r\n\t\t\t\t\tswiper.slideTo(newIndex);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetHash() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\r\n\t\t\t\tif (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\r\n\t\t\t\t\twin.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\r\n\t\t\t\t\tswiper.emit('hashSet');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst slide = swiper.slides.eq(swiper.activeIndex);\r\n\t\t\t\t\tconst hash = slide.attr('data-hash') || slide.attr('data-history');\r\n\t\t\t\t\tdoc.location.hash = hash || '';\r\n\t\t\t\t\tswiper.emit('hashSet');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\r\n\t\t\t\tswiper.hashNavigation.initialized = true;\r\n\t\t\t\tconst hash = doc.location.hash.replace('#', '');\r\n\t\t\t\tif (hash) {\r\n\t\t\t\t\tconst speed = 0;\r\n\t\t\t\t\tfor (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n\t\t\t\t\t\tconst slide = swiper.slides.eq(i);\r\n\t\t\t\t\t\tconst slideHash = slide.attr('data-hash') || slide.attr('data-history');\r\n\t\t\t\t\t\tif (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n\t\t\t\t\t\t\tconst index = slide.index();\r\n\t\t\t\t\t\t\tswiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.hashNavigation.watchState) {\r\n\t\t\t\t\t$(win).on('hashchange', swiper.hashNavigation.onHashCange);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdestroy() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (swiper.params.hashNavigation.watchState) {\r\n\t\t\t\t\t$(win).off('hashchange', swiper.hashNavigation.onHashCange);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tvar HashNavigation$1 = {\r\n\t\t\tname: 'hash-navigation',\r\n\t\t\tparams: {\r\n\t\t\t\thashNavigation: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\treplaceState: false,\r\n\t\t\t\t\twatchState: false,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\thashNavigation: {\r\n\t\t\t\t\t\tinitialized: false,\r\n\t\t\t\t\t\tinit: HashNavigation.init.bind(swiper),\r\n\t\t\t\t\t\tdestroy: HashNavigation.destroy.bind(swiper),\r\n\t\t\t\t\t\tsetHash: HashNavigation.setHash.bind(swiper),\r\n\t\t\t\t\t\tonHashCange: HashNavigation.onHashCange.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.hashNavigation.enabled) {\r\n\t\t\t\t\t\tswiper.hashNavigation.init();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.hashNavigation.enabled) {\r\n\t\t\t\t\t\tswiper.hashNavigation.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttransitionEnd() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.hashNavigation.initialized) {\r\n\t\t\t\t\t\tswiper.hashNavigation.setHash();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tslideChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.hashNavigation.initialized && swiper.params.cssMode) {\r\n\t\t\t\t\t\tswiper.hashNavigation.setHash();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\t/* eslint no-underscore-dangle: \"off\" */\r\n\r\n\t\tconst Autoplay = {\r\n\t\t\trun() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\r\n\t\t\t\tlet delay = swiper.params.autoplay.delay;\r\n\t\t\t\tif ($activeSlideEl.attr('data-swiper-autoplay')) {\r\n\t\t\t\t\tdelay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\r\n\t\t\t\t}\r\n\t\t\t\tclearTimeout(swiper.autoplay.timeout);\r\n\t\t\t\tswiper.autoplay.timeout = Utils.nextTick(() => {\r\n\t\t\t\t\tif (swiper.params.autoplay.reverseDirection) {\r\n\t\t\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\t\tswiper.slidePrev(swiper.params.speed, true, true);\r\n\t\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t\t} else if (!swiper.isBeginning) {\r\n\t\t\t\t\t\t\tswiper.slidePrev(swiper.params.speed, true, true);\r\n\t\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t\t} else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n\t\t\t\t\t\t\tswiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\r\n\t\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (swiper.params.loop) {\r\n\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\tswiper.slideNext(swiper.params.speed, true, true);\r\n\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t} else if (!swiper.isEnd) {\r\n\t\t\t\t\t\tswiper.slideNext(swiper.params.speed, true, true);\r\n\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t} else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n\t\t\t\t\t\tswiper.slideTo(0, swiper.params.speed, true, true);\r\n\t\t\t\t\t\tswiper.emit('autoplay');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\r\n\t\t\t\t}, delay);\r\n\t\t\t},\r\n\t\t\tstart() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (typeof swiper.autoplay.timeout !== 'undefined') return false;\r\n\t\t\t\tif (swiper.autoplay.running) return false;\r\n\t\t\t\tswiper.autoplay.running = true;\r\n\t\t\t\tswiper.emit('autoplayStart');\r\n\t\t\t\tswiper.autoplay.run();\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\tstop() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.autoplay.running) return false;\r\n\t\t\t\tif (typeof swiper.autoplay.timeout === 'undefined') return false;\r\n\r\n\t\t\t\tif (swiper.autoplay.timeout) {\r\n\t\t\t\t\tclearTimeout(swiper.autoplay.timeout);\r\n\t\t\t\t\tswiper.autoplay.timeout = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.autoplay.running = false;\r\n\t\t\t\tswiper.emit('autoplayStop');\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\t\t\tpause(speed) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tif (!swiper.autoplay.running) return;\r\n\t\t\t\tif (swiper.autoplay.paused) return;\r\n\t\t\t\tif (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\r\n\t\t\t\tswiper.autoplay.paused = true;\r\n\t\t\t\tif (speed === 0 || !swiper.params.autoplay.waitForTransition) {\r\n\t\t\t\t\tswiper.autoplay.paused = false;\r\n\t\t\t\t\tswiper.autoplay.run();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n\t\t\t\t\tswiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar Autoplay$1 = {\r\n\t\t\tname: 'autoplay',\r\n\t\t\tparams: {\r\n\t\t\t\tautoplay: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tdelay: 3000,\r\n\t\t\t\t\twaitForTransition: true,\r\n\t\t\t\t\tdisableOnInteraction: true,\r\n\t\t\t\t\tstopOnLastSlide: false,\r\n\t\t\t\t\treverseDirection: false,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tautoplay: {\r\n\t\t\t\t\t\trunning: false,\r\n\t\t\t\t\t\tpaused: false,\r\n\t\t\t\t\t\trun: Autoplay.run.bind(swiper),\r\n\t\t\t\t\t\tstart: Autoplay.start.bind(swiper),\r\n\t\t\t\t\t\tstop: Autoplay.stop.bind(swiper),\r\n\t\t\t\t\t\tpause: Autoplay.pause.bind(swiper),\r\n\t\t\t\t\t\tonVisibilityChange() {\r\n\t\t\t\t\t\t\tif (document.visibilityState === 'hidden' && swiper.autoplay.running) {\r\n\t\t\t\t\t\t\t\tswiper.autoplay.pause();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (document.visibilityState === 'visible' && swiper.autoplay.paused) {\r\n\t\t\t\t\t\t\t\tswiper.autoplay.run();\r\n\t\t\t\t\t\t\t\tswiper.autoplay.paused = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonTransitionEnd(e) {\r\n\t\t\t\t\t\t\tif (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\r\n\t\t\t\t\t\t\tif (e.target !== this) return;\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n\t\t\t\t\t\t\tswiper.autoplay.paused = false;\r\n\t\t\t\t\t\t\tif (!swiper.autoplay.running) {\r\n\t\t\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tswiper.autoplay.run();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tinit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.autoplay.enabled) {\r\n\t\t\t\t\t\tswiper.autoplay.start();\r\n\t\t\t\t\t\tdocument.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tbeforeTransitionStart(speed, internal) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.autoplay.running) {\r\n\t\t\t\t\t\tif (internal || !swiper.params.autoplay.disableOnInteraction) {\r\n\t\t\t\t\t\t\tswiper.autoplay.pause(speed);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsliderFirstMove() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.autoplay.running) {\r\n\t\t\t\t\t\tif (swiper.params.autoplay.disableOnInteraction) {\r\n\t\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswiper.autoplay.pause();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttouchEnd() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\r\n\t\t\t\t\t\tswiper.autoplay.run();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.autoplay.running) {\r\n\t\t\t\t\t\tswiper.autoplay.stop();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdocument.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Fade = {\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { slides } = swiper;\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tconst $slideEl = swiper.slides.eq(i);\r\n\t\t\t\t\tconst offset = $slideEl[0].swiperSlideOffset;\r\n\t\t\t\t\tlet tx = -offset;\r\n\t\t\t\t\tif (!swiper.params.virtualTranslate) tx -= swiper.translate;\r\n\t\t\t\t\tlet ty = 0;\r\n\t\t\t\t\tif (!swiper.isHorizontal()) {\r\n\t\t\t\t\t\tty = tx;\r\n\t\t\t\t\t\ttx = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst slideOpacity = swiper.params.fadeEffect.crossFade\r\n\t\t\t\t\t\t? Math.max(1 - Math.abs($slideEl[0].progress), 0)\r\n\t\t\t\t\t\t: 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\r\n\t\t\t\t\t$slideEl\r\n\t\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\topacity: slideOpacity,\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.transform(`translate3d(${tx}px, ${ty}px, 0px)`);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTransition(duration) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { slides, $wrapperEl } = swiper;\r\n\t\t\t\tslides.transition(duration);\r\n\t\t\t\tif (swiper.params.virtualTranslate && duration !== 0) {\r\n\t\t\t\t\tlet eventTriggered = false;\r\n\t\t\t\t\tslides.transitionEnd(() => {\r\n\t\t\t\t\t\tif (eventTriggered) return;\r\n\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\teventTriggered = true;\r\n\t\t\t\t\t\tswiper.animating = false;\r\n\t\t\t\t\t\tconst triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n\t\t\t\t\t\tfor (let i = 0; i < triggerEvents.length; i += 1) {\r\n\t\t\t\t\t\t\t$wrapperEl.trigger(triggerEvents[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar EffectFade = {\r\n\t\t\tname: 'effect-fade',\r\n\t\t\tparams: {\r\n\t\t\t\tfadeEffect: {\r\n\t\t\t\t\tcrossFade: false,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tfadeEffect: {\r\n\t\t\t\t\t\tsetTranslate: Fade.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Fade.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'fade') return;\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\r\n\t\t\t\t\tconst overwriteParams = {\r\n\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\tslidesPerColumn: 1,\r\n\t\t\t\t\t\tslidesPerGroup: 1,\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tspaceBetween: 0,\r\n\t\t\t\t\t\tvirtualTranslate: true,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tUtils.extend(swiper.params, overwriteParams);\r\n\t\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'fade') return;\r\n\t\t\t\t\tswiper.fadeEffect.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'fade') return;\r\n\t\t\t\t\tswiper.fadeEffect.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Cube = {\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\t$el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tconst params = swiper.params.cubeEffect;\r\n\t\t\t\tconst isHorizontal = swiper.isHorizontal();\r\n\t\t\t\tconst isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n\t\t\t\tlet wrapperRotate = 0;\r\n\t\t\t\tlet $cubeShadowEl;\r\n\t\t\t\tif (params.shadow) {\r\n\t\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\t\t$cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\r\n\t\t\t\t\t\tif ($cubeShadowEl.length === 0) {\r\n\t\t\t\t\t\t\t$cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\r\n\t\t\t\t\t\t\t$wrapperEl.append($cubeShadowEl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$cubeShadowEl.css({ height: `${swiperWidth}px` });\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$cubeShadowEl = $el.find('.swiper-cube-shadow');\r\n\t\t\t\t\t\tif ($cubeShadowEl.length === 0) {\r\n\t\t\t\t\t\t\t$cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\r\n\t\t\t\t\t\t\t$el.append($cubeShadowEl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tconst $slideEl = slides.eq(i);\r\n\t\t\t\t\tlet slideIndex = i;\r\n\t\t\t\t\tif (isVirtual) {\r\n\t\t\t\t\t\tslideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet slideAngle = slideIndex * 90;\r\n\t\t\t\t\tlet round = Math.floor(slideAngle / 360);\r\n\t\t\t\t\tif (rtl) {\r\n\t\t\t\t\t\tslideAngle = -slideAngle;\r\n\t\t\t\t\t\tround = Math.floor(-slideAngle / 360);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n\t\t\t\t\tlet tx = 0;\r\n\t\t\t\t\tlet ty = 0;\r\n\t\t\t\t\tlet tz = 0;\r\n\t\t\t\t\tif (slideIndex % 4 === 0) {\r\n\t\t\t\t\t\ttx = -round * 4 * swiperSize;\r\n\t\t\t\t\t\ttz = 0;\r\n\t\t\t\t\t} else if ((slideIndex - 1) % 4 === 0) {\r\n\t\t\t\t\t\ttx = 0;\r\n\t\t\t\t\t\ttz = -round * 4 * swiperSize;\r\n\t\t\t\t\t} else if ((slideIndex - 2) % 4 === 0) {\r\n\t\t\t\t\t\ttx = swiperSize + (round * 4 * swiperSize);\r\n\t\t\t\t\t\ttz = swiperSize;\r\n\t\t\t\t\t} else if ((slideIndex - 3) % 4 === 0) {\r\n\t\t\t\t\t\ttx = -swiperSize;\r\n\t\t\t\t\t\ttz = (3 * swiperSize) + (swiperSize * 4 * round);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (rtl) {\r\n\t\t\t\t\t\ttx = -tx;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!isHorizontal) {\r\n\t\t\t\t\t\tty = tx;\r\n\t\t\t\t\t\ttx = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\r\n\t\t\t\t\tif (progress <= 1 && progress > -1) {\r\n\t\t\t\t\t\twrapperRotate = (slideIndex * 90) + (progress * 90);\r\n\t\t\t\t\t\tif (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$slideEl.transform(transform);\r\n\t\t\t\t\tif (params.slideShadows) {\r\n\t\t\t\t\t\t// Set shadows\r\n\t\t\t\t\t\tlet shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n\t\t\t\t\t\tlet shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\t\t\t\t\t\tif (shadowBefore.length === 0) {\r\n\t\t\t\t\t\t\tshadowBefore = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append(shadowBefore);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (shadowAfter.length === 0) {\r\n\t\t\t\t\t\t\tshadowAfter = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append(shadowAfter);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n\t\t\t\t\t\tif (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$wrapperEl.css({\r\n\t\t\t\t\t'-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n\t\t\t\t\t'-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n\t\t\t\t\t'-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n\t\t\t\t\t'transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (params.shadow) {\r\n\t\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\t\t$cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\r\n\t\t\t\t\t\tconst multiplier = 1.5 - (\r\n\t\t\t\t\t\t\t(Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\r\n\t\t\t\t\t\t\t+ (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst scale1 = params.shadowScale;\r\n\t\t\t\t\t\tconst scale2 = params.shadowScale / multiplier;\r\n\t\t\t\t\t\tconst offset = params.shadowOffset;\r\n\t\t\t\t\t\t$cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\r\n\t\t\t\t$wrapperEl\r\n\t\t\t\t\t.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\r\n\t\t\t},\r\n\t\t\tsetTransition(duration) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { $el, slides } = swiper;\r\n\t\t\t\tslides\r\n\t\t\t\t\t.transition(duration)\r\n\t\t\t\t\t.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n\t\t\t\t\t.transition(duration);\r\n\t\t\t\tif (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\r\n\t\t\t\t\t$el.find('.swiper-cube-shadow').transition(duration);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar EffectCube = {\r\n\t\t\tname: 'effect-cube',\r\n\t\t\tparams: {\r\n\t\t\t\tcubeEffect: {\r\n\t\t\t\t\tslideShadows: true,\r\n\t\t\t\t\tshadow: true,\r\n\t\t\t\t\tshadowOffset: 20,\r\n\t\t\t\t\tshadowScale: 0.94,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tcubeEffect: {\r\n\t\t\t\t\t\tsetTranslate: Cube.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Cube.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'cube') return;\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\r\n\t\t\t\t\tconst overwriteParams = {\r\n\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\tslidesPerColumn: 1,\r\n\t\t\t\t\t\tslidesPerGroup: 1,\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tresistanceRatio: 0,\r\n\t\t\t\t\t\tspaceBetween: 0,\r\n\t\t\t\t\t\tcenteredSlides: false,\r\n\t\t\t\t\t\tvirtualTranslate: true,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tUtils.extend(swiper.params, overwriteParams);\r\n\t\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'cube') return;\r\n\t\t\t\t\tswiper.cubeEffect.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'cube') return;\r\n\t\t\t\t\tswiper.cubeEffect.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Flip = {\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { slides, rtlTranslate: rtl } = swiper;\r\n\t\t\t\tfor (let i = 0; i < slides.length; i += 1) {\r\n\t\t\t\t\tconst $slideEl = slides.eq(i);\r\n\t\t\t\t\tlet progress = $slideEl[0].progress;\r\n\t\t\t\t\tif (swiper.params.flipEffect.limitRotation) {\r\n\t\t\t\t\t\tprogress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst offset = $slideEl[0].swiperSlideOffset;\r\n\t\t\t\t\tconst rotate = -180 * progress;\r\n\t\t\t\t\tlet rotateY = rotate;\r\n\t\t\t\t\tlet rotateX = 0;\r\n\t\t\t\t\tlet tx = -offset;\r\n\t\t\t\t\tlet ty = 0;\r\n\t\t\t\t\tif (!swiper.isHorizontal()) {\r\n\t\t\t\t\t\tty = tx;\r\n\t\t\t\t\t\ttx = 0;\r\n\t\t\t\t\t\trotateX = -rotateY;\r\n\t\t\t\t\t\trotateY = 0;\r\n\t\t\t\t\t} else if (rtl) {\r\n\t\t\t\t\t\trotateY = -rotateY;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\r\n\r\n\t\t\t\t\tif (swiper.params.flipEffect.slideShadows) {\r\n\t\t\t\t\t\t// Set shadows\r\n\t\t\t\t\t\tlet shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n\t\t\t\t\t\tlet shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\t\t\t\t\t\tif (shadowBefore.length === 0) {\r\n\t\t\t\t\t\t\tshadowBefore = $(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'left' : 'top'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append(shadowBefore);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (shadowAfter.length === 0) {\r\n\t\t\t\t\t\t\tshadowAfter = $(`<div class=\"swiper-slide-shadow-${swiper.isHorizontal() ? 'right' : 'bottom'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append(shadowAfter);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n\t\t\t\t\t\tif (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$slideEl\r\n\t\t\t\t\t\t.transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTransition(duration) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { slides, activeIndex, $wrapperEl } = swiper;\r\n\t\t\t\tslides\r\n\t\t\t\t\t.transition(duration)\r\n\t\t\t\t\t.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n\t\t\t\t\t.transition(duration);\r\n\t\t\t\tif (swiper.params.virtualTranslate && duration !== 0) {\r\n\t\t\t\t\tlet eventTriggered = false;\r\n\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\tslides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\r\n\t\t\t\t\t\tif (eventTriggered) return;\r\n\t\t\t\t\t\tif (!swiper || swiper.destroyed) return;\r\n\t\t\t\t\t\t// if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\r\n\t\t\t\t\t\teventTriggered = true;\r\n\t\t\t\t\t\tswiper.animating = false;\r\n\t\t\t\t\t\tconst triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n\t\t\t\t\t\tfor (let i = 0; i < triggerEvents.length; i += 1) {\r\n\t\t\t\t\t\t\t$wrapperEl.trigger(triggerEvents[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar EffectFlip = {\r\n\t\t\tname: 'effect-flip',\r\n\t\t\tparams: {\r\n\t\t\t\tflipEffect: {\r\n\t\t\t\t\tslideShadows: true,\r\n\t\t\t\t\tlimitRotation: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tflipEffect: {\r\n\t\t\t\t\t\tsetTranslate: Flip.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Flip.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'flip') return;\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\r\n\t\t\t\t\tconst overwriteParams = {\r\n\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\tslidesPerColumn: 1,\r\n\t\t\t\t\t\tslidesPerGroup: 1,\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tspaceBetween: 0,\r\n\t\t\t\t\t\tvirtualTranslate: true,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tUtils.extend(swiper.params, overwriteParams);\r\n\t\t\t\t\tUtils.extend(swiper.originalParams, overwriteParams);\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'flip') return;\r\n\t\t\t\t\tswiper.flipEffect.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'flip') return;\r\n\t\t\t\t\tswiper.flipEffect.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Coverflow = {\r\n\t\t\tsetTranslate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst {\r\n\t\t\t\t\twidth: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\r\n\t\t\t\t} = swiper;\r\n\t\t\t\tconst params = swiper.params.coverflowEffect;\r\n\t\t\t\tconst isHorizontal = swiper.isHorizontal();\r\n\t\t\t\tconst transform = swiper.translate;\r\n\t\t\t\tconst center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\r\n\t\t\t\tconst rotate = isHorizontal ? params.rotate : -params.rotate;\r\n\t\t\t\tconst translate = params.depth;\r\n\t\t\t\t// Each slide offset from center\r\n\t\t\t\tfor (let i = 0, length = slides.length; i < length; i += 1) {\r\n\t\t\t\t\tconst $slideEl = slides.eq(i);\r\n\t\t\t\t\tconst slideSize = slidesSizesGrid[i];\r\n\t\t\t\t\tconst slideOffset = $slideEl[0].swiperSlideOffset;\r\n\t\t\t\t\tconst offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\r\n\r\n\t\t\t\t\tlet rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\r\n\t\t\t\t\tlet rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\r\n\t\t\t\t\t// var rotateZ = 0\r\n\t\t\t\t\tlet translateZ = -translate * Math.abs(offsetMultiplier);\r\n\r\n\t\t\t\t\tlet stretch = params.stretch;\r\n\t\t\t\t\t// Allow percentage to make a relative stretch for responsive sliders\r\n\t\t\t\t\tif (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\r\n\t\t\t\t\t\tstretch = ((parseFloat(params.stretch) / 100) * slideSize);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\r\n\t\t\t\t\tlet translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\r\n\r\n\t\t\t\t\tlet scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\r\n\r\n\t\t\t\t\t// Fix for ultra small values\r\n\t\t\t\t\tif (Math.abs(translateX) < 0.001) translateX = 0;\r\n\t\t\t\t\tif (Math.abs(translateY) < 0.001) translateY = 0;\r\n\t\t\t\t\tif (Math.abs(translateZ) < 0.001) translateZ = 0;\r\n\t\t\t\t\tif (Math.abs(rotateY) < 0.001) rotateY = 0;\r\n\t\t\t\t\tif (Math.abs(rotateX) < 0.001) rotateX = 0;\r\n\t\t\t\t\tif (Math.abs(scale) < 0.001) scale = 0;\r\n\r\n\t\t\t\t\tconst slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\r\n\r\n\t\t\t\t\t$slideEl.transform(slideTransform);\r\n\t\t\t\t\t$slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\r\n\t\t\t\t\tif (params.slideShadows) {\r\n\t\t\t\t\t\t// Set shadows\r\n\t\t\t\t\t\tlet $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n\t\t\t\t\t\tlet $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n\t\t\t\t\t\tif ($shadowBeforeEl.length === 0) {\r\n\t\t\t\t\t\t\t$shadowBeforeEl = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append($shadowBeforeEl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($shadowAfterEl.length === 0) {\r\n\t\t\t\t\t\t\t$shadowAfterEl = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\r\n\t\t\t\t\t\t\t$slideEl.append($shadowAfterEl);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\r\n\t\t\t\t\t\tif ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set correct perspective for IE10\r\n\t\t\t\tif (Support.pointerEvents || Support.prefixedPointerEvents) {\r\n\t\t\t\t\tconst ws = $wrapperEl[0].style;\r\n\t\t\t\t\tws.perspectiveOrigin = `${center}px 50%`;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tsetTransition(duration) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tswiper.slides\r\n\t\t\t\t\t.transition(duration)\r\n\t\t\t\t\t.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n\t\t\t\t\t.transition(duration);\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tvar EffectCoverflow = {\r\n\t\t\tname: 'effect-coverflow',\r\n\t\t\tparams: {\r\n\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\trotate: 50,\r\n\t\t\t\t\tstretch: 0,\r\n\t\t\t\t\tdepth: 100,\r\n\t\t\t\t\tscale: 1,\r\n\t\t\t\t\tmodifier: 1,\r\n\t\t\t\t\tslideShadows: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\tsetTranslate: Coverflow.setTranslate.bind(swiper),\r\n\t\t\t\t\t\tsetTransition: Coverflow.setTransition.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'coverflow') return;\r\n\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\r\n\t\t\t\t\tswiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\r\n\r\n\t\t\t\t\tswiper.params.watchSlidesProgress = true;\r\n\t\t\t\t\tswiper.originalParams.watchSlidesProgress = true;\r\n\t\t\t\t},\r\n\t\t\t\tsetTranslate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'coverflow') return;\r\n\t\t\t\t\tswiper.coverflowEffect.setTranslate();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (swiper.params.effect !== 'coverflow') return;\r\n\t\t\t\t\tswiper.coverflowEffect.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst Thumbs = {\r\n\t\t\tinit() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst { thumbs: thumbsParams } = swiper.params;\r\n\t\t\t\tconst SwiperClass = swiper.constructor;\r\n\t\t\t\tif (thumbsParams.swiper instanceof SwiperClass) {\r\n\t\t\t\t\tswiper.thumbs.swiper = thumbsParams.swiper;\r\n\t\t\t\t\tUtils.extend(swiper.thumbs.swiper.originalParams, {\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tslideToClickedSlide: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tUtils.extend(swiper.thumbs.swiper.params, {\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tslideToClickedSlide: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (Utils.isObject(thumbsParams.swiper)) {\r\n\t\t\t\t\tswiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\r\n\t\t\t\t\t\twatchSlidesVisibility: true,\r\n\t\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\t\tslideToClickedSlide: false,\r\n\t\t\t\t\t}));\r\n\t\t\t\t\tswiper.thumbs.swiperCreated = true;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\r\n\t\t\t\tswiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\r\n\t\t\t},\r\n\t\t\tonThumbClick() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst thumbsSwiper = swiper.thumbs.swiper;\r\n\t\t\t\tif (!thumbsSwiper) return;\r\n\t\t\t\tconst clickedIndex = thumbsSwiper.clickedIndex;\r\n\t\t\t\tconst clickedSlide = thumbsSwiper.clickedSlide;\r\n\t\t\t\tif (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\r\n\t\t\t\tif (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\r\n\t\t\t\tlet slideToIndex;\r\n\t\t\t\tif (thumbsSwiper.params.loop) {\r\n\t\t\t\t\tslideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tslideToIndex = clickedIndex;\r\n\t\t\t\t}\r\n\t\t\t\tif (swiper.params.loop) {\r\n\t\t\t\t\tlet currentIndex = swiper.activeIndex;\r\n\t\t\t\t\tif (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\r\n\t\t\t\t\t\tswiper.loopFix();\r\n\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\tswiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n\t\t\t\t\t\tcurrentIndex = swiper.activeIndex;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\r\n\t\t\t\t\tconst nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\r\n\t\t\t\t\tif (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\r\n\t\t\t\t\telse if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\r\n\t\t\t\t\telse if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\r\n\t\t\t\t\telse slideToIndex = prevIndex;\r\n\t\t\t\t}\r\n\t\t\t\tswiper.slideTo(slideToIndex);\r\n\t\t\t},\r\n\t\t\tupdate(initial) {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tconst thumbsSwiper = swiper.thumbs.swiper;\r\n\t\t\t\tif (!thumbsSwiper) return;\r\n\r\n\t\t\t\tconst slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\r\n\t\t\t\t\t? thumbsSwiper.slidesPerViewDynamic()\r\n\t\t\t\t\t: thumbsSwiper.params.slidesPerView;\r\n\r\n\t\t\t\tconst autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\r\n\t\t\t\tconst useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\r\n\t\t\t\tif (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\r\n\t\t\t\t\tlet currentThumbsIndex = thumbsSwiper.activeIndex;\r\n\t\t\t\t\tlet newThumbsIndex;\r\n\t\t\t\t\tlet direction;\r\n\t\t\t\t\tif (thumbsSwiper.params.loop) {\r\n\t\t\t\t\t\tif (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\r\n\t\t\t\t\t\t\tthumbsSwiper.loopFix();\r\n\t\t\t\t\t\t\t// eslint-disable-next-line\r\n\t\t\t\t\t\t\tthumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\r\n\t\t\t\t\t\t\tcurrentThumbsIndex = thumbsSwiper.activeIndex;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Find actual thumbs index to slide to\r\n\t\t\t\t\t\tconst prevThumbsIndex = thumbsSwiper.slides\r\n\t\t\t\t\t\t\t.eq(currentThumbsIndex)\r\n\t\t\t\t\t\t\t.prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\r\n\t\t\t\t\t\t\t.index();\r\n\t\t\t\t\t\tconst nextThumbsIndex = thumbsSwiper.slides\r\n\t\t\t\t\t\t\t.eq(currentThumbsIndex)\r\n\t\t\t\t\t\t\t.nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\r\n\t\t\t\t\t\t\t.index();\r\n\t\t\t\t\t\tif (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\r\n\t\t\t\t\t\telse if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\r\n\t\t\t\t\t\telse if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\r\n\t\t\t\t\t\telse if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\r\n\t\t\t\t\t\telse newThumbsIndex = prevThumbsIndex;\r\n\t\t\t\t\t\tdirection = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnewThumbsIndex = swiper.realIndex;\r\n\t\t\t\t\t\tdirection = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (useOffset) {\r\n\t\t\t\t\t\tnewThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\r\n\t\t\t\t\t\tif (thumbsSwiper.params.centeredSlides) {\r\n\t\t\t\t\t\t\tif (newThumbsIndex > currentThumbsIndex) {\r\n\t\t\t\t\t\t\t\tnewThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tnewThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (newThumbsIndex > currentThumbsIndex) {\r\n\t\t\t\t\t\t\tnewThumbsIndex = newThumbsIndex - slidesPerView + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Activate thumbs\r\n\t\t\t\tlet thumbsToActivate = 1;\r\n\t\t\t\tconst thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\r\n\r\n\t\t\t\tif (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\r\n\t\t\t\t\tthumbsToActivate = swiper.params.slidesPerView;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!swiper.params.thumbs.multipleActiveThumbs) {\r\n\t\t\t\t\tthumbsToActivate = 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthumbsToActivate = Math.floor(thumbsToActivate);\r\n\r\n\t\t\t\tthumbsSwiper.slides.removeClass(thumbActiveClass);\r\n\t\t\t\tif (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\r\n\t\t\t\t\tfor (let i = 0; i < thumbsToActivate; i += 1) {\r\n\t\t\t\t\t\tthumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfor (let i = 0; i < thumbsToActivate; i += 1) {\r\n\t\t\t\t\t\tthumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t};\r\n\t\tvar Thumbs$1 = {\r\n\t\t\tname: 'thumbs',\r\n\t\t\tparams: {\r\n\t\t\t\tthumbs: {\r\n\t\t\t\t\tswiper: null,\r\n\t\t\t\t\tmultipleActiveThumbs: true,\r\n\t\t\t\t\tautoScrollOffset: 0,\r\n\t\t\t\t\tslideThumbActiveClass: 'swiper-slide-thumb-active',\r\n\t\t\t\t\tthumbsContainerClass: 'swiper-container-thumbs',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcreate() {\r\n\t\t\t\tconst swiper = this;\r\n\t\t\t\tUtils.extend(swiper, {\r\n\t\t\t\t\tthumbs: {\r\n\t\t\t\t\t\tswiper: null,\r\n\t\t\t\t\t\tinit: Thumbs.init.bind(swiper),\r\n\t\t\t\t\t\tupdate: Thumbs.update.bind(swiper),\r\n\t\t\t\t\t\tonThumbClick: Thumbs.onThumbClick.bind(swiper),\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\ton: {\r\n\t\t\t\tbeforeInit() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tconst { thumbs } = swiper.params;\r\n\t\t\t\t\tif (!thumbs || !thumbs.swiper) return;\r\n\t\t\t\t\tswiper.thumbs.init();\r\n\t\t\t\t\tswiper.thumbs.update(true);\r\n\t\t\t\t},\r\n\t\t\t\tslideChange() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.thumbs.swiper) return;\r\n\t\t\t\t\tswiper.thumbs.update();\r\n\t\t\t\t},\r\n\t\t\t\tupdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.thumbs.swiper) return;\r\n\t\t\t\t\tswiper.thumbs.update();\r\n\t\t\t\t},\r\n\t\t\t\tresize() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.thumbs.swiper) return;\r\n\t\t\t\t\tswiper.thumbs.update();\r\n\t\t\t\t},\r\n\t\t\t\tobserverUpdate() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tif (!swiper.thumbs.swiper) return;\r\n\t\t\t\t\tswiper.thumbs.update();\r\n\t\t\t\t},\r\n\t\t\t\tsetTransition(duration) {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tconst thumbsSwiper = swiper.thumbs.swiper;\r\n\t\t\t\t\tif (!thumbsSwiper) return;\r\n\t\t\t\t\tthumbsSwiper.setTransition(duration);\r\n\t\t\t\t},\r\n\t\t\t\tbeforeDestroy() {\r\n\t\t\t\t\tconst swiper = this;\r\n\t\t\t\t\tconst thumbsSwiper = swiper.thumbs.swiper;\r\n\t\t\t\t\tif (!thumbsSwiper) return;\r\n\t\t\t\t\tif (swiper.thumbs.swiperCreated && thumbsSwiper) {\r\n\t\t\t\t\t\tthumbsSwiper.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\t// Swiper Class\r\n\r\n\t\tconst components = [\r\n\t\t\tDevice$1,\r\n\t\t\tSupport$1,\r\n\t\t\tBrowser$1,\r\n\t\t\tResize,\r\n\t\t\tObserver$1,\r\n\t\t\tVirtual$1,\r\n\t\t\tKeyboard$1,\r\n\t\t\tMousewheel$1,\r\n\t\t\tNavigation$1,\r\n\t\t\tPagination$1,\r\n\t\t\tScrollbar$1,\r\n\t\t\tParallax$1,\r\n\t\t\tZoom$1,\r\n\t\t\tLazy$1,\r\n\t\t\tController$1,\r\n\t\t\tA11y,\r\n\t\t\tHistory$1,\r\n\t\t\tHashNavigation$1,\r\n\t\t\tAutoplay$1,\r\n\t\t\tEffectFade,\r\n\t\t\tEffectCube,\r\n\t\t\tEffectFlip,\r\n\t\t\tEffectCoverflow,\r\n\t\t\tThumbs$1\r\n\t\t];\r\n\r\n\t\tif (typeof Swiper.use === 'undefined') {\r\n\t\t\tSwiper.use = Swiper.Class.use;\r\n\t\t\tSwiper.installModule = Swiper.Class.installModule;\r\n\t\t}\r\n\r\n\t\tSwiper.use(components);\r\n\r\n/* harmony default export */ const swiper_esm_bundle = (Swiper);\r\n\t\t//# sourceMappingURL=swiper.esm.bundle.js.map\r\n\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/BlogPosts.js\r\n\r\n\r\n\r\n\t\tclass BlogPosts extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.kenBurns = new KenBurns(theme, element);\r\n\t\t\t\tconst swiperContainer = this.element.querySelector('.swiper-container');\r\n\t\t\t\tthis.swiper = new swiper_esm_bundle(swiperContainer, {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\twatchOverflow: true,\r\n\t\t\t\t\tautoHeight: true,\r\n\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\tel: swiperContainer.querySelectorAll('.swiper-pagination'),\r\n\t\t\t\t\t\tclickable: true\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// EXTERNAL MODULE: ./node_modules/rellax/rellax.js\r\n\t\tvar rellax = __webpack_require__(926);\r\n\t\tvar rellax_default = /*#__PURE__*/__webpack_require__.n(rellax);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Parallax.js\r\n\r\n\r\n\r\n\t\tclass Parallax_Parallax extends Component {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t*/\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tsuper(theme, element);\r\n\t\t\t\t/** @type {Rellax[]} */\r\n\r\n\t\t\t\tthis.init = () => {\r\n\t\t\t\t\tif (this.element.querySelector('.rellax')) {\r\n\t\t\t\t\t\tthis.rellaxes = Array.prototype.map.call(this.element.querySelectorAll('.rellax'), el => {\r\n\t\t\t\t\t\t\treturn new (rellax_default())(el, {\r\n\t\t\t\t\t\t\t\tcenter: true\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.destroy = () => {\r\n\t\t\t\t\tthis.rellaxes.forEach(rellax => rellax.destroy());\r\n\t\t\t\t\tthis.rellaxes = [];\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.isMobile = (breakpoint = null) => {\r\n\t\t\t\t\treturn (breakpoint || this.theme.getBreakpoint()).order < Breakpoints.md.order;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResizeBreakpoint = ({\r\n\t\t\t\t\tbreakpoint\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tconst isMobile = this.isMobile(breakpoint);\r\n\r\n\t\t\t\t\tif (!isMobile && this.rellaxes.length === 0) {\r\n\t\t\t\t\t\t// We're on desktop and parallax is not active => activate it\r\n\t\t\t\t\t\tthis.init();\r\n\t\t\t\t\t} else if (isMobile && this.rellaxes.length > 0) {\r\n\t\t\t\t\t\t// We're on mobile and parallax is active => deactivate it\r\n\t\t\t\t\t\tthis.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.rellaxes = [];\r\n\t\t\t\tthis.element = element;\r\n\r\n\t\t\t\tif (!this.isMobile()) {\r\n\t\t\t\t\tthis.init();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/CollectionList.js\r\n\r\n\r\n\t\tclass CollectionList extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.parallax = new Parallax_Parallax(theme, element.parentNode);\r\n\t\t\t\tthis.theme.addBadges(this.element, 1000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/QuickAdd.js\r\n\r\n\r\n\t\tclass QuickAdd extends Component {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tsuper(theme, element);\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.onSubmit = this.onSubmit.bind(this);\r\n\t\t\t\tthis.currentButton = null;\r\n\t\t\t\tthis.cartAction = document.getElementById('PageContainer').dataset.cartAction;\r\n\t\t\t\tthis.languageUrl = document.getElementById('PageContainer').dataset.languageUrl;\r\n\t\t\t\tthis.formWrapper = this.element.querySelectorAll('.quick-add-wrapper.is-singular');\r\n\r\n\t\t\t\tif (!this.formWrapper) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.quick-add-wrapper.is-singular .shopify-product-form'), el => {\r\n\t\t\t\t\tel.addEventListener('submit', this.onSubmit);\r\n\t\t\t\t});\r\n\t\t\t\tvar seft_ = this;\r\n\t\t\t\twindow.addEventListener('globoFilterRenderCompleted', function () {\r\n\t\t\t\t\tArray.prototype.forEach.call(seft_.element.querySelectorAll('.quick-add-wrapper.is-singular .shopify-product-form'), el => {\r\n\t\t\t\t\t\tel.addEventListener('submit', seft_.onSubmit);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tasync onSubmit(e) {\r\n\t\t\t\t// Go straight to cart page, use html form submit event.\r\n\t\t\t\tif (this.cartAction == 'page') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t// Disable scrolling on body\r\n\t\t\t\tdocument.body.classList.add(\"js-drawer-open\");\r\n\r\n\t\t\t\tthis.currentButton = e.currentTarget.querySelector('.quick-add-button'); // Loading spinner.\r\n\r\n\t\t\t\tconst originalButtonText = this.currentButton.innerHTML; // Store original button text.\r\n\r\n\r\n\t\t\t\tthis.currentButton.innerHTML = `<i class=\"fa fa-circle-o-notch fa-spin fa-fw js\"></i><span class=\"sr-only\">${this.theme.translations.loading}</span>`;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = jquery_default()(e.currentTarget).serialize();\r\n\t\t\t\t\tconst response = await window.fetch('/cart/add.js', {\r\n\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tbody: data\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (!response.ok) {\r\n\t\t\t\t\t\t// FIXME: error handling\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst languageParam = !this.languageUrl || this.languageUrl == '/' ? '' : this.languageUrl;\r\n\t\t\t\t\tconst response2 = await window.fetch(`${languageParam}/cart?view=compare`);\r\n\r\n\t\t\t\t\tif (!response2.ok) {\r\n\t\t\t\t\t\t// FIXME: error handling\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst responseNew = await fetch(window.Shopify.routes.root + 'cart.js')\r\n\t\t\t\t\t\t.then(responseNew => {\r\n\t\t\t\t\t\t\treturn responseNew.json();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tconst cart = await responseNew;\r\n\r\n\t\t\t\t\tif (this.cartAction == 'drawer') {\r\n\t\t\t\t\t\tthis.theme.toggleRightDrawer('cart', true, {\r\n\t\t\t\t\t\t\tcart: cart\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.currentButton.innerHTML = this.theme.translations.productAdded;\r\n\t\t\t\t\t\tthis.theme.updateCartDrawer(cart);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.currentButton.innerHTML = originalButtonText;\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error('Unable to add to cart: ', e); // FIXME error handling\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/FeaturedCollection.js\r\n\r\n\r\n\t\tclass FeaturedCollection extends Section {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t * @param {boolean} pageLoad\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.handleShopNow = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('shop-now', true, {\r\n\t\t\t\t\t\turl: e.target.href\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tArray.prototype.forEach.call(element.querySelectorAll('.shop-now-button, .quick-add-button-variants'), shopNow => {\r\n\t\t\t\t\tif (shopNow) {\r\n\t\t\t\t\t\tshopNow.addEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.quickAddButtons = new QuickAdd(theme, element);\r\n\t\t\t\tthis.theme.addBadges(this.element, 1000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// EXTERNAL MODULE: ./node_modules/masonry-layout/masonry.js\r\n\t\tvar masonry = __webpack_require__(751);\r\n\t\tvar masonry_default = /*#__PURE__*/__webpack_require__.n(masonry);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ProductsBlock.js\r\n\r\n\r\n\r\n\r\n\t\tclass ProductsBlock extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.destroyMasonry = () => {\r\n\t\t\t\t\tif (this.masonry) {\r\n\t\t\t\t\t\tthis.masonry.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.initMasonry = () => {\r\n\t\t\t\t\tthis.destroyMasonry();\r\n\t\t\t\t\tthis.masonry = new (masonry_default())(this.grid, {\r\n\t\t\t\t\t\titemSelector: '.homepage-featured-grid-item',\r\n\t\t\t\t\t\t// use element for option\r\n\t\t\t\t\t\tcolumnWidth: '.homepage-featured-grid-item',\r\n\t\t\t\t\t\tpercentPosition: true,\r\n\t\t\t\t\t\tgutter: '.gutter-sizer'\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.applyFadeEffect = (parent_selector, child_selector) => {\r\n\t\t\t\t\tthis.$element.find(parent_selector).each((index, parent) => {\r\n\t\t\t\t\t\tthis.applyFadeEffectToElement(parent, child_selector);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.applyFadeEffectToElement = (el, child_selector) => {\r\n\t\t\t\t\tconst children = this.$element.find(el).find(child_selector);\r\n\t\t\t\t\tchildren.on('mouseenter mouseleave', function (e) {\r\n\t\t\t\t\t\tchildren.not(this).stop(true).fadeTo('fast', e.type === 'mouseenter' ? 0.2 : 1);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.$element = jquery_default()(element);\r\n\t\t\t\tthis.grid = element.querySelector('.homepage-featured-products-grid');\r\n\t\t\t\tthis.applyFadeEffect('.homepage-featured-products-grid', '.homepage-featured-grid-item');\r\n\r\n\t\t\t\twindow.onpageshow = e => {\r\n\t\t\t\t\tif (e.persisted) window.location.reload();\r\n\t\t\t\t};\r\n\r\n\t\t\t\timagesloaded_default()(this.grid).on('progress', () => {\r\n\t\t\t\t\tthis.masonry.layout();\r\n\t\t\t\t});\r\n\t\t\t\tdocument.addEventListener('shopify:section:load', this.initMasonry);\r\n\t\t\t\tdocument.addEventListener('shopify:section:unload', this.destroyMasonry);\r\n\t\t\t\tdocument.addEventListener('shopify:section:select', this.initMasonry);\r\n\t\t\t\tdocument.addEventListener('shopify:section:deselect', this.initMasonry);\r\n\t\t\t\tdocument.addEventListener('shopify:section:reorder', this.initMasonry);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.initMasonry();\r\n\t\t\t\t}, 500);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ImageGallery.js\r\n\r\n\r\n\t\tclass ImageGallery extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.kenBurns = new KenBurns(theme, element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ImageWithText.js\r\n\r\n\r\n\t\tclass ImageWithText extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.onSectionSelect = () => {\r\n\t\t\t\t\tthis.kenBurns.reapply();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.kenBurns = new KenBurns(theme, element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/modules/sectionLink.js\r\n\t\tfunction createClickableSection(element) {\r\n\t\t\tconst mainLink = element.querySelector('[data-section-main-link]');\r\n\t\t\tif (!mainLink) return;\r\n\t\t\tconst buttonHidden = mainLink.ariaHidden == 'true';\r\n\r\n\t\t\tconst handleSectionClick = () => {\r\n\t\t\t\tconst isTextSelected = window.getSelection().toString();\r\n\t\t\t\tif (!isTextSelected) mainLink.click();\r\n\t\t\t};\r\n\r\n\t\t\tif (buttonHidden && mainLink) element.addEventListener('click', handleSectionClick);\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ImageWithTextOverlay.js\r\n\r\n\r\n\r\n\t\tclass ImageWithTextOverlay extends ImageWithText {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t * @param {boolean} pageLoad\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.onWindowResize = () => {\r\n\t\t\t\t\tif (this.sectionHeightSetToOriginal) {\r\n\t\t\t\t\t\tthis.setToOriginalHeight();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.setToOriginalHeight = () => {\r\n\t\t\t\t\tthis.setImageWrapperHeight('auto');\r\n\r\n\t\t\t\t\tif (this.contentIsTallerThanImage()) {\r\n\t\t\t\t\t\tthis.toggleCoverClass('true');\r\n\t\t\t\t\t\tthis.setImageWrapperHeight('100%');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.toggleCoverClass();\r\n\t\t\t\t\t\tthis.setSectionMinHeight();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.toggleCoverClass = contentIsTaller => {\r\n\t\t\t\t\tthis.imageElement.classList.remove('image-cover');\r\n\t\t\t\t\tif (contentIsTaller) this.imageElement.classList.add('image-cover');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.setImageWrapperHeight = value => {\r\n\t\t\t\t\tthis.imageWrapper.style.height = value;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.setSectionMinHeight = () => {\r\n\t\t\t\t\tthis.sectionWrapper.style.minHeight = `${this.getImageHeight()}px`;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getContentHeight = () => {\r\n\t\t\t\t\treturn this.contentWrapper.offsetHeight;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getImageHeight = () => {\r\n\t\t\t\t\treturn this.imageWrapper.offsetHeight;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.contentIsTallerThanImage = () => {\r\n\t\t\t\t\treturn this.getContentHeight() > this.getImageHeight();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.sectionWrapper = this.element.querySelector('.homepage-featured-content-wrapper');\r\n\t\t\t\tthis.imageWrapper = this.element.querySelector('.homepage-content--image');\r\n\t\t\t\tthis.contentWrapper = this.element.querySelector('.homepage-featured-content-box-inner');\r\n\t\t\t\tthis.imageElement = this.imageWrapper.getElementsByTagName('img').item(0);\r\n\t\t\t\tthis.sectionHeightSetToOriginal = this.element.classList.contains('size-original');\r\n\r\n\t\t\t\tif (this.sectionHeightSetToOriginal) {\r\n\t\t\t\t\tthis.setToOriginalHeight();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.parallax = new Parallax_Parallax(this.theme, this.element);\r\n\t\t\t\tcreateClickableSection(this.element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/LogoList.js\r\n\r\n\t\tclass LogoList extends Section { }\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Slider.js\r\n\r\n\t\tclass Slider {\r\n\t\t\tconstructor(theme, element, options) {\r\n\t\t\t\tthis.stop = () => {\r\n\t\t\t\t\tif (this.element.querySelectorAll('.swiper-slide').length <= 1) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.swiper.autoplay.stop();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.start = () => {\r\n\t\t\t\t\tif (this.element.querySelectorAll('.swiper-slide').length <= 1) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.swiper.autoplay.start();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.isRunning = () => {\r\n\t\t\t\t\treturn this.swiper.autoplay.running;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.slideTo = (index, skipAnimation = false) => {\r\n\t\t\t\t\tthis.swiper.slideTo(index, skipAnimation ? 0 : 200);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSlideChange = () => {\r\n\t\t\t\t\tif (this.slideChangeCallback) {\r\n\t\t\t\t\t\tthis.slideChangeCallback();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.configure = () => {\r\n\t\t\t\t\tif (this.element.querySelectorAll('.swiper-slide').length <= 1) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst swiper = new swiper_esm_bundle(this.element, {\r\n\t\t\t\t\t\tallowTouchMove: false,\r\n\t\t\t\t\t\tloop: true,\r\n\t\t\t\t\t\tloopedSlides: this.effect === 'fade' ? 0 : 2,\r\n\t\t\t\t\t\tautoplay: this.speed > 0 ? {\r\n\t\t\t\t\t\t\tdelay: this.speed,\r\n\t\t\t\t\t\t\tdisableOnInteraction: false\r\n\t\t\t\t\t\t} : false,\r\n\t\t\t\t\t\teffect: this.effect,\r\n\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\tspeed: 300,\r\n\t\t\t\t\t\twatchOverflow: true,\r\n\t\t\t\t\t\tfadeEffect: {\r\n\t\t\t\t\t\t\tcrossFade: true\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\tnextEl: this.element.querySelector('.flex-next'),\r\n\t\t\t\t\t\t\tprevEl: this.element.querySelector('.flex-prev')\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\t\tel: this.element.querySelector('.swiper-pagination'),\r\n\t\t\t\t\t\t\tclickable: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tswiper.on('slideChange', this.onSlideChange);\r\n\t\t\t\t\treturn swiper;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.restartTimer = null;\r\n\t\t\t\tthis.running = true;\r\n\t\t\t\tthis.speed = options.speed !== undefined ? options.speed : 200;\r\n\t\t\t\tthis.effect = options.animation || 'slide';\r\n\t\t\t\tthis.slideChangeCallback = options.onSlideChange;\r\n\t\t\t\tthis.swiper = this.configure();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Slideshow.js\r\n\r\n\r\n\r\n\r\n\t\tclass Slideshow extends Section {\r\n\t\t\t// ms\r\n\t\t\tconstructor(theme, _element, pageLoad) {\r\n\t\t\t\tsuper(theme, _element, pageLoad);\r\n\t\t\t\tthis.SLIDER_SELECTOR = '.swiper-container';\r\n\t\t\t\tthis.SLIDER_REENABLE_INTERVAL = 6000;\r\n\r\n\t\t\t\tthis.isInViewport = () => {\r\n\t\t\t\t\tconst slideViewportPosition = this.slider.element.getBoundingClientRect();\r\n\t\t\t\t\tconst stickyHeader = document.querySelector(\".sticky-header.sticked\");\r\n\t\t\t\t\tconst siteHeader = document.querySelector(\".site-header\");\r\n\t\t\t\t\tconst stickyHeaderHeight = stickyHeader ? siteHeader.offsetHeight : 0;\r\n\t\t\t\t\tconst viewportTop = stickyHeaderHeight;\r\n\t\t\t\t\tconst topWithinViewport = slideViewportPosition.top >= viewportTop && slideViewportPosition.top < (window.innerHeight || document.documentElement.clientHeight);\r\n\t\t\t\t\tconst bottomWithinViewport = slideViewportPosition.bottom >= viewportTop && slideViewportPosition.bottom < (window.innerHeight || document.documentElement.clientHeight);\r\n\t\t\t\t\tconst yContainsViewport = slideViewportPosition.top <= viewportTop && slideViewportPosition.bottom >= viewportTop;\r\n\t\t\t\t\treturn topWithinViewport || bottomWithinViewport || yContainsViewport;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowScroll = () => {\r\n\t\t\t\t\tif (this.isInViewport()) {\r\n\t\t\t\t\t\tthis.slider.start();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.slider.stop();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSlideChange = () => {\r\n\t\t\t\t\tif (this.slider.isRunning && this.speed > 0) {\r\n\t\t\t\t\t\t// restart autoscroll after given interval since last interaction\r\n\t\t\t\t\t\tclearTimeout(this.restartTimer);\r\n\t\t\t\t\t\tthis.restartTimer = setTimeout(() => {\r\n\t\t\t\t\t\t\tthis.slider.start();\r\n\t\t\t\t\t\t}, Math.max(0, this.SLIDER_REENABLE_INTERVAL - this.speed));\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockSelect = ({\r\n\t\t\t\t\telement\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tconst index = parseInt(element.dataset.slideIndex, 0);\r\n\t\t\t\t\tthis.slider.slideTo(index);\r\n\t\t\t\t\tthis.slider.stop();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockDeselect = () => {\r\n\t\t\t\t\tthis.slider.start();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.restartTimer = null;\r\n\r\n\t\t\t\tconst sliderElement = _element.querySelector(this.SLIDER_SELECTOR);\r\n\r\n\t\t\t\tthis.speed = parseInt(sliderElement.dataset.sliderSlideTime, 10);\r\n\t\t\t\tthis.slider = new Slider(theme, sliderElement, {\r\n\t\t\t\t\tspeed: this.speed,\r\n\t\t\t\t\tanimation: sliderElement.dataset.sliderAnimation,\r\n\t\t\t\t\tonSlideChange: this.onSlideChange\r\n\t\t\t\t});\r\n\t\t\t\tconst slides = this.slider.element.querySelectorAll('.slideshow__link');\r\n\t\t\t\tslides.forEach(slide => createClickableSection(slide));\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Newsletter.js\r\n\r\n\t\tclass Newsletter extends Section { }\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Password.js\r\n\r\n\r\n\t\tclass Password extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.load = () => {\r\n\t\t\t\t\tvar self = this;\r\n\t\t\t\t\tjquery_default()('.password-show').click(function () {\r\n\t\t\t\t\t\tself.$head.slideToggle('slow').addClass('open');\r\n\t\t\t\t\t\tjquery_default()('.password--container').addClass('password-modal--open');\r\n\t\t\t\t\t\tself.$password.focus();\r\n\t\t\t\t\t});\r\n\t\t\t\t\tjquery_default()('.password--close').click(function () {\r\n\t\t\t\t\t\tself.$head.slideToggle('slow').removeClass('open');\r\n\t\t\t\t\t\tjquery_default()('.password--container').removeClass('password-modal--open');\r\n\t\t\t\t\t\tself.$password.blur();\r\n\t\t\t\t\t});\r\n\t\t\t\t\tjquery_default()(function () {\r\n\t\t\t\t\t\tif (jquery_default()('.storefront-password-form .errors').length) {\r\n\t\t\t\t\t\t\tself.$head.slideDown('slow').addClass('open');\r\n\t\t\t\t\t\t\tself.$password.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}); // Detect click outside of popup to close it.\r\n\r\n\t\t\t\t\tjquery_default()('.password--wrapper').click(e => {\r\n\t\t\t\t\t\tif (self.$head.hasClass('open')) {\r\n\t\t\t\t\t\t\tif (!self.$head.is(e.target) && self.$head.has(e.target).length === 0 && !jquery_default()('.password-show').is(e.target)) {\r\n\t\t\t\t\t\t\t\tself.$head.slideUp('slow');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}); // Keep tabbing within the modal while it is open.\r\n\r\n\t\t\t\t\tjquery_default()(document).on('keydown', function (e) {\r\n\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\te = e || window.event;\r\n\r\n\t\t\t\t\t\tif (e.keyCode == 9) {\r\n\t\t\t\t\t\t\t// Keep tab within the open modal.\r\n\t\t\t\t\t\t\tif (e.shiftKey) {\r\n\t\t\t\t\t\t\t\tif (document.activeElement === self.firstFocusableEl) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\tself.lastFocusableEl.focus();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (document.activeElement === self.lastFocusableEl) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\tself.firstFocusableEl.focus();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (e.keyCode == 27) {\r\n\t\t\t\t\t\t\t// Escape to close popup.\r\n\t\t\t\t\t\t\tif (self.$head.hasClass('open')) {\r\n\t\t\t\t\t\t\t\tself.$head.slideToggle('slow').removeClass('open');\r\n\t\t\t\t\t\t\t\tself.$password.blur();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.$head = jquery_default()('.site-header');\r\n\t\t\t\tthis.$focusableEls = this.$head.find('a[href], input:not([disabled]):not([type=\"hidden\"]), button:not([disabled]), [tabindex=\"0\"]');\r\n\t\t\t\tthis.$password = this.$head.find('input#password');\r\n\t\t\t\tthis.firstFocusableEl = this.$focusableEls[0];\r\n\t\t\t\tthis.lastFocusableEl = this.$focusableEls[this.$focusableEls.length - 1];\r\n\t\t\t\tthis.load();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// EXTERNAL MODULE: ./node_modules/vue-template-compiler/browser.js\r\n\t\tvar browser = __webpack_require__(725);\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue-class-component/dist/vue-class-component.esm.js\r\n\t\t/**\r\n\t\t  * vue-class-component v7.2.6\r\n\t\t  * (c) 2015-present Evan You\r\n\t\t  * @license MIT\r\n\t\t  */\r\n\r\n\r\n\t\tfunction _typeof(obj) {\r\n\t\t\tif (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\r\n\t\t\t\t_typeof = function (obj) {\r\n\t\t\t\t\treturn typeof obj;\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\t_typeof = function (obj) {\r\n\t\t\t\t\treturn obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn _typeof(obj);\r\n\t\t}\r\n\r\n\t\tfunction _defineProperty(obj, key, value) {\r\n\t\t\tif (key in obj) {\r\n\t\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\twritable: true\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tobj[key] = value;\r\n\t\t\t}\r\n\r\n\t\t\treturn obj;\r\n\t\t}\r\n\r\n\t\tfunction _toConsumableArray(arr) {\r\n\t\t\treturn _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\r\n\t\t}\r\n\r\n\t\tfunction _arrayWithoutHoles(arr) {\r\n\t\t\tif (Array.isArray(arr)) {\r\n\t\t\t\tfor (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\r\n\r\n\t\t\t\treturn arr2;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction _iterableToArray(iter) {\r\n\t\t\tif (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\r\n\t\t}\r\n\r\n\t\tfunction _nonIterableSpread() {\r\n\t\t\tthrow new TypeError(\"Invalid attempt to spread non-iterable instance\");\r\n\t\t}\r\n\r\n\t\t// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\r\n\t\t// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\r\n\t\t// Without this check consumers will encounter hard to track down runtime errors.\r\n\t\tfunction reflectionIsSupported() {\r\n\t\t\treturn typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\r\n\t\t}\r\n\t\tfunction copyReflectionMetadata(to, from) {\r\n\t\t\tforwardMetadata(to, from);\r\n\t\t\tObject.getOwnPropertyNames(from.prototype).forEach(function (key) {\r\n\t\t\t\tforwardMetadata(to.prototype, from.prototype, key);\r\n\t\t\t});\r\n\t\t\tObject.getOwnPropertyNames(from).forEach(function (key) {\r\n\t\t\t\tforwardMetadata(to, from, key);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction forwardMetadata(to, from, propertyKey) {\r\n\t\t\tvar metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\r\n\t\t\tmetaKeys.forEach(function (metaKey) {\r\n\t\t\t\tvar metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\r\n\r\n\t\t\t\tif (propertyKey) {\r\n\t\t\t\t\tReflect.defineMetadata(metaKey, metadata, to, propertyKey);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tReflect.defineMetadata(metaKey, metadata, to);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar fakeArray = {\r\n\t\t\t__proto__: []\r\n\t\t};\r\n\t\tvar vue_class_component_esm_hasProto = fakeArray instanceof Array;\r\n\t\tfunction vue_class_component_esm_createDecorator(factory) {\r\n\t\t\treturn function (target, key, index) {\r\n\t\t\t\tvar Ctor = typeof target === 'function' ? target : target.constructor;\r\n\r\n\t\t\t\tif (!Ctor.__decorators__) {\r\n\t\t\t\t\tCtor.__decorators__ = [];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof index !== 'number') {\r\n\t\t\t\t\tindex = undefined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tCtor.__decorators__.push(function (options) {\r\n\t\t\t\t\treturn factory(options, key, index);\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t}\r\n\t\tfunction mixins() {\r\n\t\t\tfor (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\r\n\t\t\t\tCtors[_key] = arguments[_key];\r\n\t\t\t}\r\n\r\n\t\t\treturn Vue.extend({\r\n\t\t\t\tmixins: Ctors\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction vue_class_component_esm_isPrimitive(value) {\r\n\t\t\tvar type = _typeof(value);\r\n\r\n\t\t\treturn value == null || type !== 'object' && type !== 'function';\r\n\t\t}\r\n\t\tfunction vue_class_component_esm_warn(message) {\r\n\t\t\tif (typeof console !== 'undefined') {\r\n\t\t\t\tconsole.warn('[vue-class-component] ' + message);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction collectDataFromConstructor(vm, Component) {\r\n\t\t\t// override _init to prevent to init as Vue instance\r\n\t\t\tvar originalInit = Component.prototype._init;\r\n\r\n\t\t\tComponent.prototype._init = function () {\r\n\t\t\t\tvar _this = this;\r\n\r\n\t\t\t\t// proxy to actual vm\r\n\t\t\t\tvar keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\r\n\r\n\t\t\t\tif (vm.$options.props) {\r\n\t\t\t\t\tfor (var key in vm.$options.props) {\r\n\t\t\t\t\t\tif (!vm.hasOwnProperty(key)) {\r\n\t\t\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeys.forEach(function (key) {\r\n\t\t\t\t\tObject.defineProperty(_this, key, {\r\n\t\t\t\t\t\tget: function get() {\r\n\t\t\t\t\t\t\treturn vm[key];\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tset: function set(value) {\r\n\t\t\t\t\t\t\tvm[key] = value;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}; // should be acquired class property values\r\n\r\n\r\n\t\t\tvar data = new Component(); // restore original _init to avoid memory leak (#209)\r\n\r\n\t\t\tComponent.prototype._init = originalInit; // create plain data object\r\n\r\n\t\t\tvar plainData = {};\r\n\t\t\tObject.keys(data).forEach(function (key) {\r\n\t\t\t\tif (data[key] !== undefined) {\r\n\t\t\t\t\tplainData[key] = data[key];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (false) { }\r\n\r\n\t\t\treturn plainData;\r\n\t\t}\r\n\r\n\t\tvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\r\n\t\t];\r\n\t\tfunction componentFactory(Component) {\r\n\t\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\t\t\toptions.name = options.name || Component._componentTag || Component.name; // prototype props.\r\n\r\n\t\t\tvar proto = Component.prototype;\r\n\t\t\tObject.getOwnPropertyNames(proto).forEach(function (key) {\r\n\t\t\t\tif (key === 'constructor') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} // hooks\r\n\r\n\r\n\t\t\t\tif ($internalHooks.indexOf(key) > -1) {\r\n\t\t\t\t\toptions[key] = proto[key];\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar descriptor = Object.getOwnPropertyDescriptor(proto, key);\r\n\r\n\t\t\t\tif (descriptor.value !== void 0) {\r\n\t\t\t\t\t// methods\r\n\t\t\t\t\tif (typeof descriptor.value === 'function') {\r\n\t\t\t\t\t\t(options.methods || (options.methods = {}))[key] = descriptor.value;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// typescript decorated data\r\n\t\t\t\t\t\t(options.mixins || (options.mixins = [])).push({\r\n\t\t\t\t\t\t\tdata: function data() {\r\n\t\t\t\t\t\t\t\treturn _defineProperty({}, key, descriptor.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (descriptor.get || descriptor.set) {\r\n\t\t\t\t\t// computed properties\r\n\t\t\t\t\t(options.computed || (options.computed = {}))[key] = {\r\n\t\t\t\t\t\tget: descriptor.get,\r\n\t\t\t\t\t\tset: descriptor.set\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t(options.mixins || (options.mixins = [])).push({\r\n\t\t\t\tdata: function data() {\r\n\t\t\t\t\treturn collectDataFromConstructor(this, Component);\r\n\t\t\t\t}\r\n\t\t\t}); // decorate options\r\n\r\n\t\t\tvar decorators = Component.__decorators__;\r\n\r\n\t\t\tif (decorators) {\r\n\t\t\t\tdecorators.forEach(function (fn) {\r\n\t\t\t\t\treturn fn(options);\r\n\t\t\t\t});\r\n\t\t\t\tdelete Component.__decorators__;\r\n\t\t\t} // find super\r\n\r\n\r\n\t\t\tvar superProto = Object.getPrototypeOf(Component.prototype);\r\n\t\t\tvar Super = superProto instanceof vue_esm ? superProto.constructor : vue_esm;\r\n\t\t\tvar Extended = Super.extend(options);\r\n\t\t\tforwardStaticMembers(Extended, Component, Super);\r\n\r\n\t\t\tif (reflectionIsSupported()) {\r\n\t\t\t\tcopyReflectionMetadata(Extended, Component);\r\n\t\t\t}\r\n\r\n\t\t\treturn Extended;\r\n\t\t}\r\n\t\tvar reservedPropertyNames = (/* unused pure expression or super */ null && ([// Unique id\r\n\t\t\t'cid', // Super Vue constructor\r\n\t\t\t'super', // Component options that will be used by the component\r\n\t\t\t'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\r\n\t\t\t'component', 'directive', 'filter']));\r\n\t\tvar shouldIgnore = {\r\n\t\t\tprototype: true,\r\n\t\t\targuments: true,\r\n\t\t\tcallee: true,\r\n\t\t\tcaller: true\r\n\t\t};\r\n\r\n\t\tfunction forwardStaticMembers(Extended, Original, Super) {\r\n\t\t\t// We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\r\n\t\t\tObject.getOwnPropertyNames(Original).forEach(function (key) {\r\n\t\t\t\t// Skip the properties that should not be overwritten\r\n\t\t\t\tif (shouldIgnore[key]) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} // Some browsers does not allow reconfigure built-in properties\r\n\r\n\r\n\t\t\t\tvar extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\r\n\r\n\t\t\t\tif (extendedDescriptor && !extendedDescriptor.configurable) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\r\n\t\t\t\t// the sub class properties may be inherited properties from the super class in TypeScript.\r\n\t\t\t\t// We need to exclude such properties to prevent to overwrite\r\n\t\t\t\t// the component options object which stored on the extended constructor (See #192).\r\n\t\t\t\t// If the value is a referenced value (object or function),\r\n\t\t\t\t// we can check equality of them and exclude it if they have the same reference.\r\n\t\t\t\t// If it is a primitive value, it will be forwarded for safety.\r\n\r\n\t\t\t\tif (!vue_class_component_esm_hasProto) {\r\n\t\t\t\t\t// Only `cid` is explicitly exluded from property forwarding\r\n\t\t\t\t\t// because we cannot detect whether it is a inherited property or not\r\n\t\t\t\t\t// on the no `__proto__` environment even though the property is reserved.\r\n\t\t\t\t\tif (key === 'cid') {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\r\n\r\n\t\t\t\t\tif (!vue_class_component_esm_isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} // Warn if the users manually declare reserved properties\r\n\r\n\r\n\t\t\t\tif (false) { }\r\n\r\n\t\t\t\tObject.defineProperty(Extended, key, descriptor);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction vue_class_component_esm_Component(options) {\r\n\t\t\tif (typeof options === 'function') {\r\n\t\t\t\treturn componentFactory(options);\r\n\t\t\t}\r\n\r\n\t\t\treturn function (Component) {\r\n\t\t\t\treturn componentFactory(Component, options);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tvue_class_component_esm_Component.registerHooks = function registerHooks(keys) {\r\n\t\t\t$internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\r\n\t\t};\r\n\r\n/* harmony default export */ const vue_class_component_esm = (vue_class_component_esm_Component);\r\n\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue-property-decorator/lib/vue-property-decorator.js\r\n\t\t/** vue-property-decorator verson 8.5.1 MIT LICENSE copyright 2020 kaorun343 */\r\n\t\t/// <reference types='reflect-metadata'/>\r\n\r\n\r\n\r\n\r\n\t\t/** Used for keying reactive provide/inject properties */\r\n\t\tvar reactiveInjectKey = '__reactiveInject__';\r\n\t\t/**\r\n\t\t * decorator of an inject\r\n\t\t * @param from key\r\n\t\t * @return PropertyDecorator\r\n\t\t */\r\n\t\tfunction Inject(options) {\r\n\t\t\treturn createDecorator(function (componentOptions, key) {\r\n\t\t\t\tif (typeof componentOptions.inject === 'undefined') {\r\n\t\t\t\t\tcomponentOptions.inject = {};\r\n\t\t\t\t}\r\n\t\t\t\tif (!Array.isArray(componentOptions.inject)) {\r\n\t\t\t\t\tcomponentOptions.inject[key] = options || key;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a reactive inject\r\n\t\t * @param from key\r\n\t\t * @return PropertyDecorator\r\n\t\t */\r\n\t\tfunction InjectReactive(options) {\r\n\t\t\treturn createDecorator(function (componentOptions, key) {\r\n\t\t\t\tif (typeof componentOptions.inject === 'undefined') {\r\n\t\t\t\t\tcomponentOptions.inject = {};\r\n\t\t\t\t}\r\n\t\t\t\tif (!Array.isArray(componentOptions.inject)) {\r\n\t\t\t\t\tvar fromKey_1 = !!options ? options.from || options : key;\r\n\t\t\t\t\tvar defaultVal_1 = (!!options && options.default) || undefined;\r\n\t\t\t\t\tif (!componentOptions.computed)\r\n\t\t\t\t\t\tcomponentOptions.computed = {};\r\n\t\t\t\t\tcomponentOptions.computed[key] = function () {\r\n\t\t\t\t\t\tvar obj = this[reactiveInjectKey];\r\n\t\t\t\t\t\treturn obj ? obj[fromKey_1] : defaultVal_1;\r\n\t\t\t\t\t};\r\n\t\t\t\t\tcomponentOptions.inject[reactiveInjectKey] = reactiveInjectKey;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction produceProvide(original) {\r\n\t\t\tvar provide = function () {\r\n\t\t\t\tvar _this = this;\r\n\t\t\t\tvar rv = typeof original === 'function' ? original.call(this) : original;\r\n\t\t\t\trv = Object.create(rv || null);\r\n\t\t\t\t// set reactive services (propagates previous services if necessary)\r\n\t\t\t\trv[reactiveInjectKey] = this[reactiveInjectKey] || {};\r\n\t\t\t\tfor (var i in provide.managed) {\r\n\t\t\t\t\trv[provide.managed[i]] = this[i];\r\n\t\t\t\t}\r\n\t\t\t\tvar _loop_1 = function (i) {\r\n\t\t\t\t\trv[provide.managedReactive[i]] = this_1[i]; // Duplicates the behavior of `@Provide`\r\n\t\t\t\t\tObject.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i], {\r\n\t\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\t\tget: function () { return _this[i]; },\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t\tvar this_1 = this;\r\n\t\t\t\tfor (var i in provide.managedReactive) {\r\n\t\t\t\t\t_loop_1(i);\r\n\t\t\t\t}\r\n\t\t\t\treturn rv;\r\n\t\t\t};\r\n\t\t\tprovide.managed = {};\r\n\t\t\tprovide.managedReactive = {};\r\n\t\t\treturn provide;\r\n\t\t}\r\n\t\tfunction needToProduceProvide(original) {\r\n\t\t\treturn (typeof original !== 'function' ||\r\n\t\t\t\t(!original.managed && !original.managedReactive));\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a provide\r\n\t\t * @param key key\r\n\t\t * @return PropertyDecorator | void\r\n\t\t */\r\n\t\tfunction Provide(key) {\r\n\t\t\treturn createDecorator(function (componentOptions, k) {\r\n\t\t\t\tvar provide = componentOptions.provide;\r\n\t\t\t\tif (needToProduceProvide(provide)) {\r\n\t\t\t\t\tprovide = componentOptions.provide = produceProvide(provide);\r\n\t\t\t\t}\r\n\t\t\t\tprovide.managed[k] = key || k;\r\n\t\t\t});\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a reactive provide\r\n\t\t * @param key key\r\n\t\t * @return PropertyDecorator | void\r\n\t\t */\r\n\t\tfunction ProvideReactive(key) {\r\n\t\t\treturn createDecorator(function (componentOptions, k) {\r\n\t\t\t\tvar provide = componentOptions.provide;\r\n\t\t\t\t// inject parent reactive services (if any)\r\n\t\t\t\tif (!Array.isArray(componentOptions.inject)) {\r\n\t\t\t\t\tcomponentOptions.inject = componentOptions.inject || {};\r\n\t\t\t\t\tcomponentOptions.inject[reactiveInjectKey] = {\r\n\t\t\t\t\t\tfrom: reactiveInjectKey,\r\n\t\t\t\t\t\tdefault: {},\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif (needToProduceProvide(provide)) {\r\n\t\t\t\t\tprovide = componentOptions.provide = produceProvide(provide);\r\n\t\t\t\t}\r\n\t\t\t\tprovide.managedReactive[k] = key || k;\r\n\t\t\t});\r\n\t\t}\r\n\t\t/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\r\n\t\tvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\r\n\t\tfunction applyMetadata(options, target, key) {\r\n\t\t\tif (reflectMetadataIsSupported) {\r\n\t\t\t\tif (!Array.isArray(options) &&\r\n\t\t\t\t\ttypeof options !== 'function' &&\r\n\t\t\t\t\ttypeof options.type === 'undefined') {\r\n\t\t\t\t\tvar type = Reflect.getMetadata('design:type', target, key);\r\n\t\t\t\t\tif (type !== Object) {\r\n\t\t\t\t\t\toptions.type = type;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of model\r\n\t\t * @param  event event name\r\n\t\t * @param options options\r\n\t\t * @return PropertyDecorator\r\n\t\t */\r\n\t\tfunction Model(event, options) {\r\n\t\t\tif (options === void 0) { options = {}; }\r\n\t\t\treturn function (target, key) {\r\n\t\t\t\tapplyMetadata(options, target, key);\r\n\t\t\t\tcreateDecorator(function (componentOptions, k) {\r\n\t\t\t\t\t;\r\n\t\t\t\t\t(componentOptions.props || (componentOptions.props = {}))[k] = options;\r\n\t\t\t\t\tcomponentOptions.model = { prop: k, event: event || k };\r\n\t\t\t\t})(target, key);\r\n\t\t\t};\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a prop\r\n\t\t * @param  options the options for the prop\r\n\t\t * @return PropertyDecorator | void\r\n\t\t */\r\n\t\tfunction Prop(options) {\r\n\t\t\tif (options === void 0) { options = {}; }\r\n\t\t\treturn function (target, key) {\r\n\t\t\t\tapplyMetadata(options, target, key);\r\n\t\t\t\tvue_class_component_esm_createDecorator(function (componentOptions, k) {\r\n\t\t\t\t\t;\r\n\t\t\t\t\t(componentOptions.props || (componentOptions.props = {}))[k] = options;\r\n\t\t\t\t})(target, key);\r\n\t\t\t};\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a synced prop\r\n\t\t * @param propName the name to interface with from outside, must be different from decorated property\r\n\t\t * @param options the options for the synced prop\r\n\t\t * @return PropertyDecorator | void\r\n\t\t */\r\n\t\tfunction PropSync(propName, options) {\r\n\t\t\tif (options === void 0) { options = {}; }\r\n\t\t\t// @ts-ignore\r\n\t\t\treturn function (target, key) {\r\n\t\t\t\tapplyMetadata(options, target, key);\r\n\t\t\t\tcreateDecorator(function (componentOptions, k) {\r\n\t\t\t\t\t;\r\n\t\t\t\t\t(componentOptions.props || (componentOptions.props = {}))[propName] = options;\r\n\t\t\t\t\t(componentOptions.computed || (componentOptions.computed = {}))[k] = {\r\n\t\t\t\t\t\tget: function () {\r\n\t\t\t\t\t\t\treturn this[propName];\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tset: function (value) {\r\n\t\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\t\tthis.$emit(\"update:\" + propName, value);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t};\r\n\t\t\t\t})(target, key);\r\n\t\t\t};\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a watch function\r\n\t\t * @param  path the path or the expression to observe\r\n\t\t * @param  WatchOption\r\n\t\t * @return MethodDecorator\r\n\t\t */\r\n\t\tfunction Watch(path, options) {\r\n\t\t\tif (options === void 0) { options = {}; }\r\n\t\t\tvar _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\r\n\t\t\treturn vue_class_component_esm_createDecorator(function (componentOptions, handler) {\r\n\t\t\t\tif (typeof componentOptions.watch !== 'object') {\r\n\t\t\t\t\tcomponentOptions.watch = Object.create(null);\r\n\t\t\t\t}\r\n\t\t\t\tvar watch = componentOptions.watch;\r\n\t\t\t\tif (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\r\n\t\t\t\t\twatch[path] = [watch[path]];\r\n\t\t\t\t}\r\n\t\t\t\telse if (typeof watch[path] === 'undefined') {\r\n\t\t\t\t\twatch[path] = [];\r\n\t\t\t\t}\r\n\t\t\t\twatch[path].push({ handler: handler, deep: deep, immediate: immediate });\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Code copied from Vue/src/shared/util.js\r\n\t\tvar vue_property_decorator_hyphenateRE = /\\B([A-Z])/g;\r\n\t\tvar vue_property_decorator_hyphenate = function (str) { return str.replace(vue_property_decorator_hyphenateRE, '-$1').toLowerCase(); };\r\n\t\t/**\r\n\t\t * decorator of an event-emitter function\r\n\t\t * @param  event The name of the event\r\n\t\t * @return MethodDecorator\r\n\t\t */\r\n\t\tfunction Emit(event) {\r\n\t\t\treturn function (_target, propertyKey, descriptor) {\r\n\t\t\t\tvar key = vue_property_decorator_hyphenate(propertyKey);\r\n\t\t\t\tvar original = descriptor.value;\r\n\t\t\t\tdescriptor.value = function emitter() {\r\n\t\t\t\t\tvar _this = this;\r\n\t\t\t\t\tvar args = [];\r\n\t\t\t\t\tfor (var _i = 0; _i < arguments.length; _i++) {\r\n\t\t\t\t\t\targs[_i] = arguments[_i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar emit = function (returnValue) {\r\n\t\t\t\t\t\tvar emitName = event || key;\r\n\t\t\t\t\t\tif (returnValue === undefined) {\r\n\t\t\t\t\t\t\tif (args.length === 0) {\r\n\t\t\t\t\t\t\t\t_this.$emit(emitName);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (args.length === 1) {\r\n\t\t\t\t\t\t\t\t_this.$emit(emitName, args[0]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t_this.$emit.apply(_this, [emitName].concat(args));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (args.length === 0) {\r\n\t\t\t\t\t\t\t\t_this.$emit(emitName, returnValue);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (args.length === 1) {\r\n\t\t\t\t\t\t\t\t_this.$emit(emitName, returnValue, args[0]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t_this.$emit.apply(_this, [emitName, returnValue].concat(args));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar returnValue = original.apply(this, args);\r\n\t\t\t\t\tif (vue_property_decorator_isPromise(returnValue)) {\r\n\t\t\t\t\t\treturnValue.then(emit);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\temit(returnValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn returnValue;\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}\r\n\t\t/**\r\n\t\t * decorator of a ref prop\r\n\t\t * @param refKey the ref key defined in template\r\n\t\t */\r\n\t\tfunction Ref(refKey) {\r\n\t\t\treturn createDecorator(function (options, key) {\r\n\t\t\t\toptions.computed = options.computed || {};\r\n\t\t\t\toptions.computed[key] = {\r\n\t\t\t\t\tcache: false,\r\n\t\t\t\t\tget: function () {\r\n\t\t\t\t\t\treturn this.$refs[refKey || key];\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\t\tfunction vue_property_decorator_isPromise(obj) {\r\n\t\t\treturn obj instanceof Promise || (obj && typeof obj.then === 'function');\r\n\t\t}\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/readmore-js/dist/readmore.es6.js\r\n\t\t/*!\r\n\t\t * @preserve\r\n\t\t * \r\n\t\t * Readmore.js plugin\r\n\t\t * Author: @jed_foster\r\n\t\t * Project home: jedfoster.com/Readmore.js\r\n\t\t * Version: 3.0.0-beta-1\r\n\t\t * Licensed under the MIT license\r\n\t\t * \r\n\t\t * Debounce function from davidwalsh.name/javascript-debounce-function\r\n\t\t */\r\n\t\tlet uniqueIdCounter = 0;\r\n\r\n\t\tconst isCssEmbeddedFor = [];\r\n\r\n\t\t// from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md\r\n\t\t((function removePolyfill(arr) {\r\n\t\t\tarr.forEach((item) => {\r\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(item, 'remove')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tObject.defineProperty(item, 'remove', {\r\n\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\twritable: true,\r\n\t\t\t\t\tvalue: function remove() {\r\n\t\t\t\t\t\tif (this.parentNode !== null) {\r\n\t\t\t\t\t\t\tthis.parentNode.removeChild(this);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t})([Element.prototype, CharacterData.prototype, DocumentType.prototype]));\r\n\r\n\t\tfunction readmore_es6_forEach(arr, callback, scope) {\r\n\t\t\tfor (let i = 0; i < arr.length; i += 1) {\r\n\t\t\t\tcallback.call(scope, arr[i], i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction readmore_es6_extend(...objects) {\r\n\t\t\tconst hasProp = {}.hasOwnProperty;\r\n\t\t\tlet child = objects[0];\r\n\t\t\tlet parent = objects[1];\r\n\r\n\t\t\tif (objects.length > 2) {\r\n\t\t\t\tconst args = [];\r\n\r\n\t\t\t\tObject.keys(objects).forEach((key) => {\r\n\t\t\t\t\targs.push(objects[key]);\r\n\t\t\t\t});\r\n\r\n\t\t\t\twhile (args.length > 2) {\r\n\t\t\t\t\tconst c1 = args.shift();\r\n\t\t\t\t\tconst p1 = args.shift();\r\n\t\t\t\t\targs.unshift(readmore_es6_extend(c1, p1));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tchild = args.shift();\r\n\t\t\t\tparent = args.shift();\r\n\t\t\t}\r\n\r\n\t\t\tif (parent) {\r\n\t\t\t\tObject.keys(parent).forEach((key) => {\r\n\t\t\t\t\tif (hasProp.call(parent, key)) {\r\n\t\t\t\t\t\tif (typeof parent[key] === 'object') {\r\n\t\t\t\t\t\t\tchild[key] = child[key] || {};\r\n\t\t\t\t\t\t\tchild[key] = readmore_es6_extend(child[key], parent[key]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tchild[key] = parent[key];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn child;\r\n\t\t}\r\n\r\n\t\tfunction debounce(func, wait, immediate) {\r\n\t\t\tlet timeout;\r\n\r\n\t\t\treturn function debouncedFunc(...args) {\r\n\t\t\t\tconst callNow = immediate && !timeout;\r\n\t\t\t\tconst later = () => {\r\n\t\t\t\t\ttimeout = null;\r\n\t\t\t\t\tif (!immediate) func.apply(this, args);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t\ttimeout = setTimeout(later, wait);\r\n\r\n\t\t\t\tif (callNow) func.apply(this, args);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction uniqueId() {\r\n\t\t\tuniqueIdCounter += 1;\r\n\r\n\t\t\treturn `rmjs-${uniqueIdCounter}`;\r\n\t\t}\r\n\r\n\t\tfunction setBoxHeights(element) {\r\n\t\t\telement.style.height = 'auto';\r\n\r\n\t\t\tconst expandedHeight = parseInt(element.getBoundingClientRect().height, 10);\r\n\t\t\tconst cssMaxHeight = parseInt(window.getComputedStyle(element).maxHeight, 10);\r\n\t\t\tconst defaultHeight = parseInt(element.readmore.defaultHeight, 10);\r\n\r\n\t\t\t// Store our measurements.\r\n\t\t\telement.readmore.expandedHeight = expandedHeight;\r\n\t\t\telement.readmore.maxHeight = cssMaxHeight;\r\n\t\t\telement.readmore.collapsedHeight = cssMaxHeight || element.readmore.collapsedHeight || defaultHeight;\r\n\r\n\t\t\telement.style.maxHeight = 'none';\r\n\t\t}\r\n\r\n\t\tfunction createElementFromString(htmlString) {\r\n\t\t\tconst div = document.createElement('div');\r\n\t\t\tdiv.innerHTML = htmlString;\r\n\r\n\t\t\treturn div.firstChild;\r\n\t\t}\r\n\r\n\t\tfunction embedCSS(selector, options) {\r\n\t\t\tif (!isCssEmbeddedFor[selector]) {\r\n\t\t\t\tlet styles = '';\r\n\r\n\t\t\t\tif (options.embedCSS && options.blockCSS !== '') {\r\n\t\t\t\t\tstyles += `${selector} + [data-readmore-toggle], ${selector}[data-readmore] {\r\n        ${options.blockCSS}\r\n      }`;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Include the transition CSS even if embedCSS is false\r\n\t\t\t\tstyles += `${selector}[data-readmore] {\r\n      transition: height ${options.speed}ms;\r\n      overflow: hidden;\r\n    }`;\r\n\r\n\t\t\t\t(((d, u) => {\r\n\t\t\t\t\tconst css = d.createElement('style');\r\n\t\t\t\t\tcss.type = 'text/css';\r\n\r\n\t\t\t\t\tif (css.styleSheet) {\r\n\t\t\t\t\t\tcss.styleSheet.cssText = u;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcss.appendChild(d.createTextNode(u));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\td.getElementsByTagName('head')[0].appendChild(css);\r\n\t\t\t\t})(document, styles));\r\n\r\n\t\t\t\tisCssEmbeddedFor[selector] = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction buildToggle(link, element, scope) {\r\n\t\t\tfunction clickHandler(event) {\r\n\t\t\t\tthis.toggle(element, event);\r\n\t\t\t}\r\n\r\n\t\t\tlet text = link;\r\n\t\t\tif (typeof link === 'function') {\r\n\t\t\t\ttext = link(element);\r\n\t\t\t}\r\n\r\n\t\t\tconst toggleLink = createElementFromString(text);\r\n\t\t\ttoggleLink.setAttribute('data-readmore-toggle', element.id);\r\n\t\t\ttoggleLink.setAttribute('aria-controls', element.id);\r\n\t\t\ttoggleLink.addEventListener('click', clickHandler.bind(scope));\r\n\r\n\t\t\treturn toggleLink;\r\n\t\t}\r\n\r\n\t\tfunction isEnvironmentSupported() {\r\n\t\t\treturn (typeof window !== 'undefined' && typeof document !== 'undefined')\r\n\t\t\t\t&& !!document.querySelectorAll && !!window.addEventListener;\r\n\t\t}\r\n\r\n\t\tconst resizeBoxes = debounce(() => {\r\n\t\t\tconst elements = document.querySelectorAll('[data-readmore]');\r\n\r\n\t\t\treadmore_es6_forEach(elements, (element) => {\r\n\t\t\t\tconst expanded = element.getAttribute('aria-expanded') === 'true';\r\n\r\n\t\t\t\tsetBoxHeights(element);\r\n\r\n\t\t\t\telement.style.height = `${expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight}px`;\r\n\t\t\t});\r\n\t\t}, 100);\r\n\r\n\t\tconst readmore_es6_defaults = {\r\n\t\t\tspeed: 100,\r\n\t\t\tcollapsedHeight: 200,\r\n\t\t\theightMargin: 16,\r\n\t\t\tmoreLink: '<a href=\"#\">Read More</a>',\r\n\t\t\tlessLink: '<a href=\"#\">Close</a>',\r\n\t\t\tembedCSS: true,\r\n\t\t\tblockCSS: 'display: block; width: 100%;',\r\n\t\t\tstartOpen: false,\r\n\t\t\tsourceOrder: 'after',\r\n\r\n\t\t\t// callbacks\r\n\t\t\tblockProcessed: () => { },\r\n\t\t\tbeforeToggle: () => { },\r\n\t\t\tafterToggle: () => { }\r\n\t\t};\r\n\r\n\t\tclass Readmore {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tif (!isEnvironmentSupported()) return;\r\n\r\n\t\t\t\tconst [selector, options] = args;\r\n\t\t\t\tlet elements;\r\n\r\n\t\t\t\tif (typeof selector === 'string') {\r\n\t\t\t\t\telements = document.querySelectorAll(selector);\r\n\t\t\t\t} else if (selector.nodeName) {\r\n\t\t\t\t\telements = [selector]; // emulate a NodeList by casting a single Node as an array\r\n\t\t\t\t} else {\r\n\t\t\t\t\telements = selector;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// After all that, if we _still_ don't have iteratable NodeList, bail out.\r\n\t\t\t\tif (!elements.length) return;\r\n\r\n\t\t\t\tthis.options = readmore_es6_extend({}, readmore_es6_defaults, options);\r\n\r\n\t\t\t\tif (typeof selector === 'string') {\r\n\t\t\t\t\tembedCSS(selector, this.options);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Instances need distinct selectors so they don't stomp on each other.\r\n\t\t\t\t\tthis.instanceSelector = `.${uniqueId()}`;\r\n\t\t\t\t\tembedCSS(this.instanceSelector, this.options);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Need to resize boxes when the page has fully loaded.\r\n\t\t\t\twindow.addEventListener('load', resizeBoxes);\r\n\t\t\t\twindow.addEventListener('resize', resizeBoxes);\r\n\r\n\t\t\t\tthis.elements = [];\r\n\r\n\t\t\t\treadmore_es6_forEach(elements, (element) => {\r\n\t\t\t\t\tif (this.instanceSelector) {\r\n\t\t\t\t\t\telement.classList.add(this.instanceSelector.substr(1));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst expanded = this.options.startOpen;\r\n\r\n\t\t\t\t\telement.readmore = {\r\n\t\t\t\t\t\tdefaultHeight: this.options.collapsedHeight,\r\n\t\t\t\t\t\theightMargin: this.options.heightMargin\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tsetBoxHeights(element);\r\n\r\n\t\t\t\t\tconst { heightMargin } = element.readmore;\r\n\r\n\t\t\t\t\tif (element.getBoundingClientRect().height <= element.readmore.collapsedHeight + heightMargin) {\r\n\t\t\t\t\t\tif (typeof this.options.blockProcessed === 'function') {\r\n\t\t\t\t\t\t\tthis.options.blockProcessed(element, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telement.setAttribute('data-readmore', '');\r\n\t\t\t\t\telement.setAttribute('aria-expanded', expanded);\r\n\t\t\t\t\telement.id = element.id || uniqueId();\r\n\r\n\t\t\t\t\tconst toggleLink = expanded ? this.options.lessLink : this.options.moreLink;\r\n\t\t\t\t\tconst toggleElement = buildToggle(toggleLink, element, this);\r\n\r\n\t\t\t\t\telement.parentNode.insertBefore(toggleElement, (this.options.sourceOrder === 'before') ? element : element.nextSibling);\r\n\r\n\t\t\t\t\telement.style.height = `${expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight}px`;\r\n\r\n\t\t\t\t\tif (typeof this.options.blockProcessed === 'function') {\r\n\t\t\t\t\t\tthis.options.blockProcessed(element, true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.elements.push(element);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Signature when called internally by the toggleLink click handler:\r\n\t\t\t//   toggle(element, event)\r\n\t\t\t//\r\n\t\t\t// When called externally by an instance,\r\n\t\t\t// e.g. readmoreDemo.toggle(document.querySelector('article:nth-of-type(1)')):\r\n\t\t\t//   toggle(elementOrQuerySelector)\r\n\t\t\ttoggle(...args) {\r\n\t\t\t\tlet el = args[0];\r\n\r\n\t\t\t\tconst toggleElement = (element) => {\r\n\t\t\t\t\tconst trigger = document.querySelector(`[aria-controls=\"${element.id}\"]`);\r\n\t\t\t\t\tconst expanded = element.getBoundingClientRect().height <= element.readmore.collapsedHeight;\r\n\t\t\t\t\tconst newHeight = expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight;\r\n\r\n\t\t\t\t\t// Fire beforeToggle callback\r\n\t\t\t\t\t// Since we determined the new \"expanded\" state above we're now out of sync\r\n\t\t\t\t\t// with our true current state, so we need to flip the value of `expanded`\r\n\t\t\t\t\tif (typeof this.options.beforeToggle === 'function') {\r\n\t\t\t\t\t\tconst shouldContinueToggle = this.options.beforeToggle(trigger, element, !expanded);\r\n\r\n\t\t\t\t\t\t// if the beforeToggle callback returns false, stop toggling\r\n\t\t\t\t\t\tif (shouldContinueToggle === false) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telement.style.height = `${newHeight}px`;\r\n\r\n\t\t\t\t\tconst transitionendHandler = (transitionEvent) => {\r\n\t\t\t\t\t\t// Fire afterToggle callback\r\n\t\t\t\t\t\tif (typeof this.options.afterToggle === 'function') {\r\n\t\t\t\t\t\t\tthis.options.afterToggle(trigger, element, expanded);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttransitionEvent.stopPropagation();\r\n\r\n\t\t\t\t\t\telement.setAttribute('aria-expanded', expanded);\r\n\t\t\t\t\t\telement.removeEventListener('transitionend', transitionendHandler, false);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\telement.addEventListener('transitionend', transitionendHandler, false);\r\n\r\n\t\t\t\t\tif (this.options.speed < 1) {\r\n\t\t\t\t\t\ttransitionendHandler.call(this, { target: element });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst toggleLink = expanded ? this.options.lessLink : this.options.moreLink;\r\n\r\n\t\t\t\t\tif (!toggleLink) {\r\n\t\t\t\t\t\ttrigger.remove();\r\n\t\t\t\t\t} else if (trigger && trigger.parentNode) {\r\n\t\t\t\t\t\ttrigger.parentNode.replaceChild(buildToggle(toggleLink, element, this), trigger);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (typeof el === 'string') {\r\n\t\t\t\t\tel = document.querySelectorAll(el);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!el) {\r\n\t\t\t\t\tthrow new Error('Element MUST be either an HTML node or querySelector string');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst event = args[1];\r\n\r\n\t\t\t\tif (event) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (typeof el === 'object' && !el.nodeName) { // element is likely a NodeList\r\n\t\t\t\t\treadmore_es6_forEach(el, toggleElement);\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoggleElement(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tdestroy(selector) {\r\n\t\t\t\tlet elements;\r\n\r\n\t\t\t\tif (!selector) {\r\n\t\t\t\t\telements = this.elements; // eslint-disable-line\r\n\t\t\t\t} else if (typeof selector === 'string') {\r\n\t\t\t\t\telements = document.querySelectorAll(selector);\r\n\t\t\t\t} else if (selector.nodeName) {\r\n\t\t\t\t\telements = [selector]; // emulate a NodeList by casting a single Node as an array\r\n\t\t\t\t} else {\r\n\t\t\t\t\telements = selector;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treadmore_es6_forEach(elements, (element) => {\r\n\t\t\t\t\tif (this.elements.indexOf(element) === -1) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.elements = this.elements.filter((el) => el !== element);\r\n\r\n\t\t\t\t\tif (this.instanceSelector) {\r\n\t\t\t\t\t\telement.classList.remove(this.instanceSelector.substr(1));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdelete element.readmore;\r\n\r\n\t\t\t\t\telement.style.height = 'initial';\r\n\t\t\t\t\telement.style.maxHeight = 'initial';\r\n\r\n\t\t\t\t\telement.removeAttribute('data-readmore');\r\n\t\t\t\t\telement.removeAttribute('aria-expanded');\r\n\r\n\t\t\t\t\tconst trigger = document.querySelector(`[aria-controls=\"${element.id}\"]`);\r\n\t\t\t\t\tif (trigger) {\r\n\t\t\t\t\t\ttrigger.remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (element.id.indexOf('rmjs-') !== -1) {\r\n\t\t\t\t\t\telement.removeAttribute('id');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tdelete this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tReadmore.VERSION = '3.0.0-beta-1';\r\n\r\n/* harmony default export */ const readmore_es6 = (Readmore);\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js\r\n\t\tfunction bodyScrollLock_esm_toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\r\n\r\n\t\t// Older browsers don't support event options, feature detect it.\r\n\r\n\t\t// Adopted and modified solution from Bohdan Didukh (2017)\r\n\t\t// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\r\n\r\n\t\tvar hasPassiveEvents = false;\r\n\t\tif (typeof window !== 'undefined') {\r\n\t\t\tvar passiveTestOptions = {\r\n\t\t\t\tget passive() {\r\n\t\t\t\t\thasPassiveEvents = true;\r\n\t\t\t\t\treturn undefined;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\twindow.addEventListener('testPassive', null, passiveTestOptions);\r\n\t\t\twindow.removeEventListener('testPassive', null, passiveTestOptions);\r\n\t\t}\r\n\r\n\t\tvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\r\n\r\n\r\n\t\tvar locks = [];\r\n\t\tvar documentListenerAdded = false;\r\n\t\tvar initialClientY = -1;\r\n\t\tvar previousBodyOverflowSetting = void 0;\r\n\t\tvar previousBodyPaddingRight = void 0;\r\n\r\n\t\t// returns true if `el` should be allowed to receive touchmove events.\r\n\t\tvar allowTouchMove = function allowTouchMove(el) {\r\n\t\t\treturn locks.some(function (lock) {\r\n\t\t\t\tif (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tvar preventDefault = function preventDefault(rawEvent) {\r\n\t\t\tvar e = rawEvent || window.event;\r\n\r\n\t\t\t// For the case whereby consumers adds a touchmove event listener to document.\r\n\t\t\t// Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\r\n\t\t\t// in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\r\n\t\t\t// the touchmove event on document will break.\r\n\t\t\tif (allowTouchMove(e.target)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t// Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\r\n\t\t\tif (e.touches.length > 1) return true;\r\n\r\n\t\t\tif (e.preventDefault) e.preventDefault();\r\n\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t\tvar setOverflowHidden = function setOverflowHidden(options) {\r\n\t\t\t// If previousBodyPaddingRight is already set, don't set it again.\r\n\t\t\tif (previousBodyPaddingRight === undefined) {\r\n\t\t\t\tvar _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\r\n\t\t\t\tvar scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n\t\t\t\tif (_reserveScrollBarGap && scrollBarGap > 0) {\r\n\t\t\t\t\tpreviousBodyPaddingRight = document.body.style.paddingRight;\r\n\t\t\t\t\tdocument.body.style.paddingRight = scrollBarGap + 'px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// If previousBodyOverflowSetting is already set, don't set it again.\r\n\t\t\tif (previousBodyOverflowSetting === undefined) {\r\n\t\t\t\tpreviousBodyOverflowSetting = document.body.style.overflow;\r\n\t\t\t\tdocument.body.style.overflow = 'hidden';\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar restoreOverflowSetting = function restoreOverflowSetting() {\r\n\t\t\tif (previousBodyPaddingRight !== undefined) {\r\n\t\t\t\tdocument.body.style.paddingRight = previousBodyPaddingRight;\r\n\r\n\t\t\t\t// Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\r\n\t\t\t\t// can be set again.\r\n\t\t\t\tpreviousBodyPaddingRight = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tif (previousBodyOverflowSetting !== undefined) {\r\n\t\t\t\tdocument.body.style.overflow = previousBodyOverflowSetting;\r\n\r\n\t\t\t\t// Restore previousBodyOverflowSetting to undefined\r\n\t\t\t\t// so setOverflowHidden knows it can be set again.\r\n\t\t\t\tpreviousBodyOverflowSetting = undefined;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\r\n\t\tvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\r\n\t\t\treturn targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\r\n\t\t};\r\n\r\n\t\tvar handleScroll = function handleScroll(event, targetElement) {\r\n\t\t\tvar clientY = event.targetTouches[0].clientY - initialClientY;\r\n\r\n\t\t\tif (allowTouchMove(event.target)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\r\n\t\t\t\t// element is at the top of its scroll.\r\n\t\t\t\treturn preventDefault(event);\r\n\t\t\t}\r\n\r\n\t\t\tif (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\r\n\t\t\t\t// element is at the bottom of its scroll.\r\n\t\t\t\treturn preventDefault(event);\r\n\t\t\t}\r\n\r\n\t\t\tevent.stopPropagation();\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\tvar disableBodyScroll = function disableBodyScroll(targetElement, options) {\r\n\t\t\t// targetElement must be provided\r\n\t\t\tif (!targetElement) {\r\n\t\t\t\t// eslint-disable-next-line no-console\r\n\t\t\t\tconsole.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// disableBodyScroll must not have been called on this targetElement before\r\n\t\t\tif (locks.some(function (lock) {\r\n\t\t\t\treturn lock.targetElement === targetElement;\r\n\t\t\t})) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar lock = {\r\n\t\t\t\ttargetElement: targetElement,\r\n\t\t\t\toptions: options || {}\r\n\t\t\t};\r\n\r\n\t\t\tlocks = [].concat(bodyScrollLock_esm_toConsumableArray(locks), [lock]);\r\n\r\n\t\t\tif (isIosDevice) {\r\n\t\t\t\ttargetElement.ontouchstart = function (event) {\r\n\t\t\t\t\tif (event.targetTouches.length === 1) {\r\n\t\t\t\t\t\t// detect single touch.\r\n\t\t\t\t\t\tinitialClientY = event.targetTouches[0].clientY;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\ttargetElement.ontouchmove = function (event) {\r\n\t\t\t\t\tif (event.targetTouches.length === 1) {\r\n\t\t\t\t\t\t// detect single touch.\r\n\t\t\t\t\t\thandleScroll(event, targetElement);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!documentListenerAdded) {\r\n\t\t\t\t\tdocument.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\r\n\t\t\t\t\tdocumentListenerAdded = true;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsetOverflowHidden(options);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\r\n\t\t\tif (isIosDevice) {\r\n\t\t\t\t// Clear all locks ontouchstart/ontouchmove handlers, and the references.\r\n\t\t\t\tlocks.forEach(function (lock) {\r\n\t\t\t\t\tlock.targetElement.ontouchstart = null;\r\n\t\t\t\t\tlock.targetElement.ontouchmove = null;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (documentListenerAdded) {\r\n\t\t\t\t\tdocument.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\r\n\t\t\t\t\tdocumentListenerAdded = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Reset initial clientY.\r\n\t\t\t\tinitialClientY = -1;\r\n\t\t\t} else {\r\n\t\t\t\trestoreOverflowSetting();\r\n\t\t\t}\r\n\r\n\t\t\tlocks = [];\r\n\t\t};\r\n\r\n\t\tvar enableBodyScroll = function enableBodyScroll(targetElement) {\r\n\t\t\tif (!targetElement) {\r\n\t\t\t\t// eslint-disable-next-line no-console\r\n\t\t\t\tconsole.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlocks = locks.filter(function (lock) {\r\n\t\t\t\treturn lock.targetElement !== targetElement;\r\n\t\t\t});\r\n\r\n\t\t\tif (isIosDevice) {\r\n\t\t\t\ttargetElement.ontouchstart = null;\r\n\t\t\t\ttargetElement.ontouchmove = null;\r\n\r\n\t\t\t\tif (documentListenerAdded && locks.length === 0) {\r\n\t\t\t\t\tdocument.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\r\n\t\t\t\t\tdocumentListenerAdded = false;\r\n\t\t\t\t}\r\n\t\t\t} else if (!locks.length) {\r\n\t\t\t\trestoreOverflowSetting();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// EXTERNAL MODULE: ./node_modules/jquery-zoom/jquery.zoom.js\r\n\t\tvar jquery_zoom = __webpack_require__(357);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Zoom.js\r\n\r\n\r\n\t\tclass Zoom_Zoom {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.DURATION = 120;\r\n\r\n\t\t\t\tthis.imgLoaded = () => {\r\n\t\t\t\t\tthis.$loader.addClass('hidden');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onZoomIn = img => {\r\n\t\t\t\t\t// Hide zoomed image when it's smaller then parent div,\r\n\t\t\t\t\t// it would just move but there won't be any zoom\r\n\t\t\t\t\tif (this.$element.width() >= jquery_default()(img).width()) {\r\n\t\t\t\t\t\tthis.$element.find('.zoomImg').addClass('hide');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.$element.find('.zoomImg').removeClass('hide');\r\n\t\t\t\t\t} // Hide image when zoomed image is hovered - to prevent\r\n\t\t\t\t\t// both images visible when the image is too small\r\n\r\n\r\n\t\t\t\t\tthis.timer = setTimeout(() => {\r\n\t\t\t\t\t\tthis.img.classList.add('product-image-hidden');\r\n\t\t\t\t\t\tthis.timer = null;\r\n\t\t\t\t\t}, this.DURATION);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onZoomOut = () => {\r\n\t\t\t\t\tif (this.timer) {\r\n\t\t\t\t\t\tclearTimeout(this.timer);\r\n\t\t\t\t\t\tthis.timer = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.img.classList.remove('product-image-hidden');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.destroy = () => {\r\n\t\t\t\t\tthis.$element.trigger('zoom.destroy');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.$element = jquery_default()(element);\r\n\t\t\t\tthis.img = element.querySelector('img');\r\n\t\t\t\tthis.timer = null;\r\n\t\t\t\tthis.$loader = jquery_default()(this.img).next('.featured-image-loader');\r\n\t\t\t\tconst self = this;\r\n\t\t\t\tthis.$loader.removeClass('hidden'); // @ts-ignore\r\n\r\n\t\t\t\tthis.$element.zoom({\r\n\t\t\t\t\turl: this.img.dataset.imageZoom || this.img.src,\r\n\t\t\t\t\ttouch: false,\r\n\t\t\t\t\tduration: this.DURATION,\r\n\t\t\t\t\tonZoomIn: function () {\r\n\t\t\t\t\t\tself.onZoomIn(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonZoomOut: this.onZoomOut,\r\n\t\t\t\t\tcallback: this.imgLoaded()\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/MediaWrapper.js\r\n\r\n\r\n\r\n\t\tclass MediaWrapper {\r\n\t\t\t/**\r\n\t\t\t *\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {string} sectionId\r\n\t\t\t * @param {import('theme-checker/dist/shopify').Media} media\r\n\t\t\t * @param {HTMLElement} target\r\n\t\t\t */\r\n\t\t\tconstructor(theme, sectionId, media, target) {\r\n\t\t\t\tthis.load = () => {\r\n\t\t\t\t\treturn new Promise(resolve => {\r\n\t\t\t\t\t\tif (this.loaded) {\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.media.media_type === 'image') {\r\n\t\t\t\t\t\t\tthis.loadImageZoom();\r\n\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar template = document.querySelector(`#media-template-${this.sectionId}-${this.media.id}`);\r\n\r\n\t\t\t\t\t\tif (!template) {\r\n\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst fragment = document.importNode(template.content, true);\r\n\r\n\t\t\t\t\t\twhile (this.target.firstChild) {\r\n\t\t\t\t\t\t\tthis.target.removeChild(this.target.lastChild);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.target.appendChild(fragment);\r\n\t\t\t\t\t\tthis.renderedElement = this.target.lastElementChild;\r\n\r\n\t\t\t\t\t\tswitch (this.media.media_type) {\r\n\t\t\t\t\t\t\tcase 'model':\r\n\t\t\t\t\t\t\t\twindow.Shopify.loadFeatures([{\r\n\t\t\t\t\t\t\t\t\tname: 'model-viewer-ui',\r\n\t\t\t\t\t\t\t\t\tversion: '1.0'\r\n\t\t\t\t\t\t\t\t}], () => {\r\n\t\t\t\t\t\t\t\t\tthis.modelController = new window.Shopify.ModelViewerUI(this.renderedElement.querySelector('model-viewer')); // Don't interact with the rest of the page when model is not disabled\r\n\r\n\t\t\t\t\t\t\t\t\tthis.modelController.viewer.parentElement.addEventListener('mouseup', e => {\r\n\t\t\t\t\t\t\t\t\t\te.stopPropagation = function () { };\r\n\t\t\t\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\t\t\t\tcapture: true\r\n\t\t\t\t\t\t\t\t\t}); // Prevent activating the viewer right after it was paused when clicked in position of the button\r\n\r\n\t\t\t\t\t\t\t\t\tthis.modelController.elements.controlButton.addEventListener('click', e => {\r\n\t\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\t}, {\r\n\t\t\t\t\t\t\t\t\t\tcapture: true\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tthis.modelController.viewer.addEventListener('shopify_model_viewer_ui_toggle_pause', this.on_pause.bind(this));\r\n\t\t\t\t\t\t\t\t\tthis.modelController.viewer.addEventListener('shopify_model_viewer_ui_toggle_play', this.on_play.bind(this));\r\n\t\t\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase 'video':\r\n\t\t\t\t\t\t\t\twindow.Shopify.loadFeatures([{\r\n\t\t\t\t\t\t\t\t\tname: 'video-ui',\r\n\t\t\t\t\t\t\t\t\tversion: '1.0',\r\n\t\t\t\t\t\t\t\t\tonLoad: function () {\r\n\t\t\t\t\t\t\t\t\t\tvar video = this.renderedElement.querySelector('video');\r\n\t\t\t\t\t\t\t\t\t\tvar loop = video.parentNode.dataset.videoLoop === 'true';\r\n\t\t\t\t\t\t\t\t\t\tthis.plyrController = new window.Shopify.Plyr(video, {\r\n\t\t\t\t\t\t\t\t\t\t\tloop: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tactive: loop\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfocusOnPlay: false\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tvideo.addEventListener('play', this.on_play.bind(this));\r\n\t\t\t\t\t\t\t\t\t\tvideo.addEventListener('pause', this.on_pause.bind(this));\r\n\t\t\t\t\t\t\t\t\t\tvideo.addEventListener('ended', this.on_pause.bind(this));\r\n\t\t\t\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t\t\t}.bind(this)\r\n\t\t\t\t\t\t\t\t}]);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tcase 'external_video':\r\n\t\t\t\t\t\t\t\tvar iframe = this.renderedElement.querySelector('iframe');\r\n\t\t\t\t\t\t\t\tvar loop = iframe.parentNode.dataset.videoLoop === 'true';\r\n\r\n\t\t\t\t\t\t\t\tif (iframe.src.indexOf('youtube.com') !== -1) {\r\n\t\t\t\t\t\t\t\t\tthis.externalVideoHost = 'youtube';\r\n\t\t\t\t\t\t\t\t\tthis.theme.loadYoutubeApi().then(() => {\r\n\t\t\t\t\t\t\t\t\t\tnew window.YT.Player(iframe, {\r\n\t\t\t\t\t\t\t\t\t\t\tevents: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tonReady: event => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.youtubeController = event.target;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tonStateChange: event => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (event.data === window.YT.PlayerState.PLAYING) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.on_play();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (event.data === window.YT.PlayerState.PAUSED) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.on_pause();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (event.data === window.YT.PlayerState.ENDED) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (loop) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.youtubeController.playVideo();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.on_pause();\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\tonError: event => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.warn('Youtube video error', event, event.data);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.on_pause();\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t} else if (iframe.src.indexOf('vimeo.com') !== -1) {\r\n\t\t\t\t\t\t\t\t\tthis.externalVideoHost = 'vimeo';\r\n\t\t\t\t\t\t\t\t\tlet self = this;\r\n\t\t\t\t\t\t\t\t\tthis.theme.loadVimeoApi().then(() => {\r\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\t\t\t\t\tlet player = new window.Vimeo.Player(iframe);\r\n\t\t\t\t\t\t\t\t\t\tplayer.ready().then(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tself.vimeoController = player;\r\n\t\t\t\t\t\t\t\t\t\t\tself.on_load();\r\n\t\t\t\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tplayer.on('play', function () {\r\n\t\t\t\t\t\t\t\t\t\t\tself.vimeoController.setLoop(loop);\r\n\t\t\t\t\t\t\t\t\t\t\tself.on_play();\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tplayer.on('pause', function () {\r\n\t\t\t\t\t\t\t\t\t\t\tself.on_pause();\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\tthis.on_load();\r\n\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadImageZoom = () => {\r\n\t\t\t\t\tconst image = this.target.querySelector('img');\r\n\r\n\t\t\t\t\tif (image.dataset.imageZoom && !this.isMobile()) {\r\n\t\t\t\t\t\tnew Zoom_Zoom(this.theme, this.target);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.isMobile = () => {\r\n\t\t\t\t\treturn window.matchMedia('only screen and (max-width: 768px)').matches;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.on_load = () => {\r\n\t\t\t\t\tthis.loaded = true;\r\n\t\t\t\t\tthis.target.querySelector('.product-medias__media').classList.add('product-medias__media--loaded');\r\n\t\t\t\t\tvar e = new CustomEvent('media-load', {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tparent: this.target,\r\n\t\t\t\t\t\t\tmedia: this\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.target.dispatchEvent(e);\r\n\r\n\t\t\t\t\tif (window.ShopifyXR && window.ShopifyXR.setupXRElements) {\r\n\t\t\t\t\t\twindow.ShopifyXR.setupXRElements();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.play = () => {\r\n\t\t\t\t\tif (!this.loaded) {\r\n\t\t\t\t\t\tthis.load().then(this._play.bind(this));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis._play();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._play = () => {\r\n\t\t\t\t\tswitch (this.media.media_type) {\r\n\t\t\t\t\t\tcase 'model':\r\n\t\t\t\t\t\t\tthis.modelController.play();\r\n\t\t\t\t\t\t\tthis.on_play();\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'video':\r\n\t\t\t\t\t\t\tthis.plyrController.play().then(this.on_play.bind(this)).catch(console.warn);\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'external_video':\r\n\t\t\t\t\t\t\tif (this.externalVideoHost == 'youtube') {\r\n\t\t\t\t\t\t\t\tthis.youtubeController.playVideo();\r\n\t\t\t\t\t\t\t} else if (this.externalVideoHost == 'vimeo') {\r\n\t\t\t\t\t\t\t\tthis.vimeoController.play();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.on_play();\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.on_play = () => {\r\n\t\t\t\t\tthis.active = true;\r\n\t\t\t\t\tthis.target.querySelector('.product-medias__media').classList.add('product-medias__media--active');\r\n\r\n\t\t\t\t\tif (!this.loaded) {\r\n\t\t\t\t\t\tthis.loaded = true;\r\n\t\t\t\t\t\tthis.target.querySelector('.product-medias__media').classList.add('product-medias__media--loaded');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar e = new CustomEvent('media-play', {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tparent: this.target,\r\n\t\t\t\t\t\t\tmedia: this\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.target.dispatchEvent(e);\r\n\r\n\t\t\t\t\tif (document.activeElement === document.body) {\r\n\t\t\t\t\t\t// No element has focus, focus this media\r\n\t\t\t\t\t\tthis.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.autoplay = () => {\r\n\t\t\t\t\tif (jquery_default()(window).width() > 767 && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\r\n\t\t\t\t\t\tthis.play();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.pause = () => {\r\n\t\t\t\t\tif (!this.active) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tswitch (this.media.media_type) {\r\n\t\t\t\t\t\tcase 'model':\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'video':\r\n\t\t\t\t\t\t\tthis.plyrController.pause();\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'external_video':\r\n\t\t\t\t\t\t\tif (this.externalVideoHost == 'youtube') {\r\n\t\t\t\t\t\t\t\tthis.youtubeController.pauseVideo();\r\n\t\t\t\t\t\t\t} else if (this.externalVideoHost == 'vimeo') {\r\n\t\t\t\t\t\t\t\tthis.vimeoController.pause();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.on_pause();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.togglePlay = () => {\r\n\t\t\t\t\tif (this.active) {\r\n\t\t\t\t\t\tthis.pause();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.play();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.on_pause = () => {\r\n\t\t\t\t\tthis.active = false;\r\n\t\t\t\t\tthis.target.querySelector('.product-medias__media').classList.remove('product-medias__media--active');\r\n\t\t\t\t\tvar e = new CustomEvent('media-pause', {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tparent: this.target,\r\n\t\t\t\t\t\t\tmedia: this\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.target.dispatchEvent(e);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.focus = () => {\r\n\t\t\t\t\tswitch (this.media.media_type) {\r\n\t\t\t\t\t\tcase 'video':\r\n\t\t\t\t\t\t\tthis.target.querySelector('.plyr').focus();\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'model':\r\n\t\t\t\t\t\t\tvar viewer = this.target.querySelector('model-viewer');\r\n\r\n\t\t\t\t\t\t\tif (viewer && viewer.shadowRoot) {\r\n\t\t\t\t\t\t\t\tviewer.focus();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// Not yet loaded, try later\r\n\t\t\t\t\t\t\t\tsetTimeout(this.focus.bind(this), 1000);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 'external_video':\r\n\t\t\t\t\t\t\tthis.target.querySelector('iframe').contentWindow.focus();\r\n\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tthis.target.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.destroy = () => { };\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.sectionId = sectionId;\r\n\t\t\t\tthis.mediaId = media.id;\r\n\t\t\t\tthis.media = media;\r\n\t\t\t\tthis.target = target;\r\n\t\t\t\tthis.renderedElement = null;\r\n\t\t\t\tthis.loaded = false;\r\n\t\t\t\tthis.active = false;\r\n\t\t\t\tthis.plyrController = null;\r\n\t\t\t\tthis.modelController = null;\r\n\t\t\t\tthis.youtubeController = null;\r\n\t\t\t\tthis.vimeoController = null;\r\n\t\t\t\tthis.externalVideoHost = null;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Accessibility.js\r\n\t\tclass Accessibility {\r\n\t\t\tconstructor() {\r\n\t\t\t\tthis.state = {\r\n\t\t\t\t\tfirstFocusable: null,\r\n\t\t\t\t\tlastFocusable: null\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Traps the focus in a particular container\r\n\t\t\t *\r\n\t\t\t * @param {object} options - Options to be used\r\n\t\t\t * @param {HTMLElement} options.container - Container to trap focus within\r\n\t\t\t * @param {HTMLElement} options.elementToFocus - Element to be focused when focus leaves container\r\n\t\t\t */\r\n\r\n\r\n\t\t\ttrapFocus(options) {\r\n\t\t\t\tvar focusableElements =\r\n\t\t\t\t\t/** @type {HTMLElement[]} */\r\n\t\t\t\t\tArray.from(options.container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex^=\"-\"])')).filter(function (element) {\r\n\t\t\t\t\t\tvar width = element.offsetWidth;\r\n\t\t\t\t\t\tvar height = element.offsetHeight;\r\n\t\t\t\t\t\treturn width !== 0 && height !== 0 && getComputedStyle(element).getPropertyValue('display') !== 'none';\r\n\t\t\t\t\t});\r\n\t\t\t\tthis.state.firstFocusable = focusableElements[0];\r\n\t\t\t\tthis.state.lastFocusable = focusableElements[focusableElements.length - 1];\r\n\r\n\t\t\t\tif (!options.elementToFocus) {\r\n\t\t\t\t\toptions.elementToFocus = options.container;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.container.setAttribute('tabindex', '-1');\r\n\t\t\t\toptions.elementToFocus.focus();\r\n\r\n\t\t\t\tthis._setupHandlers();\r\n\r\n\t\t\t\tdocument.addEventListener('focusin', this._onFocusInHandler);\r\n\t\t\t\tdocument.addEventListener('focusout', this._onFocusOutHandler);\r\n\t\t\t}\r\n\r\n\t\t\t_setupHandlers() {\r\n\t\t\t\tif (!this._onFocusInHandler) {\r\n\t\t\t\t\tthis._onFocusInHandler = this._onFocusIn.bind(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._onFocusOutHandler) {\r\n\t\t\t\t\tthis._onFocusOutHandler = this._onFocusIn.bind(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._manageFocusHandler) {\r\n\t\t\t\t\tthis._manageFocusHandler = this._manageFocus.bind(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t_onFocusOut() {\r\n\t\t\t\tdocument.removeEventListener('keydown', this._manageFocusHandler);\r\n\t\t\t}\r\n\r\n\t\t\t_onFocusIn(evt) {\r\n\t\t\t\tif (evt.target !== this.state.lastFocusable && evt.target !== this.state.firstFocusable) return;\r\n\t\t\t\tdocument.addEventListener('keydown', this._manageFocusHandler);\r\n\t\t\t}\r\n\r\n\t\t\t_manageFocus(evt) {\r\n\t\t\t\tif (evt.keyCode !== 9) return;\r\n\t\t\t\t/**\r\n\t\t\t\t * On the last focusable element and tab forward,\r\n\t\t\t\t * focus the first element.\r\n\t\t\t\t */\r\n\r\n\t\t\t\tif (evt.target === this.state.lastFocusable && !evt.shiftKey) {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tthis.state.firstFocusable.focus();\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * On the first focusable element and tab backward,\r\n\t\t\t\t * focus the last element.\r\n\t\t\t\t */\r\n\r\n\r\n\t\t\t\tif (evt.target === this.state.firstFocusable && evt.shiftKey) {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tthis.state.lastFocusable.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Removes the trap of focus in a particular container\r\n\t\t\t *\r\n\t\t\t * @param {object} options - Options to be used\r\n\t\t\t * @param {HTMLElement} options.container - Container to trap focus within\r\n\t\t\t * @param {HTMLElement} options.elementToFocus - Element to be focused when focus leaves container\r\n\t\t\t */\r\n\r\n\r\n\t\t\tremoveTrapFocus(options) {\r\n\t\t\t\tif (options.container) {\r\n\t\t\t\t\toptions.container.removeAttribute('tabindex');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.elementToFocus) {\r\n\t\t\t\t\toptions.elementToFocus.focus();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.removeEventListener('focusin', this._onFocusInHandler);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/javascripts/components/Dropdown.vue?vue&type=template&id=29828a50&\r\n\t\tvar render = function () {\r\n\t\t\tvar _vm = this\r\n\t\t\tvar _h = _vm.$createElement\r\n\t\t\tvar _c = _vm._self._c || _h\r\n\t\t\treturn _c(\r\n\t\t\t\t\"div\",\r\n\t\t\t\t{\r\n\t\t\t\t\tref: \"component\",\r\n\t\t\t\t\tstaticClass: \"wetheme-dropdown\",\r\n\t\t\t\t\tclass: [\r\n\t\t\t\t\t\t\"fit-\" + _vm.fit,\r\n\t\t\t\t\t\t_vm.open ? \"wetheme-dropdown--open\" : \"wetheme-dropdown--closed\",\r\n\t\t\t\t\t\t\"wetheme-dropdown--\" + _vm.direction\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\t[\r\n\t\t\t\t\t_vm.title\r\n\t\t\t\t\t\t? _c(\"label\", {\r\n\t\t\t\t\t\t\tattrs: { for: _vm.id },\r\n\t\t\t\t\t\t\tdomProps: { textContent: _vm._s(_vm.title) }\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t: _vm._e(),\r\n\t\t\t\t\t_vm._v(\" \"),\r\n\t\t\t\t\t_c(\r\n\t\t\t\t\t\t\"div\",\r\n\t\t\t\t\t\t{ staticClass: \"wetheme-dropdown__wrapper\" },\r\n\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t_c(\r\n\t\t\t\t\t\t\t\t\"button\",\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tref: \"button\",\r\n\t\t\t\t\t\t\t\t\tattrs: {\r\n\t\t\t\t\t\t\t\t\t\tid: _vm.id,\r\n\t\t\t\t\t\t\t\t\t\ttype: \"button\",\r\n\t\t\t\t\t\t\t\t\t\tautocomplete: \"off\",\r\n\t\t\t\t\t\t\t\t\t\treadonly: \"true\",\r\n\t\t\t\t\t\t\t\t\t\ttabindex: \"0\",\r\n\t\t\t\t\t\t\t\t\t\t\"aria-controls\": _vm.dropdownId,\r\n\t\t\t\t\t\t\t\t\t\t\"aria-expanded\": _vm.open\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\ton: {\r\n\t\t\t\t\t\t\t\t\t\tclick: _vm.toggleOpen,\r\n\t\t\t\t\t\t\t\t\t\tblur: function ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\treturn _vm.close.apply(null, arguments)\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\tkeydown: [\r\n\t\t\t\t\t\t\t\t\t\t\tfunction ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!$event.type.indexOf(\"key\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t_vm._k($event.keyCode, \"up\", 38, $event.key, [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Up\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowUp\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.moveFocusedIndex(-1)\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfunction ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!$event.type.indexOf(\"key\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t_vm._k($event.keyCode, \"down\", 40, $event.key, [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Down\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowDown\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.moveFocusedIndex(1)\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfunction ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!$event.type.indexOf(\"key\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t_vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.applyFocused(false)\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfunction ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!$event.type.indexOf(\"key\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t_vm._k($event.keyCode, \"space\", 32, $event.key, [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" \",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Spacebar\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.applyFocused(false)\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfunction ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t!$event.type.indexOf(\"key\") &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t_vm._k($event.keyCode, \"esc\", 27, $event.key, [\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Esc\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Escape\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t$event.preventDefault()\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.close.apply(null, arguments)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t_c(\"span\", {\r\n\t\t\t\t\t\t\t\t\t\tstaticClass: \"header--supporting-text\",\r\n\t\t\t\t\t\t\t\t\t\tdomProps: {\r\n\t\t\t\t\t\t\t\t\t\t\ttextContent: _vm._s(_vm.selectedOption.label || \"\\xa0\")\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\t_vm._v(\" \"),\r\n\t\t\t\t\t\t\t\t\t_c(\"span\", { staticClass: \"icon-dropdown\" }, [\r\n\t\t\t\t\t\t\t\t\t\t_c(\r\n\t\t\t\t\t\t\t\t\t\t\t\"svg\",\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tstaticClass: \"feather feather-chevron-down\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tattrs: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txmlns: \"http://www.w3.org/2000/svg\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"24\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"24\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox: \"0 0 24 24\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfill: \"none\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke: \"currentColor\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"stroke-width\": \"2\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"stroke-linecap\": \"round\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"stroke-linejoin\": \"round\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t[_c(\"polyline\", { attrs: { points: \"6 9 12 15 18 9\" } })]\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t_vm._v(\" \"),\r\n\t\t\t\t\t\t\t_c(\"transition\", { attrs: { name: \"wetheme-dropdown-fade\" } }, [\r\n\t\t\t\t\t\t\t\t_c(\r\n\t\t\t\t\t\t\t\t\t\"ul\",\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tdirectives: [\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tname: \"show\",\r\n\t\t\t\t\t\t\t\t\t\t\t\trawName: \"v-show\",\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: _vm.open,\r\n\t\t\t\t\t\t\t\t\t\t\t\texpression: \"open\"\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t\tref: \"ul\",\r\n\t\t\t\t\t\t\t\t\t\tattrs: { id: _vm.dropdownId }\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t_vm._l(_vm.options, function (option) {\r\n\t\t\t\t\t\t\t\t\t\treturn _c(\"li\", {\r\n\t\t\t\t\t\t\t\t\t\t\tkey: option.value,\r\n\t\t\t\t\t\t\t\t\t\t\tclass: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tselected:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toption.value === _vm.options[_vm.focusedIndex].value\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tattrs: { value: option.value },\r\n\t\t\t\t\t\t\t\t\t\t\tdomProps: { textContent: _vm._s(option.label) },\r\n\t\t\t\t\t\t\t\t\t\t\ton: {\r\n\t\t\t\t\t\t\t\t\t\t\t\tmousedown: function ($event) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn _vm.optionClicked(option)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t)\r\n\t\t\t\t]\r\n\t\t\t)\r\n\t\t}\r\n\t\tvar staticRenderFns = []\r\n\t\trender._withStripped = true\r\n\r\n\r\n\t\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Dropdown.vue?vue&type=template&id=29828a50&\r\n\r\n\t\t;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/javascripts/components/Dropdown.vue?vue&type=script&lang=js&\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\t\t//\r\n\r\n\r\n\t\tfunction getElementWidth(el) {\r\n\t\t\tconst clone = el.cloneNode(true);\r\n\t\t\tclone.style.cssText = \"position: fixed; top: 0; left: 0; overflow: auto; visibility: hidden; pointer-events: none; height: unset; max-height: unset\";\r\n\t\t\tdocument.body.appendChild(clone);\r\n\t\t\tconst width = clone.getBoundingClientRect().width;\r\n\t\t\tdocument.body.removeChild(clone);\r\n\t\t\treturn width;\r\n\t\t}\r\n\r\n\t\tlet dropdown_last_id = 0;\r\n/* harmony default export */ const Dropdownvue_type_script_lang_js_ = (vue_esm.extend({\r\n\t\t\tprops: {\r\n\t\t\t\tfit: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\tdefault: \"parent\",\r\n\t\t\t\t\tvalidator: function (value) {\r\n\t\t\t\t\t\treturn [\"parent\", \"current\", \"longest\"].indexOf(value) !== -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tdirection: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\tdefault: \"down\",\r\n\t\t\t\t\tvalidator: function (value) {\r\n\t\t\t\t\t\treturn [\"down\", \"up\"].indexOf(value) !== -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tname: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\tdefault: \"\"\r\n\t\t\t\t},\r\n\t\t\t\tvalue: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\tdefault: null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdata: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: \"\",\r\n\t\t\t\t\ttitle: \"\",\r\n\t\t\t\t\topen: false,\r\n\t\t\t\t\toptions: [],\r\n\t\t\t\t\tselectedOption: undefined,\r\n\t\t\t\t\t// focusedIndex is index of option that user navigated to using keyboard,\r\n\t\t\t\t\t// it's equal to index of selected option when keyboard was not used\r\n\t\t\t\t\tfocusedIndex: 0,\r\n\t\t\t\t\tselectComponent: undefined\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tcomputed: {\r\n\t\t\t\tdropdownId: function () {\r\n\t\t\t\t\treturn this.id + \"-dropdown\";\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\twatch: {\r\n\t\t\t\tvalue: function (newVal) {\r\n\t\t\t\t\tthis.options.forEach((option, index) => {\r\n\t\t\t\t\t\tif (option.value === newVal) {\r\n\t\t\t\t\t\t\tthis.selectedOption = option;\r\n\t\t\t\t\t\t\tthis.focusedIndex = index;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbeforeMount: function () {\r\n\t\t\t\t// Convert a <select> and <label> into options and other properties\r\n\t\t\t\tconst el = this.$root.$el.tagName === \"WETHEME-DROPDOWN\" ? this.$root.$el : this.$root.$el.querySelector(\"wetheme-dropdown\");\r\n\t\t\t\tvar select = el.querySelector(\"select\");\r\n\r\n\t\t\t\tif (select.id) {\r\n\t\t\t\t\tthis.id = select.id;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdropdown_last_id += 1;\r\n\t\t\t\t\tthis.id = \"wetheme-dropdown-\" + dropdown_last_id;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar labelEl = el.querySelector(\"label\");\r\n\t\t\t\tthis.title = labelEl ? labelEl.textContent : undefined;\r\n\t\t\t\tvar options = [];\r\n\t\t\t\tArray.prototype.forEach.call(select.querySelectorAll(\"option\"), (option, index) => {\r\n\t\t\t\t\toptions.push({\r\n\t\t\t\t\t\tvalue: option.value,\r\n\t\t\t\t\t\tlabel: option.textContent\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (option.defaultSelected) {\r\n\t\t\t\t\t\tthis.selectedOption = option;\r\n\t\t\t\t\t\tthis.focusedIndex = index;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.options = options;\r\n\r\n\t\t\t\tif (!this.selectedOption) {\r\n\t\t\t\t\tthis.selectedOption = options[0];\r\n\t\t\t\t\tthis.focusedIndex = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.selectWidth = getElementWidth(select);\r\n\t\t\t\tthis.selectComponent = select;\r\n\t\t\t\tthis.selectComponent.style.display = \"none\";\r\n\t\t\t\tthis.selectComponent.addEventListener(\"input\", console.log);\r\n\t\t\t\tel.parentNode.removeChild(el);\r\n\t\t\t},\r\n\t\t\tmounted: function () {\r\n\t\t\t\tif (this.fit === \"longest\") {\r\n\t\t\t\t\tvar w = this.selectWidth + 20; // 20px for caret\r\n\r\n\t\t\t\t\tthis.$el.style.width = w + \"px\";\r\n\t\t\t\t\tthis.$refs.ul.style.width = w + \"px\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$el.appendChild(this.selectComponent);\r\n\t\t\t},\r\n\t\t\tmethods: {\r\n\t\t\t\tfindOptionIndex: function (option) {\r\n\t\t\t\t\tvar index;\r\n\t\t\t\t\tthis.options.forEach(function (o, i) {\r\n\t\t\t\t\t\tif (o.value === option.value) {\r\n\t\t\t\t\t\t\tindex = i;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn index;\r\n\t\t\t\t},\r\n\t\t\t\toptionClicked: function (option) {\r\n\t\t\t\t\tthis.selectedOption = option;\r\n\t\t\t\t\tthis.focusedIndex = this.findOptionIndex(option);\r\n\t\t\t\t\tthis.selectComponent.value = option.value;\r\n\t\t\t\t\tthis.open = false;\r\n\t\t\t\t\tthis.$nextTick(function () {\r\n\t\t\t\t\t\t// Emit the event when input value is already changed\r\n\t\t\t\t\t\tvar e = new CustomEvent(\"change\");\r\n\t\t\t\t\t\tthis.selectComponent.dispatchEvent(e);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.$emit(\"change\", option.value, this.name);\r\n\t\t\t\t},\r\n\t\t\t\tmoveFocusedIndex: function (offset) {\r\n\t\t\t\t\tvar focusedIndex = this.focusedIndex + offset;\r\n\r\n\t\t\t\t\tif (focusedIndex >= 0 && focusedIndex < this.options.length) {\r\n\t\t\t\t\t\tthis.focusedIndex = focusedIndex;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!this.open) {\r\n\t\t\t\t\t\tthis.applyFocused(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttoggleOpen: function () {\r\n\t\t\t\t\tthis.$nextTick(function () {\r\n\t\t\t\t\t\tif (!this.open) {\r\n\t\t\t\t\t\t\tthis.open = true;\r\n\t\t\t\t\t\t\tthis.$refs.button.focus();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.open = false;\r\n\t\t\t\t\t\t\tthis.$refs.button.blur();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tapplyFocused: function (force) {\r\n\t\t\t\t\tif (!this.open && !force) {\r\n\t\t\t\t\t\tthis.open = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.optionClicked(this.options[this.focusedIndex]);\r\n\t\t\t\t\tthis.open = false;\r\n\t\t\t\t},\r\n\t\t\t\tclose: function () {\r\n\t\t\t\t\tthis.open = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}));\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Dropdown.vue?vue&type=script&lang=js&\r\n /* harmony default export */ const components_Dropdownvue_type_script_lang_js_ = (Dropdownvue_type_script_lang_js_);\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\r\n\t\t/* globals __VUE_SSR_CONTEXT__ */\r\n\r\n\t\t// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\r\n\t\t// This module is a runtime utility for cleaner component module output and will\r\n\t\t// be included in the final webpack user bundle.\r\n\r\n\t\tfunction normalizeComponent(\r\n\t\t\tscriptExports,\r\n\t\t\trender,\r\n\t\t\tstaticRenderFns,\r\n\t\t\tfunctionalTemplate,\r\n\t\t\tinjectStyles,\r\n\t\t\tscopeId,\r\n\t\t\tmoduleIdentifier, /* server only */\r\n\t\t\tshadowMode /* vue-cli only */\r\n\t\t) {\r\n\t\t\t// Vue.extend constructor export interop\r\n\t\t\tvar options = typeof scriptExports === 'function'\r\n\t\t\t\t? scriptExports.options\r\n\t\t\t\t: scriptExports\r\n\r\n\t\t\t// render functions\r\n\t\t\tif (render) {\r\n\t\t\t\toptions.render = render\r\n\t\t\t\toptions.staticRenderFns = staticRenderFns\r\n\t\t\t\toptions._compiled = true\r\n\t\t\t}\r\n\r\n\t\t\t// functional template\r\n\t\t\tif (functionalTemplate) {\r\n\t\t\t\toptions.functional = true\r\n\t\t\t}\r\n\r\n\t\t\t// scopedId\r\n\t\t\tif (scopeId) {\r\n\t\t\t\toptions._scopeId = 'data-v-' + scopeId\r\n\t\t\t}\r\n\r\n\t\t\tvar hook\r\n\t\t\tif (moduleIdentifier) { // server build\r\n\t\t\t\thook = function (context) {\r\n\t\t\t\t\t// 2.3 injection\r\n\t\t\t\t\tcontext =\r\n\t\t\t\t\t\tcontext || // cached call\r\n\t\t\t\t\t\t(this.$vnode && this.$vnode.ssrContext) || // stateful\r\n\t\t\t\t\t\t(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\r\n\t\t\t\t\t// 2.2 with runInNewContext: true\r\n\t\t\t\t\tif (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n\t\t\t\t\t\tcontext = __VUE_SSR_CONTEXT__\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// inject component styles\r\n\t\t\t\t\tif (injectStyles) {\r\n\t\t\t\t\t\tinjectStyles.call(this, context)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// register component module identifier for async chunk inferrence\r\n\t\t\t\t\tif (context && context._registeredComponents) {\r\n\t\t\t\t\t\tcontext._registeredComponents.add(moduleIdentifier)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// used by ssr in case component is cached and beforeCreate\r\n\t\t\t\t// never gets called\r\n\t\t\t\toptions._ssrRegister = hook\r\n\t\t\t} else if (injectStyles) {\r\n\t\t\t\thook = shadowMode\r\n\t\t\t\t\t? function () {\r\n\t\t\t\t\t\tinjectStyles.call(\r\n\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\t(options.functional ? this.parent : this).$root.$options.shadowRoot\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t: injectStyles\r\n\t\t\t}\r\n\r\n\t\t\tif (hook) {\r\n\t\t\t\tif (options.functional) {\r\n\t\t\t\t\t// for template-only hot-reload because in that case the render fn doesn't\r\n\t\t\t\t\t// go through the normalizer\r\n\t\t\t\t\toptions._injectStyles = hook\r\n\t\t\t\t\t// register for functional component in vue file\r\n\t\t\t\t\tvar originalRender = options.render\r\n\t\t\t\t\toptions.render = function renderWithStyleInjection(h, context) {\r\n\t\t\t\t\t\thook.call(context)\r\n\t\t\t\t\t\treturn originalRender(h, context)\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// inject component registration as beforeCreate hook\r\n\t\t\t\t\tvar existing = options.beforeCreate\r\n\t\t\t\t\toptions.beforeCreate = existing\r\n\t\t\t\t\t\t? [].concat(existing, hook)\r\n\t\t\t\t\t\t: [hook]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\texports: scriptExports,\r\n\t\t\t\toptions: options\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Dropdown.vue\r\n\r\n\r\n\r\n\r\n\r\n\t\t/* normalize component */\r\n\t\t;\r\n\t\tvar component = normalizeComponent(\r\n\t\t\tcomponents_Dropdownvue_type_script_lang_js_,\r\n\t\t\trender,\r\n\t\t\tstaticRenderFns,\r\n\t\t\tfalse,\r\n\t\t\tnull,\r\n\t\t\tnull,\r\n\t\t\tnull\r\n\r\n\t\t)\r\n\r\n\t\t/* hot reload */\r\n\t\tif (false) { var api; }\r\n\t\tcomponent.options.__file = \"src/javascripts/components/Dropdown.vue\"\r\n/* harmony default export */ const Dropdown = (component.exports);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ProductSection.js\r\n\t\tvar _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15;\r\n\r\n\t\tfunction _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\r\n\r\n\t\tfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\r\n\r\n\t\tfunction _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\t/** @typedef {import('theme-checker/dist/shopify').Variant} Variant */\r\n\r\n\t\t/** @typedef {import('theme-checker/dist/shopify').Product} Product */\r\n\r\n\t\t/** @typedef {import('theme-checker/dist/shopify').Media} Media */\r\n\r\n\t\tconst State = {\r\n\t\t\tready: 'ready',\r\n\t\t\tsoldOut: 'soldOut',\r\n\t\t\tadded: 'added',\r\n\t\t\tunavailable: 'unavailable',\r\n\t\t\tadding: 'adding'\r\n\t\t};\r\n\t\tconst MOBILE_BREAKPOINT = Breakpoints.xs;\r\n\t\tlet ProductForm = (_dec = vue_class_component_esm({\r\n\t\t\tcomponents: {\r\n\t\t\t\t'wetheme-dropdown': Dropdown\r\n\t\t\t}\r\n\t\t}), _dec2 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec3 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec4 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec5 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec6 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec7 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec8 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec9 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec10 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec11 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec12 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec13 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec14 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec15 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), _dec16 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), _dec17 = Watch('variant'), _dec(_class = (_class2 = class ProductForm extends vue_esm {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tsuper(...args);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"initialVariantId\", _descriptor, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"product\", _descriptor2, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"theme\", _descriptor3, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"productSection\", _descriptor4, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"isFeaturedProduct\", _descriptor5, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"thumbnailChangesVariant\", _descriptor6, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"hasThumbnails\", _descriptor7, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"imageZoomEnabled\", _descriptor8, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"videoLoopEnabled\", _descriptor9, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"sectionId\", _descriptor10, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"cartMethod\", _descriptor11, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"slidesPerView\", _descriptor12, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"giftwrapProductVariantId\", _descriptor13, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"locationsEnabled\", _descriptor14, this);\r\n\r\n\t\t\t\t_initializerDefineProperty(this, \"languageUrl\", _descriptor15, this);\r\n\r\n\t\t\t\tthis.option1 = '';\r\n\t\t\t\tthis.option2 = null;\r\n\t\t\t\tthis.option3 = null;\r\n\t\t\t\tthis.addingToCart = void 0;\r\n\t\t\t\tthis.afterAddToCart = void 0;\r\n\t\t\t\tthis.mediaWrapperSpacing = void 0;\r\n\t\t\t\tthis.activeMediaId = void 0;\r\n\t\t\t\tthis.mediaWrapperById = void 0;\r\n\t\t\t\tthis.showOutOfStockForm = void 0;\r\n\t\t\t\tthis.isMobile = void 0;\r\n\t\t\t\tthis.quantity = 1;\r\n\t\t\t\tthis.hasErrors = void 0;\r\n\t\t\t\tthis.giftwrapProduct = void 0;\r\n\t\t\t\tthis.mediaSlider = null;\r\n\t\t\t\tthis.locationsModal = null;\r\n\t\t\t\tthis.modalLink = null;\r\n\t\t\t\tthis.Accessibility = void 0;\r\n\r\n\t\t\t\tthis.hidePaymentButtons = () => {\r\n\t\t\t\t\tjquery_default()('.shopify-payment-button').hide();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.showPaymentButtons = () => {\r\n\t\t\t\t\tjquery_default()('.shopify-payment-button').show();\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tdata() {\r\n\t\t\t\tconst variant = this.product.variants.find(v => v.id === this.initialVariantId);\r\n\t\t\t\tlet media;\r\n\t\t\t\tconsole.log(\"variant selection\")\r\n\t\t\t\tconsole.log(variant)\r\n\t\t\t\tif (variant.featured_media) {\r\n\t\t\t\t\tmedia = variant.featured_media;\r\n\t\t\t\t} else if (this.product.media && this.product.media.length > 0) {\r\n\t\t\t\t\tmedia = this.product.media[0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\toption1: variant.option1,\r\n\t\t\t\t\toption2: variant.option2,\r\n\t\t\t\t\toption3: variant.option3,\r\n\t\t\t\t\taddingToCart: false,\r\n\t\t\t\t\tafterAddToCart: false,\r\n\t\t\t\t\tmediaWrapperSpacing: '',\r\n\t\t\t\t\tactiveMediaId: media ? media.id : undefined,\r\n\t\t\t\t\tmediaWrapperById: new Map(),\r\n\t\t\t\t\tshowOutOfStockForm: false,\r\n\t\t\t\t\tisMobile: window.matchMedia(`only screen and (max-width: ${MOBILE_BREAKPOINT.max}px)`).matches,\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\thasErrors: '',\r\n\t\t\t\t\tgiftwrapProduct: false,\r\n\t\t\t\t\thasLocalPickup: '',\r\n\t\t\t\t\tlocationsModal: null,\r\n\t\t\t\t\tmodalLink: null,\r\n\t\t\t\t\tAccessibility: null\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\t/** @returns {Variant | null} */\r\n\r\n\r\n\t\t\tget variant() {\r\n\t\t\t\treturn this.product.variants.find(v => v.option1 === this.option1 && v.option2 == this.option2 && v.option3 === this.option3);\r\n\t\t\t}\r\n\t\t\t/** @returns {boolean} */\r\n\r\n\r\n\t\t\tget isSale() {\r\n\t\t\t\treturn this.variant && this.variant.compare_at_price && this.variant.compare_at_price > this.variant.price;\r\n\t\t\t}\r\n\t\t\t/** @return {State[keyof State]} */\r\n\r\n\r\n\t\t\tget state() {\r\n\t\t\t\tif (this.addingToCart) {\r\n\t\t\t\t\treturn State.adding;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.afterAddToCart) {\r\n\t\t\t\t\treturn State.added;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.variant) {\r\n\t\t\t\t\tif (this.variant.available) {\r\n\t\t\t\t\t\treturn State.ready;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn State.soldOut;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn State.unavailable;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/** @returns {boolean} */\r\n\r\n\r\n\t\t\tget addToCartDisabled() {\r\n\t\t\t\treturn !this.variant || !this.variant.available;\r\n\t\t\t}\r\n\t\t\t/** @returns {Media | undefined} */\r\n\r\n\r\n\t\t\tget activeMedia() {\r\n\t\t\t\treturn (this.product.media || []).find(m => m.id === this.activeMediaId);\r\n\t\t\t}\r\n\t\t\t/** @returns {Media | undefined} */\r\n\r\n\r\n\t\t\tget firstOrActiveModel() {\r\n\t\t\t\tif (this.activeMedia && this.activeMedia.media_type === 'model') {\r\n\t\t\t\t\treturn this.activeMedia;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (this.product.media || []).find(m => m.media_type === 'model');\r\n\t\t\t}\r\n\r\n\t\t\tincreaseQuantity() {\r\n\t\t\t\tthis.quantity = +this.quantity + 1;\r\n\t\t\t}\r\n\r\n\t\t\tdecreaseQuantity() {\r\n\t\t\t\tthis.quantity = Math.max(1, +this.quantity - 1);\r\n\t\t\t}\r\n\t\t\t/** @param {number} mediaId */\r\n\r\n\r\n\t\t\tgetMedia(mediaId) {\r\n\t\t\t\tlet media = this.mediaWrapperById.get(mediaId);\r\n\r\n\t\t\t\tif (!media) {\r\n\t\t\t\t\tconst m = (this.product.media || []).find(m => m.id === mediaId);\r\n\t\t\t\t\tconst target = this.$refs.mediaTargets[m.position - 1];\r\n\t\t\t\t\tmedia = new MediaWrapper(this.theme, this.sectionId, m, target);\r\n\t\t\t\t\ttarget.addEventListener('media-play', this.onMediaPlay.bind(this));\r\n\t\t\t\t\ttarget.addEventListener('media-pause', this.onMediaPause.bind(this));\r\n\t\t\t\t\ttarget.addEventListener('media-load', this.onMediaLoaded.bind(this));\r\n\t\t\t\t\tthis.mediaWrapperById.set(mediaId, media);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn media;\r\n\t\t\t}\r\n\r\n\t\t\tasync updateStoreAvailabilityContent(variantId, productTitle) {\r\n\t\t\t\tif (!this.locationsEnabled) return;\r\n\t\t\t\tconst variantSectionUrl = '/variants/' + variantId + '/?section_id=store-availability';\r\n\t\t\t\tconst response = await window.fetch(variantSectionUrl);\r\n\t\t\t\tconst responseText = await response.text();\r\n\t\t\t\tlet tempDomNode = document.createElement('div');\r\n\t\t\t\ttempDomNode.innerHTML = responseText;\r\n\t\t\t\tconst hasPickupContent = tempDomNode.querySelector('.store-availability-information');\r\n\r\n\t\t\t\tif (hasPickupContent) {\r\n\t\t\t\t\tthis.hasLocalPickup = tempDomNode.firstElementChild.innerHTML;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.hasLocalPickup = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t// Write product full title.\r\n\t\t\t\t\tlet productTitleElem = this.$el.querySelector('.store-availabilities-modal__product-title');\r\n\t\t\t\t\tif (!productTitleElem) return;\r\n\t\t\t\t\tproductTitleElem.textContent = productTitle; // Modal.\r\n\r\n\t\t\t\t\tthis.locationsModal = this.$el.querySelector('.store-availabilities-modal');\r\n\t\t\t\t\tif (!this.locationsModal) return; // Event listeners.\r\n\r\n\t\t\t\t\tthis.modalLink = this.$el.querySelector('.store-availability-information__link');\r\n\t\t\t\t\tif (this.modalLink) this.modalLink.addEventListener('click', this.openLocationsModal);\r\n\t\t\t\t\tthis.modalClose = this.$el.querySelector('.store-availabilities-modal__close');\r\n\t\t\t\t\tif (this.modalClose) this.modalClose.addEventListener('click', this.closeLocationsModal); // Move modal html out of product info as that can be sticky, causing z-index problems.\r\n\r\n\t\t\t\t\tvar parentNode = document.querySelector('#PageContainer');\r\n\t\t\t\t\tparentNode.insertBefore(this.locationsModal, parentNode.firstChild);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\thandleLocationsClickOutside(e) {\r\n\t\t\t\tif (!e.target.classList.contains('store-availability-information__link') && !this.locationsModal.contains(e.target)) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.closeLocationsModal();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\topenLocationsModal() {\r\n\t\t\t\tdocument.body.classList.add('js-drawer-location-modal-open');\r\n\t\t\t\tthis.locationsModal.classList.add('locations-modal--is-active');\r\n\t\t\t\tdisableBodyScroll(this.locationsModal);\r\n\t\t\t\tdocument.addEventListener('click', this.handleLocationsClickOutside);\r\n\t\t\t\tthis.Accessibility.trapFocus({\r\n\t\t\t\t\tcontainer: this.locationsModal,\r\n\t\t\t\t\telementToFocus: this.$el.querySelector('.store-availability-information__link')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tcloseLocationsModal() {\r\n\t\t\t\tdocument.body.classList.remove('js-drawer-location-modal-open');\r\n\t\t\t\tthis.locationsModal.classList.remove('locations-modal--is-active');\r\n\t\t\t\tenableBodyScroll(this.locationsModal);\r\n\t\t\t\tdocument.removeEventListener('click', this.handleLocationsClickOutside);\r\n\t\t\t\tthis.Accessibility.removeTrapFocus({\r\n\t\t\t\t\tcontainer: this.locationsModal,\r\n\t\t\t\t\telementToFocus: this.$el.querySelector('.store-availability-information__link')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tloadSlider() {\r\n\r\n\t\t\t\t/** Must be scoped to THIS product mount. `document.querySelector` grabs the page\u2019s\r\n\t\t\t\t   first gallery (e.g. another block on subscription landings), so drawer Swiper gets\r\n\t\t\t\t   the wrong config (`pdpConfig` peek vs `sideCartConfig`). */\r\n\t\t\t\tconst targetElement = this.$el.querySelector(\".product-images-container\");\r\n\t\t\t\tlet showInSideCart = false;\r\n\t\t\t\tif (targetElement?.closest(\".right-drawer-vue\")) {\r\n\t\t\t\t\tshowInSideCart = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst parentWithFlags = targetElement?.closest(\"[data-is-pdp-renew], [data-is-pdp-refresh-routine]\");\r\n\r\n\t\t\t\t// Extract the data attributes from the parent\r\n\t\t\t\tconst isPdpRenew = parentWithFlags?.getAttribute(\"data-is-pdp-renew\") === \"true\";\r\n\t\t\t\tconst isPdpRefreshRoutine = parentWithFlags?.getAttribute(\"data-is-pdp-refresh-routine\") === \"true\";\r\n\r\n\t\t\t\tconst shouldUsePdpConfig = isPdpRenew || isPdpRefreshRoutine;\r\n\r\n\t\t\t\tconst inQuickShopDrawer = !!this.$el.closest('#ShopNowContainer');\r\n\r\n\t\t\t\t/** FeaturedProduct / PDP can pass slidesPerView > 1; quick shop should show one image at a time. */\r\n\t\t\t\tconst drawerSpv = inQuickShopDrawer ? 1 : this.slidesPerView;\r\n\t\t\t\tconst drawerCenteredSlides = inQuickShopDrawer ? false : drawerSpv > 1;\r\n\r\n\t\t\t\tconst sideCartConfig = {\r\n\t\t\t\t\tdirection: 'horizontal',\r\n\t\t\t\t\tslidesPerView: drawerSpv,\r\n\t\t\t\t\tcenteredSlides: drawerCenteredSlides,\r\n\t\t\t\t\tupdateOnImagesReady: true,\r\n\t\t\t\t\tspaceBetween: inQuickShopDrawer ? 0 : 20,\r\n\t\t\t\t\tthreshold: 10,\r\n\t\t\t\t\tautoHeight: true,\r\n\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\tel: '.swiper-pagination',\r\n\t\t\t\t\t\tclickable: true\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst pdpConfig = {\r\n\t\t\t\t\tdirection: 'horizontal',\r\n\t\t\t\t\tslidesPerView: 1.2,\r\n\t\t\t\t\tcenteredSlides: true,\r\n\t\t\t\t\tspaceBetween: 4,\r\n\t\t\t\t\tupdateOnImagesReady: true,\r\n\t\t\t\t\tthreshold: 10,\r\n\t\t\t\t\tautoHeight: false,\r\n\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\tel: '.swiper-pagination',\r\n\t\t\t\t\t\tclickable: true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\t\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbreakpoints: {\r\n\r\n\t\t\t\t\t\t481: {\r\n\t\t\t\t\t\t\tslidesPerView: this.slidesPerView,\r\n\t\t\t\t\t\t\tcenteredSlides: this.slidesPerView > 1,\r\n\t\t\t\t\t\t\tspaceBetween: 20,\r\n\r\n\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.mediaSlider = new swiper_esm_bundle(this.$el.querySelector('.swiper-container'), showInSideCart || !shouldUsePdpConfig ? sideCartConfig : pdpConfig);\r\n\t\t\t\tthis.mediaSlider.on('slideChange', () => {\r\n\t\t\t\t\tif (this.thumbnailChangesVariant) {\r\n\t\t\t\t\t\tconst media = this.product.media[this.mediaSlider.activeIndex];\r\n\t\t\t\t\t\tthis.changeDropdownsToMedia(media);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.mediaWrapperById.forEach(m => m.pause());\r\n\t\t\t\t});\r\n\t\t\t\tthis.mediaSlider.allowTouchMove = this.isFeaturedProduct || this.isMobile;\r\n\r\n\t\t\t\tif (this.variant.featured_media) {\r\n\t\t\t\t\tthis.slideTo(this.getMedia(this.variant.featured_media.id), true);\r\n\t\t\t\t} // Trigger the zoom on the first image\r\n\r\n\r\n\t\t\t\tif (!this.isFeaturedProduct) {\r\n\t\t\t\t\tlet firstMedia = null;\r\n\r\n\t\t\t\t\tif (this.$el.querySelector('.product-medias__primary .product-medias__media')) {\r\n\t\t\t\t\t\tconst firstId = parseInt(\r\n\t\t\t\t\t\t\t/** @type {HTMLElement} */\r\n\t\t\t\t\t\t\tthis.$el.querySelector('.product-medias__primary .product-medias__media').dataset.mediaId, 10);\r\n\t\t\t\t\t\tfirstMedia = this.getMedia(firstId);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (firstMedia && this.imageZoomEnabled) {\r\n\t\t\t\t\t\tfirstMedia.loadImageZoom();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tunloadSlider() {\r\n\t\t\t\tthis.mediaSlider.destroy();\r\n\t\t\t\tthis.mediaSlider = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tget hasSlider() {\r\n\t\t\t\treturn this.isFeaturedProduct || this.isMobile;\r\n\t\t\t}\r\n\r\n\t\t\tget showThumbails() {\r\n\t\t\t\treturn !this.isFeaturedProduct && this.hasThumbnails && !this.isMobile;\r\n\t\t\t}\r\n\r\n\t\t\tinitApps() {\r\n\t\t\t\tlet appBlocks = document.querySelectorAll('.shopify-app-block');\r\n\r\n\t\t\t\tif (appBlocks.length > 0) {\r\n\t\t\t\t\tappBlocks.forEach((element, index) => {\r\n\t\t\t\t\t\tlet blockId = document.querySelector(`form #${element.id}`);\r\n\r\n\t\t\t\t\t\tif (blockId) {\r\n\t\t\t\t\t\t\tlet appContent = document.querySelector(`.shopify-app-block#${blockId.id}`);\r\n\t\t\t\t\t\t\tlet getContent = appContent.parentElement.removeChild(appContent);\r\n\t\t\t\t\t\t\tblockId.append(getContent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinitCrossSells() {\r\n\t\t\t\tlet crossSellBlocks = document.querySelectorAll('.cross-sell-block');\r\n\r\n\t\t\t\tif (crossSellBlocks.length > 0) {\r\n\t\t\t\t\tcrossSellBlocks.forEach((element, index) => {\r\n\t\t\t\t\t\tlet blockId = document.querySelector(`form #${element.id}`);\r\n\r\n\t\t\t\t\t\tif (blockId) {\r\n\t\t\t\t\t\t\tlet crossSellContent = document.querySelector(`.cross-sell-block#${blockId.id}`);\r\n\t\t\t\t\t\t\tlet getContent = crossSellContent.parentElement.removeChild(crossSellContent);\r\n\t\t\t\t\t\t\tblockId.append(getContent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tmounted() {\r\n\t\t\t\tthis.initApps();\r\n\t\t\t\tthis.initCrossSells();\r\n\r\n\t\t\t\t// DON'T call updateSubscriptionDiscount on mount - let the Liquid template render first\r\n\t\t\t\t// Only call it when variants actually change via the event listener\r\n\r\n\t\t\t\tlet qtyNoscript = this.$el.querySelector('.quantity-noscript');\r\n\t\t\t\tlet jsQtyNum = this.$el.querySelector('.js-qty__num');\r\n\r\n\t\t\t\tif (qtyNoscript) {\r\n\t\t\t\t\tqtyNoscript.setAttribute('name', 'no-js-quantity');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (jsQtyNum) {\r\n\t\t\t\t\tjsQtyNum.setAttribute('name', 'quantity');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$el.querySelector('#AddToCartForm').addEventListener('submit', this.onAddToCart);\r\n\t\t\t\tthis.mediaWrapperById = new Map();\r\n\t\t\t\tthis.Accessibility = new Accessibility();\r\n\r\n\t\t\t\tif (this.showThumbails || this.hasSlider) {\r\n\t\t\t\t\tthis.loadSlider();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.updateStoreAvailabilityContent(this.variant.id, this.product.title);\r\n\t\t\t\tthis.$el.addEventListener('product-media-select', this.onMediaSelect.bind(this));\r\n\r\n\t\t\t\tif (!this.hasThumbnails) {\r\n\t\t\t\t\t// Load zoom effect for full-size images when enabled\r\n\t\t\t\t\tconst imgElems = this.$el.querySelectorAll('.product-medias__fullsize .product-medias__media');\r\n\t\t\t\t\timgElems.forEach(imgElem => {\r\n\t\t\t\t\t\tif (imgElem.dataset.mediaType == 'image') {\r\n\t\t\t\t\t\t\tconst imgId = parseInt(imgElem.dataset.mediaId, 10);\r\n\t\t\t\t\t\t\tconst imgMedia = this.getMedia(imgId);\r\n\r\n\t\t\t\t\t\t\tif (imgMedia && this.imageZoomEnabled) {\r\n\t\t\t\t\t\t\t\timgMedia.loadImageZoom();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.firstOrActiveModel) {\r\n\t\t\t\t\t// We have at least one model => load XR library so\r\n\t\t\t\t\t// it can show/hide the button based on browser/device support\r\n\t\t\t\t\twindow.Shopify.loadFeatures([{\r\n\t\t\t\t\t\tname: 'shopify-xr',\r\n\t\t\t\t\t\tversion: '1.0'\r\n\t\t\t\t\t}]);\r\n\t\t\t\t\tdocument.addEventListener('shopify_xr_launch', () => {\r\n\t\t\t\t\t\t// The launch of XR viewer triggers beforeload event, we need to reappear page content\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tdocument.body.classList.remove('unloading');\r\n\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\twindow.ShopifyXR = window.ShopifyXR || function () {\r\n\t\t\t\t\t(window.ShopifyXR.q = window.ShopifyXR.q || []).push(arguments);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst models = (this.product.media || []).filter(m => m.media_type === 'model');\r\n\r\n\t\t\t\tif (window.ShopifyXR.addModels) {\r\n\t\t\t\t\twindow.ShopifyXR.addModels(models);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.ShopifyXR('addModels', models);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonVariantChange() {\r\n\t\t\t\tconst updateEvent = new CustomEvent('wetheme-product-variant-change', {\r\n\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\tcurrentVariant: this.variant\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t\tdocument.dispatchEvent(updateEvent)\r\n\r\n\t\t\t\tfunction getSettings(elementId) {\r\n\t\t\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\t\t\telement.querySelector('span')?.remove()\r\n\t\t\t\t\tconst settingsData = element?.querySelector('[data-section-data]').textContent;\r\n\r\n\t\t\t\t\treturn settingsData ? JSON.parse(settingsData) : {}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst settings = getSettings('pdp-settings');\r\n\r\n\t\t\t\tfunction updateVariantImages(currentProduct, currentVariant) {\r\n\t\t\t\t\tconst option1Value = currentVariant.option1;\r\n\t\t\t\t\tconst filteredVariants = currentProduct.variants.filter(variant => variant.option1 === option1Value);\r\n\t\t\t\t\tconst selectedOptionsElementList = document.querySelectorAll('[data-value]');\r\n\r\n\t\t\t\t\tif (!settings.options.show_variant_option_image) return;\r\n\r\n\t\t\t\t\tfilteredVariants.forEach((variant) => {\r\n\t\t\t\t\t\tconst selectedOptionElement = Array.from(selectedOptionsElementList).find((element) => element.dataset.value == variant.option2);\r\n\t\t\t\t\t\tif (selectedOptionElement) {\r\n\t\t\t\t\t\t\tconst labelElement = selectedOptionElement.querySelector('label');\r\n\t\t\t\t\t\t\tconst isAvailable = variant.id == currentVariant.id ? currentVariant.available : variant.available;\r\n\t\t\t\t\t\t\tif (isAvailable) {\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.remove('soldout')\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.remove('available')\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.add('available')\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.remove('soldout')\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.remove('available')\r\n\t\t\t\t\t\t\t\tselectedOptionElement.classList.add('soldout')\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (labelElement) {\r\n\t\t\t\t\t\t\t\tlabelElement.innerHTML = `<img src=\"${variant.featured_image.src}\" alt=\"Variant Image\">`;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction updateSelectedInfo(currentVariant, currentProduct) {\r\n\t\t\t\t\tif (!settings.options.show_variant_option_copy) return;\r\n\r\n\t\t\t\t\t// Get all swatch containers\r\n\t\t\t\t\tconst swatchContainers = document.querySelectorAll('.swatch');\r\n\r\n\t\t\t\t\tswatchContainers.forEach(swatchContainer => {\r\n\t\t\t\t\t\t// Get the option index from the swatch container\r\n\t\t\t\t\t\tconst optionIndex = parseInt(swatchContainer.getAttribute('data-option-index'));\r\n\t\t\t\t\t\tif (isNaN(optionIndex)) return;\r\n\r\n\t\t\t\t\t\t// Get the current value for this option\r\n\t\t\t\t\t\tconst currentValue = currentVariant.options[optionIndex];\r\n\t\t\t\t\t\tif (!currentValue) return;\r\n\r\n\t\t\t\t\t\t// Find the text element to update\r\n\t\t\t\t\t\tconst copyContainer = swatchContainer.querySelector('.swatch-currrent-copy-container');\r\n\t\t\t\t\t\tif (!copyContainer) return;\r\n\r\n\t\t\t\t\t\t// Find the specific text element based on option type\r\n\t\t\t\t\t\tconst textElements = copyContainer.querySelectorAll('[class*=\"swatch-current-copy--\"][class*=\"-text\"]');\r\n\t\t\t\t\t\ttextElements.forEach(textElement => {\r\n\t\t\t\t\t\t\ttextElement.textContent = currentValue;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tdocument.addEventListener('wetheme-product-variant-after-change', (event) => {\r\n\t\t\t\t\tconst currentVariant = event.detail.currentVariant;\r\n\t\t\t\t\tconst currentProduct = event.detail.currentProduct;\r\n\t\t\t\t\tconst productVue = event.detail.product_vue;\r\n\r\n\t\t\t\t\tupdateVariantImages(currentProduct, currentVariant);\r\n\t\t\t\t\tupdateSelectedInfo(currentVariant, currentProduct);\r\n\r\n\t\t\t\t\t// Call the updateSubscriptionDiscount method on the Vue component instance\r\n\t\t\t\t\tif (productVue && productVue.updateSubscriptionDiscount) {\r\n\t\t\t\t\t\tproductVue.updateSubscriptionDiscount(currentVariant);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst updateEventAfter = new CustomEvent(\r\n\t\t\t\t\t\"wetheme-product-variant-after-change\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tcurrentVariant: this.variant,\r\n\t\t\t\t\t\t\tcurrentProduct: this.product,\r\n\t\t\t\t\t\t\tproduct_vue: this,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\tdocument.dispatchEvent(updateEventAfter);\r\n\r\n\t\t\t\tif (this.variant) {\r\n\t\t\t\t\tif (!this.variant.available) {\r\n\t\t\t\t\t\tthis.showOutOfStockForm = false;\r\n\t\t\t\t\t\tthis.hidePaymentButtons();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.showPaymentButtons();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setVariantUrl(this.variant);\r\n\t\t\t\t\tthis.updateStoreAvailabilityContent(this.variant.id, this.product.title);\r\n\r\n\t\t\t\t\tif (this.variant.featured_media) {\r\n\t\t\t\t\t\tconst mediaElement = this.$el.querySelector(`[data-media-id=\"${this.variant.featured_media.id}\"]`);\r\n\t\t\t\t\t\tthis.onMediaElementSelect(mediaElement, {\r\n\t\t\t\t\t\t\tload: true\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} // Ensure the change event is fired on the form when variants changed (for Shop Pay Installments)\r\n\r\n\r\n\t\t\t\t\tconst self = this;\r\n\t\t\t\t\tthis.addToCartForm = this.$el.querySelector('#AddToCartForm');\r\n\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\tconst event = new Event('change');\r\n\t\t\t\t\t\tself.addToCartForm.dispatchEvent(event);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.hidePaymentButtons();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonShowOutOfStockForm(e) {\r\n\t\t\t\te.preventDefault(); // When the HERE button is clicked, the target is whole text\r\n\r\n\t\t\t\tif (e.currentTarget.contains(e.target.closest('a'))) {\r\n\t\t\t\t\tthis.showOutOfStockForm = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonMediaPlay(e) {\r\n\t\t\t\tif (this.mediaSlider) {\r\n\t\t\t\t\t// Stop swiper swipe gestures, video is playing.\r\n\t\t\t\t\tthis.mediaSlider.allowTouchMove = false; // There may be a difference between the poster image\r\n\t\t\t\t\t// and the video aspect ratio. Update height.\r\n\r\n\t\t\t\t\tthis.mediaSlider.updateAutoHeight();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonMediaPause(e) {\r\n\t\t\t\tif (this.mediaSlider) {\r\n\t\t\t\t\t// Restarts swiper swipe gestures, video isn't playing.\r\n\t\t\t\t\tthis.mediaSlider.allowTouchMove = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonMediaLoaded(e) {\r\n\t\t\t\te.detail.parent.querySelector('.product-medias__media').addEventListener('click', this.onMediaActivate.bind(this));\r\n\t\t\t}\r\n\r\n\t\t\tonMediaSelect(e) {\r\n\t\t\t\tconst element = jquery_default()(this.$el).find('.product-single__media')[e.detail.index];\r\n\t\t\t\tconst mediaWrapper = this.mediaWrapperById.get(parseInt(element.dataset.mediaId, 10));\r\n\t\t\t\tconst isVideo = mediaWrapper.media.media_type === 'video' || mediaWrapper.media.media_type === 'external_video';\r\n\t\t\t\tconst isQuickShop = this.$el.closest('#ShopNowContainer');\r\n\t\t\t\tthis.onMediaElementSelect(element, {\r\n\t\t\t\t\tload: e.detail.forceLoad,\r\n\t\t\t\t\tforcePlay: e.detail.forcePlay || !this.isMobile && !isQuickShop && isVideo,\r\n\t\t\t\t\t// Autoplay video on non-mobile and not in quick shop\r\n\t\t\t\t\tfocus: e.detail.focus\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t/** @param {KeyboardEvent} e */\r\n\r\n\t\t\tonMediaActivate(e) {\r\n\t\t\t\tconst target = e.target;\r\n\t\t\t\tconst currentTarget = e.currentTarget;\r\n\t\t\t\tif (\r\n\t\t\t\t\ttarget.closest('.plyr__controls') ||\r\n\t\t\t\t\ttarget.closest('.plyr__control') ||\r\n\t\t\t\t\ttarget.closest('[class=\"plyr__controls__item plyr__volume\"]')\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (e.type === 'keydown') {\r\n\t\t\t\t\tif (e.keyCode !== 13 && e.keyCode !== 27) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (target.classList.contains('shopify-model-viewer-ui__button') || target.classList.contains('plyr__controls__item')) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (target.classList.contains('product-medias__view-in-space')) {\r\n\t\t\t\t\t// Don't do anything on \"view in your space\" click, it's handled by Shopify XR library.\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (target.tagName === 'MODEL-VIEWER' || target.classList.contains('shopify-model-viewer-ui__controls-overlay')) {\r\n\t\t\t\t\t// Don't do anything on 3d model overlay click, it will trigger an event itself.\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst isLoaded = currentTarget.classList.contains('product-single__media--loaded');\r\n\t\t\t\tconst isActive = currentTarget.classList.contains('product-single__media--active');\r\n\r\n\t\t\t\tif (this.hasThumbnails) {\r\n\t\t\t\t\tthis.onThumbnailClick(currentTarget);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isLoaded && isActive) {\r\n\t\t\t\t\t// Loaded and active media will handle click internally in the component itself.\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.onMediaElementSelect(currentTarget, {\r\n\t\t\t\t\tload: true,\r\n\t\t\t\t\ttogglePlay: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tonMediaElementSelect(element, options) {\r\n\t\t\t\tif (!element) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst mediaWrapper = this.getMedia(parseInt(element.dataset.mediaId, 10));\r\n\t\t\t\tthis.activeMediaId = mediaWrapper.media.id;\r\n\t\t\t\tthis.slideTo(mediaWrapper); // Pause all others\r\n\r\n\t\t\t\tthis.mediaWrapperById.forEach(otherMediaWrapper => {\r\n\t\t\t\t\tif (otherMediaWrapper.mediaId !== mediaWrapper.mediaId) {\r\n\t\t\t\t\t\totherMediaWrapper.pause();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tjquery_default()(this.$el).find('.product-single__media--selected').not(element).removeClass('product-single__media--selected');\r\n\t\t\t\telement.classList.add('product-single__media--selected');\r\n\r\n\t\t\t\tif (options.togglePlay) {\r\n\t\t\t\t\tmediaWrapper.togglePlay();\r\n\t\t\t\t} else if (options.forcePlay) {\r\n\t\t\t\t\tmediaWrapper.play();\r\n\t\t\t\t} else if (options.load) {\r\n\t\t\t\t\tmediaWrapper.load();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (options.focus) {\r\n\t\t\t\t\tmediaWrapper.focus();\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\tif (window.navigateToThumbnail && element.dataset.mediaId) {\r\n\t\t\t\t\twindow.navigateToThumbnail(element.dataset.mediaId);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tasync onAddToCart(e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.addingToCart = true;\r\n\t\t\t\tthis.hasErrors = '';\r\n\r\n\t\t\t\tdocument.querySelector(`[data-wetheme-section-type=\"template--product\"]`).style.display = `block`;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst data = jquery_default()(this.$el.querySelector('#AddToCartForm')).serialize();\r\n\t\t\t\t\tconst $formContainer = jquery_default()(this.$el.querySelector('#AddToCartForm'));\r\n\t\t\t\t\tlet giftwrapProperty = '';\r\n\r\n\t\t\t\t\tif (this.giftwrapProduct && this.giftwrapProductVariantId) {\r\n\t\t\t\t\t\tgiftwrapProperty = '&properties[' + this.theme.translations.giftwrap_label + ']=' + this.theme.translations.yes;\r\n\t\t\t\t\t}// Gift wrap add to cart.\r\n\r\n\r\n\t\t\t\t\tif (this.giftwrapProduct && this.giftwrapProductVariantId) {\r\n\t\t\t\t\t\tconst giftData = {\r\n\t\t\t\t\t\t\titems: [{\r\n\t\t\t\t\t\t\t\tid: this.giftwrapProductVariantId,\r\n\t\t\t\t\t\t\t\tquantity: this.quantity\r\n\t\t\t\t\t\t\t}]\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tconst giftResponse = await window.fetch('/cart/add.js', {\r\n\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest'\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbody: JSON.stringify(giftData)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tconst giftResponse1 = await giftResponse.json();\r\n\r\n\t\t\t\t\t\tif (!giftResponse.ok) {\r\n\t\t\t\t\t\t\tif (giftResponse1.status == 422) {\r\n\t\t\t\t\t\t\t\tthis.hasErrors = giftResponse1.description;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis.addingToCart = false;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}// 'Actual' product add to cart.\r\n\r\n\t\t\t\t\tconst response = await window.fetch('/cart/add.js', {\r\n\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tbody: data + giftwrapProperty\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconst response1 = await response.json();\r\n\r\n\t\t\t\t\tif (!response.ok) {\r\n\t\t\t\t\t\t// Handle various errors, quantity etc.\r\n\t\t\t\t\t\t// See: https://shopify.dev/docs/themes/ajax-api/reference/cart\r\n\t\t\t\t\t\tif (response1.status == 422) {\r\n\t\t\t\t\t\t\tthis.hasErrors = response1.description;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.addingToCart = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst response2 = await fetch(window.Shopify.routes.root + 'cart.js')\r\n\t\t\t\t\t\t.then(response => {\r\n\t\t\t\t\t\t\treturn response.json();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst cart = await response2;\r\n\r\n\t\t\t\t\t //  Klaviyo \u2014 placed here, after successful add to cart\r\n\t\t\t\t\tif (typeof window.klaviyo !== 'undefined') {\r\n\t\t\t\t\t\tvar justAdded = response1.items ? response1.items : [response1];\r\n\t\t\t\t\t\tvar subscriptionItem = justAdded.find(function(i) {\r\n\t\t\t\t\t\treturn i.selling_plan_allocation &&\r\n\t\t\t\t\t\t\t\ti.selling_plan_allocation.selling_plan &&\r\n\t\t\t\t\t\t\t\ti.selling_plan_allocation.selling_plan.id;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (subscriptionItem) {\r\n\t\t\t\t\t\twindow.klaviyo.push(['track', 'Added Subscription to Bag', {\r\n\t\t\t\t\t\t\ttotal_price: cart.total_price / 100,\r\n\t\t\t\t\t\t\t$value: cart.total_price / 100,\r\n\t\t\t\t\t\t\tProductName: subscriptionItem.product_title,\r\n\t\t\t\t\t\t\tProductID: subscriptionItem.product_id,\r\n\t\t\t\t\t\t\tSKU: subscriptionItem.sku,\r\n\t\t\t\t\t\t\tVariantID: subscriptionItem.variant_id,\r\n\t\t\t\t\t\t\tQuantity: subscriptionItem.quantity,\r\n\t\t\t\t\t\t\tPrice: subscriptionItem.price / 100,\r\n\t\t\t\t\t\t\tImageURL: subscriptionItem.image,\r\n\t\t\t\t\t\t\tURL: window.location.origin + subscriptionItem.url,\r\n\t\t\t\t\t\t\tSubscriptionPlanID: subscriptionItem.selling_plan_allocation.selling_plan.id,\r\n\t\t\t\t\t\t\tSubscriptionPlanName: subscriptionItem.selling_plan_allocation.selling_plan.name,\r\n\t\t\t\t\t\t\tDeliveryFrequency: subscriptionItem.selling_plan_allocation.selling_plan.recurring_deliveries\r\n\t\t\t\t\t\t}]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst featuredProductSubmit = this.$el.querySelector('[data-submit-type]');\r\n\t\t\t\t\tthis.addingToCart = false;\r\n\r\n\t\t\t\t\tif (this.cartMethod === 'drawer' && !featuredProductSubmit) {\r\n\t\t\t\t\t\tthis.theme.toggleRightDrawer('cart', true, {\r\n\t\t\t\t\t\t\tcart: cart\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else if (this.cartMethod === 'added' && !featuredProductSubmit) {\r\n\t\t\t\t\t\tthis.afterAddToCart = true;\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.afterAddToCart = false;\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\tthis.theme.updateCartDrawer(cart);\r\n\t\t\t\t\t} else if (this.cartMethod === 'page' || featuredProductSubmit) {\r\n\t\t\t\t\t\twindow.location.href = '/cart';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdocument.querySelector(`[data-wetheme-section-type=\"template--product\"]`).style.display = `none`;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error('Unable to add to cart: ', e);// FIXME error handling\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tonThumbnailClick(target) {\r\n\t\t\t\tconst mediaWrapper = this.getMedia(parseInt(target.dataset.mediaId, 10));\r\n\t\t\t\tthis.slideTo(mediaWrapper);\r\n\t\t\t\tthis.changeDropdownsToMedia(mediaWrapper.media);\r\n\t\t\t}\r\n\r\n\t\t\tslideTo(mediaWrapper, skipAnimation = false) {\r\n\t\t\t\tif (this.mediaSlider) {\r\n\t\t\t\t\tthis.mediaSlider.slideTo(mediaWrapper.media.position - 1, this.hasSlider && !skipAnimation ? 200 : 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchangeDropdownsToMedia(media) {\r\n\t\t\t\t// select variant\r\n\t\t\t\tif (this.thumbnailChangesVariant) {\r\n\t\t\t\t\tconst variant = this.product.variants.find(v => v.featured_media && v.featured_media.id === media.id);\r\n\r\n\t\t\t\t\tif (variant) {\r\n\t\t\t\t\t\tthis.option1 = variant.option1;\r\n\t\t\t\t\t\tthis.option2 = variant.option2;\r\n\t\t\t\t\t\tthis.option3 = variant.option3;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsetVariantOption(value, name) {\r\n\t\t\t\tthis[`option${name}`] = value;\r\n\t\t\t}\r\n\r\n\t\t\tupdateSubscriptionDiscount(currentVariant) {\r\n\r\n\t\t\t\t// Use setTimeout to wait for recharge widget HTML regeneration to complete\r\n\t\t\t\tsetTimeout(() => {\r\n\r\n\t\t\t\t\t// Get subscription discount from current variant's selling plan allocations\r\n\t\t\t\t\tlet subscriptionDiscountNumber = 0;\r\n\t\t\t\t\tlet subscriptionDiscountPercent = 0;\r\n\t\t\t\t\tlet subscriptionPrice = null;\r\n\r\n\t\t\t\t\tif (currentVariant && currentVariant.selling_plan_allocations && currentVariant.selling_plan_allocations.length > 0) {\r\n\t\t\t\t\t\tconst sellingPlanAllocation = currentVariant.selling_plan_allocations[0];\r\n\r\n\t\t\t\t\t\tif (sellingPlanAllocation.price_adjustments && sellingPlanAllocation.price_adjustments.length > 0) {\r\n\t\t\t\t\t\t\tconst priceAdjustment = sellingPlanAllocation.price_adjustments[0];\r\n\r\n\t\t\t\t\t\t\t// Calculate discount percentage from price difference\r\n\t\t\t\t\t\t\tconst originalPrice = currentVariant.price; // Regular price\r\n\t\t\t\t\t\t\tconst subscriptionPriceValue = priceAdjustment.price; // Discounted price\r\n\r\n\t\t\t\t\t\t\tif (originalPrice > subscriptionPriceValue) {\r\n\t\t\t\t\t\t\t\tsubscriptionDiscountPercent = Math.round(((originalPrice - subscriptionPriceValue) / originalPrice) * 100);\r\n\t\t\t\t\t\t\t\tsubscriptionDiscountNumber = subscriptionDiscountPercent * 1; // Convert to number\r\n\t\t\t\t\t\t\t\tsubscriptionPrice = subscriptionPriceValue;\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Check if we can fall back to product-level selling plan data\r\n\t\t\t\t\t\tif (this.product && this.product.selling_plan_groups && this.product.selling_plan_groups.length > 0) {\r\n\t\t\t\t\t\t\tconst sellingPlanGroup = this.product.selling_plan_groups[0];\r\n\t\t\t\t\t\t\tif (sellingPlanGroup.selling_plans && sellingPlanGroup.selling_plans.length > 0) {\r\n\t\t\t\t\t\t\t\tconst sellingPlan = sellingPlanGroup.selling_plans[0];\r\n\t\t\t\t\t\t\t\tif (sellingPlan.price_adjustments && sellingPlan.price_adjustments.length > 0) {\r\n\t\t\t\t\t\t\t\t\tconst priceAdjustment = sellingPlan.price_adjustments[0];\r\n\t\t\t\t\t\t\t\t\tsubscriptionDiscountPercent = priceAdjustment.value;\r\n\t\t\t\t\t\t\t\t\tsubscriptionDiscountNumber = subscriptionDiscountPercent * 1;\r\n\t\t\t\t\t\t\t\t\t// For product-level plans, we need to calculate the subscription price differently\r\n\t\t\t\t\t\t\t\t\tsubscriptionPrice = currentVariant ? currentVariant.price * (100 - subscriptionDiscountPercent) / 100 : null;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Find ALL subscription label elements (PDP, sidedrawer, etc.)\r\n\t\t\t\t\tconst subscriptionLabels = document.querySelectorAll('.subscription-radio .rc-radio__label');\r\n\r\n\t\t\t\t\tsubscriptionLabels.forEach((subscriptionLabel, index) => {\r\n\r\n\t\t\t\t\t\t// Find existing elements first\r\n\t\t\t\t\t\tlet subscriptionTextEl = subscriptionLabel.querySelector('.rc-radio__subscription');\r\n\t\t\t\t\t\tlet priceEl = subscriptionLabel.querySelector('.rc-radio__price');\r\n\r\n\r\n\t\t\t\t\t\t// Store original content on first run if elements exist\r\n\t\t\t\t\t\tif (subscriptionTextEl && !subscriptionTextEl.dataset.originalContent) {\r\n\t\t\t\t\t\t\tsubscriptionTextEl.dataset.originalContent = subscriptionTextEl.textContent;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!subscriptionTextEl?.dataset.originalHtml) {\r\n\t\t\t\t\t\t\tsubscriptionTextEl.dataset.originalHtml = subscriptionTextEl.innerHTML;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (priceEl && !priceEl.dataset.originalContent) {\r\n\t\t\t\t\t\t\tpriceEl.dataset.originalContent = priceEl.textContent;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Only proceed if we actually found subscription data OR if we need to update\r\n\t\t\t\t\t\tconst hasDiscountData = subscriptionDiscountNumber > 1;\r\n\t\t\t\t\t\tconst existingHasDiscount = subscriptionTextEl && subscriptionTextEl.textContent.includes('Save');\r\n\r\n\r\n\t\t\t\t\t\t// Only update if:\r\n\t\t\t\t\t\t// 1. We have discount data and need to show it, OR\r\n\t\t\t\t\t\t// 2. We don't have discount data but existing content shows a discount (need to remove it), OR  \r\n\t\t\t\t\t\t// 3. Elements don't exist and need to be created\r\n\t\t\t\t\t\tif (hasDiscountData || existingHasDiscount || !subscriptionTextEl) {\r\n\r\n\t\t\t\t\t\t\t// Create elements if they don't exist\r\n\t\t\t\t\t\t\tif (!subscriptionTextEl) {\r\n\t\t\t\t\t\t\t\tsubscriptionTextEl = document.createElement('span');\r\n\t\t\t\t\t\t\t\tsubscriptionTextEl.className = 'rc-radio__subscription';\r\n\t\t\t\t\t\t\t\tsubscriptionLabel.appendChild(subscriptionTextEl);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!priceEl) {\r\n\t\t\t\t\t\t\t\tpriceEl = document.createElement('span');\r\n\t\t\t\t\t\t\t\tpriceEl.className = 'rc-radio__price igPrice';\r\n\t\t\t\t\t\t\t\tsubscriptionLabel.appendChild(priceEl);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Update content\r\n\t\t\t\t\t\t\tif (hasDiscountData) {\r\n\r\n\t\t\t\t\t\t\t\tsubscriptionTextEl.innerHTML = subscriptionTextEl.dataset.originalHtml;\r\n\r\n\r\n\t\t\t\t\t\t\t\t// Update price\r\n\r\n\t\t\t\t\t\t\t\tif (subscriptionPrice) {\r\n\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t// Update price\r\n\t\t\t\t\t\t\t\t\t\tif (priceEl) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Prefer the value from data-price or fallback to data-original-content\r\n\t\t\t\t\t\t\t\t\t\t\tconst correctPrice = priceEl.dataset.price || priceEl.dataset.originalContent || '';\r\n\t\t\t\t\t\t\t\t\t\t\tpriceEl.textContent = ` ${correctPrice}`;\r\n\t\t\t\t\t\t\t\t\t\t\tpriceEl.style.display = '';\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(`[VChange] Label ${index + 1} - ERROR in price update:`, error);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\tconst originalPrice = priceEl.dataset.originalContent;\r\n\t\t\t\t\t\t\t\tif (originalPrice) {\r\n\t\t\t\t\t\t\t\t\tpriceEl.textContent = originalPrice;\r\n\t\t\t\t\t\t\t\t\tpriceEl.style.display = '';\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tpriceEl.textContent = '';\r\n\t\t\t\t\t\t\t\t\tpriceEl.style.display = 'none';\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Also handle the PDP redesign version\r\n\t\t\t\t\tconst subscriptionMessageElements = document.querySelectorAll('.rc-radio__subscription-message');\r\n\t\t\t\t\tsubscriptionMessageElements.forEach(element => {\r\n\t\t\t\t\t\tif (subscriptionDiscountNumber > 1) {\r\n\t\t\t\t\t\t\telement.textContent = `SUBSCRIBE & SAVE ${subscriptionDiscountPercent}%`;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telement.textContent = 'SUBSCRIBE';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}, 300); // End setTimeout - wait for recharge widget HTML regeneration\r\n\t\t\t}\r\n\r\n\t\t\t/** @param {Variant} variant */\r\n\r\n\r\n\t\t\tsetVariantUrl(variant) {\r\n\t\t\t\tconst hasMoreVariants = this.product.variants.length > 1;\r\n\r\n\t\t\t\tif (history.replaceState && !this.isFeaturedProduct && hasMoreVariants) {\r\n\t\t\t\t\t// Change url to include variant if we're not on homepage\r\n\t\t\t\t\tlet search = [];\r\n\r\n\t\t\t\t\tif (window.location.search.length > 1) {\r\n\t\t\t\t\t\t// select non-variant query params\r\n\t\t\t\t\t\tsearch = window.location.search.slice(1).split('&').filter(q => {\r\n\t\t\t\t\t\t\treturn q.indexOf('variant=') !== 0;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} // add current variant\r\n\r\n\r\n\t\t\t\t\tsearch.push('variant=' + variant.id); // set the url to include the variant\r\n\r\n\t\t\t\t\tconst newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?' + search.join('&');\r\n\t\t\t\t\twindow.history.replaceState({\r\n\t\t\t\t\t\tpath: newurl\r\n\t\t\t\t\t}, '', newurl);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/** @returns {string} */\r\n\t\t\tmoney(price) {\r\n\t\t\t\treturn this.theme.formatMoney(price);\r\n\t\t\t}\r\n\r\n\t\t\tonWindowResizeBreakpoint({\r\n\t\t\t\tbreakpoint,\r\n\t\t\t\toldBreakpoint\r\n\t\t\t}) {\r\n\t\t\t\tconst newIsMobile = breakpoint.order <= MOBILE_BREAKPOINT.order;\r\n\t\t\t\tconst oldWasMobile = oldBreakpoint.order <= MOBILE_BREAKPOINT.order;\r\n\r\n\t\t\t\tif (newIsMobile !== oldWasMobile) {\r\n\t\t\t\t\tthis.isMobile = newIsMobile;\r\n\r\n\t\t\t\t\tif (this.mediaSlider) {\r\n\t\t\t\t\t\tthis.mediaSlider.allowTouchMove = this.hasSlider;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!this.hasThumbnails) {\r\n\t\t\t\t\t\tif (this.hasSlider && !this.mediaSlider) {\r\n\t\t\t\t\t\t\tthis.loadSlider();\r\n\t\t\t\t\t\t} else if (!this.hasSlider && this.mediaSlider) {\r\n\t\t\t\t\t\t\tthis.unloadSlider();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"initialVariantId\", [_dec2], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"product\", [_dec3], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"theme\", [_dec4], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"productSection\", [_dec5], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, \"isFeaturedProduct\", [_dec6], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, \"thumbnailChangesVariant\", [_dec7], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, \"hasThumbnails\", [_dec8], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, \"imageZoomEnabled\", [_dec9], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, \"videoLoopEnabled\", [_dec10], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, \"sectionId\", [_dec11], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, \"cartMethod\", [_dec12], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, \"slidesPerView\", [_dec13], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, \"giftwrapProductVariantId\", [_dec14], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, \"locationsEnabled\", [_dec15], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, \"languageUrl\", [_dec16], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), _applyDecoratedDescriptor(_class2.prototype, \"onVariantChange\", [_dec17], Object.getOwnPropertyDescriptor(_class2.prototype, \"onVariantChange\"), _class2.prototype)), _class2)) || _class);\r\n\t\tclass ProductSection extends Section {\r\n\t\t\tconstructor(theme, _element, pageLoad, options = {}) {\r\n\t\t\t\tsuper(theme, _element, pageLoad);\r\n\r\n\t\t\t\tthis.fixSticky = () => {\r\n\t\t\t\t\tconst productSticky = this.element.querySelector('.product-sticky');\r\n\t\t\t\t\tconst headerSticky = document.querySelector('.sticky-header');\r\n\r\n\t\t\t\t\tif (productSticky && headerSticky) {\r\n\t\t\t\t\t\tproductSticky.style.top = `${headerSticky.clientHeight}px`;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResize = () => {\r\n\t\t\t\t\tthis.fixSticky();\r\n\t\t\t\t\tthis.loadReadmore();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResizeBreakpoint = ({\r\n\t\t\t\t\tbreakpoint,\r\n\t\t\t\t\toldBreakpoint\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tif (!this.vue) {\r\n\t\t\t\t\t\t// Product was not selected => no vue\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.vue.$children[0].onWindowResizeBreakpoint({\r\n\t\t\t\t\t\tbreakpoint,\r\n\t\t\t\t\t\toldBreakpoint\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadReadmore = () => {\r\n\t\t\t\t\tconst readMoreEls = document.querySelectorAll('.product-description.readmore');\r\n\t\t\t\t\tif (!readMoreEls) return;\r\n\t\t\t\t\tlet thisHeight = 100;\r\n\r\n\t\t\t\t\tif (this.element.querySelector('.product-description_full-width')) {\r\n\t\t\t\t\t\tthisHeight = 150;\r\n\r\n\t\t\t\t\t\tif (this.theme.getWindowWidth() <= 768) {\r\n\t\t\t\t\t\t\tthisHeight = 100;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treadMoreEls.forEach(readMoreEl => {\r\n\t\t\t\t\t\tif (!readMoreEl.classList.contains('rmjs-1')) {\r\n\t\t\t\t\t\t\tthis.readMore = new readmore_es6(readMoreEl, {\r\n\t\t\t\t\t\t\t\tspeed: 100,\r\n\t\t\t\t\t\t\t\tcollapsedHeight: thisHeight,\r\n\t\t\t\t\t\t\t\tmoreLink: `<div class=\"read-more-link\"><a href=\"#\">${this.theme.translations.read_more_html} <i class=\"fa fa-angle-down\" aria-hidden=\"true\"></i></a></div>`,\r\n\t\t\t\t\t\t\t\tlessLink: `<div class=\"read-less-link\"><a href=\"#\">${this.theme.translations.read_less_html} <i class=\"fa fa-angle-up\" aria-hidden=\"true\"></i></a></div>`,\r\n\t\t\t\t\t\t\t\tbeforeToggle: function (trigger, element, expanded) {\r\n\t\t\t\t\t\t\t\t\tif (expanded) {\r\n\t\t\t\t\t\t\t\t\t\tconst headerEl = document.querySelector('.sticky-header');\r\n\t\t\t\t\t\t\t\t\t\tconst stickyHeaderHeight = headerEl ? headerEl.clientHeight : 0;\r\n\t\t\t\t\t\t\t\t\t\tjquery_default()('html, body').animate({\r\n\t\t\t\t\t\t\t\t\t\t\tscrollTop: jquery_default()(element).offset().top - stickyHeaderHeight\r\n\t\t\t\t\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tjquery_default()(element).toggleClass('closed');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadTabs = () => {\r\n\t\t\t\t\tjquery_default()(this.element).find('ul.tabs').each(function () {\r\n\t\t\t\t\t\tvar active,\r\n\t\t\t\t\t\t\tcontent,\r\n\t\t\t\t\t\t\tlinks = jquery_default()(this).find('a');\r\n\t\t\t\t\t\tactive = links.first().addClass('active');\r\n\t\t\t\t\t\tcontent = jquery_default()(active.attr('href'));\r\n\t\t\t\t\t\tlinks.not(':first').each(function () {\r\n\t\t\t\t\t\t\tjquery_default()(jquery_default()(this).attr('href')).hide();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tjquery_default()(this).find('a').click(function (e) {\r\n\t\t\t\t\t\t\tactive.removeClass('active');\r\n\t\t\t\t\t\t\tcontent.hide();\r\n\t\t\t\t\t\t\tactive = jquery_default()(this);\r\n\t\t\t\t\t\t\tcontent = jquery_default()(jquery_default()(this).attr('href'));\r\n\t\t\t\t\t\t\tactive.addClass('active');\r\n\t\t\t\t\t\t\tcontent.fadeIn();\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.scrollToPostedForm = () => {\r\n\t\t\t\t\tif (jquery_default()('.out-of-stock-form .posted-successfully').length) {\r\n\t\t\t\t\t\tjquery_default()('html, body').animate({\r\n\t\t\t\t\t\t\tscrollTop: jquery_default()('.form-vertical').offset().top\r\n\t\t\t\t\t\t}, 100);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar product_json_el = this.element.querySelector('.product-json');\r\n\r\n\t\t\t\tif (!product_json_el) {\r\n\t\t\t\t\t// No product on the page - maybe just product placeholder\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.product = JSON.parse(product_json_el.textContent);\r\n\t\t\t\tthis.vue = new vue_esm({\r\n\t\t\t\t\tel: this.element.querySelector('.product-form-vue'),\r\n\t\t\t\t\tcomponents: {\r\n\t\t\t\t\t\t'wetheme-product-form': ProductForm\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdata: () => ({\r\n\t\t\t\t\t\tproductSection: this,\r\n\t\t\t\t\t\tproduct: this.product,\r\n\t\t\t\t\t\ttheme: this.theme,\r\n\t\t\t\t\t\tisFeaturedProduct: this.isFeaturedProduct,\r\n\t\t\t\t\t\tslidesPerView: options ? options.slidesPerView || 1 : 1\r\n\t\t\t\t\t})\r\n\t\t\t\t});\r\n\t\t\t\tthis.fixSticky();\r\n\t\t\t\tthis.loadReadmore();\r\n\t\t\t\tthis.loadTabs();\r\n\t\t\t\tthis.scrollToPostedForm();\r\n\t\t\t\tdocument.addEventListener('shopify:block:select', this.loadReadmore);\r\n\t\t\t\tdocument.addEventListener('shopify:section:select', this.loadReadmore);\r\n\t\t\t}\r\n\r\n\t\t\tget isFeaturedProduct() {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/FeaturedProduct.js\r\n\r\n\t\tclass FeaturedProduct extends ProductSection {\r\n\t\t\tget isFeaturedProduct() {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Pagination.js\r\n\r\n\r\n\t\t/** Pagination logic (Infinite scrolling and Load more button) */\r\n\r\n\t\tclass Pagination_Pagination extends Component {\r\n\t\t\t// how many pixels from bottom should next page start loading\r\n\t\t\t// how often should the scroll position should be checked (in milliseconds)\r\n\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, loadedCallback1, loadedCallback2) {\r\n\t\t\t\tsuper(theme, element);\r\n\t\t\t\tthis.PAGINATION_LOAD_OFFSET = 1200;\r\n\t\t\t\tthis.SCROLL_DELAY = 200;\r\n\t\t\t\tthis.PAGINATION_SELECTOR = '.pagination';\r\n\t\t\t\tthis.COLLECTION_WRAPPER_SELECTOR = '#CollectionProductGrid';\r\n\t\t\t\tthis.COLLECTION_MAIN_SELECTOR = '.collection-main-body-inner';\r\n\t\t\t\tthis.COLLECTION_HEADER_SELECTOR = '.collection-main-central-header';\r\n\t\t\t\tthis.COLLECTION_ITEM_SELECTOR = '.grid__item';\r\n\t\t\t\tthis.COLLECTION_ITEM_EXCLUDE_SELECTOR = '.collection-central-description-block';\r\n\r\n\t\t\t\tthis.initialize = () => {\r\n\t\t\t\t\tif (jquery_default()('.pagination').hasClass('pagination-infinite')) {\r\n\t\t\t\t\t\tthis.pagination_type = 'infinite-scroll';\r\n\t\t\t\t\t} else if (jquery_default()('.pagination').hasClass('pagination--load-more')) {\r\n\t\t\t\t\t\tthis.pagination_type = 'load-more';\r\n\t\t\t\t\t\tthis.load_more_button();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowScroll = () => {\r\n\t\t\t\t\tthis.$wrapper = jquery_default()(this.COLLECTION_WRAPPER_SELECTOR);\r\n\r\n\t\t\t\t\tif (this.pagination_type !== 'infinite-scroll') {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar height = this.$wrapper.position().top + this.$wrapper.height();\r\n\r\n\t\t\t\t\tif (height - this.PAGINATION_LOAD_OFFSET < this.$doc.scrollTop() + this.$w.height()) {\r\n\t\t\t\t\t\tthis.load_next_page();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.check_pagination_progress = () => {\r\n\t\t\t\t\tvar next_url = jquery_default()(this.PAGINATION_SELECTOR).find('.pagination-next a').attr('href');\r\n\t\t\t\t\tthis.fully_loaded = !next_url || next_url === '#';\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.build_load_more_html = function () {\r\n\t\t\t\t\tvar totalItems = parseInt(jquery_default()('.pagination').attr('data-paginate-items'), 10);\r\n\t\t\t\t\tvar currentOffset = parseInt(jquery_default()('.pagination').attr('data-paginate-offset'), 10);\r\n\t\t\t\t\tvar pageSize = parseInt(jquery_default()('.pagination').attr('data-paginate-size'), 10);\r\n\t\t\t\t\tvar totalViewed = currentOffset + pageSize;\r\n\t\t\t\t\tvar progressPercentage = 100 * totalViewed / totalItems;\r\n\r\n\t\t\t\t\tif (this.theme.translations.youve_viewed !== undefined) {\r\n\t\t\t\t\t\tvar youViewed = this.theme.translations.youve_viewed.replace('{{ x }}', totalViewed).replace('{{ y }}', totalItems);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tyouViewed = \"\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar buttonHtml = '<div class=\"pagination__load-more\">' + `<p class=\"pagination__progress-text\">${youViewed}</p>` + '<div class=\"progress-bar\"><div class=\"progress-bar__inner\" style=\"width:' + progressPercentage + '%;\"></div></div>' + `<button class=\"btn btn--large btn--load-more\">${this.theme.translations.load_more}</button>` + '</div>';\r\n\t\t\t\t\treturn buttonHtml;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.load_more_button = function () {\r\n\t\t\t\t\tthis.check_pagination_progress(); // Check if Load More button already on page\r\n\r\n\t\t\t\t\tvar buttonAppended = jquery_default()('.pagination .btn--load-more').length !== 0; // Build Button html\r\n\r\n\t\t\t\t\tvar buttonHtml = this.build_load_more_html(); // If button not on page and more results are available, display button\r\n\r\n\t\t\t\t\tif (!buttonAppended && !this.fully_loaded) {\r\n\t\t\t\t\t\tjquery_default()('.pagination').append(buttonHtml);\r\n\t\t\t\t\t} // If button clicked, load next page\r\n\r\n\r\n\t\t\t\t\tjquery_default()('.btn--load-more').off('click').on('click', this.load_next_page.bind(this.$self));\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.set_loading = loading => {\r\n\t\t\t\t\tif (loading) {\r\n\t\t\t\t\t\tthis.loading = true;\r\n\t\t\t\t\t\tthis.$loading_indicator.show();\r\n\t\t\t\t\t\tjquery_default()(this.PAGINATION_SELECTOR).hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.loading = false;\r\n\t\t\t\t\t\tthis.$loading_indicator.hide();\r\n\t\t\t\t\t\tjquery_default()(this.PAGINATION_SELECTOR).show();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.load_next_page = () => {\r\n\t\t\t\t\tif (this.loading) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar next_url = jquery_default()(this.PAGINATION_SELECTOR).find('.pagination-next a').attr('href');\r\n\r\n\t\t\t\t\tif (!next_url || next_url === '#') {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.set_loading(true);\r\n\t\t\t\t\tjquery_default().ajax({\r\n\t\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\t\turl: next_url,\r\n\t\t\t\t\t\tdataType: \"html\"\r\n\t\t\t\t\t}).then(this.page_loaded.bind(this)).always(this.set_loading.bind(this, false)); // let newUrlIS =  window.location.origin + next_url;\r\n\t\t\t\t\t// history.pushState({}, null, newUrlIS);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.scroll_position_history = () => {\r\n\t\t\t\t\tvar pathName = document.location.pathname;\r\n\r\n\t\t\t\t\twindow.onbeforeunload = function () {\r\n\t\t\t\t\t\tvar htmlContent = document.querySelector('.collection-main-body-inner').innerHTML;\r\n\t\t\t\t\t\tvar paginationContent = document.querySelector('.pagination').innerHTML;\r\n\t\t\t\t\t\tsessionStorage.setItem('pagePosition_' + pathName, htmlContent.toString());\r\n\t\t\t\t\t\tsessionStorage.setItem('pagePagination_' + pathName, paginationContent.toString());\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (performance.navigation.type == 2 && sessionStorage['pagePosition_' + pathName]) {\r\n\t\t\t\t\t\tvar htmlContentContainer = document.querySelector('.collection-main-body-inner');\r\n\t\t\t\t\t\thtmlContentContainer.innerHTML = sessionStorage.getItem('pagePosition_' + pathName);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (performance.navigation.type == 2 && sessionStorage['pagePagination_' + pathName]) {\r\n\t\t\t\t\t\tvar paginationContainer = document.querySelector('.pagination');\r\n\t\t\t\t\t\tpaginationContainer.innerHTML = sessionStorage.getItem('pagePagination_' + pathName);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.page_loaded = data => {\r\n\t\t\t\t\tvar data_dom = jquery_default()(data);\r\n\t\t\t\t\tvar classes = jquery_default()('#grid_item_width_classes').val();\r\n\r\n\t\t\t\t\tif (classes) {\r\n\t\t\t\t\t\tdata_dom.find('.grid__item').removeClass('large--one-quarter medium--one-quarter small--one-whole large--one-half medium--one-half').addClass(classes);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.$collection.append(data_dom.find(this.COLLECTION_HEADER_SELECTOR + ' > ' + this.COLLECTION_ITEM_SELECTOR).not(this.COLLECTION_ITEM_EXCLUDE_SELECTOR), data_dom.find(this.COLLECTION_MAIN_SELECTOR + ' > ' + this.COLLECTION_ITEM_SELECTOR));\r\n\t\t\t\t\tjquery_default()(this.PAGINATION_SELECTOR).replaceWith(data_dom.find(this.PAGINATION_SELECTOR)); // If \"load more\" enabled, run function to conditionally render button on newly-loaded page\r\n\r\n\t\t\t\t\tif (this.pagination_type === 'load-more') {\r\n\t\t\t\t\t\tthis.load_more_button();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.loadedCallback1) {\r\n\t\t\t\t\t\tthis.loadedCallback1();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.loadedCallback2) {\r\n\t\t\t\t\t\tthis.loadedCallback2();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadedCallback1 = loadedCallback1;\r\n\t\t\t\tthis.loadedCallback2 = loadedCallback2;\r\n\t\t\t\tthis.$w = jquery_default()(window);\r\n\t\t\t\tthis.$doc = jquery_default()(document);\r\n\t\t\t\tthis.$self = this;\r\n\t\t\t\tthis.$collection = jquery_default()(this.COLLECTION_MAIN_SELECTOR);\r\n\t\t\t\tthis.$wrapper = jquery_default()(this.COLLECTION_WRAPPER_SELECTOR);\r\n\t\t\t\tthis.$loading_indicator = jquery_default()('.pagination-loading');\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tthis.fully_loaded = false;\r\n\t\t\t\tthis.scroll_timeout = null;\r\n\t\t\t\tthis.pagination_type = null; // If neither \"infinite scrolling\" nor \"load more\" are enabled, end function here\r\n\r\n\t\t\t\tconst $pagination_infinite = jquery_default()('.pagination-infinite');\r\n\t\t\t\tconst $pagination_load_more = jquery_default()('.pagination--load-more');\r\n\r\n\t\t\t\tif ($pagination_infinite.length === 0 && $pagination_load_more.length === 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.initialize();\r\n\t\t\t\tthis.scroll_position_history();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/CollectionSection.js\r\n\r\n\r\n\r\n\r\n\r\n\t\tclass CollectionSection extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.initParallax = () => {\r\n\t\t\t\t\t// collection image is outside of main div, need to call it on parent\r\n\t\t\t\t\tthis.parallax = new Parallax_Parallax(this.theme, this.element.parentNode);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.initPagination = () => {\r\n\t\t\t\t\tthis.pagination = new Pagination_Pagination(this.theme, this.element, this.loadShopNow, this.loadQuickAdd);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadShopNow = () => {\r\n\t\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.shop-now-button, .quick-add-button-variants'), el => {\r\n\t\t\t\t\t\tel.removeEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t\tel.addEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.theme.addBadges(this.element, 1000);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadQuickAdd = () => {\r\n\t\t\t\t\tthis.quickAddButtons = new QuickAdd(this.theme, this.element);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadTagFilter = () => {\r\n\t\t\t\t\t/* Product Tag Filters - Good for any number of filters on any type of collection pages */\r\n\t\t\t\t\tvar collFilters = jquery_default()('.coll-filter');\r\n\t\t\t\t\tcollFilters.on('change', function () {\r\n\t\t\t\t\t\tvar newTags = [];\r\n\t\t\t\t\t\tvar val = jquery_default()(this).val();\r\n\r\n\t\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\t\tnewTags.push(val);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (newTags.length) {\r\n\t\t\t\t\t\t\tvar query = newTags.join('+');\r\n\t\t\t\t\t\t\tvar link = jquery_default()('#link-to-tag-generic a').attr('href').replace(/\\+/g, '%20');\r\n\t\t\t\t\t\t\twindow.location.href = link.replace(/(\\/|=)tag($|\\?|&)/, '$1' + query + '$2');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.location.href = jquery_default()('#link-to-collection').val().toString();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tjquery_default()('.collection-filter-tag-checkbox').on('change', function () {\r\n\t\t\t\t\t\tvar filter = Array.prototype.map.call(document.querySelectorAll('input.collection-filter-tag-checkbox:checked'), function (el) {\r\n\t\t\t\t\t\t\treturn el.value;\r\n\t\t\t\t\t\t}).join('+');\r\n\t\t\t\t\t\tvar link = jquery_default()('#link-to-tag-generic a').attr('href').replace(/\\+/g, '%20');\r\n\t\t\t\t\t\twindow.location.href = link.replace(/(\\/|=)tag($|\\?|&)/, '$1' + filter + '$2');\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadSortBy = () => {\r\n\t\t\t\t\tconst queryParams = {};\r\n\r\n\t\t\t\t\tif (location.search.length) {\r\n\t\t\t\t\t\tfor (var aKeyValue, i = 0, aCouples = location.search.substr(1).split('&'); i < aCouples.length; i++) {\r\n\t\t\t\t\t\t\taKeyValue = aCouples[i].split('=');\r\n\r\n\t\t\t\t\t\t\tif (aKeyValue.length > 1) {\r\n\t\t\t\t\t\t\t\tqueryParams[decodeURIComponent(aKeyValue[0])] = decodeURIComponent(aKeyValue[1]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjquery_default()('.coll-sort-by').val('{{ collection.sort_by | default: collection.default_sort_by | escape }}');\r\n\t\t\t\t\tjquery_default()('.coll-sort-by,.collection-sort-by-radio').on('change', function () {\r\n\t\t\t\t\t\tqueryParams.sort_by = jquery_default()(this).val();\r\n\t\t\t\t\t\tlocation.search = jquery_default().param(queryParams).replace(/\\+/g, '%20');\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.handleShopNow = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('shop-now', true, {\r\n\t\t\t\t\t\turl: e.target.href\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.loadTagFilter();\r\n\t\t\t\tthis.loadSortBy();\r\n\t\t\t\tthis.initPagination();\r\n\t\t\t\tthis.loadShopNow();\r\n\t\t\t\tthis.loadQuickAdd();\r\n\t\t\t\tthis.initParallax();\r\n\t\t\t\tthis.theme.addBadges(this.element, 1000);\r\n\t\t\t\tdocument.addEventListener('paginate', this.initPagination);\r\n\t\t\t\tdocument.addEventListener('loadShopNow', this.loadShopNow);\r\n\t\t\t\tdocument.addEventListener('loadQuickAdd', this.loadQuickAdd);\r\n\t\t\t\tdocument.addEventListener('shopify:section:load', this.initParallax);\r\n\t\t\t\tdocument.addEventListener('shopify:section:select', this.initParallax);\r\n\t\t\t\tdocument.addEventListener('shopify:section:deselect', this.initParallax);\r\n\t\t\t\tdocument.addEventListener('shopify:section:reorder', this.initParallax);\r\n\t\t\t\tvar seft = this;\r\n\t\t\t\twindow.addEventListener('globoFilterRenderCompleted', function () {\r\n\t\t\t\t\tseft.loadShopNow();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/CollectionListSection.js\r\n\r\n\r\n\r\n\t\tclass CollectionListSection extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.parallax = new Parallax_Parallax(theme, element.parentNode);\r\n\t\t\t\tthis.quickAddButtons = new QuickAdd(theme, element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/ProductRecommendations.js\r\n\r\n\r\n\r\n\t\tclass ProductRecommendations extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.load = () => {\r\n\t\t\t\t\t// Remove existing products so the new ones can be loaded.\r\n\t\t\t\t\tif (this.isAlreadyLoaded) this.isAlreadyLoaded.remove(); // Build request URL\r\n\r\n\t\t\t\t\tconst requestUrl = `${this.baseUrl}?section_id=${this.sectionId}&limit=${this.limit}&product_id=${this.productId}`; // Create request and submit it using Ajax\r\n\r\n\t\t\t\t\tvar request = new XMLHttpRequest();\r\n\t\t\t\t\trequest.open(\"GET\", requestUrl);\r\n\r\n\t\t\t\t\trequest.onload = () => {\r\n\t\t\t\t\t\tif (request.status >= 200 && request.status < 300) {\r\n\t\t\t\t\t\t\tvar container = document.createElement(\"div\");\r\n\t\t\t\t\t\t\tcontainer.innerHTML = request.response;\r\n\t\t\t\t\t\t\tArray.prototype.forEach.call(container.children, child => {\r\n\t\t\t\t\t\t\t\t// Avoid duplicating the outer two divs.\r\n\t\t\t\t\t\t\t\tconst newRelated = child.querySelector('.product-page-related-products');\r\n\r\n\t\t\t\t\t\t\t\tif (newRelated) {\r\n\t\t\t\t\t\t\t\t\tthis.element.appendChild(newRelated);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tArray.prototype.forEach.call(document.querySelectorAll('.shop-now-button, .quick-add-button-variants'), shopNow => {\r\n\t\t\t\t\t\t\t\t\tif (shopNow) {\r\n\t\t\t\t\t\t\t\t\t\tshopNow.addEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.theme.addBadges(this.element, 1000);\r\n\t\t\t\t\t\t\tthis.quickAddButtons = new QuickAdd(this.theme, this.element);\r\n\t\t\t\t\t\t\tconst nextEl = this.element.querySelector('.swiper-button--next');\r\n\t\t\t\t\t\t\tconst prevEl = this.element.querySelector('.swiper-button--prev');\r\n\t\t\t\t\t\t\tthis.swiper = new swiper_esm_bundle(this.element.querySelector('.swiper-container'), {\r\n\t\t\t\t\t\t\t\tslidesPerView: 2,\r\n\t\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\t\tnextEl,\r\n\t\t\t\t\t\t\t\t\tprevEl\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t\t\t\t\t600: {\r\n\t\t\t\t\t\t\t\t\t\tslidesPerView: 4\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\twatchOverflow: true\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\trequest.send();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.handleShopNow = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('shop-now', true, {\r\n\t\t\t\t\t\turl: e.target.href\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.productId = this.element.dataset.productId;\r\n\t\t\t\tthis.limit = this.element.dataset.limit;\r\n\t\t\t\tthis.baseUrl = this.element.dataset.recommendationsUrl;\r\n\t\t\t\tthis.sectionId = this.element.dataset.wethemeSectionId;\r\n\t\t\t\tthis.isAlreadyLoaded = this.element.querySelector('.product-page-related-products');\r\n\t\t\t\tthis.load();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/RichText.js\r\n\r\n\t\tclass RichText extends Section { }\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Testimonials.js\r\n\r\n\t\tclass Testimonails extends Section { }\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Blog.js\r\n\r\n\r\n\t\tclass Blog extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.kenBurns = new KenBurns(theme, element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/TextAdverts.js\r\n\r\n\r\n\t\tclass TextAdverts extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tconst swiperContainer = this.element.querySelector('.swiper-container');\r\n\t\t\t\tthis.swiper = new swiper_esm_bundle(swiperContainer, {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\twatchOverflow: true,\r\n\t\t\t\t\tautoHeight: true,\r\n\t\t\t\t\tloop: true,\r\n\t\t\t\t\tautoplay: {\r\n\t\t\t\t\t\tdelay: 5000\r\n\t\t\t\t\t},\r\n\t\t\t\t\tspeed: 1000\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/VideoHero.js\r\n\r\n\r\n\t\tclass VideoHero extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tcreateClickableSection(this.element);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/sections/Cart.js\r\n\r\n\t\tclass Cart extends Section {\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.changeQuantity = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tconst input = e.currentTarget.closest('.js-qty').querySelector('input');\r\n\r\n\t\t\t\t\tif (e.currentTarget.classList.contains('js-qty__adjust--minus')) {\r\n\t\t\t\t\t\tinput.value = Math.max(1, parseInt(input.value, 10) - 1);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tinput.value = parseInt(input.value, 10) + 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.js-qty__adjust'), el => el.addEventListener('click', this.changeQuantity));\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/javascripts/components/Video.vue?vue&type=template&id=2d87b344&\r\n\t\tvar Videovue_type_template_id_2d87b344_render = function () {\r\n\t\t\tvar _vm = this\r\n\t\t\tvar _h = _vm.$createElement\r\n\t\t\tvar _c = _vm._self._c || _h\r\n\t\t\treturn _c(\"div\", [\r\n\t\t\t\t_c(\r\n\t\t\t\t\t\"div\",\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tclass: _vm.overlay\r\n\t\t\t\t\t\t\t? \"homepage-hero-content-overlay-wrapper homepage-video-content-overlay-wrapper-\" +\r\n\t\t\t\t\t\t\t_vm.sectionId +\r\n\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\t(_vm.isPlaying ? \"overlay-hidden\" : \"\")\r\n\t\t\t\t\t\t\t: \"\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t!_vm.isPlaying && !_vm.hero\r\n\t\t\t\t\t\t\t? _c(\"div\", { staticClass: \"video--video__static-image\" })\r\n\t\t\t\t\t\t\t: _vm._e(),\r\n\t\t\t\t\t\t_vm._v(\" \"),\r\n\t\t\t\t\t\t!_vm.isPlaying && !_vm.hero\r\n\t\t\t\t\t\t\t? _c(\r\n\t\t\t\t\t\t\t\t\"div\",\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tstaticClass: \"video--video__text-block\",\r\n\t\t\t\t\t\t\t\t\ton: { click: _vm.play }\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t[_vm._m(0)]\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t: _vm._e(),\r\n\t\t\t\t\t\t_vm._v(\" \"),\r\n\t\t\t\t\t\t_c(\"div\", { class: { \"embed-container\": !_vm.hero } }, [\r\n\t\t\t\t\t\t\t_c(\"div\", { ref: \"video\", staticClass: \"video\" }, [\r\n\t\t\t\t\t\t\t\t_vm.videoType === \"mp4\"\r\n\t\t\t\t\t\t\t\t\t? _c(\r\n\t\t\t\t\t\t\t\t\t\t\"video\",\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tref: \"videoMP4\",\r\n\t\t\t\t\t\t\t\t\t\t\tstaticClass: \"hero-video-mp4\",\r\n\t\t\t\t\t\t\t\t\t\t\tattrs: { playsinline: \"\", controls: \"\" }\r\n\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t[_c(\"source\", { attrs: { src: _vm.url, type: \"video/mp4\" } })]\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t: _vm._e()\r\n\t\t\t\t\t\t\t])\r\n\t\t\t\t\t\t])\r\n\t\t\t\t\t]\r\n\t\t\t\t)\r\n\t\t\t])\r\n\t\t}\r\n\t\tvar Videovue_type_template_id_2d87b344_staticRenderFns = [\r\n\t\t\tfunction () {\r\n\t\t\t\tvar _vm = this\r\n\t\t\t\tvar _h = _vm.$createElement\r\n\t\t\t\tvar _c = _vm._self._c || _h\r\n\t\t\t\treturn _c(\r\n\t\t\t\t\t\"div\",\r\n\t\t\t\t\t{ staticClass: \"homepage-video-play-button\", attrs: { tabindex: \"0\" } },\r\n\t\t\t\t\t[_c(\"div\", { staticClass: \"homepage-video-play-button-inner\" })]\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t]\r\n\t\tVideovue_type_template_id_2d87b344_render._withStripped = true\r\n\r\n\r\n\t\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Video.vue?vue&type=template&id=2d87b344&\r\n\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/VideoBase.js\r\n\t\t/**\r\n\t\t* @typedef {Object} VideoParams\r\n\t\t* @param {boolean} autoplay\r\n\t\t* @param {boolean} mute\r\n\t\t* @param {boolean} loop\r\n\t\t* @param {boolean} hideControls\r\n\t\t* @param {string} url\r\n\t\t*/\r\n\t\tclass VideoBase {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.getAutoplay = autoplay => {\r\n\t\t\t\t\t// Autoplay if Save-Data is not set\r\n\t\t\t\t\tif (\"connection\" in navigator) {\r\n\t\t\t\t\t\tif (navigator.connection.saveData) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} // Autoplay if reduced motion is not set\r\n\r\n\r\n\t\t\t\t\tif (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn autoplay;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._load = async function () { };\r\n\r\n\t\t\t\tthis.init = params => { };\r\n\r\n\t\t\t\tthis.play = () => { };\r\n\r\n\t\t\t\tthis.pause = () => { };\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t* Get autoplay with overrides\r\n\t\t\t*\r\n\t\t\t* @param {boolean} autoplay User autoplay preference\r\n\t\t\t* @return {boolean}\r\n\t\t\t*/\r\n\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Youtube.js\r\n\r\n\t\t/** Get ID of a youtube video from URL\r\n\t\t* @param {string} url\r\n\t\t* @return {string} youtube video ID\r\n\t\t*/\r\n\r\n\t\tconst youtubeGetId = url => {\r\n\t\t\tconst parts = url.replace(/(>|<)/gi, '').split(/(vi\\/|v=|\\/v\\/|youtu\\.be\\/|\\/embed\\/)/);\r\n\r\n\t\t\tif (parts[2] !== undefined) {\r\n\t\t\t\treturn parts[2].split(/[^0-9a-z_-]/i)[0];\r\n\t\t\t}\r\n\r\n\t\t\treturn url;\r\n\t\t};\r\n\t\tclass Youtube extends VideoBase {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tsuper(...args);\r\n\r\n\t\t\t\tthis._load = () => {\r\n\t\t\t\t\treturn this.theme.loadYoutubeApi();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.init = ({\r\n\t\t\t\t\tautoplay,\r\n\t\t\t\t\thideControls,\r\n\t\t\t\t\turl,\r\n\t\t\t\t\tmute,\r\n\t\t\t\t\tloop,\r\n\t\t\t\t\tonPlay,\r\n\t\t\t\t\tonEnd\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tautoplay = this.getAutoplay(autoplay);\r\n\t\t\t\t\tconst videoId = youtubeGetId(url);\r\n\t\t\t\t\treturn new Promise(resolve => {\r\n\t\t\t\t\t\tthis._load().then(YT => {\r\n\t\t\t\t\t\t\tthis.player = new YT.Player(this.element, {\r\n\t\t\t\t\t\t\t\tvideoId: videoId,\r\n\t\t\t\t\t\t\t\tplayerVars: {\r\n\t\t\t\t\t\t\t\t\tshowinfo: 0,\r\n\t\t\t\t\t\t\t\t\tmodestbranding: 1,\r\n\t\t\t\t\t\t\t\t\trel: 0,\r\n\t\t\t\t\t\t\t\t\tautoplay: autoplay ? 1 : 0,\r\n\t\t\t\t\t\t\t\t\tcontrols: hideControls ? 0 : 1,\r\n\t\t\t\t\t\t\t\t\tmute: mute || autoplay ? 1 : 0,\r\n\t\t\t\t\t\t\t\t\tvideoId: videoId,\r\n\t\t\t\t\t\t\t\t\tcc_load_policy: 0,\r\n\t\t\t\t\t\t\t\t\tfs: 0,\r\n\t\t\t\t\t\t\t\t\tiv_load_policy: 3,\r\n\t\t\t\t\t\t\t\t\tplaysinline: 1,\r\n\t\t\t\t\t\t\t\t\tbranding: 0,\r\n\t\t\t\t\t\t\t\t\torigin: window.location.origin\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tevents: {\r\n\t\t\t\t\t\t\t\t\tonReady: event => {\r\n\t\t\t\t\t\t\t\t\t\tthis.player = event.target;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (mute || autoplay) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.player.mute();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (autoplay) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Force play just in case that the option didn't work\r\n\t\t\t\t\t\t\t\t\t\t\tthis.player.playVideo();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tresolve(this.player);\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tonStateChange: event => {\r\n\t\t\t\t\t\t\t\t\t\tif (event.data === YT.PlayerState.PLAYING) {\r\n\t\t\t\t\t\t\t\t\t\t\tonPlay();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (event.data === YT.PlayerState.ENDED && loop) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.player.playVideo();\r\n\t\t\t\t\t\t\t\t\t\t\tonEnd();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.play = () => {\r\n\t\t\t\t\tthis.player.playVideo();\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Vimeo.js\r\n\r\n\t\t/** Get ID of a vimeo video from URL\r\n\t\t* @param {string} url\r\n\t\t* @return {string} vimeo video ID\r\n\t\t*/\r\n\r\n\t\tfunction vimeoGetId(url) {\r\n\t\t\tconst regex = /(videos|video|channels|\\.com)\\/([\\d]+)/;\r\n\t\t\tconst parts = url.match(regex);\r\n\t\t\tconst partsNum = url.split('/'); // Handle URLs like https://vimeo.com/413064250/6b8fd8d053\r\n\r\n\t\t\tif (partsNum.length > 4) {\r\n\t\t\t\treturn url;\r\n\t\t\t} else if (parts && parts[2] !== undefined) {\r\n\t\t\t\treturn parts[2];\r\n\t\t\t}\r\n\r\n\t\t\treturn url;\r\n\t\t}\r\n\r\n\t\tclass Vimeo extends VideoBase {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tsuper(...args);\r\n\r\n\t\t\t\tthis._load = () => {\r\n\t\t\t\t\treturn this.theme.loadVimeoApi();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.init = ({\r\n\t\t\t\t\tautoplay,\r\n\t\t\t\t\thideControls,\r\n\t\t\t\t\turl,\r\n\t\t\t\t\tmute,\r\n\t\t\t\t\tloop,\r\n\t\t\t\t\tonPlay,\r\n\t\t\t\t\tonEnd\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tautoplay = this.getAutoplay(autoplay);\r\n\t\t\t\t\tconst videoId = vimeoGetId(url);\r\n\t\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tthis._load().then(Vimeo => {\r\n\t\t\t\t\t\t\tthis.player = new Vimeo.Player(this.element, {\r\n\t\t\t\t\t\t\t\tid: videoId,\r\n\t\t\t\t\t\t\t\tautoplay: autoplay,\r\n\t\t\t\t\t\t\t\tcontrols: !hideControls,\r\n\t\t\t\t\t\t\t\tbyline: false,\r\n\t\t\t\t\t\t\t\tportrait: false,\r\n\t\t\t\t\t\t\t\ttitle: false\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.ready().then(() => {\r\n\t\t\t\t\t\t\t\tif (mute || autoplay) {\r\n\t\t\t\t\t\t\t\t\tthis.player.setVolume(0);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (loop) {\r\n\t\t\t\t\t\t\t\t\tthis.player.setLoop(true);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (autoplay) {\r\n\t\t\t\t\t\t\t\t\tthis.player.play();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tresolve(this.player);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('play', () => {\r\n\t\t\t\t\t\t\t\tonPlay();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('ended', () => {\r\n\t\t\t\t\t\t\t\tonEnd();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.play = () => {\r\n\t\t\t\t\tthis.player.play();\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/MP4Video.js\r\n\t\t/// <reference path=\"../window.d.ts\" />\r\n\r\n\t\tclass MP4Video extends VideoBase {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tsuper(...args);\r\n\r\n\t\t\t\tthis._load = () => {\r\n\t\t\t\t\treturn new Promise(resolve => {\r\n\t\t\t\t\t\twindow.Shopify.loadFeatures([{\r\n\t\t\t\t\t\t\tname: 'video-ui',\r\n\t\t\t\t\t\t\tversion: '1.0',\r\n\t\t\t\t\t\t\tonLoad: function () {\r\n\t\t\t\t\t\t\t\tresolve(window.Shopify.Plyr);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}]);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.init = ({\r\n\t\t\t\t\tautoplay,\r\n\t\t\t\t\thideControls,\r\n\t\t\t\t\turl,\r\n\t\t\t\t\tmute,\r\n\t\t\t\t\tloop,\r\n\t\t\t\t\tonPlay,\r\n\t\t\t\t\tonPause,\r\n\t\t\t\t\tonEnd\r\n\t\t\t\t}) => {\r\n\t\t\t\t\tautoplay = this.getAutoplay(autoplay);\r\n\t\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tthis._load().then(Plyr => {\r\n\t\t\t\t\t\t\tthis.player = new Plyr(this.element, {\r\n\t\t\t\t\t\t\t\tloop: {\r\n\t\t\t\t\t\t\t\t\tactive: loop\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tautoplay: autoplay,\r\n\t\t\t\t\t\t\t\tmuted: mute || autoplay ? 1 : 0,\r\n\t\t\t\t\t\t\t\tfullscreen: {\r\n\t\t\t\t\t\t\t\t\tenabled: false\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tfocusOnPlay: false\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('ready', event => {\r\n\t\t\t\t\t\t\t\tthis.player = event.detail.plyr;\r\n\r\n\t\t\t\t\t\t\t\tif (autoplay) {\r\n\t\t\t\t\t\t\t\t\tthis.player.play();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (hideControls) {\r\n\t\t\t\t\t\t\t\t\tthis.player.toggleControls(false);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tresolve();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('playing', () => {\r\n\t\t\t\t\t\t\t\tonPlay();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('pause', () => {\r\n\t\t\t\t\t\t\t\tonPause();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tthis.player.on('ended', () => {\r\n\t\t\t\t\t\t\t\tonEnd();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.play = () => {\r\n\t\t\t\t\tthis.player.play();\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/javascripts/components/Video.vue?vue&type=script&lang=js&\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n\r\n\r\n\r\n\r\n\r\n/* harmony default export */ const Videovue_type_script_lang_js_ = (vue_esm.extend({\r\n\t\t\tprops: {\r\n\t\t\t\ttheme: ThemeBase,\r\n\t\t\t\thero: Boolean,\r\n\t\t\t\tvideoType: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\trequired: true,\r\n\t\t\t\t\tvalidator: function (value) {\r\n\t\t\t\t\t\treturn ['youtube', 'vimeo', 'mp4'].indexOf(value) !== -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\turl: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\trequired: true\r\n\t\t\t\t},\r\n\t\t\t\tautoplay: {\r\n\t\t\t\t\ttype: Boolean,\r\n\t\t\t\t\trequired: true\r\n\t\t\t\t},\r\n\t\t\t\tloop: Boolean,\r\n\t\t\t\tmute: Boolean,\r\n\t\t\t\thideControls: {\r\n\t\t\t\t\ttype: Boolean,\r\n\t\t\t\t\tdefault: false\r\n\t\t\t\t},\r\n\t\t\t\toverlayOpacity: {\r\n\t\t\t\t\ttype: Number,\r\n\t\t\t\t\tdefault: 1\r\n\t\t\t\t},\r\n\t\t\t\tsectionId: {\r\n\t\t\t\t\ttype: String,\r\n\t\t\t\t\tdefault: ''\r\n\t\t\t\t},\r\n\t\t\t\toverlay: Boolean\r\n\t\t\t},\r\n\r\n\t\t\tdata() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t/** @type {import('../global/VideoBase').default} */\r\n\t\t\t\t\tplayer: null,\r\n\t\t\t\t\tisPlaying: false\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\tmounted() {\r\n\t\t\t\tif (this.videoType === 'youtube') {\r\n\t\t\t\t\tthis.player = new Youtube(this.$root.theme, this.$refs.video);\r\n\t\t\t\t} else if (this.videoType === 'vimeo') {\r\n\t\t\t\t\tthis.player = new Vimeo(this.$root.theme, this.$refs.video);\r\n\t\t\t\t} else if (this.videoType === 'mp4') {\r\n\t\t\t\t\tthis.player = new MP4Video(this.$root.theme, this.$refs.videoMP4);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.player.init({\r\n\t\t\t\t\tautoplay: this.autoplay,\r\n\t\t\t\t\thideControls: this.hideControls,\r\n\t\t\t\t\turl: this.url,\r\n\t\t\t\t\tmute: this.mute,\r\n\t\t\t\t\tloop: this.loop,\r\n\t\t\t\t\tonPlay: this.onPlay,\r\n\t\t\t\t\tonPause: this.onPause,\r\n\t\t\t\t\tonEnd: this.onEnd\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tmethods: {\r\n\t\t\t\tonPlay() {\r\n\t\t\t\t\tthis.isPlaying = true;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tonPause() {\r\n\t\t\t\t\tthis.isPlaying = false;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tonEnd() {\r\n\t\t\t\t\tthis.isPlaying = false;\r\n\t\t\t\t},\r\n\r\n\t\t\t\tplay() {\r\n\t\t\t\t\tthis.player.play();\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}));\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Video.vue?vue&type=script&lang=js&\r\n /* harmony default export */ const components_Videovue_type_script_lang_js_ = (Videovue_type_script_lang_js_);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/components/Video.vue\r\n\r\n\r\n\r\n\r\n\r\n\t\t/* normalize component */\r\n\t\t;\r\n\t\tvar Video_component = normalizeComponent(\r\n\t\t\tcomponents_Videovue_type_script_lang_js_,\r\n\t\t\tVideovue_type_template_id_2d87b344_render,\r\n\t\t\tVideovue_type_template_id_2d87b344_staticRenderFns,\r\n\t\t\tfalse,\r\n\t\t\tnull,\r\n\t\t\tnull,\r\n\t\t\tnull\r\n\r\n\t\t)\r\n\r\n\t\t/* hot reload */\r\n\t\tif (false) { var Video_api; }\r\n\t\tVideo_component.options.__file = \"src/javascripts/components/Video.vue\"\r\n/* harmony default export */ const Video = (Video_component.exports);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Login.js\r\n\r\n\t\tclass Login {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tthis.showRecoverPasswordForm = () => {\r\n\t\t\t\t\tthis.$recoverPasswordForm.show();\r\n\t\t\t\t\tthis.$customerLoginForm.hide(); // Now + 10 minutes (in milliseconds).\r\n\r\n\t\t\t\t\tvar expiry = new Date(Date.now() + 10 * 60 * 1000);\r\n\t\t\t\t\tlocalStorage.setItem('resettingPassword', JSON.stringify({\r\n\t\t\t\t\t\texpiry: expiry.toISOString()\r\n\t\t\t\t\t}));\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.hideRecoverPasswordForm = () => {\r\n\t\t\t\t\tthis.$recoverPasswordForm.hide();\r\n\t\t\t\t\tthis.$customerLoginForm.show();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._isLocalStorageSupported = () => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\treturn typeof Storage != \"undefined\" && window.localStorage && window.sessionStorage ? true : false;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.theme = theme;\r\n\t\t\t\tthis.element = element;\r\n\t\t\t\tthis.$element = jquery_default()(element);\r\n\t\t\t\tthis.$recoverPasswordForm = this.$element.find('#RecoverPasswordForm');\r\n\t\t\t\tthis.$customerLoginForm = this.$element.find('#CustomerLoginForm');\r\n\t\t\t\tthis.$recoverPasswordLink = this.$element.find('#RecoverPassword');\r\n\t\t\t\tthis.$hideRecoverPasswordLink = this.$element.find('#HideRecoverPasswordLink');\r\n\t\t\t\tthis.hasLocalStorage = this._isLocalStorageSupported();\r\n\t\t\t\tthis.$recoverPasswordLink.on('click', evt => {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tthis.showRecoverPasswordForm();\r\n\t\t\t\t});\r\n\t\t\t\tthis.$hideRecoverPasswordLink.on('click', evt => {\r\n\t\t\t\t\tevt.preventDefault();\r\n\t\t\t\t\tthis.hideRecoverPasswordForm();\r\n\r\n\t\t\t\t\tif (this.hasLocalStorage) {\r\n\t\t\t\t\t\twindow.localStorage.removeItem('resettingPassword');\r\n\t\t\t\t\t}\r\n\t\t\t\t}); // Allow deep linking to recover password form\r\n\r\n\t\t\t\tif (window.location.hash === '#recover') {\r\n\t\t\t\t\tthis.showRecoverPasswordForm();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar isResettingPassword = null;\r\n\r\n\t\t\t\tif (this.hasLocalStorage) {\r\n\t\t\t\t\tisResettingPassword = window.localStorage.getItem('resettingPassword');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isResettingPassword) {\r\n\t\t\t\t\tvar isError = document.querySelector('#RecoverPasswordForm .errors');\r\n\r\n\t\t\t\t\tif (isError) {\r\n\t\t\t\t\t\tjquery_default()('#ResetSuccess').hide();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// The password reset email has been sent. Display information.\r\n\t\t\t\t\t\tjquery_default()('#ResetSuccess').show();\r\n\r\n\t\t\t\t\t\tif (this.hasLocalStorage) {\r\n\t\t\t\t\t\t\twindow.localStorage.removeItem('resettingPassword');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/RightDrawer.js\r\n\t\tvar RightDrawer_dec, RightDrawer_dec2, RightDrawer_dec3, RightDrawer_dec4, RightDrawer_dec5, RightDrawer_dec6, RightDrawer_dec7, RightDrawer_dec8, RightDrawer_dec9, RightDrawer_dec10, RightDrawer_dec11, RightDrawer_class, RightDrawer_class2, RightDrawer_descriptor, RightDrawer_descriptor2, RightDrawer_descriptor3, RightDrawer_descriptor4, RightDrawer_descriptor5, RightDrawer_descriptor6, RightDrawer_descriptor7, RightDrawer_descriptor8;\r\n\r\n\t\tfunction RightDrawer_initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\r\n\r\n\t\tfunction RightDrawer_applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\r\n\r\n\t\tfunction RightDrawer_initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }\r\n\r\n\r\n\r\n\r\n\r\n\t\t/**\r\n\t\t  * @typedef {Object} SearchGroup\r\n\t\t  * @param {string} name\r\n\t\t  * @param {any[]} results\r\n\t\t  */\r\n\r\n\t\tlet RightDrawer = (RightDrawer_dec = vue_class_component_esm({\r\n\t\t\ttemplate: '#wetheme-right-drawer-template'\r\n\t\t}), RightDrawer_dec2 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), RightDrawer_dec3 = Prop({\r\n\t\t\trequired: true\r\n\t\t}), RightDrawer_dec4 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec5 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec6 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec7 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec8 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec9 = Prop({\r\n\t\t\trequired: false\r\n\t\t}), RightDrawer_dec10 = Watch('giftNote'), RightDrawer_dec11 = Watch('searchQuery'), RightDrawer_dec(RightDrawer_class = (RightDrawer_class2 = class RightDrawer extends vue_esm {\r\n\t\t\tconstructor(...args) {\r\n\t\t\t\tsuper(...args);\r\n\t\t\t\tthis.isOpen = false;\r\n\t\t\t\tthis.type = 'cart';\r\n\t\t\t\tthis.cart = null;\r\n\t\t\t\tthis.lineQuantityUpdating = null;\r\n\t\t\t\tthis.quickShopProductUrl = null;\r\n\t\t\t\tthis.quickShopContent = '';\r\n\t\t\t\tthis.searching = false;\r\n\t\t\t\tthis.searchQuery = '';\r\n\t\t\t\tthis.searchGroups = [];\r\n\t\t\t\tthis.searchChangeTimer = null;\r\n\t\t\t\tthis.searchSummary = '';\r\n\t\t\t\tthis.searchHasResults = false;\r\n\t\t\t\tthis.searchResultsNum = 0;\r\n\t\t\t\tthis.searchTypesNum = 0;\r\n\t\t\t\tthis.giftNote = '';\r\n\t\t\t\tthis.updatingGiftNote = false;\r\n\t\t\t\t// Hardcoded DN Discount Codes\r\n\t\t\t\tthis.discountCodes = {\r\n\t\t\t\t\t'WTKR6': 'TRAVEL',\r\n\t\t\t\t\t'IWJKK': 'MINI',\r\n\t\t\t\t\t'D5PQE': 'VITAMIN',\r\n\t\t\t\t\t'5EHPL': 'PURE',\r\n\t\t\t\t\t'TEMTO': 'NTFREE',\r\n\t\t\t\t\t'WGFZ': 'NTFREE',\r\n\t\t\t\t\t'N38QE': 'GRATITUDE24',\r\n\t\t\t\t\t'WW9S0': 'DELUXE',\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Cart update debouncing\r\n\t\t\t\tthis.cartUpdateTimeout = null;\r\n\t\t\t\tthis.hasShownNonEmptyCart = false;\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"searchUrl\", RightDrawer_descriptor, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"loginUrl\", RightDrawer_descriptor2, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"isPredictive\", RightDrawer_descriptor3, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"searchProducts\", RightDrawer_descriptor4, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"searchPages\", RightDrawer_descriptor5, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"searchArticles\", RightDrawer_descriptor6, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"searchCollections\", RightDrawer_descriptor7, this);\r\n\r\n\t\t\t\tRightDrawer_initializerDefineProperty(this, \"languageUrl\", RightDrawer_descriptor8, this);\r\n\t\t\t}\r\n\r\n\t\t\tdata() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisOpen: false,\r\n\t\t\t\t\ttype: 'cart',\r\n\t\t\t\t\tcart: null,\r\n\t\t\t\t\tlineQuantityUpdating: null,\r\n\t\t\t\t\tquickShopProductUrl: null,\r\n\t\t\t\t\tquickShopContent: '',\r\n\t\t\t\t\tsearchQuery: '',\r\n\t\t\t\t\tsearchResults: [],\r\n\t\t\t\t\tgiftNote: ''\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tonGiftNoteChange() {\r\n\t\t\t\tif (this.giftNoteChangeTimer) {\r\n\t\t\t\t\twindow.clearTimeout(this.giftNoteChangeTimer);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.giftNoteChangeTimer = window.setTimeout(() => {\r\n\t\t\t\t\tthis.updatingGiftNote = true;\r\n\t\t\t\t\tthis.updateGiftNote();\r\n\t\t\t\t\tthis.giftNoteChangeTimer = null;\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\r\n\t\t\tonSearchChange() {\r\n\t\t\t\tif (this.isSearchPredictive) {\r\n\t\t\t\t\tif (this.searchQuery > '') {\r\n\t\t\t\t\t\tif (this.searchChangeTimer) {\r\n\t\t\t\t\t\t\twindow.clearTimeout(this.searchChangeTimer);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.searchChangeTimer = window.setTimeout(() => {\r\n\t\t\t\t\t\t\tthis.performSearch();\r\n\t\t\t\t\t\t\tthis.searchChangeTimer = null;\r\n\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.searchResultsNum = 0;\r\n\t\t\t\t\t\tthis.searchHasResults = false;\r\n\t\t\t\t\t\tthis.searchGroups = [];\r\n\t\t\t\t\t\tthis.searching = false;\r\n\t\t\t\t\t\tthis.searchSummary = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/** @returns {import('../ThemeBase').default} */\r\n\r\n\r\n\t\t\tget theme() {\r\n\t\t\t\t// @ts-ignore\r\n\t\t\t\treturn this.$root.theme;\r\n\t\t\t}\r\n\r\n\t\t\tmounted() {\r\n\t\t\t\tdocument.documentElement.addEventListener(TOGGLE_RIGHT_DRAWER_EVENT, this.handleToggle);\r\n\t\t\t\t\r\n\t\t\t\tthis.$watch(\r\n\t\t\t\t\t'cart',\r\n\t\t\t\t\t(newVal) => {\r\n\t\t\t\t\t\tconsole.log('Cart changed:', newVal);\r\n\r\n\t\t\t\t\t\t// If cart now has items, mark it and cancel any pending empty cart timeout\r\n\t\t\t\t\t\tif (newVal && newVal.items && newVal.items.length > 0) {\r\n\t\t\t\t\t\t\tthis.hasShownNonEmptyCart = true;\r\n\t\t\t\t\t\t\tif (this.cartUpdateTimeout) {\r\n\t\t\t\t\t\t\t\tclearTimeout(this.cartUpdateTimeout);\r\n\t\t\t\t\t\t\t\tthis.cartUpdateTimeout = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Run UI correction after DOM updates\r\n\t\t\t\t\t\tthis.$nextTick(async () => {\r\n\t\t\t\t\t\t\tthis.theme.updateCartDrawer(newVal);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t\tdocument.documentElement.addEventListener(SYNC_CART, this.fetchCart);\r\n\t\t\t}\r\n\r\n\t\t\tbeforeDestroy() {\r\n\t\t\t\tdocument.documentElement.removeEventListener(TOGGLE_RIGHT_DRAWER_EVENT, this.handleToggle);\r\n\t\t\t}\r\n\r\n\t\t\thandleToggle(event) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\tforceOpen,\r\n\t\t\t\t\tparams\r\n\t\t\t\t} = event.detail;\r\n\r\n\t\t\t\tif (params) {\r\n\t\t\t\t\tif (params.url) {\r\n\t\t\t\t\t\tconst url = params.url;\r\n\r\n\t\t\t\t\t\tif (this.quickShopProductUrl !== url) {\r\n\t\t\t\t\t\t\tthis.fetchProductPage(url);\r\n\t\t\t\t\t\t\tthis.quickShopProductId = url;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (params.cart) {\r\n\t\t\t\t\t\tthis.cart = params.cart; // Populate gift note if it exists\r\n\r\n\t\t\t\t\t\tif (params.cart.attributes.gift_note) {\r\n\t\t\t\t\t\t\tthis.giftNote = params.cart.attributes.gift_note;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.theme.updateCartDrawer(params.cart);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (type === 'login') {\r\n\t\t\t\t\tthis.fetchLoginPage();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.toggle(type, forceOpen);\r\n\t\t\t}\r\n\r\n\t\t\tclose() {\r\n\t\t\t\tdocument.body.classList.remove('js-drawer-open');\r\n\t\t\t\tdocument.body.classList.remove('js-drawer-open-right');\r\n\t\t\t\tthis.isOpen = false;\r\n\t\t\t}\r\n\r\n\t\t\topen() {\r\n\t\t\t\tthis.setSubtotal();\r\n\t\t\t\tdocument.body.classList.add('js-drawer-open');\r\n\t\t\t\tdocument.body.classList.add('js-drawer-open-right');\r\n\t\t\t\tthis.isOpen = true;\r\n\r\n\t\t\t\tif (this.type === 'cart' && this.cart === null) {\r\n\t\t\t\t\tthis.fetchCart();\r\n\t\t\t\t\tthis.$nextTick(() => this.$refs.drawerClose && this.$refs.drawerClose.focus());\r\n\t\t\t\t} else if (this.type === 'login') {\r\n\t\t\t\t\tthis.$nextTick(() => this.$refs.drawerFocus.focus());\r\n\t\t\t\t} else if (this.type === 'search') {\r\n\t\t\t\t\tthis.$nextTick(() => this.$refs.searchText.focus());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttoggle(type, forceOpen = undefined) {\r\n\t\t\t\tif (forceOpen === true) {\r\n\t\t\t\t\tthis.type = type;\r\n\t\t\t\t\tthis.open();\r\n\t\t\t\t} else if (forceOpen === false) {\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t} else if (forceOpen === 'maintain') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else if (this.isOpen) {\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.type = type;\r\n\t\t\t\t\tthis.open();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tasync fetchCart() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst response = await fetch(window.Shopify.routes.root + 'cart.js')\r\n\t\t\t\t\t\t.then(response => {\r\n\t\t\t\t\t\t\treturn response.json();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst cart = await response;\r\n\t\t\t\t\tthis.cart = cart; // Populate gift note if it exists\r\n\r\n\t\t\t\t\tif (cart.attributes.gift_note) {\r\n\t\t\t\t\t\tthis.giftNote = cart.attributes.gift_note;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.theme.updateCartDrawer(this.cart);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error('Unable to fetch cart: ', e); // FIXME error handling\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsetSubtotal() {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t//Show the sum of all the line item compare at prices before the subtotal in the drawer\r\n\t\t\t\t\tlet priceNoDiscount = document.querySelectorAll('.price-no--discount');\r\n\t\t\t\t\tlet lineItemPrices = document.querySelectorAll('.has--discount');\r\n\t\t\t\t\tlet lineItemComparePrices = document.querySelectorAll('.line-item__compare-at-price');\r\n\t\t\t\t\tlet copmarePriceDiv = document.querySelector('.line__compare_price');\r\n\t\t\t\t\tlet cartTotal =\r\n\t\t\t\t\t\t/** @type {HTMLElement} */\r\n\t\t\t\t\t\tdocument.querySelector('.cart__total');\r\n\t\t\t\t\tlet cartTotalAmt = 0;\r\n\t\t\t\t\tif (cartTotal) cartTotalAmt = parseFloat(cartTotal.innerHTML);\r\n\t\t\t\t\tlet totalWithDiscount;\r\n\t\t\t\t\tif (!lineItemComparePrices || !lineItemPrices) return;\r\n\r\n\t\t\t\t\tif (lineItemComparePrices.length > 0 && lineItemPrices.length > 0) {\r\n\t\t\t\t\t\t//Get the sum of all compare at prices\r\n\t\t\t\t\t\tlet total = 0;\r\n\t\t\t\t\t\tlet compareSubtotal;\r\n\r\n\t\t\t\t\t\tfor (let num = 0; num < lineItemComparePrices.length; num++) {\r\n\t\t\t\t\t\t\tconst currentPrice = lineItemComparePrices[num];\r\n\t\t\t\t\t\t\ttotal += parseFloat(currentPrice.innerText);\r\n\t\t\t\t\t\t\tcompareSubtotal = total;\r\n\t\t\t\t\t\t} //Get the sum of discount prices\r\n\r\n\r\n\t\t\t\t\t\tlet count = 0;\r\n\t\t\t\t\t\tlet finalPriceTotal;\r\n\r\n\t\t\t\t\t\tfor (let amount = 0; amount < lineItemPrices.length; amount++) {\r\n\t\t\t\t\t\t\tconst currentTotalPrice = lineItemPrices[amount];\r\n\t\t\t\t\t\t\tcount += parseFloat(currentTotalPrice.innerText);\r\n\t\t\t\t\t\t\tfinalPriceTotal = count;\r\n\t\t\t\t\t\t} //Get the sum of all line items that don't have discounts\r\n\r\n\r\n\t\t\t\t\t\tlet price = 0;\r\n\t\t\t\t\t\tlet totalPrice;\r\n\r\n\t\t\t\t\t\tfor (let amt = 0; amt < priceNoDiscount.length; amt++) {\r\n\t\t\t\t\t\t\tconst currFinalPrice = priceNoDiscount[amt];\r\n\t\t\t\t\t\t\tprice += parseFloat(currFinalPrice.innerText);\r\n\t\t\t\t\t\t\ttotalPrice = price;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (totalPrice > 0) {\r\n\t\t\t\t\t\t\ttotalWithDiscount = compareSubtotal + totalPrice;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttotalWithDiscount = compareSubtotal;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (copmarePriceDiv) {\r\n\t\t\t\t\t\t\tcopmarePriceDiv.innerHTML = this.wetheme.formatMoney(totalWithDiscount);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet discountPercentage = document.querySelector('.cart-compare-price--with-value.percentage');\r\n\t\t\t\t\t\tlet discountValue = document.querySelector('.cart-compare-price--with-value.value');\r\n\r\n\t\t\t\t\t\tif (totalWithDiscount > finalPriceTotal) {\r\n\t\t\t\t\t\t\tif (discountPercentage) {\r\n\t\t\t\t\t\t\t\tdiscountPercentage.innerHTML = ' ' + '-' + Math.round((totalWithDiscount - cartTotalAmt) / totalWithDiscount * 100) + '%';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (discountValue) {\r\n\t\t\t\t\t\t\t\tdiscountValue.innerHTML = ' ' + '-' + this.wetheme.formatMoney(totalWithDiscount - cartTotalAmt);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 1500);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Fetch product page to show as quick shop drawer\r\n\t\t\t *\r\n\t\t\t * @param {string} url\r\n\t\t\t */\r\n\r\n\r\n\t\t\tasync fetchProductPage(url) {\r\n\t\t\t\tconst response = await window.fetch(url);\r\n\t\t\t\tconst parser = new DOMParser();\r\n\t\t\t\tconst parsedDocument = parser.parseFromString(await response.text(), 'text/html');\r\n\t\t\t\tconst fetchedProductDiv = parsedDocument.querySelector('[data-wetheme-section-type=\"template--product\"]');\r\n\t\t\t\tconst targetContainer = this.$refs.shopNowContent;\r\n\r\n\t\t\t\t/** The product section's video player (Plyr / model-viewer) styles are loaded as\r\n\t\t\t\t   <link> tags that sit OUTSIDE the [data-wetheme-section-type] wrapper, so they get\r\n\t\t\t\t   dropped when we extract just that div. On non-product pages (e.g. the subscription\r\n\t\t\t\t   landing) these stylesheets are never in <head>, leaving the drawer's video controls\r\n\t\t\t\t   unstyled (giant raw buttons). Carry them over once. (DO-2981) */\r\n\t\t\t\tparsedDocument.querySelectorAll('link[rel=\"stylesheet\"][href*=\"plyr\"], link[rel=\"stylesheet\"][href*=\"model-viewer\"]').forEach(link => {\r\n\t\t\t\t\tconst assetName = (link.getAttribute('href') || '').split('?')[0].split('/').pop();\r\n\t\t\t\t\tif (assetName && !document.head.querySelector(`link[href*=\"${assetName}\"]`)) {\r\n\t\t\t\t\t\tdocument.head.appendChild(link.cloneNode(true));\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tconst productDivClone = fetchedProductDiv.cloneNode(true);\r\n\t\t\t\tconst subscriptionSelectors = [\r\n\t\t\t\t\t'[data-recharge-subscription]',\r\n\t\t\t\t\t'[class*=\"recharge\"]',\r\n\t\t\t\t\t'[id*=\"recharge\"]',\r\n\t\t\t\t\t'recharge-subscription-widget',         // custom element tag\r\n\t\t\t\t\t'[data-subscription-widget]',\r\n\t\t\t\t\t'.subscription-component',\r\n\t\t\t\t\t'[class*=\"subscription-component\"]',\r\n\t\t\t\t\t'#app',                                  // catches generic Vue/React app containers\r\n\t\t\t\t\t'[data-app-container]',\r\n\t\t\t\t];\r\n\t\t\t\tproductDivClone.querySelectorAll(subscriptionSelectors.join(',')).forEach(el => el.remove());\r\n\r\n\t\t\t\ttargetContainer.appendChild(productDivClone);\r\n\r\n\t\t\t\tnew FeaturedProduct(\r\n\t\t\t\t\tthis.theme,\r\n\t\t\t\t\ttargetContainer.querySelector('[data-wetheme-section-type=\"template--product\"]'),\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\t{ slidesPerView: 1 }\r\n\t\t\t\t);\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (window.Shopify && window.Shopify.PaymentButton) {\r\n\t\t\t\t\t\twindow.Shopify.PaymentButton.init();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 1250);\r\n\r\n\t\t\t\tthis.initializeCustomLogic(targetContainer);\r\n\t\t\t}\r\n\r\n\t\t\tinitializeCustomLogic(productTarget) {\r\n\t\t\t\tconst checkVariantContainerDisplay = () => {\r\n\t\t\t\t\tconst variantContainer = productTarget.querySelector('#variantSelectContainer');\r\n\t\t\t\t\tif (!variantContainer) return;\r\n\r\n\t\t\t\t\tconst variantDisplayStyle = window.getComputedStyle(variantContainer).display;\r\n\t\t\t\t\tif (variantDisplayStyle === 'block') {\r\n\t\t\t\t\t\tupdateProductPricing();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst updateProductPricing = () => {\r\n\t\t\t\t\tconst priceElement = productTarget.querySelector('#ProductPrice span');\r\n\t\t\t\t\tif (!priceElement) return;\r\n\r\n\t\t\t\t\tconst basePrice = priceElement.textContent.trim();\r\n\r\n\t\t\t\t\tconst updateDisplayedPrice = () => {\r\n\t\t\t\t\t\tconst selectedPurchaseOption = productTarget.querySelector('#variantSelectContainer input[name=\"purchaseOption\"]:checked');\r\n\t\t\t\t\t\tif (!selectedPurchaseOption) return;\r\n\r\n\t\t\t\t\t\tlet finalPrice = basePrice;\r\n\r\n\t\t\t\t\t\tif (selectedPurchaseOption.value === 'subscription') {\r\n\t\t\t\t\t\t\tconst subscriptionPriceElement = productTarget.querySelector('.rc-radio__price');\r\n\t\t\t\t\t\t\tif (subscriptionPriceElement && subscriptionPriceElement.textContent.trim()) {\r\n\t\t\t\t\t\t\t\tfinalPrice = subscriptionPriceElement.textContent.trim();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfinalPrice = basePrice;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tpriceElement.textContent = finalPrice;\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tconst purchaseOptions = productTarget.querySelectorAll('#variantSelectContainer input[name=\"purchaseOption\"]');\r\n\t\t\t\t\tpurchaseOptions.forEach((option) => {\r\n\t\t\t\t\t\toption.addEventListener('change', updateDisplayedPrice);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst swatchOptions = productTarget.querySelectorAll('.swatch-items-wrapper input[type=\"radio\"]');\r\n\t\t\t\t\tswatchOptions.forEach((swatch) => {\r\n\t\t\t\t\t\tswatch.addEventListener('change', () => {\r\n\t\t\t\t\t\t\tupdateDisplayedPrice();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tupdateDisplayedPrice();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tcheckVariantContainerDisplay();\r\n\r\n\t\t\t\tconst variantContainerObserverTarget = productTarget.querySelector('#variantSelectContainer');\r\n\t\t\t\tif (variantContainerObserverTarget) {\r\n\t\t\t\t\tconst variantContainerObserver = new MutationObserver(() => {\r\n\t\t\t\t\t\tcheckVariantContainerDisplay();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvariantContainerObserver.observe(variantContainerObserverTarget, {\r\n\t\t\t\t\t\tattributes: true,\r\n\t\t\t\t\t\tattributeFilter: ['style']\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tasync fetchLoginPage() {\r\n\t\t\t\tconst response = await window.fetch(this.loginUrl);\r\n\t\t\t\tconst parser = new DOMParser();\r\n\t\t\t\tconst doc = parser.parseFromString(await response.text(), 'text/html');\r\n\t\t\t\tconst loginDiv = doc.querySelector('.main-content');\r\n\t\t\t\tloginDiv.querySelector('.login-form-cancel').remove();\r\n\t\t\t\tloginDiv.querySelector('.sitewide--title-wrapper').remove();\r\n\t\t\t\tconst target = this.$refs.loginContent;\r\n\t\t\t\ttarget.appendChild(loginDiv);\r\n\t\t\t\tthis.loginPage = new Login(this.theme, target);\r\n\t\t\t}\r\n\r\n\t\t\tnumDifference(a, b) {\r\n\t\t\t\tif (a > b) {\r\n\t\t\t\t\treturn a - b;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn b - a;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tget isGiftwrapEnabled() {\r\n\t\t\t\treturn this.theme.giftwrapProduct && this.theme.giftwrapEnabled;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Is a given Product object the selected giftwrap product?\r\n\t\t\t *\r\n\t\t\t * @param {object} item\r\n\t\t\t */\r\n\r\n\r\n\t\t\tisGiftwrapProduct(item) {\r\n\t\t\t\tif (!this.isGiftwrapEnabled) return false;\r\n\t\t\t\treturn item.handle == this.theme.giftwrapProduct;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Remove giftwrap product when another product is removed\r\n\t\t\t *\r\n\t\t\t * @param {number} key key of the item\r\n\t\t\t * @param {number} quantity new quantity\r\n\t\t\t */\r\n\r\n\r\n\t\t\tasync updateGiftwrap(key, quantity) {\r\n\t\t\t\tconst thisProduct = this.cart.items.find((item) => item.key == key);\r\n\t\t\t\tif (!this.isGiftwrapEnabled) return key;\r\n\r\n\t\t\t\tif (thisProduct.properties) {\r\n\t\t\t\t\tif (this.theme.translations.giftwrap_label in thisProduct.properties) {\r\n\t\t\t\t\t\t// Find position of gift wrap item in the cart. Note this will break\r\n\t\t\t\t\t\t// if you ever add additional properties to the gift wrap product\r\n\t\t\t\t\t\t// such that it splits that product into > 1 cart line items.\r\n\t\t\t\t\t\tconst giftwrapIndex = this.cart.items.map(e => e.handle).indexOf(this.theme.giftwrapProduct); // Continue only if gift wrap product is in the cart\r\n\r\n\t\t\t\t\t\tif (giftwrapIndex > -1) {\r\n\t\t\t\t\t\t\tlet difference = this.numDifference(thisProduct.quantity, quantity); // Quantity = quantity of current gift wrap product minus the quantity\r\n\t\t\t\t\t\t\t// of the product being removed. There could be gift wrap for other\r\n\t\t\t\t\t\t\t// items.\r\n\r\n\t\t\t\t\t\t\tlet newGiftwrapQuantity = 0;\r\n\r\n\t\t\t\t\t\t\tif (quantity > thisProduct.quantity) {\r\n\t\t\t\t\t\t\t\tnewGiftwrapQuantity = this.cart.items[giftwrapIndex].quantity + difference;\r\n\t\t\t\t\t\t\t} else if (quantity == 0) {\r\n\t\t\t\t\t\t\t\t// If new quantity is zero, the associated product is being removed.\r\n\t\t\t\t\t\t\t\tnewGiftwrapQuantity = this.cart.items[giftwrapIndex].quantity - thisProduct.quantity;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tnewGiftwrapQuantity = this.cart.items[giftwrapIndex].quantity - difference;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconst response = await window.fetch('/cart/change.js', {\r\n\t\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\t\t\t\t\t'key': thisProduct.key,\r\n\t\t\t\t\t\t\t\t\t'quantity': newGiftwrapQuantity\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (newGiftwrapQuantity == 0 && key) return key;\r\n\t\t\t\t\t\t\treturn key;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn key;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn key;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * Update quantity of an item in cart\r\n\t\t\t *\r\n\t\t\t * @param {number} key key of the item to update\r\n\t\t\t * @param {number} quantity new quantity\r\n\t\t\t */\r\n\r\n\t\t\t// Unified quantity update \u2014 relies on cart-queue.js for serialization.\r\n\t\t\t// No internal queue or processing flag (those caused stuck-cart bugs when\r\n\t\t\t// the underlying fetch was slow or aborted; subsequent clicks then never\r\n\t\t\t// fired). cart-queue.js serializes mutations and coalesces GETs.\r\n\t\t\t// Retains retry-with-fresh-keys for Shopify-side line-item key shifts.\r\n\t\t\t\tasync setQuantity(key, quantity) {\r\n\t\t\t\t// Stable identifiers captured at click time \u2014 line item keys can shift\r\n\t\t\t\t// server-side between calls, so we look the item up by these on each retry.\r\n\t\t\t\tconst item = this.cart?.items?.find(i => i.key === key);\r\n\t\t\t\tif (!item) return;\r\n\r\n\t\t\t\tconst variant_id = item.variant_id;\r\n\t\t\t\tconst selling_plan_id = item.selling_plan_allocation?.selling_plan?.id || null;\r\n\t\t\t\tconst properties = item.properties || {};\r\n\r\n\t\t\t\tconst findItemInCart = (cart) => cart?.items?.find(it => {\r\n\t\t\t\t\tif (it.variant_id !== variant_id) return false;\r\n\t\t\t\t\tconst itSpId = it.selling_plan_allocation?.selling_plan?.id || null;\r\n\t\t\t\t\tif (itSpId !== selling_plan_id) return false;\r\n\t\t\t\t\tconst itProps = it.properties || {};\r\n\t\t\t\t\tconst ipKeys = Object.keys(itProps).sort();\r\n\t\t\t\t\tconst rpKeys = Object.keys(properties).sort();\r\n\t\t\t\t\tif (ipKeys.length !== rpKeys.length) return false;\r\n\t\t\t\t\treturn ipKeys.every(k => itProps[k] === properties[k]);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfor (let attempt = 1; attempt <= 3; attempt++) {\r\n\t\t\t\t\t// Fetch fresh cart for current keys (coalesced by cart-queue with any\r\n\t\t\t\t\t// concurrent reads, so this is cheap when other components also poll).\r\n\t\t\t\t\tlet freshCart;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst r = await fetch(window.Shopify.routes.root + 'cart.js');\r\n\t\t\t\t\t\tfreshCart = await r.json();\r\n\t\t\t\t\t} catch {\r\n\t\t\t\t\t\tfreshCart = this.cart;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst currentItem = findItemInCart(freshCart);\r\n\t\t\t\t\tif (!currentItem) return; // already removed by something else\r\n\r\n\t\t\t\t\tlet response = null;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tconst r = await fetch(window.Shopify.routes.root + 'cart/change.js', {\r\n\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\t\t\t\t\tbody: JSON.stringify({ id: currentItem.key, quantity })\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tresponse = await r.json();\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\treturn; // network error \u2014 bail\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!response) return;\r\n\r\n\t\t\t\t\t// Stale key \u2014 retry with a fresh fetch\r\n\t\t\t\t\tif (response.status === 'bad_request' || response.status === 400) {\r\n\t\t\t\t\t\tif (attempt < 3) {\r\n\t\t\t\t\t\t\tawait new Promise(r => setTimeout(r, 500));\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Success \u2014 change.js response IS the updated cart, use it directly.\r\n\t\t\t\t\tif (response.items && Array.isArray(response.items)) {\r\n\t\t\t\t\t\tthis.cart = response;\r\n\t\t\t\t\t\t// Keep the Cart-class state in sync too \u2014 downstream consumers\r\n\t\t\t\t\t\t// (CartDiscount.autoApplyYProduct, getDiscountCodes, etc.) read from\r\n\t\t\t\t\t\t// window.cart.cartData; if we don't refresh it, they see stale data.\r\n\t\t\t\t\t\tif (window.cart?.setData) {\r\n\t\t\t\t\t\t\twindow.cart.setData(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Sync the drawer UI through the wetheme API. `this.cart = response`\r\n\t\t\t\t\t\t// alone fires the Vue watcher (which logs), but the drawer rendering\r\n\t\t\t\t\t\t// is owned by wetheme \u2014 needs to be told explicitly.\r\n\t\t\t\t\t\tif (window.wetheme?.updateCartDrawer) {\r\n\t\t\t\t\t\t\twindow.wetheme.updateCartDrawer(response);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (window.wetheme?.toggleRightDrawer) {\r\n\t\t\t\t\t\t\twindow.wetheme.toggleRightDrawer(\"cart\", \"maintain\", { cart: response });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// Dispatch wetheme-cart-update so listeners (including\r\n\t\t\t\t\t\t// CartDiscount.autoApplyYProduct) re-evaluate BXGY state. Critical\r\n\t\t\t\t\t\t// for the \"remove X \u2192 remove Y\" cascade.\r\n\t\t\t\t\t\tif (window.cart?.dispatchCartUpdate) {\r\n\t\t\t\t\t\t\twindow.cart.dispatchCartUpdate(response, \"setQuantity\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdocument.documentElement.dispatchEvent(new CustomEvent(\"NT-CART-updated\", {\r\n\t\t\t\t\t\t\tdetail: { cart: response }\r\n\t\t\t\t\t\t}));\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn; // other error\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\r\n\t\t\tonSearchSubmit() {\r\n\t\t\t\twindow.location.href = this.searchPageUrlWithQuery;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tclearSearchInput() {\r\n\t\t\t\tthis.searchQuery = '';\r\n\t\t\t\tthis.$refs.searchText.focus();\r\n\t\t\t}\r\n\r\n\t\t\tget isSearchPredictive() {\r\n\t\t\t\treturn this.isPredictive == 'true';\r\n\t\t\t}\r\n\r\n\t\t\tget searchTypesString() {\r\n\t\t\t\tvar searchTypes = [];\r\n\t\t\t\tif (this.searchProducts != \"false\") searchTypes.push('product');\r\n\t\t\t\tif (this.searchArticles !== \"false\") searchTypes.push('article');\r\n\t\t\t\tif (this.searchPages !== \"false\") searchTypes.push('page');\r\n\t\t\t\tif (this.searchCollections !== \"false\") searchTypes.push('collection');\r\n\t\t\t\tthis.searchTypesNum = searchTypes.length;\r\n\t\t\t\treturn searchTypes.join();\r\n\t\t\t}\r\n\r\n\t\t\tget searchUrlWithQuery() {\r\n\t\t\t\tif (this.isSearchPredictive) {\r\n\t\t\t\t\treturn `${this.searchUrl}?q=${encodeURIComponent(this.searchQuery)}&resources[type]=${this.searchTypesString}`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn `/search?type=${this.searchTypesString}&q=${encodeURIComponent(this.searchQuery)}`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tget searchPageUrlWithQuery() {\r\n\t\t\t\treturn `/search?type=${this.searchTypesString}&q=${encodeURIComponent(this.searchQuery)}*`;\r\n\t\t\t}\r\n\r\n\t\t\tasync performSearch() {\r\n\t\t\t\tthis.searching = true;\r\n\t\t\t\tthis.searchHasResults = false;\r\n\t\t\t\tthis.searchResultsNum = 0;\r\n\t\t\t\tthis.searchSummary = '';\r\n\t\t\t\tlet data;\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst response = await fetch(`${this.searchUrlWithQuery}`);\r\n\r\n\t\t\t\t\tif (!response.ok) {// FIXME handle error\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdata = await response.json();\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error(\"Search failed\", e); // We'll redirect the user to /search page when search fails (for whatever reason)\r\n\r\n\t\t\t\t\twindow.location.href = this.searchPageUrlWithQuery;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst resultGroups = new Map(); // Loop over groups e.g. Products / Pages / Articles / Collections\r\n\r\n\t\t\t\tObject.keys(data.resources.results).forEach(resultType => {\r\n\t\t\t\t\tlet group = resultGroups.get(resultType);\r\n\t\t\t\t\tlet result = data.resources.results[resultType];\r\n\r\n\t\t\t\t\tif (!group) {\r\n\t\t\t\t\t\tgroup = {\r\n\t\t\t\t\t\t\tname: {\r\n\t\t\t\t\t\t\t\t'articles': this.theme.translations.articles,\r\n\t\t\t\t\t\t\t\t'pages': this.theme.translations.pages,\r\n\t\t\t\t\t\t\t\t'products': this.theme.translations.products,\r\n\t\t\t\t\t\t\t\t'collections': this.theme.translations.collections\r\n\t\t\t\t\t\t\t}[resultType],\r\n\t\t\t\t\t\t\tresults: []\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tresultGroups.set(resultType, group);\r\n\t\t\t\t\t} // Format price.\r\n\r\n\r\n\t\t\t\t\tlet resultWithPrice = result.map(item => {\r\n\t\t\t\t\t\tvar temp = Object.assign({}, item);\r\n\r\n\t\t\t\t\t\tif (temp.price) {\r\n\t\t\t\t\t\t\ttemp.price = this.theme.formatMoney(temp.price);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn temp;\r\n\t\t\t\t\t}); // If there is more than 1 search type/group, restrict results to sensible amount.\r\n\r\n\t\t\t\t\tlet groupMax = 1;\r\n\t\t\t\t\tif (this.searchTypesNum == 1) groupMax = 4; else if (this.searchTypesNum == 2) groupMax = 3; else if (this.searchTypesNum == 3) groupMax = 2;\r\n\t\t\t\t\tgroup.results = resultWithPrice.slice(0, groupMax);\r\n\r\n\t\t\t\t\tif (group.results && group.results.length > 0) {\r\n\t\t\t\t\t\tthis.searchResultsNum += result.length;\r\n\t\t\t\t\t\tthis.searchHasResults = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!this.searchHasResults && this.searchQuery > '') {\r\n\t\t\t\t\tthis.searchSummary = this.theme.translations.no_results_html.replace('{{ terms }}', this.searchQuery);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.searching = false;\r\n\t\t\t\tthis.searchGroups = Array.from(resultGroups.values());\r\n\t\t\t}\r\n\r\n\t\t\tasync updateGiftNote() {\r\n\t\t\t\tconst response = await window.fetch('/cart/update.js', {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify({\r\n\t\t\t\t\t\tattributes: {\r\n\t\t\t\t\t\t\t'gift_note': this.giftNote\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!response.ok) {\r\n\t\t\t\t\t// FIXME error handling\r\n\t\t\t\t\tconsole.log('Could not update gift note in cart drawer', response);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.updatingGiftNote = false;\r\n\t\t\t}\r\n\r\n\t\t}, (RightDrawer_descriptor = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"searchUrl\", [RightDrawer_dec2], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor2 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"loginUrl\", [RightDrawer_dec3], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor3 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"isPredictive\", [RightDrawer_dec4], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor4 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"searchProducts\", [RightDrawer_dec5], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor5 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"searchPages\", [RightDrawer_dec6], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor6 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"searchArticles\", [RightDrawer_dec7], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor7 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"searchCollections\", [RightDrawer_dec8], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_descriptor8 = RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"languageUrl\", [RightDrawer_dec9], {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: true,\r\n\t\t\twritable: true,\r\n\t\t\tinitializer: null\r\n\t\t}), RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"onGiftNoteChange\", [RightDrawer_dec10], Object.getOwnPropertyDescriptor(RightDrawer_class2.prototype, \"onGiftNoteChange\"), RightDrawer_class2.prototype), RightDrawer_applyDecoratedDescriptor(RightDrawer_class2.prototype, \"onSearchChange\", [RightDrawer_dec11], Object.getOwnPropertyDescriptor(RightDrawer_class2.prototype, \"onSearchChange\"), RightDrawer_class2.prototype)), RightDrawer_class2)) || RightDrawer_class);\r\n/* harmony default export */ const global_RightDrawer = (RightDrawer);\r\n\t\t// EXTERNAL MODULE: ./node_modules/fancybox/dist/js/jquery.fancybox.js\r\n\t\tvar jquery_fancybox = __webpack_require__(506);\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Popup.js\r\n\r\n\r\n\r\n\t\tclass Popup extends Component {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tsuper(theme, element);\r\n\r\n\t\t\t\tthis.isExpiredOrNotSet = () => {\r\n\t\t\t\t\tvar expired = true;\r\n\t\t\t\t\tif (!this.hasLocalStorage) return expired;\r\n\t\t\t\t\tvar popupInfo = window.localStorage.getItem(this.STORAGE_KEY);\r\n\r\n\t\t\t\t\tif (popupInfo) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tvar expiry = Date.parse(JSON.parse(popupInfo).expiry);\r\n\r\n\t\t\t\t\t\t\tif (expiry > Date.now()) {\r\n\t\t\t\t\t\t\t\texpired = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.warn('Unable to read popup expiry date', e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn expired;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.setExpiry = days => {\r\n\t\t\t\t\tvar expiry = new Date(Date.now() + days * 24 * 60 * 60 * 1000);\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tif (this.hasLocalStorage) {\r\n\t\t\t\t\t\t\tlocalStorage.setItem(this.STORAGE_KEY, JSON.stringify({\r\n\t\t\t\t\t\t\t\texpiry: expiry.toISOString()\r\n\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn('Unable to set popup expiry:', e);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResize = ({\r\n\t\t\t\t\twidth\r\n\t\t\t\t}) => {\r\n\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\tvar isFullscreenOpen = (jquery_default()).fancybox.isOpen;\r\n\r\n\t\t\t\t\tif (width < 769) {\r\n\t\t\t\t\t\tif (isFullscreenOpen) {\r\n\t\t\t\t\t\t\t// switch from fullscreen to slide-up\r\n\t\t\t\t\t\t\tjquery_default().fancybox.close();\r\n\t\t\t\t\t\t\tthis.showSlideUp();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (this.element.classList.contains('visible') && this.isFullscreen) {\r\n\t\t\t\t\t\t\tthis.element.classList.remove('visible');\r\n\t\t\t\t\t\t\tthis.showFullscreen();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isFullscreenOpen) {\r\n\t\t\t\t\t\t\tjquery_default().fancybox.reposition();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.show = () => {\r\n\t\t\t\t\tif (this.theme.getWindowWidth() < 769) {\r\n\t\t\t\t\t\tjquery_default().fancybox.close();\r\n\t\t\t\t\t\tthis.showSlideUp();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (this.isFullscreen) {\r\n\t\t\t\t\t\t\tthis.element.classList.remove('visible');\r\n\t\t\t\t\t\t\tthis.showFullscreen();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.showSlideUp();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.showSlideUp = () => {\r\n\t\t\t\t\tdocument.querySelector('#slide-up').removeAttribute(\"style\");\r\n\t\t\t\t\tdocument.querySelector('#popup').classList.add('slide-up');\r\n\t\t\t\t\tdocument.querySelector('#popup').classList.add('visible');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.showFullscreen = () => {\r\n\t\t\t\t\tdocument.querySelector('#popup').classList.add('fullscreen');\r\n\t\t\t\t\tdocument.querySelector('#fullscreen').removeAttribute(\"style\");\r\n\t\t\t\t\tjquery_default().fancybox({\r\n\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\t'autoScale': true,\r\n\t\t\t\t\t\t'transitionIn': 'elastic',\r\n\t\t\t\t\t\t'transitionOut': 'elastic',\r\n\t\t\t\t\t\t'speedIn': 500,\r\n\t\t\t\t\t\t'speedOut': 300,\r\n\t\t\t\t\t\t'autoDimensions': true,\r\n\t\t\t\t\t\t'centerOnScroll': true,\r\n\t\t\t\t\t\t'href': '#popup #fullscreen',\r\n\t\t\t\t\t\t'wrapCSS': 'fullscreen-popup-fancybox',\r\n\t\t\t\t\t\ttpl: {\r\n\t\t\t\t\t\t\tcloseBtn: '<div class=\"popup--close fancybox-close\" tabindex=\"0\"></div>'\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._isLocalStorageSupported = () => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\treturn typeof Storage != \"undefined\" && window.localStorage && window.sessionStorage ? true : false;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.STORAGE_KEY = 'wetheme-popup';\r\n\t\t\t\tthis.isFullscreen = this.element.dataset.desktopType === \"fullscreen\";\r\n\t\t\t\tthis.popupSkipDays = parseInt(this.element.dataset.popupTime, 10);\r\n\t\t\t\tthis.popupDelay = parseInt(this.element.dataset.popupDelay, 10);\r\n\t\t\t\tthis.testMode = this.element.dataset.popupTestMode === 'true';\r\n\t\t\t\tthis.hasLocalStorage = this._isLocalStorageSupported();\r\n\r\n\t\t\t\tif (this.testMode) {\r\n\t\t\t\t\t// popup is in test mode - will show immediately in editor and on live site\r\n\t\t\t\t\tthis.show();\r\n\t\t\t\t} else if (this.isExpiredOrNotSet()) {\r\n\t\t\t\t\t// popup item in localStorage is expired or was not set, show popup this time\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.setExpiry(this.popupSkipDays);\r\n\t\t\t\t\t\tthis.show();\r\n\t\t\t\t\t}, 1000 * this.popupDelay);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.element.querySelector('.popup--close-btn').addEventListener('click', () => {\r\n\t\t\t\t\tthis.element.classList.remove('visible');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/VerificationPopup.js\r\n\r\n\r\n\r\n\t\tclass VerificationPopup extends Component {\r\n\t\t\tconstructor(theme, element) {\r\n\t\t\t\tsuper(theme, element);\r\n\r\n\t\t\t\tthis.load = () => {\r\n\t\t\t\t\t// Age checker is in test mode - will show immediately in editor and on live site\r\n\t\t\t\t\tif (this.ageTestMode) this.showModal();\r\n\r\n\t\t\t\t\tif (this.modalLinks) {\r\n\t\t\t\t\t\tthis.modalLinks.setAttribute('tabindex', '1');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar isAnAdult = this.readCookie('isAnAdult');\r\n\r\n\t\t\t\t\tif (!isAnAdult) {\r\n\t\t\t\t\t\tthis.showModal();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.enterButton) {\r\n\t\t\t\t\t\tthis.enterButton.addEventListener('click', this.writeCookie);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.exitButton) {\r\n\t\t\t\t\t\tthis.exitButton.addEventListener('click', this.comeBackModal);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.returnButton) {\r\n\t\t\t\t\t\tthis.returnButton.addEventListener('click', this.confirmAgeModal);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.closeButton) {\r\n\t\t\t\t\t\tthis.closeButton.addEventListener('click', this.confirmAgeModal);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.writeCookie = () => {\r\n\t\t\t\t\t// document.write(\"<style> #prompt__background { display: none; }</style>\");\r\n\t\t\t\t\tdocument.cookie = \"isAnAdult=true; expires=0; path=/\";\r\n\t\t\t\t\tthis.hideModal();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getModalContent = () => {\r\n\t\t\t\t\tthis.changeContent = document.querySelector('.modal-deny-content');\r\n\t\t\t\t\tthis.hideInitial = document.querySelector('.modal-initial-content');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.trapFocus = () => {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif (document.querySelector('.verification-popup-container')) {\r\n\t\t\t\t\t\t\tvar inputs = jquery_default()('.verification-popup-container').find('button, a').filter(':visible');\r\n\t\t\t\t\t\t\tvar firstInput = inputs.first();\r\n\t\t\t\t\t\t\tvar lastInput = inputs.last(); // Set focus on first input\r\n\r\n\t\t\t\t\t\t\tjquery_default()('.verification-popup-container').focus(); // Redirect last tab to first input\r\n\r\n\t\t\t\t\t\t\tlastInput.on('keydown', function (e) {\r\n\t\t\t\t\t\t\t\tif (e.which === 9 && !e.shiftKey) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\tfirstInput.focus();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}); // Redirect first shift+tab to last input\r\n\r\n\t\t\t\t\t\t\tfirstInput.on('keydown', function (e) {\r\n\t\t\t\t\t\t\t\tif (e.which === 9 && e.shiftKey) {\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\tlastInput.focus();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.readCookie = name => {\r\n\t\t\t\t\tvar nameEQ = name + \"=\";\r\n\t\t\t\t\tvar ca = document.cookie.split(';');\r\n\r\n\t\t\t\t\tfor (var i = 0; i < ca.length; i++) {\r\n\t\t\t\t\t\tvar c = ca[i];\r\n\r\n\t\t\t\t\t\twhile (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n\r\n\t\t\t\t\t\tif (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.showModal = () => {\r\n\t\t\t\t\tjquery_default()('.verification-popup-container').css('display', 'block');\r\n\t\t\t\t\tthis.trapFocus();\r\n\t\t\t\t\tdisableBodyScroll(document.querySelector('.verification-popup-container'));\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.hideModal = () => {\r\n\t\t\t\t\tenableBodyScroll(document.querySelector('.verification-popup-container'));\r\n\t\t\t\t\tjquery_default()('.verification-popup-container').css('display', 'none');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.confirmAgeModal = () => {\r\n\t\t\t\t\tjquery_default()('#verification__prompt').scrollTop(0);\r\n\t\t\t\t\tjquery_default()('.verification-popup__close-button').css('display', 'none');\r\n\t\t\t\t\tthis.getModalContent();\r\n\t\t\t\t\tthis.changeContent.classList.add('hidden');\r\n\t\t\t\t\tthis.hideInitial.classList.remove('hidden');\r\n\t\t\t\t\tthis.trapFocus();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.comeBackModal = () => {\r\n\t\t\t\t\tjquery_default()('#verification__prompt').scrollTop(0);\r\n\t\t\t\t\tjquery_default()('.verification-popup__close-button').css('display', 'flex');\r\n\t\t\t\t\tthis.getModalContent();\r\n\t\t\t\t\tthis.changeContent.classList.remove('hidden');\r\n\t\t\t\t\tthis.hideInitial.classList.add('hidden');\r\n\t\t\t\t\tthis.trapFocus();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.ageSkipDays = parseInt(this.element.dataset.ageTime, 10);\r\n\t\t\t\tthis.ageDelay = 0;\r\n\t\t\t\tthis.ageTestMode = this.element.dataset.ageTestMode === 'true';\r\n\t\t\t\tthis.enterButton = element.querySelector('#button__enter');\r\n\t\t\t\tthis.exitButton = element.querySelector('#button__exit');\r\n\t\t\t\tthis.returnButton = element.querySelector('#button__return');\r\n\t\t\t\tthis.closeButton = element.querySelector('.verification-popup__close-button');\r\n\t\t\t\tthis.modalLinks = element.querySelector('.modal-content__wrapper a');\r\n\t\t\t\tthis.load();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/utils.js\r\n\t\t/**\r\n\t\t * Throttle execution of function\r\n\t\t *\r\n\t\t * @param {Function} callback function to be throttled\r\n\t\t * @param {number} interval milliseconds\r\n\t\t * @returns {Function}\r\n\t\t */\r\n\t\tfunction throttle(callback, interval) {\r\n\t\t\tlet enableCall = true;\r\n\t\t\tlet calledWhenDisabled = false;\r\n\t\t\treturn (...args) => {\r\n\t\t\t\tconst onTimeout = () => {\r\n\t\t\t\t\tif (calledWhenDisabled) {\r\n\t\t\t\t\t\tcallback.apply(this, args);\r\n\t\t\t\t\t\tsetTimeout(onTimeout, interval);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tenableCall = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcalledWhenDisabled = false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!enableCall) {\r\n\t\t\t\t\tcalledWhenDisabled = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tenableCall = false;\r\n\t\t\t\tcallback.apply(this, args);\r\n\t\t\t\tsetTimeout(onTimeout, interval);\r\n\t\t\t};\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/Badge.js\r\n\r\n\r\n\r\n\r\n\t\t/* Place the sale or sold out badge at the top left of preview thumbnail\r\n\t\t* image/s, rather than the top left of the containing <div>.\r\n\t\t*/\r\n\r\n\t\tclass Badge extends Component {\r\n\t\t\tconstructor(theme, _element) {\r\n\t\t\t\tsuper(theme, _element);\r\n\r\n\t\t\t\tthis.add = (element, timeout) => {\r\n\t\t\t\t\tthis.roots.push(element);\r\n\t\t\t\t\tthis.load(element, timeout);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onWindowResize = () => {\r\n\t\t\t\t\tconst $containers = jquery_default()(this.roots).find('.grid-view-item .grid-view-item-image');\r\n\t\t\t\t\tconst $badges = $containers.find('.badge');\r\n\t\t\t\t\t$badges.css('opacity', 0);\r\n\t\t\t\t\tthis.calculateBadgePositions($containers);\r\n\t\t\t\t\t$badges.css('opacity', 1);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.load = (element, timeout = undefined) => {\r\n\t\t\t\t\tconst badge = this;\r\n\r\n\t\t\t\t\tif (timeout === undefined) {\r\n\t\t\t\t\t\ttimeout = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst $containers = jquery_default()(element).find('.grid-view-item .grid-view-item-image');\r\n\t\t\t\t\tthis.calculateBadgePositions($containers);\r\n\r\n\t\t\t\t\tif (timeout > 0) {\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.calculateBadgePositions($containers);\r\n\t\t\t\t\t\t}, timeout);\r\n\t\t\t\t\t} // On hover, if the 'Enable hover effect' setting is ON we'll need to move\r\n\t\t\t\t\t// the badge on hover as a different image will be shown.\r\n\r\n\r\n\t\t\t\t\tif ($containers.find('.hidden').length > 0 && this.theme.getWindowWidth() >= Breakpoints.md.min) {\r\n\t\t\t\t\t\t$containers.each((index, el) => {\r\n\t\t\t\t\t\t\thoverintent_default()(el, function () {\r\n\t\t\t\t\t\t\t\tif (!jquery_default()(this).parent('.grid-view-item').hasClass('hovering')) {\r\n\t\t\t\t\t\t\t\t\t// Fade in second image.\r\n\t\t\t\t\t\t\t\t\tvar self = jquery_default()(this);\r\n\t\t\t\t\t\t\t\t\tself.parent('.grid-view-item').addClass('hovering');\r\n\t\t\t\t\t\t\t\t\tself.find('.hidden').fadeTo(200, 1, function () {\r\n\t\t\t\t\t\t\t\t\t\tbadge.calculateHoverBadgePositions(jquery_default()(self));\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, function () {\r\n\t\t\t\t\t\t\t\tvar self = jquery_default()(this); // Fade out second image.\r\n\r\n\t\t\t\t\t\t\t\tjquery_default()(this).find('.hidden').fadeTo(200, 0, function () {\r\n\t\t\t\t\t\t\t\t\tbadge.calculateBadgePositions($containers);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tself.parent('.grid-view-item').removeClass('hovering');\r\n\t\t\t\t\t\t\t}).options({\r\n\t\t\t\t\t\t\t\tsensitivity: 10,\r\n\t\t\t\t\t\t\t\tinterval: 25\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.calculateHoverBadgePositions = item => {\r\n\t\t\t\t\t// If the 'Enable hover effect' setting is ON, also calculate the position\r\n\t\t\t\t\t// of the badge on the second thumbnail.\r\n\t\t\t\t\tif (item.find('.reveal .hidden').length) {\r\n\t\t\t\t\t\titem.find('.reveal .hidden').css('z-index', 4);\r\n\t\t\t\t\t\tthis.placeBadge(item, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.calculateBadgePositions = container => {\r\n\t\t\t\t\tcontainer.each((i, el) => {\r\n\t\t\t\t\t\tthis.placeBadge(jquery_default()(el));\r\n\t\t\t\t\t\tjquery_default()(el).find('*').stop(true, true);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.placeBadge = (item, hover) => {\r\n\t\t\t\t\tif (hover === undefined) {\r\n\t\t\t\t\t\thover = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar badgeDiv = item.parent().find('.badge');\r\n\r\n\t\t\t\t\tif (!badgeDiv.length) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} // IF - the product grid image aspect ratio setting is selected, ensure the badges are always to the absolute top left of the parent\r\n\r\n\r\n\t\t\t\t\tif (jquery_default()('body').hasClass('images-aspect-ratio')) {\r\n\t\t\t\t\t\tbadgeDiv.css('top', '0');\r\n\t\t\t\t\t\tbadgeDiv.css('left', '0');\r\n\t\t\t\t\t} // ELSE - we need to work out the correct position for the top left of the image\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// 1) Get containing .grid-view-item dimensions.\r\n\t\t\t\t\t\tvar containerWidth = item.width();\r\n\t\t\t\t\t\tvar containerHeight = item.height();\r\n\t\t\t\t\t\tvar thisImg; // 2) Get thumbnail size.\r\n\r\n\t\t\t\t\t\tif (hover === true) {\r\n\t\t\t\t\t\t\tthisImg = item.find('.hidden img');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthisImg = item.find('img');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar actualSize = this.getContainedSize(thisImg.get(0));\r\n\t\t\t\t\t\tvar thisWidth = Math.round(actualSize[0]);\r\n\t\t\t\t\t\tvar thisHeight = Math.round(actualSize[1]); // 3) Calculate the left and top difference between container and image.\r\n\r\n\t\t\t\t\t\tvar offsetX = (containerWidth - thisWidth) / 2;\r\n\t\t\t\t\t\tvar offsetY = (containerHeight - thisHeight) / 2; // Don't allow negative offsets.\r\n\r\n\t\t\t\t\t\tif (offsetX < 1) offsetX = 0;\r\n\t\t\t\t\t\tif (offsetY < 1) offsetY = 0; // 4) Apply those units to the left & top position of the badge.\r\n\r\n\t\t\t\t\t\tbadgeDiv.css('top', offsetY + 'px');\r\n\t\t\t\t\t\tbadgeDiv.css('left', offsetX + 'px');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.getContainedSize = img => {\r\n\t\t\t\t\tvar ratio = img.naturalWidth / img.naturalHeight;\r\n\t\t\t\t\tvar width = img.height * ratio;\r\n\t\t\t\t\tvar height = img.height;\r\n\r\n\t\t\t\t\tif (width > img.width) {\r\n\t\t\t\t\t\twidth = img.width;\r\n\t\t\t\t\t\theight = img.width / ratio;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn [width, height];\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.roots = [];\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/RecentlyViewed.js\r\n\r\n\r\n\r\n\r\n\r\n\t\tfunction get_unique_array(array) {\r\n\t\t\tvar newArray = new Array();\r\n\t\t\tvar handleArray = new Array();\r\n\r\n\t\t\tfor (var i = 0; i < array.length; i++) {\r\n\t\t\t\tvar handle = array[i]['handle'];\r\n\r\n\t\t\t\tif (handleArray.indexOf(handle) === -1) {\r\n\t\t\t\t\tnewArray.push(array[i]);\r\n\t\t\t\t\thandleArray.push(handle);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn newArray;\r\n\t\t}\r\n\r\n\t\tclass RecentlyViewed extends Section {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\t\t\t\tthis.RECENTLY_VIEWED_COUNT = 10;\r\n\t\t\t\tthis.RECENTLY_VIEWED_LOCAL_STORAGE_KEY = 'recentlyVisited';\r\n\t\t\t\tthis.PLACEHOLDER = 'PLACEHOLDER';\r\n\r\n\t\t\t\tthis.loadProducts = recentlyViewed => {\r\n\t\t\t\t\tlet str = this.paramStr(this.blocksArray);\r\n\t\t\t\t\tvar promises = recentlyViewed.map(function (rv) {\r\n\t\t\t\t\t\treturn jquery_default().get(this.productUrl.replace(this.PLACEHOLDER, rv.handle), {\r\n\t\t\t\t\t\t\tblocks: str\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}.bind(this));\r\n\t\t\t\t\tjquery_default().when.apply((jquery_default()), promises).then(() => {\r\n\t\t\t\t\t\tlet allOK = true;\r\n\t\t\t\t\t\tpromises.forEach(promise => {\r\n\t\t\t\t\t\t\tif (promise.status === 200) {\r\n\t\t\t\t\t\t\t\tvar container = document.createElement('div');\r\n\t\t\t\t\t\t\t\tcontainer.innerHTML = promise.responseText;\r\n\t\t\t\t\t\t\t\tthis.$content.append(container.querySelector('.main-content .grid__item').outerHTML);\r\n\t\t\t\t\t\t\t\tthis.$content.find('.grid__item').addClass('swiper-slide');\r\n\t\t\t\t\t\t\t\tthis.orderBlocks(container.querySelector('.grid-view-item'));\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tconsole.warn('Unable to fetch recently visited product: ', promise.status, promise.responseText);\r\n\t\t\t\t\t\t\t\tallOK = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (allOK) {\r\n\t\t\t\t\t\t\tthis.show();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.hideButtons();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.orderBlocks = parent => {\r\n\t\t\t\t\tif (!this.blocksArray) return;\r\n\t\t\t\t\tconst clone = parent.cloneNode(true);\r\n\t\t\t\t\tparent.innerHTML = '';\r\n\t\t\t\t\tthis.blocksArray.forEach(block => {\r\n\t\t\t\t\t\tif (!block) return;\r\n\t\t\t\t\t\tconst blockElement = clone.querySelector(`[data-block-type=${block}]`);\r\n\r\n\t\t\t\t\t\tif (blockElement) {\r\n\t\t\t\t\t\t\tparent.appendChild(blockElement);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.hideButtons = () => {\r\n\t\t\t\t\tthis.$element.find('.swiper-button--next').hide();\r\n\t\t\t\t\tthis.$element.find('.swiper-button--prev').hide();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.show = () => {\r\n\t\t\t\t\tconst nextEl = this.element.querySelector('.swiper-button--next');\r\n\t\t\t\t\tconst prevEl = this.element.querySelector('.swiper-button--prev');\r\n\t\t\t\t\tthis.$element.fadeIn();\r\n\t\t\t\t\tthis.swiper = new swiper_esm_bundle(this.element.querySelector('.swiper-container'), {\r\n\t\t\t\t\t\tslidesPerView: 2,\r\n\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\tnextEl,\r\n\t\t\t\t\t\t\tprevEl\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t\t\t600: {\r\n\t\t\t\t\t\t\t\tslidesPerView: 4\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twatchOverflow: true,\r\n\t\t\t\t\t\tautoHeight: true\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.loadShopNow();\r\n\t\t\t\t\tthis.badge = this.theme.addBadges(this.element, 1000);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadShopNow = () => {\r\n\t\t\t\t\tif (this.element.dataset.quickShop === 'true') {\r\n\t\t\t\t\t\t// it was not added in liquid as we cannot access this section settings, we have to add it manually\r\n\t\t\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.grid-view-item'), el => {\r\n\t\t\t\t\t\t\tconst title = el.querySelector('.product-grid--title');\r\n\t\t\t\t\t\t\tconst imgWrapper = el.querySelector('.grid-view-item-image');\r\n\t\t\t\t\t\t\tconst descWrapper = el.querySelector('.grid-view-item--desc-wrapper');\r\n\t\t\t\t\t\t\tconst a = document.createElement('a');\r\n\t\t\t\t\t\t\ta.classList.add('shop-now-button');\r\n\t\t\t\t\t\t\ta.href = title.querySelector('a').href;\r\n\t\t\t\t\t\t\ta.textContent = this.theme.translations.quick_shop;\r\n\t\t\t\t\t\t\ta.addEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t\t\tconst wrapper = document.createElement('div');\r\n\t\t\t\t\t\t\twrapper.appendChild(a);\r\n\t\t\t\t\t\t\twrapper.classList.add('shop-now-wrapper');\r\n\t\t\t\t\t\t\tconst desktopShopNow = wrapper;\r\n\t\t\t\t\t\t\tconst mobileShopNow = wrapper.cloneNode(true);\r\n\t\t\t\t\t\t\tdesktopShopNow.classList.add('shop-now-wrapper--desktop');\r\n\t\t\t\t\t\t\tmobileShopNow.classList.add('shop-now-wrapper--mobile');\r\n\t\t\t\t\t\t\timgWrapper.appendChild(desktopShopNow);\r\n\t\t\t\t\t\t\tdescWrapper.parentNode.insertBefore(mobileShopNow, descWrapper.nextSibling);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.element.dataset.quickAdd === 'true') {\r\n\t\t\t\t\t\tArray.prototype.forEach.call(this.element.querySelectorAll('.grid-view-item'), el => {\r\n\t\t\t\t\t\t\tconst productId = Number(el.dataset.productId);\r\n\t\t\t\t\t\t\tconst productAvailable = el.dataset.productAvailable == 'true';\r\n\t\t\t\t\t\t\tconst productVarSize = Number(el.dataset.productVariantsSize);\r\n\t\t\t\t\t\t\tconst title = el.querySelector('.product-grid--title');\r\n\t\t\t\t\t\t\tconst desc = el.querySelector('.grid-view-item--desc-wrapper'); // Construct button for this product.\r\n\r\n\t\t\t\t\t\t\tconst a = document.createElement('a');\r\n\t\t\t\t\t\t\tconst wrapper = document.createElement('div');\r\n\t\t\t\t\t\t\twrapper.classList.add('quick-add-wrapper');\r\n\t\t\t\t\t\t\tif (productVarSize == 1) wrapper.classList.add('is-singular');\r\n\r\n\t\t\t\t\t\t\tif (productVarSize > 1 && productAvailable) {\r\n\t\t\t\t\t\t\t\ta.classList.add('quick-add-button-variants');\r\n\t\t\t\t\t\t\t\ta.tabIndex = 0;\r\n\t\t\t\t\t\t\t\ta.href = title.querySelector('a').href;\r\n\t\t\t\t\t\t\t\ta.textContent = this.theme.translations.view_options;\r\n\t\t\t\t\t\t\t\ta.addEventListener('click', this.handleShopNow);\r\n\t\t\t\t\t\t\t\twrapper.appendChild(a);\r\n\t\t\t\t\t\t\t} else if (productAvailable) {\r\n\t\t\t\t\t\t\t\t// HTML Form. Used for the 'Add to cart' button functionality.\r\n\t\t\t\t\t\t\t\tconst form = document.createElement('form');\r\n\t\t\t\t\t\t\t\tform.method = 'post';\r\n\t\t\t\t\t\t\t\tform.action = '/cart/add';\r\n\t\t\t\t\t\t\t\tform.id = 'CollectionAddToCartForm';\r\n\t\t\t\t\t\t\t\tform.acceptCharset = 'UTF-8';\r\n\t\t\t\t\t\t\t\tform.classList.add('shopify-product-form');\r\n\t\t\t\t\t\t\t\tform.enctype = 'multipart/form-data'; // Hidden form inputs.\r\n\r\n\t\t\t\t\t\t\t\tconst form_type = document.createElement('input');\r\n\t\t\t\t\t\t\t\tform_type.type = 'hidden';\r\n\t\t\t\t\t\t\t\tform_type.name = 'form_type';\r\n\t\t\t\t\t\t\t\tform_type.value = 'product';\r\n\t\t\t\t\t\t\t\tform.appendChild(form_type);\r\n\t\t\t\t\t\t\t\tconst utf_input = document.createElement('input');\r\n\t\t\t\t\t\t\t\tutf_input.type = 'hidden';\r\n\t\t\t\t\t\t\t\tutf_input.name = 'utf8';\r\n\t\t\t\t\t\t\t\tutf_input.value = '\u2713';\r\n\t\t\t\t\t\t\t\tform.appendChild(utf_input);\r\n\t\t\t\t\t\t\t\tconst prod_id = document.createElement('input');\r\n\t\t\t\t\t\t\t\tprod_id.type = 'hidden';\r\n\t\t\t\t\t\t\t\tprod_id.name = 'id';\r\n\t\t\t\t\t\t\t\tprod_id.value = productId.toString();\r\n\t\t\t\t\t\t\t\tform.appendChild(prod_id); // Submit button.\r\n\r\n\t\t\t\t\t\t\t\tconst btn = document.createElement('button');\r\n\t\t\t\t\t\t\t\tbtn.classList.add('quick-add-button');\r\n\t\t\t\t\t\t\t\tbtn.type = 'submit';\r\n\t\t\t\t\t\t\t\tbtn.tabIndex = 0;\r\n\t\t\t\t\t\t\t\tbtn.textContent = this.theme.translations.addToCart;\r\n\t\t\t\t\t\t\t\tform.appendChild(btn);\r\n\t\t\t\t\t\t\t\twrapper.appendChild(form);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ta.classList.add('sold-out-button');\r\n\t\t\t\t\t\t\t\ta.href = title.querySelector('a').href;\r\n\t\t\t\t\t\t\t\ta.textContent = this.theme.translations.soldOut;\r\n\t\t\t\t\t\t\t\twrapper.appendChild(a);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdesc.parentNode.insertBefore(wrapper, desc.nextSibling);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.handleShopNow = e => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.theme.toggleRightDrawer('shop-now', true, {\r\n\t\t\t\t\t\turl: e.target.href\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._isLocalStorageSupported = () => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\treturn typeof Storage != \"undefined\" && window.localStorage && window.sessionStorage ? true : false;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.paramStr = arr => {\r\n\t\t\t\t\tvar parameters = [];\r\n\r\n\t\t\t\t\tfor (var property in arr) {\r\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(arr, property) && arr[property].length > 0) {\r\n\t\t\t\t\t\t\tparameters.push(encodeURI(arr[property]));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn parameters.join(',');\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.$element = jquery_default()(element);\r\n\t\t\t\tthis.handle = this.element.dataset.productHandle;\r\n\t\t\t\tthis.productUrl = this.element.dataset.productUrl;\r\n\t\t\t\tthis.blocksArray = this.element.dataset.blocks.split(',');\r\n\t\t\t\tthis.$content = this.$element.find('#recently-viewed-products');\r\n\r\n\t\t\t\tif (this.$content.hasClass('recently-viewed-loading')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$content.empty().addClass('recently-viewed-loading');\r\n\t\t\t\tvar recentlyViewedJSON = null;\r\n\r\n\t\t\t\tif (this._isLocalStorageSupported()) {\r\n\t\t\t\t\trecentlyViewedJSON = localStorage.getItem(this.RECENTLY_VIEWED_LOCAL_STORAGE_KEY);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar _recentlyViewed = recentlyViewedJSON != null ? JSON.parse(recentlyViewedJSON) : [];\r\n\r\n\t\t\t\tif (this.handle) {\r\n\t\t\t\t\tvar item = {\r\n\t\t\t\t\t\t'handle': this.handle\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t_recentlyViewed.unshift(item);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar uniqueArray = _recentlyViewed.length ? get_unique_array(_recentlyViewed) : _recentlyViewed;\r\n\r\n\t\t\t\tif (uniqueArray.length > this.RECENTLY_VIEWED_COUNT) {\r\n\t\t\t\t\tuniqueArray = uniqueArray.slice(0, this.RECENTLY_VIEWED_COUNT);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._isLocalStorageSupported()) {\r\n\t\t\t\t\tlocalStorage.setItem(this.RECENTLY_VIEWED_LOCAL_STORAGE_KEY, JSON.stringify(uniqueArray));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (uniqueArray.length > 1 || uniqueArray.length === 1 && uniqueArray[0]['handle'] !== this.handle) {\r\n\t\t\t\t\tthis.loadProducts(uniqueArray.filter(item => {\r\n\t\t\t\t\t\treturn item.handle !== this.handle;\r\n\t\t\t\t\t}));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$element.remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar self = this;\r\n\t\t\t\twindow.addEventListener('load', event => {\r\n\t\t\t\t\tthis.quickAddButtons = new QuickAdd(theme, element);\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tif (self.swiper) {\r\n\t\t\t\t\t\t\tself.swiper.resize.resizeHandler();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/global/SearchResults.js\r\n\r\n\t\tclass SearchResults extends Section {\r\n\t\t\t/**\r\n\t\t\t * @param {import('../ThemeBase').default} theme\r\n\t\t\t * @param {HTMLElement} element\r\n\t\t\t */\r\n\t\t\tconstructor(theme, element, pageLoad) {\r\n\t\t\t\tsuper(theme, element, pageLoad);\r\n\r\n\t\t\t\tthis.removeAsterisks = () => {\r\n\t\t\t\t\tvar pageTitle = document.querySelector('.page--title');\r\n\t\t\t\t\tpageTitle.textContent = pageTitle.textContent.replace('*', '');\r\n\t\t\t\t\tvar searchInput = document.querySelector('.search-bar .input-group-field');\r\n\t\t\t\t\tsearchInput.value = searchInput.value.replace('*', '');\r\n\t\t\t\t\tvar breadcrumbLast = document.querySelector('nav.breadcrumb span:last-child');\r\n\r\n\t\t\t\t\tif (breadcrumbLast) {\r\n\t\t\t\t\t\tbreadcrumbLast.textContent = breadcrumbLast.textContent.replace('*', '');\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSearchChange = e => {\r\n\t\t\t\t\tif (this.searchInput.value.length > 0) {\r\n\t\t\t\t\t\tthis.searchClear.style.opacity = '1';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.searchClear.style.opacity = '0';\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.clearSearch = e => {\r\n\t\t\t\t\tif (this.searchInput) {\r\n\t\t\t\t\t\tthis.searchInput.value = '';\r\n\t\t\t\t\t\tthis.onSearchChange();\r\n\t\t\t\t\t\tthis.searchInput.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.tabClearSearch = e => {\r\n\t\t\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tthis.searchInput.value = '';\r\n\t\t\t\t\t\tthis.onSearchChange();\r\n\t\t\t\t\t\tthis.searchInput.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.removeAsterisks();\r\n\t\t\t\tthis.clearSearch();\r\n\t\t\t\tthis.searchInput = element.querySelector('input[type=\"search\"]');\r\n\t\t\t\tthis.searchInput.addEventListener('input', this.onSearchChange);\r\n\t\t\t\tthis.searchClear = element.querySelector('.search-drawer--clear');\r\n\t\t\t\tthis.searchClear.addEventListener('click', this.clearSearch);\r\n\t\t\t\tthis.searchClear.addEventListener('keydown', this.tabClearSearch);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t;// CONCATENATED MODULE: ./src/javascripts/Theme.js\r\n\r\n\t\t// import Popup from './global/Popup';\r\n\t\t// import Newsletter from './global/Newsletter';\r\n\t\t// import CartDrawer from './global/CartDrawer';\r\n\t\t// import Drawer from './global/Drawer';\r\n\t\t// import LoginPage from './pages/LoginPage';\r\n\r\n\t\t/**\r\n\t\t * @typedef {Object} ShopifyEventDetail\r\n\t\t * @property {string} sectionId\r\n\t\t * @property {string} [blockId]\r\n\t\t * @property {boolean} [load]\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * @typedef {CustomEvent<ShopifyEventDetail>} ShopifyEvent\r\n\t\t */\r\n\r\n\t\tclass Theme extends ThemeBase {\r\n\t\t\tconstructor() {\r\n\t\t\t\tsuper();\r\n\t\t\t\tthis.THROTTLE_INTERVAL = 400;\r\n\t\t\t\tthis.SECTIONS = {\r\n\t\t\t\t\t'header': Header,\r\n\t\t\t\t\t'footer': Footer,\r\n\t\t\t\t\t'announcement-bar': AnnouncementBar,\r\n\t\t\t\t\t'advanced-layout--custom-html': CustomHtml,\r\n\t\t\t\t\t'advanced-layout--hero': Hero,\r\n\t\t\t\t\t'blog--blog-posts': BlogPosts,\r\n\t\t\t\t\t'collection--collection-list': CollectionList,\r\n\t\t\t\t\t'collection--featured-collection': FeaturedCollection,\r\n\t\t\t\t\t'collection--products-block': ProductsBlock,\r\n\t\t\t\t\t'image--gallery': ImageGallery,\r\n\t\t\t\t\t'image--image-with-text-overlay': ImageWithTextOverlay,\r\n\t\t\t\t\t'image--image-with-text': ImageWithText,\r\n\t\t\t\t\t'image--logo-list': LogoList,\r\n\t\t\t\t\t'image--slideshow': Slideshow,\r\n\t\t\t\t\t'newsletter--newsletter': Newsletter,\r\n\t\t\t\t\t'password': Password,\r\n\t\t\t\t\t'products--featured-product': FeaturedProduct,\r\n\t\t\t\t\t'template--blog': Blog,\r\n\t\t\t\t\t'template--cart': Cart,\r\n\t\t\t\t\t'template--collection': CollectionSection,\r\n\t\t\t\t\t'template--collections-list': CollectionListSection,\r\n\t\t\t\t\t'template--product': ProductSection,\r\n\t\t\t\t\t'template--product--recommendations': ProductRecommendations,\r\n\t\t\t\t\t'template--product--recently-viewed': RecentlyViewed,\r\n\t\t\t\t\t'template--search': SearchResults,\r\n\t\t\t\t\t'text--rich-text': RichText,\r\n\t\t\t\t\t'text--testimonials': Testimonails,\r\n\t\t\t\t\t'text--text-adverts': TextAdverts,\r\n\t\t\t\t\t'video--video-hero': VideoHero,\r\n\t\t\t\t\t'video--video': Section\r\n\t\t\t\t};\r\n\t\t\t\tthis.VUE_COMPONENTS = {\r\n\t\t\t\t\t'wetheme-dropdown': Dropdown,\r\n\t\t\t\t\t'wetheme-video': Video\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadFadeAnimation = () => {\r\n\t\t\t\t\tdocument.body.classList.add('loaded');\r\n\r\n\t\t\t\t\tif (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {\r\n\t\t\t\t\t\t// Safari doesn't support beforeunload very well when using back/forward buttons.\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.addEventListener('beforeunload', function () {\r\n\t\t\t\t\t\tdocument.body.classList.add('unloading');\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadGlobal = () => {\r\n\t\t\t\t\tconst globalEl = document.querySelector('#wetheme-global');\r\n\r\n\t\t\t\t\tif (!globalEl) {\r\n\t\t\t\t\t\tconsole.warn('Script #wetheme-global with global definitions not found');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet global;\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tglobal = JSON.parse(globalEl.textContent);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn('Invalid syntax in #wetheme-global', e);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.translations = global.translations;\r\n\t\t\t\t\tthis.moneyFormat = global.moneyFormat;\r\n\t\t\t\t\tthis.giftwrapProduct = global.giftwrapProduct;\r\n\t\t\t\t\tthis.giftwrapEnabled = global.giftwrapEnabled;\r\n\t\t\t\t\tvue_esm.directive('money', {\r\n\t\t\t\t\t\tbind: (el, binding) => {\r\n\t\t\t\t\t\t\tel.innerHTML = this.formatMoney(binding.value);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tupdate: (el, binding) => {\r\n\t\t\t\t\t\t\tif (binding.oldValue !== binding.value) {\r\n\t\t\t\t\t\t\t\tel.innerHTML = this.formatMoney(binding.value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvue_esm.directive('responsive', {\r\n\t\t\t\t\t\tbind: (el, binding) => {\r\n\t\t\t\t\t\t\t/* Create product thumbnail:\r\n\t\t\t\t\t\t\t *  - Remove file extension, add _1000x, and re-add extension\r\n\t\t\t\t\t\t\t *  - Create server relative link\r\n\t\t\t\t\t\t\t *  - Create responsive variant (`_{width}x` as size)\r\n\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\tlet srcset = '';\r\n\r\n\t\t\t\t\t\t\tif (el.width > 550) {\r\n\t\t\t\t\t\t\t\tsrcset += binding.value.replace(/(\\.[^.]*)$/, \"_550x$1\") + ' 550w,';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (el.width > 1100) {\r\n\t\t\t\t\t\t\t\tsrcset += binding.value.replace(/(\\.[^.]*)$/, \"_1100x$1\") + ' 1100w,';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (el.width > 1445) {\r\n\t\t\t\t\t\t\t\tsrcset += binding.value.replace(/(\\.[^.]*)$/, \"_1445x$1\") + ' 1445w,';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (el.width > 1680) {\r\n\t\t\t\t\t\t\t\tsrcset += binding.value.replace(/(\\.[^.]*)$/, \"_1680x$1\") + ' 1680w,';\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (el.width > 2048) {\r\n\t\t\t\t\t\t\t\tsrcset += binding.value.replace(/(\\.[^.]*)$/, \"_2048x$1\") + ' 2048w,';\r\n\t\t\t\t\t\t\t} // Plus the original image size for good measure.\r\n\r\n\r\n\t\t\t\t\t\t\tsrcset += binding.value + ' ' + el.width + 'w';\r\n\t\t\t\t\t\t\tconst img = binding.value.replace(/(\\.[^.]*)$/, \"_1000x$1\").replace('http:', '');\r\n\t\t\t\t\t\t\tel.setAttribute('src', img);\r\n\t\t\t\t\t\t\tel.setAttribute('srcset', srcset);\r\n\t\t\t\t\t\t\tel.setAttribute('loading', 'lazy');\r\n\t\t\t\t\t\t\tel.setAttribute('loading', 'lazy');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadVueComponents = element => {\r\n\t\t\t\t\tObject.entries(this.VUE_COMPONENTS).forEach(([tagName, VueComponent]) => {\r\n\t\t\t\t\t\tthis.loadVueComponent(element, tagName, VueComponent);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadVueComponent = (element, tagName, Component) => {\r\n\t\t\t\t\tArray.prototype.forEach.call(element.querySelectorAll(tagName), el => {\r\n\t\t\t\t\t\tconst c = new vue_esm({\r\n\t\t\t\t\t\t\tel: el.parentNode,\r\n\t\t\t\t\t\t\tcomponents: {\r\n\t\t\t\t\t\t\t\t[tagName]: Component\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tdata: () => {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\ttheme: this\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.vueComponents.push(c);\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadSection = (element, SectionClass, pageLoad) => {\r\n\t\t\t\t\tconst c = new SectionClass(this, element, pageLoad);\r\n\t\t\t\t\tthis.sectionById.set(element.dataset.wethemeSectionId, c);\r\n\t\t\t\t\tconst type = element.dataset.wethemeSectionType;\r\n\t\t\t\t\tlet sections = this.sectionsByType.get(type);\r\n\r\n\t\t\t\t\tif (!sections) {\r\n\t\t\t\t\t\tsections = [];\r\n\t\t\t\t\t\tthis.sectionsByType.set(type, sections);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsections.push(c);\r\n\t\t\t\t\tthis.loadVueComponents(element);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadSectionsByType = (type, SectionClass, pageLoad) => {\r\n\t\t\t\t\tconst selector = `[data-wetheme-section-type=\"${type}\"]`;\r\n\t\t\t\t\tArray.prototype.forEach.call(document.querySelectorAll(selector), element => {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tthis.loadSection(element, SectionClass, pageLoad);\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.error(`Unable to load section ${type} on element`, element, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onLoadAll = () => {\r\n\t\t\t\t\tthis.load();\r\n\t\t\t\t\tObject.entries(this.SECTIONS).forEach(([type, SectionClass]) => {\r\n\t\t\t\t\t\tthis.loadSectionsByType(type, SectionClass, true);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.showOnScroll();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSectionLoad = event => {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst selector = `[data-wetheme-section-id=\"${sectionId}\"]`;\r\n\t\t\t\t\tconst element = document.querySelector(selector);\r\n\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\tconsole.warn(`Element with ${selector} not found, section won't be loaded`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst type = element.dataset.wethemeSectionType;\r\n\t\t\t\t\tconst SectionClass = this.SECTIONS[type];\r\n\r\n\t\t\t\t\tif (!SectionClass) {\r\n\t\t\t\t\t\tconsole.warn(`Cannot find class with type \"${type}\"`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} // Remove 'fadeInUp' animation from the first section\r\n\r\n\r\n\t\t\t\t\tlet getAnimatedEls = document.querySelectorAll('.show-on-scroll');\r\n\r\n\t\t\t\t\tif (getAnimatedEls.length > 0) {\r\n\t\t\t\t\t\tgetAnimatedEls[0].classList.remove('show-on-scroll');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.loadSection(element, SectionClass, false);\r\n\t\t\t\t\tthis.showOnScroll();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSectionUnload = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, nothing will be unloaded`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.destroy({\r\n\t\t\t\t\t\telement\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSectionSelect = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tload\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, nothing will be selected`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.onSectionSelect({\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tload\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSectionDeselect = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, nothing will be deselected`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.onSectionDeselect({\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onSectionReorder = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, nothing will be done on reorder`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.onSectionReorder({\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tsectionId\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockSelect = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tblockId,\r\n\t\t\t\t\t\tload\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, block select will do nothing`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.onBlockSelect({\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tblockId,\r\n\t\t\t\t\t\tload\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onBlockDeselect = event => {\r\n\t\t\t\t\tconst element = event.target;\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tblockId\r\n\t\t\t\t\t} = event.detail;\r\n\t\t\t\t\tconst section = this.sectionById.get(sectionId);\r\n\r\n\t\t\t\t\tif (!section) {\r\n\t\t\t\t\t\tconsole.warn(`No section with id ${sectionId}, block deselect will do nothing`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsection.onBlockDeselect({\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tsectionId,\r\n\t\t\t\t\t\tblockId\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onRawResize = event => {\r\n\t\t\t\t\tconst width = this.getWindowWidth(); // Trigger non-debounced event on all components\r\n\r\n\t\t\t\t\tthis.registeredComponents.forEach(c => c.onWindowResizeRaw({\r\n\t\t\t\t\t\twidth\r\n\t\t\t\t\t}));\r\n\t\t\t\t\tthis.onResize();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onResize = throttle(() => {\r\n\t\t\t\t\tconst width = this.getWindowWidth();\r\n\t\t\t\t\tconst oldWidth = this.previousWidth;\r\n\t\t\t\t\tconst breakpoint = this.getBreakpoint(width);\r\n\t\t\t\t\tthis.registeredComponents.forEach(c => {\r\n\t\t\t\t\t\tc.onWindowResize({\r\n\t\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\t\toldWidth,\r\n\t\t\t\t\t\t\tbreakpoint\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (breakpoint !== this.breakpoint) {\r\n\t\t\t\t\t\t\t// Breakpoint has changed, trigger the event\r\n\t\t\t\t\t\t\tc.onWindowResizeBreakpoint({\r\n\t\t\t\t\t\t\t\tbreakpoint,\r\n\t\t\t\t\t\t\t\toldBreakpoint: this.breakpoint,\r\n\t\t\t\t\t\t\t\twidth\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.previousWidth = width;\r\n\t\t\t\t\tthis.breakpoint = breakpoint;\r\n\t\t\t\t}, this.THROTTLE_INTERVAL);\r\n\r\n\t\t\t\tthis.onRawScroll = event => {\r\n\t\t\t\t\tthis.onScroll(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onScroll = throttle(event => {\r\n\t\t\t\t\tthis.showOnScroll();\r\n\t\t\t\t\tthis.registeredComponents.forEach(c => {\r\n\t\t\t\t\t\tc.onWindowScroll();\r\n\t\t\t\t\t});\r\n\t\t\t\t}, this.THROTTLE_INTERVAL);\r\n\r\n\t\t\t\tthis.showOnScroll = () => {\r\n\t\t\t\t\tconst windowHeight = jquery_default()(window).height();\r\n\t\t\t\t\tjquery_default()('.show-on-scroll').each(function (index, section) {\r\n\t\t\t\t\t\tvar rect = section.getBoundingClientRect();\r\n\r\n\t\t\t\t\t\tif (rect.bottom >= 0 && rect.top < windowHeight) {\r\n\t\t\t\t\t\t\tjquery_default()(section).removeClass('show-on-scroll').addClass('shown-on-scroll animated fadeInUp');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onKeyUp = e => {\r\n\t\t\t\t\t// Close drawers when escape is pressed if they are open\r\n\t\t\t\t\tif (e.keyCode == 27) {\r\n\t\t\t\t\t\t// escape key maps to keycode `27`\r\n\t\t\t\t\t\tthis.closeDrawers();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.handleAccordions = () => {\r\n\t\t\t\t\tlet detailsElements = document.querySelectorAll('details'); //@ts-ignore\r\n\r\n\t\t\t\t\tfor (let item of detailsElements) {\r\n\t\t\t\t\t\titem.addEventListener('click', e => {\r\n\t\t\t\t\t\t\tconst target = e.currentTarget;\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tconst isExpanded = item.open ? 'true' : 'false';\r\n\t\t\t\t\t\t\t\titem.firstElementChild.setAttribute('aria-expanded', isExpanded);\r\n\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadYoutubeApi = () => {\r\n\t\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tif (window.YT) {\r\n\t\t\t\t\t\t\t// We already have youtube API loaded, we're done\r\n\t\t\t\t\t\t\tresolve(window.YT);\r\n\t\t\t\t\t\t} else if (!document.querySelector('#youtube_api')) {\r\n\t\t\t\t\t\t\t// Resolve once youtube is loaded\r\n\t\t\t\t\t\t\tthis.youtubeLoadedCallbacks.push({\r\n\t\t\t\t\t\t\t\tresolve,\r\n\t\t\t\t\t\t\t\treject\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tconst pageContainer = document.querySelector('#PageContainer');\r\n\t\t\t\t\t\t\tconst embedContainer = document.querySelectorAll('.embed-container')[0];\r\n\t\t\t\t\t\t\tconst editorOpen = pageContainer.dataset.editorOpen;\r\n\r\n\t\t\t\t\t\t\tvar isInViewport = function isInViewport(el) {\r\n\t\t\t\t\t\t\t\tconst rect = el.getBoundingClientRect();\r\n\t\t\t\t\t\t\t\treturn rect.top >= 101 && rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth);\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tvar visibleElement = function visibleElement(el) {\r\n\t\t\t\t\t\t\t\tconst rect = el.getBoundingClientRect();\r\n\t\t\t\t\t\t\t\treturn rect.top;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (embedContainer && editorOpen == \"false\") {\r\n\t\t\t\t\t\t\t\tlet isVisible = visibleElement(embedContainer);\r\n\t\t\t\t\t\t\t\tlet isInView = isInViewport(embedContainer); //Check if the video section is visible on initial load\r\n\r\n\t\t\t\t\t\t\t\tif (isVisible > 10 && isVisible <= 100) {\r\n\t\t\t\t\t\t\t\t\t// Youtube API is not yet loaded, create script that loads it\r\n\t\t\t\t\t\t\t\t\tthis.createScript(\"youtube_api\", \"https://www.youtube.com/player_api\", true);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tdocument.addEventListener('scroll', function () {\r\n\t\t\t\t\t\t\t\t\t\tif (isInView) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Youtube API is not yet loaded, create script that loads it\r\n\t\t\t\t\t\t\t\t\t\t\tthis.createScript(\"youtube_api\", \"https://www.youtube.com/player_api\", true);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}.bind(this), {\r\n\t\t\t\t\t\t\t\t\t\tpassive: true\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// Youtube API is not yet loaded, create script that loads it\r\n\t\t\t\t\t\t\t\tthis.createScript(\"youtube_api\", \"https://www.youtube.com/player_api\", true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Script for loading youtube API is there, but youtube is not yet loaded\r\n\t\t\t\t\t\t\tthis.youtubeLoadedCallbacks.push({\r\n\t\t\t\t\t\t\t\tresolve,\r\n\t\t\t\t\t\t\t\treject\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onYoutubeLoaded = () => {\r\n\t\t\t\t\tthis.youtubeLoadedCallbacks.forEach(({\r\n\t\t\t\t\t\tresolve\r\n\t\t\t\t\t}) => {\r\n\t\t\t\t\t\tresolve(window.YT);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.youtubeLoadedCallbacks.splice(0);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.loadVimeoApi = () => {\r\n\t\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tif (window.Vimeo) {\r\n\t\t\t\t\t\t\t// Already loaded\r\n\t\t\t\t\t\t\tresolve(window.Vimeo);\r\n\t\t\t\t\t\t} else if (!document.querySelector('#vimeo_api')) {\r\n\t\t\t\t\t\t\t// Vimeo API is not yet loaded, create script that loads it\r\n\t\t\t\t\t\t\tconst script = this.createScript(\"vimeo_api\", \"https://player.vimeo.com/api/player.js\");\r\n\r\n\t\t\t\t\t\t\tscript.onload = () => {\r\n\t\t\t\t\t\t\t\tresolve(window.Vimeo);\r\n\t\t\t\t\t\t\t\tthis.onVimeoLoaded();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.vimeoLoadedCallbacks.push({\r\n\t\t\t\t\t\t\t\tresolve,\r\n\t\t\t\t\t\t\t\treject\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.onVimeoLoaded = () => {\r\n\t\t\t\t\tthis.vimeoLoadedCallbacks.forEach(({\r\n\t\t\t\t\t\tresolve\r\n\t\t\t\t\t}) => {\r\n\t\t\t\t\t\tresolve(window.Vimeo);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.vimeoLoadedCallbacks.splice(0);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis._loadCartKey = () => {\r\n\t\t\t\t\tconst cerberusKey = 'f1957945-9048-438b-bd2c-0ed182340c65';\r\n\t\t\t\t\treturn cerberusKey;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.toggleRightDrawer = (type = 'cart', forceOpen = undefined, params = {}) => {\r\n\t\t\t\t\tconst event = new CustomEvent(TOGGLE_RIGHT_DRAWER_EVENT, {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\ttype,\r\n\t\t\t\t\t\t\tforceOpen,\r\n\t\t\t\t\t\t\tparams\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdocument.documentElement.dispatchEvent(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.toggleLeftDrawer = (forceOpen = undefined) => {\r\n\t\t\t\t\tconst event = new CustomEvent(TOGGLE_LEFT_DRAWER_EVENT, {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tforceOpen\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdocument.documentElement.dispatchEvent(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.updateCartDrawer = async cart => {\r\n\t\t\t\t\tconst event = new CustomEvent(CART_UPDATE_EVENT, {\r\n\t\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\t\tcart\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdocument.documentElement.dispatchEvent(event);\r\n\t\t\t\t\tlet upsellVariantId;\r\n\t\t\t\t\tif (window.isExperimentNT181 === true) {\r\n\t\t\t\t\t\tupsellVariantId = 46270990811382;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tupsellVariantId = upsell_product_variation_id;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst shipInsureVariantId = ship_insure_nt_ids;\r\n\t\t\t\t\tconst freeGiftItem = cart.items.find(item => item.final_line_price === 0);\r\n\t\t\t\t\tconst hasFreeGift = !!freeGiftItem;\r\n\t\t\t\t\tconst hasUpsell = cart.items.some(item => item.variant_id == upsellVariantId);\r\n\t\t\t\t\tconst upsellItem = cart.items.find(item => item.variant_id == upsellVariantId);\r\n\t\t\t\t\tconst hasShipInsure = cart.items.some(item => item.variant_id == shipInsureVariantId);\r\n\t\t\t\t\tconst totalItems = cart.items.length;\r\n\t\t\t\t\tconst shouldRemoveUpsell = hasUpsell && (totalItems === 1 || (totalItems === 2 && (hasShipInsure || hasFreeGift)) || (totalItems === 3 && hasShipInsure && hasFreeGift));\r\n\t\t\t\t\tif (shouldRemoveUpsell) {\r\n\t\t\t\t\t\tconst lineItemKey = upsellItem.key;\r\n\t\t\t\t\t\tfetch('/cart/change.js', {\r\n\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\t\t\t\t\tbody: JSON.stringify({ id: lineItemKey, quantity: 0 })\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(response => response.json())\r\n\t\t\t\t\t\t\t.then(updatedCart => {\r\n\t\t\t\t\t\t\t\tif (window.cart) {\r\n\t\t\t\t\t\t\t\t\twindow.cart.setData(updatedCart);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// shouldRemoveUpsell only fires when the upsell was the sole real\r\n\t\t\t\t\t\t\t\t// product. Remove any remaining invisible accessories (ship-insure,\r\n\t\t\t\t\t\t\t\t// zero-price gifts) so the cart reaches a truly empty state and\r\n\t\t\t\t\t\t\t\t// the \"Your cart is currently empty.\" message can render.\r\n\t\t\t\t\t\t\t\tconst toRemove = updatedCart.items.filter(\r\n\t\t\t\t\t\t\t\t\titem => item.variant_id == shipInsureVariantId || item.final_line_price === 0\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tlet removeChain = Promise.resolve();\r\n\t\t\t\t\t\t\t\tfor (const item of toRemove) {\r\n\t\t\t\t\t\t\t\t\tremoveChain = removeChain.then(() =>\r\n\t\t\t\t\t\t\t\t\t\tfetch('/cart/change.js', {\r\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\t\t\t\t\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\t\t\t\t\t\t\t\t\tbody: JSON.stringify({ id: item.key, quantity: 0 })\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn removeChain.then(() => fetch('/cart.js').then(r => r.json()));\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.then(freshCart => {\r\n\t\t\t\t\t\t\t\tif (window.cart) {\r\n\t\t\t\t\t\t\t\t\twindow.cart.setData(freshCart);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\twindow.wetheme?.toggleRightDrawer?.(\r\n\t\t\t\t\t\t\t\t\t'cart',\r\n\t\t\t\t\t\t\t\t\tfreshCart.item_count === 0 ? true : 'maintain',\r\n\t\t\t\t\t\t\t\t\t{ cart: freshCart }\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\t\tdocument.cookie = \"cart__checkout-upsell-initialised=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\r\n\t\t\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch(error => console.error('Error deleting upsell:', error));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconsole.log('Cart Updated!');\r\n\r\n\r\n\t\t\t\t\tif (cart.item_count < 3) {\r\n\t\t\t\t\t\tconst itemFound = cart.items.some(item => item.product_id == 7949285818614);\r\n\t\t\t\t\t\tif (itemFound) {\r\n\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\tconst specialMessage = document.getElementById(\"free-samples-message\");\r\n\t\t\t\t\t\t\t\tif (specialMessage) { specialMessage.classList.add(\"hide\"); }\r\n\t\t\t\t\t\t\t}, 1000)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.createScript = (id, src, async = false) => {\r\n\t\t\t\t\tconst tag = document.createElement('script');\r\n\t\t\t\t\ttag.id = id;\r\n\t\t\t\t\ttag.src = src;\r\n\r\n\t\t\t\t\tif (async) {\r\n\t\t\t\t\t\ttag.defer = true;\r\n\t\t\t\t\t\ttag.async = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst firstScriptTag = document.getElementsByTagName('script')[0];\r\n\t\t\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\t\t\t\t\treturn tag;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.registerComponent = component => {\r\n\t\t\t\t\tthis.registeredComponents.push(component);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.makeVideoEmbedsResponsive = () => {\r\n\t\t\t\t\tjquery_default()('.template-page iframe, .template-blog iframe, .template-article iframe').each(function (index, iframe) {\r\n\t\t\t\t\t\tvar source = jquery_default()(iframe).attr(\"src\");\r\n\r\n\t\t\t\t\t\tif (source.indexOf(\"youtube.com\") >= 0 || source.indexOf(\"vimeo.com\") >= 0 || source.indexOf(\"dailymotion.com\") >= 0) {\r\n\t\t\t\t\t\t\t//create container\r\n\t\t\t\t\t\t\tvar embedContainer = document.createElement('div');\r\n\t\t\t\t\t\t\tjquery_default()(embedContainer).addClass('embed-container'); //clone iframe\r\n\r\n\t\t\t\t\t\t\tvar iframeClone = jquery_default()(iframe).clone(); //put clone in container\r\n\r\n\t\t\t\t\t\t\tjquery_default()(embedContainer).append(iframeClone); //embed clone with responsive container\r\n\r\n\t\t\t\t\t\t\tjquery_default()(iframe).replaceWith(embedContainer);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.closeDrawers = e => {\r\n\t\t\t\t\tthis.toggleLeftDrawer(false);\r\n\t\t\t\t\tthis.toggleRightDrawer('cart', false);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.addBadges = (root, timeout) => {\r\n\t\t\t\t\tthis.badge.add(root, timeout);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.name = 'Flow';\r\n\t\t\t\tthis.$ = (jquery_default()); // Passive event listeners for jQuery.\r\n\r\n\t\t\t\t(jquery_default()).event.special.touchstart = {\r\n\t\t\t\t\tsetup: function (_, ns, handle) {\r\n\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\tthis.addEventListener('touchstart', handle, {\r\n\t\t\t\t\t\t\tpassive: !ns.includes('noPreventDefault')\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t(jquery_default()).event.special.touchmove = {\r\n\t\t\t\t\tsetup: function (_, ns, handle) {\r\n\t\t\t\t\t\t// @ts-ignore\r\n\t\t\t\t\t\tthis.addEventListener('touchmove', handle, {\r\n\t\t\t\t\t\t\tpassive: !ns.includes('noPreventDefault')\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t/** Section by it's unique ID\r\n\t\t\t\t * @type {Map<string, Section>}\r\n\t\t\t\t */\r\n\r\n\t\t\t\tthis.sectionById = new Map();\r\n\t\t\t\t/** Array of sections by given section type\r\n\t\t\t\t * @type {Map<string, Section[]>}\r\n\t\t\t\t */\r\n\r\n\t\t\t\tthis.sectionsByType = new Map();\r\n\t\t\t\t/** Array of registed components\r\n\t\t\t\t * @type {Array<import('./Component').default>}\r\n\t\t\t\t */\r\n\r\n\t\t\t\tthis.registeredComponents = [];\r\n\t\t\t\t/** Array of initialized vue components\r\n\t\t\t\t * @type {Array<Object>}\r\n\t\t\t\t */\r\n\r\n\t\t\t\tthis.vueComponents = [];\r\n\t\t\t\t/** @type {Array<{ resolve: (YoutubeApi) => void, reject: (string) => void }>} */\r\n\r\n\t\t\t\tthis.youtubeLoadedCallbacks = [];\r\n\t\t\t\t/** @type {Array<{ resolve: (VimeoApi) => void, reject: (string) => void }>} */\r\n\r\n\t\t\t\tthis.vimeoLoadedCallbacks = [];\r\n\t\t\t\tthis.resizeDebounceTimer = null;\r\n\t\t\t\tdocument.addEventListener('shopify:section:load', this.onSectionLoad);\r\n\t\t\t\tdocument.addEventListener('shopify:section:unload', this.onSectionUnload);\r\n\t\t\t\tdocument.addEventListener('shopify:section:select', this.onSectionSelect);\r\n\t\t\t\tdocument.addEventListener('shopify:section:deselect', this.onSectionDeselect);\r\n\t\t\t\tdocument.addEventListener('shopify:section:reorder', this.onSectionReorder);\r\n\t\t\t\tdocument.addEventListener('shopify:block:select', this.onBlockSelect);\r\n\t\t\t\tdocument.addEventListener('shopify:block:deselect', this.onBlockDeselect);\r\n\t\t\t\tdocument.addEventListener('DOMContentLoaded', this.onLoadAll);\r\n\t\t\t\tdocument.addEventListener('keyup', this.onKeyUp);\r\n\t\t\t\twindow.addEventListener('resize', this.onRawResize);\r\n\t\t\t\twindow.addEventListener('scroll', this.onRawScroll);\r\n\t\t\t\tthis.drawerOverlay = document.querySelector('#DrawerOverlay');\r\n\r\n\t\t\t\tif (this.drawerOverlay) {\r\n\t\t\t\t\t// We don't have it on password page\r\n\t\t\t\t\tdocument.querySelector('#DrawerOverlay').addEventListener('click', this.closeDrawers);\r\n\t\t\t\t} // Number of attempts to load Shopify product reviews\r\n\r\n\r\n\t\t\t\tthis._spr_remaining_attemtps = 10;\r\n\t\t\t}\r\n\t\t\t/** This will be execute when whole DOM is loaded */\r\n\r\n\r\n\t\t\tload() {\r\n\t\t\t\tthis.loadGlobal();\r\n\t\t\t\tthis.breakpoint = this.getBreakpoint();\r\n\t\t\t\tthis.wow = new (wow_default())().init();\r\n\r\n\t\t\t\tif (!document.body.classList.contains('password-page')) {// this.drawer = new Drawer(this);\r\n\t\t\t\t\t// this.cartDrawer = this.drawer.slideouts.right ? new CartDrawer(this, this.drawer.slideouts.right.menu) : null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.popup = null;\r\n\t\t\t\tconst popupEl = document.querySelector('#popup');\r\n\r\n\t\t\t\tif (popupEl && window.location.pathname !== '/challenge') {\r\n\t\t\t\t\t// Don't show popup when we're filling CAPTCHA for contact form\r\n\t\t\t\t\tthis.popup = new Popup(this, popupEl);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.verificationPopup = null;\r\n\t\t\t\tconst verificationEl = document.querySelector('.verification-popup-container');\r\n\r\n\t\t\t\tif (verificationEl && window.location.pathname !== '/challenge') {\r\n\t\t\t\t\t// Don't show popup when we're filling CAPTCHA for contact form\r\n\t\t\t\t\tthis.verificationPopup = new VerificationPopup(this, verificationEl);\r\n\t\t\t\t} // Newsletter form could be on contact-us page, so outside of sections\r\n\t\t\t\t// this.newsletter = new Newsletter(this);\r\n\t\t\t\t// Login page doesn't have sections, load it here\r\n\r\n\r\n\t\t\t\tif (document.body.classList.contains('template-customers-login')) {\r\n\t\t\t\t\tthis.login = new Login(this, document.body);\r\n\t\t\t\t} // Remove 'fadeInUp' animation from the first section\r\n\r\n\r\n\t\t\t\tlet getAnimatedEls = document.querySelectorAll('.show-on-scroll');\r\n\r\n\t\t\t\tif (getAnimatedEls.length > 0) {\r\n\t\t\t\t\tgetAnimatedEls[0].classList.remove('show-on-scroll');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.handleAccordions();\r\n\t\t\t\tthis.loadFadeAnimation(); // Right drawer is not part of any component\r\n\r\n\t\t\t\tthis.loadVueComponent(document.body, 'wetheme-right-drawer', global_RightDrawer);\r\n\t\t\t\tthis.badge = new Badge(this, document.body);\r\n\t\t\t}\r\n\r\n\t\t} // Make the theme object instance globally available\r\n\r\n\r\n\t\twindow.wetheme = new Theme();\r\n\r\n\t\twindow.onYouTubePlayerAPIReady = () => {\r\n\t\t\twindow.wetheme.onYoutubeLoaded();\r\n\t\t};\r\n\t})();\r\n\r\n\r\n\tasync function oldShipInsureRemoval() {\r\n\t\tlet cart = await fetch('/cart.js');\r\n\t\tlet cartJSON = await cart.json();\r\n\t\tlet oldShipInsureVariant = cartJSON.items.find(item => {\r\n\t\t\treturn item?.properties?.hasOwnProperty('Naked and thriving ship insure');\r\n\t\t})\r\n\t\tif (oldShipInsureVariant) {\r\n\r\n\t\t\tlet updates = { [oldShipInsureVariant.key]: 0 };\r\n\t\t\tlet removalRequest = await fetch('/cart/update.js', {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\t\tbody: JSON.stringify({ updates })\r\n\t\t\t})\r\n\t\t\tlet removalResponse = await removalRequest.json();\r\n\t\t\tlet result = !removalResponse.items.some(item => item.variant_id == oldShipInsureVariant.key) ? \"success\" : \"failure\"\r\n\t\t}\r\n\t}\r\n\r\n\tif (!localStorage.getItem('old_si_removed')) {\r\n\t\toldShipInsureRemoval();\r\n\t}\r\n\r\n\t/******/\r\n})()\r\n\t;"],
  "mappings": "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AU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,OAAQ,SAAU,MAAO,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,UAAW,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,OAAQ,eAAgB,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,MAAO,SAAU,KAAM,SAAU,QAAS,SAAU,KAAM,SAAU,QAAS,SAAU,QAAS,SAAU,OAAQ,SAAU,SAAU,SAAU,MAAO,IAAK,OAAQ,OAAQ,KAAM,OAAQ,MAAO,OAAQ,QAAS,IAAK,KAAM,SAAU,MAAO,UAAW,OAAQ,IAAK,SAAU,SAAU,KAAM,UAAW,MAAO,SAAU,QAAS,IAAK,KAAM,SAAU,MAAO,UAAW,OAAQ,OAAQ,MAAO,IAAK,OAAQ,OAAQ,SAAU,SAAU,QAAS,SAAU,KAAM,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,MAAO,eAAgB,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,MAAO,SAAU,OAAQ,SAAU,MAAO,SAAU,OAAQ,SAAU,MAAO,SAAU,KAAM,SAAU,MAAO,eAAgB,OAAQ,SAAU,MAAO,eAAgB,OAAQ,SAAU,MAAO,SAAU,MAAO,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,SAAU,SAAU,UAAW,SAAU,QAAS,SAAU,WAAY,SAAU,WAAY,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,MAAO,SAAU,OAAQ,eAAgB,QAAS,SAAU,OAAQ,eAAgB,OAAQ,SAAU,KAAM,eAAgB,MAAO,SAAU,MAAO,SAAU,KAAM,SAAU,OAAQ,eAAgB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SAAU,SAAU,SAAU,WAAY,SAAU,WAAY,SAAU,OAAQ,SAAU,cAAe,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,WAAY,SAAU,WAAY,SAAU,QAAS,SAAU,WAAY,SAAU,WAAY,SAAU,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,WAAY,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,WAAY,SAAU,SAAU,SAAU,OAAQ,SAAU,UAAW,SAAU,WAAY,SAAU,UAAW,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,OAAQ,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,WAAY,SAAU,WAAY,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,UAAW,SAAU,MAAO,SAAU,KAAM,SAAU,SAAU,SAAU,OAAQ,SAAU,UAAW,SAAU,WAAY,SAAU,OAAQ,SAAU,MAAO,SAAU,OAAQ,SAAU,MAAO,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,UAAW,eAAgB,WAAY,SAAU,SAAU,SAAU,SAAU,SAAU,MAAO,eAAgB,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,SAAU,UAAW,SAAU,QAAS,SAAU,QAAS,SAAU,UAAW,SAAU,UAAW,SAAU,MAAO,eAAgB,OAAQ,SAAU,MAAO,eAAgB,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,WAAY,SAAU,WAAY,SAAU,MAAO,SAAU,MAAO,SAAU,MAAO,SAAU,MAAO,SAAU,OAAQ,SAAU,OAAQ,SAAU,MAAO,SAAU,MAAO,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,MAAO,SAAU,MAAO,SAAU,SAAU,SAAU,SAAU,SAAU,MAAO,SAAU,MAAO,SAAU,SAAU,SAAU,SAAU,SAAU,KAAM,SAAU,KAAM,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,WAAY,eAAgB,oBAAqB,SAAU,iBAAkB,eAAgB,0BAA2B,SAAU,MAAO,SAAU,MAAO,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,MAAO,SAAU,MAAO,SAAU,OAAQ,eAAgB,QAAS,SAAU,OAAQ,eAAgB,QAAS,SAAU,QAAS,SAAU,MAAO,eAAgB,OAAQ,SAAU,MAAO,eAAgB,OAAQ,SAAU,MAAO,SAAU,MAAO,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,KAAM,SAAU,KAAM,SAAU,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,SAAU,UAAW,SAAU,OAAQ,eAAgB,QAAS,SAAU,OAAQ,eAAgB,QAAS,SAAU,SAAU,SAAU,SAAU,eAAgB,SAAU,SAAU,QAAS,eAAgB,SAAU,SAAU,QAAS,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,OAAQ,SAAU,MAAO,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,eAAgB,SAAU,SAAU,OAAQ,SAAU,QAAS,SAAU,QAAS,OAAQ,SAAU,OAAQ,OAAQ,EAAK,SAAU,OAAQ,QAAS,OAAQ,MAAO,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,SAAU,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,OAAQ,OAAQ,SAAU,SAAU,SAAU,SAAU,OAAQ,OAAQ,OAAQ,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAQ,QAAS,OAAQ,QAAS,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,MAAO,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,OAAU,MAAO,YAAgB,OAAQ,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,OAAQ,SAAU,OAAQ,SAAU,SAAU,SAAU,YAAgB,MAAO,SAAU,KAAM,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,SAAU,KAAM,YAAgB,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAQ,MAAO,OAAQ,MAAO,SAAU,KAAM,OAAU,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,QAAS,OAAQ,QAAS,OAAU,SAAU,OAAU,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,SAAU,OAAU,SAAU,OAAU,QAAS,GAAM,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,OAAU,SAAU,YAAgB,MAAO,OAAU,UAAW,YAAgB,OAAQ,YAAgB,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,SAAU,KAAM,YAAgB,OAAQ,OAAU,OAAQ,OAAU,KAAM,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,QAAS,OAAU,QAAS,SAAU,QAAS,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,OAAU,SAAU,OAAU,SAAU,YAAgB,MAAO,YAAgB,OAAQ,OAAU,MAAO,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,SAAU,SAAU,OAAU,MAAO,OAAU,MAAO,YAAgB,OAAQ,YAAgB,MAAO,OAAU,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,OAAU,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,OAAU,OAAQ,OAAU,SAAU,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,OAAU,OAAQ,OAAU,KAAM,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,SAAU,KAAM,OAAU,SAAU,OAAU,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAQ,QAAS,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,SAAU,QAAS,OAAU,SAAU,OAAU,SAAU,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAQ,QAAS,OAAQ,QAAS,OAAU,QAAS,OAAU,QAAS,OAAQ,OAAQ,OAAQ,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,OAAU,QAAS,OAAU,QAAS,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAQ,SAAU,OAAQ,SAAU,OAAU,QAAS,OAAU,QAAS,OAAQ,OAAQ,OAAU,OAAQ,YAAgB,OAAQ,YAAgB,MAAO,YAAgB,OAAQ,OAAU,MAAO,OAAU,OAAQ,YAAgB,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAQ,QAAS,OAAQ,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,SAAU,QAAS,OAAU,UAAW,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,QAAS,OAAU,SAAU,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,SAAU,OAAU,QAAS,OAAU,SAAU,OAAU,SAAU,OAAU,KAAM,OAAQ,QAAS,OAAU,KAAM,OAAU,KAAM,OAAU,KAAM,OAAU,KAAM,OAAU,KAAM,OAAU,UAAW,OAAU,UAAW,OAAU,KAAM,OAAU,MAAO,OAAU,KAAM,OAAU,MAAO,OAAU,OAAQ,OAAU,MAAO,OAAU,QAAS,OAAU,QAAS,OAAU,SAAU,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,UAAW,OAAU,OAAQ,OAAU,MAAO,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,QAAS,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,QAAS,OAAU,QAAS,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,SAAU,OAAU,SAAU,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,MAAO,OAAU,QAAS,OAAU,QAAS,OAAU,MAAO,OAAU,MAAO,OAAU,QAAS,OAAU,QAAS,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,MAAO,OAAU,MAAO,OAAU,SAAU,OAAU,SAAU,OAAU,MAAO,OAAU,MAAO,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAAS,OAAU,OAAQ,OAAU,QAAS,OAAU,QAAS,EAE3j6B,YAAc,YACd,UAAY,CACf,IAAK,SACL,IAAK,QACL,IAAM,SACN,IAAK,OAKL,IAAK,OAKL,IAAK,QACN,EAEI,mBAAqB,kCACrB,yBAA2B,qPAC3B,YAAc,i8gBACd,UAAY,CAAE,OAAU,OAAQ,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,GAAM,SAAU,IAAO,SAAU,IAAO,eAAgB,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,IAAO,SAAU,IAAO,SAAU,MAAS,OAAQ,MAAS,OAAQ,GAAM,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,OAAQ,OAAU,OAAQ,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,IAAK,IAAO,IAAK,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,KAAQ,SAAU,SAAY,SAAU,KAAQ,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,MAAS,SAAU,QAAW,SAAU,SAAY,SAAU,OAAU,SAAU,MAAS,OAAQ,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,GAAM,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,KAAQ,IAAM,cAAiB,SAAU,OAAU,SAAU,SAAY,SAAU,MAAS,OAAQ,MAAS,OAAQ,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,IAAO,IAAK,MAAS,SAAU,QAAW,SAAU,OAAU,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,SAAY,SAAU,MAAS,SAAU,SAAY,SAAU,YAAe,SAAU,UAAa,SAAU,QAAW,SAAU,UAAa,SAAU,UAAa,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,SAAY,SAAU,KAAQ,SAAU,SAAY,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,WAAc,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,QAAW,SAAU,SAAY,SAAU,UAAa,SAAU,SAAY,SAAU,QAAW,SAAU,gBAAmB,SAAU,cAAiB,SAAU,SAAY,SAAU,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,aAAgB,SAAU,YAAe,SAAU,cAAiB,SAAU,kBAAqB,SAAU,kBAAqB,SAAU,mBAAsB,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,UAAW,QAAW,eAAgB,KAAQ,SAAU,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,QAAW,SAAU,SAAY,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,OAAQ,KAAQ,YAAgB,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,KAAM,MAAS,SAAU,SAAY,SAAU,KAAQ,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,qBAAwB,SAAU,KAAQ,eAAgB,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,QAAW,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,OAAQ,QAAW,OAAQ,QAAW,SAAU,KAAQ,OAAQ,UAAa,OAAQ,UAAa,OAAQ,IAAO,YAAgB,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,UAAa,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,OAAU,SAAU,gBAAmB,SAAU,iBAAoB,SAAU,WAAc,SAAU,YAAe,SAAU,YAAe,SAAU,UAAa,SAAU,SAAY,OAAQ,SAAY,SAAU,YAAe,SAAU,WAAc,SAAU,YAAe,SAAU,KAAQ,SAAU,KAAQ,SAAU,SAAY,SAAU,OAAU,SAAU,QAAW,SAAU,yBAA4B,SAAU,sBAAyB,SAAU,gBAAmB,SAAU,MAAS,SAAU,SAAY,SAAU,MAAS,IAAK,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,QAAW,SAAU,MAAS,IAAK,OAAU,IAAK,KAAQ,SAAU,OAAU,SAAU,WAAc,SAAU,UAAa,SAAU,KAAQ,SAAU,QAAW,SAAU,UAAa,SAAU,OAAU,SAAU,OAAU,SAAU,gBAAmB,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,UAAa,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,SAAU,gCAAmC,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,IAAO,SAAU,IAAO,SAAU,SAAY,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,eAAgB,OAAU,SAAU,QAAW,SAAU,YAAe,SAAU,YAAe,SAAU,SAAY,SAAU,WAAc,SAAU,OAAU,OAAQ,eAAkB,SAAU,gBAAmB,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,GAAM,SAAU,GAAM,SAAU,QAAW,SAAU,MAAS,SAAU,SAAY,SAAU,QAAW,SAAU,IAAO,OAAQ,IAAO,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,iBAAoB,OAAQ,eAAkB,SAAU,uBAA0B,SAAU,iBAAoB,IAAK,iBAAoB,SAAU,KAAQ,SAAU,QAAW,SAAU,QAAW,SAAU,YAAe,SAAU,MAAS,SAAU,IAAO,OAAQ,cAAiB,SAAU,QAAW,SAAU,MAAS,SAAU,IAAO,OAAQ,OAAU,OAAQ,cAAiB,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,IAAK,KAAQ,YAAgB,KAAQ,YAAgB,IAAO,SAAU,IAAO,OAAQ,OAAU,SAAU,MAAS,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,QAAW,SAAU,UAAa,SAAU,eAAkB,SAAU,sBAAyB,SAAU,UAAa,OAAQ,gBAAmB,SAAU,gBAAmB,SAAU,qBAAwB,SAAU,cAAiB,SAAU,oBAAuB,SAAU,yBAA4B,SAAU,qBAAwB,SAAU,iBAAoB,SAAU,eAAkB,SAAU,cAAiB,SAAU,kBAAqB,SAAU,kBAAqB,SAAU,UAAa,SAAU,UAAa,SAAU,UAAa,SAAU,aAAgB,SAAU,iBAAoB,SAAU,UAAa,SAAU,eAAkB,SAAU,gBAAmB,SAAU,iBAAoB,SAAU,oBAAuB,SAAU,kBAAqB,SAAU,eAAkB,SAAU,kBAAqB,SAAU,mBAAsB,SAAU,gBAAmB,SAAU,mBAAsB,SAAU,QAAW,SAAU,aAAgB,SAAU,SAAY,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,KAAQ,SAAU,KAAQ,SAAU,SAAY,SAAU,OAAU,OAAQ,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,OAAQ,MAAS,OAAQ,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,GAAM,SAAU,MAAS,SAAU,IAAO,YAAgB,IAAO,YAAgB,GAAM,SAAU,OAAU,OAAQ,OAAU,OAAQ,IAAO,SAAU,OAAU,SAAU,GAAM,SAAU,QAAW,SAAU,SAAY,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,iBAAoB,SAAU,OAAU,SAAU,qBAAwB,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,MAAS,SAAU,WAAc,SAAU,YAAe,SAAU,MAAS,SAAU,OAAU,IAAK,WAAc,SAAU,OAAU,SAAU,YAAe,SAAU,MAAS,SAAU,QAAW,SAAU,SAAY,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,OAAQ,IAAO,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,KAAQ,SAAU,KAAQ,IAAK,MAAS,SAAU,OAAU,SAAU,YAAe,SAAU,aAAgB,SAAU,aAAgB,SAAU,cAAiB,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,MAAS,SAAU,kBAAqB,SAAU,sBAAyB,SAAU,MAAS,KAAM,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,WAAc,SAAU,SAAY,SAAU,OAAU,OAAQ,OAAU,SAAU,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,GAAM,SAAU,GAAM,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,SAAY,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,SAAY,SAAU,KAAQ,eAAgB,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,GAAM,SAAU,GAAM,SAAU,IAAO,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,GAAM,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,SAAY,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,MAAS,IAAK,aAAgB,SAAU,iBAAoB,SAAU,iBAAoB,SAAU,eAAkB,SAAU,YAAe,SAAU,kBAAqB,SAAU,aAAgB,SAAU,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,GAAM,IAAK,GAAM,SAAU,GAAM,IAAK,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,UAAa,SAAU,OAAU,SAAU,OAAU,SAAU,UAAa,SAAU,WAAc,SAAU,QAAW,SAAU,OAAU,SAAU,UAAa,eAAgB,KAAQ,eAAgB,MAAS,SAAU,OAAU,SAAU,KAAQ,OAAQ,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,MAAS,SAAU,IAAO,IAAK,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,UAAa,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,SAAU,aAAgB,SAAU,SAAY,SAAU,SAAY,SAAU,MAAS,SAAU,OAAU,SAAU,cAAiB,SAAU,eAAkB,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,eAAkB,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,aAAgB,SAAU,UAAa,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,GAAM,SAAU,MAAS,OAAQ,MAAS,OAAQ,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,OAAQ,IAAO,SAAU,IAAO,YAAgB,IAAO,SAAU,OAAU,OAAQ,OAAU,OAAQ,GAAM,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,GAAM,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,WAAc,SAAU,SAAY,SAAU,SAAY,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,QAAW,SAAU,GAAM,SAAU,OAAU,SAAU,MAAS,SAAU,SAAY,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,aAAgB,SAAU,SAAY,SAAU,QAAW,SAAU,eAAkB,SAAU,eAAkB,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,OAAQ,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,GAAM,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,MAAS,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,YAAgB,IAAO,YAAgB,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,SAAU,WAAc,SAAU,MAAS,OAAQ,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,eAAgB,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,IAAK,OAAU,IAAK,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,IAAK,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,SAAY,SAAU,KAAQ,SAAU,GAAM,SAAU,GAAM,SAAU,iBAAoB,SAAU,UAAa,SAAU,UAAa,SAAU,UAAa,SAAU,aAAgB,SAAU,oBAAuB,SAAU,cAAiB,SAAU,YAAe,SAAU,kBAAqB,SAAU,kBAAqB,SAAU,eAAkB,SAAU,kBAAqB,SAAU,UAAa,SAAU,gBAAmB,SAAU,cAAiB,SAAU,eAAkB,SAAU,eAAkB,SAAU,eAAkB,SAAU,eAAkB,SAAU,gBAAmB,SAAU,kBAAqB,SAAU,oBAAuB,SAAU,gBAAmB,SAAU,QAAW,SAAU,aAAgB,SAAU,cAAiB,SAAU,eAAkB,SAAU,aAAgB,SAAU,gBAAmB,SAAU,kBAAqB,SAAU,iBAAoB,SAAU,gBAAmB,SAAU,aAAgB,SAAU,gBAAmB,SAAU,WAAc,SAAU,cAAiB,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,SAAY,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,QAAW,SAAU,SAAY,SAAU,KAAQ,eAAgB,OAAU,SAAU,WAAc,SAAU,QAAW,SAAU,UAAa,SAAU,WAAc,SAAU,iBAAoB,SAAU,cAAiB,SAAU,YAAe,SAAU,QAAW,SAAU,SAAY,SAAU,QAAW,SAAU,eAAkB,SAAU,UAAa,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,GAAM,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,GAAM,SAAU,GAAM,SAAU,MAAS,SAAU,SAAY,SAAU,WAAc,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,WAAc,SAAU,KAAQ,SAAU,SAAY,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,cAAiB,SAAU,cAAiB,SAAU,cAAiB,SAAU,mBAAsB,SAAU,mBAAsB,SAAU,mBAAsB,SAAU,WAAc,SAAU,eAAkB,SAAU,eAAkB,SAAU,eAAkB,SAAU,cAAiB,SAAU,eAAkB,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,IAAK,eAAkB,SAAU,gBAAmB,SAAU,IAAO,SAAU,QAAW,SAAU,KAAQ,SAAU,KAAQ,IAAK,OAAU,SAAU,MAAS,SAAU,SAAY,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,IAAK,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,GAAM,IAAK,GAAM,SAAU,GAAM,IAAK,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,QAAW,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,SAAY,SAAU,QAAW,SAAU,UAAa,eAAgB,KAAQ,eAAgB,KAAQ,OAAQ,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,WAAc,SAAU,WAAc,SAAU,SAAY,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,MAAS,SAAU,cAAiB,SAAU,YAAe,SAAU,UAAa,SAAU,IAAO,YAAgB,IAAO,YAAgB,IAAO,SAAU,MAAS,OAAQ,IAAO,SAAU,OAAU,IAAK,OAAU,SAAU,OAAU,OAAQ,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,QAAW,SAAU,UAAa,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,GAAM,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,GAAM,SAAU,GAAM,SAAU,SAAY,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,eAAgB,IAAO,SAAU,KAAQ,eAAgB,MAAS,eAAgB,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,QAAW,SAAU,SAAY,SAAU,KAAQ,OAAQ,MAAS,eAAgB,OAAU,eAAgB,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,SAAY,eAAgB,KAAQ,SAAU,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,GAAM,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,eAAgB,oBAAuB,SAAU,mBAAsB,SAAU,kBAAqB,SAAU,sBAAyB,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,eAAgB,qBAAwB,SAAU,eAAkB,SAAU,QAAW;AAAA,EAAM,OAAU,SAAU,QAAW,SAAU,IAAO,YAAgB,IAAO,YAAgB,IAAO,SAAU,IAAO,eAAgB,KAAQ,SAAU,MAAS,eAAgB,UAAa,eAAgB,KAAQ,eAAgB,IAAO,eAAgB,MAAS,SAAU,IAAO,SAAU,IAAO,eAAgB,KAAQ,SAAU,KAAQ,eAAgB,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,GAAM,SAAU,IAAO,SAAU,KAAQ,SAAU,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,IAAO,SAAU,IAAO,eAAgB,WAAc,SAAU,WAAc,SAAU,gBAAmB,SAAU,gBAAmB,SAAU,KAAQ,SAAU,MAAS,eAAgB,UAAa,eAAgB,KAAQ,eAAgB,MAAS,SAAU,IAAO,eAAgB,MAAS,SAAU,IAAO,SAAU,IAAO,eAAgB,MAAS,SAAU,OAAU,SAAU,KAAQ,eAAgB,KAAQ,SAAU,QAAW,SAAU,iBAAoB,OAAQ,KAAQ,YAAgB,KAAQ,SAAU,IAAO,OAAQ,IAAO,SAAU,aAAgB,SAAU,UAAa,SAAU,qBAAwB,SAAU,WAAc,SAAU,SAAY,SAAU,cAAiB,eAAgB,UAAa,SAAU,WAAc,SAAU,gBAAmB,SAAU,oBAAuB,eAAgB,kBAAqB,eAAgB,eAAkB,SAAU,qBAAwB,eAAgB,gBAAmB,SAAU,gBAAmB,eAAgB,aAAgB,eAAgB,MAAS,SAAU,SAAY,eAAgB,OAAU,eAAgB,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,gBAAmB,SAAU,mBAAsB,eAAgB,qBAAwB,SAAU,QAAW,SAAU,aAAgB,SAAU,eAAkB,SAAU,YAAe,eAAgB,kBAAqB,eAAgB,aAAgB,SAAU,wBAA2B,eAAgB,kBAAqB,eAAgB,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,YAAe,SAAU,iBAAoB,eAAgB,sBAAyB,SAAU,kBAAqB,SAAU,iBAAoB,SAAU,oBAAuB,eAAgB,sBAAyB,SAAU,gBAAmB,eAAgB,qBAAwB,SAAU,kBAAqB,eAAgB,uBAA0B,SAAU,UAAa,eAAgB,eAAkB,SAAU,YAAe,SAAU,iBAAoB,eAAgB,sBAAyB,SAAU,iBAAoB,eAAgB,YAAe,eAAgB,iBAAoB,SAAU,SAAY,SAAU,cAAiB,SAAU,kBAAqB,SAAU,cAAiB,SAAU,eAAkB,SAAU,KAAQ,SAAU,UAAa,SAAU,OAAU,eAAgB,MAAS,eAAgB,QAAW,SAAU,IAAO,SAAU,OAAU,SAAU,KAAQ,eAAgB,MAAS,SAAU,QAAW,eAAgB,MAAS,SAAU,MAAS,SAAU,OAAU,eAAgB,OAAU,eAAgB,YAAe,SAAU,YAAe,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,SAAU,OAAU,SAAU,KAAQ,eAAgB,KAAQ,YAAgB,KAAQ,YAAgB,UAAa,SAAU,eAAkB,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,eAAgB,QAAW,eAAgB,UAAa,SAAU,WAAc,eAAgB,MAAS,SAAU,QAAW,eAAgB,KAAQ,SAAU,MAAS,SAAU,MAAS,eAAgB,QAAW,eAAgB,UAAa,SAAU,WAAc,eAAgB,KAAQ,SAAU,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,cAAiB,SAAU,gBAAmB,SAAU,eAAkB,SAAU,iBAAoB,SAAU,GAAM,SAAU,GAAM,SAAU,IAAO,IAAK,OAAU,SAAU,MAAS,SAAU,KAAQ,eAAgB,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,eAAgB,KAAQ,UAAW,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,KAAQ,eAAgB,KAAQ,UAAW,QAAW,eAAgB,OAAU,SAAU,QAAW,eAAgB,MAAS,eAAgB,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,KAAQ,SAAU,MAAS,OAAQ,MAAS,OAAQ,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,YAAgB,IAAO,YAAgB,KAAQ,SAAU,OAAU,OAAQ,OAAU,OAAQ,IAAO,SAAU,MAAS,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,IAAO,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,KAAQ,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,qBAAwB,SAAU,eAAkB,SAAU,MAAS,SAAU,MAAS,SAAU,GAAM,SAAU,GAAM,SAAU,MAAS,SAAU,IAAO,SAAU,MAAS,SAAU,QAAW,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,SAAU,KAAQ,SAAU,QAAW,SAAU,IAAO,SAAU,GAAM,SAAU,KAAQ,SAAU,KAAQ,YAAgB,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,OAAU,OAAQ,OAAU,OAAQ,OAAU,SAAU,OAAU,SAAU,SAAY,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,MAAS,SAAU,QAAW,SAAU,UAAa,SAAU,YAAe,SAAU,gBAAmB,SAAU,IAAO,SAAU,KAAQ,OAAQ,SAAY,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,SAAY,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,IAAK,OAAU,IAAK,OAAU,SAAU,KAAQ,SAAU,QAAW,SAAU,IAAO,YAAgB,IAAO,YAAgB,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,GAAM,SAAU,GAAM,SAAU,UAAa,SAAU,IAAO,SAAU,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,KAAQ,IAAK,SAAY,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,UAAa,OAAQ,OAAU,OAAQ,QAAW,SAAU,QAAW,SAAU,GAAM,OAAQ,cAAiB,SAAU,SAAY,SAAU,KAAQ,YAAgB,KAAQ,SAAU,MAAS,OAAQ,GAAM,SAAU,GAAM,SAAU,KAAQ,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,WAAc,SAAU,YAAe,SAAU,SAAY,SAAU,cAAiB,SAAU,mBAAsB,SAAU,cAAiB,SAAU,OAAU,SAAU,YAAe,SAAU,SAAY,SAAU,SAAY,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,OAAU,SAAU,KAAQ,SAAU,QAAW,SAAU,SAAY,SAAU,SAAY,SAAU,SAAY,SAAU,KAAQ,SAAU,WAAc,SAAU,aAAgB,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,YAAe,SAAU,QAAW,SAAU,MAAS,IAAK,QAAW,SAAU,KAAQ,IAAK,KAAQ,IAAK,MAAS,SAAU,KAAQ,eAAgB,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,SAAY,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,OAAQ,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,UAAa,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,IAAK,OAAU,IAAK,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,IAAK,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,QAAW,SAAU,MAAS,SAAU,OAAU,SAAU,KAAQ,SAAU,GAAM,SAAU,KAAQ,SAAU,QAAW,SAAU,SAAY,SAAU,MAAS,SAAU,KAAQ,SAAU,IAAO,OAAQ,IAAO,OAAQ,eAAkB,SAAU,mBAAsB,SAAU,qBAAwB,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,kBAAqB,SAAU,WAAc,SAAU,WAAc,SAAU,WAAc,SAAU,cAAiB,SAAU,oBAAuB,SAAU,eAAkB,SAAU,aAAgB,SAAU,mBAAsB,SAAU,mBAAsB,SAAU,gBAAmB,SAAU,mBAAsB,SAAU,WAAc,SAAU,iBAAoB,SAAU,eAAkB,SAAU,gBAAmB,SAAU,kBAAqB,SAAU,iBAAoB,SAAU,gBAAmB,SAAU,SAAY,SAAU,cAAiB,SAAU,eAAkB,SAAU,gBAAmB,SAAU,cAAiB,SAAU,iBAAoB,SAAU,mBAAsB,SAAU,kBAAqB,SAAU,iBAAoB,SAAU,cAAiB,SAAU,iBAAoB,SAAU,YAAe,SAAU,eAAkB,SAAU,KAAQ,SAAU,aAAgB,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,SAAU,OAAU,SAAU,WAAc,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,SAAU,OAAU,SAAU,QAAW,SAAU,aAAgB,SAAU,KAAQ,IAAK,OAAU,SAAU,SAAY,SAAU,MAAS,SAAU,YAAe,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,IAAK,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,YAAe,SAAU,QAAW,SAAU,GAAM,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,GAAM,SAAU,GAAM,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,OAAU,SAAU,SAAY,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,KAAQ,OAAQ,KAAQ,IAAK,OAAU,SAAU,SAAY,SAAU,MAAS,SAAU,KAAQ,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,eAAkB,SAAU,eAAkB,SAAU,SAAY,SAAU,cAAiB,SAAU,gBAAmB,SAAU,aAAgB,SAAU,IAAO,OAAQ,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,YAAe,SAAU,cAAiB,SAAU,OAAU,SAAU,SAAY,SAAU,KAAQ,SAAU,MAAS,SAAU,IAAO,SAAU,KAAQ,SAAU,MAAS,eAAgB,OAAU,SAAU,OAAU,SAAU,IAAO,IAAK,KAAQ,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,UAAa,SAAU,KAAQ,SAAU,MAAS,SAAU,OAAU,eAAgB,MAAS,SAAU,OAAU,eAAgB,KAAQ,SAAU,MAAS,SAAU,OAAU,SAAU,SAAY,SAAU,WAAc,SAAU,MAAS,SAAU,OAAU,SAAU,SAAY,SAAU,WAAc,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,mBAAsB,SAAU,aAAgB,SAAU,kBAAqB,SAAU,eAAkB,SAAU,oBAAuB,SAAU,YAAe,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,gBAAmB,SAAU,YAAe,SAAU,MAAS,OAAQ,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,SAAY,SAAU,UAAa,SAAU,YAAe,SAAU,UAAa,SAAU,WAAc,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,WAAc,SAAU,YAAe,SAAU,SAAY,SAAU,cAAiB,SAAU,mBAAsB,SAAU,cAAiB,SAAU,OAAU,SAAU,YAAe,SAAU,SAAY,SAAU,SAAY,SAAU,QAAW,SAAU,SAAY,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,SAAU,QAAW,SAAU,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,SAAY,SAAU,cAAiB,SAAU,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,OAAU,SAAU,SAAY,SAAU,UAAa,SAAU,UAAa,SAAU,WAAc,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,QAAW,SAAU,OAAU,SAAU,MAAS,OAAQ,IAAO,IAAM,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,SAAU,UAAa,SAAU,UAAa,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,OAAU,SAAU,YAAe,SAAU,SAAY,SAAU,WAAc,eAAgB,OAAU,SAAU,UAAa,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,OAAQ,MAAS,OAAQ,MAAS,SAAU,MAAS,SAAU,WAAc,SAAU,eAAkB,SAAU,WAAc,SAAU,MAAS,OAAQ,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,KAAQ,SAAU,KAAQ,SAAU,IAAO,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,QAAW,SAAU,KAAQ,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,SAAY,SAAU,aAAgB,SAAU,aAAgB,SAAU,eAAkB,SAAU,UAAa,SAAU,cAAiB,SAAU,gBAAmB,SAAU,OAAU,SAAU,KAAQ,SAAU,SAAY,SAAU,UAAa,SAAU,QAAW,SAAU,MAAS,SAAU,QAAW,SAAU,SAAY,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,iBAAoB,SAAU,kBAAqB,SAAU,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,KAAQ,SAAU,KAAQ,SAAU,SAAY,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,OAAQ,MAAS,OAAQ,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,OAAQ,SAAY,IAAK,WAAc,SAAU,aAAgB,SAAU,iBAAoB,SAAU,MAAS,SAAU,UAAa,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,QAAW,SAAU,QAAW,SAAU,QAAW,SAAU,WAAc,SAAU,iBAAoB,SAAU,YAAe,SAAU,YAAe,SAAU,YAAe,SAAU,cAAiB,SAAU,cAAiB,SAAU,eAAkB,SAAU,MAAS,SAAU,eAAkB,SAAU,gBAAmB,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,QAAW,SAAU,QAAW,SAAU,MAAS,SAAU,WAAc,SAAU,WAAc,SAAU,OAAU,SAAU,SAAY,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,OAAQ,KAAQ,OAAQ,QAAW,SAAU,OAAU,SAAU,WAAc,SAAU,SAAY,SAAU,WAAc,SAAU,OAAU,SAAU,MAAS,SAAU,UAAa,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,SAAY,SAAU,aAAgB,eAAgB,cAAiB,eAAgB,aAAgB,eAAgB,cAAiB,eAAgB,SAAY,SAAU,gBAAmB,SAAU,iBAAoB,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,OAAU,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,IAAK,OAAU,SAAU,KAAQ,IAAK,KAAQ,SAAU,YAAe,SAAU,aAAgB,IAAK,kBAAqB,SAAU,cAAiB,SAAU,cAAiB,SAAU,IAAO,YAAgB,IAAO,YAAgB,MAAS,SAAU,MAAS,eAAgB,MAAS,eAAgB,KAAQ,YAAgB,KAAQ,YAAgB,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,eAAgB,OAAU,eAAgB,OAAU,eAAgB,OAAU,eAAgB,OAAU,SAAU,QAAW,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,YAAgB,IAAO,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,GAAM,SAAU,GAAM,SAAU,OAAU,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,MAAS,SAAU,KAAQ,SAAU,MAAS,SAAU,IAAO,YAAgB,IAAO,YAAgB,MAAS,SAAU,MAAS,SAAU,GAAM,SAAU,GAAM,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,MAAS,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,OAAU,SAAU,OAAU,SAAU,MAAS,SAAU,KAAQ,SAAU,OAAU,SAAU,OAAU,OAAQ,OAAU,OAAQ,KAAQ,SAAU,KAAQ,SAAU,MAAS,SAAU,MAAS,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,OAAQ,IAAO,YAAgB,IAAO,YAAgB,KAAQ,SAAU,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,SAAU,KAAQ,OAAQ,KAAQ,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,OAAU,SAAU,IAAO,SAAU,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,OAAU,SAAU,eAAkB,SAAU,KAAQ,SAAU,KAAQ,SAAU,IAAO,YAAgB,IAAO,SAAU,KAAQ,SAAU,KAAQ,SAAU,QAAW,SAAU,KAAQ,YAAgB,KAAQ,SAAU,KAAQ,YAAgB,KAAQ,YAAgB,IAAO,SAAU,KAAQ,QAAS,EAC3m3C,gBAAkB,CAAE,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,IAAO,IAAK,IAAO,IAAK,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,IAAO,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,IAAO,OAAQ,IAAO,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,GAAM,IAAK,GAAM,IAAK,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,MAAS,OAAQ,GAAM,IAAK,GAAM,IAAK,KAAQ,OAAQ,MAAS,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,IAAO,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,OAAU,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,MAAS,OAAQ,KAAQ,IAAK,KAAQ,IAAK,MAAS,OAAQ,IAAO,OAAQ,IAAO,OAAQ,KAAQ,OAAQ,IAAO,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,MAAS,OAAQ,MAAS,OAAQ,OAAU,OAAQ,OAAU,OAAQ,IAAO,OAAQ,KAAQ,OAAQ,KAAQ,OAAQ,OAAU,OAAQ,OAAU,OAAQ,IAAO,OAAQ,KAAQ,MAAO,EACnvD,iBAAmB,CAAE,EAAK,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,SAAU,IAAO,QAAS,EAC9e,2BAA6B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,OAAO,EAI3xB,mBAAqB,OAAO,aAE5B,OAAS,CAAC,EACViB,gBAAiB,OAAO,eACxB,IAAM,SAAUC,QAAQ,aAAc,CACzC,OAAOD,gBAAe,KAAKC,QAAQ,YAAY,CAChD,EAEI,SAAW,SAAU,MAAO,MAAO,CAGtC,QAFI7B,OAAQ,GACR,OAAS,MAAM,OACZ,EAAEA,OAAQ,QAChB,GAAI,MAAMA,MAAK,GAAK,MACnB,MAAO,GAGT,MAAO,EACR,EAEI,MAAQ,SAAU,QAAS,SAAU,CACxC,GAAI,CAAC,QACJ,OAAO,SAER,IAAI,OAAS,CAAC,EACV8B,KACJ,IAAKA,QAAO,SAGX,OAAOA,IAAG,EAAI,IAAI,QAASA,IAAG,EAAI,QAAQA,IAAG,EAAI,SAASA,IAAG,EAE9D,OAAO,MACR,EAGI,kBAAoB,SAAU,UAAW,OAAQ,CACpD,IAAI,OAAS,GACb,OAAK,WAAa,OAAU,WAAa,OAAW,UAAY,SAK3D,QACH,WAAW,2DAA2D,EAEhE,UAEJ,IAAI,iBAAkB,SAAS,GAC9B,QACH,WAAW,gCAAgC,EAErC,iBAAiB,SAAS,IAE9B,QAAU,SAAS,2BAA4B,SAAS,GAC3D,WAAW,gCAAgC,EAExC,UAAY,QACf,WAAa,MACb,QAAU,mBAAmB,YAAc,GAAK,KAAQ,KAAM,EAC9D,UAAY,MAAS,UAAY,MAElC,QAAU,mBAAmB,SAAS,EAC/B,OACR,EAEI,UAAY,SAAU,UAAW,CACpC,MAAO,MAAQ,UAAU,SAAS,EAAE,EAAE,YAAY,EAAI,GACvD,EAEI,UAAY,SAAU,UAAW,CACpC,MAAO,KAAO,UAAY,GAC3B,EAEI,WAAa,SAAU,QAAS,CACnC,MAAM,MAAM,gBAAkB,OAAO,CACtC,EAII,OAAS,SAAU,OAAQ,QAAS,CACvC,QAAU,MAAM,QAAS,OAAO,OAAO,EACvC,IAAI,OAAS,QAAQ,OACjB,QAAU,yBAAyB,KAAK,MAAM,GACjD,WAAW,sBAAsB,EAElC,IAAI,iBAAmB,QAAQ,iBAC3B,mBAAqB,QAAQ,mBAC7B,mBAAqB,QAAQ,mBAC7B,gBAAkB,QAAQ,QAAU,UAAY,UAEhD,gBAAkB,SAAU,OAAQ,CACvC,OAAO,gBAAgB,OAAO,WAAW,CAAC,CAAC,CAC5C,EAEA,OAAI,kBAEH,OAAS,OAAO,QAAQ,oBAAqB,SAAU,OAAQ,CAE9D,OAAI,oBAAsB,IAAI,UAAW,MAAM,EACvC,IAAM,UAAU,MAAM,EAAI,IAE3B,gBAAgB,MAAM,CAC9B,CAAC,EAGG,qBACH,OAAS,OACP,QAAQ,cAAe,QAAQ,EAC/B,QAAQ,cAAe,QAAQ,EAC/B,QAAQ,gBAAiB,SAAS,GAGjC,qBAEH,OAAS,OAAO,QAAQ,oBAAqB,SAAUC,QAAQ,CAE9D,MAAO,IAAM,UAAUA,OAAM,EAAI,GAClC,CAAC,IAGQ,oBAGL,qBACJ,OAAS,OAAO,QAAQ,YAAa,SAAUA,QAAQ,CACtD,MAAO,IAAM,UAAUA,OAAM,EAAI,GAClC,CAAC,GAIF,OAAS,OACP,QAAQ,cAAe,QAAQ,EAC/B,QAAQ,cAAe,QAAQ,EAEjC,OAAS,OAAO,QAAQ,oBAAqB,SAAUA,QAAQ,CAE9D,MAAO,IAAM,UAAUA,OAAM,EAAI,GAClC,CAAC,GACU,qBAGX,OAAS,OAAO,QAAQ,YAAa,eAAe,GAE9C,OAEL,QAAQ,mBAAoB,SAAU,GAAI,CAE1C,IAAI,KAAO,GAAG,WAAW,CAAC,EACtB,IAAM,GAAG,WAAW,CAAC,EACrB,WAAa,KAAO,OAAU,KAAQ,IAAM,MAAS,MACzD,OAAO,gBAAgB,SAAS,CACjC,CAAC,EAGA,QAAQ,kBAAmB,eAAe,CAC7C,EAEA,OAAO,QAAU,CAChB,mBAAsB,GACtB,iBAAoB,GACpB,OAAU,GACV,mBAAsB,GACtB,QAAW,EACZ,EAEA,IAAI,OAAS,SAAUhB,MAAM,QAAS,CACrC,QAAU,MAAM,QAAS,OAAO,OAAO,EACvC,IAAI,OAAS,QAAQ,OACrB,OAAI,QAAU,mBAAmB,KAAKA,KAAI,GACzC,WAAW,+BAA+B,EAEpCA,MAAK,QAAQ,YAAa,SAAU,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CAC9E,IAAI,UACA,UACA,UACA,UACA,UACAE,MAEJ,OAAI,IACH,UAAY,GAEL,UAAU,SAAS,GAGvB,IAIH,UAAY,GACZA,MAAO,GACHA,OAAQ,QAAQ,kBACf,QAAUA,OAAQ,KACrB,WAAW,yCAAyC,EAE9C,KAEH,QACH,WACC,6DACD,EAGM,gBAAgB,SAAS,GAAKA,OAAQ,MAI3C,IAEH,UAAY,GACZ,UAAY,GACR,QAAU,CAAC,WACd,WAAW,uDAAuD,EAEnE,UAAY,SAAS,UAAW,EAAE,EAC3B,kBAAkB,UAAW,MAAM,GAGvC,IAEH,UAAY,GACZ,UAAY,GACR,QAAU,CAAC,WACd,WAAW,uDAAuD,EAEnE,UAAY,SAAS,UAAW,EAAE,EAC3B,kBAAkB,UAAW,MAAM,IAKvC,QACH,WACC,6DACD,EAEM,GACR,CAAC,CACF,EAEA,OAAO,QAAU,CAChB,iBAAoB,GACpB,OAAU,EACX,EAEA,IAAIe,QAAS,SAAU,OAAQ,CAC9B,OAAO,OAAO,QAAQ,YAAa,SAAU,GAAI,CAEhD,OAAO,UAAU,EAAE,CACpB,CAAC,CACF,EAIIC,IAAK,CACR,QAAW,QACX,OACA,OACA,OAAUD,QACV,SAAY,MACb,EAIA,GAAI,aAAe,CAAC,YAAY,SAC/B,GAAI,WACH,WAAW,QAAUC,QAErB,SAAS,OAAOA,IACf,IAAIA,IAAI,GAAG,IAAM,YAAY,GAAG,EAAIA,IAAG,GAAG,QAI5C,KAAK,GAAKA,GAGZ,GAAE,cAAc,CACjB,CAAC,EAOD,SAAS,kBACR,GACA,MACA,UACC,CACD,IAAIV,KAAM,WAAa,CAAC,EACpB,OAASA,KAAI,OACb,KAAOA,KAAI,KAEX,oBAAsB,MACtB,gBAAkB,oBAClB,OACH,gBACC,WAAa,oBAAsB,kBAC5B,oBAAsB,YACtB,oBAAsB,KAE3B,SACH,gBAAkB,MAAQ,gBAAkB,KAE7C,IAAI,WAAa,kBAAkB,MAAO,eAAe,EAEzD,GAAG,MAAQ,CACV,MAAQ,IAAM,MAAQ,IACtB,WAAY,KAAK,UAAU,KAAK,EAChC,SAAW,aAAe,oBAAsB,MAAQ,WAAa,GACtE,CACD,CAKA,SAAS,kBACR,MACA,WACC,CACD,IAAI,IAAM,WAAW,KAAK,EAC1B,OAAI,IAAI,MAAQ,KACP,MAAQ,IAAM,WAEd,QAAW,IAAI,IAAO,KAAQ,IAAI,IAAO,KAAO,WAAa,GAEvE,CAiBA,IAAI,IAAK,IAAK,IAAK,MAAO,cAAe,iBAIzC,SAAS,WAAW,IAAK,CAMxB,GAHA,IAAM,IAAI,KAAK,EACf,IAAM,IAAI,OAEN,IAAI,QAAQ,GAAG,EAAI,GAAK,IAAI,YAAY,GAAG,EAAI,IAAM,EAExD,OADA,MAAQ,IAAI,YAAY,GAAG,EACvB,MAAQ,GACJ,CACN,IAAK,IAAI,MAAM,EAAG,KAAK,EACvB,IAAK,IAAM,IAAI,MAAM,MAAQ,CAAC,EAAI,GACnC,EAEO,CACN,IAAK,IACL,IAAK,IACN,EAOF,IAHA,IAAM,IACN,MAAQ,cAAgB,iBAAmB,EAEpC,CAAC,IAAI,GACX,IAAM,KAAK,EAEP,cAAc,GAAG,EACpB,YAAY,GAAG,EACL,MAAQ,IAClB,aAAa,GAAG,EAIlB,MAAO,CACN,IAAK,IAAI,MAAM,EAAG,aAAa,EAC/B,IAAK,IAAI,MAAM,cAAgB,EAAG,gBAAgB,CACnD,CACD,CAEA,SAAS,MAAO,CACf,OAAO,IAAI,WAAW,EAAE,KAAK,CAC9B,CAEA,SAAS,KAAM,CACd,OAAO,OAAS,GACjB,CAEA,SAAS,cAAcW,KAAK,CAC3B,OAAOA,OAAQ,IAAQA,OAAQ,EAChC,CAEA,SAAS,aAAaA,KAAK,CAC1B,IAAI,UAAY,EAEhB,IADA,cAAgB,MACT,CAAC,IAAI,GAAG,CAEd,GADAA,KAAM,KAAK,EACP,cAAcA,IAAG,EAAG,CACvB,YAAYA,IAAG,EACf,QACD,CAGA,GAFIA,OAAQ,IAAQ,YAChBA,OAAQ,IAAQ,YAChB,YAAc,EAAG,CACpB,iBAAmB,MACnB,KACD,CACD,CACD,CAEA,SAAS,YAAYA,KAAK,CAEzB,QADI,YAAcA,KACX,CAAC,IAAI,IACXA,KAAM,KAAK,EACPA,OAAQ,cAAZ,CAIF,CAIA,IAAI,KAAO,YACP,MAAQ,eACR,WAAa,qCACb,cAAgB,iCAChB,cAAgB,WAChB,aAAe,WAEf,MAAQ,SACR,OAAS,kBACT,WAAa,wBAEb,OAAS,kBAET,YAAc,SACd,aAAe,gBAEf,mBAAqB,cAErB,iBAAmB,OAAO,GAAG,MAAM,EAEnC,oBAAsB,UAGtB,OACA,WACA,WACA,cACA,eACA,iBACA,oBACA,wBACA,eAEJ,SAAS,iBACR,IACA,MACA,OACC,CACD,MAAO,CACN,KAAM,EACN,IACA,UAAW,MACX,SAAU,aAAa,KAAK,EAC5B,YAAa,CAAC,EACd,OACA,SAAU,CAAC,CACZ,CACD,CAKA,SAAS,MACR,SACA,QACC,CACD,OAAS,QAAQ,MAAQ,SAEzB,iBAAmB,QAAQ,UAAY,GACvC,oBAAsB,QAAQ,aAAe,GAC7C,wBAA0B,QAAQ,iBAAmB,GACrD,IAAIC,eAAgB,QAAQ,eAAiB,GAC7C,eAAiB,SAAU,GAAI,CAC9B,MAAO,CAAC,EACP,GAAG,WACH,GAAG,SAAS,KAAK,GACjB,GAAG,SAAS,WAAW,GACvB,EAAE,GAAG,SAAS,GAAKA,eAAc,GAAG,SAAS,EAAE,EAAIA,eAAc,GAAG,GAAG,GAEzE,EACA,WAAa,oBAAoB,QAAQ,QAAS,eAAe,EACjE,cAAgB,oBAAoB,QAAQ,QAAS,kBAAkB,EACvE,eAAiB,oBAAoB,QAAQ,QAAS,mBAAmB,EAEzE,WAAa,QAAQ,WAErB,IAAI,MAAQ,CAAC,EACT,mBAAqB,QAAQ,qBAAuB,GACpD,iBAAmB,QAAQ,WAC3B,KACA,cACA,OAAS,GACT,MAAQ,GACR,OAAS,GAEb,SAAS,SAAS,IAAKf,OAAO,CACxB,SACJ,OAAS,GACT,OAAO,IAAKA,MAAK,EAEnB,CAEA,SAAS,aAAa,QAAS,CAyB9B,GAxBA,qBAAqB,OAAO,EACxB,CAAC,QAAU,CAAC,QAAQ,YACvB,QAAU,eAAe,QAAS,OAAO,GAGtC,CAAC,MAAM,QAAU,UAAY,OAE5B,KAAK,KAAO,QAAQ,QAAU,QAAQ,OAExC,qBAAqB,OAAO,EAE7B,eAAe,KAAM,CACpB,IAAK,QAAQ,OACb,MAAO,OACR,CAAC,GAED,SACC,+IAGA,CAAE,MAAO,QAAQ,KAAM,CACxB,GAGE,eAAiB,CAAC,QAAQ,UAC7B,GAAI,QAAQ,QAAU,QAAQ,KAC7B,oBAAoB,QAAS,aAAa,MACpC,CACN,GAAI,QAAQ,UAAW,CAItB,IAAI,KAAO,QAAQ,YAAc,aAC7B,cAAc,cAAgB,cAAc,YAAc,CAAC,IAAI,IAAI,EAAI,OAC5E,CACA,cAAc,SAAS,KAAK,OAAO,EACnC,QAAQ,OAAS,aAClB,CAKD,QAAQ,SAAW,QAAQ,SAAS,OAAO,SAAU,EAAG,CAAE,MAAO,CAAE,EAAG,SAAW,CAAC,EAElF,qBAAqB,OAAO,EAGxB,QAAQ,MACX,OAAS,IAEN,iBAAiB,QAAQ,GAAG,IAC/B,MAAQ,IAGT,QAAS,EAAI,EAAG,EAAI,eAAe,OAAQ,IAC1C,eAAe,CAAC,EAAE,QAAS,OAAO,CAEpC,CAEA,SAAS,qBAAqB,GAAI,CAEjC,GAAI,CAAC,MAEJ,QADI,UAEF,SAAW,GAAG,SAAS,GAAG,SAAS,OAAS,CAAC,IAC9C,SAAS,OAAS,GAClB,SAAS,OAAS,KAElB,GAAG,SAAS,IAAI,CAGnB,CAEA,SAAS,qBAAqB,GAAI,EAC7B,GAAG,MAAQ,QAAU,GAAG,MAAQ,aACnC,SACC,eAAkB,GAAG,IAAO,qEAE5B,CAAE,MAAO,GAAG,KAAM,CACnB,EAEG,GAAG,SAAS,eAAe,OAAO,GACrC,SACC,4FAEA,GAAG,YAAY,OAAO,CACvB,CAEF,CAEA,iBAAU,SAAU,CACnB,KAAM,OACN,WAAY,QAAQ,WACpB,WAAY,QAAQ,WACpB,iBAAkB,QAAQ,iBAC1B,qBAAsB,QAAQ,qBAC9B,4BAA6B,QAAQ,4BACrC,kBAAmB,QAAQ,SAC3B,kBAAmB,QAAQ,kBAC3B,MAAO,SAAe,IAAK,MAAO,MAAO,QAAS,IAAK,CAGtD,IAAI,GAAM,eAAiB,cAAc,IAAO,wBAAwB,GAAG,EAIvE,MAAQ,KAAO,QAClB,MAAQ,cAAc,KAAK,GAG5B,IAAI,QAAU,iBAAiB,IAAK,MAAO,aAAa,EACpD,KACH,QAAQ,GAAK,IAIT,QAAQ,oBACX,QAAQ,MAAQ,QAChB,QAAQ,IAAM,IACd,QAAQ,YAAc,QAAQ,UAAU,OAAO,SAAU,UAAW,KAAM,CACzE,iBAAU,KAAK,IAAI,EAAI,KAChB,SACR,EAAG,CAAC,CAAC,GAEN,MAAM,QAAQ,SAAU,KAAM,CACzB,mBAAmB,KAAK,KAAK,IAAI,GACpC,OACC,oGAEA,CACC,MAAO,KAAK,MAAQ,KAAK,KAAK,QAAQ,GAAG,EACzC,IAAK,KAAK,MAAQ,KAAK,KAAK,MAC7B,CACD,CAEF,CAAC,EAGE,eAAe,OAAO,GAAK,CAAC,kBAAkB,IACjD,QAAQ,UAAY,GACpB,OACC,0IAEM,IAAM,iCACZ,CAAE,MAAO,QAAQ,KAAM,CACxB,GAID,QAAS,EAAI,EAAG,EAAI,cAAc,OAAQ,IACzC,QAAU,cAAc,CAAC,EAAE,QAAS,OAAO,GAAK,QAG5C,SACJ,WAAW,OAAO,EACd,QAAQ,MACX,OAAS,KAGP,iBAAiB,QAAQ,GAAG,IAC/B,MAAQ,IAEL,OACH,gBAAgB,OAAO,EACZ,QAAQ,YAEnB,WAAW,OAAO,EAClB,UAAU,OAAO,EACjB,YAAY,OAAO,GAGf,OACJ,KAAO,QAEN,qBAAqB,IAAI,GAItB,MAIJ,aAAa,OAAO,GAHpB,cAAgB,QAChB,MAAM,KAAK,OAAO,EAIpB,EAEA,IAAK,SAAa,IAAK,MAAO,MAAO,CACpC,IAAI,QAAU,MAAM,MAAM,OAAS,CAAC,EAEpC,MAAM,QAAU,EAChB,cAAgB,MAAM,MAAM,OAAS,CAAC,EAClC,QAAQ,oBACX,QAAQ,IAAM,OAEf,aAAa,OAAO,CACrB,EAEA,MAAO,SAAeJ,MAAM,MAAO,IAAK,CACvC,GAAI,CAAC,cAAe,CAEdA,QAAS,SACZ,SACC,qEACA,CAAE,KAAa,CAChB,GACWA,MAAOA,MAAK,KAAK,IAC5B,SACE,SAAYA,MAAO,0CACpB,CAAE,KAAa,CAChB,EAGF,MACD,CAGA,GAAI,QACH,cAAc,MAAQ,YACtB,cAAc,SAAS,cAAgBA,OAIxC,KAAI,SAAW,cAAc,SAiB7B,GAhBI,OAASA,MAAK,KAAK,EACtBA,MAAO,UAAU,aAAa,EAAIA,MAAO,iBAAiBA,KAAI,EACnD,SAAS,OAGV,iBACN,mBAAqB,WAGxBA,MAAO,YAAY,KAAKA,KAAI,EAAI,GAAK,IAErCA,MAAO,IAGRA,MAAO,mBAAqB,IAAM,GAVlCA,MAAO,GAYJA,MAAM,CACL,CAAC,OAAS,mBAAqB,aAElCA,MAAOA,MAAK,QAAQ,aAAc,GAAG,GAEtC,IAAI,IACA,MACA,CAAC,QAAUA,QAAS,MAAQ,IAAM,UAAUA,MAAM,UAAU,GAC/D,MAAQ,CACP,KAAM,EACN,WAAY,IAAI,WAChB,OAAQ,IAAI,OACZ,KAAMA,KACP,GACUA,QAAS,KAAO,CAAC,SAAS,QAAU,SAAS,SAAS,OAAS,CAAC,EAAE,OAAS,OACrF,MAAQ,CACP,KAAM,EACN,KAAMA,KACP,GAEG,QACC,QAAQ,oBACX,MAAM,MAAQ,MACd,MAAM,IAAM,KAEb,SAAS,KAAK,KAAK,EAErB,EACD,EACA,QAAS,SAAiBA,MAAM,MAAO,IAAK,CAG3C,GAAI,cAAe,CAClB,IAAI,MAAQ,CACX,KAAM,EACN,KAAMA,MACN,UAAW,EACZ,EACI,QAAQ,oBACX,MAAM,MAAQ,MACd,MAAM,IAAM,KAEb,cAAc,SAAS,KAAK,KAAK,CAClC,CACD,CACD,CAAC,EACM,IACR,CAEA,SAAS,WAAW,GAAI,CACnB,iBAAiB,GAAI,OAAO,GAAK,OACpC,GAAG,IAAM,GAEX,CAEA,SAAS,gBAAgB,GAAI,CAC5B,IAAI,KAAO,GAAG,UACVU,KAAM,KAAK,OACf,GAAIA,KAEH,QADI,MAAQ,GAAG,MAAQ,IAAI,MAAMA,IAAG,EAC3B,EAAI,EAAG,EAAIA,KAAK,IACxB,MAAM,CAAC,EAAI,CACV,KAAM,KAAK,CAAC,EAAE,KACd,MAAO,KAAK,UAAU,KAAK,CAAC,EAAE,KAAK,CACpC,EACI,KAAK,CAAC,EAAE,OAAS,OACpB,MAAM,CAAC,EAAE,MAAQ,KAAK,CAAC,EAAE,MACzB,MAAM,CAAC,EAAE,IAAM,KAAK,CAAC,EAAE,UAGd,GAAG,MAEd,GAAG,MAAQ,GAEb,CAEA,SAAS,eACR,QACA,QACC,CACD,WAAW,OAAO,EAIlB,QAAQ,MACP,CAAC,QAAQ,KACT,CAAC,QAAQ,aACT,CAAC,QAAQ,UAAU,OAGpB,WAAW,OAAO,EAClB,mBAAmB,OAAO,EAC1B,kBAAkB,OAAO,EACzB,iBAAiB,OAAO,EACxB,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,IACtC,QAAU,WAAW,CAAC,EAAE,QAAS,OAAO,GAAK,QAE9C,oBAAa,OAAO,EACb,OACR,CAEA,SAAS,WAAW,GAAI,CACvB,IAAI,IAAM,eAAe,GAAI,KAAK,EAClC,GAAI,IAAK,CAQP,GANI,GAAG,MAAQ,YACd,OACC,sEACA,kBAAkB,GAAI,KAAK,CAC5B,EAEG,GAAG,IAAK,CACX,IAAI,SAAW,GAAG,WAAa,GAAG,UAC9B,OAAS,GAAG,OACZ,UAAY,WAAa,KAAO,QAAU,OAAO,MAAQ,oBAC5D,OACC,oGAEA,kBAAkB,GAAI,KAAK,EAC3B,EACD,CAEF,CAED,GAAG,IAAM,GACV,CACD,CAEA,SAAS,WAAW,GAAI,CACvB,IAAIH,KAAM,eAAe,GAAI,KAAK,EAC9BA,OACH,GAAG,IAAMA,KACT,GAAG,SAAW,WAAW,EAAE,EAE7B,CAEA,SAAS,WAAW,GAAI,CACvB,IAAI,IACJ,GAAK,IAAM,iBAAiB,GAAI,OAAO,EAAI,CAC1C,IAAI,IAAM,SAAS,GAAG,EAClB,IACH,OAAO,GAAI,GAAG,EAEd,OACE,6BAA+B,IAChC,GAAG,YAAY,OAAO,CACvB,CAEF,CACD,CAIA,SAAS,SAAS,IAAK,CACtB,IAAI,QAAU,IAAI,MAAM,UAAU,EAClC,GAAK,QACL,KAAI,IAAM,CAAC,EACX,IAAI,IAAM,QAAQ,CAAC,EAAE,KAAK,EAC1B,IAAI,MAAQ,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,cAAe,EAAE,EACnD,cAAgB,MAAM,MAAM,aAAa,EAC7C,OAAI,eACH,IAAI,MAAQ,MAAM,QAAQ,cAAe,EAAE,EAAE,KAAK,EAClD,IAAI,UAAY,cAAc,CAAC,EAAE,KAAK,EAClC,cAAc,CAAC,IAClB,IAAI,UAAY,cAAc,CAAC,EAAE,KAAK,IAGvC,IAAI,MAAQ,MAEN,IACR,CAEA,SAAS,UAAU,GAAI,CACtB,IAAI,IAAM,iBAAiB,GAAI,MAAM,EACrC,GAAI,IACH,GAAG,GAAK,IACR,eAAe,GAAI,CAClB,IACA,MAAO,EACR,CAAC,MACK,CACF,iBAAiB,GAAI,QAAQ,GAAK,OACrC,GAAG,KAAO,IAEX,IAAI,OAAS,iBAAiB,GAAI,WAAW,EACzC,SACH,GAAG,OAAS,OAEd,CACD,CAEA,SAAS,oBAAoB,GAAI,OAAQ,CACxC,IAAI,KAAO,gBAAgB,OAAO,QAAQ,EACtC,MAAQ,KAAK,GAChB,eAAe,KAAM,CACpB,IAAK,GAAG,OACR,MAAO,EACR,CAAC,EAED,OACC,MAAQ,GAAG,OAAU,YAAc,GAAG,OAAS,IAAO,QAAU,qBACzC,GAAG,IAAO,gCACjC,GAAG,YAAY,GAAG,OAAS,YAAc,QAAQ,CAClD,CAEF,CAEA,SAAS,gBAAgB,SAAU,CAElC,QADI,EAAI,SAAS,OACV,KAAK,CACX,GAAI,SAAS,CAAC,EAAE,OAAS,EACxB,OAAO,SAAS,CAAC,EAEb,SAAS,CAAC,EAAE,OAAS,KACxB,OACC,SAAa,SAAS,CAAC,EAAE,KAAK,KAAK,EAAK,kDAExC,SAAS,CAAC,CACX,EAED,SAAS,IAAI,CAEf,CACD,CAEA,SAAS,eAAe,GAAI,UAAW,CACjC,GAAG,eACP,GAAG,aAAe,CAAC,GAEpB,GAAG,aAAa,KAAK,SAAS,CAC/B,CAEA,SAAS,YAAY,GAAI,CACxB,IAAI,QAAU,iBAAiB,GAAI,QAAQ,EACvC,SAAW,OACd,GAAG,KAAO,GAEZ,CAIA,SAAS,mBAAmB,GAAI,CAC/B,IAAI,UACA,GAAG,MAAQ,YACd,UAAY,iBAAiB,GAAI,OAAO,EAEpC,WACH,OACC,0NAIA,GAAG,YAAY,MACf,EACD,EAED,GAAG,UAAY,WAAa,iBAAiB,GAAI,YAAY,IAClD,UAAY,iBAAiB,GAAI,YAAY,KAEpD,GAAG,SAAS,OAAO,GACtB,OACC,wDAA2D,GAAG,IAAO,oGAGrE,GAAG,YAAY,YAAY,EAC3B,EACD,EAED,GAAG,UAAY,WAIhB,IAAI,WAAa,eAAe,GAAI,MAAM,EAazC,GAZG,aACH,GAAG,WAAa,aAAe,KAAO,YAAc,WACpD,GAAG,kBAAoB,CAAC,EAAE,GAAG,SAAS,OAAO,GAAK,GAAG,SAAS,aAAa,GAGvE,GAAG,MAAQ,YAAc,CAAC,GAAG,WAChC,QAAQ,GAAI,OAAQ,WAAY,kBAAkB,GAAI,MAAM,CAAC,GAM1D,GAAG,MAAQ,WAAY,CAE1B,IAAI,YAAc,wBAAwB,GAAI,MAAM,EACpD,GAAI,YAAa,EAEX,GAAG,YAAc,GAAG,YACvB,OACC,qDACA,EACD,EAEG,GAAG,QAAU,CAAC,eAAe,GAAG,MAAM,GACzC,OACC,qFAEA,EACD,EAGF,IAAIA,KAAM,YAAY,WAAW,EAC7B,KAAOA,KAAI,KACX,QAAUA,KAAI,QAClB,GAAG,WAAa,KAChB,GAAG,kBAAoB,QACvB,GAAG,UAAY,YAAY,OAAS,mBACrC,CACD,KAAO,CAEN,IAAI,cAAgB,wBAAwB,GAAI,MAAM,EACtD,GAAI,cAAe,CAEZ,eAAe,EAAE,GACrB,OACC,uDACA,aACD,GAEG,GAAG,WAAa,GAAG,aACtB,OACC,qDACA,EACD,EAEG,GAAG,aACN,OACC,iHAEA,aACD,EAIF,IAAI,MAAQ,GAAG,cAAgB,GAAG,YAAc,CAAC,GAC7Ca,OAAQ,YAAY,aAAa,EACjC,OAASA,OAAM,KACf,UAAYA,OAAM,QAClB,cAAgB,MAAM,MAAM,EAAI,iBAAiB,WAAY,CAAC,EAAG,EAAE,EACvE,cAAc,WAAa,OAC3B,cAAc,kBAAoB,UAClC,cAAc,SAAW,GAAG,SAAS,OAAO,SAAU,EAAG,CACxD,GAAI,CAAC,EAAE,UACN,SAAE,OAAS,cACJ,EAET,CAAC,EACD,cAAc,UAAY,cAAc,OAAS,oBAEjD,GAAG,SAAW,CAAC,EAEf,GAAG,MAAQ,EACZ,CACD,CAEF,CAEA,SAAS,YAAY,QAAS,CAC7B,IAAI,KAAO,QAAQ,KAAK,QAAQ,OAAQ,EAAE,EAC1C,OAAK,OACA,QAAQ,KAAK,CAAC,IAAM,IACvB,KAAO,UAEP,OACC,gDACA,OACD,GAGK,aAAa,KAAK,IAAI,EAE1B,CAAE,KAAM,KAAK,MAAM,EAAG,EAAE,EAAG,QAAS,EAAK,EAEzC,CAAE,KAAO,IAAO,KAAO,IAAO,QAAS,EAAM,CACjD,CAGA,SAAS,kBAAkB,GAAI,CAC1B,GAAG,MAAQ,SACd,GAAG,SAAW,eAAe,GAAI,MAAM,EACnC,GAAG,KACN,OACC,8JAGA,kBAAkB,GAAI,KAAK,CAC5B,EAGH,CAEA,SAAS,iBAAiB,GAAI,CAC7B,IAAI,SACC,QAAU,eAAe,GAAI,IAAI,KACrC,GAAG,UAAY,SAEZ,iBAAiB,GAAI,iBAAiB,GAAK,OAC9C,GAAG,eAAiB,GAEtB,CAEA,SAAS,aAAa,GAAI,CACzB,IAAI,KAAO,GAAG,UACV,EAAG,EAAG,KAAM,QAAS,MAAO,UAAW,QAAS,UACpD,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAGnC,GAFA,KAAO,QAAU,KAAK,CAAC,EAAE,KACzB,MAAQ,KAAK,CAAC,EAAE,MACZ,MAAM,KAAK,IAAI,EASlB,GAPA,GAAG,YAAc,GAEjB,UAAY,eAAe,KAAK,QAAQ,MAAO,EAAE,CAAC,EAE9C,YACH,KAAO,KAAK,QAAQ,WAAY,EAAE,GAE/B,OAAO,KAAK,IAAI,EACnB,KAAO,KAAK,QAAQ,OAAQ,EAAE,EAC9B,MAAQ,aAAa,KAAK,EAC1B,UAAY,aAAa,KAAK,IAAI,EAC9B,YACH,KAAO,KAAK,MAAM,EAAG,EAAE,GAGvB,MAAM,KAAK,EAAE,SAAW,GAExB,OACE,uEAA0E,KAAO,GACnF,EAEG,YACC,UAAU,MAAQ,CAAC,YACtB,KAAO,SAAS,IAAI,EAChB,OAAS,cAAe,KAAO,cAEhC,UAAU,OAAS,CAAC,YACvB,KAAO,SAAS,IAAI,GAEjB,UAAU,OACb,QAAU,kBAAkB,MAAO,QAAQ,EACtC,UAuBJ,WACC,GACC,cAAkB,KAAO,IAC1B,QACA,KACA,GACA,OACA,KAAK,CAAC,EACN,EACD,GA/BA,WACC,GACC,UAAa,SAAS,IAAI,EAC3B,QACA,KACA,GACA,OACA,KAAK,CAAC,CACP,EACI,UAAU,IAAI,IAAM,SAAS,IAAI,GACpC,WACC,GACC,UAAa,UAAU,IAAI,EAC5B,QACA,KACA,GACA,OACA,KAAK,CAAC,CACP,KAiBC,WAAa,UAAU,MAC3B,CAAC,GAAG,WAAa,oBAAoB,GAAG,IAAK,GAAG,SAAS,KAAM,IAAI,EAEnE,QAAQ,GAAI,KAAM,MAAO,KAAK,CAAC,EAAG,SAAS,EAE3C,QAAQ,GAAI,KAAM,MAAO,KAAK,CAAC,EAAG,SAAS,UAElC,KAAK,KAAK,IAAI,EACxB,KAAO,KAAK,QAAQ,KAAM,EAAE,EAC5B,UAAY,aAAa,KAAK,IAAI,EAC9B,YACH,KAAO,KAAK,MAAM,EAAG,EAAE,GAExB,WAAW,GAAI,KAAM,MAAO,UAAW,GAAO,OAAQ,KAAK,CAAC,EAAG,SAAS,MAClE,CACN,KAAO,KAAK,QAAQ,MAAO,EAAE,EAE7B,IAAI,SAAW,KAAK,MAAM,KAAK,EAC3B,IAAM,UAAY,SAAS,CAAC,EAChC,UAAY,GACR,MACH,KAAO,KAAK,MAAM,EAAG,EAAE,IAAI,OAAS,EAAE,EAClC,aAAa,KAAK,GAAG,IACxB,IAAM,IAAI,MAAM,EAAG,EAAE,EACrB,UAAY,KAGd,aAAa,GAAI,KAAM,QAAS,MAAO,IAAK,UAAW,UAAW,KAAK,CAAC,CAAC,EACrE,OAAS,SACZ,mBAAmB,GAAI,KAAK,CAE9B,KACM,CAEN,CACC,IAAI,IAAM,UAAU,MAAO,UAAU,EACjC,KACH,OACC,KAAO,KAAQ,MAAQ,qKAIvB,KAAK,CAAC,CACP,CAEF,CACA,QAAQ,GAAI,KAAM,KAAK,UAAU,KAAK,EAAG,KAAK,CAAC,CAAC,EAG5C,CAAC,GAAG,WACP,OAAS,SACT,oBAAoB,GAAG,IAAK,GAAG,SAAS,KAAM,IAAI,GAClD,QAAQ,GAAI,KAAM,OAAQ,KAAK,CAAC,CAAC,CAEnC,CAEF,CAEA,SAAS,WAAW,GAAI,CAEvB,QADI,OAAS,GACN,QAAQ,CACd,GAAI,OAAO,MAAQ,OAClB,MAAO,GAER,OAAS,OAAO,MACjB,CACA,MAAO,EACR,CAEA,SAAS,eAAe,KAAM,CAC7B,IAAI,MAAQ,KAAK,MAAM,UAAU,EACjC,GAAI,MAAO,CACV,IAAI,IAAM,CAAC,EACX,aAAM,QAAQ,SAAU,EAAG,CAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAI,EAAM,CAAC,EAC/C,GACR,CACD,CAEA,SAAS,aAAa,MAAO,CAE5B,QADI,IAAM,CAAC,EACF,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAI,EAAG,IAEvC,IAAI,MAAM,CAAC,EAAE,IAAI,GAAK,CAAC,MAAQ,CAAC,QAEhC,OAAO,wBAA0B,MAAM,CAAC,EAAE,KAAM,MAAM,CAAC,CAAC,EAEzD,IAAI,MAAM,CAAC,EAAE,IAAI,EAAI,MAAM,CAAC,EAAE,MAE/B,OAAO,GACR,CAGA,SAAS,UAAU,GAAI,CACtB,OAAO,GAAG,MAAQ,UAAY,GAAG,MAAQ,OAC1C,CAEA,SAAS,eAAe,GAAI,CAC3B,OACC,GAAG,MAAQ,SACV,GAAG,MAAQ,WACX,CAAC,GAAG,SAAS,MACb,GAAG,SAAS,OAAS,kBAGxB,CAEA,IAAI,QAAU,eACV,WAAa,UAGjB,SAAS,cAAc,MAAO,CAE7B,QADI,IAAM,CAAC,EACF,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACtC,IAAI,KAAO,MAAM,CAAC,EACb,QAAQ,KAAK,KAAK,IAAI,IAC1B,KAAK,KAAO,KAAK,KAAK,QAAQ,WAAY,EAAE,EAC5C,IAAI,KAAK,IAAI,EAEf,CACA,OAAO,GACR,CAEA,SAAS,mBAAmB,GAAI,MAAO,CAEtC,QADI,IAAM,GACH,KACF,IAAI,KAAO,IAAI,QAAU,OAC5B,OACC,IAAO,GAAG,IAAO,aAAgB,MAAQ,sRAKzC,GAAG,YAAY,SAAS,CACzB,EAED,IAAM,IAAI,MAEZ,CAIA,SAAS,iBAAiB,GAAI,QAAS,CACtC,GAAI,GAAG,MAAQ,QAAS,CACvB,IAAI,IAAM,GAAG,SACb,GAAI,CAAC,IAAI,SAAS,EACjB,OAGD,IAAI,YAQJ,IAPI,IAAI,OAAO,GAAK,IAAI,aAAa,KACpC,YAAc,eAAe,GAAI,MAAM,GAEpC,CAAC,IAAI,MAAQ,CAAC,aAAe,IAAI,QAAQ,IAC5C,YAAc,IAAO,IAAI,QAAQ,EAAK,UAGnC,YAAa,CAChB,IAAI,YAAc,iBAAiB,GAAI,OAAQ,EAAI,EAC/C,iBAAmB,YAAe,MAAQ,YAAc,IAAO,GAC/D,QAAU,iBAAiB,GAAI,SAAU,EAAI,GAAK,KAClD,gBAAkB,iBAAiB,GAAI,YAAa,EAAI,EAExD,QAAU,gBAAgB,EAAE,EAEhC,WAAW,OAAO,EAClB,WAAW,QAAS,OAAQ,UAAU,EACtC,eAAe,QAAS,OAAO,EAC/B,QAAQ,UAAY,GACpB,QAAQ,GAAK,IAAM,YAAc,iBAAmB,iBACpD,eAAe,QAAS,CACvB,IAAK,QAAQ,GACb,MAAO,OACR,CAAC,EAED,IAAI,QAAU,gBAAgB,EAAE,EAChC,iBAAiB,QAAS,QAAS,EAAI,EACvC,WAAW,QAAS,OAAQ,OAAO,EACnC,eAAe,QAAS,OAAO,EAC/B,eAAe,QAAS,CACvB,IAAK,IAAM,YAAc,cAAgB,iBACzC,MAAO,OACR,CAAC,EAED,IAAI,QAAU,gBAAgB,EAAE,EAChC,wBAAiB,QAAS,QAAS,EAAI,EACvC,WAAW,QAAS,QAAS,WAAW,EACxC,eAAe,QAAS,OAAO,EAC/B,eAAe,QAAS,CACvB,IAAK,YACL,MAAO,OACR,CAAC,EAEG,QACH,QAAQ,KAAO,GACL,kBACV,QAAQ,OAAS,iBAGX,OACR,CACD,CACD,CAEA,SAAS,gBAAgB,GAAI,CAC5B,OAAO,iBAAiB,GAAG,IAAK,GAAG,UAAU,MAAM,EAAG,GAAG,MAAM,CAChE,CAEA,IAAI,MAAQ,CACX,gBACD,EAEI,QAAU,CACb,MACA,MACA,KACD,EAII,OAIA,YAAc,MAElB,SAAS,QACR,GACA,IACA,MACC,CACD,OAAS,MACT,IAAI,MAAQ,IAAI,MACZ,UAAY,IAAI,UAChB,IAAM,GAAG,IACT,KAAO,GAAG,SAAS,KAcvB,GATK,MAAQ,SAAW,OAAS,QAC/B,OACC,IAAO,GAAG,IAAO,aAAgB,MAAQ;AAAA,gEAEzC,GAAG,YAAY,SAAS,CACzB,EAIE,GAAG,UACN,yBAAkB,GAAI,MAAO,SAAS,EAE/B,GACD,GAAI,MAAQ,SAClB,UAAU,GAAI,MAAO,SAAS,UACpB,MAAQ,SAAW,OAAS,WACtC,iBAAiB,GAAI,MAAO,SAAS,UAC3B,MAAQ,SAAW,OAAS,QACtC,cAAc,GAAI,MAAO,SAAS,UACxB,MAAQ,SAAW,MAAQ,WACrC,gBAAgB,GAAI,MAAO,SAAS,MAEpC,0BAAkB,GAAI,MAAO,SAAS,EAE/B,GAIR,MAAO,EACR,CAEA,SAAS,iBACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,aAAe,eAAe,GAAI,OAAO,GAAK,OAC9C,iBAAmB,eAAe,GAAI,YAAY,GAAK,OACvD,kBAAoB,eAAe,GAAI,aAAa,GAAK,QAC7D,QAAQ,GAAI,UACX,iBAAmB,MAAQ,QAClB,MAAQ,IAAM,aAAe,QACrC,mBAAqB,OACjB,KAAO,MAAQ,IACf,OAAS,MAAQ,IAAM,iBAAmB,IAEhD,EACA,WAAW,GAAI,SACd,WAAa,MAAQ,yCAEE,iBAAmB,MAAQ,kBAAoB,qCAExD,OAAS,MAAQ,aAAe,IAAM,cAAgB,6CAErC,kBAAkB,MAAO,mBAAmB,EAAK,mBAC5D,kBAAkB,MAAO,2CAA2C,EAAK,WACjF,kBAAkB,MAAO,KAAK,EAAK,IAC/C,KAAM,EACP,CACD,CAEA,SAAS,cACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,aAAe,eAAe,GAAI,OAAO,GAAK,OAClD,aAAe,OAAU,MAAQ,aAAe,IAAO,aACvD,QAAQ,GAAI,UAAY,MAAQ,MAAQ,IAAM,aAAe,GAAI,EACjE,WAAW,GAAI,SAAU,kBAAkB,MAAO,YAAY,EAAG,KAAM,EAAI,CAC5E,CAEA,SAAS,UACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,YAAc,0JAGJ,OAAS,UAAY,OAAS,KAExC,WAAa,4DACb,KAAO,uBAAyB,YAAc,IAClD,KAAO,KAAO,IAAO,kBAAkB,MAAO,UAAU,EACxD,WAAW,GAAI,SAAU,KAAM,KAAM,EAAI,CAC1C,CAEA,SAAS,gBACR,GACA,MACA,UACC,CACD,IAAI,KAAO,GAAG,SAAS,KAIvB,CACC,IAAI,QAAU,GAAG,SAAS,cAAc,GAAK,GAAG,SAAS,QAAQ,EAC7D,YAAc,GAAG,SAAS,aAAa,GAAK,GAAG,SAAS,OAAO,EACnE,GAAI,SAAW,CAAC,YAAa,CAC5B,IAAI,QAAU,GAAG,SAAS,cAAc,EAAI,eAAiB,SAC7D,OACC,QAAU,KAAQ,QAAU,gHAE5B,GAAG,YAAY,OAAO,CACvB,CACD,CACD,CAEA,IAAIb,KAAM,WAAa,CAAC,EACpB,KAAOA,KAAI,KACX,OAASA,KAAI,OACb,KAAOA,KAAI,KACX,qBAAuB,CAAC,MAAQ,OAAS,QACzC,MAAQ,KACT,SACA,OAAS,QACR,YACA,QAEA,gBAAkB,sBAClB,OACH,gBAAkB,8BAEf,SACH,gBAAkB,MAAQ,gBAAkB,KAG7C,IAAI,KAAO,kBAAkB,MAAO,eAAe,EAC/C,uBACH,KAAO,qCAAuC,MAG/C,QAAQ,GAAI,QAAU,IAAM,MAAQ,GAAI,EACxC,WAAW,GAAI,MAAO,KAAM,KAAM,EAAI,GAClC,MAAQ,SACX,WAAW,GAAI,OAAQ,gBAAgB,CAEzC,CAIA,SAAS,KAAK,GAAI,IAAK,CAClB,IAAI,OACP,QAAQ,GAAI,cAAgB,MAAS,IAAI,MAAS,IAAM,GAAG,CAE7D,CAIA,SAAS,KAAK,GAAI,IAAK,CAClB,IAAI,OACP,QAAQ,GAAI,YAAc,MAAS,IAAI,MAAS,IAAM,GAAG,CAE3D,CAEA,IAAI,WAAa,CAChB,MAAO,QACP,KACA,IACD,EAII,YAAc,CACjB,WAAY,GACZ,QACA,WACA,SACA,WACA,YACA,iBACA,cACA,gBACA,WAAY,cAAc,OAAO,CAClC,EAII,YACA,sBAEA,oBAAsB,OAAO,eAAe,EAahD,SAAS,SAAS,KAAM,QAAS,CAC3B,OACL,YAAc,oBAAoB,QAAQ,YAAc,EAAE,EAC1D,sBAAwB,QAAQ,eAAiB,GAEjD,WAAW,IAAI,EAEf,gBAAgB,KAAM,EAAK,EAC5B,CAEA,SAAS,gBAAgB,KAAM,CAC9B,OAAO,QACN,iFACC,KAAO,IAAM,KAAO,GACtB,CACD,CAEA,SAAS,WAAW,KAAM,CAEzB,GADA,KAAK,OAAS,SAAS,IAAI,EACvB,KAAK,OAAS,EAAG,CAIpB,GACC,CAAC,sBAAsB,KAAK,GAAG,GAC/B,KAAK,MAAQ,QACb,KAAK,SAAS,iBAAiB,GAAK,KAEpC,OAED,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAAK,CACrD,IAAI,MAAQ,KAAK,SAAS,CAAC,EAC3B,WAAW,KAAK,EACX,MAAM,SACV,KAAK,OAAS,GAEhB,CACA,GAAI,KAAK,aACR,QAAS,IAAM,EAAG,IAAM,KAAK,aAAa,OAAQ,IAAM,IAAK,MAAO,CACnE,IAAI,MAAQ,KAAK,aAAa,GAAG,EAAE,MACnC,WAAW,KAAK,EACX,MAAM,SACV,KAAK,OAAS,GAEhB,CAEF,CACD,CAEA,SAAS,gBAAgB,KAAM,QAAS,CACvC,GAAI,KAAK,OAAS,EAAG,CAOpB,IANI,KAAK,QAAU,KAAK,QACvB,KAAK,YAAc,SAKhB,KAAK,QAAU,KAAK,SAAS,QAAU,EAC1C,KAAK,SAAS,SAAW,GACzB,KAAK,SAAS,CAAC,EAAE,OAAS,GACxB,CACF,KAAK,WAAa,GAClB,MACD,MACC,KAAK,WAAa,GAEnB,GAAI,KAAK,SACR,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAChD,gBAAgB,KAAK,SAAS,CAAC,EAAG,SAAW,CAAC,CAAC,KAAK,GAAG,EAGzD,GAAI,KAAK,aACR,QAAS,IAAM,EAAG,IAAM,KAAK,aAAa,OAAQ,IAAM,IAAK,MAC5D,gBAAgB,KAAK,aAAa,GAAG,EAAE,MAAO,OAAO,CAGxD,CACD,CAEA,SAAS,SAAS,KAAM,CACvB,OAAI,KAAK,OAAS,EACV,GAEJ,KAAK,OAAS,EACV,GAED,CAAC,EAAE,KAAK,KACd,CAAC,KAAK,aACN,CAAC,KAAK,IAAM,CAAC,KAAK,KAClB,CAAC,aAAa,KAAK,GAAG,GACtB,sBAAsB,KAAK,GAAG,GAC9B,CAAC,2BAA2B,IAAI,GAChC,OAAO,KAAK,IAAI,EAAE,MAAM,WAAW,EAErC,CAEA,SAAS,2BAA2B,KAAM,CACzC,KAAO,KAAK,QAAQ,CAEnB,GADA,KAAO,KAAK,OACR,KAAK,MAAQ,WAChB,MAAO,GAER,GAAI,KAAK,IACR,MAAO,EAET,CACA,MAAO,EACR,CAIA,IAAI,QAAU,0DACV,WAAa,gBACb,aAAe,+FAGf,SAAW,CACd,IAAK,GACL,IAAK,EACL,MAAO,GACP,MAAO,GACP,GAAI,GACJ,KAAM,GACN,MAAO,GACP,KAAM,GACN,OAAU,CAAC,EAAG,EAAE,CACjB,EAGI,SAAW,CAEd,IAAK,CAAC,MAAO,QAAQ,EACrB,IAAK,MACL,MAAO,QAEP,MAAO,CAAC,IAAK,UAAU,EAEvB,GAAI,CAAC,KAAM,SAAS,EACpB,KAAM,CAAC,OAAQ,WAAW,EAC1B,MAAO,CAAC,QAAS,YAAY,EAC7B,KAAM,CAAC,OAAQ,WAAW,EAE1B,OAAU,CAAC,YAAa,SAAU,KAAK,CACxC,EAKI,SAAW,SAAU,UAAW,CAAE,MAAQ,MAAQ,UAAY,eAAkB,EAEhF,aAAe,CAClB,KAAM,4BACN,QAAS,2BACT,KAAM,SAAS,wCAAwC,EACvD,KAAM,SAAS,iBAAiB,EAChC,MAAO,SAAS,kBAAkB,EAClC,IAAK,SAAS,gBAAgB,EAC9B,KAAM,SAAS,iBAAiB,EAChC,KAAM,SAAS,2CAA2C,EAC1D,OAAQ,SAAS,2CAA2C,EAC5D,MAAO,SAAS,2CAA2C,CAC5D,EAEA,SAAS,YACR,OACAc,UACC,CACD,IAAI,OAASA,UAAW,YAAc,MAClC,eAAiB,GACjB,gBAAkB,GACtB,QAAS,QAAQ,OAAQ,CACxB,IAAI,YAAc,WAAW,OAAO,IAAI,CAAC,EACrC,OAAO,IAAI,GAAK,OAAO,IAAI,EAAE,QAChC,iBAAmB,KAAO,IAAM,YAAc,IAE9C,gBAAkB,IAAO,KAAO,KAAQ,YAAc,GAExD,CAEA,OADA,eAAiB,IAAO,eAAe,MAAM,EAAG,EAAE,EAAK,IACnD,gBACI,OAAS,MAAQ,eAAiB,KAAQ,gBAAgB,MAAM,EAAG,EAAE,EAAK,KAE1E,OAAS,cAElB,CAEA,SAAS,WAAW,QAAS,CAC5B,GAAI,CAAC,QACJ,MAAO,eAGR,GAAI,MAAM,QAAQ,OAAO,EACxB,MAAQ,IAAO,QAAQ,IAAI,SAAUC,SAAS,CAAE,OAAO,WAAWA,QAAO,CAAG,CAAC,EAAE,KAAK,GAAG,EAAK,IAG7F,IAAI,aAAe,aAAa,KAAK,QAAQ,KAAK,EAC9C,qBAAuB,QAAQ,KAAK,QAAQ,KAAK,EACjD,qBAAuB,aAAa,KAAK,QAAQ,MAAM,QAAQ,WAAY,EAAE,CAAC,EAElF,GAAK,QAAQ,UAKN,CACN,IAAI,KAAO,GACP,gBAAkB,GAClB,KAAO,CAAC,EACZ,QAAS,OAAO,QAAQ,UACvB,GAAI,aAAa,GAAG,EACnB,iBAAmB,aAAa,GAAG,EAE/B,SAAS,GAAG,GACf,KAAK,KAAK,GAAG,UAEJ,MAAQ,QAAS,CAC3B,IAAI,UAAa,QAAQ,UACzB,iBAAmB,SAClB,CAAC,OAAQ,QAAS,MAAO,MAAM,EAC7B,OAAO,SAAU,YAAa,CAAE,MAAO,CAAC,UAAU,WAAW,CAAG,CAAC,EACjE,IAAI,SAAU,YAAa,CAAE,MAAQ,UAAY,YAAc,KAAQ,CAAC,EACxE,KAAK,IAAI,CACZ,CACD,MACC,KAAK,KAAK,GAAG,EAGX,KAAK,SACR,MAAQ,aAAa,IAAI,GAGtB,kBACH,MAAQ,iBAET,IAAI,YAAc,aACd,UAAa,QAAQ,MAAS,0BAC/B,qBACE,WAAc,QAAQ,MAAS,2BAChC,qBACE,UAAa,QAAQ,MACtB,QAAQ,MACb,MAAQ,oBAAsB,KAAO,YAAc,GACpD,KA1CC,QAAI,cAAgB,qBACZ,QAAQ,MAER,qBAAuB,qBAAwB,UAAa,QAAQ,MAAU,QAAQ,OAAS,GAwCzG,CAEA,SAAS,aAAa,KAAM,CAC3B,MAIC,mCACC,KAAK,IAAI,aAAa,EAAE,KAAK,IAAI,EAAK,eAEzC,CAEA,SAAS,cAAc,IAAK,CAC3B,IAAI,OAAS,SAAS,IAAK,EAAE,EAC7B,GAAI,OACH,MAAQ,oBAAsB,OAE/B,IAAI,QAAU,SAAS,GAAG,EACtB,QAAU,SAAS,GAAG,EAC1B,MACC,qBACC,KAAK,UAAU,GAAG,EAAK,IACvB,KAAK,UAAU,OAAO,EAAK,eAEtB,KAAK,UAAU,OAAO,EAC5B,GAEF,CAIA,SAAS,GAAG,GAAI,IAAK,CAChB,IAAI,WACP,KAAK,mDAAmD,EAEzD,GAAG,cAAgB,SAAU,KAAM,CAAE,MAAQ,MAAQ,KAAO,IAAO,IAAI,MAAS,GAAM,CACvF,CAIA,SAAS,OAAO,GAAI,IAAK,CACxB,GAAG,SAAW,SAAU,KAAM,CAC7B,MAAQ,MAAQ,KAAO,KAAQ,GAAG,IAAO,KAAQ,IAAI,MAAS,KAAO,IAAI,WAAa,IAAI,UAAU,KAAO,OAAS,UAAY,IAAI,WAAa,IAAI,UAAU,KAAO,QAAU,IAAM,GACvL,CACD,CAIA,IAAI,eAAiB,CACpB,GACA,KAAM,OACN,MAAO,IACR,EAQI,aAAe,SAAsB,QAAS,CACjD,KAAK,QAAU,QACf,KAAK,KAAO,QAAQ,MAAQ,SAC5B,KAAK,WAAa,oBAAoB,QAAQ,QAAS,eAAe,EACtE,KAAK,WAAa,oBAAoB,QAAQ,QAAS,SAAS,EAChE,KAAK,WAAa,OAAO,OAAO,CAAC,EAAG,cAAc,EAAG,QAAQ,UAAU,EACvE,IAAIH,eAAgB,QAAQ,eAAiB,GAC7C,KAAK,eAAiB,SAAU,GAAI,CAAE,MAAO,CAAC,CAAC,GAAG,WAAa,CAACA,eAAc,GAAG,GAAG,CAAG,EACvF,KAAK,OAAS,EACd,KAAK,gBAAkB,CAAC,EACxB,KAAK,IAAM,EACZ,EAIA,SAAS,SACR,IACA,QACC,CACD,IAAI,MAAQ,IAAI,aAAa,OAAO,EAEhC,KAAO,IAAO,IAAI,MAAQ,SAAW,OAAS,WAAW,IAAK,KAAK,EAAK,YAC5E,MAAO,CACN,OAAS,qBAAuB,KAAO,IACvC,gBAAiB,MAAM,eACxB,CACD,CAEA,SAAS,WAAW,GAAI,MAAO,CAK9B,GAJI,GAAG,SACN,GAAG,IAAM,GAAG,KAAO,GAAG,OAAO,KAG1B,GAAG,YAAc,CAAC,GAAG,gBACxB,OAAO,UAAU,GAAI,KAAK,EACpB,GAAI,GAAG,MAAQ,CAAC,GAAG,cACzB,OAAO,QAAQ,GAAI,KAAK,EAClB,GAAI,GAAG,KAAO,CAAC,GAAG,aACxB,OAAO,OAAO,GAAI,KAAK,EACjB,GAAI,GAAG,IAAM,CAAC,GAAG,YACvB,OAAO,MAAM,GAAI,KAAK,EAChB,GAAI,GAAG,MAAQ,YAAc,CAAC,GAAG,YAAc,CAAC,MAAM,IAC5D,OAAO,YAAY,GAAI,KAAK,GAAK,SAC3B,GAAI,GAAG,MAAQ,OACrB,OAAO,QAAQ,GAAI,KAAK,EAGxB,IAAI,KACJ,GAAI,GAAG,UACN,KAAO,aAAa,GAAG,UAAW,GAAI,KAAK,MACrC,CACN,IAAI,MACA,CAAC,GAAG,OAAU,GAAG,KAAO,MAAM,eAAe,EAAE,KAClD,KAAO,UAAU,GAAI,KAAK,GAG3B,IAAI,SAAW,GAAG,eAAiB,KAAO,YAAY,GAAI,MAAO,EAAI,EACrE,KAAO,OAAU,GAAG,IAAO,KAAO,KAAQ,IAAM,KAAQ,KAAO,SAAY,IAAM,SAAY,IAAM,GACpG,CAEA,QAAS,EAAI,EAAG,EAAI,MAAM,WAAW,OAAQ,IAC5C,KAAO,MAAM,WAAW,CAAC,EAAE,GAAI,IAAI,EAEpC,OAAO,IAET,CAGA,SAAS,UAAU,GAAI,MAAO,CAC7B,GAAG,gBAAkB,GAIrB,IAAI,iBAAmB,MAAM,IAC7B,OAAI,GAAG,MACN,MAAM,IAAM,GAAG,KAEhB,MAAM,gBAAgB,KAAM,qBAAwB,WAAW,GAAI,KAAK,EAAK,GAAI,EACjF,MAAM,IAAM,iBACJ,OAAS,MAAM,gBAAgB,OAAS,IAAM,GAAG,YAAc,QAAU,IAAM,GACxF,CAGA,SAAS,QAAQ,GAAI,MAAO,CAE3B,GADA,GAAG,cAAgB,GACf,GAAG,IAAM,CAAC,GAAG,YAChB,OAAO,MAAM,GAAI,KAAK,EAChB,GAAI,GAAG,YAAa,CAG1B,QAFI,IAAM,GACN,OAAS,GAAG,OACT,QAAQ,CACd,GAAI,OAAO,IAAK,CACf,IAAM,OAAO,IACb,KACD,CACA,OAAS,OAAO,MACjB,CACA,OAAK,IAOG,MAAS,WAAW,GAAI,KAAK,EAAK,IAAO,MAAM,SAAY,IAAM,IAAM,KAN9E,MAAM,KACL,uDACA,GAAG,YAAY,QAAQ,CACxB,EACO,WAAW,GAAI,KAAK,EAG7B,KACC,QAAO,UAAU,GAAI,KAAK,CAE5B,CAEA,SAAS,MACR,GACA,MACA,OACA,SACC,CACD,UAAG,YAAc,GACV,gBAAgB,GAAG,aAAa,MAAM,EAAG,MAAO,OAAQ,QAAQ,CACxE,CAEA,SAAS,gBACR,WACA,MACA,OACA,SACC,CACD,GAAI,CAAC,WAAW,OACf,OAAO,UAAY,OAGpB,IAAI,UAAY,WAAW,MAAM,EACjC,GAAI,UAAU,IACb,MAAQ,IAAO,UAAU,IAAO,KAAQ,cAAc,UAAU,KAAK,EAAK,IAAO,gBAAgB,WAAY,MAAO,OAAQ,QAAQ,EAEpI,MAAQ,GAAM,cAAc,UAAU,KAAK,EAI5C,SAAS,cAAc,GAAI,CAC1B,OAAO,OACJ,OAAO,GAAI,KAAK,EAChB,GAAG,KACF,QAAQ,GAAI,KAAK,EACjB,WAAW,GAAI,KAAK,CACzB,CACD,CAEA,SAAS,OACR,GACA,MACA,OACA,UACC,CACD,IAAI,IAAM,GAAG,IACT,MAAQ,GAAG,MACX,UAAY,GAAG,UAAa,IAAO,GAAG,UAAc,GACpD,UAAY,GAAG,UAAa,IAAO,GAAG,UAAc,GAExD,OAAI,MAAM,eAAe,EAAE,GAC1B,GAAG,MAAQ,QACX,GAAG,MAAQ,YACX,CAAC,GAAG,KAEJ,MAAM,KACL,IAAO,GAAG,IAAO,WAAc,MAAQ,OAAS,IAAM,8HAGtD,GAAG,YAAY,OAAO,EACtB,EACD,EAGD,GAAG,aAAe,IACV,WAAa,MAAQ,KAAO,IAAM,cAC3B,MAAQ,UAAY,UAAY,aAChC,QAAU,YAAY,GAAI,KAAK,EAC7C,IACF,CAEA,SAAS,UAAU,GAAI,MAAO,CAC7B,IAAI,KAAO,IAIP,KAAO,cAAc,GAAI,KAAK,EAC9B,OAAQ,MAAQ,KAAO,KAGvB,GAAG,MACN,MAAQ,OAAU,GAAG,IAAO,KAGzB,GAAG,MACN,MAAQ,OAAU,GAAG,IAAO,KAEzB,GAAG,WACN,MAAQ,kBAGL,GAAG,MACN,MAAQ,aAGL,GAAG,YACN,MAAQ,QAAY,GAAG,IAAO,MAG/B,QAAS,EAAI,EAAG,EAAI,MAAM,WAAW,OAAQ,IAC5C,MAAQ,MAAM,WAAW,CAAC,EAAE,EAAE,EA+B/B,GA5BI,GAAG,QACN,MAAQ,SAAY,SAAS,GAAG,KAAK,EAAK,KAGvC,GAAG,QACN,MAAQ,YAAe,SAAS,GAAG,KAAK,EAAK,KAG1C,GAAG,SACN,MAAS,YAAY,GAAG,OAAQ,EAAK,EAAK,KAEvC,GAAG,eACN,MAAS,YAAY,GAAG,aAAc,EAAI,EAAK,KAI5C,GAAG,YAAc,CAAC,GAAG,YACxB,MAAQ,QAAW,GAAG,WAAc,KAGjC,GAAG,cACN,MAAS,eAAe,GAAI,GAAG,YAAa,KAAK,EAAK,KAGnD,GAAG,QACN,MAAQ,gBAAmB,GAAG,MAAM,MAAS,aAAgB,GAAG,MAAM,SAAY,eAAkB,GAAG,MAAM,WAAc,MAGxH,GAAG,eAAgB,CACtB,IAAI,eAAiB,kBAAkB,GAAI,KAAK,EAC5C,iBACH,MAAQ,eAAiB,IAE3B,CACA,YAAO,KAAK,QAAQ,KAAM,EAAE,EAAI,IAI5B,GAAG,eACN,KAAO,MAAQ,KAAO,KAAS,GAAG,IAAO,KAAS,SAAS,GAAG,YAAY,EAAK,KAG5E,GAAG,WACN,KAAO,GAAG,SAAS,IAAI,GAGpB,GAAG,gBACN,KAAO,GAAG,cAAc,IAAI,GAEtB,IACR,CAEA,SAAS,cAAc,GAAI,MAAO,CACjC,IAAI,KAAO,GAAG,WACd,GAAK,KACL,KAAI,IAAM,eACN,WAAa,GACb,EAAG,EAAG,IAAK,YACf,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAAK,CACxC,IAAM,KAAK,CAAC,EACZ,YAAc,GACd,IAAI,IAAM,MAAM,WAAW,IAAI,IAAI,EAC/B,MAGH,YAAc,CAAC,CAAC,IAAI,GAAI,IAAK,MAAM,IAAI,GAEpC,cACH,WAAa,GACb,KAAO,UAAc,IAAI,KAAQ,cAAmB,IAAI,QAAW,KAAQ,IAAI,MAAS,WAAc,IAAI,MAAS,gBAAmB,KAAK,UAAU,IAAI,KAAK,EAAM,KAAO,IAAI,IAAO,SAAW,IAAI,aAAe,IAAI,IAAO,IAAQ,IAAI,IAAO,KAAU,KAAO,IAAI,UAAa,cAAiB,KAAK,UAAU,IAAI,SAAS,EAAM,IAAM,KAE/U,CACA,GAAI,WACH,OAAO,IAAI,MAAM,EAAG,EAAE,EAAI,IAE5B,CAEA,SAAS,kBAAkB,GAAI,MAAO,CACrC,IAAI,IAAM,GAAG,SAAS,CAAC,EAOvB,IANI,GAAG,SAAS,SAAW,GAAK,IAAI,OAAS,IAC5C,MAAM,KACL,kEACA,CAAE,MAAO,GAAG,KAAM,CACnB,EAEG,KAAO,IAAI,OAAS,EAAG,CAC1B,IAAI,gBAAkB,SAAS,IAAK,MAAM,OAAO,EACjD,MAAQ,qCAAwC,gBAAgB,OAAU,sBAAyB,gBAAgB,gBAAgB,IAAI,SAAU,KAAM,CAAE,MAAQ,cAAgB,KAAO,GAAM,CAAC,EAAE,KAAK,GAAG,EAAK,IAC/M,CACD,CAEA,SAAS,eACR,GACA,MACA,MACC,CAKD,IAAI,iBAAmB,GAAG,KAAO,OAAO,KAAK,KAAK,EAAE,KAAK,SAAU,IAAK,CACvE,IAAI,KAAO,MAAM,GAAG,EACpB,OACC,KAAK,mBACL,KAAK,IACL,KAAK,KACL,kBAAkB,IAAI,CAExB,CAAC,EAMG,SAAW,CAAC,CAAC,GAAG,GAOpB,GAAI,CAAC,iBAEJ,QADI,OAAS,GAAG,OACT,QAAQ,CACd,GACE,OAAO,WAAa,OAAO,YAAc,qBAC1C,OAAO,IACN,CACD,iBAAmB,GACnB,KACD,CACI,OAAO,KACV,SAAW,IAEZ,OAAS,OAAO,MACjB,CAGD,IAAI,eAAiB,OAAO,KAAK,KAAK,EACpC,IAAI,SAAU,IAAK,CAAE,OAAO,cAAc,MAAM,GAAG,EAAG,KAAK,CAAG,CAAC,EAC/D,KAAK,GAAG,EAEV,MAAQ,mBAAqB,eAAiB,KAAO,iBAAmB,aAAe,KAAO,CAAC,kBAAoB,SAAY,eAAkB,KAAK,cAAc,EAAM,IAAM,GACjL,CAEA,SAAS,KAAKvB,KAAK,CAGlB,QAFI2B,MAAO,KACP,EAAI3B,KAAI,OACL,GACN2B,MAAQA,MAAO,GAAM3B,KAAI,WAAW,EAAE,CAAC,EAExC,OAAO2B,QAAS,CACjB,CAEA,SAAS,kBAAkB,GAAI,CAC9B,OAAI,GAAG,OAAS,EACX,GAAG,MAAQ,OACP,GAED,GAAG,SAAS,KAAK,iBAAiB,EAEnC,EACR,CAEA,SAAS,cACR,GACA,MACC,CACD,IAAI,eAAiB,GAAG,SAAS,YAAY,EAC7C,GAAI,GAAG,IAAM,CAAC,GAAG,aAAe,CAAC,eAChC,OAAO,MAAM,GAAI,MAAO,cAAe,MAAM,EAE9C,GAAI,GAAG,KAAO,CAAC,GAAG,aACjB,OAAO,OAAO,GAAI,MAAO,aAAa,EAEvC,IAAI,UAAY,GAAG,YAAc,oBAC9B,GACA,OAAO,GAAG,SAAS,EAClB,GAAK,YAAc,UAAY,aACrB,GAAG,MAAQ,WACrB,GAAG,IAAM,eACP,IAAO,GAAG,GAAM,MAAQ,YAAY,GAAI,KAAK,GAAK,aAAe,aAClE,YAAY,GAAI,KAAK,GAAK,YAC3B,WAAW,GAAI,KAAK,GAAK,IAEzB,aAAe,UAAY,GAAK,cACpC,MAAQ,SAAW,GAAG,YAAc,aAAiB,OAAS,GAAK,aAAe,GACnF,CAEA,SAAS,YACR,GACA,MACA,UACA,cACA,WACC,CACD,IAAI,SAAW,GAAG,SAClB,GAAI,SAAS,OAAQ,CACpB,IAAI,KAAO,SAAS,CAAC,EAErB,GAAI,SAAS,SAAW,GACvB,KAAK,KACL,KAAK,MAAQ,YACb,KAAK,MAAQ,OACZ,CACD,IAAI,kBAAoB,UACrB,MAAM,eAAe,IAAI,EAAI,KAAO,KACpC,GACH,MAAQ,IAAO,eAAiB,YAAY,KAAM,KAAK,EAAK,iBAC7D,CACA,IAAI,oBAAsB,UACvB,qBAAqB,SAAU,MAAM,cAAc,EACnD,EACC,IAAM,YAAc,QACxB,MAAQ,IAAO,SAAS,IAAI,SAAU,EAAG,CAAE,OAAO,IAAI,EAAG,KAAK,CAAG,CAAC,EAAE,KAAK,GAAG,EAAK,KAAO,oBAAuB,IAAM,oBAAuB,GAC7I,CACD,CAMA,SAAS,qBACR,SACAC,gBACC,CAED,QADI,IAAM,EACD,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,GAAK,SAAS,CAAC,EACnB,GAAI,GAAG,OAAS,EAGhB,IAAI,mBAAmB,EAAE,GACvB,GAAG,cAAgB,GAAG,aAAa,KAAK,SAAU,EAAG,CAAE,OAAO,mBAAmB,EAAE,KAAK,CAAG,CAAC,EAAI,CACjG,IAAM,EACN,KACD,EACIA,gBAAe,EAAE,GACnB,GAAG,cAAgB,GAAG,aAAa,KAAK,SAAU,EAAG,CAAE,OAAOA,gBAAe,EAAE,KAAK,CAAG,CAAC,KACzF,IAAM,GAER,CACA,OAAO,GACR,CAEA,SAAS,mBAAmB,GAAI,CAC/B,OAAO,GAAG,MAAQ,QAAa,GAAG,MAAQ,YAAc,GAAG,MAAQ,MACpE,CAEA,SAAS,QAAQ,KAAM,MAAO,CAC7B,OAAI,KAAK,OAAS,EACV,WAAW,KAAM,KAAK,EACnB,KAAK,OAAS,GAAK,KAAK,UAC3B,WAAW,IAAI,EAEf,QAAQ,IAAI,CAErB,CAEA,SAAS,QAAQxB,MAAM,CACtB,MAAQ,OAASA,MAAK,OAAS,EAC5BA,MAAK,WACL,yBAAyB,KAAK,UAAUA,MAAK,IAAI,CAAC,GAAK,GAC3D,CAEA,SAAS,WAAWyB,SAAS,CAC5B,MAAQ,MAAS,KAAK,UAAUA,SAAQ,IAAI,EAAK,GAClD,CAEA,SAAS,QAAQ,GAAI,MAAO,CAC3B,IAAI,SAAW,GAAG,UAAY,YAC1B,SAAW,YAAY,GAAI,KAAK,EAChC,IAAM,MAAQ,UAAY,SAAY,sBAAwB,SAAW,IAAO,IAChF,MAAQ,GAAG,OAAS,GAAG,aACxB,UAAU,GAAG,OAAS,CAAC,GAAG,OAAO,GAAG,cAAgB,CAAC,CAAC,EAAE,IAAI,SAAU,KAAM,CAC7E,MAAQ,CAEP,KAAM,SAAS,KAAK,IAAI,EACxB,MAAO,KAAK,MACZ,QAAS,KAAK,OACf,CACD,CAAC,CAAC,EACA,KACC,QAAU,GAAG,SAAS,QAAQ,EAClC,OAAK,OAAS,UAAY,CAAC,WAC1B,KAAO,SAEJ,QACH,KAAO,IAAM,OAEV,UACH,MAAQ,MAAQ,GAAK,SAAW,IAAM,SAEhC,IAAM,GACd,CAGA,SAAS,aACR,cACA,GACA,MACC,CACD,IAAI,SAAW,GAAG,eAAiB,KAAO,YAAY,GAAI,MAAO,EAAI,EACrE,MAAQ,MAAQ,cAAgB,IAAO,UAAU,GAAI,KAAK,GAAM,SAAY,IAAM,SAAY,IAAM,GACrG,CAEA,SAAS,SAAS,MAAO,CAGxB,QAFI,YAAc,GACd,aAAe,GACV,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACtC,IAAI,KAAO,MAAM,CAAC,EACd,MAAQ,yBAAyB,KAAK,KAAK,EAC3C,KAAK,QACR,cAAiB,KAAK,KAAQ,IAAM,MAAQ,IAE5C,aAAe,IAAQ,KAAK,KAAQ,KAAQ,MAAQ,GAEtD,CAEA,OADA,YAAc,IAAO,YAAY,MAAM,EAAG,EAAE,EAAK,IAC7C,aACK,MAAQ,YAAc,KAAQ,aAAa,MAAM,EAAG,EAAE,EAAK,KAE5D,WAET,CAGA,SAAS,yBAAyBzB,MAAM,CACvC,OAAOA,MACL,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,CAC/B,CAQA,IAAI,oBAAsB,IAAI,OAAO,MACpC,iMAGC,MAAM,GAAG,EAAE,KAAK,SAAS,EAAI,KAAK,EAGhC,iBAAmB,IAAI,OAAO,MACjC,qBACC,MAAM,GAAG,EAAE,KAAK,uBAAuB,EAAI,mBAAmB,EAG5D,cAAgB,iGAGpB,SAAS,aAAa,IAAKG,MAAM,CAC5B,KACH,UAAU,IAAKA,KAAI,CAErB,CAEA,SAAS,UAAU,KAAMA,MAAM,CAC9B,GAAI,KAAK,OAAS,EAAG,CACpB,QAAS,QAAQ,KAAK,SACrB,GAAI,MAAM,KAAK,IAAI,EAAG,CACrB,IAAI,MAAQ,KAAK,SAAS,IAAI,EAC9B,GAAI,MAAO,CACV,IAAIC,OAAQ,KAAK,YAAY,IAAI,EAC7B,OAAS,QACZ,SAAS,KAAO,UAAa,MAAQ,IAAOD,MAAMC,MAAK,EAC7C,OAAS,UAAY,KAAK,CAAC,IAAM,IAC3C,iCAAiC,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,EACxE,KAAK,KAAK,IAAI,EACxB,WAAW,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,EAE5D,gBAAgB,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,CAEnE,CACD,CAED,GAAI,KAAK,SACR,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACzC,UAAU,KAAK,SAAS,CAAC,EAAGD,KAAI,CAGnC,MAAW,KAAK,OAAS,GACxB,gBAAgB,KAAK,WAAY,KAAK,KAAMA,MAAM,IAAI,CAExD,CAEA,SAAS,WAAW,IAAKH,MAAMG,MAAMC,OAAO,CAC3C,IAAI,SAAW,IAAI,QAAQ,cAAe,EAAE,EACxC,aAAe,SAAS,MAAM,gBAAgB,EAC9C,cAAgB,SAAS,OAAO,aAAa,MAAQ,CAAC,IAAM,KAC/DD,MACC,4DACQ,aAAa,CAAC,EAAK,mBAAuBH,MAAK,KAAK,EAC5DI,MACD,EAED,gBAAgB,IAAKJ,MAAMG,MAAMC,MAAK,CACvC,CAEA,SAAS,SAAS,KAAMJ,MAAMG,MAAMC,OAAO,CAC1C,gBAAgB,KAAK,KAAO,GAAIJ,MAAMG,MAAMC,MAAK,EACjD,gBAAgB,KAAK,MAAO,cAAeJ,MAAMG,MAAMC,MAAK,EAC5D,gBAAgB,KAAK,UAAW,iBAAkBJ,MAAMG,MAAMC,MAAK,EACnE,gBAAgB,KAAK,UAAW,iBAAkBJ,MAAMG,MAAMC,MAAK,CACpE,CAEA,SAAS,gBACR,MACA,KACAJ,MACAG,MACAC,OACC,CACD,GAAI,OAAO,OAAU,SACpB,GAAI,CACH,IAAI,SAAU,OAAS,MAAQ,IAAK,CACrC,MAAY,CACXD,MAAM,WAAa,KAAO,KAAQ,MAAQ,oBAAwBH,MAAK,KAAK,EAAKI,MAAK,CACvF,CAEF,CAEA,SAAS,gBAAgB,IAAKJ,MAAMG,MAAMC,OAAO,CAChD,GAAI,CACH,IAAI,SAAU,UAAY,GAAI,CAC/B,OAAS,EAAG,CACX,IAAI,aAAe,IAAI,QAAQ,cAAe,EAAE,EAAE,MAAM,mBAAmB,EAE1ED,MADG,aAEF,qDACQ,aAAa,CAAC,EAAK;AAAA,oBAA4BH,MAAK,KAAK,EAKjE,uBAA0B,EAAE,QAAW;AAAA;AAAA,MAC9B,IAAM;AAAA;AAAA,oBACSA,MAAK,KAAK,EAAK;AAAA,EANvCI,MACD,CASF,CACD,CAEA,SAAS,iCAAiC,IAAKJ,MAAMG,MAAMC,OAAO,CACjE,GAAI,CACH,IAAI,SAAS,IAAK,EAAE,CACrB,OAAS,EAAG,CACXD,MACC,0CAA6C,EAAE,QAAW;AAAA;AAAA,MACjD,IAAM;AAAA;AAAA,oBACSH,MAAK,KAAK,EAAK;AAAA,EACvCI,MACD,CACD,CACD,CAIA,IAAI,MAAQ,EAEZ,SAAS,kBACR,OACA,MACA,IACC,CACG,QAAU,SAAQ,MAAQ,GAC1B,MAAQ,SAAQ,IAAM,OAAO,QAKjC,QAHI,MAAQ,OAAO,MAAM,OAAO,EAC5BsB,OAAQ,EACR,IAAM,CAAC,EACF,EAAI,EAAG,EAAI,MAAM,OAAQ,IAEjC,GADAA,QAAS,MAAM,CAAC,EAAE,OAAS,EACvBA,QAAS,MAAO,CACnB,QAAS,EAAI,EAAI,MAAO,GAAK,EAAI,OAAS,IAAMA,OAAO,IACtD,GAAI,IAAI,GAAK,GAAK,MAAM,QACxB,KAAI,KAAM,IAAM,EAAI,GAAM,SAAS,IAAK,EAAI,OAAO,EAAI,CAAC,EAAE,MAAM,EAAK,MAAS,MAAM,CAAC,CAAG,EACxF,IAAI,WAAa,MAAM,CAAC,EAAE,OAC1B,GAAI,IAAM,EAAG,CAEZ,IAAI,IAAM,OAASA,OAAQ,YAAc,EACrC,OAAS,IAAMA,OAAQ,WAAa,IAAM,IAAM,MACpD,IAAI,KAAK,SAAW,SAAS,IAAK,GAAG,EAAI,SAAS,IAAK,MAAM,CAAC,CAC/D,SAAW,EAAI,EAAG,CACjB,GAAI,IAAMA,OAAO,CAChB,IAAI,SAAW,KAAK,IAAI,IAAMA,OAAO,UAAU,EAC/C,IAAI,KAAK,SAAW,SAAS,IAAK,QAAQ,CAAC,CAC5C,CACAA,QAAS,WAAa,CACvB,EAED,KACD,CAED,OAAO,IAAI,KAAK;AAAA,CAAI,CACrB,CAEA,SAAS,SAAS9B,KAAK,EAAG,CACzB,IAAI,OAAS,GACb,GAAI,EAAI,EACP,KACK,EAAI,IAAK,QAAUA,MACvB,KAAO,EACH,KAAK,IACTA,MAAOA,KAGT,OAAO,MACR,CAMA,SAAS,eAAe,KAAM,OAAQ,CACrC,GAAI,CACH,OAAO,IAAI,SAAS,IAAI,CACzB,OAAS,IAAK,CACb,cAAO,KAAK,CAAE,IAAU,IAAW,CAAC,EAC7B,IACR,CACD,CAEA,SAAS,0BAA0B+B,SAAS,CAC3C,IAAI,MAAQ,OAAO,OAAO,IAAI,EAE9B,OAAO,SACN,SACA,QACA,GACC,CACD,QAAU,OAAO,CAAC,EAAG,OAAO,EAC5B,IAAI,QAAU,QAAQ,MAAQ,KAC9B,OAAO,QAAQ,KAKd,GAAI,CACH,IAAI,SAAS,UAAU,CACxB,OAAS,EAAG,CACP,EAAE,SAAS,EAAE,MAAM,iBAAiB,GACvC,QACC,kSAKD,CAEF,CAID,IAAI,IAAM,QAAQ,WACf,OAAO,QAAQ,UAAU,EAAI,SAC7B,SACH,GAAI,MAAM,GAAG,EACZ,OAAO,MAAM,GAAG,EAIjB,IAAI,SAAWA,SAAQ,SAAU,OAAO,EAInC,SAAS,QAAU,SAAS,OAAO,SAClC,QAAQ,kBACX,SAAS,OAAO,QAAQ,SAAU,EAAG,CACpC,QACC;AAAA;AAAA,EAAmC,EAAE,IAAO;AAAA;AAAA,EAC5C,kBAAkB,SAAU,EAAE,MAAO,EAAE,GAAG,EAC1C,EACD,CACD,CAAC,EAED,QACC;AAAA;AAAA,EAAkC,SAAW;AAAA;AAAA,EAC7C,SAAS,OAAO,IAAI,SAAU,EAAG,CAAE,MAAQ,KAAO,CAAI,CAAC,EAAE,KAAK;AAAA,CAAI,EAAI;AAAA,EACtE,EACD,GAGE,SAAS,MAAQ,SAAS,KAAK,SAC9B,QAAQ,kBACX,SAAS,KAAK,QAAQ,SAAU,EAAG,CAAE,OAAO,IAAI,EAAE,IAAK,EAAE,CAAG,CAAC,EAE7D,SAAS,KAAK,QAAQ,SAAU,IAAK,CAAE,OAAO,IAAI,IAAK,EAAE,CAAG,CAAC,GAMhE,IAAI,IAAM,CAAC,EACP,YAAc,CAAC,EACnB,WAAI,OAAS,eAAe,SAAS,OAAQ,WAAW,EACxD,IAAI,gBAAkB,SAAS,gBAAgB,IAAI,SAAU,KAAM,CAClE,OAAO,eAAe,KAAM,WAAW,CACxC,CAAC,GAOK,CAAC,SAAS,QAAU,CAAC,SAAS,OAAO,SAAW,YAAY,QAChE,QACC;AAAA;AAAA,EACA,YAAY,IAAI,SAAUpB,KAAK,CAC9B,IAAI,IAAMA,KAAI,IACV,KAAOA,KAAI,KAEf,OAAS,IAAI,SAAS,EAAK;AAAA;AAAA,EAAY,KAAO;AAAA,CAC/C,CAAC,EAAE,KAAK;AAAA,CAAI,EACZ,EACD,EAIM,MAAM,GAAG,EAAI,GACtB,CACD,CAIA,SAAS,sBAAsB,YAAa,CAC3C,OAAO,SAAwBqB,aAAa,CAC3C,SAASD,SACR,SACA,QACC,CACD,IAAI,aAAe,OAAO,OAAOC,YAAW,EACxC,OAAS,CAAC,EACV,KAAO,CAAC,EAERzB,MAAO,SAAU,IAAKC,OAAOyB,KAAK,EACpCA,KAAM,KAAO,QAAQ,KAAK,GAAG,CAC/B,EAEA,GAAI,QAAS,CACZ,GAAI,QAAQ,kBAAmB,CAE9B,IAAI,mBAAqB,SAAS,MAAM,MAAM,EAAE,CAAC,EAAE,OAEnD1B,MAAO,SAAU,IAAKC,OAAOyB,KAAK,CACjC,IAAI,KAAO,CAAE,GAAS,EAClBzB,SACCA,OAAM,OAAS,OAClB,KAAK,MAAQA,OAAM,MAAQ,oBAExBA,OAAM,KAAO,OAChB,KAAK,IAAMA,OAAM,IAAM,sBAGxByB,KAAM,KAAO,QAAQ,KAAK,IAAI,CAChC,CACD,CAEI,QAAQ,UACX,aAAa,SACXD,aAAY,SAAW,CAAC,GAAG,OAAO,QAAQ,OAAO,GAGhD,QAAQ,aACX,aAAa,WAAa,OACzB,OAAO,OAAOA,aAAY,YAAc,IAAI,EAC5C,QAAQ,UACT,GAGD,QAAS,OAAO,QACX,MAAQ,WAAa,MAAQ,eAChC,aAAa,GAAG,EAAI,QAAQ,GAAG,EAGlC,CAEA,aAAa,KAAOzB,MAEpB,IAAI,SAAW,YAAY,SAAS,KAAK,EAAG,YAAY,EAEvD,oBAAa,SAAS,IAAKA,KAAI,EAEhC,SAAS,OAAS,OAClB,SAAS,KAAO,KACT,QACR,CAEA,MAAO,CACN,QAASwB,SACT,mBAAoB,0BAA0BA,QAAO,CACtD,CACD,CACD,CAOA,IAAI,eAAiB,sBAAsB,SAC1C,SACA,QACC,CACD,IAAI,IAAM,MAAM,SAAS,KAAK,EAAG,OAAO,EACpC,QAAQ,WAAa,IACxB,SAAS,IAAK,OAAO,EAEtB,IAAI,KAAO,SAAS,IAAK,OAAO,EAChC,MAAO,CACN,IACA,OAAQ,KAAK,OACb,gBAAiB,KAAK,eACvB,CACD,CAAC,EAIG,IAAM,eAAe,WAAW,EAChC,QAAU,IAAI,QACd,mBAAqB,IAAI,mBAIzB,OAAS,QACZ,y1BAaD,EAGI,iBAAmB,SAAU,KAAM,CACtC,OACC,OAAO,IAAI,GACX,KAAK,QAAQ,OAAO,IAAM,GAC1B,KAAK,QAAQ,OAAO,IAAM,CAE5B,EAEI,eAAiB,CACpB,cAAe,iBACf,UAAW,QACX,QAAS,MACT,UAAW,YACZ,EAEI,IAAM,CACT,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,OACN,EAEA,SAAS,OAAO,EAAG,CAClB,OAAO,EAAE,QAAQ,UAAW,UAAU,CACvC,CAEA,SAAS,WAAW,EAAG,CACtB,OAAO,IAAI,CAAC,GAAK,CAClB,CAOA,IAAI,cAAgB,0CAIpB,SAAS,oBAAoB,GAAI,MAAO,CACvC,GAAI,GAAG,WACN,QAAS,EAAI,EAAG,EAAI,GAAG,WAAW,OAAQ,IAAK,CAC9C,IAAI,IAAM,GAAG,WAAW,CAAC,EACzB,GAAI,IAAI,OAAS,QAAS,CACzB,MAAM,WAAW,MAAM,GAAI,IAAK,MAAM,IAAI,EAEtC,GAAG,MAAQ,YAAc,GAAG,QAC/B,GAAG,MAAQ,GAAG,MAAM,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,OAAS,OAAS,CAAC,GAEvE,KACD,CACD,CAEF,CAEA,SAAS,gBACR,MACC,CACD,OAAO,MAAM,IAAI,SAAUpB,KAAK,CAC/B,IAAI,KAAOA,KAAI,KACX,MAAQA,KAAI,MAEhB,OAAO,eAAe,KAAM,KAAK,CAClC,CAAC,CACF,CAEA,SAAS,mBACR,MACA,MACC,CACD,IAAI,SAAW,CAAC,EAChB,aAAM,QAAQ,SAAUA,KAAK,CAC5B,IAAI,KAAOA,KAAI,KACX,MAAQA,KAAI,MAEhB,KAAO,eAAe,IAAI,GAAK,KAAK,YAAY,EAC5C,iBAAiB,IAAI,GACxB,EAAE,OAAS,MAAM,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,OAAS,IAAM,CAAC,IAE9D,SAAS,KAAK,eAAe,KAAM,KAAK,CAAC,CAE3C,CAAC,EACM,QACR,CAEA,SAAS,eAAe,KAAM,MAAO,CACpC,OAAI,cAAc,KAAK,KAAK,GAE3B,MAAQ,MAAM,QAAQ,SAAU,GAAG,EAE/B,iBAAiB,IAAI,GAAK,QAAU,YACvC,MAAQ,UAEF,CACN,KAAM,IACN,MAAO,cAAc,IAAI,EACrB,IAAM,KAAO,KAAQ,KAAO,IAC7B,QAAU,KACR,IAAM,KACN,IAAM,KAAO,KAAS,KAAK,MAAM,KAAK,EAAK,GACjD,GAEO,CACN,KAAM,WACN,MAAQ,YAAe,KAAK,UAAU,IAAI,EAAK,IAAM,MAAQ,GAC9D,CAEF,CAEA,SAAS,iBACR,YACA,aACC,CACD,OAAI,aAAe,CAAC,aACZ,CAAC,CAAE,KAAM,IAAK,MAAQ,WAAe,KAAK,MAAM,WAAW,EAAK,GAAM,CAAC,EAEvE,CAAC,CACP,KAAM,WACN,MAAQ,cAAgB,aAAe,QAAU,KAAO,cAAgB,QAAU,GACnF,CAAC,CAEH,CAEA,SAAS,iBACR,YACA,kBACA,aACA,gBACC,CACD,OAAI,aAAe,CAAC,cAAgB,CAAC,gBAC7B,CAAC,CAAE,KAAM,IAAK,MAAQ,UAAa,KAAK,UAAU,WAAW,CAAI,CAAC,EAElE,CAAC,CACP,KAAM,WACN,MAAQ,cAAgB,mBAAqB,QAAU,KAAO,cAAgB,QAAU,MAAQ,gBAC5F,eAAiB,gBAAkB,oBACpC,QAAU,GACd,CAAC,CAEH,CAKA,IAAI,eAAiB,CACpB,MAAO,EACP,KAAM,EACN,KAAM,EACN,SAAU,EACV,QAAS,CACV,EAEI,wBAEJ,SAAS,WAAW,KAAM,QAAS,CAC7B,OACL,wBAA0B,QAAQ,eAAiB,GACnD,KAAK,KAAM,EAAI,EAChB,CAEA,SAAS,KAAK,KAAM,OAAQ,CAC3B,GAAI,oBAAoB,IAAI,EAAG,CAC9B,KAAK,kBAAoB,eAAe,MACxC,MACD,CAEA,IAAI,kBAAoB,QAAU,mBAAmB,IAAI,EACrD,MAAQ,SAAUuB,OAAO,CACxBA,OAAM,oBAAsB,eAAe,OAC9C,KAAK,kBAAoB,kBACtB,eAAe,QACf,eAAe,KAEpB,EAIA,GAHI,oBACH,KAAK,kBAAoB,eAAe,UAErC,KAAK,OAAS,EAAG,CACpB,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAAK,CACrD,IAAI,MAAQ,KAAK,SAAS,CAAC,EAC3B,KAAK,KAAK,EACV,MAAM,KAAK,CACZ,CACA,GAAI,KAAK,aACR,QAAS,IAAM,EAAG,IAAM,KAAK,aAAa,OAAQ,IAAM,IAAK,MAAO,CACnE,IAAI,MAAQ,KAAK,aAAa,GAAG,EAAE,MACnC,KAAK,MAAO,MAAM,EAClB,MAAM,KAAK,CACZ,CAEG,KAAK,mBAAqB,MAC5B,CAAC,SAAW,KAAK,SAAS,QAAQ,GAAK,KAAK,SAAS,QAAQ,GAE9D,KAAK,kBAAoB,eAAe,KAExC,KAAK,SAAW,iBAAiB,IAAI,CAEvC,MACC,KAAK,kBAAoB,eAAe,IAE1C,CAEA,SAAS,iBAAiB,GAAI,CAqB7B,QApBI,SAAW,GAAG,SACd,kBAAoB,CAAC,EAErB,wBAA0B,CAAC,EAC3B,UAAY,UAAY,CACvB,wBAAwB,QAC3B,kBAAkB,KAAK,CACtB,KAAM,EACN,OAAQ,GACR,IAAK,WACL,UAAW,CAAC,EACZ,SAAU,CAAC,EACX,YAAa,CAAC,EACd,SAAU,wBACV,kBAAmB,eAAe,IACnC,CAAC,EAEF,wBAA0B,CAAC,CAC5B,EAES,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,EAAI,SAAS,CAAC,EACd,EAAE,oBAAsB,eAAe,KAC1C,wBAAwB,KAAK,CAAC,GAI9B,UAAU,EACV,kBAAkB,KAAK,CAAC,EAE1B,CACA,iBAAU,EACH,iBACR,CAEA,SAAS,oBAAoB,KAAM,CAClC,OAAI,KAAK,OAAS,GAAK,KAAK,OAAS,EAC7B,GAGP,aAAa,KAAK,GAAG,GACrB,CAAC,wBAAwB,KAAK,GAAG,GACjC,CAAC,CAAC,KAAK,WACP,kBAAkB,IAAI,CAExB,CAEA,IAAI,aAAe,QAAQ,6CAA6C,EAExE,SAAS,mBAAmB,KAAM,CACjC,OACC,KAAK,OAAS,GACd,KAAK,YACL,KAAK,WAAW,KAAK,SAAU,EAAG,CAAE,MAAO,CAAC,aAAa,EAAE,IAAI,CAAG,CAAC,CAErE,CAIA,SAAS,kBAAkB,KAAM,CAChC,OACC,KAAK,OAAS,GACd,KAAK,MAAQ,UACb,KAAK,YAAc,MACnB,KAAK,WAAW,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,OAAS,OAAS,CAAC,CAElE,CAQA,IAAI,IAAM,EACN,cAAgB,EAChB,WAAa,EAEjB,SAAS,WACR,IACA,QACC,CACD,IAAI,MAAQ,IAAI,aAAa,OAAO,EAChC,KAAO,IAAM,cAAc,IAAK,KAAK,EAAI,YAC7C,MAAO,CACN,OAAS,qBAAuB,KAAO,IACvC,gBAAiB,MAAM,eACxB,CACD,CAEA,SAAS,cAAc,GAAI,MAAO,CACjC,GAAI,GAAG,KAAO,CAAC,GAAG,aACjB,OAAO,OAAO,GAAI,MAAO,aAAa,EAChC,GAAI,GAAG,IAAM,CAAC,GAAG,YACvB,OAAO,MAAM,GAAI,MAAO,aAAa,EAC/B,GAAI,GAAG,MAAQ,YAAc,CAAC,GAAG,WACvC,OAAO,GAAG,oBAAsB,eAAe,KAC5C,wBAAwB,GAAI,KAAK,EACjC,eAAe,GAAI,KAAK,GAAK,SAGjC,OAAQ,GAAG,kBAAmB,CAC7B,KAAK,eAAe,KAEnB,OAAO,iBAAiB,GAAI,KAAK,EAClC,KAAK,eAAe,KAEnB,OAAO,6BAA6B,GAAI,KAAK,EAC9C,KAAK,eAAe,SAEnB,OAAO,iBAAiB,GAAI,MAAO,EAAI,EACxC,KAAK,eAAe,QAEnB,OAAO,iBAAiB,GAAI,MAAO,EAAK,EACzC,QAEC,OAAO,WAAW,GAAI,KAAK,CAC7B,CACD,CAEA,SAAS,iBAAiB,GAAI,MAAO,kBAAmB,CACvD,IAAI,KAAO,GAAG,MAAQ,OAAY,UAAU,GAAI,KAAK,EACjD,SAAW,kBACX,IAAO,wBAAwB,GAAI,KAAK,EAAK,IAC9C,eAAe,GAAI,MAAO,EAAI,EACjC,MAAQ,OAAU,GAAG,IAAO,KAAO,KAAQ,IAAM,KAAQ,KAAO,SAAY,IAAM,SAAY,IAAM,GACrG,CAEA,SAAS,eAAe,GAAI,MAAO,UAAW,CAC7C,OAAO,YAAY,GAAI,MAAO,UAAW,cAAe,UAAU,CACnE,CAEA,SAAS,WAAW,GAAI,MAAO,CAC9B,OAAO,GAAG,OAAS,EAChB,cAAc,GAAI,KAAK,EACvB,QAAQ,EAAE,CACd,CAEA,SAAS,wBAAwB,GAAI,MAAO,CAC3C,OAAO,GAAG,SAAS,OACf,YAAe,gBAAgB,mBAAmB,GAAI,KAAK,CAAC,EAAK,IAClE,EACJ,CAEA,SAAS,iBAAiB,GAAI,MAAO,CACpC,MAAQ,YAAe,gBAAgB,GAAI,KAAK,EAAK,GACtD,CAEA,SAAS,6BAA6B,GAAI,MAAO,CAChD,IAAI,SAAW,eAAe,GAAI,MAAO,EAAI,EAC7C,MAAQ,YAAe,gBAAgB,yBAAyB,GAAI,KAAK,CAAC,EAAK,OAAW,GAAG,IAAO,MAAS,SAAY,IAAM,SAAY,IAAM,GAClJ,CAEA,SAAS,gBAAgB,GAAI,MAAO,CACnC,MAAQ,IAAO,gBAAgB,kBAAkB,GAAI,KAAK,CAAC,EAAK,GACjE,CAEA,SAAS,kBAAkB,GAAI,MAAO,CAErC,GAAI,GAAG,KAAO,CAAC,GAAG,aACjB,UAAG,aAAe,GACX,CAAC,CACP,KAAM,WACN,MAAO,OAAO,GAAI,MAAO,gBAAiB,UAAU,CACrD,CAAC,EACK,GAAI,GAAG,IAAM,CAAC,GAAG,YACvB,UAAG,YAAc,GACV,CAAC,CACP,KAAM,WACN,MAAO,MAAM,GAAI,MAAO,gBAAiB,WAAW,CACrD,CAAC,EACK,GAAI,GAAG,MAAQ,WACrB,OAAO,mBAAmB,GAAI,KAAK,EAGpC,IAAI,aAAe,yBAAyB,GAAI,KAAK,EACjD,iBAAmB,mBAAmB,GAAI,KAAK,EAC/CvB,KAAM,MAAM,QACZwB,YAAaxB,KAAI,WACjB,MAASwB,aAAcA,YAAW,GAAG,GAAG,EACzC,CAAC,EACD,CAAC,CAAE,KAAM,IAAK,MAAQ,KAAQ,GAAG,IAAO,GAAK,CAAC,EACjD,OAAO,aAAa,OAAO,iBAAkB,KAAK,CACnD,CAEA,SAAS,yBAAyB,GAAI,MAAO,CAC5C,oBAAoB,GAAI,KAAK,EAC7B,IAAI,QACA,SAAW,CAAC,CAAE,KAAM,IAAK,MAAQ,IAAO,GAAG,GAAM,CAAC,EAEtD,OAAI,GAAG,OACN,SAAS,KAAK,MAAM,SAAU,gBAAgB,GAAG,KAAK,CAAC,EAGpD,GAAG,OACN,SAAS,KAAK,MAAM,SAAU,mBAAmB,GAAG,MAAO,GAAG,KAAK,CAAC,GAGhE,QAAU,GAAG,SAAS,QAAQ,IAClC,SAAS,KAAK,CAAE,KAAM,WAAY,MAAQ,aAAe,QAAU,GAAK,CAAC,GAGrE,QAAU,GAAG,SAAS,aAAa,IACvC,SAAS,KAAK,CAAE,KAAM,WAAY,MAAQ,gBAAkB,QAAU,GAAK,CAAC,GAGzE,GAAG,aAAe,GAAG,eACxB,SAAS,KAAK,MACb,SACA,iBAAiB,GAAG,YAAa,GAAG,YAAY,CACjD,GAGG,GAAG,aAAe,GAAG,cAAgB,GAAG,SAAS,QAAQ,IAC5D,SAAS,KAAK,MACb,SACA,iBACC,GAAG,SAAS,MACZ,GAAG,YACH,GAAG,aACH,GAAG,SAAS,QAAQ,CACrB,CACD,EAGG,MAAM,QAAQ,SACjB,SAAS,KAAK,CAAE,KAAM,IAAK,MAAQ,IAAO,MAAM,QAAQ,OAAU,CAAC,EAEpE,SAAS,KAAK,CAAE,KAAM,IAAK,MAAO,GAAI,CAAC,EAChC,QACR,CAEA,SAAS,mBAAmB,GAAI,MAAO,CACtC,IAAI,QACJ,OAAK,QAAU,GAAG,SAAS,QAAQ,GAC3B,CAAC,CAAE,KAAM,WAAY,MAAQ,MAAQ,QAAU,GAAK,CAAC,GAExD,QAAU,GAAG,SAAS,QAAQ,GAC3B,CAAC,CAAE,KAAM,cAAe,MAAQ,MAAQ,QAAU,GAAK,CAAC,EAE5D,GAAG,MAAQ,aAAe,QAAU,GAAG,SAAS,SAAS,GACrD,CAAC,CAAE,KAAM,cAAe,MAAQ,MAAQ,QAAU,GAAK,CAAC,EAEzD,GAAG,SACP,gBAAgB,GAAG,SAAU,KAAK,EAClC,CAAC,CACL,CAEA,SAAS,gBACR,SACA,MACC,CAED,QADI,SAAW,CAAC,EACP,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,EAAI,SAAS,CAAC,EAClB,GAAI,EAAE,OAAS,EACd,SAAS,KAAK,MAAM,SAAU,kBAAkB,EAAG,KAAK,CAAC,UAC/C,EAAE,OAAS,EACrB,SAAS,KAAK,CAAE,KAAM,cAAe,MAAO,EAAE,UAAW,CAAC,UAChD,EAAE,OAAS,EAAG,CACxB,IAAI/B,MAAO,OAAO,EAAE,IAAI,EACpB,EAAE,YACLA,MAAO,OAASA,MAAO,OAExB,SAAS,KAAK,CAAE,KAAM,IAAK,MAAOA,KAAK,CAAC,CACzC,CACD,CACA,OAAO,QACR,CAEA,SAAS,gBAAgB,SAAU,CAWlC,QAVI,eAAiB,CAAC,EAClB,WAAa,GAEb,WAAa,UAAY,CACxB,aACH,eAAe,KAAK,KAAK,UAAU,UAAU,CAAC,EAC9C,WAAa,GAEf,EAES,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,EAAI,SAAS,CAAC,EACd,EAAE,OAAS,IACd,YAAc,EAAE,MACN,EAAE,OAAS,eACrB,WAAW,EACX,eAAe,KAAM,cAAiB,EAAE,MAAS,GAAI,GAC3C,EAAE,OAAS,aACrB,WAAW,EACX,eAAe,KAAM,IAAO,EAAE,MAAS,GAAI,EAE7C,CACA,kBAAW,EAEJ,eAAe,KAAK,GAAG,CAC/B,CAIA,IAAI,iBAAmB,sBAAsB,SAC5C,SACA,QACC,CACD,IAAI,IAAM,MAAM,SAAS,KAAK,EAAG,OAAO,EACxC,WAAW,IAAK,OAAO,EACvB,IAAI,KAAO,WAAW,IAAK,OAAO,EAClC,MAAO,CACN,IACA,OAAQ,KAAK,OACb,gBAAiB,KAAK,eACvB,CACD,CAAC,EAIG,MAAQ,iBAAiB,WAAW,EACpC,UAAY,MAAM,QAClB,qBAAuB,MAAM,mBAIjCL,SAAQ,eAAiB,eACzBA,SAAQ,QAAU,QAClBA,SAAQ,mBAAqB,mBAC7BA,SAAQ,WAAa,UACrBA,SAAQ,sBAAwB,qBAChCA,SAAQ,kBAAoB,kBAE5B,OAAO,eAAeA,SAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAE7D,CAAC,CAIL,GAEM,KACC,SAAU,OAAQ,QAAS,CAE9B,IAAI,+BAAgC,6BAA8B,+BAAgC,SAAU,OAAQ,QAAS,CAC5H,GAAI,EACD,6BAA+B,CAAC,OAAQ,OAAO,EAAG,+BAAkC,QACrF,8BAAiC,OAAO,gCAAmC,WACzE,+BAA+B,MAAM,QAAS,4BAA4B,EAAK,+BACjF,gCAAkC,SAAc,OAAO,QAAU,mCAC1D,KAAI,GACd,GAAG,KAAM,SAAUqC,QAAQrC,SAAS,CACnC,aAEA,OAAO,eAAeA,SAAS,aAAc,CAC5C,MAAO,EACR,CAAC,EAED,IAAI,OAAQ,MAEZ,SAAS,gBAAgB,SAAU,YAAa,CAC/C,GAAI,EAAE,oBAAoB,aACzB,MAAM,IAAI,UAAU,mCAAmC,CAEzD,CAEA,IAAI,cAAe,UAAY,CAC9B,SAAS,iBAAiB,OAAQ,MAAO,CACxC,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACtC,IAAI,WAAa,MAAM,CAAC,EACxB,WAAW,WAAa,WAAW,YAAc,GACjD,WAAW,aAAe,GACtB,UAAW,aAAY,WAAW,SAAW,IACjD,OAAO,eAAe,OAAQ,WAAW,IAAK,UAAU,CACzD,CACD,CAEA,OAAO,SAAU,YAAa,WAAY,YAAa,CACtD,OAAI,YAAY,iBAAiB,YAAY,UAAW,UAAU,EAC9D,aAAa,iBAAiB,YAAa,WAAW,EACnD,WACR,CACD,GAAE,EAEF,SAAS,KAAK,OAAQ,SAAU,CAC/B,OAAO,SAAS,QAAQ,MAAM,GAAK,CACpC,CAEA,SAAS,OAAO,OAAQ,SAAU,CACjC,QAAS,OAAO,SACf,GAAI,OAAO,GAAG,GAAK,KAAM,CACxB,IAAI,MAAQ,SAAS,GAAG,EACxB,OAAO,GAAG,EAAI,KACf,CAED,OAAO,MACR,CAEA,SAAS,SAAS,MAAO,CACxB,MAAQ,iEAAiE,KAAK,KAAK,CAEpF,CAEA,SAAS,YAAY,MAAO,CAC3B,IAAI,OAAS,UAAU,QAAU,GAAK,UAAU,CAAC,IAAM,OAAY,GAAQ,UAAU,CAAC,EAClF,OAAS,UAAU,QAAU,GAAK,UAAU,CAAC,IAAM,OAAY,GAAQ,UAAU,CAAC,EAClF,OAAS,UAAU,QAAU,GAAK,UAAU,CAAC,IAAM,OAAY,KAAO,UAAU,CAAC,EAEjF,YAAc,OAClB,OAAI,SAAS,aAAe,MAE3B,YAAc,SAAS,YAAY,aAAa,EAChD,YAAY,gBAAgB,MAAO,OAAQ,OAAQ,MAAM,GAC/C,SAAS,mBAAqB,MAExC,YAAc,SAAS,kBAAkB,EACzC,YAAY,UAAY,OAExB,YAAY,UAAY,MAGlB,WACR,CAEA,SAAS,UAAU,KAAM,MAAO,CAC3B,KAAK,eAAiB,KAEzB,KAAK,cAAc,KAAK,EACd,SAAU,MAAQ,MAC5B,KAAK,KAAK,EAAE,EACF,KAAO,SAAU,MAAQ,OACnC,KAAK,KAAO,KAAK,EAAE,CAErB,CAEA,SAAS,SAAS,KAAM,MAAO,GAAI,CAC9B,KAAK,kBAAoB,KAE5B,KAAK,iBAAiB,MAAO,GAAI,EAAK,EAC5B,KAAK,aAAe,KAE9B,KAAK,YAAY,KAAO,MAAO,EAAE,EAGjC,KAAK,KAAK,EAAI,EAEhB,CAEA,SAAS,YAAY,KAAM,MAAO,GAAI,CACjC,KAAK,qBAAuB,KAE/B,KAAK,oBAAoB,MAAO,GAAI,EAAK,EAC/B,KAAK,aAAe,KAE9B,KAAK,YAAY,KAAO,MAAO,EAAE,EAGjC,OAAO,KAAK,KAAK,CAEnB,CAEA,SAAS,gBAAiB,CACzB,MAAI,gBAAiB,OACb,OAAO,YAGR,SAAS,gBAAgB,YACjC,CAGA,IAAI,QAAU,OAAO,SAAW,OAAO,aAAc,UAAY,CAChE,SAASsC,UAAU,CAClB,gBAAgB,KAAMA,QAAO,EAE7B,KAAK,KAAO,CAAC,EACb,KAAK,OAAS,CAAC,CAChB,CAEA,oBAAaA,SAAS,CAAC,CACtB,IAAK,MACL,MAAO,SAAa,IAAK,CACxB,QAAS,EAAI,EAAG,EAAI,KAAK,KAAK,OAAQ,IAAK,CAC1C,IAAI,KAAO,KAAK,KAAK,CAAC,EACtB,GAAI,OAAS,IACZ,OAAO,KAAK,OAAO,CAAC,CAEtB,CAED,CACD,EAAG,CACF,IAAK,MACL,MAAO,SAAa,IAAK,MAAO,CAC/B,QAAS,EAAI,EAAG,EAAI,KAAK,KAAK,OAAQ,IAAK,CAC1C,IAAI,KAAO,KAAK,KAAK,CAAC,EACtB,GAAI,OAAS,IACZ,YAAK,OAAO,CAAC,EAAI,MACV,IAET,CACA,YAAK,KAAK,KAAK,GAAG,EAClB,KAAK,OAAO,KAAK,KAAK,EACf,IACR,CACD,CAAC,CAAC,EAEKA,QACR,GAAE,EAGEC,kBAAmB,OAAO,kBAAoB,OAAO,wBAA0B,OAAO,sBAAwB,MAAQ,QAAS,UAAY,CAC9I,SAASA,mBAAmB,CAC3B,gBAAgB,KAAMA,iBAAgB,EAElC,OAAO,QAAY,KAAe,UAAY,OACjD,QAAQ,KAAK,oDAAoD,EACjE,QAAQ,KAAK,oFAAoF,EAEnG,CAEA,oBAAaA,kBAAkB,CAAC,CAC/B,IAAK,UACL,MAAO,UAAmB,CAAE,CAC7B,CAAC,CAAC,EAEKA,iBACR,GAAE,EAAG,OAAO,aAAe,GAAM,OAG7BC,kBAAmB,OAAO,kBAAoB,SAA0B,GAAI,CAC/E,IAAI,mBAAqB,kBACzB,MAAO,CACN,iBAAkB,SAA0B,KAAM,CAC7C,OAAS,UACZ,KAAO,cAEJ,mBAAmB,KAAK,IAAI,GAC/B,KAAK,QAAQ,mBAAoB,SAAU,EAAG,MAAO,CACpD,OAAO,MAAM,YAAY,CAC1B,CAAC,EAEF,IAAI,aAAe,GAAG,aAEtB,OAA+B,eAAa,IAAI,GAAe,IAChE,CACD,CACD,EAEI,KAAM,UAAY,CACrB,SAASC,MAAM,CACd,IAAI,QAAU,UAAU,QAAU,GAAK,UAAU,CAAC,IAAM,OAAY,CAAC,EAAI,UAAU,CAAC,EAEpF,gBAAgB,KAAMA,IAAG,EAEzB,KAAK,SAAW,CACf,SAAU,MACV,aAAc,WACd,OAAQ,EACR,OAAQ,GACR,KAAM,GACN,SAAU,KACV,gBAAiB,IAClB,EAEA,KAAK,SAAU,UAA0B,CACxC,MAAI,0BAA2B,OACvB,SAAU,SAAU,CAC1B,OAAO,OAAO,sBAAsB,QAAQ,CAC7C,EAEM,SAAU,SAAU,CAC1B,OAAO,SAAS,CACjB,CACD,GAAE,EAEF,KAAK,QAAU,CAAC,MAAO,QAAQ,EAE/B,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,eAAiB,KAAK,eAAe,KAAK,IAAI,EACnD,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,eAAiB,KAAK,eAAe,KAAK,IAAI,EACnD,KAAK,SAAW,GAChB,KAAK,OAAS,OAAO,QAAS,KAAK,QAAQ,EACvC,QAAQ,iBAAmB,OAC9B,KAAK,OAAO,gBAAkB,SAAS,cAAc,QAAQ,eAAe,GAG7E,KAAK,mBAAqB,IAAI,QAC9B,KAAK,SAAW,YAAY,KAAK,OAAO,QAAQ,CACjD,CAEA,oBAAaA,KAAK,CAAC,CAClB,IAAK,OACL,MAAO,UAAgB,CACtB,KAAK,QAAU,OAAO,SAAS,gBAC3B,KAAK,SAAS,WAAY,CAAC,cAAe,UAAU,CAAC,EACxD,KAAK,MAAM,EAEX,SAAS,SAAU,mBAAoB,KAAK,KAAK,EAElD,KAAK,SAAW,CAAC,CAClB,CACD,EAAG,CACF,IAAK,QACL,MAAO,UAAiB,CACvB,IAAI,MAAQ,KAKZ,GAHA,KAAK,QAAU,GACf,KAAK,MAAQ,CAAC,EAAE,MAAM,KAAK,KAAK,QAAQ,iBAAiB,IAAM,KAAK,OAAO,QAAQ,CAAC,EACpF,KAAK,IAAM,KAAK,MAAM,MAAM,CAAC,EACzB,KAAK,MAAM,OACd,GAAI,KAAK,SAAS,EACjB,KAAK,WAAW,MAEhB,SAAS,EAAI,EAAG,EAAI,KAAK,MAAM,OAAQ,IAAK,CAC3C,IAAI,IAAM,KAAK,MAAM,CAAC,EACtB,KAAK,WAAW,IAAK,EAAI,CAC1B,CAQF,GALK,KAAK,SAAS,IAClB,SAAS,KAAK,OAAO,iBAAmB,OAAQ,SAAU,KAAK,aAAa,EAC5E,SAAS,OAAQ,SAAU,KAAK,aAAa,EAC7C,KAAK,SAAW,YAAY,KAAK,eAAgB,EAAE,GAEhD,KAAK,OAAO,KAAM,CACrB,IAAI,IAAM,IAAIF,kBAAiB,SAAU,QAAS,CACjD,QAAS,EAAI,EAAG,EAAI,QAAQ,OAAQ,IAEnC,QADI,OAAS,QAAQ,CAAC,EACb,EAAI,EAAG,EAAI,OAAO,WAAW,OAAQ,IAAK,CAClD,IAAI,KAAO,OAAO,WAAW,CAAC,EAC9B,MAAM,OAAO,IAAI,CAClB,CAGF,CAAC,EACD,IAAI,QAAQ,SAAS,KAAM,CAC1B,UAAW,GACX,QAAS,EACV,CAAC,CACF,CACD,CACD,EAAG,CACF,IAAK,OACL,MAAO,UAAgB,CACtB,KAAK,QAAU,GACf,YAAY,KAAK,OAAO,iBAAmB,OAAQ,SAAU,KAAK,aAAa,EAC/E,YAAY,OAAQ,SAAU,KAAK,aAAa,EAC5C,KAAK,UAAY,MACpB,cAAc,KAAK,QAAQ,CAE7B,CACD,EAAG,CACF,IAAK,OACL,MAAO,UAAgB,CAClBA,kBAAiB,cACpB,KAAK,OAAO,KAAK,OAAO,CAE1B,CACD,EAAG,CACF,IAAK,SACL,MAAO,SAAgB,QAAS,CAI/B,IAHI,OAAO,QAAY,KAAe,UAAY,QACjD,QAAU,KAAK,SAEZ,QAAQ,WAAa,EAGzB,SAAU,QAAQ,YAAc,QAEhC,QADI,SAAW,QAAQ,iBAAiB,IAAM,KAAK,OAAO,QAAQ,EACzD,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,IAAM,SAAS,CAAC,EACf,KAAK,IAAK,KAAK,GAAG,IACtB,KAAK,MAAM,KAAK,GAAG,EACnB,KAAK,IAAI,KAAK,GAAG,EACb,KAAK,SAAW,KAAK,SAAS,EACjC,KAAK,WAAW,EAEhB,KAAK,WAAW,IAAK,EAAI,EAE1B,KAAK,SAAW,GAElB,EACD,CACD,EAAG,CACF,IAAK,OACL,MAAO,SAAc,IAAK,CACzB,YAAK,WAAW,GAAG,EACnB,IAAI,UAAY,IAAI,UAAY,IAAM,KAAK,OAAO,aAC9C,KAAK,OAAO,UAAY,MAC3B,KAAK,OAAO,SAAS,GAAG,EAEzB,UAAU,IAAK,KAAK,QAAQ,EAE5B,SAAS,IAAK,eAAgB,KAAK,cAAc,EACjD,SAAS,IAAK,gBAAiB,KAAK,cAAc,EAClD,SAAS,IAAK,qBAAsB,KAAK,cAAc,EACvD,SAAS,IAAK,iBAAkB,KAAK,cAAc,EAE5C,GACR,CACD,EAAG,CACF,IAAK,aACL,MAAO,SAAoB,IAAK,OAAQ,CACvC,IAAI,OAAS,KAET,SAAW,IAAI,aAAa,mBAAmB,EAC/C,MAAQ,IAAI,aAAa,gBAAgB,EACzC,UAAY,IAAI,aAAa,oBAAoB,EAErD,OAAO,KAAK,QAAQ,UAAY,CAC/B,OAAO,OAAO,YAAY,IAAK,OAAQ,SAAU,MAAO,SAAS,CAClE,CAAC,CACF,CACD,EAAG,CACF,IAAK,aACL,MAAO,UAAsB,CAC5B,QAAS,EAAI,EAAG,EAAI,KAAK,MAAM,OAAQ,IAAK,CAC3C,IAAI,IAAM,KAAK,MAAM,CAAC,EACtB,IAAI,MAAM,WAAa,SACxB,CAED,CACD,EAAG,CACF,IAAK,iBACL,MAAO,SAAwB,MAAO,CACrC,GAAI,MAAM,KAAK,YAAY,EAAE,QAAQ,cAAc,GAAK,EAAG,CAC1D,IAAI,OAAS,MAAM,QAAU,MAAM,WACnC,OAAO,UAAY,OAAO,UAAU,QAAQ,KAAK,OAAO,aAAc,EAAE,EAAE,KAAK,CAChF,CACD,CACD,EAAG,CACF,IAAK,cACL,MAAO,SAAqB,IAAK,OAAQ,SAAU,MAAO,UAAW,CACpE,OAAI,QACH,KAAK,mBAAmB,GAAG,EAE5B,IAAI,MAAM,WAAa,OAAS,SAAW,UAEvC,UACH,KAAK,UAAU,IAAI,MAAO,CAAE,kBAAmB,QAAS,CAAC,EAEtD,OACH,KAAK,UAAU,IAAI,MAAO,CAAE,eAAgB,KAAM,CAAC,EAEhD,WACH,KAAK,UAAU,IAAI,MAAO,CAAE,wBAAyB,SAAU,CAAC,EAEjE,KAAK,UAAU,IAAI,MAAO,CAAE,cAAe,OAAS,OAAS,KAAK,oBAAoB,GAAG,CAAE,CAAC,EAErF,GACR,CACD,EAAG,CACF,IAAK,YACL,MAAO,SAAmB,KAAM,WAAY,CAC3C,QAAS,QAAQ,WAChB,GAAI,WAAW,eAAe,IAAI,EAAG,CACpC,IAAI,MAAQ,WAAW,IAAI,EAC3B,KAAK,GAAK,IAAI,EAAI,MAClB,QAAS,EAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,IAAK,CAC7C,IAAI,OAAS,KAAK,QAAQ,CAAC,EAC3B,KAAK,GAAK,OAAS,KAAK,OAAO,CAAC,EAAE,YAAY,EAAI,KAAK,OAAO,CAAC,CAAC,EAAI,KACrE,CACD,CAEF,CACD,EAAG,CACF,IAAK,YACL,MAAO,SAAmB,KAAM,SAAU,CAGzC,QAFI,MAAQC,kBAAiB,IAAI,EAC7B,OAAS,MAAM,oBAAoB,QAAQ,EACtC,EAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,IAAK,CAC7C,IAAI,OAAS,KAAK,QAAQ,CAAC,EAC3B,OAAS,QAAU,MAAM,oBAAoB,IAAM,OAAS,IAAM,QAAQ,CAC3E,CACA,OAAO,MACR,CACD,EAAG,CACF,IAAK,gBACL,MAAO,SAAuB,IAAK,CAClC,IAAI,MAAQ,OACZ,GAAI,CACH,MAAQ,KAAK,UAAU,IAAK,gBAAgB,EAAE,OAC/C,MAAgB,CAEf,MAAQA,kBAAiB,GAAG,EAAE,iBAAiB,gBAAgB,CAChE,CAEA,OAAI,QAAU,OACN,GAGD,KACR,CACD,EAAG,CACF,IAAK,qBACL,MAAO,SAA4B,IAAK,CAGvC,OAAO,KAAK,mBAAmB,IAAI,IAAK,KAAK,cAAc,GAAG,CAAC,CAChE,CACD,EAAG,CACF,IAAK,sBACL,MAAO,SAA6B,IAAK,CACxC,OAAO,KAAK,mBAAmB,IAAI,GAAG,CACvC,CACD,EAAG,CACF,IAAK,gBACL,MAAO,UAAyB,CAC/B,KAAK,SAAW,EACjB,CACD,EAAG,CACF,IAAK,iBACL,MAAO,UAA0B,CAChC,GAAI,KAAK,SAAU,CAClB,KAAK,SAAW,GAEhB,QADI,QAAU,CAAC,EACN,EAAI,EAAG,EAAI,KAAK,MAAM,OAAQ,IAAK,CAC3C,IAAI,IAAM,KAAK,MAAM,CAAC,EACtB,GAAI,IAAK,CACR,GAAI,KAAK,UAAU,GAAG,EAAG,CACxB,KAAK,KAAK,GAAG,EACb,QACD,CACA,QAAQ,KAAK,GAAG,CACjB,CACD,CACA,KAAK,MAAQ,QACT,CAAC,KAAK,MAAM,QAAU,CAAC,KAAK,OAAO,MACtC,KAAK,KAAK,CAEZ,CACD,CACD,EAAG,CACF,IAAK,YACL,MAAO,SAAmB,QAAS,CAIlC,KAAO,QAAQ,YAAc,QAC5B,QAAU,QAAQ,WAGnB,QADI,IAAM,QAAQ,UACX,QAAQ,cACd,QAAU,QAAQ,aAClB,KAAO,QAAQ,UAEhB,OAAO,GACR,CACD,EAAG,CACF,IAAK,YACL,MAAO,SAAmB,IAAK,CAC9B,IAAI,OAAS,IAAI,aAAa,iBAAiB,GAAK,KAAK,OAAO,OAC5D,QAAU,KAAK,OAAO,iBAAmB,KAAK,OAAO,gBAAgB,WAAa,OAAO,YACzF,WAAa,QAAU,KAAK,IAAI,KAAK,QAAQ,aAAc,eAAe,CAAC,EAAI,OAC/E,IAAM,KAAK,UAAU,GAAG,EACxB,OAAS,IAAM,IAAI,aAEvB,OAAO,KAAO,YAAc,QAAU,OACvC,CACD,EAAG,CACF,IAAK,WACL,MAAO,UAAoB,CAC1B,MAAO,CAAC,KAAK,OAAO,QAAU,SAAS,UAAU,SAAS,CAC3D,CACD,CAAC,CAAC,EAEKC,IACR,GAAE,EAEFzC,SAAQ,QAAU,IAClBqC,QAAO,QAAUrC,SAAQ,OAC1B,CAAC,CAIL,EAGA,EAGc,yBAA2B,CAAC,EAGhC,SAAS,oBAAoB,SAAU,CAEtC,IAAI,aAAe,yBAAyB,QAAQ,EACpD,GAAI,eAAiB,OACpB,OAAO,aAAa,QAIrB,IAAI,OAAS,yBAAyB,QAAQ,EAAI,CAGjD,QAAS,CAAC,CAEtB,EAGW,2BAAoB,QAAQ,EAAE,KAAK,OAAO,QAAS,OAAQ,OAAO,QAAS,mBAAmB,EAGvF,OAAO,OAEzB,CAMW,oBAAoB,EAAK,QAAW,CACnC,IAAI,OAAS,QAAU,OAAO,WAC7B,IAAO,OAAO,QACd,IAAO,OACR,2BAAoB,EAAE,OAAQ,CAAE,EAAG,MAAO,CAAC,EACpC,MAEnB,EAOW,oBAAoB,EAAI,CAAC,QAAS,aAAe,CAChD,QAAS,OAAO,WACX,oBAAoB,EAAE,WAAY,GAAG,GAAK,CAAC,oBAAoB,EAAE,QAAS,GAAG,GAChF,OAAO,eAAe,QAAS,IAAK,CAAE,WAAY,GAAM,IAAK,WAAW,GAAG,CAAE,CAAC,CAM5F,EAMW,oBAAoB,GAAK,UAAY,CACpC,GAAI,OAAO,YAAe,SAAU,OAAO,WAC3C,GAAI,CACH,OAAO,MAAQ,IAAI,SAAS,aAAa,EAAE,CAExD,MAAY,CACC,GAAI,OAAO,QAAW,SAAU,OAAO,MAEpD,CAEA,GAAG,EAMQ,oBAAoB,EAAI,CAAC,IAAK,OAAU,OAAO,UAAU,eAAe,KAAK,IAAK,IAAI,EAKhG,IAAI,oBAAsB,CAAC,GAE1B,IAAM,CACN,aAGA,IAAI,OAAS,oBAAoB,GAAG,EAChC,eAA8B,oBAAoB,EAAE,MAAM,EAE1D,IAAM,oBAAoB,GAAG,EAC7B,YAA2B,oBAAoB,EAAE,GAAG,EAExD;AAAA;AAAA;AAAA;AAAA,GAOA,IAAI,YAAc,OAAO,OAAO,CAAC,CAAC,EAIlC,SAAS,QAAQ,EAAG,CACnB,OAA0B,GAAM,IACjC,CAEA,SAAS,MAAM,EAAG,CACjB,OAA0B,GAAM,IACjC,CAEA,SAAS,OAAO,EAAG,CAClB,OAAO,IAAM,EACd,CAEA,SAAS,QAAQ,EAAG,CACnB,OAAO,IAAM,EACd,CAKA,SAAS,YAAY,MAAO,CAC3B,OACC,OAAO,OAAU,UACjB,OAAO,OAAU,UAEjB,OAAO,OAAU,UACjB,OAAO,OAAU,SAEnB,CAOA,SAAS,SAAS,IAAK,CACtB,OAAO,MAAQ,MAAQ,OAAO,KAAQ,QACvC,CAKA,IAAI,UAAY,OAAO,UAAU,SAEjC,SAAS,UAAU,MAAO,CACzB,OAAO,UAAU,KAAK,KAAK,EAAE,MAAM,EAAG,EAAE,CACzC,CAMA,SAAS,cAAc,IAAK,CAC3B,OAAO,UAAU,KAAK,GAAG,IAAM,iBAChC,CAEA,SAAS,SAAS,EAAG,CACpB,OAAO,UAAU,KAAK,CAAC,IAAM,iBAC9B,CAKA,SAAS,kBAAkBP,KAAK,CAC/B,IAAI,EAAI,WAAW,OAAOA,IAAG,CAAC,EAC9B,OAAO,GAAK,GAAK,KAAK,MAAM,CAAC,IAAM,GAAK,SAASA,IAAG,CACrD,CAEA,SAAS,UAAUA,KAAK,CACvB,OACC,MAAMA,IAAG,GACT,OAAOA,KAAI,MAAS,YACpB,OAAOA,KAAI,OAAU,UAEvB,CAKA,SAAS,iBAAiBA,KAAK,CAC9B,OAAOA,MAAO,KACX,GACA,MAAM,QAAQA,IAAG,GAAM,cAAcA,IAAG,GAAKA,KAAI,WAAa,UAC7D,KAAK,UAAUA,KAAK,KAAM,CAAC,EAC3B,OAAOA,IAAG,CACf,CAMA,SAAS,SAASA,KAAK,CACtB,IAAI,EAAI,WAAWA,IAAG,EACtB,OAAO,MAAM,CAAC,EAAIA,KAAM,CACzB,CAMA,SAAS,QACRQ,KACA,iBACC,CAGD,QAFIyC,KAAM,OAAO,OAAO,IAAI,EACxB,KAAOzC,KAAI,MAAM,GAAG,EACf,EAAI,EAAG,EAAI,KAAK,OAAQ,IAChCyC,KAAI,KAAK,CAAC,CAAC,EAAI,GAEhB,OAAO,iBACJ,SAAUjD,KAAK,CAAE,OAAOiD,KAAIjD,KAAI,YAAY,CAAC,CAAG,EAChD,SAAUA,KAAK,CAAE,OAAOiD,KAAIjD,IAAG,CAAG,CACtC,CAKA,IAAI,aAAe,QAAQ,iBAAkB,EAAI,EAK7C,oBAAsB,QAAQ,4BAA4B,EAK9D,SAAS,OAAO,IAAK,KAAM,CAC1B,GAAI,IAAI,OAAQ,CACf,IAAIJ,OAAQ,IAAI,QAAQ,IAAI,EAC5B,GAAIA,OAAQ,GACX,OAAO,IAAI,OAAOA,OAAO,CAAC,CAE5B,CACD,CAKA,IAAI,uBAAyB,OAAO,UAAU,eAC9C,SAAS,OAAO,IAAK,IAAK,CACzB,OAAO,uBAAuB,KAAK,IAAK,GAAG,CAC5C,CAKA,SAAS,OAAO,GAAI,CACnB,IAAI,MAAQ,OAAO,OAAO,IAAI,EAC9B,OAAQ,SAAkBY,KAAK,CAC9B,IAAI,IAAM,MAAMA,IAAG,EACnB,OAAO,MAAQ,MAAMA,IAAG,EAAI,GAAGA,IAAG,EACnC,EACD,CAKA,IAAI,WAAa,SACb,SAAW,OAAO,SAAUA,KAAK,CACpC,OAAOA,KAAI,QAAQ,WAAY,SAAU,EAAG,EAAG,CAAE,OAAO,EAAI,EAAE,YAAY,EAAI,EAAI,CAAC,CACpF,CAAC,EAKG,WAAa,OAAO,SAAUA,KAAK,CACtC,OAAOA,KAAI,OAAO,CAAC,EAAE,YAAY,EAAIA,KAAI,MAAM,CAAC,CACjD,CAAC,EAKG,YAAc,aACd,UAAY,OAAO,SAAUA,KAAK,CACrC,OAAOA,KAAI,QAAQ,YAAa,KAAK,EAAE,YAAY,CACpD,CAAC,EAWD,SAAS,aAAa,GAAI,IAAK,CAC9B,SAAS,QAAQ,EAAG,CACnB,IAAI,EAAI,UAAU,OAClB,OAAO,EACJ,EAAI,EACH,GAAG,MAAM,IAAK,SAAS,EACvB,GAAG,KAAK,IAAK,CAAC,EACf,GAAG,KAAK,GAAG,CACf,CAEA,eAAQ,QAAU,GAAG,OACd,OACR,CAEA,SAAS,WAAW,GAAI,IAAK,CAC5B,OAAO,GAAG,KAAK,GAAG,CACnB,CAEA,IAAI,KAAO,SAAS,UAAU,KAC3B,WACA,aAKH,SAAS,QAAQ,KAAM,MAAO,CAC7B,MAAQ,OAAS,EAGjB,QAFI,EAAI,KAAK,OAAS,MAClB,IAAM,IAAI,MAAM,CAAC,EACd,KACN,IAAI,CAAC,EAAI,KAAK,EAAI,KAAK,EAExB,OAAO,GACR,CAKA,SAAS,OAAO,GAAI,MAAO,CAC1B,QAAS,OAAO,MACf,GAAG,GAAG,EAAI,MAAM,GAAG,EAEpB,OAAO,EACR,CAKA,SAAS,SAAS,IAAK,CAEtB,QADI,IAAM,CAAC,EACF,EAAI,EAAG,EAAI,IAAI,OAAQ,IAC3B,IAAI,CAAC,GACR,OAAO,IAAK,IAAI,CAAC,CAAC,EAGpB,OAAO,GACR,CASA,SAAS,KAAK,EAAG,EAAG,EAAG,CAAE,CAKzB,IAAI,GAAK,SAAU,EAAG,EAAG,EAAG,CAAE,MAAO,EAAO,EAOxC,SAAW,SAAU,EAAG,CAAE,OAAO,CAAG,EAKxC,SAAS,cAAcE,SAAS,CAC/B,OAAOA,SAAQ,OAAO,SAAU,KAAM,EAAG,CACxC,OAAO,KAAK,OAAO,EAAE,YAAc,CAAC,CAAC,CACtC,EAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAChB,CAMA,SAAS,WAAW,EAAG,EAAG,CACzB,GAAI,IAAM,EAAK,MAAO,GACtB,IAAI,UAAY,SAAS,CAAC,EACtB,UAAY,SAAS,CAAC,EAC1B,GAAI,WAAa,UAChB,GAAI,CACH,IAAI,SAAW,MAAM,QAAQ,CAAC,EAC1B,SAAW,MAAM,QAAQ,CAAC,EAC9B,GAAI,UAAY,SACf,OAAO,EAAE,SAAW,EAAE,QAAU,EAAE,MAAM,SAAU,EAAG,EAAG,CACvD,OAAO,WAAW,EAAG,EAAE,CAAC,CAAC,CAC1B,CAAC,EACK,GAAI,aAAa,MAAQ,aAAa,KAC5C,OAAO,EAAE,QAAQ,IAAM,EAAE,QAAQ,EAC3B,GAAI,CAAC,UAAY,CAAC,SAAU,CAClC,IAAI,MAAQ,OAAO,KAAK,CAAC,EACrB,MAAQ,OAAO,KAAK,CAAC,EACzB,OAAO,MAAM,SAAW,MAAM,QAAU,MAAM,MAAM,SAAU,IAAK,CAClE,OAAO,WAAW,EAAE,GAAG,EAAG,EAAE,GAAG,CAAC,CACjC,CAAC,CACF,KAEC,OAAO,EAET,MAAY,CAEX,MAAO,EACR,KACM,OAAI,CAAC,WAAa,CAAC,UAClB,OAAO,CAAC,IAAM,OAAO,CAAC,EAEtB,EAET,CAOA,SAAS,aAAa,IAAKV,KAAK,CAC/B,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,IAC/B,GAAI,WAAW,IAAI,CAAC,EAAGA,IAAG,EAAK,OAAO,EAEvC,MAAO,EACR,CAKA,SAAS,KAAK,GAAI,CACjB,IAAI,OAAS,GACb,OAAO,UAAY,CACb,SACJ,OAAS,GACT,GAAG,MAAM,KAAM,SAAS,EAE1B,CACD,CAEA,IAAI,SAAW,uBAEX,YAAc,CACjB,YACA,YACA,QACD,EAEI,gBAAkB,CACrB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,gBACD,EAMI,OAAU,CAKb,sBAAuB,OAAO,OAAO,IAAI,EAKzC,OAAQ,GAKR,cAAe,GAKf,SAAU,GAKV,YAAa,GAKb,aAAc,KAKd,YAAa,KAKb,gBAAiB,CAAC,EAMlB,SAAU,OAAO,OAAO,IAAI,EAM5B,cAAe,GAMf,eAAgB,GAMhB,iBAAkB,GAKlB,gBAAiB,KAKjB,qBAAsB,SAMtB,YAAa,GAMb,MAAO,GAKP,gBAAiB,eAClB,EASI,cAAgB,8JAKpB,SAAS,WAAWQ,KAAK,CACxB,IAAI,GAAKA,KAAM,IAAI,WAAW,CAAC,EAC/B,OAAO,IAAM,IAAQ,IAAM,EAC5B,CAKA,SAAS,IAAI,IAAK,IAAKR,KAAK,WAAY,CACvC,OAAO,eAAe,IAAK,IAAK,CAC/B,MAAOA,KACP,WAAY,CAAC,CAAC,WACd,SAAU,GACV,aAAc,EACf,CAAC,CACF,CAKA,IAAI,OAAS,IAAI,OAAQ,KAAQ,cAAc,OAAU,SAAU,EACnE,SAAS,UAAU,KAAM,CACxB,GAAI,QAAO,KAAK,IAAI,EAGpB,KAAI,SAAW,KAAK,MAAM,GAAG,EAC7B,OAAO,SAAU,IAAK,CACrB,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,GAAI,CAAC,IAAO,OACZ,IAAM,IAAI,SAAS,CAAC,CAAC,CACtB,CACA,OAAO,GACR,EACD,CAKA,IAAI,SAAW,aAAe,CAAC,EAG3B,UAAY,OAAO,OAAW,IAC9B,OAAS,OAAO,cAAkB,KAAe,CAAC,CAAC,cAAc,SACjE,aAAe,QAAU,cAAc,SAAS,YAAY,EAC5D,GAAK,WAAa,OAAO,UAAU,UAAU,YAAY,EACzD,KAAO,IAAM,eAAe,KAAK,EAAE,EACnC,MAAQ,IAAM,GAAG,QAAQ,UAAU,EAAI,EACvC,OAAS,IAAM,GAAG,QAAQ,OAAO,EAAI,EACrC,UAAa,IAAM,GAAG,QAAQ,SAAS,EAAI,GAAO,eAAiB,UACnE,MAAS,IAAM,uBAAuB,KAAK,EAAE,GAAO,eAAiB,MACrE,SAAW,IAAM,cAAc,KAAK,EAAE,GAAK,CAAC,OAC5C,YAAc,IAAM,YAAY,KAAK,EAAE,EACvC,KAAO,IAAM,GAAG,MAAM,gBAAgB,EAGtC,YAAe,CAAC,EAAG,MAEnB,gBAAkB,GACtB,GAAI,UACH,GAAI,CACH,IAAI,KAAO,CAAC,EACZ,OAAO,eAAe,KAAM,UAAY,CACvC,IAAK,UAAe,CAEnB,gBAAkB,EACnB,CACD,CAAE,EACF,OAAO,iBAAiB,eAAgB,KAAM,IAAI,CACnD,MAAY,CAAE,CAKf,IAAI,UACA,kBAAoB,UAAY,CACnC,OAAI,YAAc,SAEb,CAAC,WAAa,CAAC,QAAU,OAAO,oBAAoB,EAAM,IAG7D,UAAY,oBAAoB,EAAE,SAAc,oBAAoB,EAAE,QAAW,IAAI,UAAY,SAEjG,UAAY,IAGP,SACR,EAGI,SAAW,WAAa,OAAO,6BAGnC,SAAS,SAAS,KAAM,CACvB,OAAO,OAAO,MAAS,YAAc,cAAc,KAAK,KAAK,SAAS,CAAC,CACxE,CAEA,IAAI,UACH,OAAO,OAAW,KAAe,SAAS,MAAM,GAChD,OAAO,QAAY,KAAe,SAAS,QAAQ,OAAO,EAEvD,KAEA,OAAO,IAAQ,KAAe,SAAS,GAAG,EAE7C,KAAO,IAGP,MAAqB,UAAY,CAChC,SAASoB,MAAM,CACd,KAAK,IAAM,OAAO,OAAO,IAAI,CAC9B,CACA,OAAAA,KAAI,UAAU,IAAM,SAAa,IAAK,CACrC,OAAO,KAAK,IAAI,GAAG,IAAM,EAC1B,EACAA,KAAI,UAAU,IAAM,SAAa,IAAK,CACrC,KAAK,IAAI,GAAG,EAAI,EACjB,EACAA,KAAI,UAAU,MAAQ,UAAiB,CACtC,KAAK,IAAM,OAAO,OAAO,IAAI,CAC9B,EAEOA,IACR,GAAE,EAKH,IAAI,KAAO,KACP,IAA6C,KAC7C,uBAAiE,KACjE,oBAA8D,KAElE,GAAI,EAAS,IAAI,OAAQ,SAAU,WAAY,WAI/C,IAAI,IAAM,EAMN,IAAM,UAAe,CACxB,KAAK,GAAK,MACV,KAAK,KAAO,CAAC,CACd,EAEA,IAAI,UAAU,OAAS,SAAgB,IAAK,CAC3C,KAAK,KAAK,KAAK,GAAG,CACnB,EAEA,IAAI,UAAU,UAAY,SAAmB,IAAK,CACjD,OAAO,KAAK,KAAM,GAAG,CACtB,EAEA,IAAI,UAAU,OAAS,UAAkB,CACpC,IAAI,QACP,IAAI,OAAO,OAAO,IAAI,CAExB,EAEA,IAAI,UAAU,OAAS,UAAkB,CAIxC,QAFI,KAAO,KAAK,KAAK,MAAM,EAElB,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IACvC,KAAK,CAAC,EAAE,OAAO,CAEjB,EAKA,IAAI,OAAS,KACb,IAAI,YAAc,CAAC,EAEnB,SAAS,WAAW8B,QAAQ,CAC3B,YAAY,KAAKA,OAAM,EACvB,IAAI,OAASA,OACd,CAEA,SAAS,WAAY,CACpB,YAAY,IAAI,EAChB,IAAI,OAAS,YAAY,YAAY,OAAS,CAAC,CAChD,CAIA,IAAI,MAAQ,SACX,IACAzD,MACA0D,UACA,KACA,IACA,QACA,iBACA,aACC,CACD,KAAK,IAAM,IACX,KAAK,KAAO1D,MACZ,KAAK,SAAW0D,UAChB,KAAK,KAAO,KACZ,KAAK,IAAM,IACX,KAAK,GAAK,OACV,KAAK,QAAU,QACf,KAAK,UAAY,OACjB,KAAK,UAAY,OACjB,KAAK,UAAY,OACjB,KAAK,IAAM1D,OAAQA,MAAK,IACxB,KAAK,iBAAmB,iBACxB,KAAK,kBAAoB,OACzB,KAAK,OAAS,OACd,KAAK,IAAM,GACX,KAAK,SAAW,GAChB,KAAK,aAAe,GACpB,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,OAAS,GACd,KAAK,aAAe,aACpB,KAAK,UAAY,OACjB,KAAK,mBAAqB,EAC3B,EAEI,mBAAqB,CAAE,MAAO,CAAE,aAAc,EAAK,CAAE,EAIzD,mBAAmB,MAAM,IAAM,UAAY,CAC1C,OAAO,KAAK,iBACb,EAEA,OAAO,iBAAiB,MAAM,UAAW,kBAAkB,EAE3D,IAAI,iBAAmB,SAAU,KAAM,CAClC,OAAS,SAAQ,KAAO,IAE5B,IAAI,KAAO,IAAI,MACf,YAAK,KAAO,KACZ,KAAK,UAAY,GACV,IACR,EAEA,SAAS,gBAAgBO,KAAK,CAC7B,OAAO,IAAI,MAAM,OAAW,OAAW,OAAW,OAAOA,IAAG,CAAC,CAC9D,CAMA,SAAS,WAAW,MAAO,CAC1B,IAAI,OAAS,IAAI,MAChB,MAAM,IACN,MAAM,KAIN,MAAM,UAAY,MAAM,SAAS,MAAM,EACvC,MAAM,KACN,MAAM,IACN,MAAM,QACN,MAAM,iBACN,MAAM,YACP,EACA,cAAO,GAAK,MAAM,GAClB,OAAO,SAAW,MAAM,SACxB,OAAO,IAAM,MAAM,IACnB,OAAO,UAAY,MAAM,UACzB,OAAO,UAAY,MAAM,UACzB,OAAO,UAAY,MAAM,UACzB,OAAO,UAAY,MAAM,UACzB,OAAO,UAAY,MAAM,UACzB,OAAO,SAAW,GACX,MACR,CAOA,IAAI,WAAa,MAAM,UACnB,aAAe,OAAO,OAAO,UAAU,EAEvC,eAAiB,CACpB,OACA,MACA,QACA,UACA,SACA,OACA,SACD,EAKA,eAAe,QAAQ,SAAU,OAAQ,CAExC,IAAI,SAAW,WAAW,MAAM,EAChC,IAAI,aAAc,OAAQ,UAAmB,CAE5C,QADI,KAAO,CAAC,EAAGsB,KAAM,UAAU,OACxBA,QAAO,KAAKA,IAAG,EAAI,UAAUA,IAAG,EAEvC,IAAI,OAAS,SAAS,MAAM,KAAM,IAAI,EAClC,GAAK,KAAK,OACV,SACJ,OAAQ,OAAQ,CACf,IAAK,OACL,IAAK,UACJ,SAAW,KACX,MACD,IAAK,SACJ,SAAW,KAAK,MAAM,CAAC,EACvB,KACF,CACA,OAAI,UAAY,GAAG,aAAa,QAAQ,EAExC,GAAG,IAAI,OAAO,EACP,MACR,CAAC,CACF,CAAC,EAID,IAAI,UAAY,OAAO,oBAAoB,YAAY,EAMnD,cAAgB,GAEpB,SAAS,gBAAgB,MAAO,CAC/B,cAAgB,KACjB,CAQA,IAAI,SAAW,SAAkB,MAAO,CACvC,KAAK,MAAQ,MACb,KAAK,IAAM,IAAI,IACf,KAAK,QAAU,EACf,IAAI,MAAO,SAAU,IAAI,EACrB,MAAM,QAAQ,KAAK,GAClB,SACH,aAAa,MAAO,YAAY,EAEhC,YAAY,MAAO,aAAc,SAAS,EAE3C,KAAK,aAAa,KAAK,GAEvB,KAAK,KAAK,KAAK,CAEjB,EAOA,SAAS,UAAU,KAAO,SAAc,IAAK,CAE5C,QADI,KAAO,OAAO,KAAK,GAAG,EACjB,EAAI,EAAG,EAAI,KAAK,OAAQ,IAChC,kBAAkB,IAAK,KAAK,CAAC,CAAC,CAEhC,EAKA,SAAS,UAAU,aAAe,SAAsB,MAAO,CAC9D,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAI,EAAG,IACxC,QAAQ,MAAM,CAAC,CAAC,CAElB,EAQA,SAAS,aAAa4B,QAAQ,IAAK,CAElCA,QAAO,UAAY,GAEpB,CAOA,SAAS,YAAYA,QAAQ,IAAK,KAAM,CACvC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAAK,CAC5C,IAAI,IAAM,KAAK,CAAC,EAChB,IAAIA,QAAQ,IAAK,IAAI,GAAG,CAAC,CAC1B,CACD,CAOA,SAAS,QAAQ,MAAO,WAAY,CACnC,GAAI,GAAC,SAAS,KAAK,GAAK,iBAAiB,OAGzC,KAAI,GACJ,OAAI,OAAO,MAAO,QAAQ,GAAK,MAAM,kBAAkB,SACtD,GAAK,MAAM,OAEX,eACA,CAAC,kBAAkB,IAClB,MAAM,QAAQ,KAAK,GAAK,cAAc,KAAK,IAC5C,OAAO,aAAa,KAAK,GACzB,CAAC,MAAM,SAEP,GAAK,IAAI,SAAS,KAAK,GAEpB,YAAc,IACjB,GAAG,UAEG,GACR,CAKA,SAAS,kBACR,IACA,IACAlD,KACA,aACA,QACC,CACD,IAAI,IAAM,IAAI,IAEV,SAAW,OAAO,yBAAyB,IAAK,GAAG,EACvD,GAAI,YAAY,SAAS,eAAiB,IAK1C,KAAI,OAAS,UAAY,SAAS,IAC9B,OAAS,UAAY,SAAS,KAC7B,CAAC,QAAU,SAAW,UAAU,SAAW,IAC/CA,KAAM,IAAI,GAAG,GAGd,IAAI,QAAU,CAAC,SAAW,QAAQA,IAAG,EACrC,OAAO,eAAe,IAAK,IAAK,CAC/B,WAAY,GACZ,aAAc,GACd,IAAK,UAA0B,CAC9B,IAAI,MAAQ,OAAS,OAAO,KAAK,GAAG,EAAIA,KACxC,OAAI,IAAI,SACP,IAAI,OAAO,EACP,UACH,QAAQ,IAAI,OAAO,EACf,MAAM,QAAQ,KAAK,GACtB,YAAY,KAAK,IAIb,KACR,EACA,IAAK,SAAwB,OAAQ,CACpC,IAAI,MAAQ,OAAS,OAAO,KAAK,GAAG,EAAIA,KAEpC,SAAW,OAAU,SAAW,QAAU,QAAU,OAMpD,QAAU,CAAC,SACX,OACH,OAAO,KAAK,IAAK,MAAM,EAEvBA,KAAM,OAEP,QAAU,CAAC,SAAW,QAAQ,MAAM,EACpC,IAAI,OAAO,EACZ,CACD,CAAC,EACF,CAOA,SAAS,IAAIkD,QAAQ,IAAKlD,KAAK,CAG9B,GAAI,MAAM,QAAQkD,OAAM,GAAK,kBAAkB,GAAG,EACjD,OAAAA,QAAO,OAAS,KAAK,IAAIA,QAAO,OAAQ,GAAG,EAC3CA,QAAO,OAAO,IAAK,EAAGlD,IAAG,EAClBA,KAER,GAAI,OAAOkD,SAAU,EAAE,OAAO,OAAO,WACpC,OAAAA,QAAO,GAAG,EAAIlD,KACPA,KAER,IAAI,GAAMkD,QAAQ,OAClB,OAAIA,QAAO,QAAW,IAAM,GAAG,QAEvBlD,KAEH,IAIL,kBAAkB,GAAG,MAAO,IAAKA,IAAG,EACpC,GAAG,IAAI,OAAO,EACPA,OALNkD,QAAO,GAAG,EAAIlD,KACPA,KAKT,CAKA,SAAS,IAAIkD,QAAQ,IAAK,CAGzB,GAAI,MAAM,QAAQA,OAAM,GAAK,kBAAkB,GAAG,EAAG,CACpDA,QAAO,OAAO,IAAK,CAAC,EACpB,MACD,CACA,IAAI,GAAMA,QAAQ,OACdA,QAAO,QAAW,IAAM,GAAG,SAI1B,OAAOA,QAAQ,GAAG,IAGvB,OAAOA,QAAO,GAAG,EACZ,IAGL,GAAG,IAAI,OAAO,EACf,CAMA,SAAS,YAAY,MAAO,CAC3B,QAAS,EAAK,OAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAI,EAAG,IACtD,EAAI,MAAM,CAAC,EACX,GAAK,EAAE,QAAU,EAAE,OAAO,IAAI,OAAO,EACjC,MAAM,QAAQ,CAAC,GAClB,YAAY,CAAC,CAGhB,CASA,IAAI,OAAS,OAAO,sBAUpB,SAAS,UAAU,GAAI,KAAM,CAC5B,GAAI,CAAC,KAAQ,OAAO,GAOpB,QANI,IAAK,MAAO,QAEZ,KAAO,UACR,QAAQ,QAAQ,IAAI,EACpB,OAAO,KAAK,IAAI,EAEV,EAAI,EAAG,EAAI,KAAK,OAAQ,IAChC,IAAM,KAAK,CAAC,EAER,MAAQ,WACZ,MAAQ,GAAG,GAAG,EACd,QAAU,KAAK,GAAG,EACb,OAAO,GAAI,GAAG,EAGlB,QAAU,SACV,cAAc,KAAK,GACnB,cAAc,OAAO,GAErB,UAAU,MAAO,OAAO,EANxB,IAAI,GAAI,IAAK,OAAO,GAStB,OAAO,EACR,CAKA,SAAS,cACR,UACA,SACA,GACC,CACD,OAAK,GAoBG,UAAgC,CAEtC,IAAI,aAAe,OAAO,UAAa,WACpC,SAAS,KAAK,GAAI,EAAE,EACpB,SACC,YAAc,OAAO,WAAc,WACpC,UAAU,KAAK,GAAI,EAAE,EACrB,UACH,OAAI,aACI,UAAU,aAAc,WAAW,EAEnC,WAET,EA/BK,SAGA,UAQE,UAAwB,CAC9B,OAAO,UACN,OAAO,UAAa,WAAa,SAAS,KAAK,KAAM,IAAI,EAAI,SAC7D,OAAO,WAAc,WAAa,UAAU,KAAK,KAAM,IAAI,EAAI,SAChE,CACD,EAZQ,SAHA,SAgCV,CAEA,OAAO,KAAO,SACb,UACA,SACA,GACC,CACD,OAAK,GASE,cAAc,UAAW,SAAU,EAAE,EARvC,UAAY,OAAO,UAAa,WAG5B,UAED,cAAc,UAAW,QAAQ,CAI1C,EAKA,SAAS,UACR,UACA,SACC,CACD,IAAI,IAAM,SACP,UACC,UAAU,OAAO,QAAQ,EACzB,MAAM,QAAQ,QAAQ,EACrB,SACA,CAAC,QAAQ,EACX,UACH,OAAO,KACJ,YAAY,GAAG,CAEnB,CAEA,SAAS,YAAYE,OAAO,CAE3B,QADI,IAAM,CAAC,EACF,EAAI,EAAG,EAAIA,OAAM,OAAQ,IAC7B,IAAI,QAAQA,OAAM,CAAC,CAAC,IAAM,IAC7B,IAAI,KAAKA,OAAM,CAAC,CAAC,EAGnB,OAAO,GACR,CAEA,gBAAgB,QAAQ,SAAU,KAAM,CACvC,OAAO,IAAI,EAAI,SAChB,CAAC,EASD,SAAS,YACR,UACA,SACA,GACA,IACC,CACD,IAAI,IAAM,OAAO,OAAO,WAAa,IAAI,EACzC,OAAI,SAEI,OAAO,IAAK,QAAQ,EAEpB,GAET,CAEA,YAAY,QAAQ,SAAU,KAAM,CACnC,OAAO,KAAO,GAAG,EAAI,WACtB,CAAC,EAQD,OAAO,MAAQ,SACd,UACA,SACA,GACA,IACC,CAKD,GAHI,YAAc,cAAe,UAAY,QACzC,WAAa,cAAe,SAAW,QAEvC,CAAC,SAAY,OAAO,OAAO,OAAO,WAAa,IAAI,EAEvD,GAAI,CAAC,UAAa,OAAO,SACzB,IAAI,IAAM,CAAC,EACX,OAAO,IAAK,SAAS,EACrB,QAAS,SAAS,SAAU,CAC3B,IAAI,OAAS,IAAI,KAAK,EAClB,MAAQ,SAAS,KAAK,EACtB,QAAU,CAAC,MAAM,QAAQ,MAAM,IAClC,OAAS,CAAC,MAAM,GAEjB,IAAI,KAAK,EAAI,OACV,OAAO,OAAO,KAAK,EACnB,MAAM,QAAQ,KAAK,EAAI,MAAQ,CAAC,KAAK,CACzC,CACA,OAAO,GACR,EAKA,OAAO,MACN,OAAO,QACP,OAAO,OACP,OAAO,SAAW,SACjB,UACA,SACA,GACA,IACC,CAED,GAAI,CAAC,UAAa,OAAO,SACzB,IAAI,IAAM,OAAO,OAAO,IAAI,EAC5B,cAAO,IAAK,SAAS,EACjB,UAAY,OAAO,IAAK,QAAQ,EAC7B,GACR,EACD,OAAO,QAAU,cAKjB,IAAI,aAAe,SAAU,UAAW,SAAU,CACjD,OAAO,WAAa,OACjB,UACA,QACJ,EAKA,SAAS,gBAAgB,QAAS,CACjC,QAAS,OAAO,QAAQ,WACvB,sBAAsB,GAAG,CAE3B,CAEA,SAAS,sBAAsB,KAAM,CAC/B,IAAI,OAAQ,uBAA0B,cAAc,OAAU,KAAM,EAAE,KAAK,IAAI,GACnF,KACC,4BAA8B,KAAO,wFAEtC,GAEG,aAAa,IAAI,GAAK,OAAO,cAAc,IAAI,IAClD,KACC,kEACS,IACV,CAEF,CAMA,SAAS,eAAe,QAAS,GAAI,CACpC,IAAIC,OAAQ,QAAQ,MACpB,GAAKA,OACL,KAAI,IAAM,CAAC,EACP,EAAGrD,KAAK,KACZ,GAAI,MAAM,QAAQqD,MAAK,EAEtB,IADA,EAAIA,OAAM,OACH,KACNrD,KAAMqD,OAAM,CAAC,EACT,OAAOrD,MAAQ,WAClB,KAAO,SAASA,IAAG,EACnB,IAAI,IAAI,EAAI,CAAE,KAAM,IAAK,WAGjB,cAAcqD,MAAK,EAC7B,QAAS,OAAOA,OACfrD,KAAMqD,OAAM,GAAG,EACf,KAAO,SAAS,GAAG,EACnB,IAAI,IAAI,EAAI,cAAcrD,IAAG,EAC1BA,KACA,CAAE,KAAMA,IAAI,EAGjB,QAAQ,MAAQ,IACjB,CAKA,SAAS,gBAAgB,QAAS,GAAI,CACrC,IAAI,OAAS,QAAQ,OACrB,GAAK,OACL,KAAI,WAAa,QAAQ,OAAS,CAAC,EACnC,GAAI,MAAM,QAAQ,MAAM,EACvB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,IAClC,WAAW,OAAO,CAAC,CAAC,EAAI,CAAE,KAAM,OAAO,CAAC,CAAE,UAEjC,cAAc,MAAM,EAC9B,QAAS,OAAO,OAAQ,CACvB,IAAIA,KAAM,OAAO,GAAG,EACpB,WAAW,GAAG,EAAI,cAAcA,IAAG,EAChC,OAAO,CAAE,KAAM,GAAI,EAAGA,IAAG,EACzB,CAAE,KAAMA,IAAI,CAChB,EAEF,CAKA,SAAS,oBAAoB,QAAS,CACrC,IAAI,KAAO,QAAQ,WACnB,GAAI,KACH,QAAS,OAAO,KAAM,CACrB,IAAI,OAAS,KAAK,GAAG,EACjB,OAAO,QAAW,aACrB,KAAK,GAAG,EAAI,CAAE,KAAM,OAAQ,OAAQ,MAAO,EAE7C,CAEF,CAEA,SAAS,iBAAiB,KAAM,MAAO,GAAI,CACrC,cAAc,KAAK,GACvB,KACC,6BAAgC,KAAO,kCACzB,UAAU,KAAK,EAAK,IAClC,EACD,CAEF,CAMA,SAAS,aACR,OACA,MACA,GACC,CAeD,GAZI,OAAO,OAAU,aACpB,MAAQ,MAAM,SAGf,eAAe,MAAO,EAAE,EACxB,gBAAgB,MAAO,EAAE,EACzB,oBAAoB,KAAK,EAMrB,CAAC,MAAM,QACN,MAAM,UACT,OAAS,aAAa,OAAQ,MAAM,QAAS,EAAE,GAE5C,MAAM,QACT,QAAS,EAAI,EAAG,EAAI,MAAM,OAAO,OAAQ,EAAI,EAAG,IAC/C,OAAS,aAAa,OAAQ,MAAM,OAAO,CAAC,EAAG,EAAE,EAKpD,IAAI,QAAU,CAAC,EACX,IACJ,IAAK,OAAO,OACX,WAAW,GAAG,EAEf,IAAK,OAAO,MACN,OAAO,OAAQ,GAAG,GACtB,WAAW,GAAG,EAGhB,SAAS,WAAW0B,KAAK,CACxB,IAAI,MAAQ,OAAOA,IAAG,GAAK,aAC3B,QAAQA,IAAG,EAAI,MAAM,OAAOA,IAAG,EAAG,MAAMA,IAAG,EAAG,GAAIA,IAAG,CACtD,CACA,OAAO,OACR,CAOA,SAAS,aACR,QACA,KACA,GACA,YACC,CAED,GAAI,OAAO,IAAO,SAGlB,KAAI,OAAS,QAAQ,IAAI,EAEzB,GAAI,OAAO,OAAQ,EAAE,EAAK,OAAO,OAAO,EAAE,EAC1C,IAAI,YAAc,SAAS,EAAE,EAC7B,GAAI,OAAO,OAAQ,WAAW,EAAK,OAAO,OAAO,WAAW,EAC5D,IAAI,aAAe,WAAW,WAAW,EACzC,GAAI,OAAO,OAAQ,YAAY,EAAK,OAAO,OAAO,YAAY,EAE9D,IAAI,IAAM,OAAO,EAAE,GAAK,OAAO,WAAW,GAAK,OAAO,YAAY,EAElE,OAAO,IACR,CAMA,SAAS,aACR,IACA,YACA,UACA,GACC,CACD,IAAI4B,MAAO,YAAY,GAAG,EACtB,OAAS,CAAC,OAAO,UAAW,GAAG,EAC/B,MAAQ,UAAU,GAAG,EAErB,aAAe,aAAa,QAASA,MAAK,IAAI,EAClD,GAAI,aAAe,IAClB,GAAI,QAAU,CAAC,OAAOA,MAAM,SAAS,EACpC,MAAQ,WACE,QAAU,IAAM,QAAU,UAAU,GAAG,EAAG,CAGpD,IAAI,YAAc,aAAa,OAAQA,MAAK,IAAI,GAC5C,YAAc,GAAK,aAAe,eACrC,MAAQ,GAEV,EAGD,GAAI,QAAU,OAAW,CACxB,MAAQ,oBAAoB,GAAIA,MAAM,GAAG,EAGzC,IAAI,kBAAoB,cACxB,gBAAgB,EAAI,EACpB,QAAQ,KAAK,EACb,gBAAgB,iBAAiB,CAClC,CAIA,OAAO,KACR,CAKA,SAAS,oBAAoB,GAAIA,MAAM,IAAK,CAE3C,GAAK,OAAOA,MAAM,SAAS,EAG3B,KAAIC,KAAMD,MAAK,QAKf,OAAI,IAAM,GAAG,SAAS,WACrB,GAAG,SAAS,UAAU,GAAG,IAAM,QAC/B,GAAG,OAAO,GAAG,IAAM,OAEZ,GAAG,OAAO,GAAG,EAId,OAAOC,MAAQ,YAAc,QAAQD,MAAK,IAAI,IAAM,WACxDC,KAAI,KAAK,EAAE,EACXA,KACJ,CAKA,SAAS,WACRD,MACA,KACA,MACA,GACA,OACC,CACD,GAAIA,MAAK,UAAY,OAAQ,CAC5B,KACC,2BAA6B,KAAO,IACpC,EACD,EACA,MACD,CACA,GAAI,SAAS,MAAQ,CAACA,MAAK,UAG3B,KAAI,KAAOA,MAAK,KACZ,MAAQ,CAAC,MAAQ,OAAS,GAC1B,cAAgB,CAAC,EACrB,GAAI,KAAM,CACJ,MAAM,QAAQ,IAAI,IACtB,KAAO,CAAC,IAAI,GAEb,QAAS,EAAI,EAAG,EAAI,KAAK,QAAU,CAAC,MAAO,IAAK,CAC/C,IAAI,aAAe,WAAW,MAAO,KAAK,CAAC,EAAG,EAAE,EAChD,cAAc,KAAK,aAAa,cAAgB,EAAE,EAClD,MAAQ,aAAa,KACtB,CACD,CAEA,IAAI,kBAAoB,cAAc,KAAK,SAAU,EAAG,CAAE,OAAO,CAAG,CAAC,EACrE,GAAI,CAAC,OAAS,kBAAmB,CAChC,KACC,sBAAsB,KAAM,MAAO,aAAa,EAChD,EACD,EACA,MACD,CACA,IAAI,UAAYA,MAAK,UACjB,YACE,UAAU,KAAK,GACnB,KACC,yDAA2D,KAAO,KAClE,EACD,GAGH,CAEA,IAAI,cAAgB,mDAEpB,SAAS,WAAW,MAAO,KAAM,GAAI,CACpC,IAAI,MACA,aAAe,QAAQ,IAAI,EAC/B,GAAI,cAAc,KAAK,YAAY,EAAG,CACrC,IAAI,EAAI,OAAO,MACf,MAAQ,IAAM,aAAa,YAAY,EAEnC,CAAC,OAAS,IAAM,WACnB,MAAQ,iBAAiB,KAE3B,SAAW,eAAiB,SAC3B,MAAQ,cAAc,KAAK,UACjB,eAAiB,QAC3B,MAAQ,MAAM,QAAQ,KAAK,MAE3B,IAAI,CACH,MAAQ,iBAAiB,IAC1B,MAAY,CACX,KAAK,uBAAyB,OAAO,IAAI,EAAI,yBAA0B,EAAE,EACzE,MAAQ,EACT,CAED,MAAO,CACN,MACA,YACD,CACD,CAEA,IAAI,oBAAsB,qBAO1B,SAAS,QAAQ,GAAI,CACpB,IAAI,MAAQ,IAAM,GAAG,SAAS,EAAE,MAAM,mBAAmB,EACzD,OAAO,MAAQ,MAAM,CAAC,EAAI,EAC3B,CAEA,SAAS,WAAW,EAAG,EAAG,CACzB,OAAO,QAAQ,CAAC,IAAM,QAAQ,CAAC,CAChC,CAEA,SAAS,aAAa,KAAM,cAAe,CAC1C,GAAI,CAAC,MAAM,QAAQ,aAAa,EAC/B,OAAO,WAAW,cAAe,IAAI,EAAI,EAAI,GAE9C,QAAS,EAAI,EAAGhC,KAAM,cAAc,OAAQ,EAAIA,KAAK,IACpD,GAAI,WAAW,cAAc,CAAC,EAAG,IAAI,EACpC,OAAO,EAGT,MAAO,EACR,CAEA,SAAS,sBAAsB,KAAM,MAAO,cAAe,CAC1D,IAAI,QAAU,6CAAgD,KAAO,eACpD,cAAc,IAAI,UAAU,EAAE,KAAK,IAAI,EACpD,aAAe,cAAc,CAAC,EAC9B,aAAe,UAAU,KAAK,EAElC,OACC,cAAc,SAAW,GACzB,aAAa,YAAY,GACzB,aAAa,OAAO,KAAK,GACzB,CAAC,UAAU,aAAc,YAAY,IAErC,SAAW,eAAkB,WAAW,MAAO,YAAY,GAE5D,SAAW,SAAW,aAAe,IAEjC,aAAa,YAAY,IAC5B,SAAW,cAAiB,WAAW,MAAO,YAAY,EAAK,KAEzD,OACR,CAEA,SAAS,WAAW,MAAO,KAAM,CAChC,OAAI,OAAS,SACJ,IAAO,MAAQ,IACb,OAAS,SACX,GAAM,OAAO,KAAK,EAElB,GAAK,KAEf,CAEA,IAAI,iBAA0D,KAC9D,SAAS,aAAa,MAAO,CAC5B,OAAO,iBAAiB,KAAK,SAAU,KAAM,CAAE,OAAO,MAAM,YAAY,IAAM,IAAM,CAAC,CACtF,CAEA,SAAS,WAAY,CAEpB,QADI,KAAO,CAAC,EAAGA,KAAM,UAAU,OACxBA,QAAO,KAAKA,IAAG,EAAI,UAAUA,IAAG,EAEvC,OAAO,KAAK,KAAK,SAAU,KAAM,CAAE,OAAO,KAAK,YAAY,IAAM,SAAW,CAAC,CAC9E,CAIA,SAAS,YAAY,IAAK,GAAI,KAAM,CAGnC,WAAW,EACX,GAAI,CACH,GAAI,GAEH,QADI,IAAM,GACF,IAAM,IAAI,SAAU,CAC3B,IAAI8B,OAAQ,IAAI,SAAS,cACzB,GAAIA,OACH,QAAS,EAAI,EAAG,EAAIA,OAAM,OAAQ,IACjC,GAAI,CACH,IAAI,QAAUA,OAAM,CAAC,EAAE,KAAK,IAAK,IAAK,GAAI,IAAI,IAAM,GACpD,GAAI,QAAW,MAChB,OAAS,EAAG,CACX,kBAAkB,EAAG,IAAK,oBAAoB,CAC/C,CAGH,CAED,kBAAkB,IAAK,GAAI,IAAI,CAChC,QAAE,CACD,UAAU,CACX,CACD,CAEA,SAAS,wBACR,QACA,QACA,KACA,GACA,KACC,CACD,IAAI,IACJ,GAAI,CACH,IAAM,KAAO,QAAQ,MAAM,QAAS,IAAI,EAAI,QAAQ,KAAK,OAAO,EAC5D,KAAO,CAAC,IAAI,QAAU,UAAU,GAAG,GAAK,CAAC,IAAI,WAChD,IAAI,MAAM,SAAU,EAAG,CAAE,OAAO,YAAY,EAAG,GAAI,KAAO,kBAAkB,CAAG,CAAC,EAGhF,IAAI,SAAW,GAEjB,OAAS,EAAG,CACX,YAAY,EAAG,GAAI,IAAI,CACxB,CACA,OAAO,GACR,CAEA,SAAS,kBAAkB,IAAK,GAAI,KAAM,CACzC,GAAI,OAAO,aACV,GAAI,CACH,OAAO,OAAO,aAAa,KAAK,KAAM,IAAK,GAAI,IAAI,CACpD,OAAS,EAAG,CAGP,IAAM,KACT,SAAS,EAAG,KAAM,qBAAqB,CAEzC,CAED,SAAS,IAAK,GAAI,IAAI,CACvB,CAEA,SAAS,SAAS,IAAK,GAAI,KAAM,CAGhC,IAAK,WAAa,SAAW,OAAO,QAAY,IAC/C,QAAQ,MAAM,GAAG,MAEjB,OAAM,GAER,CAIA,IAAI,iBAAmB,GAEnB,UAAY,CAAC,EACb,QAAU,GAEd,SAAS,gBAAiB,CACzB,QAAU,GACV,IAAI,OAAS,UAAU,MAAM,CAAC,EAC9B,UAAU,OAAS,EACnB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,IAClC,OAAO,CAAC,EAAE,CAEZ,CAaA,IAAI,UASJ,GAAI,OAAO,QAAY,KAAe,SAAS,OAAO,EAAG,CACxD,IAAI,EAAI,QAAQ,QAAQ,EACxB,UAAY,UAAY,CACvB,EAAE,KAAK,cAAc,EAMjB,OAAS,WAAW,IAAI,CAC7B,EACA,iBAAmB,EACpB,SAAW,CAAC,MAAQ,OAAO,iBAAqB,MAC/C,SAAS,gBAAgB,GAEzB,iBAAiB,SAAS,IAAM,wCAC9B,CAIF,IAAI,QAAU,EACV,SAAW,IAAI,iBAAiB,cAAc,EAC9C,SAAW,SAAS,eAAe,OAAO,OAAO,CAAC,EACtD,SAAS,QAAQ,SAAU,CAC1B,cAAe,EAChB,CAAC,EACD,UAAY,UAAY,CACvB,SAAW,QAAU,GAAK,EAC1B,SAAS,KAAO,OAAO,OAAO,CAC/B,EACA,iBAAmB,EACpB,MAAW,OAAO,aAAiB,KAAe,SAAS,YAAY,EAItE,UAAY,UAAY,CACvB,aAAa,cAAc,CAC5B,EAGA,UAAY,UAAY,CACvB,WAAW,eAAgB,CAAC,CAC7B,EAGD,SAAS,SAAS,GAAI,IAAK,CAC1B,IAAI,SAiBJ,GAhBA,UAAU,KAAK,UAAY,CAC1B,GAAI,GACH,GAAI,CACH,GAAG,KAAK,GAAG,CACZ,OAAS,EAAG,CACX,YAAY,EAAG,IAAK,UAAU,CAC/B,MACU,UACV,SAAS,GAAG,CAEd,CAAC,EACI,UACJ,QAAU,GACV,UAAU,GAGP,CAAC,IAAM,OAAO,QAAY,IAC7B,OAAO,IAAI,QAAQ,SAAU,QAAS,CACrC,SAAW,OACZ,CAAC,CAEH,CAIA,IAAI,KACA,QAEJ,GAAI,EAAS,IAAI,KAIjB,IAAI,UAEJ,GAAI,EAAS,IAAI,WAAY,WAAY,kBAAmB,SAAU,mBAAoB,eAAgB,eAI1G,IAAI,YAAc,IAAI,KAOtB,SAAS,SAASpD,KAAK,CACtB,UAAUA,KAAK,WAAW,EAC1B,YAAY,MAAM,CACnB,CAEA,SAAS,UAAUA,KAAK,KAAM,CAC7B,IAAI,EAAG,KACH,IAAM,MAAM,QAAQA,IAAG,EAC3B,GAAK,GAAC,KAAO,CAAC,SAASA,IAAG,GAAM,OAAO,SAASA,IAAG,GAAKA,gBAAe,OAGvE,IAAIA,KAAI,OAAQ,CACf,IAAI,MAAQA,KAAI,OAAO,IAAI,GAC3B,GAAI,KAAK,IAAI,KAAK,EACjB,OAED,KAAK,IAAI,KAAK,CACf,CACA,GAAI,IAEH,IADA,EAAIA,KAAI,OACD,KAAO,UAAUA,KAAI,CAAC,EAAG,IAAI,MAIpC,KAFA,KAAO,OAAO,KAAKA,IAAG,EACtB,EAAI,KAAK,OACF,KAAO,UAAUA,KAAI,KAAK,CAAC,CAAC,EAAG,IAAI,EAE5C,CAIA,IAAI,eAAiB,OAAO,SAAU,KAAM,CAC3C,IAAI,QAAU,KAAK,OAAO,CAAC,IAAM,IACjC,KAAO,QAAU,KAAK,MAAM,CAAC,EAAI,KACjC,IAAI,QAAU,KAAK,OAAO,CAAC,IAAM,IACjC,KAAO,QAAU,KAAK,MAAM,CAAC,EAAI,KACjC,IAAI,QAAU,KAAK,OAAO,CAAC,IAAM,IACjC,YAAO,QAAU,KAAK,MAAM,CAAC,EAAI,KAC1B,CACN,KACA,KAAM,QACN,QACA,OACD,CACD,CAAC,EAED,SAAS,gBAAgB,IAAK,GAAI,CACjC,SAAS,SAAU,CAClB,IAAI,YAAc,UAEdwD,KAAM,QAAQ,IAClB,GAAI,MAAM,QAAQA,IAAG,EAEpB,QADI,OAASA,KAAI,MAAM,EACd,EAAI,EAAG,EAAI,OAAO,OAAQ,IAClC,wBAAwB,OAAO,CAAC,EAAG,KAAM,YAAa,GAAI,cAAc,MAIzE,QAAO,wBAAwBA,KAAK,KAAM,UAAW,GAAI,cAAc,CAEzE,CACA,eAAQ,IAAM,IACP,OACR,CAEA,SAAS,gBACRC,IACA,MACAC,KACA,UACAC,mBACA,GACC,CACD,IAAI,KAAM,OAAQ,IAAK,IAAK,MAC5B,IAAK,QAAQF,IACZ,OAAS,IAAMA,IAAG,IAAI,EACtB,IAAM,MAAM,IAAI,EAChB,MAAQ,eAAe,IAAI,EACvB,QAAQ,GAAG,IAEJ,QAAQ,GAAG,GACjB,QAAQ,IAAI,GAAG,IAClB,IAAMA,IAAG,IAAI,EAAI,gBAAgB,IAAK,EAAE,GAErC,OAAO,MAAM,IAAI,IACpB,IAAMA,IAAG,IAAI,EAAIE,mBAAkB,MAAM,KAAM,IAAK,MAAM,OAAO,GAElED,KAAI,MAAM,KAAM,IAAK,MAAM,QAAS,MAAM,QAAS,MAAM,MAAM,GACrD,MAAQ,MAClB,IAAI,IAAM,IACVD,IAAG,IAAI,EAAI,MAGb,IAAK,QAAQ,MACR,QAAQA,IAAG,IAAI,CAAC,IACnB,MAAQ,eAAe,IAAI,EAC3B,UAAU,MAAM,KAAM,MAAM,IAAI,EAAG,MAAM,OAAO,EAGnD,CAIA,SAAS,eAAeF,KAAK,QAAS,KAAM,CACvCA,gBAAe,QAClBA,KAAMA,KAAI,KAAK,OAASA,KAAI,KAAK,KAAO,CAAC,IAE1C,IAAI,QACA,QAAUA,KAAI,OAAO,EAEzB,SAAS,aAAc,CACtB,KAAK,MAAM,KAAM,SAAS,EAG1B,OAAO,QAAQ,IAAK,WAAW,CAChC,CAEI,QAAQ,OAAO,EAElB,QAAU,gBAAgB,CAAC,WAAW,CAAC,EAGnC,MAAM,QAAQ,GAAG,GAAK,OAAO,QAAQ,MAAM,GAE9C,QAAU,QACV,QAAQ,IAAI,KAAK,WAAW,GAG5B,QAAU,gBAAgB,CAAC,QAAS,WAAW,CAAC,EAIlD,QAAQ,OAAS,GACjBA,KAAI,OAAO,EAAI,OAChB,CAIA,SAAS,0BACR9D,MACA,KACA,IACC,CAID,IAAI,YAAc,KAAK,QAAQ,MAC/B,GAAI,SAAQ,WAAW,EAGvB,KAAI,IAAM,CAAC,EACPmE,OAAQnE,MAAK,MACb4D,OAAQ5D,MAAK,MACjB,GAAI,MAAMmE,MAAK,GAAK,MAAMP,MAAK,EAC9B,QAAS,OAAO,YAAa,CAC5B,IAAI,OAAS,UAAU,GAAG,EAC1B,GAAI,EAAS,IAAI,eACjB,UAAU,IAAKA,OAAO,IAAK,OAAQ,EAAI,GACtC,UAAU,IAAKO,OAAO,IAAK,OAAQ,EAAK,CAC1C,CAED,OAAO,IACR,CAEA,SAAS,UACR,IACAzB,MACA,IACA,OACA,SACC,CACD,GAAI,MAAMA,KAAI,EAAG,CAChB,GAAI,OAAOA,MAAM,GAAG,EACnB,WAAI,GAAG,EAAIA,MAAK,GAAG,EACd,UACJ,OAAOA,MAAK,GAAG,EAET,GACD,GAAI,OAAOA,MAAM,MAAM,EAC7B,WAAI,GAAG,EAAIA,MAAK,MAAM,EACjB,UACJ,OAAOA,MAAK,MAAM,EAEZ,EAET,CACA,MAAO,EACR,CAgBA,SAAS,wBAAwBgB,UAAU,CAC1C,QAAS,EAAI,EAAG,EAAIA,UAAS,OAAQ,IACpC,GAAI,MAAM,QAAQA,UAAS,CAAC,CAAC,EAC5B,OAAO,MAAM,UAAU,OAAO,MAAM,CAAC,EAAGA,SAAQ,EAGlD,OAAOA,SACR,CAMA,SAAS,kBAAkBA,UAAU,CACpC,OAAO,YAAYA,SAAQ,EACxB,CAAC,gBAAgBA,SAAQ,CAAC,EAC1B,MAAM,QAAQA,SAAQ,EACrB,uBAAuBA,SAAQ,EAC/B,MACL,CAEA,SAAS,WAAW,KAAM,CACzB,OAAO,MAAM,IAAI,GAAK,MAAM,KAAK,IAAI,GAAK,QAAQ,KAAK,SAAS,CACjE,CAEA,SAAS,uBAAuBA,UAAU,YAAa,CACtD,IAAI,IAAM,CAAC,EACP,EAAG,EAAG,UAAW,KACrB,IAAK,EAAI,EAAG,EAAIA,UAAS,OAAQ,IAChC,EAAIA,UAAS,CAAC,EACV,UAAQ,CAAC,GAAK,OAAO,GAAM,aAC/B,UAAY,IAAI,OAAS,EACzB,KAAO,IAAI,SAAS,EAEhB,MAAM,QAAQ,CAAC,EACd,EAAE,OAAS,IACd,EAAI,uBAAuB,GAAK,aAAe,IAAM,IAAM,CAAE,EAEzD,WAAW,EAAE,CAAC,CAAC,GAAK,WAAW,IAAI,IACtC,IAAI,SAAS,EAAI,gBAAgB,KAAK,KAAQ,EAAE,CAAC,EAAG,IAAI,EACxD,EAAE,MAAM,GAET,IAAI,KAAK,MAAM,IAAK,CAAC,GAEZ,YAAY,CAAC,EACnB,WAAW,IAAI,EAIlB,IAAI,SAAS,EAAI,gBAAgB,KAAK,KAAO,CAAC,EACpC,IAAM,IAEhB,IAAI,KAAK,gBAAgB,CAAC,CAAC,EAGxB,WAAW,CAAC,GAAK,WAAW,IAAI,EAEnC,IAAI,SAAS,EAAI,gBAAgB,KAAK,KAAO,EAAE,IAAI,GAG/C,OAAOA,UAAS,QAAQ,GAC3B,MAAM,EAAE,GAAG,GACX,QAAQ,EAAE,GAAG,GACb,MAAM,WAAW,IACjB,EAAE,IAAM,UAAY,YAAc,IAAM,EAAI,MAE7C,IAAI,KAAK,CAAC,IAIb,OAAO,GACR,CAIA,SAAS,YAAY,GAAI,CACxB,IAAI,QAAU,GAAG,SAAS,QACtB,UACH,GAAG,UAAY,OAAO,SAAY,WAC/B,QAAQ,KAAK,EAAE,EACf,QAEL,CAEA,SAAS,eAAe,GAAI,CAC3B,IAAI,OAAS,cAAc,GAAG,SAAS,OAAQ,EAAE,EAC7C,SACH,gBAAgB,EAAK,EACrB,OAAO,KAAK,MAAM,EAAE,QAAQ,SAAU,IAAK,CAGzC,kBAAkB,GAAI,IAAK,OAAO,GAAG,CAAC,CAExC,CAAC,EACD,gBAAgB,EAAI,EAEtB,CAEA,SAAS,cAAc,OAAQ,GAAI,CAClC,GAAI,OAAQ,CAOX,QALI,OAAS,OAAO,OAAO,IAAI,EAC3B,KAAO,UACR,QAAQ,QAAQ,MAAM,EACtB,OAAO,KAAK,MAAM,EAEZ,EAAI,EAAG,EAAI,KAAK,OAAQ,IAAK,CACrC,IAAI,IAAM,KAAK,CAAC,EAEhB,GAAI,MAAQ,SAGZ,SAFI,WAAa,OAAO,GAAG,EAAE,KACzB,OAAS,GACN,QAAQ,CACd,GAAI,OAAO,WAAa,OAAO,OAAO,UAAW,UAAU,EAAG,CAC7D,OAAO,GAAG,EAAI,OAAO,UAAU,UAAU,EACzC,KACD,CACA,OAAS,OAAO,OACjB,CACA,GAAI,CAAC,QACA,YAAa,OAAO,GAAG,EAAG,CAC7B,IAAI,eAAiB,OAAO,GAAG,EAAE,QACjC,OAAO,GAAG,EAAI,OAAO,gBAAmB,WACrC,eAAe,KAAK,EAAE,EACtB,cACJ,EAEF,CACA,OAAO,MACR,CACD,CASA,SAAS,aACRA,UACA,QACC,CACD,GAAI,CAACA,WAAY,CAACA,UAAS,OAC1B,MAAO,CAAC,EAGT,QADI,MAAQ,CAAC,EACJ,EAAI,EAAG,EAAIA,UAAS,OAAQ,EAAI,EAAG,IAAK,CAChD,IAAI,MAAQA,UAAS,CAAC,EAClB1D,MAAO,MAAM,KAOjB,GALIA,OAAQA,MAAK,OAASA,MAAK,MAAM,MACpC,OAAOA,MAAK,MAAM,MAId,MAAM,UAAY,SAAW,MAAM,YAAc,UACrDA,OAAQA,MAAK,MAAQ,KACpB,CACD,IAAI,KAAOA,MAAK,KACZ,KAAQ,MAAM,IAAI,IAAM,MAAM,IAAI,EAAI,CAAC,GACvC,MAAM,MAAQ,WACjB,KAAK,KAAK,MAAM,KAAM,MAAM,UAAY,CAAC,CAAC,EAE1C,KAAK,KAAK,KAAK,CAEjB,MACE,MAAM,UAAY,MAAM,QAAU,CAAC,IAAI,KAAK,KAAK,CAEpD,CAEA,QAAS,UAAU,MACd,MAAM,MAAM,EAAE,MAAM,YAAY,GACnC,OAAO,MAAM,MAAM,EAGrB,OAAO,KACR,CAEA,SAAS,aAAa,KAAM,CAC3B,OAAQ,KAAK,WAAa,CAAC,KAAK,cAAiB,KAAK,OAAS,GAChE,CAIA,SAAS,mBAAmB,KAAM,CACjC,OAAO,KAAK,WAAa,KAAK,YAC/B,CAIA,SAAS,qBACR,MACA,YACA,UACC,CACD,IAAI,IACA,eAAiB,OAAO,KAAK,WAAW,EAAE,OAAS,EACnD,SAAW,MAAQ,CAAC,CAAC,MAAM,QAAU,CAAC,eACtC,IAAM,OAAS,MAAM,KACzB,GAAI,CAAC,MACJ,IAAM,CAAC,MACD,IAAI,MAAM,YAEhB,OAAO,MAAM,YACP,GACN,UACA,WACA,YAAc,aACd,MAAQ,UAAU,MAClB,CAAC,gBACD,CAAC,UAAU,WAIX,OAAO,UAEP,IAAM,CAAC,EACP,QAAS,SAAS,MACb,MAAM,KAAK,GAAK,MAAM,CAAC,IAAM,MAChC,IAAI,KAAK,EAAI,oBAAoB,YAAa,MAAO,MAAM,KAAK,CAAC,GAKpE,QAAS,SAAS,YACX,SAAS,MACd,IAAI,KAAK,EAAI,gBAAgB,YAAa,KAAK,GAKjD,OAAI,OAAS,OAAO,aAAa,KAAK,IACpC,MAAO,YAAc,KAEvB,IAAI,IAAK,UAAW,QAAQ,EAC5B,IAAI,IAAK,OAAQ,GAAG,EACpB,IAAI,IAAK,aAAc,cAAc,EAC9B,GACR,CAEA,SAAS,oBAAoB,YAAa,IAAK,GAAI,CAClD,IAAI,WAAa,UAAY,CAC5B,IAAI,IAAM,UAAU,OAAS,GAAG,MAAM,KAAM,SAAS,EAAI,GAAG,CAAC,CAAC,EAC9D,IAAM,KAAO,OAAO,KAAQ,UAAY,CAAC,MAAM,QAAQ,GAAG,EACvD,CAAC,GAAG,EACJ,kBAAkB,GAAG,EACxB,IAAI,MAAQ,KAAO,IAAI,CAAC,EACxB,OAAO,MACN,CAAC,OACA,IAAI,SAAW,GAAK,MAAM,WAAa,CAAC,mBAAmB,KAAK,GAC9D,OACD,GACJ,EAIA,OAAI,GAAG,OACN,OAAO,eAAe,YAAa,IAAK,CACvC,IAAK,WACL,WAAY,GACZ,aAAc,EACf,CAAC,EAEK,UACR,CAEA,SAAS,gBAAgB,MAAO,IAAK,CACpC,OAAO,UAAY,CAAE,OAAO,MAAM,GAAG,CAAG,CACzC,CAOA,SAAS,WACRO,KACA6D,QACC,CACD,IAAI,IAAK,EAAG,EAAG,KAAM,IACrB,GAAI,MAAM,QAAQ7D,IAAG,GAAK,OAAOA,MAAQ,SAExC,IADA,IAAM,IAAI,MAAMA,KAAI,MAAM,EACrB,EAAI,EAAG,EAAIA,KAAI,OAAQ,EAAI,EAAG,IAClC,IAAI,CAAC,EAAI6D,QAAO7D,KAAI,CAAC,EAAG,CAAC,UAEhB,OAAOA,MAAQ,SAEzB,IADA,IAAM,IAAI,MAAMA,IAAG,EACd,EAAI,EAAG,EAAIA,KAAK,IACpB,IAAI,CAAC,EAAI6D,QAAO,EAAI,EAAG,CAAC,UAEf,SAAS7D,IAAG,EACtB,GAAI,WAAaA,KAAI,OAAO,QAAQ,EAAG,CACtC,IAAM,CAAC,EAGP,QAFI,SAAWA,KAAI,OAAO,QAAQ,EAAE,EAChC,OAAS,SAAS,KAAK,EACpB,CAAC,OAAO,MACd,IAAI,KAAK6D,QAAO,OAAO,MAAO,IAAI,MAAM,CAAC,EACzC,OAAS,SAAS,KAAK,CAEzB,KAGC,KAFA,KAAO,OAAO,KAAK7D,IAAG,EACtB,IAAM,IAAI,MAAM,KAAK,MAAM,EACtB,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IACnC,IAAM,KAAK,CAAC,EACZ,IAAI,CAAC,EAAI6D,QAAO7D,KAAI,GAAG,EAAG,IAAK,CAAC,EAInC,OAAK,MAAM,GAAG,IACb,IAAM,CAAC,GAEP,IAAK,SAAW,GACV,GACR,CAOA,SAAS,WACR,KACA,eACAqD,OACA,WACC,CACD,IAAI,aAAe,KAAK,aAAa,IAAI,EACrC,MACA,cAEHA,OAAQA,QAAS,CAAC,EACd,aAEHA,OAAQ,OAAO,OAAO,CAAC,EAAG,UAAU,EAAGA,MAAK,GAE7C,MACC,aAAaA,MAAK,IACjB,OAAO,gBAAmB,WAAa,eAAe,EAAI,iBAE5D,MACC,KAAK,OAAO,IAAI,IACf,OAAO,gBAAmB,WAAa,eAAe,EAAI,gBAG7D,IAAIH,QAASG,QAASA,OAAM,KAC5B,OAAIH,QACI,KAAK,eAAe,WAAY,CAAE,KAAMA,OAAO,EAAG,KAAK,EAEvD,KAET,CAOA,SAAS,cAAc,GAAI,CAC1B,OAAO,aAAa,KAAK,SAAU,UAAW,GAAI,EAAI,GAAK,QAC5D,CAIA,SAAS,cAAc,OAAQ,OAAQ,CACtC,OAAI,MAAM,QAAQ,MAAM,EAChB,OAAO,QAAQ,MAAM,IAAM,GAE3B,SAAW,MAEpB,CAOA,SAAS,cACR,aACA,IACA,eACA,aACA,eACC,CACD,IAAI,cAAgB,OAAO,SAAS,GAAG,GAAK,eAC5C,OAAI,gBAAkB,cAAgB,CAAC,OAAO,SAAS,GAAG,EAClD,cAAc,eAAgB,YAAY,EACvC,cACH,cAAc,cAAe,YAAY,EACtC,aACH,UAAU,YAAY,IAAM,IAE7B,eAAiB,MACzB,CAOA,SAAS,gBACRzD,MACA,IACA,MACA,OACA,OACC,CACD,GAAI,OACE,SAAS,KAAK,EAEZ,CACF,MAAM,QAAQ,KAAK,IACtB,MAAQ,SAAS,KAAK,GAEvB,IAAI0C,MACA2B,MAAO,SAAUpC,KAAK,CACzB,GACCA,OAAQ,SACRA,OAAQ,SACR,oBAAoBA,IAAG,EAEvBS,MAAO1C,UACD,CACN,IAAI,KAAOA,MAAK,OAASA,MAAK,MAAM,KACpC0C,MAAO,QAAU,OAAO,YAAY,IAAK,KAAMT,IAAG,EAC/CjC,MAAK,WAAaA,MAAK,SAAW,CAAC,GACnCA,MAAK,QAAUA,MAAK,MAAQ,CAAC,EACjC,CACA,IAAI,aAAe,SAASiC,IAAG,EAC3B,cAAgB,UAAUA,IAAG,EACjC,GAAI,EAAE,gBAAgBS,QAAS,EAAE,iBAAiBA,SACjDA,MAAKT,IAAG,EAAI,MAAMA,IAAG,EAEjB,QAAQ,CACX,IAAI+B,IAAKhE,MAAK,KAAOA,MAAK,GAAK,CAAC,GAChCgE,IAAI,UAAY/B,IAAI,EAAI,SAAU,OAAQ,CACzC,MAAMA,IAAG,EAAI,MACd,CACD,CAEF,EAEA,QAAS,OAAO,MAAOoC,MAAK,GAAG,CAChC,CAED,OAAOrE,KACR,CAOA,SAAS,aACRG,OACA,QACC,CACD,IAAImE,QAAS,KAAK,eAAiB,KAAK,aAAe,CAAC,GACpD,KAAOA,QAAOnE,MAAK,EAGvB,OAAI,MAAQ,CAAC,UAIb,KAAOmE,QAAOnE,MAAK,EAAI,KAAK,SAAS,gBAAgBA,MAAK,EAAE,KAC3D,KAAK,aACL,KACA,IACD,EACA,WAAW,KAAO,aAAeA,OAAQ,EAAK,GACvC,IACR,CAMA,SAAS,SACR,KACAA,OACA,IACC,CACD,kBAAW,KAAO,WAAaA,QAAS,IAAO,IAAM,IAAO,IAAM,EAAI,EAC/D,IACR,CAEA,SAAS,WACR,KACA,IACA,OACC,CACD,GAAI,MAAM,QAAQ,IAAI,EACrB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,IAC5B,KAAK,CAAC,GAAK,OAAO,KAAK,CAAC,GAAM,UACjC,eAAe,KAAK,CAAC,EAAI,IAAM,IAAM,EAAI,MAAM,OAIjD,eAAe,KAAM,IAAK,MAAM,CAElC,CAEA,SAAS,eAAe,KAAM,IAAK,OAAQ,CAC1C,KAAK,SAAW,GAChB,KAAK,IAAM,IACX,KAAK,OAAS,MACf,CAIA,SAAS,oBAAoBH,MAAM,MAAO,CACzC,GAAI,OACE,cAAc,KAAK,EAEjB,CACN,IAAIgE,IAAKhE,MAAK,GAAKA,MAAK,GAAK,OAAO,CAAC,EAAGA,MAAK,EAAE,EAAI,CAAC,EACpD,QAAS,OAAO,MAAO,CACtB,IAAI,SAAWgE,IAAG,GAAG,EACjB,KAAO,MAAM,GAAG,EACpBA,IAAG,GAAG,EAAI,SAAW,CAAC,EAAE,OAAO,SAAU,IAAI,EAAI,IAClD,CACD,CAED,OAAOhE,KACR,CAIA,SAAS,mBACR,IACA,IAEA,eACA,eACC,CACD,IAAM,KAAO,CAAE,QAAS,CAAC,cAAe,EACxC,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,IAAK,CACpC,IAAI,KAAO,IAAI,CAAC,EACZ,MAAM,QAAQ,IAAI,EACrB,mBAAmB,KAAM,IAAK,cAAc,EAClC,OAEN,KAAK,QACR,KAAK,GAAG,MAAQ,IAEjB,IAAI,KAAK,GAAG,EAAI,KAAK,GAEvB,CACA,OAAI,iBACF,IAAK,KAAO,gBAEP,GACR,CAIA,SAAS,gBAAgB,QAAS,OAAQ,CACzC,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,IAAI,IAAM,OAAO,CAAC,EACd,OAAO,KAAQ,UAAY,MAC9B,QAAQ,OAAO,CAAC,CAAC,EAAI,OAAO,EAAI,CAAC,EAEnC,CACA,OAAO,OACR,CAKA,SAAS,gBAAgB,MAAO,OAAQ,CACvC,OAAO,OAAO,OAAU,SAAW,OAAS,MAAQ,KACrD,CAIA,SAAS,qBAAqByD,QAAQ,CACrCA,QAAO,GAAK,SACZA,QAAO,GAAK,SACZA,QAAO,GAAK,iBACZA,QAAO,GAAK,WACZA,QAAO,GAAK,WACZA,QAAO,GAAK,WACZA,QAAO,GAAK,aACZA,QAAO,GAAK,aACZA,QAAO,GAAK,cACZA,QAAO,GAAK,cACZA,QAAO,GAAK,gBACZA,QAAO,GAAK,gBACZA,QAAO,GAAK,iBACZA,QAAO,GAAK,mBACZA,QAAO,GAAK,oBACZA,QAAO,GAAK,gBACZA,QAAO,GAAK,eACb,CAIA,SAAS,wBACRzD,MACA4D,OACAF,UACA,OACA,KACC,CACD,IAAI,OAAS,KAET,QAAU,KAAK,QAGf,UACA,OAAO,OAAQ,MAAM,GACxB,UAAY,OAAO,OAAO,MAAM,EAEhC,UAAU,UAAY,SAKtB,UAAY,OAEZ,OAAS,OAAO,WAEjB,IAAI,WAAa,OAAO,QAAQ,SAAS,EACrC,kBAAoB,CAAC,WAEzB,KAAK,KAAO1D,MACZ,KAAK,MAAQ4D,OACb,KAAK,SAAWF,UAChB,KAAK,OAAS,OACd,KAAK,UAAY1D,MAAK,IAAM,YAC5B,KAAK,WAAa,cAAc,QAAQ,OAAQ,MAAM,EACtD,KAAK,MAAQ,UAAY,CACxB,OAAK,OAAO,QACX,qBACCA,MAAK,YACL,OAAO,OAAS,aAAa0D,UAAU,MAAM,CAC9C,EAEM,OAAO,MACf,EAEA,OAAO,eAAe,KAAM,cAAgB,CAC3C,WAAY,GACZ,IAAK,UAAe,CACnB,OAAO,qBAAqB1D,MAAK,YAAa,KAAK,MAAM,CAAC,CAC3D,CACD,CAAE,EAGE,aAEH,KAAK,SAAW,QAEhB,KAAK,OAAS,KAAK,MAAM,EACzB,KAAK,aAAe,qBAAqBA,MAAK,YAAa,KAAK,MAAM,GAGnE,QAAQ,SACX,KAAK,GAAK,SAAU,EAAG,EAAG,EAAG,EAAG,CAC/B,IAAI,MAAQ,cAAc,UAAW,EAAG,EAAG,EAAG,EAAG,iBAAiB,EAClE,OAAI,OAAS,CAAC,MAAM,QAAQ,KAAK,IAChC,MAAM,UAAY,QAAQ,SAC1B,MAAM,UAAY,QAEZ,KACR,EAEA,KAAK,GAAK,SAAU,EAAG,EAAG,EAAG,EAAG,CAAE,OAAO,cAAc,UAAW,EAAG,EAAG,EAAG,EAAG,iBAAiB,CAAG,CAEpG,CAEA,qBAAqB,wBAAwB,SAAS,EAEtD,SAAS,0BACR,KACA,UACAA,MACA,UACA0D,UACC,CACD,IAAI,QAAU,KAAK,QACfE,OAAQ,CAAC,EACT,YAAc,QAAQ,MAC1B,GAAI,MAAM,WAAW,EACpB,QAAS,OAAO,YACfA,OAAM,GAAG,EAAI,aAAa,IAAK,YAAa,WAAa,WAAW,OAGjE,MAAM5D,MAAK,KAAK,GAAK,WAAW4D,OAAO5D,MAAK,KAAK,EACjD,MAAMA,MAAK,KAAK,GAAK,WAAW4D,OAAO5D,MAAK,KAAK,EAGtD,IAAI,cAAgB,IAAI,wBACvBA,MACA4D,OACAF,UACA,UACA,IACD,EAEI,MAAQ,QAAQ,OAAO,KAAK,KAAM,cAAc,GAAI,aAAa,EAErE,GAAI,iBAAiB,MACpB,OAAO,6BAA6B,MAAO1D,MAAM,cAAc,OAAQ,QAAS,aAAa,EACvF,GAAI,MAAM,QAAQ,KAAK,EAAG,CAGhC,QAFI,OAAS,kBAAkB,KAAK,GAAK,CAAC,EACtC,IAAM,IAAI,MAAM,OAAO,MAAM,EACxB,EAAI,EAAG,EAAI,OAAO,OAAQ,IAClC,IAAI,CAAC,EAAI,6BAA6B,OAAO,CAAC,EAAGA,MAAM,cAAc,OAAQ,QAAS,aAAa,EAEpG,OAAO,GACR,CACD,CAEA,SAAS,6BAA6B,MAAOA,MAAM,UAAW,QAAS,cAAe,CAIrF,IAAI,MAAQ,WAAW,KAAK,EAC5B,aAAM,UAAY,UAClB,MAAM,UAAY,QAEdA,MAAK,QACP,MAAM,OAAS,MAAM,KAAO,CAAC,IAAI,KAAOA,MAAK,MAExC,KACR,CAEA,SAAS,WAAW,GAAI,KAAM,CAC7B,QAAS,OAAO,KACf,GAAG,SAAS,GAAG,CAAC,EAAI,KAAK,GAAG,CAE9B,CAWA,IAAI,oBAAsB,CACzB,KAAM,SAAc,MAAO,UAAW,CACrC,GACC,MAAM,mBACN,CAAC,MAAM,kBAAkB,cACzB,MAAM,KAAK,UACV,CAED,IAAI,YAAc,MAClB,oBAAoB,SAAS,YAAa,WAAW,CACtD,KAAO,CACN,IAAI,MAAQ,MAAM,kBAAoB,gCACrC,MACA,cACD,EACA,MAAM,OAAO,UAAY,MAAM,IAAM,OAAW,SAAS,CAC1D,CACD,EAEA,SAAU,SAAkB,SAAU,MAAO,CAC5C,IAAI,QAAU,MAAM,iBAChB,MAAQ,MAAM,kBAAoB,SAAS,kBAC/C,qBACC,MACA,QAAQ,UACR,QAAQ,UACR,MACA,QAAQ,QACT,CACD,EAEA,OAAQ,SAAgB,MAAO,CAC9B,IAAI,QAAU,MAAM,QAChB,kBAAoB,MAAM,kBACzB,kBAAkB,aACtB,kBAAkB,WAAa,GAC/B,SAAS,kBAAmB,SAAS,GAElC,MAAM,KAAK,YACV,QAAQ,WAMX,wBAAwB,iBAAiB,EAEzC,uBAAuB,kBAAmB,EAAiB,EAG9D,EAEA,QAAS,SAAiB,MAAO,CAChC,IAAI,kBAAoB,MAAM,kBACzB,kBAAkB,eACjB,MAAM,KAAK,UAGf,yBAAyB,kBAAmB,EAAiB,EAF7D,kBAAkB,SAAS,EAK9B,CACD,EAEI,aAAe,OAAO,KAAK,mBAAmB,EAElD,SAAS,gBACR,KACAA,MACA,QACA0D,UACA,IACC,CACD,GAAI,SAAQ,IAAI,EAIhB,KAAI,SAAW,QAAQ,SAAS,MAShC,GANI,SAAS,IAAI,IAChB,KAAO,SAAS,OAAO,IAAI,GAKxB,OAAO,MAAS,WAMpB,KAAI,aACJ,GAAI,QAAQ,KAAK,GAAG,IACnB,aAAe,KACf,KAAO,sBAAsB,aAAc,QAAQ,EAC/C,OAAS,QAIZ,OAAO,uBACN,aACA1D,MACA,QACA0D,UACA,GACD,EAIF1D,MAAOA,OAAQ,CAAC,EAIhB,0BAA0B,IAAI,EAG1B,MAAMA,MAAK,KAAK,GACnB,eAAe,KAAK,QAASA,KAAI,EAIlC,IAAI,UAAY,0BAA0BA,MAAM,KAAM,GAAG,EAGzD,GAAI,OAAO,KAAK,QAAQ,UAAU,EACjC,OAAO,0BAA0B,KAAM,UAAWA,MAAM,QAAS0D,SAAQ,EAK1E,IAAI,UAAY1D,MAAK,GAKrB,GAFAA,MAAK,GAAKA,MAAK,SAEX,OAAO,KAAK,QAAQ,QAAQ,EAAG,CAKlC,IAAI,KAAOA,MAAK,KAChBA,MAAO,CAAC,EACJ,OACHA,MAAK,KAAO,KAEd,CAGA,sBAAsBA,KAAI,EAG1B,IAAI,KAAO,KAAK,QAAQ,MAAQ,IAC5B,MAAQ,IAAI,MACd,iBAAoB,KAAK,KAAQ,KAAQ,IAAM,KAAQ,IACxDA,MAAM,OAAW,OAAW,OAAW,QACvC,CAAE,KAAY,UAAsB,UAAsB,IAAU,SAAU0D,SAAS,EACvF,YACD,EAEA,OAAO,OACR,CAEA,SAAS,gCAER,MAEA,OACC,CACD,IAAI,QAAU,CACb,aAAc,GACd,aAAc,MACd,MACD,EAEI,eAAiB,MAAM,KAAK,eAChC,OAAI,MAAM,cAAc,IACvB,QAAQ,OAAS,eAAe,OAChC,QAAQ,gBAAkB,eAAe,iBAEnC,IAAI,MAAM,iBAAiB,KAAK,OAAO,CAC/C,CAEA,SAAS,sBAAsB1D,MAAM,CAEpC,QADI2D,OAAQ3D,MAAK,OAASA,MAAK,KAAO,CAAC,GAC9B,EAAI,EAAG,EAAI,aAAa,OAAQ,IAAK,CAC7C,IAAI,IAAM,aAAa,CAAC,EACpB,SAAW2D,OAAM,GAAG,EACpB,QAAU,oBAAoB,GAAG,EACjC,WAAa,SAAW,EAAE,UAAY,SAAS,WAClDA,OAAM,GAAG,EAAI,SAAW,YAAY,QAAS,QAAQ,EAAI,QAE3D,CACD,CAEA,SAAS,YAAY,GAAI,GAAI,CAC5B,IAAI,OAAS,SAAU,EAAG,EAAG,CAE5B,GAAG,EAAG,CAAC,EACP,GAAG,EAAG,CAAC,CACR,EACA,cAAO,QAAU,GACV,MACR,CAIA,SAAS,eAAe,QAAS3D,MAAM,CACtC,IAAI6D,MAAQ,QAAQ,OAAS,QAAQ,MAAM,MAAS,QAChD,MAAS,QAAQ,OAAS,QAAQ,MAAM,OAAU,SAClD7D,MAAK,QAAUA,MAAK,MAAQ,CAAC,IAAI6D,KAAI,EAAI7D,MAAK,MAAM,MACxD,IAAIgE,IAAKhE,MAAK,KAAOA,MAAK,GAAK,CAAC,GAC5B,SAAWgE,IAAG,KAAK,EACnB,SAAWhE,MAAK,MAAM,SACtB,MAAM,QAAQ,GAEhB,MAAM,QAAQ,QAAQ,EACnB,SAAS,QAAQ,QAAQ,IAAM,GAC/B,WAAa,YAEhBgE,IAAG,KAAK,EAAI,CAAC,QAAQ,EAAE,OAAO,QAAQ,GAGvCA,IAAG,KAAK,EAAI,QAEd,CAIA,IAAI,iBAAmB,EACnB,iBAAmB,EAIvB,SAAS,cACR,QACA,IACAhE,MACA0D,UACA,kBACA,gBACC,CACD,OAAI,MAAM,QAAQ1D,KAAI,GAAK,YAAYA,KAAI,KAC1C,kBAAoB0D,UACpBA,UAAW1D,MACXA,MAAO,QAEJ,OAAO,eAAe,IACzB,kBAAoB,kBAEd,eAAe,QAAS,IAAKA,MAAM0D,UAAU,iBAAiB,CACtE,CAEA,SAAS,eACR,QACA,IACA1D,MACA0D,UACA,kBACC,CASD,GARI,MAAM1D,KAAI,GAAK,MAAOA,MAAM,MAAM,IAKlC,MAAMA,KAAI,GAAK,MAAMA,MAAK,EAAE,IAC/B,IAAMA,MAAK,IAER,CAAC,KAEJ,OAAO,iBAAiB,EAMrB,MAAM,QAAQ0D,SAAQ,GACzB,OAAOA,UAAS,CAAC,GAAM,aAEvB1D,MAAOA,OAAQ,CAAC,EAChBA,MAAK,YAAc,CAAE,QAAS0D,UAAS,CAAC,CAAE,EAC1CA,UAAS,OAAS,GAEf,oBAAsB,iBACzBA,UAAW,kBAAkBA,SAAQ,EAC3B,oBAAsB,mBAChCA,UAAW,wBAAwBA,SAAQ,GAE5C,IAAI,MAAO,GACX,GAAI,OAAO,KAAQ,SAAU,CAC5B,IAAI,KACJ,GAAM,QAAQ,QAAU,QAAQ,OAAO,IAAO,OAAO,gBAAgB,GAAG,EACpE,OAAO,cAAc,GAAG,EAG3B,MAAQ,IAAI,MACX,OAAO,qBAAqB,GAAG,EAAG1D,MAAM0D,UACxC,OAAW,OAAW,OACvB,GACW,CAAC1D,OAAQ,CAACA,MAAK,MAAQ,MAAM,KAAO,aAAa,QAAQ,SAAU,aAAc,GAAG,CAAC,EAEhG,MAAQ,gBAAgB,KAAMA,MAAM,QAAS0D,UAAU,GAAG,EAK1D,MAAQ,IAAI,MACX,IAAK1D,MAAM0D,UACX,OAAW,OAAW,OACvB,CAEF,MAEC,MAAQ,gBAAgB,IAAK1D,MAAM,QAAS0D,SAAQ,EAErD,OAAI,MAAM,QAAQ,KAAK,EACf,MACG,MAAM,KAAK,GACjB,MAAM,EAAE,GAAK,QAAQ,MAAO,EAAE,EAC9B,MAAM1D,KAAI,GAAK,qBAAqBA,KAAI,EACrC,OAEA,iBAAiB,CAE1B,CAEA,SAAS,QAAQ,MAAO,GAAI,MAAO,CAOlC,GANA,MAAM,GAAK,GACP,MAAM,MAAQ,kBAEjB,GAAK,OACL,MAAQ,IAEL,MAAM,MAAM,QAAQ,EACvB,QAAS,EAAI,EAAG,EAAI,MAAM,SAAS,OAAQ,EAAI,EAAG,IAAK,CACtD,IAAI,MAAQ,MAAM,SAAS,CAAC,EACxB,MAAM,MAAM,GAAG,IAClB,QAAQ,MAAM,EAAE,GAAM,OAAO,KAAK,GAAK,MAAM,MAAQ,QACrD,QAAQ,MAAO,GAAI,KAAK,CAE1B,CAEF,CAKA,SAAS,qBAAqBA,MAAM,CAC/B,SAASA,MAAK,KAAK,GACtB,SAASA,MAAK,KAAK,EAEhB,SAASA,MAAK,KAAK,GACtB,SAASA,MAAK,KAAK,CAErB,CAIA,SAAS,WAAW,GAAI,CACvB,GAAG,OAAS,KACZ,GAAG,aAAe,KAClB,IAAI,QAAU,GAAG,SACb,YAAc,GAAG,OAAS,QAAQ,aAClC,cAAgB,aAAe,YAAY,QAC/C,GAAG,OAAS,aAAa,QAAQ,gBAAiB,aAAa,EAC/D,GAAG,aAAe,YAKlB,GAAG,GAAK,SAAU,EAAG,EAAG,EAAG,EAAG,CAAE,OAAO,cAAc,GAAI,EAAG,EAAG,EAAG,EAAG,EAAK,CAAG,EAG7E,GAAG,eAAiB,SAAU,EAAG,EAAG,EAAG,EAAG,CAAE,OAAO,cAAc,GAAI,EAAG,EAAG,EAAG,EAAG,EAAI,CAAG,EAIxF,IAAI,WAAa,aAAe,YAAY,KAI3C,kBAAkB,GAAI,SAAU,YAAc,WAAW,OAAS,YAAa,KAAM,EAAI,EACzF,kBAAkB,GAAI,aAAc,QAAQ,kBAAoB,YAAa,KAAM,EAAI,CAEzF,CAEA,IAAI,yBAA2B,KAE/B,SAAS,YAAYuE,KAAK,CAEzB,qBAAqBA,KAAI,SAAS,EAElCA,KAAI,UAAU,UAAY,SAAU,GAAI,CACvC,OAAO,SAAS,GAAI,IAAI,CACzB,EAEAA,KAAI,UAAU,QAAU,UAAY,CACnC,IAAI,GAAK,KACL7C,KAAM,GAAG,SACT0C,QAAS1C,KAAI,OACb,aAAeA,KAAI,aAEnB,eACH,GAAG,aAAe,qBACjB,aAAa,KAAK,YAClB,GAAG,OACH,GAAG,YACJ,GAKD,GAAG,OAAS,aAEZ,IAAI,MACJ,GAAI,CAIH,yBAA2B,GAC3B,MAAQ0C,QAAO,KAAK,GAAG,aAAc,GAAG,cAAc,CACvD,OAAS,EAAG,CACX,YAAY,EAAG,GAAI,QAAQ,EAK1B,MAAQ,GAAG,MAEb,QAAE,CACD,yBAA2B,IAC5B,CAEA,OAAI,MAAM,QAAQ,KAAK,GAAK,MAAM,SAAW,IAC5C,MAAQ,MAAM,CAAC,GAGV,iBAAiB,QAEtB,MAAQ,iBAAiB,GAG1B,MAAM,OAAS,aACR,KACR,CACD,CAIA,SAAS,WAAW,KAAM,KAAM,CAC/B,OACC,KAAK,YACJ,WAAa,KAAK,OAAO,WAAW,IAAM,YAE3C,KAAO,KAAK,SAEN,SAAS,IAAI,EACjB,KAAK,OAAO,IAAI,EAChB,IACJ,CAEA,SAAS,uBACR,QACApE,MACA,QACA0D,UACA,IACC,CACD,IAAI,KAAO,iBAAiB,EAC5B,YAAK,aAAe,QACpB,KAAK,UAAY,CAAE,KAAM1D,MAAM,QAAkB,SAAU0D,UAAU,GAAS,EACvE,IACR,CAEA,SAAS,sBACR,QACA,SACC,CACD,GAAI,OAAO,QAAQ,KAAK,GAAK,MAAM,QAAQ,SAAS,EACnD,OAAO,QAAQ,UAGhB,GAAI,MAAM,QAAQ,QAAQ,EACzB,OAAO,QAAQ,SAGhB,IAAI,MAAQ,yBAMZ,GALI,OAAS,MAAM,QAAQ,MAAM,GAAK,QAAQ,OAAO,QAAQ,KAAK,IAAM,IAEvE,QAAQ,OAAO,KAAK,KAAK,EAGtB,OAAO,QAAQ,OAAO,GAAK,MAAM,QAAQ,WAAW,EACvD,OAAO,QAAQ,YAGhB,GAAI,OAAS,CAAC,MAAM,QAAQ,MAAM,EAAG,CACpC,IAAI,OAAS,QAAQ,OAAS,CAAC,KAAK,EAChC,KAAO,GACP,aAAe,KACf,aAAe,KAEf,MAAO,IAAI,iBAAkB,UAAY,CAAE,OAAO,OAAO,OAAQ,KAAK,CAAG,CAAC,EAE9E,IAAI,YAAc,SAAU,gBAAiB,CAC5C,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,EAAI,EAAG,IACxC,OAAO,CAAC,EAAG,aAAa,EAGtB,kBACH,OAAO,OAAS,EACZ,eAAiB,OACpB,aAAa,YAAY,EACzB,aAAe,MAEZ,eAAiB,OACpB,aAAa,YAAY,EACzB,aAAe,MAGlB,EAEI,QAAU,KAAK,SAAUc,KAAK,CAEjC,QAAQ,SAAW,WAAWA,KAAK,QAAQ,EAGtC,KAGJ,OAAO,OAAS,EAFhB,YAAY,EAAI,CAIlB,CAAC,EAEG,OAAS,KAAK,SAAU,OAAQ,CAE/B,MAAM,QAAQ,SAAS,IAC1B,QAAQ,MAAQ,GAChB,YAAY,EAAI,EAElB,CAAC,EAEG,IAAM,QAAQ,QAAS,MAAM,EAEjC,OAAI,SAAS,GAAG,IACX,UAAU,GAAG,EAEZ,QAAQ,QAAQ,QAAQ,GAC3B,IAAI,KAAK,QAAS,MAAM,EAEf,UAAU,IAAI,SAAS,IACjC,IAAI,UAAU,KAAK,QAAS,MAAM,EAE9B,MAAM,IAAI,KAAK,IAClB,QAAQ,UAAY,WAAW,IAAI,MAAO,QAAQ,GAG/C,MAAM,IAAI,OAAO,IACpB,QAAQ,YAAc,WAAW,IAAI,QAAS,QAAQ,EAClD,IAAI,QAAU,EACjB,QAAQ,QAAU,GAElB,aAAe,WAAW,UAAY,CACrC,aAAe,KACX,QAAQ,QAAQ,QAAQ,GAAK,QAAQ,QAAQ,KAAK,IACrD,QAAQ,QAAU,GAClB,YAAY,EAAK,EAEnB,EAAG,IAAI,OAAS,GAAG,GAIjB,MAAM,IAAI,OAAO,IACpB,aAAe,WAAW,UAAY,CACrC,aAAe,KACX,QAAQ,QAAQ,QAAQ,GAC3B,OAGI,IACJ,CAEF,EAAG,IAAI,OAAO,KAKjB,KAAO,GAEA,QAAQ,QACZ,QAAQ,YACR,QAAQ,QACZ,CACD,CAIA,SAAS,uBAAuBd,UAAU,CACzC,GAAI,MAAM,QAAQA,SAAQ,EACzB,QAAS,EAAI,EAAG,EAAIA,UAAS,OAAQ,IAAK,CACzC,IAAI,EAAIA,UAAS,CAAC,EAClB,GAAI,MAAM,CAAC,IAAM,MAAM,EAAE,gBAAgB,GAAK,mBAAmB,CAAC,GACjE,OAAO,CAET,CAEF,CAMA,SAAS,WAAW,GAAI,CACvB,GAAG,QAAU,OAAO,OAAO,IAAI,EAC/B,GAAG,cAAgB,GAEnB,IAAI,UAAY,GAAG,SAAS,iBACxB,WACH,yBAAyB,GAAI,SAAS,CAExC,CAEA,IAAI,OAEJ,SAAS,IAAI,MAAO,GAAI,CACvB,OAAO,IAAI,MAAO,EAAE,CACrB,CAEA,SAAS,SAAS,MAAO,GAAI,CAC5B,OAAO,KAAK,MAAO,EAAE,CACtB,CAEA,SAAS,kBAAkB,MAAO,GAAI,CACrC,IAAI,QAAU,OACd,OAAO,SAAS,aAAc,CAC7B,IAAI,IAAM,GAAG,MAAM,KAAM,SAAS,EAC9B,MAAQ,MACX,QAAQ,KAAK,MAAO,WAAW,CAEjC,CACD,CAEA,SAAS,yBACR,GACA,UACA,aACC,CACD,OAAS,GACT,gBAAgB,UAAW,cAAgB,CAAC,EAAG,IAAK,SAAU,kBAAmB,EAAE,EACnF,OAAS,MACV,CAEA,SAAS,YAAYa,KAAK,CACzB,IAAI,OAAS,SACbA,KAAI,UAAU,IAAM,SAAU,MAAO,GAAI,CACxC,IAAI,GAAK,KACT,GAAI,MAAM,QAAQ,KAAK,EACtB,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAI,EAAG,IACxC,GAAG,IAAI,MAAM,CAAC,EAAG,EAAE,OAGnB,GAAG,QAAQ,KAAK,IAAM,GAAG,QAAQ,KAAK,EAAI,CAAC,IAAI,KAAK,EAAE,EAGnD,OAAO,KAAK,KAAK,IACpB,GAAG,cAAgB,IAGrB,OAAO,EACR,EAEAA,KAAI,UAAU,MAAQ,SAAU,MAAO,GAAI,CAC1C,IAAI,GAAK,KACT,SAASP,KAAK,CACb,GAAG,KAAK,MAAOA,GAAE,EACjB,GAAG,MAAM,GAAI,SAAS,CACvB,CACA,OAAAA,IAAG,GAAK,GACR,GAAG,IAAI,MAAOA,GAAE,EACT,EACR,EAEAO,KAAI,UAAU,KAAO,SAAU,MAAO,GAAI,CACzC,IAAI,GAAK,KAET,GAAI,CAAC,UAAU,OACd,UAAG,QAAU,OAAO,OAAO,IAAI,EACxB,GAGR,GAAI,MAAM,QAAQ,KAAK,EAAG,CACzB,QAAS,IAAM,EAAG,EAAI,MAAM,OAAQ,IAAM,EAAG,MAC5C,GAAG,KAAK,MAAM,GAAG,EAAG,EAAE,EAEvB,OAAO,EACR,CAEA,IAAI,IAAM,GAAG,QAAQ,KAAK,EAC1B,GAAI,CAAC,IACJ,OAAO,GAER,GAAI,CAAC,GACJ,UAAG,QAAQ,KAAK,EAAI,KACb,GAKR,QAFI,GACA,EAAI,IAAI,OACL,KAEN,GADA,GAAK,IAAI,CAAC,EACN,KAAO,IAAM,GAAG,KAAO,GAAI,CAC9B,IAAI,OAAO,EAAG,CAAC,EACf,KACD,CAED,OAAO,EACR,EAEAA,KAAI,UAAU,MAAQ,SAAU,MAAO,CACtC,IAAI,GAAK,KACT,GAAI,EAAS,IAAI,eACjB,IAAI,IAAM,GAAG,QAAQ,KAAK,EAC1B,GAAI,IAAK,CACR,IAAM,IAAI,OAAS,EAAI,QAAQ,GAAG,EAAI,IAGtC,QAFI,KAAO,QAAQ,UAAW,CAAC,EAC3B,KAAO,sBAAyB,MAAQ,IACnC,EAAI,EAAG,EAAI,IAAI,OAAQ,EAAI,EAAG,IACtC,wBAAwB,IAAI,CAAC,EAAG,GAAI,KAAM,GAAI,IAAI,CAEpD,CACA,OAAO,EACR,CACD,CAIA,IAAI,eAAiB,KACjB,yBAA2B,GAE/B,SAAS,kBAAkB,GAAI,CAC9B,IAAI,mBAAqB,eACzB,sBAAiB,GACV,UAAY,CAClB,eAAiB,kBAClB,CACD,CAEA,SAAS,cAAc,GAAI,CAC1B,IAAI,QAAU,GAAG,SAGb,OAAS,QAAQ,OACrB,GAAI,QAAU,CAAC,QAAQ,SAAU,CAChC,KAAO,OAAO,SAAS,UAAY,OAAO,SACzC,OAAS,OAAO,QAEjB,OAAO,UAAU,KAAK,EAAE,CACzB,CAEA,GAAG,QAAU,OACb,GAAG,MAAQ,OAAS,OAAO,MAAQ,GAEnC,GAAG,UAAY,CAAC,EAChB,GAAG,MAAQ,CAAC,EAEZ,GAAG,SAAW,KACd,GAAG,UAAY,KACf,GAAG,gBAAkB,GACrB,GAAG,WAAa,GAChB,GAAG,aAAe,GAClB,GAAG,kBAAoB,EACxB,CAEA,SAAS,eAAeA,KAAK,CAC5BA,KAAI,UAAU,QAAU,SAAU,MAAO,UAAW,CACnD,IAAI,GAAK,KACL,OAAS,GAAG,IACZ,UAAY,GAAG,OACf,sBAAwB,kBAAkB,EAAE,EAChD,GAAG,OAAS,MAGP,UAKJ,GAAG,IAAM,GAAG,UAAU,UAAW,KAAK,EAHtC,GAAG,IAAM,GAAG,UAAU,GAAG,IAAK,MAAO,UAAW,EAAsB,EAKvE,sBAAsB,EAElB,SACH,OAAO,QAAU,MAEd,GAAG,MACN,GAAG,IAAI,QAAU,IAGd,GAAG,QAAU,GAAG,SAAW,GAAG,SAAW,GAAG,QAAQ,SACvD,GAAG,QAAQ,IAAM,GAAG,IAItB,EAEAA,KAAI,UAAU,aAAe,UAAY,CACxC,IAAI,GAAK,KACL,GAAG,UACN,GAAG,SAAS,OAAO,CAErB,EAEAA,KAAI,UAAU,SAAW,UAAY,CACpC,IAAI,GAAK,KACT,GAAI,IAAG,kBAGP,UAAS,GAAI,eAAe,EAC5B,GAAG,kBAAoB,GAEvB,IAAI,OAAS,GAAG,QACZ,QAAU,CAAC,OAAO,mBAAqB,CAAC,GAAG,SAAS,UACvD,OAAO,OAAO,UAAW,EAAE,EAGxB,GAAG,UACN,GAAG,SAAS,SAAS,EAGtB,QADI,EAAI,GAAG,UAAU,OACd,KACN,GAAG,UAAU,CAAC,EAAE,SAAS,EAItB,GAAG,MAAM,QACZ,GAAG,MAAM,OAAO,UAGjB,GAAG,aAAe,GAElB,GAAG,UAAU,GAAG,OAAQ,IAAI,EAE5B,SAAS,GAAI,WAAW,EAExB,GAAG,KAAK,EAEJ,GAAG,MACN,GAAG,IAAI,QAAU,MAGd,GAAG,SACN,GAAG,OAAO,OAAS,MAErB,CACD,CAEA,SAAS,eACR,GACA,GACA,UACC,CACD,GAAG,IAAM,GACJ,GAAG,SAAS,SAChB,GAAG,SAAS,OAAS,kBAGtB,SAAS,GAAI,aAAa,EAE1B,IAAI,gBAGH,uBAAkB,UAAY,CAC7B,GAAG,QAAQ,GAAG,QAAQ,EAAG,SAAS,CACnC,EAMD,IAAI,QAAQ,GAAI,gBAAiB,KAAM,CACtC,OAAQ,UAAkB,CACrB,GAAG,YAAc,CAAC,GAAG,cACxB,SAAS,GAAI,cAAc,CAE7B,CACD,EAAG,EAA0B,EAC7B,UAAY,GAIR,GAAG,QAAU,OAChB,GAAG,WAAa,GAChB,SAAS,GAAI,SAAS,GAEhB,EACR,CAEA,SAAS,qBACR,GACA,UACA,UACA,YACA,eACC,CASD,IAAI,eAAiB,YAAY,KAAK,YAClC,eAAiB,GAAG,aACpB,qBAAuB,CAAC,EAC1B,gBAAkB,CAAC,eAAe,SAClC,iBAAmB,aAAe,CAAC,eAAe,SAClD,gBAAkB,GAAG,aAAa,OAAS,eAAe,MAC1D,CAAC,gBAAkB,GAAG,aAAa,MAMjC,iBAAmB,CAAC,EACvB,gBACA,GAAG,SAAS,iBACZ,sBAkBD,GAfA,GAAG,SAAS,aAAe,YAC3B,GAAG,OAAS,YAER,GAAG,SACN,GAAG,OAAO,OAAS,aAEpB,GAAG,SAAS,gBAAkB,eAK9B,GAAG,OAAS,YAAY,KAAK,OAAS,YACtC,GAAG,WAAa,WAAa,YAGzB,WAAa,GAAG,SAAS,MAAO,CACnC,gBAAgB,EAAK,EAGrB,QAFIX,OAAQ,GAAG,OACX,SAAW,GAAG,SAAS,WAAa,CAAC,EAChC,EAAI,EAAG,EAAI,SAAS,OAAQ,IAAK,CACzC,IAAI,IAAM,SAAS,CAAC,EAChB,YAAc,GAAG,SAAS,MAC9BA,OAAM,GAAG,EAAI,aAAa,IAAK,YAAa,UAAW,EAAE,CAC1D,CACA,gBAAgB,EAAI,EAEpB,GAAG,SAAS,UAAY,SACzB,CAGA,UAAY,WAAa,YACzB,IAAI,aAAe,GAAG,SAAS,iBAC/B,GAAG,SAAS,iBAAmB,UAC/B,yBAAyB,GAAI,UAAW,YAAY,EAGhD,mBACH,GAAG,OAAS,aAAa,eAAgB,YAAY,OAAO,EAC5D,GAAG,aAAa,EAIlB,CAEA,SAAS,iBAAiB,GAAI,CAC7B,KAAO,KAAO,GAAK,GAAG,UACrB,GAAI,GAAG,UAAa,MAAO,GAE5B,MAAO,EACR,CAEA,SAAS,uBAAuB,GAAI,OAAQ,CAC3C,GAAI,QAEH,GADA,GAAG,gBAAkB,GACjB,iBAAiB,EAAE,EACtB,eAES,GAAG,gBACb,OAED,GAAI,GAAG,WAAa,GAAG,YAAc,KAAM,CAC1C,GAAG,UAAY,GACf,QAAS,EAAI,EAAG,EAAI,GAAG,UAAU,OAAQ,IACxC,uBAAuB,GAAG,UAAU,CAAC,CAAC,EAEvC,SAAS,GAAI,WAAW,CACzB,CACD,CAEA,SAAS,yBAAyB,GAAI,OAAQ,CAC7C,GAAI,WACH,GAAG,gBAAkB,GACjB,iBAAiB,EAAE,KAIpB,CAAC,GAAG,UAAW,CAClB,GAAG,UAAY,GACf,QAAS,EAAI,EAAG,EAAI,GAAG,UAAU,OAAQ,IACxC,yBAAyB,GAAG,UAAU,CAAC,CAAC,EAEzC,SAAS,GAAI,aAAa,CAC3B,CACD,CAEA,SAAS,SAAS,GAAI,KAAM,CAE3B,WAAW,EACX,IAAI,SAAW,GAAG,SAAS,IAAI,EAC3B,KAAO,KAAO,QAClB,GAAI,SACH,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,EAAI,EAAG,IAC3C,wBAAwB,SAAS,CAAC,EAAG,GAAI,KAAM,GAAI,IAAI,EAGrD,GAAG,eACN,GAAG,MAAM,QAAU,IAAI,EAExB,UAAU,CACX,CAIA,IAAI,iBAAmB,IAEnB,MAAQ,CAAC,EACT,kBAAoB,CAAC,EACrB,IAAM,CAAC,EACP,SAAW,CAAC,EACZ,QAAU,GACV,SAAW,GACX,MAAQ,EAKZ,SAAS,qBAAsB,CAC9B,MAAQ,MAAM,OAAS,kBAAkB,OAAS,EAClD,IAAM,CAAC,EAEP,QAAU,SAAW,EACtB,CAOA,IAAI,sBAAwB,EAGxB,OAAS,KAAK,IAQlB,GAAI,WAAa,CAAC,KAAM,CACvB,IAAI,oBAAsB,OAAO,YAEhC,qBACA,OAAO,oBAAoB,KAAQ,YACnC,OAAO,EAAI,SAAS,YAAY,OAAO,EAAE,YAMzC,OAAS,UAAY,CAAE,OAAO,oBAAoB,IAAI,CAAG,EAE3D,CAKA,SAAS,qBAAsB,CAC9B,sBAAwB,OAAO,EAC/B,SAAW,GACX,IAAI,QAAS,GAcb,IAJA,MAAM,KAAK,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,GAAK,EAAE,EAAI,CAAC,EAI7C,MAAQ,EAAG,MAAQ,MAAM,OAAQ,QACrC,QAAU,MAAM,KAAK,EACjB,QAAQ,QACX,QAAQ,OAAO,EAEhB,GAAK,QAAQ,GACb,IAAI,EAAE,EAAI,KACV,QAAQ,IAAI,EAMb,IAAI,eAAiB,kBAAkB,MAAM,EACzC,aAAe,MAAM,MAAM,EAE/B,oBAAoB,EAGpB,mBAAmB,cAAc,EACjC,iBAAiB,YAAY,EAIzB,UAAY,OAAO,UACtB,SAAS,KAAK,OAAO,CAEvB,CAEA,SAAS,iBAAiBa,OAAO,CAEhC,QADI,EAAIA,OAAM,OACP,KAAK,CACX,IAAI,QAAUA,OAAM,CAAC,EACjB,GAAK,QAAQ,GACb,GAAG,WAAa,SAAW,GAAG,YAAc,CAAC,GAAG,cACnD,SAAS,GAAI,SAAS,CAExB,CACD,CAMA,SAAS,wBAAwB,GAAI,CAGpC,GAAG,UAAY,GACf,kBAAkB,KAAK,EAAE,CAC1B,CAEA,SAAS,mBAAmBA,OAAO,CAClC,QAAS,EAAI,EAAG,EAAIA,OAAM,OAAQ,IACjCA,OAAM,CAAC,EAAE,UAAY,GACrB,uBAAuBA,OAAM,CAAC,EAAG,EAAe,CAElD,CAOA,SAAS,aAAa,QAAS,CAC9B,IAAI,GAAK,QAAQ,GACjB,GAAI,IAAI,EAAE,GAAK,KAAM,CAEpB,GADA,IAAI,EAAE,EAAI,GACN,CAAC,SACJ,MAAM,KAAK,OAAO,MACZ,CAIN,QADI,EAAI,MAAM,OAAS,EAChB,EAAI,OAAS,MAAM,CAAC,EAAE,GAAK,QAAQ,IACzC,IAED,MAAM,OAAO,EAAI,EAAG,EAAG,OAAO,CAC/B,CAEK,UACJ,QAAU,GAGV,SAAS,mBAAmB,EAE9B,CACD,CAMA,IAAI,MAAQ,EAOR,QAAU,SACb,GACA,QACA,GACA,QACA,gBACC,CACD,KAAK,GAAK,GACN,kBACH,GAAG,SAAW,MAEf,GAAG,UAAU,KAAK,IAAI,EAElB,SACH,KAAK,KAAO,CAAC,CAAC,QAAQ,KACtB,KAAK,KAAO,CAAC,CAAC,QAAQ,KACtB,KAAK,KAAO,CAAC,CAAC,QAAQ,KACtB,KAAK,KAAO,CAAC,CAAC,QAAQ,KACtB,KAAK,OAAS,QAAQ,QAEtB,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,KAAK,KAAO,GAEjD,KAAK,GAAK,GACV,KAAK,GAAK,EAAE,MACZ,KAAK,OAAS,GACd,KAAK,MAAQ,KAAK,KAClB,KAAK,KAAO,CAAC,EACb,KAAK,QAAU,CAAC,EAChB,KAAK,OAAS,IAAI,KAClB,KAAK,UAAY,IAAI,KACrB,KAAK,WAEF,GAEC,OAAO,SAAY,WACtB,KAAK,OAAS,SAEd,KAAK,OAAS,UAAU,OAAO,EAC1B,KAAK,SACT,KAAK,OAAS,OAIhB,KAAK,MAAQ,KAAK,KACf,OACA,KAAK,IAAI,CACb,EAKA,QAAQ,UAAU,IAAM,UAAe,CACtC,WAAW,IAAI,EACf,IAAI,MACA,GAAK,KAAK,GACd,GAAI,CACH,MAAQ,KAAK,OAAO,KAAK,GAAI,EAAE,CAChC,OAAS,EAAG,CACX,GAAI,KAAK,KACR,YAAY,EAAG,GAAK,uBAA2B,KAAK,WAAc,GAAK,MAEvE,OAAM,CAER,QAAE,CAGG,KAAK,MACR,SAAS,KAAK,EAEf,UAAU,EACV,KAAK,YAAY,CAClB,CACA,OAAO,KACR,EAKA,QAAQ,UAAU,OAAS,SAAgB,IAAK,CAC/C,IAAI,GAAK,IAAI,GACR,KAAK,UAAU,IAAI,EAAE,IACzB,KAAK,UAAU,IAAI,EAAE,EACrB,KAAK,QAAQ,KAAK,GAAG,EAChB,KAAK,OAAO,IAAI,EAAE,GACtB,IAAI,OAAO,IAAI,EAGlB,EAKA,QAAQ,UAAU,YAAc,UAAuB,CAEtD,QADI,EAAI,KAAK,KAAK,OACX,KAAK,CACX,IAAI,IAAM,KAAK,KAAK,CAAC,EAChB,KAAK,UAAU,IAAI,IAAI,EAAE,GAC7B,IAAI,UAAU,IAAI,CAEpB,CACA,IAAI,IAAM,KAAK,OACf,KAAK,OAAS,KAAK,UACnB,KAAK,UAAY,IACjB,KAAK,UAAU,MAAM,EACrB,IAAM,KAAK,KACX,KAAK,KAAO,KAAK,QACjB,KAAK,QAAU,IACf,KAAK,QAAQ,OAAS,CACvB,EAMA,QAAQ,UAAU,OAAS,UAAkB,CAExC,KAAK,KACR,KAAK,MAAQ,GACH,KAAK,KACf,KAAK,IAAI,EAET,aAAa,IAAI,CAEnB,EAMA,QAAQ,UAAU,IAAM,UAAe,CACtC,GAAI,KAAK,OAAQ,CAChB,IAAI,MAAQ,KAAK,IAAI,EACrB,GACC,QAAU,KAAK,OAIf,SAAS,KAAK,GACd,KAAK,KACJ,CAED,IAAI,SAAW,KAAK,MAEpB,GADA,KAAK,MAAQ,MACT,KAAK,KAAM,CACd,IAAI,KAAO,yBAA6B,KAAK,WAAc,IAC3D,wBAAwB,KAAK,GAAI,KAAK,GAAI,CAAC,MAAO,QAAQ,EAAG,KAAK,GAAI,IAAI,CAC3E,MACC,KAAK,GAAG,KAAK,KAAK,GAAI,MAAO,QAAQ,CAEvC,CACD,CACD,EAMA,QAAQ,UAAU,SAAW,UAAoB,CAChD,KAAK,MAAQ,KAAK,IAAI,EACtB,KAAK,MAAQ,EACd,EAKA,QAAQ,UAAU,OAAS,UAAkB,CAE5C,QADI,EAAI,KAAK,KAAK,OACX,KACN,KAAK,KAAK,CAAC,EAAE,OAAO,CAEtB,EAKA,QAAQ,UAAU,SAAW,UAAoB,CAChD,GAAI,KAAK,OAAQ,CAIX,KAAK,GAAG,mBACZ,OAAO,KAAK,GAAG,UAAW,IAAI,EAG/B,QADI,EAAI,KAAK,KAAK,OACX,KACN,KAAK,KAAK,CAAC,EAAE,UAAU,IAAI,EAE5B,KAAK,OAAS,EACf,CACD,EAIA,IAAI,yBAA2B,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,KACL,IAAK,IACN,EAEA,SAAS,MAAMhB,QAAQ,UAAW,IAAK,CACtC,yBAAyB,IAAM,UAAuB,CACrD,OAAO,KAAK,SAAS,EAAE,GAAG,CAC3B,EACA,yBAAyB,IAAM,SAAqBlD,KAAK,CACxD,KAAK,SAAS,EAAE,GAAG,EAAIA,IACxB,EACA,OAAO,eAAekD,QAAQ,IAAK,wBAAwB,CAC5D,CAEA,SAAS,UAAU,GAAI,CACtB,GAAG,UAAY,CAAC,EAChB,IAAIiB,MAAO,GAAG,SACVA,MAAK,OAAS,UAAU,GAAIA,MAAK,KAAK,EACtCA,MAAK,SAAW,YAAY,GAAIA,MAAK,OAAO,EAC5CA,MAAK,KACR,SAAS,EAAE,EAEX,QAAQ,GAAG,MAAQ,CAAC,EAAG,EAAqB,EAEzCA,MAAK,UAAY,aAAa,GAAIA,MAAK,QAAQ,EAC/CA,MAAK,OAASA,MAAK,QAAU,aAChC,UAAU,GAAIA,MAAK,KAAK,CAE1B,CAEA,SAAS,UAAU,GAAI,aAAc,CACpC,IAAI,UAAY,GAAG,SAAS,WAAa,CAAC,EACtCd,OAAQ,GAAG,OAAS,CAAC,EAGrB,KAAO,GAAG,SAAS,UAAY,CAAC,EAChC,OAAS,CAAC,GAAG,QAEZ,QACJ,gBAAgB,EAAK,EAEtB,IAAIS,MAAO,SAAUpC,KAAK,CACzB,KAAK,KAAKA,IAAG,EACb,IAAI,MAAQ,aAAaA,KAAK,aAAc,UAAW,EAAE,EAEzD,GAAI,EAAS,IAAI,mBAChB,kBAAkB2B,OAAO3B,KAAK,KAAK,EAK9BA,QAAO,IACZ,MAAM,GAAI,SAAUA,IAAG,CAEzB,EAEA,QAAS,OAAO,aAAcoC,MAAK,GAAG,EACtC,gBAAgB,EAAI,CACrB,CAEA,SAAS,SAAS,GAAI,CACrB,IAAIrE,MAAO,GAAG,SAAS,KACvBA,MAAO,GAAG,MAAQ,OAAOA,OAAS,WAC/B,QAAQA,MAAM,EAAE,EAChBA,OAAQ,CAAC,EACP,cAAcA,KAAI,IACtBA,MAAO,CAAC,GAQT,QAJI,KAAO,OAAO,KAAKA,KAAI,EACvB4D,OAAQ,GAAG,SAAS,MACpB,QAAU,GAAG,SAAS,QACtB,EAAI,KAAK,OACN,KAAK,CACX,IAAI,IAAM,KAAK,CAAC,EAEZA,QAAS,OAAOA,OAAO,GAAG,GAElB,WAAW,GAAG,GACzB,MAAM,GAAI,QAAS,GAAG,CAExB,CAEA,QAAQ5D,MAAM,EAAqB,CACpC,CAEA,SAAS,QAAQA,MAAM,GAAI,CAE1B,WAAW,EACX,GAAI,CACH,OAAOA,MAAK,KAAK,GAAI,EAAE,CACxB,OAAS,EAAG,CACX,mBAAY,EAAG,GAAI,QAAQ,EACpB,CAAC,CACT,QAAE,CACD,UAAU,CACX,CACD,CAEA,IAAI,uBAAyB,CAAE,KAAM,EAAK,EAE1C,SAAS,aAAa,GAAI,SAAU,CAEnC,IAAI,SAAW,GAAG,kBAAoB,OAAO,OAAO,IAAI,EAEpD,MAAQ,kBAAkB,EAE9B,QAAS,OAAO,SAAU,CACzB,IAAI,QAAU,SAAS,GAAG,EACtB,OAAS,OAAO,SAAY,WAAa,QAAU,QAAQ,IAG1D,QAEJ,SAAS,GAAG,EAAI,IAAI,QACnB,GACA,QAAU,KACV,KACA,sBACD,GAMK,OAAO,IACZ,eAAe,GAAI,IAAK,OAAO,CAEjC,CACD,CAEA,SAAS,eACRyD,QACA,IACA,QACC,CACD,IAAI,YAAc,CAAC,kBAAkB,EACjC,OAAO,SAAY,YACtB,yBAAyB,IAAM,YAC5B,qBAAqB,GAAG,EACxB,oBAAoB,OAAO,EAC9B,yBAAyB,IAAM,OAE/B,yBAAyB,IAAM,QAAQ,IACpC,aAAe,QAAQ,QAAU,GAChC,qBAAqB,GAAG,EACxB,oBAAoB,QAAQ,GAAG,EAChC,KACH,yBAAyB,IAAM,QAAQ,KAAO,MAG/C,OAAO,eAAeA,QAAQ,IAAK,wBAAwB,CAC5D,CAEA,SAAS,qBAAqB,IAAK,CAClC,OAAO,UAA0B,CAChC,IAAI,QAAU,KAAK,mBAAqB,KAAK,kBAAkB,GAAG,EAClE,GAAI,QACH,OAAI,QAAQ,OACX,QAAQ,SAAS,EAEd,IAAI,QACP,QAAQ,OAAO,EAET,QAAQ,KAEjB,CACD,CAEA,SAAS,oBAAoB,GAAI,CAChC,OAAO,UAA0B,CAChC,OAAO,GAAG,KAAK,KAAM,IAAI,CAC1B,CACD,CAEA,SAAS,YAAY,GAAI,QAAS,CACjC,IAAIG,OAAQ,GAAG,SAAS,MACxB,QAAS,OAAO,QAEf,GAAG,GAAG,EAAI,OAAO,QAAQ,GAAG,GAAM,WAAa,KAAO,KAAK,QAAQ,GAAG,EAAG,EAAE,CAE7E,CAEA,SAAS,UAAU,GAAI,MAAO,CAC7B,QAAS,OAAO,MAAO,CACtB,IAAI,QAAU,MAAM,GAAG,EACvB,GAAI,MAAM,QAAQ,OAAO,EACxB,QAAS,EAAI,EAAG,EAAI,QAAQ,OAAQ,IACnC,cAAc,GAAI,IAAK,QAAQ,CAAC,CAAC,OAGlC,cAAc,GAAI,IAAK,OAAO,CAEhC,CACD,CAEA,SAAS,cACR,GACA,QACA,QACA,QACC,CACD,OAAI,cAAc,OAAO,IACxB,QAAU,QACV,QAAU,QAAQ,SAEf,OAAO,SAAY,WACtB,QAAU,GAAG,OAAO,GAEd,GAAG,OAAO,QAAS,QAAS,OAAO,CAC3C,CAEA,SAAS,WAAWW,KAAK,CAIxB,IAAI,QAAU,CAAC,EACf,QAAQ,IAAM,UAAY,CAAE,OAAO,KAAK,KAAM,EAC9C,IAAI,SAAW,CAAC,EAChB,SAAS,IAAM,UAAY,CAAE,OAAO,KAAK,MAAO,EAEhD,OAAO,eAAeA,KAAI,UAAW,QAAS,OAAO,EACrD,OAAO,eAAeA,KAAI,UAAW,SAAU,QAAQ,EAEvDA,KAAI,UAAU,KAAO,IACrBA,KAAI,UAAU,QAAU,IAExBA,KAAI,UAAU,OAAS,SACtB,QACA,GACA,QACC,CACD,IAAI,GAAK,KACT,GAAI,cAAc,EAAE,EACnB,OAAO,cAAc,GAAI,QAAS,GAAI,OAAO,EAE9C,QAAU,SAAW,CAAC,EACtB,QAAQ,KAAO,GACf,IAAI,QAAU,IAAI,QAAQ,GAAI,QAAS,GAAI,OAAO,EAClD,GAAI,QAAQ,UAAW,CACtB,IAAI,KAAO,mCAAuC,QAAQ,WAAc,IACxE,WAAW,EACX,wBAAwB,GAAI,GAAI,CAAC,QAAQ,KAAK,EAAG,GAAI,IAAI,EACzD,UAAU,CACX,CACA,OAAO,UAAqB,CAC3B,QAAQ,SAAS,CAClB,CACD,CACD,CAIA,IAAI,MAAQ,EAEZ,SAAS,UAAUA,KAAK,CACvBA,KAAI,UAAU,MAAQ,SAAU,QAAS,CACxC,IAAI,GAAK,KAET,GAAG,KAAO,QAEV,IAAI,SAAUlD,QAKd,GAAG,OAAS,GAER,SAAW,QAAQ,aAItB,sBAAsB,GAAI,OAAO,EAEjC,GAAG,SAAW,aACb,0BAA0B,GAAG,WAAW,EACxC,SAAW,CAAC,EACZ,EACD,EAIA,GAAG,aAAe,GAGnB,GAAG,MAAQ,GACX,cAAc,EAAE,EAChB,WAAW,EAAE,EACb,WAAW,EAAE,EACb,SAAS,GAAI,cAAc,EAC3B,eAAe,EAAE,EACjB,UAAU,EAAE,EACZ,YAAY,EAAE,EACd,SAAS,GAAI,SAAS,EAKlB,GAAG,SAAS,IACf,GAAG,OAAO,GAAG,SAAS,EAAE,CAE1B,CACD,CAEA,SAAS,sBAAsB,GAAI,QAAS,CAC3C,IAAIqD,MAAO,GAAG,SAAW,OAAO,OAAO,GAAG,YAAY,OAAO,EAEzD,YAAc,QAAQ,aAC1BA,MAAK,OAAS,QAAQ,OACtBA,MAAK,aAAe,YAEpB,IAAI,sBAAwB,YAAY,iBACxCA,MAAK,UAAY,sBAAsB,UACvCA,MAAK,iBAAmB,sBAAsB,UAC9CA,MAAK,gBAAkB,sBAAsB,SAC7CA,MAAK,cAAgB,sBAAsB,IAEvC,QAAQ,SACXA,MAAK,OAAS,QAAQ,OACtBA,MAAK,gBAAkB,QAAQ,gBAEjC,CAEA,SAAS,0BAA0B,KAAM,CACxC,IAAI,QAAU,KAAK,QACnB,GAAI,KAAK,MAAO,CACf,IAAI,aAAe,0BAA0B,KAAK,KAAK,EACnD,mBAAqB,KAAK,aAC9B,GAAI,eAAiB,mBAAoB,CAGxC,KAAK,aAAe,aAEpB,IAAI,gBAAkB,uBAAuB,IAAI,EAE7C,iBACH,OAAO,KAAK,cAAe,eAAe,EAE3C,QAAU,KAAK,QAAU,aAAa,aAAc,KAAK,aAAa,EAClE,QAAQ,OACX,QAAQ,WAAW,QAAQ,IAAI,EAAI,KAErC,CACD,CACA,OAAO,OACR,CAEA,SAAS,uBAAuB,KAAM,CACrC,IAAI,SACA,OAAS,KAAK,QACd,OAAS,KAAK,cAClB,QAAS,OAAO,OACX,OAAO,GAAG,IAAM,OAAO,GAAG,IACxB,WAAY,SAAW,CAAC,GAC7B,SAAS,GAAG,EAAI,OAAO,GAAG,GAG5B,OAAO,QACR,CAEA,SAAS,YAAY,QAAS,CAG7B,KAAK,MAAM,OAAO,CACnB,CAEA,UAAU,WAAW,EACrB,WAAW,WAAW,EACtB,YAAY,WAAW,EACvB,eAAe,WAAW,EAC1B,YAAY,WAAW,EAIvB,SAAS,QAAQH,KAAK,CACrBA,KAAI,IAAM,SAAU,OAAQ,CAC3B,IAAI,iBAAoB,KAAK,oBAAsB,KAAK,kBAAoB,CAAC,GAC7E,GAAI,iBAAiB,QAAQ,MAAM,EAAI,GACtC,OAAO,KAIR,IAAI,KAAO,QAAQ,UAAW,CAAC,EAC/B,YAAK,QAAQ,IAAI,EACb,OAAO,OAAO,SAAY,WAC7B,OAAO,QAAQ,MAAM,OAAQ,IAAI,EACvB,OAAO,QAAW,YAC5B,OAAO,MAAM,KAAM,IAAI,EAExB,iBAAiB,KAAK,MAAM,EACrB,IACR,CACD,CAIA,SAAS,YAAYA,KAAK,CACzBA,KAAI,MAAQ,SAAU,MAAO,CAC5B,YAAK,QAAU,aAAa,KAAK,QAAS,KAAK,EACxC,IACR,CACD,CAIA,SAAS,WAAWA,KAAK,CAMxBA,KAAI,IAAM,EACV,IAAI,IAAM,EAKVA,KAAI,OAAS,SAAU,cAAe,CACrC,cAAgB,eAAiB,CAAC,EAClC,IAAI,MAAQ,KACR,QAAU,MAAM,IAChB,YAAc,cAAc,QAAU,cAAc,MAAQ,CAAC,GACjE,GAAI,YAAY,OAAO,EACtB,OAAO,YAAY,OAAO,EAG3B,IAAI,KAAO,cAAc,MAAQ,MAAM,QAAQ,KAG3C,IAAM,SAAsB,QAAS,CACxC,KAAK,MAAM,OAAO,CACnB,EACA,WAAI,UAAY,OAAO,OAAO,MAAM,SAAS,EAC7C,IAAI,UAAU,YAAc,IAC5B,IAAI,IAAM,MACV,IAAI,QAAU,aACb,MAAM,QACN,aACD,EACA,IAAI,MAAW,MAKX,IAAI,QAAQ,OACf,YAAY,GAAG,EAEZ,IAAI,QAAQ,UACf,eAAe,GAAG,EAInB,IAAI,OAAS,MAAM,OACnB,IAAI,MAAQ,MAAM,MAClB,IAAI,IAAM,MAAM,IAIhB,YAAY,QAAQ,SAAU,KAAM,CACnC,IAAI,IAAI,EAAI,MAAM,IAAI,CACvB,CAAC,EAEG,OACH,IAAI,QAAQ,WAAW,IAAI,EAAI,KAMhC,IAAI,aAAe,MAAM,QACzB,IAAI,cAAgB,cACpB,IAAI,cAAgB,OAAO,CAAC,EAAG,IAAI,OAAO,EAG1C,YAAY,OAAO,EAAI,IAChB,GACR,CACD,CAEA,SAAS,YAAY,KAAM,CAC1B,IAAIX,OAAQ,KAAK,QAAQ,MACzB,QAAS,OAAOA,OACf,MAAM,KAAK,UAAW,SAAU,GAAG,CAErC,CAEA,SAAS,eAAe,KAAM,CAC7B,IAAI,SAAW,KAAK,QAAQ,SAC5B,QAAS,OAAO,SACf,eAAe,KAAK,UAAW,IAAK,SAAS,GAAG,CAAC,CAEnD,CAIA,SAAS,mBAAmBW,KAAK,CAIhC,YAAY,QAAQ,SAAU,KAAM,CACnCA,KAAI,IAAI,EAAI,SACX,GACA,WACC,CACD,OAAK,YAKA,OAAS,aAAe,cAAc,UAAU,IACnD,WAAW,KAAO,WAAW,MAAQ,GACrC,WAAa,KAAK,QAAQ,MAAM,OAAO,UAAU,GAE9C,OAAS,aAAe,OAAO,YAAe,aACjD,WAAa,CAAE,KAAM,WAAY,OAAQ,UAAW,GAErD,KAAK,QAAQ,KAAO,GAAG,EAAE,EAAE,EAAI,WACxB,YAZA,KAAK,QAAQ,KAAO,GAAG,EAAE,EAAE,CAcpC,CACD,CAAC,CACF,CAQA,SAAS,iBAAiBG,MAAM,CAC/B,OAAOA,QAASA,MAAK,KAAK,QAAQ,MAAQA,MAAK,IAChD,CAEA,SAAS,QAAQ,QAAS,KAAM,CAC/B,OAAI,MAAM,QAAQ,OAAO,EACjB,QAAQ,QAAQ,IAAI,EAAI,GACrB,OAAO,SAAY,SACtB,QAAQ,MAAM,GAAG,EAAE,QAAQ,IAAI,EAAI,GAChC,SAAS,OAAO,EACnB,QAAQ,KAAK,IAAI,EAGlB,EACR,CAEA,SAAS,WAAW,kBAAmBC,QAAQ,CAC9C,IAAI,MAAQ,kBAAkB,MAC1B,KAAO,kBAAkB,KACzB,OAAS,kBAAkB,OAC/B,QAAS,OAAO,MAAO,CACtB,IAAI,MAAQ,MAAM,GAAG,EACrB,GAAI,MAAO,CACV,IAAI,KAAO,MAAM,KACb,MAAQ,CAACA,QAAO,IAAI,GACvB,gBAAgB,MAAO,IAAK,KAAM,MAAM,CAE1C,CACD,CACD,CAEA,SAAS,gBACR,MACA,IACA,KACA,QACC,CACD,IAAI,MAAQ,MAAM,GAAG,EACjB,QAAU,CAAC,SAAW,MAAM,MAAQ,QAAQ,MAC/C,MAAM,kBAAkB,SAAS,EAElC,MAAM,GAAG,EAAI,KACb,OAAO,KAAM,GAAG,CACjB,CAEA,IAAI,aAAe,CAAC,OAAQ,OAAQ,KAAK,EAErC,UAAY,CACf,KAAM,aACN,SAAU,GAEV,MAAO,CACN,QAAS,aACT,QAAS,aACT,IAAK,CAAC,OAAQ,MAAM,CACrB,EAEA,QAAS,CACR,WAAY,UAAsB,CACjC,IAAIjD,KAAM,KACN,MAAQA,KAAI,MACZ,KAAOA,KAAI,KACX,aAAeA,KAAI,aACnB,WAAaA,KAAI,WACrB,GAAI,aAAc,CACjB,IAAI,IAAM,aAAa,IACnB,kBAAoB,aAAa,kBACjC,iBAAmB,aAAa,iBACpC,MAAM,UAAU,EAAI,CACnB,KAAM,iBAAiB,gBAAgB,EACvC,IACA,iBACD,EACA,KAAK,KAAK,UAAU,EAEhB,KAAK,KAAO,KAAK,OAAS,SAAS,KAAK,GAAG,GAC9C,gBAAgB,MAAO,KAAK,CAAC,EAAG,KAAM,KAAK,MAAM,EAElD,KAAK,aAAe,IACrB,CACD,CACD,EAEA,QAAS,UAAmB,CAC3B,KAAK,MAAQ,OAAO,OAAO,IAAI,EAC/B,KAAK,KAAO,CAAC,CACd,EAEA,UAAW,UAAqB,CAC/B,QAAS,OAAO,KAAK,MACpB,gBAAgB,KAAK,MAAO,IAAK,KAAK,IAAI,CAE5C,EAEA,QAAS,UAAmB,CAC3B,IAAI,OAAS,KAEb,KAAK,WAAW,EAChB,KAAK,OAAO,UAAW,SAAUnB,KAAK,CACrC,WAAW,OAAQ,SAAU,KAAM,CAAE,OAAO,QAAQA,KAAK,IAAI,CAAG,CAAC,CAClE,CAAC,EACD,KAAK,OAAO,UAAW,SAAUA,KAAK,CACrC,WAAW,OAAQ,SAAU,KAAM,CAAE,MAAO,CAAC,QAAQA,KAAK,IAAI,CAAG,CAAC,CACnE,CAAC,CACF,EAEA,QAAS,UAAmB,CAC3B,KAAK,WAAW,CACjB,EAEA,OAAQ,UAAkB,CACzB,IAAI,KAAO,KAAK,OAAO,QACnB,MAAQ,uBAAuB,IAAI,EACnC,iBAAmB,OAAS,MAAM,iBACtC,GAAI,iBAAkB,CAErB,IAAI,KAAO,iBAAiB,gBAAgB,EACxCmB,KAAM,KACN,QAAUA,KAAI,QACd,QAAUA,KAAI,QAClB,GAEE,UAAY,CAAC,MAAQ,CAAC,QAAQ,QAAS,IAAI,IAE3C,SAAW,MAAQ,QAAQ,QAAS,IAAI,EAEzC,OAAO,MAGR,IAAIa,OAAQ,KACR,MAAQA,OAAM,MACd,KAAOA,OAAM,KACb,IAAM,MAAM,KAAO,KAGpB,iBAAiB,KAAK,KAAO,iBAAiB,IAAO,KAAQ,iBAAiB,IAAQ,IACtF,MAAM,IACL,MAAM,GAAG,GACZ,MAAM,kBAAoB,MAAM,GAAG,EAAE,kBAErC,OAAO,KAAM,GAAG,EAChB,KAAK,KAAK,GAAG,IAGb,KAAK,aAAe,MACpB,KAAK,WAAa,KAGnB,MAAM,KAAK,UAAY,EACxB,CACA,OAAO,OAAU,MAAQ,KAAK,CAAC,CAChC,CACD,EAEI,kBAAoB,CACvB,SACD,EAIA,SAAS,cAAcgC,KAAK,CAE3B,IAAI,UAAY,CAAC,EACjB,UAAU,IAAM,UAAY,CAAE,OAAO,MAAQ,EAE7C,OAAO,eAAeA,KAAK,SAAU,SAAS,EAK9CA,KAAI,KAAO,CACV,KACA,OACA,aACA,eAAgB,iBACjB,EAEAA,KAAI,IAAM,IACVA,KAAI,OAAS,IACbA,KAAI,SAAW,SAGfA,KAAI,WAAa,SAAU,IAAK,CAC/B,eAAQ,GAAG,EACJ,GACR,EAEAA,KAAI,QAAU,OAAO,OAAO,IAAI,EAChC,YAAY,QAAQ,SAAU,KAAM,CACnCA,KAAI,QAAQ,KAAO,GAAG,EAAI,OAAO,OAAO,IAAI,CAC7C,CAAC,EAIDA,KAAI,QAAQ,MAAQA,KAEpB,OAAOA,KAAI,QAAQ,WAAY,iBAAiB,EAEhD,QAAQA,IAAG,EACX,YAAYA,IAAG,EACf,WAAWA,IAAG,EACd,mBAAmBA,IAAG,CACvB,CAEA,cAAc,WAAW,EAEzB,OAAO,eAAe,YAAY,UAAW,YAAa,CACzD,IAAK,iBACN,CAAC,EAED,OAAO,eAAe,YAAY,UAAW,cAAe,CAC3D,IAAK,UAAe,CAEnB,OAAO,KAAK,QAAU,KAAK,OAAO,UACnC,CACD,CAAC,EAGD,OAAO,eAAe,YAAa,0BAA2B,CAC7D,MAAO,uBACR,CAAC,EAED,YAAY,QAAU,SAMtB,IAAI,eAAiB,QAAQ,aAAa,EAGtC,YAAc,QAAQ,uCAAuC,EAC7D,YAAc,SAAU,IAAK,KAAMK,MAAM,CAC5C,OACEA,QAAS,SAAW,YAAY,GAAG,GAAM,OAAS,UAClDA,QAAS,YAAc,MAAQ,UAC/BA,QAAS,WAAa,MAAQ,SAC9BA,QAAS,SAAW,MAAQ,OAE/B,EAEI,iBAAmB,QAAQ,sCAAsC,EAEjE,4BAA8B,QAAQ,oCAAoC,EAE1E,uBAAyB,SAAU,IAAK,MAAO,CAClD,OAAO,iBAAiB,KAAK,GAAK,QAAU,QACzC,QAEA,MAAQ,mBAAqB,4BAA4B,KAAK,EAC7D,MACA,MACL,EAEI,cAAgB,QACnB,4XAMD,EAEI,QAAU,+BAEV,QAAU,SAAU,KAAM,CAC7B,OAAO,KAAK,OAAO,CAAC,IAAM,KAAO,KAAK,MAAM,EAAG,CAAC,IAAM,OACvD,EAEI,aAAe,SAAU,KAAM,CAClC,OAAO,QAAQ,IAAI,EAAI,KAAK,MAAM,EAAG,KAAK,MAAM,EAAI,EACrD,EAEI,iBAAmB,SAAUrE,KAAK,CACrC,OAAOA,MAAO,MAAQA,OAAQ,EAC/B,EAIA,SAAS,iBAAiB,MAAO,CAIhC,QAHIP,MAAO,MAAM,KACb6E,YAAa,MACb,UAAY,MACT,MAAM,UAAU,iBAAiB,GACvC,UAAY,UAAU,kBAAkB,OACpC,WAAa,UAAU,OAC1B7E,MAAO,eAAe,UAAU,KAAMA,KAAI,GAG5C,KAAO,MAAM6E,YAAaA,YAAW,MAAM,GACtCA,aAAcA,YAAW,OAC5B7E,MAAO,eAAeA,MAAM6E,YAAW,IAAI,GAG7C,OAAO,YAAY7E,MAAK,YAAaA,MAAK,KAAK,CAChD,CAEA,SAAS,eAAe,MAAO,OAAQ,CACtC,MAAO,CACN,YAAa,OAAO,MAAM,YAAa,OAAO,WAAW,EACzD,MAAO,MAAM,MAAM,KAAK,EACrB,CAAC,MAAM,MAAO,OAAO,KAAK,EAC1B,OAAO,KACX,CACD,CAEA,SAAS,YACR,YACA,aACC,CACD,OAAI,MAAM,WAAW,GAAK,MAAM,YAAY,EACpC,OAAO,YAAa,eAAe,YAAY,CAAC,EAGjD,EACR,CAEA,SAAS,OAAO,EAAG,EAAG,CACrB,OAAO,EAAI,EAAK,EAAI,IAAM,EAAK,EAAK,GAAK,EAC1C,CAEA,SAAS,eAAe,MAAO,CAC9B,OAAI,MAAM,QAAQ,KAAK,EACf,eAAe,KAAK,EAExB,SAAS,KAAK,EACV,gBAAgB,KAAK,EAEzB,OAAO,OAAU,SACb,MAGD,EACR,CAEA,SAAS,eAAe,MAAO,CAG9B,QAFI,IAAM,GACN,YACK,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAI,EAAG,IACpC,MAAM,YAAc,eAAe,MAAM,CAAC,CAAC,CAAC,GAAK,cAAgB,KAChE,MAAO,KAAO,KAClB,KAAO,aAGT,OAAO,GACR,CAEA,SAAS,gBAAgB,MAAO,CAC/B,IAAI,IAAM,GACV,QAAS,OAAO,MACX,MAAM,GAAG,IACR,MAAO,KAAO,KAClB,KAAO,KAGT,OAAO,GACR,CAIA,IAAI,aAAe,CAClB,IAAK,6BACL,KAAM,oCACP,EAEI,UAAY,QACf,onBAWD,EAII,MAAQ,QACX,iNAGA,EACD,EAEI,SAAW,SAAU,IAAK,CAAE,OAAO,MAAQ,KAAO,EAElD,cAAgB,SAAU,IAAK,CAClC,OAAO,UAAU,GAAG,GAAK,MAAM,GAAG,CACnC,EAEA,SAAS,gBAAgB,IAAK,CAC7B,GAAI,MAAM,GAAG,EACZ,MAAO,MAIR,GAAI,MAAQ,OACX,MAAO,MAET,CAEA,IAAI,oBAAsB,OAAO,OAAO,IAAI,EAC5C,SAAS,iBAAiB,IAAK,CAE9B,GAAI,CAAC,UACJ,MAAO,GAER,GAAI,cAAc,GAAG,EACpB,MAAO,GAIR,GAFA,IAAM,IAAI,YAAY,EAElB,oBAAoB,GAAG,GAAK,KAC/B,OAAO,oBAAoB,GAAG,EAE/B,IAAI,GAAK,SAAS,cAAc,GAAG,EACnC,OAAI,IAAI,QAAQ,GAAG,EAAI,GAEd,oBAAoB,GAAG,EAC9B,GAAG,cAAgB,OAAO,oBAC1B,GAAG,cAAgB,OAAO,YAGnB,oBAAoB,GAAG,EAAI,qBAAqB,KAAK,GAAG,SAAS,CAAC,CAE5E,CAEA,IAAI,gBAAkB,QAAQ,2CAA2C,EAOzE,SAAS,MAAM,GAAI,CAClB,GAAI,OAAO,IAAO,SAAU,CAC3B,IAAI,SAAW,SAAS,cAAc,EAAE,EACxC,OAAK,UAEG,SAAS,cAAc,KAAK,CAGrC,KACC,QAAO,EAET,CAIA,SAAS,gBAAgB8E,SAAS,MAAO,CACxC,IAAI,IAAM,SAAS,cAAcA,QAAO,EACxC,OAAIA,WAAY,UAIZ,MAAM,MAAQ,MAAM,KAAK,OAAS,MAAM,KAAK,MAAM,WAAa,QACnE,IAAI,aAAa,WAAY,UAAU,EAEjC,GACR,CAEA,SAAS,gBAAgB,UAAWA,SAAS,CAC5C,OAAO,SAAS,gBAAgB,aAAa,SAAS,EAAGA,QAAO,CACjE,CAEA,SAAS,eAAe,KAAM,CAC7B,OAAO,SAAS,eAAe,IAAI,CACpC,CAEA,SAAS,cAAc,KAAM,CAC5B,OAAO,SAAS,cAAc,IAAI,CACnC,CAEA,SAAS,aAAaD,YAAY,QAAS,cAAe,CACzDA,YAAW,aAAa,QAAS,aAAa,CAC/C,CAEA,SAAS,YAAY,KAAM,MAAO,CACjC,KAAK,YAAY,KAAK,CACvB,CAEA,SAAS,YAAY,KAAM,MAAO,CACjC,KAAK,YAAY,KAAK,CACvB,CAEA,SAAS,WAAW,KAAM,CACzB,OAAO,KAAK,UACb,CAEA,SAAS,YAAY,KAAM,CAC1B,OAAO,KAAK,WACb,CAEA,SAAS,QAAQ,KAAM,CACtB,OAAO,KAAK,OACb,CAEA,SAAS,eAAe,KAAM,KAAM,CACnC,KAAK,YAAc,IACpB,CAEA,SAAS,cAAc,KAAM,QAAS,CACrC,KAAK,aAAa,QAAS,EAAE,CAC9B,CAEA,IAAI,QAAuB,OAAO,OAAO,CACxC,cAAe,gBACf,gBACA,eACA,cACA,aACA,YACA,YACA,WACA,YACA,QACA,eACA,aACD,CAAC,EAIG,IAAM,CACT,OAAQ,SAAgB,EAAG,MAAO,CACjC,YAAY,KAAK,CAClB,EACA,OAAQ,SAAgB,SAAU,MAAO,CACpC,SAAS,KAAK,MAAQ,MAAM,KAAK,MACpC,YAAY,SAAU,EAAI,EAC1B,YAAY,KAAK,EAEnB,EACA,QAAS,SAAiB,MAAO,CAChC,YAAY,MAAO,EAAI,CACxB,CACD,EAEA,SAAS,YAAY,MAAO,UAAW,CACtC,IAAI,IAAM,MAAM,KAAK,IACrB,GAAK,MAAM,GAAG,EAEd,KAAI,GAAK,MAAM,QACXnD,KAAM,MAAM,mBAAqB,MAAM,IACvC,KAAO,GAAG,MACV,UACC,MAAM,QAAQ,KAAK,GAAG,CAAC,EAC1B,OAAO,KAAK,GAAG,EAAGA,IAAG,EACX,KAAK,GAAG,IAAMA,OACxB,KAAK,GAAG,EAAI,QAGT,MAAM,KAAK,SACT,MAAM,QAAQ,KAAK,GAAG,CAAC,EAEjB,KAAK,GAAG,EAAE,QAAQA,IAAG,EAAI,GAEnC,KAAK,GAAG,EAAE,KAAKA,IAAG,EAHlB,KAAK,GAAG,EAAI,CAACA,IAAG,EAMjB,KAAK,GAAG,EAAIA,KAGf,CAcA,IAAI,UAAY,IAAI,MAAM,GAAI,CAAC,EAAG,CAAC,CAAC,EAEhC,MAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,SAAS,EAEhE,SAAS,UAAU,EAAG,EAAG,CACxB,OACC,EAAE,MAAQ,EAAE,KACZ,EAAE,eAAiB,EAAE,eAEnB,EAAE,MAAQ,EAAE,KACZ,EAAE,YAAc,EAAE,WAClB,MAAM,EAAE,IAAI,IAAM,MAAM,EAAE,IAAI,GAC9B,cAAc,EAAG,CAAC,GAElB,OAAO,EAAE,kBAAkB,GAC3B,QAAQ,EAAE,aAAa,KAAK,EAIhC,CAEA,SAAS,cAAc,EAAG,EAAG,CAC5B,GAAI,EAAE,MAAQ,QAAW,MAAO,GAChC,IAAI,EACA,MAAQ,MAAM,EAAI,EAAE,IAAI,GAAK,MAAM,EAAI,EAAE,KAAK,GAAK,EAAE,KACrD,MAAQ,MAAM,EAAI,EAAE,IAAI,GAAK,MAAM,EAAI,EAAE,KAAK,GAAK,EAAE,KACzD,OAAO,QAAU,OAAS,gBAAgB,KAAK,GAAK,gBAAgB,KAAK,CAC1E,CAEA,SAAS,kBAAkBgC,UAAU,SAAU,OAAQ,CACtD,IAAI,EAAG,IACHF,KAAM,CAAC,EACX,IAAK,EAAI,SAAU,GAAK,OAAQ,EAAE,EACjC,IAAME,UAAS,CAAC,EAAE,IACd,MAAM,GAAG,IAAKF,KAAI,GAAG,EAAI,GAE9B,OAAOA,IACR,CAEA,SAAS,oBAAoB,QAAS,CACrC,IAAI,EAAG,EACH,IAAM,CAAC,EAEPvC,SAAU,QAAQ,QAClB8D,SAAU,QAAQ,QAEtB,IAAK,EAAI,EAAG,EAAI,MAAM,OAAQ,EAAE,EAE/B,IADA,IAAI,MAAM,CAAC,CAAC,EAAI,CAAC,EACZ,EAAI,EAAG,EAAI9D,SAAQ,OAAQ,EAAE,EAC7B,MAAMA,SAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAC7B,IAAI,MAAM,CAAC,CAAC,EAAE,KAAKA,SAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAK1C,SAAS,YAAY,IAAK,CACzB,OAAO,IAAI,MAAM8D,SAAQ,QAAQ,GAAG,EAAE,YAAY,EAAG,CAAC,EAAG,CAAC,EAAG,OAAW,GAAG,CAC5E,CAEA,SAAS,WAAW,SAAU,UAAW,CACxC,SAAS,WAAY,CAChB,EAAE,UAAU,YAAc,GAC7B,WAAW,QAAQ,CAErB,CACA,iBAAU,UAAY,UACf,SACR,CAEA,SAAS,WAAW,GAAI,CACvB,IAAI,OAASA,SAAQ,WAAW,EAAE,EAE9B,MAAM,MAAM,GACfA,SAAQ,YAAY,OAAQ,EAAE,CAEhC,CAEA,SAAS,oBAAoB,MAAO,OAAQ,CAC3C,MACC,CAAC,QACD,CAAC,MAAM,IACP,EACC,OAAO,gBAAgB,QACvB,OAAO,gBAAgB,KAAK,SAAU,OAAQ,CAC7C,OAAO,SAAS,MAAM,EACnB,OAAO,KAAK,MAAM,GAAG,EACrB,SAAW,MAAM,GACrB,CAAC,IAEF,OAAO,iBAAiB,MAAM,GAAG,CAEnC,CAEA,IAAI,kBAAoB,EAExB,SAAS,UACR,MACA,mBACA,UACA,OACA,OACA,WACA5E,OACC,CAWD,GAVI,MAAM,MAAM,GAAG,GAAK,MAAM,UAAU,IAMvC,MAAQ,WAAWA,MAAK,EAAI,WAAW,KAAK,GAG7C,MAAM,aAAe,CAAC,OAClB,CAAA6E,iBAAgB,MAAO,mBAAoB,UAAW,MAAM,EAIhE,KAAIhF,MAAO,MAAM,KACb0D,UAAW,MAAM,SACjB,IAAM,MAAM,IACZ,MAAM,GAAG,GAGZ,MAAM,IAAM,MAAM,GACfqB,SAAQ,gBAAgB,MAAM,GAAI,GAAG,EACrCA,SAAQ,cAAc,IAAK,KAAK,EACnC,SAAS,KAAK,EAIb,eAAe,MAAOrB,UAAU,kBAAkB,EAC9C,MAAM1D,KAAI,GACb,kBAAkB,MAAO,kBAAkB,EAE5C,OAAO,UAAW,MAAM,IAAK,MAAM,GAI1B,OAAO,MAAM,SAAS,GAChC,MAAM,IAAM+E,SAAQ,cAAc,MAAM,IAAI,EAC5C,OAAO,UAAW,MAAM,IAAK,MAAM,IAEnC,MAAM,IAAMA,SAAQ,eAAe,MAAM,IAAI,EAC7C,OAAO,UAAW,MAAM,IAAK,MAAM,GAErC,CAEA,SAASC,iBAAgB,MAAO,mBAAoB,UAAW,OAAQ,CACtE,IAAI/F,GAAI,MAAM,KACd,GAAI,MAAMA,EAAC,EAAG,CACb,IAAI,cAAgB,MAAM,MAAM,iBAAiB,GAAKA,GAAE,UAQxD,GAPI,MAAMA,GAAIA,GAAE,IAAI,GAAK,MAAMA,GAAIA,GAAE,IAAI,GACxCA,GAAE,MAAO,EAAqB,EAM3B,MAAM,MAAM,iBAAiB,EAChC,qBAAc,MAAO,kBAAkB,EACvC,OAAO,UAAW,MAAM,IAAK,MAAM,EAC/B,OAAO,aAAa,GACvB,oBAAoB,MAAO,mBAAoB,UAAW,MAAM,EAE1D,EAET,CACD,CAEA,SAAS,cAAc,MAAO,mBAAoB,CAC7C,MAAM,MAAM,KAAK,aAAa,IACjC,mBAAmB,KAAK,MAAM,mBAAoB,MAAM,KAAK,aAAa,EAC1E,MAAM,KAAK,cAAgB,MAE5B,MAAM,IAAM,MAAM,kBAAkB,IAChC,YAAY,KAAK,GACpB,kBAAkB,MAAO,kBAAkB,EAC3C,SAAS,KAAK,IAId,YAAY,KAAK,EAEjB,mBAAmB,KAAK,KAAK,EAE/B,CAEA,SAAS,oBAAoB,MAAO,mBAAoB,UAAW,OAAQ,CAO1E,QANIA,GAKA,UAAY,MACT,UAAU,mBAEhB,GADA,UAAY,UAAU,kBAAkB,OACpC,MAAMA,GAAI,UAAU,IAAI,GAAK,MAAMA,GAAIA,GAAE,UAAU,EAAG,CACzD,IAAKA,GAAI,EAAGA,GAAI,IAAI,SAAS,OAAQ,EAAEA,GACtC,IAAI,SAASA,EAAC,EAAE,UAAW,SAAS,EAErC,mBAAmB,KAAK,SAAS,EACjC,KACD,CAID,OAAO,UAAW,MAAM,IAAK,MAAM,CACpC,CAEA,SAAS,OAAO,OAAQ,IAAK,OAAQ,CAChC,MAAM,MAAM,IACX,MAAM,MAAM,EACX8F,SAAQ,WAAW,MAAM,IAAM,QAClCA,SAAQ,aAAa,OAAQ,IAAK,MAAM,EAGzCA,SAAQ,YAAY,OAAQ,GAAG,EAGlC,CAEA,SAAS,eAAe,MAAOrB,UAAU,mBAAoB,CAC5D,GAAI,MAAM,QAAQA,SAAQ,EAEzB,QAASzE,GAAI,EAAGA,GAAIyE,UAAS,OAAQ,EAAEzE,GACtC,UAAUyE,UAASzE,EAAC,EAAG,mBAAoB,MAAM,IAAK,KAAM,GAAMyE,UAAUzE,EAAC,OAEpE,YAAY,MAAM,IAAI,GAChC8F,SAAQ,YAAY,MAAM,IAAKA,SAAQ,eAAe,OAAO,MAAM,IAAI,CAAC,CAAC,CAE3E,CAEA,SAAS,YAAY,MAAO,CAC3B,KAAO,MAAM,mBACZ,MAAQ,MAAM,kBAAkB,OAEjC,OAAO,MAAM,MAAM,GAAG,CACvB,CAEA,SAAS,kBAAkB,MAAO,mBAAoB,CACrD,QAAS,IAAM,EAAG,IAAM,IAAI,OAAO,OAAQ,EAAE,IAC5C,IAAI,OAAO,GAAG,EAAE,UAAW,KAAK,EAEjC,EAAI,MAAM,KAAK,KACX,MAAM,CAAC,IACN,MAAM,EAAE,MAAM,GAAK,EAAE,OAAO,UAAW,KAAK,EAC5C,MAAM,EAAE,MAAM,GAAK,mBAAmB,KAAK,KAAK,EAEtD,CAKA,SAAS,SAAS,MAAO,CACxB,IAAI9F,GACJ,GAAI,MAAMA,GAAI,MAAM,SAAS,EAC5B8F,SAAQ,cAAc,MAAM,IAAK9F,EAAC,MAGlC,SADI,SAAW,MACR,UACF,MAAMA,GAAI,SAAS,OAAO,GAAK,MAAMA,GAAIA,GAAE,SAAS,QAAQ,GAC/D8F,SAAQ,cAAc,MAAM,IAAK9F,EAAC,EAEnC,SAAW,SAAS,OAIlB,MAAMA,GAAI,cAAc,GAC3BA,KAAM,MAAM,SACZA,KAAM,MAAM,WACZ,MAAMA,GAAIA,GAAE,SAAS,QAAQ,GAE7B8F,SAAQ,cAAc,MAAM,IAAK9F,EAAC,CAEpC,CAEA,SAAS,UAAU,UAAW,OAAQ,OAAQ,SAAU,OAAQ,mBAAoB,CACnF,KAAO,UAAY,OAAQ,EAAE,SAC5B,UAAU,OAAO,QAAQ,EAAG,mBAAoB,UAAW,OAAQ,GAAO,OAAQ,QAAQ,CAE5F,CAEA,SAAS,kBAAkB,MAAO,CACjC,IAAIA,GAAGoB,GACHL,MAAO,MAAM,KACjB,GAAI,MAAMA,KAAI,EAEb,IADI,MAAMf,GAAIe,MAAK,IAAI,GAAK,MAAMf,GAAIA,GAAE,OAAO,GAAKA,GAAE,KAAK,EACtDA,GAAI,EAAGA,GAAI,IAAI,QAAQ,OAAQ,EAAEA,GAAK,IAAI,QAAQA,EAAC,EAAE,KAAK,EAEhE,GAAI,MAAMA,GAAI,MAAM,QAAQ,EAC3B,IAAKoB,GAAI,EAAGA,GAAI,MAAM,SAAS,OAAQ,EAAEA,GACxC,kBAAkB,MAAM,SAASA,EAAC,CAAC,CAGtC,CAEA,SAAS,aAAa,OAAQ,SAAU,OAAQ,CAC/C,KAAO,UAAY,OAAQ,EAAE,SAAU,CACtC,IAAI,GAAK,OAAO,QAAQ,EACpB,MAAM,EAAE,IACP,MAAM,GAAG,GAAG,GACf,0BAA0B,EAAE,EAC5B,kBAAkB,EAAE,GAEpB,WAAW,GAAG,GAAG,EAGpB,CACD,CAEA,SAAS,0BAA0B,MAAO,GAAI,CAC7C,GAAI,MAAM,EAAE,GAAK,MAAM,MAAM,IAAI,EAAG,CACnC,IAAIpB,GACA,UAAY,IAAI,OAAO,OAAS,EAapC,IAZI,MAAM,EAAE,EAGX,GAAG,WAAa,UAGhB,GAAK,WAAW,MAAM,IAAK,SAAS,EAGjC,MAAMA,GAAI,MAAM,iBAAiB,GAAK,MAAMA,GAAIA,GAAE,MAAM,GAAK,MAAMA,GAAE,IAAI,GAC5E,0BAA0BA,GAAG,EAAE,EAE3BA,GAAI,EAAGA,GAAI,IAAI,OAAO,OAAQ,EAAEA,GACpC,IAAI,OAAOA,EAAC,EAAE,MAAO,EAAE,EAEpB,MAAMA,GAAI,MAAM,KAAK,IAAI,GAAK,MAAMA,GAAIA,GAAE,MAAM,EACnDA,GAAE,MAAO,EAAE,EAEX,GAAG,CAEL,MACC,WAAW,MAAM,GAAG,CAEtB,CAEA,SAAS,eAAe,UAAW,MAAO,MAAO,mBAAoB,WAAY,CAkBhF,QAjBI,YAAc,EACd,YAAc,EACd,UAAY,MAAM,OAAS,EAC3B,cAAgB,MAAM,CAAC,EACvB,YAAc,MAAM,SAAS,EAC7B,UAAY,MAAM,OAAS,EAC3B,cAAgB,MAAM,CAAC,EACvB,YAAc,MAAM,SAAS,EAC7B,YAAa,SAAU,YAAa,OAKpC,QAAU,CAAC,WAIR,aAAe,WAAa,aAAe,WAC7C,QAAQ,aAAa,EACxB,cAAgB,MAAM,EAAE,WAAW,EACzB,QAAQ,WAAW,EAC7B,YAAc,MAAM,EAAE,SAAS,EACrB,UAAU,cAAe,aAAa,GAChD,WAAW,cAAe,cAAe,mBAAoB,MAAO,WAAW,EAC/E,cAAgB,MAAM,EAAE,WAAW,EACnC,cAAgB,MAAM,EAAE,WAAW,GACzB,UAAU,YAAa,WAAW,GAC5C,WAAW,YAAa,YAAa,mBAAoB,MAAO,SAAS,EACzE,YAAc,MAAM,EAAE,SAAS,EAC/B,YAAc,MAAM,EAAE,SAAS,GACrB,UAAU,cAAe,WAAW,GAC9C,WAAW,cAAe,YAAa,mBAAoB,MAAO,SAAS,EAC3E,SAAW8F,SAAQ,aAAa,UAAW,cAAc,IAAKA,SAAQ,YAAY,YAAY,GAAG,CAAC,EAClG,cAAgB,MAAM,EAAE,WAAW,EACnC,YAAc,MAAM,EAAE,SAAS,GACrB,UAAU,YAAa,aAAa,GAC9C,WAAW,YAAa,cAAe,mBAAoB,MAAO,WAAW,EAC7E,SAAWA,SAAQ,aAAa,UAAW,YAAY,IAAK,cAAc,GAAG,EAC7E,YAAc,MAAM,EAAE,SAAS,EAC/B,cAAgB,MAAM,EAAE,WAAW,IAE/B,QAAQ,WAAW,IAAK,YAAc,kBAAkB,MAAO,YAAa,SAAS,GACzF,SAAW,MAAM,cAAc,GAAG,EAC/B,YAAY,cAAc,GAAG,EAC7B,aAAa,cAAe,MAAO,YAAa,SAAS,EACxD,QAAQ,QAAQ,EACnB,UAAU,cAAe,mBAAoB,UAAW,cAAc,IAAK,GAAO,MAAO,WAAW,GAEpG,YAAc,MAAM,QAAQ,EACxB,UAAU,YAAa,aAAa,GACvC,WAAW,YAAa,cAAe,mBAAoB,MAAO,WAAW,EAC7E,MAAM,QAAQ,EAAI,OAClB,SAAWA,SAAQ,aAAa,UAAW,YAAY,IAAK,cAAc,GAAG,GAG7E,UAAU,cAAe,mBAAoB,UAAW,cAAc,IAAK,GAAO,MAAO,WAAW,GAGtG,cAAgB,MAAM,EAAE,WAAW,GAGjC,YAAc,WACjB,OAAS,QAAQ,MAAM,UAAY,CAAC,CAAC,EAAI,KAAO,MAAM,UAAY,CAAC,EAAE,IACrE,UAAU,UAAW,OAAQ,MAAO,YAAa,UAAW,kBAAkB,GACpE,YAAc,WACxB,aAAa,MAAO,YAAa,SAAS,CAE5C,CAEA,SAAS,mBAAmBrB,UAAU,CAErC,QADI,SAAW,CAAC,EACPzE,GAAI,EAAGA,GAAIyE,UAAS,OAAQzE,KAAK,CACzC,IAAI,MAAQyE,UAASzE,EAAC,EAClB,IAAM,MAAM,IACZ,MAAM,GAAG,IACR,SAAS,GAAG,EACf,KACE,6BAA+B,IAAM,qCACtC,MAAM,OACP,EAEA,SAAS,GAAG,EAAI,GAGnB,CACD,CAEA,SAAS,aAAa,KAAM,MAAO,MAAO,IAAK,CAC9C,QAASA,GAAI,MAAOA,GAAI,IAAKA,KAAK,CACjC,IAAI,EAAI,MAAMA,EAAC,EACf,GAAI,MAAM,CAAC,GAAK,UAAU,KAAM,CAAC,EAAK,OAAOA,EAC9C,CACD,CAEA,SAAS,WACR,SACA,MACA,mBACA,WACAkB,OACA,WACC,CACD,GAAI,WAAa,MAIjB,CAAI,MAAM,MAAM,GAAG,GAAK,MAAM,UAAU,IAEvC,MAAQ,WAAWA,MAAK,EAAI,WAAW,KAAK,GAG7C,IAAI,IAAM,MAAM,IAAM,SAAS,IAE/B,GAAI,OAAO,SAAS,kBAAkB,EAAG,CACpC,MAAM,MAAM,aAAa,QAAQ,EACpC,QAAQ,SAAS,IAAK,MAAO,kBAAkB,EAE/C,MAAM,mBAAqB,GAE5B,MACD,CAMA,GAAI,OAAO,MAAM,QAAQ,GACxB,OAAO,SAAS,QAAQ,GACxB,MAAM,MAAQ,SAAS,MACtB,OAAO,MAAM,QAAQ,GAAK,OAAO,MAAM,MAAM,GAC7C,CACD,MAAM,kBAAoB,SAAS,kBACnC,MACD,CAEA,IAAIlB,GACAe,MAAO,MAAM,KACb,MAAMA,KAAI,GAAK,MAAMf,GAAIe,MAAK,IAAI,GAAK,MAAMf,GAAIA,GAAE,QAAQ,GAC9DA,GAAE,SAAU,KAAK,EAGlB,IAAI,MAAQ,SAAS,SACjB,GAAK,MAAM,SACf,GAAI,MAAMe,KAAI,GAAK,YAAY,KAAK,EAAG,CACtC,IAAKf,GAAI,EAAGA,GAAI,IAAI,OAAO,OAAQ,EAAEA,GAAK,IAAI,OAAOA,EAAC,EAAE,SAAU,KAAK,EACnE,MAAMA,GAAIe,MAAK,IAAI,GAAK,MAAMf,GAAIA,GAAE,MAAM,GAAKA,GAAE,SAAU,KAAK,CACrE,CACI,QAAQ,MAAM,IAAI,EACjB,MAAM,KAAK,GAAK,MAAM,EAAE,EACvB,QAAU,IAAM,eAAe,IAAK,MAAO,GAAI,mBAAoB,UAAU,EACvE,MAAM,EAAE,GAEd,MAAM,SAAS,IAAI,GAAK8F,SAAQ,eAAe,IAAK,EAAE,EAC1D,UAAU,IAAK,KAAM,GAAI,EAAG,GAAG,OAAS,EAAG,kBAAkB,GACnD,MAAM,KAAK,EACrB,aAAa,MAAO,EAAG,MAAM,OAAS,CAAC,EAC7B,MAAM,SAAS,IAAI,GAC7BA,SAAQ,eAAe,IAAK,EAAE,EAErB,SAAS,OAAS,MAAM,MAClCA,SAAQ,eAAe,IAAK,MAAM,IAAI,EAEnC,MAAM/E,KAAI,GACT,MAAMf,GAAIe,MAAK,IAAI,GAAK,MAAMf,GAAIA,GAAE,SAAS,GAAKA,GAAE,SAAU,KAAK,EAEzE,CAEA,SAAS,iBAAiB,MAAOwF,OAAO,QAAS,CAGhD,GAAI,OAAO,OAAO,GAAK,MAAM,MAAM,MAAM,EACxC,MAAM,OAAO,KAAK,cAAgBA,WAElC,SAASxF,GAAI,EAAGA,GAAIwF,OAAM,OAAQ,EAAExF,GACnCwF,OAAMxF,EAAC,EAAE,KAAK,KAAK,OAAOwF,OAAMxF,EAAC,CAAC,CAGrC,CAEA,IAAI,gBAAkB,GAKlB,iBAAmB,QAAQ,yCAAyC,EAGxE,SAAS,QAAQ,IAAK,MAAO,mBAAoB,OAAQ,CACxD,IAAIA,GACA,IAAM,MAAM,IACZe,MAAO,MAAM,KACb0D,UAAW,MAAM,SAIrB,GAHA,OAAS,QAAW1D,OAAQA,MAAK,IACjC,MAAM,IAAM,IAER,OAAO,MAAM,SAAS,GAAK,MAAM,MAAM,YAAY,EACtD,aAAM,mBAAqB,GACpB,GAIR,GAAI,MAAMA,KAAI,IACT,MAAMf,GAAIe,MAAK,IAAI,GAAK,MAAMf,GAAIA,GAAE,IAAI,GAAKA,GAAE,MAAO,EAAoB,EAC1E,MAAMA,GAAI,MAAM,iBAAiB,GAEpC,qBAAc,MAAO,kBAAkB,EAChC,GAGT,GAAI,MAAM,GAAG,EAAG,CACf,GAAI,MAAMyE,SAAQ,EAEjB,GAAI,CAAC,IAAI,cAAc,EACtB,eAAe,MAAOA,UAAU,kBAAkB,UAG9C,MAAMzE,GAAIe,KAAI,GAAK,MAAMf,GAAIA,GAAE,QAAQ,GAAK,MAAMA,GAAIA,GAAE,SAAS,GACpE,GAAIA,KAAM,IAAI,UAIb,MAAO,OAEF,CAIN,QAFI,cAAgB,GAChB,UAAY,IAAI,WACX,IAAM,EAAG,IAAMyE,UAAS,OAAQ,MAAO,CAC/C,GAAI,CAAC,WAAa,CAAC,QAAQ,UAAWA,UAAS,GAAG,EAAG,mBAAoB,MAAM,EAAG,CACjF,cAAgB,GAChB,KACD,CACA,UAAY,UAAU,WACvB,CAGA,GAAI,CAAC,eAAiB,UAIrB,MAAO,EAET,CAGF,GAAI,MAAM1D,KAAI,EAAG,CAChB,IAAI,WAAa,GACjB,QAAS,OAAOA,MACf,GAAI,CAAC,iBAAiB,GAAG,EAAG,CAC3B,WAAa,GACb,kBAAkB,MAAO,kBAAkB,EAC3C,KACD,CAEG,CAAC,YAAcA,MAAK,OAEvB,SAASA,MAAK,KAAQ,CAExB,CACD,MAAW,IAAI,OAAS,MAAM,OAC7B,IAAI,KAAO,MAAM,MAElB,MAAO,EACR,CAEA,SAAS,gBAAgB,KAAM,MAAO,OAAQ,CAC7C,OAAI,MAAM,MAAM,GAAG,EACX,MAAM,IAAI,QAAQ,eAAe,IAAM,GAC7C,CAAC,oBAAoB,MAAO,MAAM,GAClC,MAAM,IAAI,YAAY,KAAO,KAAK,SAAW,KAAK,QAAQ,YAAY,GAGhE,KAAK,YAAc,MAAM,UAAY,EAAI,EAElD,CAEA,OAAO,SAAe,SAAU,MAAO,UAAW,WAAY,CAC7D,GAAI,QAAQ,KAAK,EAAG,CACf,MAAM,QAAQ,GAAK,kBAAkB,QAAQ,EACjD,MACD,CAEA,IAAI,eAAiB,GACjB,mBAAqB,CAAC,EAE1B,GAAI,QAAQ,QAAQ,EAEnB,eAAiB,GACjB,UAAU,MAAO,kBAAkB,MAC7B,CACN,IAAI,cAAgB,MAAM,SAAS,QAAQ,EAC3C,GAAI,CAAC,eAAiB,UAAU,SAAU,KAAK,EAE9C,WAAW,SAAU,MAAO,mBAAoB,KAAM,KAAM,UAAU,MAChE,CACN,GAAI,cAAe,CAQlB,GAJI,SAAS,WAAa,GAAK,SAAS,aAAa,QAAQ,IAC5D,SAAS,gBAAgB,QAAQ,EACjC,UAAY,IAET,OAAO,SAAS,GACf,QAAQ,SAAU,MAAO,kBAAkB,EAC9C,wBAAiB,MAAO,mBAAoB,EAAI,EACzC,SAKT,SAAW,YAAY,QAAQ,CAChC,CAGA,IAAI,OAAS,SAAS,IAClB,UAAY+E,SAAQ,WAAW,MAAM,EAczC,GAXA,UACC,MACA,mBAIA,OAAO,SAAW,KAAO,UACzBA,SAAQ,YAAY,MAAM,CAC3B,EAGI,MAAM,MAAM,MAAM,EAGrB,QAFI,SAAW,MAAM,OACjB,UAAY,YAAY,KAAK,EAC1B,UAAU,CAChB,QAAS9F,GAAI,EAAGA,GAAI,IAAI,QAAQ,OAAQ,EAAEA,GACzC,IAAI,QAAQA,EAAC,EAAE,QAAQ,EAGxB,GADA,SAAS,IAAM,MAAM,IACjB,UAAW,CACd,QAAS,IAAM,EAAG,IAAM,IAAI,OAAO,OAAQ,EAAE,IAC5C,IAAI,OAAO,GAAG,EAAE,UAAW,QAAQ,EAKpC,IAAIgG,QAAS,SAAS,KAAK,KAAK,OAChC,GAAIA,QAAO,OAEV,QAAS,IAAM,EAAG,IAAMA,QAAO,IAAI,OAAQ,MAC1CA,QAAO,IAAI,GAAG,EAAE,CAGnB,MACC,YAAY,QAAQ,EAErB,SAAW,SAAS,MACrB,CAIG,MAAM,SAAS,EAClB,aAAa,CAAC,QAAQ,EAAG,EAAG,CAAC,EACnB,MAAM,SAAS,GAAG,GAC5B,kBAAkB,QAAQ,CAE5B,CACD,CAEA,wBAAiB,MAAO,mBAAoB,cAAc,EACnD,MAAM,GACd,CACD,CAIA,IAAI,WAAa,CAChB,OAAQ,iBACR,OAAQ,iBACR,QAAS,SAA0B,MAAO,CACzC,iBAAiB,MAAO,SAAS,CAClC,CACD,EAEA,SAAS,iBAAiB,SAAU,MAAO,EACtC,SAAS,KAAK,YAAc,MAAM,KAAK,aAC1C,QAAQ,SAAU,KAAK,CAEzB,CAEA,SAAS,QAAQ,SAAU,MAAO,CACjC,IAAI,SAAW,WAAa,UACxB,UAAY,QAAU,UACtB,QAAU,sBAAsB,SAAS,KAAK,WAAY,SAAS,OAAO,EAC1E,QAAU,sBAAsB,MAAM,KAAK,WAAY,MAAM,OAAO,EAEpE,eAAiB,CAAC,EAClB,kBAAoB,CAAC,EAErB,IAAK,OAAQ,IACjB,IAAK,OAAO,QACX,OAAS,QAAQ,GAAG,EACpB,IAAM,QAAQ,GAAG,EACZ,QAQJ,IAAI,SAAW,OAAO,MACtB,IAAI,OAAS,OAAO,IACpB,WAAW,IAAK,SAAU,MAAO,QAAQ,EACrC,IAAI,KAAO,IAAI,IAAI,kBACtB,kBAAkB,KAAK,GAAG,IAV3B,WAAW,IAAK,OAAQ,MAAO,QAAQ,EACnC,IAAI,KAAO,IAAI,IAAI,UACtB,eAAe,KAAK,GAAG,GAa1B,GAAI,eAAe,OAAQ,CAC1B,IAAI,WAAa,UAAY,CAC5B,QAAS,EAAI,EAAG,EAAI,eAAe,OAAQ,IAC1C,WAAW,eAAe,CAAC,EAAG,WAAY,MAAO,QAAQ,CAE3D,EACI,SACH,eAAe,MAAO,SAAU,UAAU,EAE1C,WAAW,CAEb,CAUA,GARI,kBAAkB,QACrB,eAAe,MAAO,YAAa,UAAY,CAC9C,QAAS,EAAI,EAAG,EAAI,kBAAkB,OAAQ,IAC7C,WAAW,kBAAkB,CAAC,EAAG,mBAAoB,MAAO,QAAQ,CAEtE,CAAC,EAGE,CAAC,SACJ,IAAK,OAAO,QACN,QAAQ,GAAG,GAEf,WAAW,QAAQ,GAAG,EAAG,SAAU,SAAU,SAAU,SAAS,CAIpE,CAEA,IAAI,eAAiB,OAAO,OAAO,IAAI,EAEvC,SAAS,sBACR,KACA,GACC,CACD,IAAI,IAAM,OAAO,OAAO,IAAI,EAC5B,GAAI,CAAC,KAEJ,OAAO,IAER,IAAI,EAAG,IACP,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,IAC5B,IAAM,KAAK,CAAC,EACP,IAAI,YAER,IAAI,UAAY,gBAEjB,IAAI,cAAc,GAAG,CAAC,EAAI,IAC1B,IAAI,IAAM,aAAa,GAAG,SAAU,aAAc,IAAI,KAAM,EAAI,EAGjE,OAAO,GACR,CAEA,SAAS,cAAc,IAAK,CAC3B,OAAO,IAAI,SAAa,IAAI,KAAQ,IAAO,OAAO,KAAK,IAAI,WAAa,CAAC,CAAC,EAAE,KAAK,GAAG,CACrF,CAEA,SAAS,WAAW,IAAK,KAAM,MAAO,SAAU,UAAW,CAC1D,IAAI,GAAK,IAAI,KAAO,IAAI,IAAI,IAAI,EAChC,GAAI,GACH,GAAI,CACH,GAAG,MAAM,IAAK,IAAK,MAAO,SAAU,SAAS,CAC9C,OAAS,EAAG,CACX,YAAY,EAAG,MAAM,QAAU,aAAgB,IAAI,KAAQ,IAAM,KAAO,OAAQ,CACjF,CAEF,CAEA,IAAI,YAAc,CACjB,IACA,UACD,EAIA,SAAS,YAAY,SAAU,MAAO,CACrC,IAAIP,MAAO,MAAM,iBACjB,GAAI,QAAMA,KAAI,GAAKA,MAAK,KAAK,QAAQ,eAAiB,KAGlD,UAAQ,SAAS,KAAK,KAAK,GAAK,QAAQ,MAAM,KAAK,KAAK,GAG5D,KAAI,IAAK,IAAK,IACV,IAAM,MAAM,IACZ,SAAW,SAAS,KAAK,OAAS,CAAC,EACnCP,OAAQ,MAAM,KAAK,OAAS,CAAC,EAE7B,MAAMA,OAAM,MAAM,IACrBA,OAAQ,MAAM,KAAK,MAAQ,OAAO,CAAC,EAAGA,MAAK,GAG5C,IAAK,OAAOA,OACX,IAAMA,OAAM,GAAG,EACf,IAAM,SAAS,GAAG,EACd,MAAQ,KACX,QAAQ,IAAK,IAAK,IAAK,MAAM,KAAK,GAAG,GAMlC,MAAQ,SAAWA,OAAM,QAAU,SAAS,OAChD,QAAQ,IAAK,QAASA,OAAM,KAAK,EAElC,IAAK,OAAO,SACP,QAAQA,OAAM,GAAG,CAAC,IACjB,QAAQ,GAAG,EACd,IAAI,kBAAkB,QAAS,aAAa,GAAG,CAAC,EACrC,iBAAiB,GAAG,GAC/B,IAAI,gBAAgB,GAAG,GAI3B,CAEA,SAAS,QAAQ,GAAI,IAAK,MAAO,QAAS,CACrC,SAAW,GAAG,QAAQ,QAAQ,GAAG,EAAI,GACxC,YAAY,GAAI,IAAK,KAAK,EAChB,cAAc,GAAG,EAGvB,iBAAiB,KAAK,EACzB,GAAG,gBAAgB,GAAG,GAItB,MAAQ,MAAQ,mBAAqB,GAAG,UAAY,QACjD,OACA,IACH,GAAG,aAAa,IAAK,KAAK,GAEjB,iBAAiB,GAAG,EAC9B,GAAG,aAAa,IAAK,uBAAuB,IAAK,KAAK,CAAC,EAC7C,QAAQ,GAAG,EACjB,iBAAiB,KAAK,EACzB,GAAG,kBAAkB,QAAS,aAAa,GAAG,CAAC,EAE/C,GAAG,eAAe,QAAS,IAAK,KAAK,EAGtC,YAAY,GAAI,IAAK,KAAK,CAE5B,CAEA,SAAS,YAAY,GAAI,IAAK,MAAO,CACpC,GAAI,iBAAiB,KAAK,EACzB,GAAG,gBAAgB,GAAG,MAChB,CAKN,GACC,MAAQ,CAAC,OACT,GAAG,UAAY,YACf,MAAQ,eAAiB,QAAU,IAAM,CAAC,GAAG,OAC5C,CACD,IAAI,QAAU,SAAU,EAAG,CAC1B,EAAE,yBAAyB,EAC3B,GAAG,oBAAoB,QAAS,OAAO,CACxC,EACA,GAAG,iBAAiB,QAAS,OAAO,EAEpC,GAAG,OAAS,EACb,CACA,GAAG,aAAa,IAAK,KAAK,CAC3B,CACD,CAEA,IAAI,MAAQ,CACX,OAAQ,YACR,OAAQ,WACT,EAIA,SAAS,YAAY,SAAU,MAAO,CACrC,IAAI,GAAK,MAAM,IACXnE,MAAO,MAAM,KACb,QAAU,SAAS,KACvB,GACC,UAAQA,MAAK,WAAW,GACxB,QAAQA,MAAK,KAAK,IACjB,QAAQ,OAAO,GACd,QAAQ,QAAQ,WAAW,GAC3B,QAAQ,QAAQ,KAAK,IAOxB,KAAI,IAAM,iBAAiB,KAAK,EAG5B,gBAAkB,GAAG,mBACrB,MAAM,eAAe,IACxB,IAAM,OAAO,IAAK,eAAe,eAAe,CAAC,GAI9C,MAAQ,GAAG,aACd,GAAG,aAAa,QAAS,GAAG,EAC5B,GAAG,WAAa,KAElB,CAEA,IAAI,MAAQ,CACX,OAAQ,YACR,OAAQ,WACT,EAII,oBAAsB,gBAE1B,SAAS,aAAa,IAAK,CAC1B,IAAI,SAAW,GACX,SAAW,GACX,iBAAmB,GACnB,QAAU,GACV,MAAQ,EACR,OAAS,EACT,MAAQ,EACR,gBAAkB,EAClB,EAAGkF,MAAM,EAAG,WAAY,QAE5B,IAAK,EAAI,EAAG,EAAI,IAAI,OAAQ,IAG3B,GAFAA,MAAO,EACP,EAAI,IAAI,WAAW,CAAC,EAChB,SACC,IAAM,IAAQA,QAAS,KAAQ,SAAW,YACpC,SACN,IAAM,IAAQA,QAAS,KAAQ,SAAW,YACpC,iBACN,IAAM,IAAQA,QAAS,KAAQ,iBAAmB,YAC5C,QACN,IAAM,IAAQA,QAAS,KAAQ,QAAU,YAE7C,IAAM,KACN,IAAI,WAAW,EAAI,CAAC,IAAM,KAC1B,IAAI,WAAW,EAAI,CAAC,IAAM,KAC1B,CAAC,OAAS,CAAC,QAAU,CAAC,MAElB,aAAe,QAElB,gBAAkB,EAAI,EACtB,WAAa,IAAI,MAAM,EAAG,CAAC,EAAE,KAAK,GAElC,WAAW,MAEN,CACN,OAAQ,EAAG,CACV,IAAK,IAAM,SAAW,GAAM,MAC5B,IAAK,IAAM,SAAW,GAAM,MAC5B,IAAK,IAAM,iBAAmB,GAAM,MACpC,IAAK,IAAM,QAAS,MACpB,IAAK,IAAM,QAAS,MACpB,IAAK,IAAM,SAAU,MACrB,IAAK,IAAM,SAAU,MACrB,IAAK,KAAM,QAAS,MACpB,IAAK,KAAM,QAAS,KACrB,CACA,GAAI,IAAM,GAAM,CAIf,QAHI,EAAI,EAAI,EACRC,GAAK,OAEF,GAAK,IACXA,GAAI,IAAI,OAAO,CAAC,EACZA,KAAM,KAFI,IAEd,EAEG,CAACA,IAAK,CAAC,oBAAoB,KAAKA,EAAC,KACpC,QAAU,GAEZ,CACD,CAGG,aAAe,OAClB,WAAa,IAAI,MAAM,EAAG,CAAC,EAAE,KAAK,EACxB,kBAAoB,GAC9B,WAAW,EAGZ,SAAS,YAAa,EACpB,UAAY,QAAU,CAAC,IAAI,KAAK,IAAI,MAAM,gBAAiB,CAAC,EAAE,KAAK,CAAC,EACrE,gBAAkB,EAAI,CACvB,CAEA,GAAI,QACH,IAAK,EAAI,EAAG,EAAI,QAAQ,OAAQ,IAC/B,WAAa,WAAW,WAAY,QAAQ,CAAC,CAAC,EAIhD,OAAO,UACR,CAEA,SAAS,WAAW,IAAKR,QAAQ,CAChC,IAAI,EAAIA,QAAO,QAAQ,GAAG,EAC1B,GAAI,EAAI,EAEP,MAAQ,OAAUA,QAAS,MAAS,IAAM,IAE1C,IAAI,KAAOA,QAAO,MAAM,EAAG,CAAC,EACxB,KAAOA,QAAO,MAAM,EAAI,CAAC,EAC7B,MAAQ,OAAU,KAAO,MAAS,KAAO,OAAS,IAAM,IAAM,KAAO,KAEvE,CAOA,SAAS,SAAS,IAAKpD,OAAO,CAC7B,QAAQ,MAAO,mBAAqB,GAAI,CACzC,CAGA,SAAS,oBACRN,SACA,IACC,CACD,OAAOA,SACJA,SAAQ,IAAI,SAAU,EAAG,CAAE,OAAO,EAAE,GAAG,CAAG,CAAC,EAAE,OAAO,SAAU,EAAG,CAAE,OAAO,CAAG,CAAC,EAC9E,CAAC,CACL,CAEA,SAAS,QAAQ,GAAI,KAAM,MAAOM,OAAO,QAAS,EAChD,GAAG,QAAU,GAAG,MAAQ,CAAC,IAAI,KAAK,aAAa,CAAE,KAAY,MAAc,OAAiB,EAAGA,MAAK,CAAC,EACtG,GAAG,MAAQ,EACZ,CAEA,SAAS,QAAQ,GAAI,KAAM,MAAOA,OAAO,QAAS,CACjD,IAAI4C,OAAQ,QACR,GAAG,eAAiB,GAAG,aAAe,CAAC,GACvC,GAAG,QAAU,GAAG,MAAQ,CAAC,GAC7BA,OAAM,KAAK,aAAa,CAAE,KAAY,MAAc,OAAiB,EAAG5C,MAAK,CAAC,EAC9E,GAAG,MAAQ,EACZ,CAGA,SAAS,WAAW,GAAI,KAAM,MAAOA,OAAO,CAC3C,GAAG,SAAS,IAAI,EAAI,MACpB,GAAG,UAAU,KAAK,aAAa,CAAE,KAAY,KAAa,EAAGA,MAAK,CAAC,CACpE,CAEA,SAAS,aACR,GACA,KACA,QACA,MACA,IACA,aACA,UACAA,OACC,EACA,GAAG,aAAe,GAAG,WAAa,CAAC,IAAI,KAAK,aAAa,CACzD,KACA,QACA,MACA,IACA,aACA,SACD,EAAGA,MAAK,CAAC,EACT,GAAG,MAAQ,EACZ,CAEA,SAAS,sBAAsB,OAAQ,KAAM,QAAS,CACrD,OAAO,QACH,MAAQ,KAAO,KAAQ,OAAS,KACjC,OAAS,IACb,CAEA,SAAS,WACR,GACA,KACA,MACA,UACA,UACAD,MACAC,OACA,QACC,CACD,UAAY,WAAa,YAUrB,UAAU,MACT,QACH,KAAO,IAAM,KAAO,8BAAgC,KAAO,IACjD,OAAS,UACnB,KAAO,cACP,OAAO,UAAU,OAER,UAAU,SAChB,QACH,KAAO,IAAM,KAAO,0BAA4B,KAAO,IAC7C,OAAS,UACnB,KAAO,YAKL,UAAU,UACb,OAAO,UAAU,QACjB,KAAO,sBAAsB,IAAK,KAAM,OAAO,GAE5C,UAAU,OACb,OAAO,UAAU,KACjB,KAAO,sBAAsB,IAAK,KAAM,OAAO,GAG5C,UAAU,UACb,OAAO,UAAU,QACjB,KAAO,sBAAsB,IAAK,KAAM,OAAO,GAGhD,IAAI6D,QACA,UAAU,QACb,OAAO,UAAU,OACjBA,QAAS,GAAG,eAAiB,GAAG,aAAe,CAAC,IAEhDA,QAAS,GAAG,SAAW,GAAG,OAAS,CAAC,GAGrC,IAAI,WAAa,aAAa,CAAE,MAAO,MAAM,KAAK,EAAG,OAAiB,EAAG7D,MAAK,EAC1E,YAAc,cACjB,WAAW,UAAY,WAGxB,IAAI,SAAW6D,QAAO,IAAI,EAEtB,MAAM,QAAQ,QAAQ,EACzB,UAAY,SAAS,QAAQ,UAAU,EAAI,SAAS,KAAK,UAAU,EACzD,SACVA,QAAO,IAAI,EAAI,UAAY,CAAC,WAAY,QAAQ,EAAI,CAAC,SAAU,UAAU,EAEzEA,QAAO,IAAI,EAAI,WAGhB,GAAG,MAAQ,EACZ,CAEA,SAAS,kBACR,GACA,KACC,CACD,OAAO,GAAG,YAAY,IAAM,IAAI,GAC/B,GAAG,YAAY,UAAY,IAAI,GAC/B,GAAG,YAAY,IAAI,CACrB,CAEA,SAAS,eACR,GACA,KACA,UACC,CACD,IAAI,aACH,iBAAiB,GAAI,IAAM,IAAI,GAC/B,iBAAiB,GAAI,UAAY,IAAI,EACtC,GAAI,cAAgB,KACnB,OAAO,aAAa,YAAY,EAC1B,GAAI,YAAc,GAAO,CAC/B,IAAI,YAAc,iBAAiB,GAAI,IAAI,EAC3C,GAAI,aAAe,KAClB,OAAO,KAAK,UAAU,WAAW,CAEnC,CACD,CAMA,SAAS,iBACR,GACA,KACA,cACC,CACD,IAAI7E,KACJ,IAAKA,KAAM,GAAG,SAAS,IAAI,IAAM,MAEhC,QADI,KAAO,GAAG,UACL,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IACvC,GAAI,KAAK,CAAC,EAAE,OAAS,KAAM,CAC1B,KAAK,OAAO,EAAG,CAAC,EAChB,KACD,EAGF,OAAI,eACH,OAAO,GAAG,SAAS,IAAI,EAEjBA,IACR,CAEA,SAAS,wBACR,GACA,KACC,CAED,QADI,KAAO,GAAG,UACL,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAAK,CAC5C,IAAIqE,MAAO,KAAK,CAAC,EACjB,GAAI,KAAK,KAAKA,MAAK,IAAI,EACtB,YAAK,OAAO,EAAG,CAAC,EACTA,KAET,CACD,CAEA,SAAS,aACR,KACArD,OACC,CACD,OAAIA,SACCA,OAAM,OAAS,OAClB,KAAK,MAAQA,OAAM,OAEhBA,OAAM,KAAO,OAChB,KAAK,IAAMA,OAAM,MAGZ,IACR,CAOA,SAAS,kBACR,GACA,MACA,UACC,CACD,IAAIG,KAAM,WAAa,CAAC,EACpB,OAASA,KAAI,OACb,KAAOA,KAAI,KAEX,oBAAsB,MACtB,gBAAkB,oBAClB,OACH,gBACC,WAAa,oBAAsB,kBAC5B,oBAAsB,YACtB,oBAAsB,KAE3B,SACH,gBAAkB,MAAQ,gBAAkB,KAE7C,IAAI,WAAa,kBAAkB,MAAO,eAAe,EAEzD,GAAG,MAAQ,CACV,MAAQ,IAAM,MAAQ,IACtB,WAAY,KAAK,UAAU,KAAK,EAChC,SAAW,aAAe,oBAAsB,MAAQ,WAAa,GACtE,CACD,CAKA,SAAS,kBACR,MACA,WACC,CACD,IAAI,IAAM,WAAW,KAAK,EAC1B,OAAI,IAAI,MAAQ,KACP,MAAQ,IAAM,WAEd,QAAW,IAAI,IAAO,KAAQ,IAAI,IAAO,KAAO,WAAa,GAEvE,CAiBA,IAAI,IAAK,IAAK,IAAK,QAAS,cAAe,iBAI3C,SAAS,WAAWnB,KAAK,CAMxB,GAHAA,KAAMA,KAAI,KAAK,EACf,IAAMA,KAAI,OAENA,KAAI,QAAQ,GAAG,EAAI,GAAKA,KAAI,YAAY,GAAG,EAAI,IAAM,EAExD,OADA,QAAUA,KAAI,YAAY,GAAG,EACzB,QAAU,GACN,CACN,IAAKA,KAAI,MAAM,EAAG,OAAO,EACzB,IAAK,IAAMA,KAAI,MAAM,QAAU,CAAC,EAAI,GACrC,EAEO,CACN,IAAKA,KACL,IAAK,IACN,EAOF,IAHA,IAAMA,KACN,QAAU,cAAgB,iBAAmB,EAEtC,CAAC,IAAI,GACX,IAAM,KAAK,EAEP,cAAc,GAAG,EACpB,YAAY,GAAG,EACL,MAAQ,IAClB,aAAa,GAAG,EAIlB,MAAO,CACN,IAAKA,KAAI,MAAM,EAAG,aAAa,EAC/B,IAAKA,KAAI,MAAM,cAAgB,EAAG,gBAAgB,CACnD,CACD,CAEA,SAAS,MAAO,CACf,OAAO,IAAI,WAAW,EAAE,OAAO,CAChC,CAEA,SAAS,KAAM,CACd,OAAO,SAAW,GACnB,CAEA,SAAS,cAAc8B,KAAK,CAC3B,OAAOA,OAAQ,IAAQA,OAAQ,EAChC,CAEA,SAAS,aAAaA,KAAK,CAC1B,IAAI,UAAY,EAEhB,IADA,cAAgB,QACT,CAAC,IAAI,GAAG,CAEd,GADAA,KAAM,KAAK,EACP,cAAcA,IAAG,EAAG,CACvB,YAAYA,IAAG,EACf,QACD,CAGA,GAFIA,OAAQ,IAAQ,YAChBA,OAAQ,IAAQ,YAChB,YAAc,EAAG,CACpB,iBAAmB,QACnB,KACD,CACD,CACD,CAEA,SAAS,YAAYA,KAAK,CAEzB,QADI,YAAcA,KACX,CAAC,IAAI,IACXA,KAAM,KAAK,EACPA,OAAQ,cAAZ,CAIF,CAIA,IAAI,OAIA,YAAc,MACd,qBAAuB,MAE3B,SAAS,MACR,GACA,IACA,MACC,CACD,OAAS,MACT,IAAI,MAAQ,IAAI,MACZ,UAAY,IAAI,UAChB,IAAM,GAAG,IACT,KAAO,GAAG,SAAS,KAIvB,GAAI,GAAG,UACN,yBAAkB,GAAI,MAAO,SAAS,EAE/B,GACD,GAAI,MAAQ,SAClB,UAAU,GAAI,MAAO,SAAS,UACpB,MAAQ,SAAW,OAAS,WACtC,iBAAiB,GAAI,MAAO,SAAS,UAC3B,MAAQ,SAAW,OAAS,QACtC,cAAc,GAAI,MAAO,SAAS,UACxB,MAAQ,SAAW,MAAQ,WACrC,gBAAgB,GAAI,MAAO,SAAS,UAC1B,CAAC,OAAO,cAAc,GAAG,EACnC,yBAAkB,GAAI,MAAO,SAAS,EAE/B,GAIR,MAAO,EACR,CAEA,SAAS,iBACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,aAAe,eAAe,GAAI,OAAO,GAAK,OAC9C,iBAAmB,eAAe,GAAI,YAAY,GAAK,OACvD,kBAAoB,eAAe,GAAI,aAAa,GAAK,QAC7D,QAAQ,GAAI,UACX,iBAAmB,MAAQ,QAClB,MAAQ,IAAM,aAAe,QACrC,mBAAqB,OACjB,KAAO,MAAQ,IACf,OAAS,MAAQ,IAAM,iBAAmB,IAEhD,EACA,WAAW,GAAI,SACd,WAAa,MAAQ,yCAEE,iBAAmB,MAAQ,kBAAoB,qCAExD,OAAS,MAAQ,aAAe,IAAM,cAAgB,6CAErC,kBAAkB,MAAO,mBAAmB,EAAK,mBAC5D,kBAAkB,MAAO,2CAA2C,EAAK,WACjF,kBAAkB,MAAO,KAAK,EAAK,IAC/C,KAAM,EACP,CACD,CAEA,SAAS,cACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,aAAe,eAAe,GAAI,OAAO,GAAK,OAClD,aAAe,OAAU,MAAQ,aAAe,IAAO,aACvD,QAAQ,GAAI,UAAY,MAAQ,MAAQ,IAAM,aAAe,GAAI,EACjE,WAAW,GAAI,SAAU,kBAAkB,MAAO,YAAY,EAAG,KAAM,EAAI,CAC5E,CAEA,SAAS,UACR,GACA,MACA,UACC,CACD,IAAI,OAAS,WAAa,UAAU,OAChC,YAAc,0JAGJ,OAAS,UAAY,OAAS,KAExC,WAAa,4DACb,KAAO,uBAAyB,YAAc,IAClD,KAAO,KAAO,IAAO,kBAAkB,MAAO,UAAU,EACxD,WAAW,GAAI,SAAU,KAAM,KAAM,EAAI,CAC1C,CAEA,SAAS,gBACR,GACA,MACA,UACC,CACD,IAAI,KAAO,GAAG,SAAS,KAIvB,GAAI,EAAS,IAAI,QAAS,YAAa,QAEvC,IAAIX,KAAM,WAAa,CAAC,EACpB,KAAOA,KAAI,KACX,OAASA,KAAI,OACb,KAAOA,KAAI,KACX,qBAAuB,CAAC,MAAQ,OAAS,QACzC,MAAQ,KACT,SACA,OAAS,QACR,YACA,QAEA,gBAAkB,sBAClB,OACH,gBAAkB,8BAEf,SACH,gBAAkB,MAAQ,gBAAkB,KAG7C,IAAI,KAAO,kBAAkB,MAAO,eAAe,EAC/C,uBACH,KAAO,qCAAuC,MAG/C,QAAQ,GAAI,QAAU,IAAM,MAAQ,GAAI,EACxC,WAAW,GAAI,MAAO,KAAM,KAAM,EAAI,GAClC,MAAQ,SACX,WAAW,GAAI,OAAQ,gBAAgB,CAEzC,CAQA,SAAS,gBAAgBsC,IAAI,CAE5B,GAAI,MAAMA,IAAG,WAAW,CAAC,EAAG,CAE3B,IAAI,MAAQ,KAAO,SAAW,QAC9BA,IAAG,KAAK,EAAI,CAAC,EAAE,OAAOA,IAAG,WAAW,EAAGA,IAAG,KAAK,GAAK,CAAC,CAAC,EACtD,OAAOA,IAAG,WAAW,CACtB,CAII,MAAMA,IAAG,oBAAoB,CAAC,IACjCA,IAAG,OAAS,CAAC,EAAE,OAAOA,IAAG,oBAAoB,EAAGA,IAAG,QAAU,CAAC,CAAC,EAC/D,OAAOA,IAAG,oBAAoB,EAEhC,CAEA,IAAI,SAEJ,SAAS,oBAAoB,MAAO,QAAS,QAAS,CACrD,IAAI,QAAU,SACd,OAAO,SAAS,aAAc,CAC7B,IAAI,IAAM,QAAQ,MAAM,KAAM,SAAS,EACnC,MAAQ,MACX,SAAS,MAAO,YAAa,QAAS,OAAO,CAE/C,CACD,CAKA,IAAI,gBAAkB,kBAAoB,EAAE,MAAQ,OAAO,KAAK,CAAC,CAAC,GAAK,IAEvE,SAAS,MACR,KACA,QACA,QACA,QACC,CAOD,GAAI,gBAAiB,CACpB,IAAI,kBAAoB,sBACpB,SAAW,QACf,QAAU,SAAS,SAAW,SAAU,EAAG,CAC1C,GAIC,EAAE,SAAW,EAAE,eAEf,EAAE,WAAa,mBAIf,EAAE,WAAa,GAIf,EAAE,OAAO,gBAAkB,SAE3B,OAAO,SAAS,MAAM,KAAM,SAAS,CAEvC,CACD,CACA,SAAS,iBACR,KACA,QACA,gBACG,CAAE,QAAkB,OAAiB,EACrC,OACJ,CACD,CAEA,SAAS,SACR,KACA,QACA,QACA,QACC,EACA,SAAW,UAAU,oBACrB,KACA,QAAQ,UAAY,QACpB,OACD,CACD,CAEA,SAAS,mBAAmB,SAAU,MAAO,CAC5C,GAAI,UAAQ,SAAS,KAAK,EAAE,GAAK,QAAQ,MAAM,KAAK,EAAE,GAGtD,KAAIA,IAAK,MAAM,KAAK,IAAM,CAAC,EACvB,MAAQ,SAAS,KAAK,IAAM,CAAC,EACjC,SAAW,MAAM,IACjB,gBAAgBA,GAAE,EAClB,gBAAgBA,IAAI,MAAO,MAAO,SAAU,oBAAqB,MAAM,OAAO,EAC9E,SAAW,OACZ,CAEA,IAAI,OAAS,CACZ,OAAQ,mBACR,OAAQ,kBACT,EAII,aAEJ,SAAS,eAAe,SAAU,MAAO,CACxC,GAAI,UAAQ,SAAS,KAAK,QAAQ,GAAK,QAAQ,MAAM,KAAK,QAAQ,GAGlE,KAAI,IAAK,IACL,IAAM,MAAM,IACZ,SAAW,SAAS,KAAK,UAAY,CAAC,EACtCJ,OAAQ,MAAM,KAAK,UAAY,CAAC,EAEhC,MAAMA,OAAM,MAAM,IACrBA,OAAQ,MAAM,KAAK,SAAW,OAAO,CAAC,EAAGA,MAAK,GAG/C,IAAK,OAAO,SACL,OAAOA,SACZ,IAAI,GAAG,EAAI,IAIb,IAAK,OAAOA,OAAO,CAKlB,GAJA,IAAMA,OAAM,GAAG,EAIX,MAAQ,eAAiB,MAAQ,YAAa,CAEjD,GADI,MAAM,WAAY,MAAM,SAAS,OAAS,GAC1C,MAAQ,SAAS,GAAG,EAAK,SAGzB,IAAI,WAAW,SAAW,GAC7B,IAAI,YAAY,IAAI,WAAW,CAAC,CAAC,CAEnC,CAEA,GAAI,MAAQ,SAAW,IAAI,UAAY,WAAY,CAGlD,IAAI,OAAS,IAEb,IAAI,OAAS,QAAQ,GAAG,EAAI,GAAK,OAAO,GAAG,EACvC,kBAAkB,IAAK,MAAM,IAChC,IAAI,MAAQ,OAEd,SAAW,MAAQ,aAAe,MAAM,IAAI,OAAO,GAAK,QAAQ,IAAI,SAAS,EAAG,CAE/E,aAAe,cAAgB,SAAS,cAAc,KAAK,EAC3D,aAAa,UAAY,QAAU,IAAM,SAEzC,QADI,IAAM,aAAa,WAChB,IAAI,YACV,IAAI,YAAY,IAAI,UAAU,EAE/B,KAAO,IAAI,YACV,IAAI,YAAY,IAAI,UAAU,CAEhC,SAKC,MAAQ,SAAS,GAAG,EAIpB,GAAI,CACH,IAAI,GAAG,EAAI,GACZ,MAAY,CAAE,CAEhB,EACD,CAKA,SAAS,kBAAkB,IAAK,SAAU,CACzC,MAAQ,CAAC,IAAI,YACZ,IAAI,UAAY,UAChB,qBAAqB,IAAK,QAAQ,GAClC,qBAAqB,IAAK,QAAQ,EAEpC,CAEA,SAAS,qBAAqB,IAAK,SAAU,CAG5C,IAAI,WAAa,GAGjB,GAAI,CAAE,WAAa,SAAS,gBAAkB,GAAK,MAAY,CAAE,CACjE,OAAO,YAAc,IAAI,QAAU,QACpC,CAEA,SAAS,qBAAqB,IAAK,OAAQ,CAC1C,IAAI,MAAQ,IAAI,MACZ,UAAY,IAAI,YACpB,GAAI,MAAM,SAAS,EAAG,CACrB,GAAI,UAAU,OACb,OAAO,SAAS,KAAK,IAAM,SAAS,MAAM,EAE3C,GAAI,UAAU,KACb,OAAO,MAAM,KAAK,IAAM,OAAO,KAAK,CAEtC,CACA,OAAO,QAAU,MAClB,CAEA,IAAI,SAAW,CACd,OAAQ,eACR,OAAQ,cACT,EAII,eAAiB,OAAO,SAAU,QAAS,CAC9C,IAAI,IAAM,CAAC,EACP,cAAgB,gBAChB,kBAAoB,QACxB,eAAQ,MAAM,aAAa,EAAE,QAAQ,SAAU,KAAM,CACpD,GAAI,KAAM,CACT,IAAI,IAAM,KAAK,MAAM,iBAAiB,EACtC,IAAI,OAAS,IAAM,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,EAAI,IAAI,CAAC,EAAE,KAAK,EACrD,CACD,CAAC,EACM,GACR,CAAC,EAGD,SAAS,mBAAmB5D,MAAM,CACjC,IAAIqF,OAAQ,sBAAsBrF,MAAK,KAAK,EAG5C,OAAOA,MAAK,YACT,OAAOA,MAAK,YAAaqF,MAAK,EAC9BA,MACJ,CAGA,SAAS,sBAAsB,aAAc,CAC5C,OAAI,MAAM,QAAQ,YAAY,EACtB,SAAS,YAAY,EAEzB,OAAO,cAAiB,SACpB,eAAe,YAAY,EAE5B,YACR,CAMA,SAAS,SAAS,MAAO,WAAY,CACpC,IAAI,IAAM,CAAC,EACP,UAEJ,GAAI,WAEH,QADI,UAAY,MACT,UAAU,mBAChB,UAAY,UAAU,kBAAkB,OAEvC,WAAa,UAAU,OACtB,UAAY,mBAAmB,UAAU,IAAI,IAE9C,OAAO,IAAK,SAAS,GAKnB,UAAY,mBAAmB,MAAM,IAAI,IAC7C,OAAO,IAAK,SAAS,EAItB,QADIR,YAAa,MACTA,YAAaA,YAAW,QAC3BA,YAAW,OAAS,UAAY,mBAAmBA,YAAW,IAAI,IACrE,OAAO,IAAK,SAAS,EAGvB,OAAO,GACR,CAIA,IAAI,SAAW,MACX,YAAc,iBACd,QAAU,SAAU,GAAI,KAAMtE,KAAK,CAEtC,GAAI,SAAS,KAAK,IAAI,EACrB,GAAG,MAAM,YAAY,KAAMA,IAAG,UACpB,YAAY,KAAKA,IAAG,EAC9B,GAAG,MAAM,YAAY,UAAU,IAAI,EAAGA,KAAI,QAAQ,YAAa,EAAE,EAAG,WAAW,MACzE,CACN,IAAI,eAAiB,UAAU,IAAI,EACnC,GAAI,MAAM,QAAQA,IAAG,EAIpB,QAAS,EAAI,EAAGsB,KAAMtB,KAAI,OAAQ,EAAIsB,KAAK,IAC1C,GAAG,MAAM,cAAc,EAAItB,KAAI,CAAC,OAGjC,GAAG,MAAM,cAAc,EAAIA,IAE7B,CACD,EAEI,YAAc,CAAC,SAAU,MAAO,IAAI,EAEpC,WACA,UAAY,OAAO,SAAUsD,MAAM,CAGtC,GAFA,WAAa,YAAc,SAAS,cAAc,KAAK,EAAE,MACzDA,MAAO,SAASA,KAAI,EAChBA,QAAS,UAAaA,SAAQ,WACjC,OAAOA,MAGR,QADI,QAAUA,MAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,MAAK,MAAM,CAAC,EAChD,EAAI,EAAG,EAAI,YAAY,OAAQ,IAAK,CAC5C,IAAI,KAAO,YAAY,CAAC,EAAI,QAC5B,GAAI,QAAQ,WACX,OAAO,IAET,CACD,CAAC,EAED,SAAS,YAAY,SAAU,MAAO,CACrC,IAAI7D,MAAO,MAAM,KACb,QAAU,SAAS,KAEvB,GAAI,UAAQA,MAAK,WAAW,GAAK,QAAQA,MAAK,KAAK,GAClD,QAAQ,QAAQ,WAAW,GAAK,QAAQ,QAAQ,KAAK,GAKtD,KAAI,IAAK,KACL,GAAK,MAAM,IACX,eAAiB,QAAQ,YACzB,gBAAkB,QAAQ,iBAAmB,QAAQ,OAAS,CAAC,EAG/D,SAAW,gBAAkB,gBAE7BqF,OAAQ,sBAAsB,MAAM,KAAK,KAAK,GAAK,CAAC,EAKxD,MAAM,KAAK,gBAAkB,MAAMA,OAAM,MAAM,EAC5C,OAAO,CAAC,EAAGA,MAAK,EAChBA,OAEH,IAAI,SAAW,SAAS,MAAO,EAAI,EAEnC,IAAK,QAAQ,SACR,QAAQ,SAAS,IAAI,CAAC,GACzB,QAAQ,GAAI,KAAM,EAAE,EAGtB,IAAK,QAAQ,SACZ,IAAM,SAAS,IAAI,EACf,MAAQ,SAAS,IAAI,GAExB,QAAQ,GAAI,KAAM,KAAc,EAAQ,EAG3C,CAEA,IAAI,MAAQ,CACX,OAAQ,YACR,OAAQ,WACT,EAII,aAAe,MAMnB,SAAS,SAAS,GAAI,IAAK,CAE1B,GAAI,GAAC,KAAO,EAAE,IAAM,IAAI,KAAK,IAK7B,GAAI,GAAG,UACF,IAAI,QAAQ,GAAG,EAAI,GACtB,IAAI,MAAM,YAAY,EAAE,QAAQ,SAAU,EAAG,CAAE,OAAO,GAAG,UAAU,IAAI,CAAC,CAAG,CAAC,EAE5E,GAAG,UAAU,IAAI,GAAG,MAEf,CACN,IAAI,IAAM,KAAO,GAAG,aAAa,OAAO,GAAK,IAAM,IAC/C,IAAI,QAAQ,IAAM,IAAM,GAAG,EAAI,GAClC,GAAG,aAAa,SAAU,IAAM,KAAK,KAAK,CAAC,CAE7C,CACD,CAMA,SAAS,YAAY,GAAI,IAAK,CAE7B,GAAI,GAAC,KAAO,EAAE,IAAM,IAAI,KAAK,IAK7B,GAAI,GAAG,UACF,IAAI,QAAQ,GAAG,EAAI,GACtB,IAAI,MAAM,YAAY,EAAE,QAAQ,SAAU,EAAG,CAAE,OAAO,GAAG,UAAU,OAAO,CAAC,CAAG,CAAC,EAE/E,GAAG,UAAU,OAAO,GAAG,EAEnB,GAAG,UAAU,QACjB,GAAG,gBAAgB,OAAO,MAErB,CAGN,QAFI,IAAM,KAAO,GAAG,aAAa,OAAO,GAAK,IAAM,IAC/C,IAAM,IAAM,IAAM,IACf,IAAI,QAAQ,GAAG,GAAK,GAC1B,IAAM,IAAI,QAAQ,IAAK,GAAG,EAE3B,IAAM,IAAI,KAAK,EACX,IACH,GAAG,aAAa,QAAS,GAAG,EAE5B,GAAG,gBAAgB,OAAO,CAE5B,CACD,CAIA,SAAS,kBAAkB,OAAQ,CAClC,GAAK,QAIL,GAAI,OAAO,QAAW,SAAU,CAC/B,IAAI,IAAM,CAAC,EACX,OAAI,OAAO,MAAQ,IAClB,OAAO,IAAK,kBAAkB,OAAO,MAAQ,GAAG,CAAC,EAElD,OAAO,IAAK,MAAM,EACX,GACR,SAAW,OAAO,QAAW,SAC5B,OAAO,kBAAkB,MAAM,EAEjC,CAEA,IAAI,kBAAoB,OAAO,SAAU,KAAM,CAC9C,MAAO,CACN,WAAa,KAAO,SACpB,aAAe,KAAO,YACtB,iBAAmB,KAAO,gBAC1B,WAAa,KAAO,SACpB,aAAe,KAAO,YACtB,iBAAmB,KAAO,eAC3B,CACD,CAAC,EAEG,cAAgB,WAAa,CAAC,MAC9B,WAAa,aACb,UAAY,YAGZ,eAAiB,aACjB,mBAAqB,gBACrB,cAAgB,YAChB,kBAAoB,eACpB,gBAEC,OAAO,kBAAoB,QAC9B,OAAO,wBAA0B,SAEjC,eAAiB,mBACjB,mBAAqB,uBAElB,OAAO,iBAAmB,QAC7B,OAAO,uBAAyB,SAEhC,cAAgB,kBAChB,kBAAoB,uBAKtB,IAAI,IAAM,UACP,OAAO,sBACN,OAAO,sBAAsB,KAAK,MAAM,EACxC,WAC0B,SAAU,GAAI,CAAE,OAAO,GAAG,CAAG,EAE3D,SAAS,UAAU,GAAI,CACtB,IAAI,UAAY,CACf,IAAI,EAAE,CACP,CAAC,CACF,CAEA,SAAS,mBAAmB,GAAI,IAAK,CACpC,IAAI,kBAAoB,GAAG,qBAAuB,GAAG,mBAAqB,CAAC,GACvE,kBAAkB,QAAQ,GAAG,EAAI,IACpC,kBAAkB,KAAK,GAAG,EAC1B,SAAS,GAAI,GAAG,EAElB,CAEA,SAAS,sBAAsB,GAAI,IAAK,CACnC,GAAG,oBACN,OAAO,GAAG,mBAAoB,GAAG,EAElC,YAAY,GAAI,GAAG,CACpB,CAEA,SAAS,mBACR,GACA,aACA,GACC,CACD,IAAI3D,KAAM,kBAAkB,GAAI,YAAY,EACxC,KAAOA,KAAI,KACX,QAAUA,KAAI,QACd,UAAYA,KAAI,UACpB,GAAI,CAAC,KAAQ,OAAO,GAAG,EACvB,IAAI,MAAQ,OAAS,WAAa,mBAAqB,kBACnD,MAAQ,EACR,IAAM,UAAY,CACrB,GAAG,oBAAoB,MAAO,KAAK,EACnC,GAAG,CACJ,EACI,MAAQ,SAAU,EAAG,CACpB,EAAE,SAAW,IACZ,EAAE,OAAS,WACd,IAAI,CAGP,EACA,WAAW,UAAY,CAClB,MAAQ,WACX,IAAI,CAEN,EAAG,QAAU,CAAC,EACd,GAAG,iBAAiB,MAAO,KAAK,CACjC,CAEA,IAAI,YAAc,yBAElB,SAAS,kBAAkB,GAAI,aAAc,CAC5C,IAAI4D,QAAS,OAAO,iBAAiB,EAAE,EAEnC,kBAAoBA,QAAO,eAAiB,OAAO,GAAK,IAAI,MAAM,IAAI,EACtE,qBAAuBA,QAAO,eAAiB,UAAU,GAAK,IAAI,MAAM,IAAI,EAC5E,kBAAoB,WAAW,iBAAkB,mBAAmB,EACpE,iBAAmBA,QAAO,cAAgB,OAAO,GAAK,IAAI,MAAM,IAAI,EACpE,oBAAsBA,QAAO,cAAgB,UAAU,GAAK,IAAI,MAAM,IAAI,EAC1E,iBAAmB,WAAW,gBAAiB,kBAAkB,EAEjE,KACA,QAAU,EACV,UAAY,EAEZ,eAAiB,WAChB,kBAAoB,IACvB,KAAO,WACP,QAAU,kBACV,UAAY,oBAAoB,QAEvB,eAAiB,UACvB,iBAAmB,IACtB,KAAO,UACP,QAAU,iBACV,UAAY,mBAAmB,SAGhC,QAAU,KAAK,IAAI,kBAAmB,gBAAgB,EACtD,KAAO,QAAU,EACd,kBAAoB,iBACnB,WACA,UACD,KACH,UAAY,KACT,OAAS,WACR,oBAAoB,OACpB,mBAAmB,OACpB,GAEJ,IAAI,aACH,OAAS,YACT,YAAY,KAAKA,QAAO,eAAiB,UAAU,CAAC,EACrD,MAAO,CACN,KACA,QACA,UACA,YACD,CACD,CAEA,SAAS,WAAW,OAAQ,UAAW,CAEtC,KAAO,OAAO,OAAS,UAAU,QAChC,OAAS,OAAO,OAAO,MAAM,EAG9B,OAAO,KAAK,IAAI,MAAM,KAAM,UAAU,IAAI,SAAU,EAAG,EAAG,CACzD,OAAO,KAAK,CAAC,EAAI,KAAK,OAAO,CAAC,CAAC,CAChC,CAAC,CAAC,CACH,CAMA,SAAS,KAAK,EAAG,CAChB,OAAO,OAAO,EAAE,MAAM,EAAG,EAAE,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAI,GACnD,CAIA,SAAS,MAAM,MAAO,cAAe,CACpC,IAAI,GAAK,MAAM,IAGX,MAAM,GAAG,QAAQ,IACpB,GAAG,SAAS,UAAY,GACxB,GAAG,SAAS,GAGb,IAAItF,MAAO,kBAAkB,MAAM,KAAK,UAAU,EAClD,GAAI,SAAQA,KAAI,GAKZ,QAAM,GAAG,QAAQ,GAAK,GAAG,WAAa,GA4B1C,SAxBIuF,KAAMvF,MAAK,IACX,KAAOA,MAAK,KACZ,WAAaA,MAAK,WAClB,aAAeA,MAAK,aACpB,iBAAmBA,MAAK,iBACxB,YAAcA,MAAK,YACnB,cAAgBA,MAAK,cACrB,kBAAoBA,MAAK,kBACzB,YAAcA,MAAK,YACnBwF,OAAQxF,MAAK,MACb,WAAaA,MAAK,WAClB,eAAiBA,MAAK,eACtB,aAAeA,MAAK,aACpB,OAASA,MAAK,OACd,YAAcA,MAAK,YACnB,gBAAkBA,MAAK,gBACvB,SAAWA,MAAK,SAMhB,QAAU,eACV,eAAiB,eAAe,OAC7B,gBAAkB,eAAe,QACvC,QAAU,eAAe,QACzB,eAAiB,eAAe,OAGjC,IAAI,SAAW,CAAC,QAAQ,YAAc,CAAC,MAAM,aAE7C,GAAI,YAAY,CAAC,QAAU,SAAW,IAItC,KAAI,WAAa,UAAY,YAC1B,YACA,WACC,YAAc,UAAY,kBAC3B,kBACA,iBACC,QAAU,UAAY,cACvB,cACA,aAEC,gBAAkB,UAClB,cAAgB,YAEhB,UAAY,UACZ,OAAO,QAAW,WAAa,OAChCwF,OACC,eAAiB,UACjB,aAAe,WAEf,mBAAqB,UACrB,iBAAmB,eAGnB,sBAAwB,SAC3B,SAAS,QAAQ,EACd,SAAS,MACT,QACJ,EAII,WAAaD,OAAQ,IAAS,CAAC,MAC/B,iBAAmB,uBAAuB,SAAS,EAEnD,GAAK,GAAG,SAAW,KAAK,UAAY,CACnC,aACH,sBAAsB,GAAI,OAAO,EACjC,sBAAsB,GAAI,WAAW,GAElC,GAAG,WACF,YACH,sBAAsB,GAAI,UAAU,EAErC,oBAAsB,mBAAmB,EAAE,GAE3C,gBAAkB,eAAe,EAAE,EAEpC,GAAG,SAAW,IACf,CAAC,EAEI,MAAM,KAAK,MAEf,eAAe,MAAO,SAAU,UAAY,CAC3C,IAAI,OAAS,GAAG,WACZ,YAAc,QAAU,OAAO,UAAY,OAAO,SAAS,MAAM,GAAG,EACpE,aACH,YAAY,MAAQ,MAAM,KAC1B,YAAY,IAAI,UAEhB,YAAY,IAAI,SAAS,EAE1B,WAAa,UAAU,GAAI,EAAE,CAC9B,CAAC,EAIF,iBAAmB,gBAAgB,EAAE,EACjC,aACH,mBAAmB,GAAI,UAAU,EACjC,mBAAmB,GAAI,WAAW,EAClC,UAAU,UAAY,CACrB,sBAAsB,GAAI,UAAU,EAC/B,GAAG,YACP,mBAAmB,GAAI,OAAO,EACzB,mBACA,gBAAgB,qBAAqB,EACxC,WAAW,GAAI,qBAAqB,EAEpC,mBAAmB,GAAI,KAAM,EAAE,GAInC,CAAC,GAGE,MAAM,KAAK,OACd,eAAiB,cAAc,EAC/B,WAAa,UAAU,GAAI,EAAE,GAG1B,CAAC,YAAc,CAAC,kBACnB,GAAG,GAEL,CAEA,SAAS,MAAM,MAAO,GAAI,CACzB,IAAI,GAAK,MAAM,IAGX,MAAM,GAAG,QAAQ,IACpB,GAAG,SAAS,UAAY,GACxB,GAAG,SAAS,GAGb,IAAIvF,MAAO,kBAAkB,MAAM,KAAK,UAAU,EAClD,GAAI,QAAQA,KAAI,GAAK,GAAG,WAAa,EACpC,OAAO,GAAG,EAIX,GAAI,MAAM,GAAG,QAAQ,EACpB,OAGD,IAAIuF,KAAMvF,MAAK,IACX,KAAOA,MAAK,KACZ,WAAaA,MAAK,WAClB,aAAeA,MAAK,aACpB,iBAAmBA,MAAK,iBACxB,YAAcA,MAAK,YACnByF,OAAQzF,MAAK,MACb,WAAaA,MAAK,WAClB,eAAiBA,MAAK,eACtB,WAAaA,MAAK,WAClB,SAAWA,MAAK,SAEhB,WAAauF,OAAQ,IAAS,CAAC,MAC/B,iBAAmB,uBAAuBE,MAAK,EAE/C,sBAAwB,SAC3B,SAAS,QAAQ,EACd,SAAS,MACT,QACJ,EAII,GAAK,GAAG,SAAW,KAAK,UAAY,CACnC,GAAG,YAAc,GAAG,WAAW,WAClC,GAAG,WAAW,SAAS,MAAM,GAAG,EAAI,MAEjC,aACH,sBAAsB,GAAI,YAAY,EACtC,sBAAsB,GAAI,gBAAgB,GAEvC,GAAG,WACF,YACH,sBAAsB,GAAI,UAAU,EAErC,gBAAkB,eAAe,EAAE,IAEnC,GAAG,EACH,YAAc,WAAW,EAAE,GAE5B,GAAG,SAAW,IACf,CAAC,EAEG,WACH,WAAW,YAAY,EAEvB,aAAa,EAGd,SAAS,cAAe,CAEnB,GAAG,YAIH,CAAC,MAAM,KAAK,MAAQ,GAAG,cACzB,GAAG,WAAW,WAAa,GAAG,WAAW,SAAW,CAAC,IAAK,MAAM,GAAI,EAAI,OAE1E,aAAe,YAAY,EAAE,EACzB,aACH,mBAAmB,GAAI,UAAU,EACjC,mBAAmB,GAAI,gBAAgB,EACvC,UAAU,UAAY,CACrB,sBAAsB,GAAI,UAAU,EAC/B,GAAG,YACP,mBAAmB,GAAI,YAAY,EAC9B,mBACA,gBAAgB,qBAAqB,EACxC,WAAW,GAAI,qBAAqB,EAEpC,mBAAmB,GAAI,KAAM,EAAE,GAInC,CAAC,GAEFA,QAASA,OAAM,GAAI,EAAE,EACjB,CAAC,YAAc,CAAC,kBACnB,GAAG,EAEL,CACD,CAGA,SAAS,cAAclF,KAAK,KAAM,MAAO,CACpC,OAAOA,MAAQ,SAClB,KACC,yBAA2B,KAAO,yCACxB,KAAK,UAAUA,IAAG,EAAK,IACjC,MAAM,OACP,EACU,MAAMA,IAAG,GACnB,KACC,yBAA2B,KAAO,iEAElC,MAAM,OACP,CAEF,CAEA,SAAS,gBAAgBA,KAAK,CAC7B,OAAO,OAAOA,MAAQ,UAAY,CAAC,MAAMA,IAAG,CAC7C,CAQA,SAAS,uBAAuB,GAAI,CACnC,GAAI,QAAQ,EAAE,EACb,MAAO,GAER,IAAI,WAAa,GAAG,IACpB,OAAI,MAAM,UAAU,EAEZ,uBACN,MAAM,QAAQ,UAAU,EACrB,WAAW,CAAC,EACZ,UACJ,GAEQ,GAAG,SAAW,GAAG,QAAU,CAErC,CAEA,SAAS,OAAO,EAAG,MAAO,CACrB,MAAM,KAAK,OAAS,IACvB,MAAM,KAAK,CAEb,CAEA,IAAI,WAAa,UAAY,CAC5B,OAAQ,OACR,SAAU,OACV,OAAQ,SAAmB,MAAO,GAAI,CAEjC,MAAM,KAAK,OAAS,GACvB,MAAM,MAAO,EAAE,EAEf,GAAG,CAEL,CACD,EAAI,CAAC,EAED,gBAAkB,CACrB,MACA,MACA,OACA,SACA,MACA,UACD,EAMI,QAAU,gBAAgB,OAAO,WAAW,EAE5C,MAAQ,oBAAoB,CAAE,QAAkB,OAAiB,CAAC,EAQlE,OAEH,SAAS,iBAAiB,kBAAmB,UAAY,CACxD,IAAI,GAAK,SAAS,cACd,IAAM,GAAG,QACZ,QAAQ,GAAI,OAAO,CAErB,CAAC,EAGF,IAAI,UAAY,CACf,SAAU,SAAkB,GAAI,QAAS,MAAO,SAAU,CACrD,MAAM,MAAQ,UAEb,SAAS,KAAO,CAAC,SAAS,IAAI,UACjC,eAAe,MAAO,YAAa,UAAY,CAC9C,UAAU,iBAAiB,GAAI,QAAS,KAAK,CAC9C,CAAC,EAED,YAAY,GAAI,QAAS,MAAM,OAAO,EAEvC,GAAG,UAAY,CAAC,EAAE,IAAI,KAAK,GAAG,QAAS,QAAQ,IACrC,MAAM,MAAQ,YAAc,gBAAgB,GAAG,IAAI,KAC7D,GAAG,YAAc,QAAQ,UACpB,QAAQ,UAAU,OACtB,GAAG,iBAAiB,mBAAoB,kBAAkB,EAC1D,GAAG,iBAAiB,iBAAkB,gBAAgB,EAKtD,GAAG,iBAAiB,SAAU,gBAAgB,EAE1C,QACH,GAAG,OAAS,KAIhB,EAEA,iBAAkB,SAA0B,GAAI,QAAS,MAAO,CAC/D,GAAI,MAAM,MAAQ,SAAU,CAC3B,YAAY,GAAI,QAAS,MAAM,OAAO,EAKtC,IAAI,YAAc,GAAG,UACjB,WAAa,GAAG,UAAY,CAAC,EAAE,IAAI,KAAK,GAAG,QAAS,QAAQ,EAChE,GAAI,WAAW,KAAK,SAAU,EAAG,EAAG,CAAE,MAAO,CAAC,WAAW,EAAG,YAAY,CAAC,CAAC,CAAG,CAAC,EAAG,CAGhF,IAAI,UAAY,GAAG,SAChB,QAAQ,MAAM,KAAK,SAAU,EAAG,CAAE,OAAO,oBAAoB,EAAG,UAAU,CAAG,CAAC,EAC9E,QAAQ,QAAU,QAAQ,UAAY,oBAAoB,QAAQ,MAAO,UAAU,EAClF,WACH,QAAQ,GAAI,QAAQ,CAEtB,CACD,CACD,CACD,EAEA,SAAS,YAAY,GAAI,QAAS,GAAI,CACrC,oBAAoB,GAAI,QAAS,EAAE,GAE/B,MAAQ,SACX,WAAW,UAAY,CACtB,oBAAoB,GAAI,QAAS,EAAE,CACpC,EAAG,CAAC,CAEN,CAEA,SAAS,oBAAoB,GAAI,QAAS,GAAI,CAC7C,IAAI,MAAQ,QAAQ,MAChB,WAAa,GAAG,SACpB,GAAI,cAAc,CAAC,MAAM,QAAQ,KAAK,GAKtC,SADI,SAAU,OACL,EAAI,EAAG,EAAI,GAAG,QAAQ,OAAQ,EAAI,EAAG,IAE7C,GADA,OAAS,GAAG,QAAQ,CAAC,EACjB,WACH,SAAW,aAAa,MAAO,SAAS,MAAM,CAAC,EAAI,GAC/C,OAAO,WAAa,WACvB,OAAO,SAAW,kBAGf,WAAW,SAAS,MAAM,EAAG,KAAK,EAAG,CACpC,GAAG,gBAAkB,IACxB,GAAG,cAAgB,GAEpB,MACD,CAGG,aACJ,GAAG,cAAgB,IAErB,CAEA,SAAS,oBAAoB,MAAO,QAAS,CAC5C,OAAO,QAAQ,MAAM,SAAU,EAAG,CAAE,MAAO,CAAC,WAAW,EAAG,KAAK,CAAG,CAAC,CACpE,CAEA,SAAS,SAAS,OAAQ,CACzB,MAAO,WAAY,OAChB,OAAO,OACP,OAAO,KACX,CAEA,SAAS,mBAAmB,EAAG,CAC9B,EAAE,OAAO,UAAY,EACtB,CAEA,SAAS,iBAAiB,EAAG,CAEvB,EAAE,OAAO,YACd,EAAE,OAAO,UAAY,GACrB,QAAQ,EAAE,OAAQ,OAAO,EAC1B,CAEA,SAAS,QAAQ,GAAI,KAAM,CAC1B,IAAI,EAAI,SAAS,YAAY,YAAY,EACzC,EAAE,UAAU,KAAM,GAAM,EAAI,EAC5B,GAAG,cAAc,CAAC,CACnB,CAKA,SAAS,WAAW,MAAO,CAC1B,OAAO,MAAM,oBAAsB,CAAC,MAAM,MAAQ,CAAC,MAAM,KAAK,YAC3D,WAAW,MAAM,kBAAkB,MAAM,EACzC,KACJ,CAEA,IAAI,KAAO,CACV,KAAM,SAAc,GAAImB,KAAK,MAAO,CACnC,IAAI,MAAQA,KAAI,MAEhB,MAAQ,WAAW,KAAK,EACxB,IAAI,cAAgB,MAAM,MAAQ,MAAM,KAAK,WACzC,gBAAkB,GAAG,mBACxB,GAAG,MAAM,UAAY,OAAS,GAAK,GAAG,MAAM,QACzC,OAAS,eACZ,MAAM,KAAK,KAAO,GAClB,MAAM,MAAO,UAAY,CACxB,GAAG,MAAM,QAAU,eACpB,CAAC,GAED,GAAG,MAAM,QAAU,MAAQ,gBAAkB,MAE/C,EAEA,OAAQ,SAAgB,GAAIA,KAAK,MAAO,CACvC,IAAI,MAAQA,KAAI,MACZ,SAAWA,KAAI,SAGnB,GAAI,CAAC,OAAU,CAAC,SAChB,OAAQ,WAAW,KAAK,EACxB,IAAI,cAAgB,MAAM,MAAQ,MAAM,KAAK,WACzC,eACH,MAAM,KAAK,KAAO,GACd,MACH,MAAM,MAAO,UAAY,CACxB,GAAG,MAAM,QAAU,GAAG,kBACvB,CAAC,EAED,MAAM,MAAO,UAAY,CACxB,GAAG,MAAM,QAAU,MACpB,CAAC,GAGF,GAAG,MAAM,QAAU,MAAQ,GAAG,mBAAqB,OAErD,EAEA,OAAQ,SACP,GACA,QACA,MACA,SACA,UACC,CACI,YACJ,GAAG,MAAM,QAAU,GAAG,mBAExB,CACD,EAEI,mBAAqB,CACxB,MAAO,UACP,IACD,EAII,gBAAkB,CACrB,KAAM,OACN,OAAQ,QACR,IAAK,QACL,KAAM,OACN,KAAM,OACN,WAAY,OACZ,WAAY,OACZ,aAAc,OACd,aAAc,OACd,iBAAkB,OAClB,iBAAkB,OAClB,YAAa,OACb,kBAAmB,OACnB,cAAe,OACf,SAAU,CAAC,OAAQ,OAAQ,MAAM,CAClC,EAIA,SAAS,aAAa,MAAO,CAC5B,IAAI,YAAc,OAAS,MAAM,iBACjC,OAAI,aAAe,YAAY,KAAK,QAAQ,SACpC,aAAa,uBAAuB,YAAY,QAAQ,CAAC,EAEzD,KAET,CAEA,SAAS,sBAAsB,KAAM,CACpC,IAAI1B,MAAO,CAAC,EACR,QAAU,KAAK,SAEnB,QAAS,OAAO,QAAQ,UACvBA,MAAK,GAAG,EAAI,KAAK,GAAG,EAIrB,IAAI,UAAY,QAAQ,iBACxB,QAAS,SAAS,UACjBA,MAAK,SAAS,KAAK,CAAC,EAAI,UAAU,KAAK,EAExC,OAAOA,KACR,CAEA,SAAS,YAAY,EAAG,SAAU,CACjC,GAAI,iBAAiB,KAAK,SAAS,GAAG,EACrC,OAAO,EAAE,aAAc,CACtB,MAAO,SAAS,iBAAiB,SAClC,CAAC,CAEH,CAEA,SAAS,oBAAoB,MAAO,CACnC,KAAQ,MAAQ,MAAM,QACrB,GAAI,MAAM,KAAK,WACd,MAAO,EAGV,CAEA,SAAS,YAAY,MAAO,SAAU,CACrC,OAAO,SAAS,MAAQ,MAAM,KAAO,SAAS,MAAQ,MAAM,GAC7D,CAEA,IAAI,cAAgB,SAAU,EAAG,CAAE,OAAO,EAAE,KAAO,mBAAmB,CAAC,CAAG,EAEtE,iBAAmB,SAAU,EAAG,CAAE,OAAO,EAAE,OAAS,MAAQ,EAE5D,WAAa,CAChB,KAAM,aACN,MAAO,gBACP,SAAU,GAEV,OAAQ,SAAgB,EAAG,CAC1B,IAAI,OAAS,KAET0D,UAAW,KAAK,OAAO,QAC3B,GAAKA,YAKLA,UAAWA,UAAS,OAAO,aAAa,EAEpC,EAACA,UAAS,QAOd,KAAI,KAAO,KAAK,KAMZ,SAAWA,UAAS,CAAC,EAIzB,GAAI,oBAAoB,KAAK,MAAM,EAClC,OAAO,SAKR,IAAI,MAAQ,aAAa,QAAQ,EAEjC,GAAI,CAAC,MACJ,OAAO,SAGR,GAAI,KAAK,SACR,OAAO,YAAY,EAAG,QAAQ,EAM/B,IAAI,GAAK,gBAAmB,KAAK,KAAQ,IACzC,MAAM,IAAM,MAAM,KAAO,KACtB,MAAM,UACL,GAAK,UACL,GAAK,MAAM,IACZ,YAAY,MAAM,GAAG,EACnB,OAAO,MAAM,GAAG,EAAE,QAAQ,EAAE,IAAM,EAAI,MAAM,IAAM,GAAK,MAAM,IAC9D,MAAM,IAEV,IAAI1D,OAAQ,MAAM,OAAS,MAAM,KAAO,CAAC,IAAI,WAAa,sBAAsB,IAAI,EAChF,YAAc,KAAK,OACnB,SAAW,aAAa,WAAW,EAQvC,GAJI,MAAM,KAAK,YAAc,MAAM,KAAK,WAAW,KAAK,gBAAgB,IACvE,MAAM,KAAK,KAAO,IAIlB,UACA,SAAS,MACT,CAAC,YAAY,MAAO,QAAQ,GAC5B,CAAC,mBAAmB,QAAQ,GAE5B,EAAE,SAAS,mBAAqB,SAAS,kBAAkB,OAAO,WACjE,CAGD,IAAI,QAAU,SAAS,KAAK,WAAa,OAAO,CAAC,EAAGA,KAAI,EAExD,GAAI,OAAS,SAEZ,YAAK,SAAW,GAChB,eAAe,QAAS,aAAc,UAAY,CACjD,OAAO,SAAW,GAClB,OAAO,aAAa,CACrB,CAAC,EACM,YAAY,EAAG,QAAQ,EACxB,GAAI,OAAS,SAAU,CAC7B,GAAI,mBAAmB,KAAK,EAC3B,OAAO,YAER,IAAI,aACA,aAAe,UAAY,CAAE,aAAa,CAAG,EACjD,eAAeA,MAAM,aAAc,YAAY,EAC/C,eAAeA,MAAM,iBAAkB,YAAY,EACnD,eAAe,QAAS,aAAc,SAAUyF,OAAO,CAAE,aAAeA,MAAO,CAAC,CACjF,CACD,CAEA,OAAO,SACR,CACD,EAII,MAAQ,OAAO,CAClB,IAAK,OACL,UAAW,MACZ,EAAG,eAAe,EAElB,OAAO,MAAM,KAEb,IAAI,gBAAkB,CACrB,MAEA,YAAa,UAAuB,CACnC,IAAI,OAAS,KAETC,QAAS,KAAK,QAClB,KAAK,QAAU,SAAU,MAAO,UAAW,CAC1C,IAAI,sBAAwB,kBAAkB,MAAM,EAEpD,OAAO,UACN,OAAO,OACP,OAAO,KACP,GACA,EACD,EACA,OAAO,OAAS,OAAO,KACvB,sBAAsB,EACtBA,QAAO,KAAK,OAAQ,MAAO,SAAS,CACrC,CACD,EAEA,OAAQ,SAAgB,EAAG,CAQ1B,QAPI,IAAM,KAAK,KAAO,KAAK,OAAO,KAAK,KAAO,OAC1ClC,KAAM,OAAO,OAAO,IAAI,EACxB,aAAe,KAAK,aAAe,KAAK,SACxC,YAAc,KAAK,OAAO,SAAW,CAAC,EACtCE,UAAW,KAAK,SAAW,CAAC,EAC5B,eAAiB,sBAAsB,IAAI,EAEtC,EAAI,EAAG,EAAI,YAAY,OAAQ,IAAK,CAC5C,IAAI,EAAI,YAAY,CAAC,EACrB,GAAI,EAAE,KACL,GAAI,EAAE,KAAO,MAAQ,OAAO,EAAE,GAAG,EAAE,QAAQ,SAAS,IAAM,EACzDA,UAAS,KAAK,CAAC,EACfF,KAAI,EAAE,GAAG,EAAI,GACT,EAAE,OAAS,EAAE,KAAO,CAAC,IAAI,WAAa,uBAChC,EAAS,IAAI,KAAMkB,MAEhC,CAEA,GAAI,aAAc,CAGjB,QAFI,KAAO,CAAC,EACR,QAAU,CAAC,EACN,IAAM,EAAG,IAAM,aAAa,OAAQ,MAAO,CACnD,IAAI,IAAM,aAAa,GAAG,EAC1B,IAAI,KAAK,WAAa,eACtB,IAAI,KAAK,IAAM,IAAI,IAAI,sBAAsB,EACzClB,KAAI,IAAI,GAAG,EACd,KAAK,KAAK,GAAG,EAEb,QAAQ,KAAK,GAAG,CAElB,CACA,KAAK,KAAO,EAAE,IAAK,KAAM,IAAI,EAC7B,KAAK,QAAU,OAChB,CAEA,OAAO,EAAE,IAAK,KAAME,SAAQ,CAC7B,EAEA,QAAS,UAAmB,CAC3B,IAAIA,UAAW,KAAK,aAChB,UAAY,KAAK,YAAe,KAAK,MAAQ,KAAO,QACpD,CAACA,UAAS,QAAU,CAAC,KAAK,QAAQA,UAAS,CAAC,EAAE,IAAK,SAAS,IAMhEA,UAAS,QAAQ,cAAc,EAC/BA,UAAS,QAAQ,cAAc,EAC/BA,UAAS,QAAQ,gBAAgB,EAKjC,KAAK,QAAU,SAAS,KAAK,aAE7BA,UAAS,QAAQ,SAAU,EAAG,CAC7B,GAAI,EAAE,KAAK,MAAO,CACjB,IAAI,GAAK,EAAE,IACP,EAAI,GAAG,MACX,mBAAmB,GAAI,SAAS,EAChC,EAAE,UAAY,EAAE,gBAAkB,EAAE,mBAAqB,GACzD,GAAG,iBAAiB,mBAAoB,GAAG,QAAU,SAAS,GAAG,EAAG,CAC/D,GAAK,EAAE,SAAW,KAGlB,CAAC,GAAK,aAAa,KAAK,EAAE,YAAY,KACzC,GAAG,oBAAoB,mBAAoB,EAAE,EAC7C,GAAG,QAAU,KACb,sBAAsB,GAAI,SAAS,EAErC,CAAC,CACF,CACD,CAAC,EACF,EAEA,QAAS,CACR,QAAS,SAAiB,GAAI,UAAW,CAExC,GAAI,CAAC,cACJ,MAAO,GAGR,GAAI,KAAK,SACR,OAAO,KAAK,SAOb,IAAI,MAAQ,GAAG,UAAU,EACrB,GAAG,oBACN,GAAG,mBAAmB,QAAQ,SAAU,IAAK,CAAE,YAAY,MAAO,GAAG,CAAG,CAAC,EAE1E,SAAS,MAAO,SAAS,EACzB,MAAM,MAAM,QAAU,OACtB,KAAK,IAAI,YAAY,KAAK,EAC1B,IAAI,KAAO,kBAAkB,KAAK,EAClC,YAAK,IAAI,YAAY,KAAK,EAClB,KAAK,SAAW,KAAK,YAC9B,CACD,CACD,EAEA,SAAS,eAAe,EAAG,CAEtB,EAAE,IAAI,SACT,EAAE,IAAI,QAAQ,EAGX,EAAE,IAAI,UACT,EAAE,IAAI,SAAS,CAEjB,CAEA,SAAS,eAAe,EAAG,CAC1B,EAAE,KAAK,OAAS,EAAE,IAAI,sBAAsB,CAC7C,CAEA,SAAS,iBAAiB,EAAG,CAC5B,IAAI,OAAS,EAAE,KAAK,IAChB,OAAS,EAAE,KAAK,OAChB,GAAK,OAAO,KAAO,OAAO,KAC1B,GAAK,OAAO,IAAM,OAAO,IAC7B,GAAI,IAAM,GAAI,CACb,EAAE,KAAK,MAAQ,GACf,IAAI,EAAI,EAAE,IAAI,MACd,EAAE,UAAY,EAAE,gBAAkB,aAAe,GAAK,MAAQ,GAAK,MACnE,EAAE,mBAAqB,IACxB,CACD,CAEA,IAAI,mBAAqB,CACxB,WACA,eACD,EAKA,YAAY,OAAO,YAAc,YACjC,YAAY,OAAO,cAAgB,cACnC,YAAY,OAAO,eAAiB,eACpC,YAAY,OAAO,gBAAkB,gBACrC,YAAY,OAAO,iBAAmB,iBAGtC,OAAO,YAAY,QAAQ,WAAY,kBAAkB,EACzD,OAAO,YAAY,QAAQ,WAAY,kBAAkB,EAGzD,YAAY,UAAU,UAAY,UAAY,MAAQ,KAGtD,YAAY,UAAU,OAAS,SAC9B,GACA,UACC,CACD,UAAK,IAAM,UAAY,MAAM,EAAE,EAAI,OAC5B,eAAe,KAAM,GAAI,SAAS,CAC1C,EAII,WACH,WAAW,UAAY,CAClB,OAAO,UACN,UACH,SAAS,KAAK,OAAQ,WAAW,CAOpC,EAAG,CAAC,EAKL,IAAI,aAAe,2BACf,cAAgB,yBAEhB,WAAa,OAAO,SAAU5B,YAAY,CAC7C,IAAI,KAAOA,YAAW,CAAC,EAAE,QAAQ,cAAe,MAAM,EAClD,MAAQA,YAAW,CAAC,EAAE,QAAQ,cAAe,MAAM,EACvD,OAAO,IAAI,OAAO,KAAO,gBAAkB,MAAO,GAAG,CACtD,CAAC,EAID,SAAS,UACR,KACAA,YACC,CACD,IAAI,MAAQA,YAAa,WAAWA,WAAU,EAAI,aAClD,GAAK,MAAM,KAAK,IAAI,EAOpB,SAJI,OAAS,CAAC,EACV,UAAY,CAAC,EACb,UAAY,MAAM,UAAY,EAC9B,MAAO3B,OAAO,WACV,MAAQ,MAAM,KAAK,IAAI,GAAI,CAClCA,OAAQ,MAAM,MAEVA,OAAQ,YACX,UAAU,KAAK,WAAa,KAAK,MAAM,UAAWA,MAAK,CAAC,EACxD,OAAO,KAAK,KAAK,UAAU,UAAU,CAAC,GAGvC,IAAI,IAAM,aAAa,MAAM,CAAC,EAAE,KAAK,CAAC,EACtC,OAAO,KAAM,MAAQ,IAAM,GAAI,EAC/B,UAAU,KAAK,CAAE,WAAY,GAAI,CAAC,EAClC,UAAYA,OAAQ,MAAM,CAAC,EAAE,MAC9B,CACA,OAAI,UAAY,KAAK,SACpB,UAAU,KAAK,WAAa,KAAK,MAAM,SAAS,CAAC,EACjD,OAAO,KAAK,KAAK,UAAU,UAAU,CAAC,GAEhC,CACN,WAAY,OAAO,KAAK,GAAG,EAC3B,OAAQ,SACT,EACD,CAIA,SAAS,cAAc,GAAI,QAAS,CACnC,IAAImB,MAAO,QAAQ,MAAQ,SACvB,YAAc,iBAAiB,GAAI,OAAO,EAC9C,GAAI,EAAS,IAAI,IACb,cACH,GAAG,YAAc,KAAK,UAAU,WAAW,GAE5C,IAAI,aAAe,eAAe,GAAI,QAAS,EAAqB,EAChE,eACH,GAAG,aAAe,aAEpB,CAEA,SAAS,QAAQ,GAAI,CACpB,IAAItB,MAAO,GACX,OAAI,GAAG,cACNA,OAAQ,eAAkB,GAAG,YAAe,KAEzC,GAAG,eACNA,OAAQ,SAAY,GAAG,aAAgB,KAEjCA,KACR,CAEA,IAAI,QAAU,CACb,WAAY,CAAC,aAAa,EAC1B,cACA,OACD,EAIA,SAAS,gBAAgB,GAAI,QAAS,CACrC,IAAIsB,MAAO,QAAQ,MAAQ,SACvB,YAAc,iBAAiB,GAAI,OAAO,EAC9C,GAAI,YAAa,CAEhB,GAAI,EAAS,IAAI,IACjB,GAAG,YAAc,KAAK,UAAU,eAAe,WAAW,CAAC,CAC5D,CAEA,IAAI,aAAe,eAAe,GAAI,QAAS,EAAqB,EAChE,eACH,GAAG,aAAe,aAEpB,CAEA,SAAS,UAAU,GAAI,CACtB,IAAItB,MAAO,GACX,OAAI,GAAG,cACNA,OAAQ,eAAkB,GAAG,YAAe,KAEzC,GAAG,eACNA,OAAQ,UAAa,GAAG,aAAgB,MAElCA,KACR,CAEA,IAAI,QAAU,CACb,WAAY,CAAC,aAAa,EAC1B,cAAe,gBACf,QAAS,SACV,EAII,QAEA,GAAK,CACR,OAAQ,SAAgBkB,MAAM,CAC7B,eAAU,SAAW,SAAS,cAAc,KAAK,EACjD,QAAQ,UAAYA,MACb,QAAQ,WAChB,CACD,EAII,WAAa,QAChB,2FAED,EAII,iBAAmB,QACtB,yDACD,EAII,iBAAmB,QACtB,iSAKD,EAOI,UAAY,4EACZ,oBAAsB,yGACtB,OAAS,6BAAgC,cAAc,OAAU,KACjE,aAAe,OAAS,OAAS,QAAU,OAAS,IACpD,aAAe,IAAI,OAAQ,KAAO,YAAa,EAC/C,cAAgB,aAChB,OAAS,IAAI,OAAQ,QAAU,aAAe,QAAS,EACvD,QAAU,qBAEV,QAAU,SACV,mBAAqB,QAGrB,mBAAqB,QAAQ,wBAAyB,EAAI,EAC1D,QAAU,CAAC,EAEX,YAAc,CACjB,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,IACT,QAAS;AAAA,EACT,OAAQ,IACR,QAAS,GACV,EACI,YAAc,4BACd,wBAA0B,mCAG1B,mBAAqB,QAAQ,eAAgB,EAAI,EACjD,yBAA2B,SAAU,IAAKA,MAAM,CAAE,OAAO,KAAO,mBAAmB,GAAG,GAAKA,MAAK,CAAC,IAAM;AAAA,CAAM,EAEjH,SAAS,WAAW,MAAOyE,sBAAsB,CAChD,IAAI,GAAKA,sBAAuB,wBAA0B,YAC1D,OAAO,MAAM,QAAQ,GAAI,SAAU,MAAO,CAAE,OAAO,YAAY,KAAK,CAAG,CAAC,CACzE,CAEA,SAAS,UAAUzE,MAAM,QAAS,CAOjC,QANI,MAAQ,CAAC,EACT,WAAa,QAAQ,WACrB,cAAgB,QAAQ,YAAc,GACtC,oBAAsB,QAAQ,kBAAoB,GAClDf,OAAQ,EACR,KAAM,QACHe,OAAM,CAGZ,GAFA,KAAOA,MAEH,CAAC,SAAW,CAAC,mBAAmB,OAAO,EAAG,CAC7C,IAAI,QAAUA,MAAK,QAAQ,GAAG,EAC9B,GAAI,UAAY,EAAG,CAElB,GAAI,QAAQ,KAAKA,KAAI,EAAG,CACvB,IAAI,WAAaA,MAAK,QAAQ,KAAK,EAEnC,GAAI,YAAc,EAAG,CAChB,QAAQ,mBACX,QAAQ,QAAQA,MAAK,UAAU,EAAG,UAAU,EAAGf,OAAOA,OAAQ,WAAa,CAAC,EAE7E,QAAQ,WAAa,CAAC,EACtB,QACD,CACD,CAGA,GAAI,mBAAmB,KAAKe,KAAI,EAAG,CAClC,IAAI,eAAiBA,MAAK,QAAQ,IAAI,EAEtC,GAAI,gBAAkB,EAAG,CACxB,QAAQ,eAAiB,CAAC,EAC1B,QACD,CACD,CAGA,IAAI,aAAeA,MAAK,MAAM,OAAO,EACrC,GAAI,aAAc,CACjB,QAAQ,aAAa,CAAC,EAAE,MAAM,EAC9B,QACD,CAGA,IAAI,YAAcA,MAAK,MAAM,MAAM,EACnC,GAAI,YAAa,CAChB,IAAI,SAAWf,OACf,QAAQ,YAAY,CAAC,EAAE,MAAM,EAC7B,YAAY,YAAY,CAAC,EAAG,SAAUA,MAAK,EAC3C,QACD,CAGA,IAAI,cAAgB,cAAc,EAClC,GAAI,cAAe,CAClB,eAAe,aAAa,EACxB,yBAAyB,cAAc,QAASe,KAAI,GACvD,QAAQ,CAAC,EAEV,QACD,CACD,CAEA,IAAI,KAAQ,OAAS,KAAQ,OAASE,MAAQ,OAC9C,GAAI,SAAW,EAAG,CAEjB,IADA,KAAOF,MAAK,MAAM,OAAO,EAExB,CAAC,OAAO,KAAK,IAAI,GACjB,CAAC,aAAa,KAAK,IAAI,GACvB,CAAC,QAAQ,KAAK,IAAI,GAClB,CAAC,mBAAmB,KAAK,IAAI,IAG7BE,MAAO,KAAK,QAAQ,IAAK,CAAC,EACtB,EAAAA,MAAO,KACX,SAAWA,MACX,KAAOF,MAAK,MAAM,OAAO,EAE1B,KAAOA,MAAK,UAAU,EAAG,OAAO,CACjC,CAEI,QAAU,IACb,KAAOA,OAGJ,MACH,QAAQ,KAAK,MAAM,EAGhB,QAAQ,OAAS,MACpB,QAAQ,MAAM,KAAMf,OAAQ,KAAK,OAAQA,MAAK,CAEhD,KAAO,CACN,IAAI,aAAe,EACf,WAAa,QAAQ,YAAY,EACjC,aAAe,QAAQ,UAAU,IAAM,QAAQ,UAAU,EAAI,IAAI,OAAO,kBAAoB,WAAa,UAAW,GAAG,GACvH,OAASe,MAAK,QAAQ,aAAc,SAAU,IAAKC,MAAME,QAAQ,CACpE,oBAAeA,QAAO,OAClB,CAAC,mBAAmB,UAAU,GAAK,aAAe,aACrDF,MAAOA,MACL,QAAQ,sBAAuB,IAAI,EACnC,QAAQ,4BAA6B,IAAI,GAExC,yBAAyB,WAAYA,KAAI,IAC5CA,MAAOA,MAAK,MAAM,CAAC,GAEhB,QAAQ,OACX,QAAQ,MAAMA,KAAI,EAEZ,EACR,CAAC,EACDhB,QAASe,MAAK,OAAS,OAAO,OAC9BA,MAAO,OACP,YAAY,WAAYf,OAAQ,aAAcA,MAAK,CACpD,CAEA,GAAIe,QAAS,KAAM,CAClB,QAAQ,OAAS,QAAQ,MAAMA,KAAI,EAEnC,KACD,CACD,CAGA,YAAY,EAEZ,SAAS,QAAQ,EAAG,CACnBf,QAAS,EACTe,MAAOA,MAAK,UAAU,CAAC,CACxB,CAEA,SAAS,eAAgB,CACxB,IAAI,MAAQA,MAAK,MAAM,YAAY,EACnC,GAAI,MAAO,CACV,IAAI,MAAQ,CACX,QAAS,MAAM,CAAC,EAChB,MAAO,CAAC,EACR,MAAOf,MACR,EACA,QAAQ,MAAM,CAAC,EAAE,MAAM,EAEvB,QADI,IAAKyE,MACF,EAAE,IAAM1D,MAAK,MAAM,aAAa,KAAO0D,MAAO1D,MAAK,MAAM,mBAAmB,GAAKA,MAAK,MAAM,SAAS,IAC3G0D,MAAK,MAAQzE,OACb,QAAQyE,MAAK,CAAC,EAAE,MAAM,EACtBA,MAAK,IAAMzE,OACX,MAAM,MAAM,KAAKyE,KAAI,EAEtB,GAAI,IACH,aAAM,WAAa,IAAI,CAAC,EACxB,QAAQ,IAAI,CAAC,EAAE,MAAM,EACrB,MAAM,IAAMzE,OACL,KAET,CACD,CAEA,SAAS,eAAe,MAAO,CAC9B,IAAI2E,SAAU,MAAM,QAChB,WAAa,MAAM,WAEnB,aACC,UAAY,KAAO,iBAAiBA,QAAO,GAC9C,YAAY,OAAO,EAEhB,oBAAoBA,QAAO,GAAK,UAAYA,UAC/C,YAAYA,QAAO,GAQrB,QAJI,MAAQ,cAAcA,QAAO,GAAK,CAAC,CAAC,WAEpC,EAAI,MAAM,MAAM,OAChBX,OAAQ,IAAI,MAAM,CAAC,EACd,EAAI,EAAG,EAAI,EAAG,IAAK,CAC3B,IAAI,KAAO,MAAM,MAAM,CAAC,EACpB,MAAQ,KAAK,CAAC,GAAK,KAAK,CAAC,GAAK,KAAK,CAAC,GAAK,GACzCwB,sBAAuBb,WAAY,KAAO,KAAK,CAAC,IAAM,OACvD,QAAQ,4BACR,QAAQ,qBACXX,OAAM,CAAC,EAAI,CACV,KAAM,KAAK,CAAC,EACZ,MAAO,WAAW,MAAOwB,qBAAoB,CAC9C,CAED,CAEK,QACJ,MAAM,KAAK,CAAE,IAAKb,SAAS,cAAeA,SAAQ,YAAY,EAAG,MAAOX,OAAO,MAAO,MAAM,MAAO,IAAK,MAAM,GAAI,CAAC,EACnH,QAAUW,UAGP,QAAQ,OACX,QAAQ,MAAMA,SAASX,OAAO,MAAO,MAAM,MAAO,MAAM,GAAG,CAE7D,CAEA,SAAS,YAAYW,SAAS,MAAO,IAAK,CACzC,IAAI,IAAK,kBAKT,GAJI,OAAS,OAAQ,MAAQ3E,QACzB,KAAO,OAAQ,IAAMA,QAGrB2E,SAEH,IADA,kBAAoBA,SAAQ,YAAY,EACnC,IAAM,MAAM,OAAS,EAAG,KAAO,GAC/B,MAAM,GAAG,EAAE,gBAAkB,kBADK,MACtC,MAMD,IAAM,EAGP,GAAI,KAAO,EAAG,CAEb,QAAS,EAAI,MAAM,OAAS,EAAG,GAAK,IAAK,IAGpC,QAAQ,KACX,QAAQ,IAAI,MAAM,CAAC,EAAE,IAAK,MAAO,GAAG,EAKtC,MAAM,OAAS,IACf,QAAU,KAAO,MAAM,IAAM,CAAC,EAAE,GACjC,MAAW,oBAAsB,KAC5B,QAAQ,OACX,QAAQ,MAAMA,SAAS,CAAC,EAAG,GAAM,MAAO,GAAG,EAElC,oBAAsB,MAC5B,QAAQ,OACX,QAAQ,MAAMA,SAAS,CAAC,EAAG,GAAO,MAAO,GAAG,EAEzC,QAAQ,KACX,QAAQ,IAAIA,SAAS,MAAO,GAAG,EAGlC,CACD,CAIA,IAAI,KAAO,YACP,MAAQ,eACR,WAAa,qCACb,cAAgB,iCAChB,cAAgB,WAChB,aAAe,WAEf,MAAQ,SACR,OAAS,kBACT,WAAa,wBAEb,OAAS,kBAET,YAAc,SACd,eAAiB,gBAEjB,mBAAqB,cAErB,iBAAmB,OAAO,GAAG,MAAM,EAEnC,oBAAsB,UAGtB,OACA,WACA,WACA,cACA,eACA,iBACA,oBACA,wBACA,eAEJ,SAAS,iBACR,IACAX,OACA,OACC,CACD,MAAO,CACN,KAAM,EACN,IACA,UAAWA,OACX,SAAU,aAAaA,MAAK,EAC5B,YAAa,CAAC,EACd,OACA,SAAU,CAAC,CACZ,CACD,CAKA,SAAS,MACR,SACA,QACC,CACD,OAAS,QAAQ,MAAQ,SAEzB,iBAAmB,QAAQ,UAAY,GACvC,oBAAsB,QAAQ,aAAe,GAC7C,wBAA0B,QAAQ,iBAAmB,GACrD,IAAI7B,eAAgB,QAAQ,eAAiB,GAC7C,eAAiB,SAAU,GAAI,CAC9B,MAAO,CAAC,EACP,GAAG,WACH,GAAG,SAAS,KAAK,GACjB,GAAG,SAAS,WAAW,GACvB,EAAE,GAAG,SAAS,GAAKA,eAAc,GAAG,SAAS,EAAE,EAAIA,eAAc,GAAG,GAAG,GAEzE,EACA,WAAa,oBAAoB,QAAQ,QAAS,eAAe,EACjE,cAAgB,oBAAoB,QAAQ,QAAS,kBAAkB,EACvE,eAAiB,oBAAoB,QAAQ,QAAS,mBAAmB,EAEzE,WAAa,QAAQ,WAErB,IAAI,MAAQ,CAAC,EACT,mBAAqB,QAAQ,qBAAuB,GACpD,iBAAmB,QAAQ,WAC3B,KACA,cACA,OAAS,GACT,MAAQ,GACR,OAAS,GAEb,SAAS,SAAS,IAAKf,OAAO,CACxB,SACJ,OAAS,GACT,OAAO,IAAKA,MAAK,EAEnB,CAEA,SAAS,aAAa,QAAS,CAgB9B,GAfA,qBAAqB,OAAO,EACxB,CAAC,QAAU,CAAC,QAAQ,YACvB,QAAU,eAAe,QAAS,OAAO,GAGtC,CAAC,MAAM,QAAU,UAAY,MAE5B,KAAK,KAAO,QAAQ,QAAU,QAAQ,OAEzC,eAAe,KAAM,CACpB,IAAK,QAAQ,OACb,MAAO,OACR,CAAC,EAGC,eAAiB,CAAC,QAAQ,UAC7B,GAAI,QAAQ,QAAU,QAAQ,KAC7B,oBAAoB,QAAS,aAAa,MACpC,CACN,GAAI,QAAQ,UAAW,CAItB,IAAI,KAAO,QAAQ,YAAc,aAC7B,cAAc,cAAgB,cAAc,YAAc,CAAC,IAAI,IAAI,EAAI,OAC5E,CACA,cAAc,SAAS,KAAK,OAAO,EACnC,QAAQ,OAAS,aAClB,CAKD,QAAQ,SAAW,QAAQ,SAAS,OAAO,SAAU,EAAG,CAAE,MAAO,CAAE,EAAG,SAAW,CAAC,EAElF,qBAAqB,OAAO,EAGxB,QAAQ,MACX,OAAS,IAEN,iBAAiB,QAAQ,GAAG,IAC/B,MAAQ,IAGT,QAAS,EAAI,EAAG,EAAI,eAAe,OAAQ,IAC1C,eAAe,CAAC,EAAE,QAAS,OAAO,CAEpC,CAEA,SAAS,qBAAqB,GAAI,CAEjC,GAAI,CAAC,MAEJ,QADI,UAEF,SAAW,GAAG,SAAS,GAAG,SAAS,OAAS,CAAC,IAC9C,SAAS,OAAS,GAClB,SAAS,OAAS,KAElB,GAAG,SAAS,IAAI,CAGnB,CAEA,SAAS,qBAAqB,GAAI,EAC7B,GAAG,MAAQ,QAAU,GAAG,MAAQ,aACnC,SACC,eAAkB,GAAG,IAAO,qEAE5B,CAAE,MAAO,GAAG,KAAM,CACnB,EAEG,GAAG,SAAS,eAAe,OAAO,GACrC,SACC,4FAEA,GAAG,YAAY,OAAO,CACvB,CAEF,CAEA,iBAAU,SAAU,CACnB,KAAM,OACN,WAAY,QAAQ,WACpB,WAAY,QAAQ,WACpB,iBAAkB,QAAQ,iBAC1B,qBAAsB,QAAQ,qBAC9B,4BAA6B,QAAQ,4BACrC,kBAAmB,QAAQ,SAC3B,kBAAmB,QAAQ,kBAC3B,MAAO,SAAe,IAAK4C,OAAO,MAAO,QAAS,IAAK,CAGtD,IAAI,GAAM,eAAiB,cAAc,IAAO,wBAAwB,GAAG,EAIvE,MAAQ,KAAO,QAClBA,OAAQ,cAAcA,MAAK,GAG5B,IAAI,QAAU,iBAAiB,IAAKA,OAAO,aAAa,EACpD,KACH,QAAQ,GAAK,IAKV,eAAe,OAAO,GAAK,CAAC,kBAAkB,IACjD,QAAQ,UAAY,IAKrB,QAAS,EAAI,EAAG,EAAI,cAAc,OAAQ,IACzC,QAAU,cAAc,CAAC,EAAE,QAAS,OAAO,GAAK,QAG5C,SACJ,WAAW,OAAO,EACd,QAAQ,MACX,OAAS,KAGP,iBAAiB,QAAQ,GAAG,IAC/B,MAAQ,IAEL,OACH,gBAAgB,OAAO,EACZ,QAAQ,YAEnB,WAAW,OAAO,EAClB,UAAU,OAAO,EACjB,YAAY,OAAO,GAGf,OACJ,KAAO,SAIH,MAIJ,aAAa,OAAO,GAHpB,cAAgB,QAChB,MAAM,KAAK,OAAO,EAIpB,EAEA,IAAK,SAAa,IAAK,MAAO,MAAO,CACpC,IAAI,QAAU,MAAM,MAAM,OAAS,CAAC,EAEpC,MAAM,QAAU,EAChB,cAAgB,MAAM,MAAM,OAAS,CAAC,EAEtC,aAAa,OAAO,CACrB,EAEA,MAAO,SAAe,KAAM,MAAO,IAAK,CACvC,GAAK,eAMD,QACH,cAAc,MAAQ,YACtB,cAAc,SAAS,cAAgB,MAIxC,KAAIT,UAAW,cAAc,SAiB7B,GAhBI,OAAS,KAAK,KAAK,EACtB,KAAO,UAAU,aAAa,EAAI,KAAO,iBAAiB,IAAI,EACnDA,UAAS,OAGV,iBACN,mBAAqB,WAGxB,KAAO,YAAY,KAAK,IAAI,EAAI,GAAK,IAErC,KAAO,IAGR,KAAO,mBAAqB,IAAM,GAVlC,KAAO,GAYJ,KAAM,CACL,CAAC,OAAS,mBAAqB,aAElC,KAAO,KAAK,QAAQ,eAAgB,GAAG,GAExC,IAAI,IACA,MACA,CAAC,QAAU,OAAS,MAAQ,IAAM,UAAU,KAAM,UAAU,GAC/D,MAAQ,CACP,KAAM,EACN,WAAY,IAAI,WAChB,OAAQ,IAAI,OACZ,IACD,GACU,OAAS,KAAO,CAACA,UAAS,QAAUA,UAASA,UAAS,OAAS,CAAC,EAAE,OAAS,OACrF,MAAQ,CACP,KAAM,EACN,IACD,GAEG,OAEHA,UAAS,KAAK,KAAK,CAErB,EACD,EACA,QAAS,SAAiB,KAAM,MAAO,IAAK,CAG3C,GAAI,cAAe,CAClB,IAAI,MAAQ,CACX,KAAM,EACN,KACA,UAAW,EACZ,EAEA,cAAc,SAAS,KAAK,KAAK,CAClC,CACD,CACD,CAAC,EACM,IACR,CAEA,SAAS,WAAW,GAAI,CACnB,iBAAiB,GAAI,OAAO,GAAK,OACpC,GAAG,IAAM,GAEX,CAEA,SAAS,gBAAgB,GAAI,CAC5B,IAAI,KAAO,GAAG,UACV7B,KAAM,KAAK,OACf,GAAIA,KAEH,QADIsC,OAAQ,GAAG,MAAQ,IAAI,MAAMtC,IAAG,EAC3B,EAAI,EAAG,EAAIA,KAAK,IACxBsC,OAAM,CAAC,EAAI,CACV,KAAM,KAAK,CAAC,EAAE,KACd,MAAO,KAAK,UAAU,KAAK,CAAC,EAAE,KAAK,CACpC,EACI,KAAK,CAAC,EAAE,OAAS,OACpBA,OAAM,CAAC,EAAE,MAAQ,KAAK,CAAC,EAAE,MACzBA,OAAM,CAAC,EAAE,IAAM,KAAK,CAAC,EAAE,UAGd,GAAG,MAEd,GAAG,MAAQ,GAEb,CAEA,SAAS,eACR,QACA,QACC,CACD,WAAW,OAAO,EAIlB,QAAQ,MACP,CAAC,QAAQ,KACT,CAAC,QAAQ,aACT,CAAC,QAAQ,UAAU,OAGpB,WAAW,OAAO,EAClB,mBAAmB,OAAO,EAC1B,kBAAkB,OAAO,EACzB,iBAAiB,OAAO,EACxB,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,IACtC,QAAU,WAAW,CAAC,EAAE,QAAS,OAAO,GAAK,QAE9C,oBAAa,OAAO,EACb,OACR,CAEA,SAAS,WAAW,GAAI,CACvB,IAAI,IAAM,eAAe,GAAI,KAAK,EAClC,GAAI,IAAK,CACR,GAAI,EAAS,IAAI,OAAQ,SACzB,GAAG,IAAM,GACV,CACD,CAEA,SAAS,WAAW,GAAI,CACvB,IAAIzC,KAAM,eAAe,GAAI,KAAK,EAC9BA,OACH,GAAG,IAAMA,KACT,GAAG,SAAW,WAAW,EAAE,EAE7B,CAEA,SAAS,WAAW,GAAI,CACvB,IAAI,IACJ,GAAK,IAAM,iBAAiB,GAAI,OAAO,EAAI,CAC1C,IAAI,IAAM,SAAS,GAAG,EAClB,KACH,OAAO,GAAI,GAAG,CAEhB,CACD,CAIA,SAAS,SAAS,IAAK,CACtB,IAAI,QAAU,IAAI,MAAM,UAAU,EAClC,GAAK,QACL,KAAI,IAAM,CAAC,EACX,IAAI,IAAM,QAAQ,CAAC,EAAE,KAAK,EAC1B,IAAI,MAAQ,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,cAAe,EAAE,EACnD,cAAgB,MAAM,MAAM,aAAa,EAC7C,OAAI,eACH,IAAI,MAAQ,MAAM,QAAQ,cAAe,EAAE,EAAE,KAAK,EAClD,IAAI,UAAY,cAAc,CAAC,EAAE,KAAK,EAClC,cAAc,CAAC,IAClB,IAAI,UAAY,cAAc,CAAC,EAAE,KAAK,IAGvC,IAAI,MAAQ,MAEN,IACR,CAEA,SAAS,UAAU,GAAI,CACtB,IAAI,IAAM,iBAAiB,GAAI,MAAM,EACrC,GAAI,IACH,GAAG,GAAK,IACR,eAAe,GAAI,CAClB,IACA,MAAO,EACR,CAAC,MACK,CACF,iBAAiB,GAAI,QAAQ,GAAK,OACrC,GAAG,KAAO,IAEX,IAAI,OAAS,iBAAiB,GAAI,WAAW,EACzC,SACH,GAAG,OAAS,OAEd,CACD,CAEA,SAAS,oBAAoB,GAAI,OAAQ,CACxC,IAAIwD,MAAO,gBAAgB,OAAO,QAAQ,EACtCA,OAAQA,MAAK,IAChB,eAAeA,MAAM,CACpB,IAAK,GAAG,OACR,MAAO,EACR,CAAC,CAEH,CAEA,SAAS,gBAAgBxB,UAAU,CAElC,QADI,EAAIA,UAAS,OACV,KAAK,CACX,GAAIA,UAAS,CAAC,EAAE,OAAS,EACxB,OAAOA,UAAS,CAAC,EAGjBA,UAAS,IAAI,CAEf,CACD,CAEA,SAAS,eAAe,GAAI,UAAW,CACjC,GAAG,eACP,GAAG,aAAe,CAAC,GAEpB,GAAG,aAAa,KAAK,SAAS,CAC/B,CAEA,SAAS,YAAY,GAAI,CACxB,IAAI,QAAU,iBAAiB,GAAI,QAAQ,EACvC,SAAW,OACd,GAAG,KAAO,GAEZ,CAIA,SAAS,mBAAmB,GAAI,CAC/B,IAAI,UACA,GAAG,MAAQ,YACd,UAAY,iBAAiB,GAAI,OAAO,EAGxC,GAAG,UAAY,WAAa,iBAAiB,GAAI,YAAY,IAClD,UAAY,iBAAiB,GAAI,YAAY,KAGxD,GAAG,UAAY,WAIhB,IAAI,WAAa,eAAe,GAAI,MAAM,EAazC,GAZG,aACH,GAAG,WAAa,aAAe,KAAO,YAAc,WACpD,GAAG,kBAAoB,CAAC,EAAE,GAAG,SAAS,OAAO,GAAK,GAAG,SAAS,aAAa,GAGvE,GAAG,MAAQ,YAAc,CAAC,GAAG,WAChC,QAAQ,GAAI,OAAQ,WAAY,kBAAkB,GAAI,MAAM,CAAC,GAM1D,GAAG,MAAQ,WAAY,CAE1B,IAAI,YAAc,wBAAwB,GAAI,MAAM,EACpD,GAAI,YAAa,CAEhB,IAAIhC,KAAM,YAAY,WAAW,EAC7B,KAAOA,KAAI,KACX,QAAUA,KAAI,QAClB,GAAG,WAAa,KAChB,GAAG,kBAAoB,QACvB,GAAG,UAAY,YAAY,OAAS,mBACrC,CACD,KAAO,CAEN,IAAI,cAAgB,wBAAwB,GAAI,MAAM,EACtD,GAAI,cAAe,CAGlB,IAAI,MAAQ,GAAG,cAAgB,GAAG,YAAc,CAAC,GAC7Ca,OAAQ,YAAY,aAAa,EACjC,OAASA,OAAM,KACf,UAAYA,OAAM,QAClB,cAAgB,MAAM,MAAM,EAAI,iBAAiB,WAAY,CAAC,EAAG,EAAE,EACvE,cAAc,WAAa,OAC3B,cAAc,kBAAoB,UAClC,cAAc,SAAW,GAAG,SAAS,OAAO,SAAU,EAAG,CACxD,GAAI,CAAC,EAAE,UACN,SAAE,OAAS,cACJ,EAET,CAAC,EACD,cAAc,UAAY,cAAc,OAAS,oBAEjD,GAAG,SAAW,CAAC,EAEf,GAAG,MAAQ,EACZ,CACD,CAEF,CAEA,SAAS,YAAY,QAAS,CAC7B,IAAI,KAAO,QAAQ,KAAK,QAAQ,OAAQ,EAAE,EAC1C,OAAK,MACA,QAAQ,KAAK,CAAC,IAAM,MACvB,KAAO,WAGF,aAAa,KAAK,IAAI,EAE1B,CAAE,KAAM,KAAK,MAAM,EAAG,EAAE,EAAG,QAAS,EAAK,EAEzC,CAAE,KAAO,IAAO,KAAO,IAAO,QAAS,EAAM,CACjD,CAGA,SAAS,kBAAkB,GAAI,CAC1B,GAAG,MAAQ,SACd,GAAG,SAAW,eAAe,GAAI,MAAM,EAGzC,CAEA,SAAS,iBAAiB,GAAI,CAC7B,IAAI,SACC,QAAU,eAAe,GAAI,IAAI,KACrC,GAAG,UAAY,SAEZ,iBAAiB,GAAI,iBAAiB,GAAK,OAC9C,GAAG,eAAiB,GAEtB,CAEA,SAAS,aAAa,GAAI,CACzB,IAAI,KAAO,GAAG,UACV,EAAG,EAAG,KAAM,QAAS,MAAO,UAAW,QAAS,UACpD,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAGnC,GAFA,KAAO,QAAU,KAAK,CAAC,EAAE,KACzB,MAAQ,KAAK,CAAC,EAAE,MACZ,MAAM,KAAK,IAAI,EASlB,GAPA,GAAG,YAAc,GAEjB,UAAY,eAAe,KAAK,QAAQ,MAAO,EAAE,CAAC,EAE9C,YACH,KAAO,KAAK,QAAQ,WAAY,EAAE,GAE/B,OAAO,KAAK,IAAI,EACnB,KAAO,KAAK,QAAQ,OAAQ,EAAE,EAC9B,MAAQ,aAAa,KAAK,EAC1B,UAAY,aAAa,KAAK,IAAI,EAC9B,YACH,KAAO,KAAK,MAAM,EAAG,EAAE,GAKpB,YACC,UAAU,MAAQ,CAAC,YACtB,KAAO,SAAS,IAAI,EAChB,OAAS,cAAe,KAAO,cAEhC,UAAU,OAAS,CAAC,YACvB,KAAO,SAAS,IAAI,GAEjB,UAAU,OACb,QAAU,kBAAkB,MAAO,QAAQ,EACtC,UAuBJ,WACC,GACC,cAAkB,KAAO,IAC1B,QACA,KACA,GACA,OACA,KAAK,CAAC,EACN,EACD,GA/BA,WACC,GACC,UAAa,SAAS,IAAI,EAC3B,QACA,KACA,GACA,OACA,KAAK,CAAC,CACP,EACI,UAAU,IAAI,IAAM,SAAS,IAAI,GACpC,WACC,GACC,UAAa,UAAU,IAAI,EAC5B,QACA,KACA,GACA,OACA,KAAK,CAAC,CACP,KAiBC,WAAa,UAAU,MAC3B,CAAC,GAAG,WAAa,oBAAoB,GAAG,IAAK,GAAG,SAAS,KAAM,IAAI,EAEnE,QAAQ,GAAI,KAAM,MAAO,KAAK,CAAC,EAAG,SAAS,EAE3C,QAAQ,GAAI,KAAM,MAAO,KAAK,CAAC,EAAG,SAAS,UAElC,KAAK,KAAK,IAAI,EACxB,KAAO,KAAK,QAAQ,KAAM,EAAE,EAC5B,UAAY,aAAa,KAAK,IAAI,EAC9B,YACH,KAAO,KAAK,MAAM,EAAG,EAAE,GAExB,WAAW,GAAI,KAAM,MAAO,UAAW,GAAO,OAAQ,KAAK,CAAC,EAAG,SAAS,MAClE,CACN,KAAO,KAAK,QAAQ,MAAO,EAAE,EAE7B,IAAI,SAAW,KAAK,MAAM,KAAK,EAC3B,IAAM,UAAY,SAAS,CAAC,EAChC,UAAY,GACR,MACH,KAAO,KAAK,MAAM,EAAG,EAAE,IAAI,OAAS,EAAE,EAClC,aAAa,KAAK,GAAG,IACxB,IAAM,IAAI,MAAM,EAAG,EAAE,EACrB,UAAY,KAGd,aAAa,GAAI,KAAM,QAAS,MAAO,IAAK,UAAW,UAAW,KAAK,CAAC,CAAC,CAE1E,KACM,CAEN,GAAI,EAAS,IAAI,IACjB,QAAQ,GAAI,KAAM,KAAK,UAAU,KAAK,EAAG,KAAK,CAAC,CAAC,EAG5C,CAAC,GAAG,WACP,OAAS,SACT,oBAAoB,GAAG,IAAK,GAAG,SAAS,KAAM,IAAI,GAClD,QAAQ,GAAI,KAAM,OAAQ,KAAK,CAAC,CAAC,CAEnC,CAEF,CAEA,SAAS,WAAW,GAAI,CAEvB,QADI,OAAS,GACN,QAAQ,CACd,GAAI,OAAO,MAAQ,OAClB,MAAO,GAER,OAAS,OAAO,MACjB,CACA,MAAO,EACR,CAEA,SAAS,eAAe,KAAM,CAC7B,IAAI,MAAQ,KAAK,MAAM,UAAU,EACjC,GAAI,MAAO,CACV,IAAI,IAAM,CAAC,EACX,aAAM,QAAQ,SAAU,EAAG,CAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAI,EAAM,CAAC,EAC/C,GACR,CACD,CAEA,SAAS,aAAa4B,OAAO,CAE5B,QADIX,KAAM,CAAC,EACF,EAAI,EAAG,EAAIW,OAAM,OAAQ,EAAI,EAAG,IAIxCX,KAAIW,OAAM,CAAC,EAAE,IAAI,EAAIA,OAAM,CAAC,EAAE,MAE/B,OAAOX,IACR,CAGA,SAAS,UAAU,GAAI,CACtB,OAAO,GAAG,MAAQ,UAAY,GAAG,MAAQ,OAC1C,CAEA,SAAS,eAAe,GAAI,CAC3B,OACC,GAAG,MAAQ,SACV,GAAG,MAAQ,WACX,CAAC,GAAG,SAAS,MACb,GAAG,SAAS,OAAS,kBAGxB,CAEA,IAAI,QAAU,eACV,WAAa,UAGjB,SAAS,cAAcW,OAAO,CAE7B,QADI,IAAM,CAAC,EACF,EAAI,EAAG,EAAIA,OAAM,OAAQ,IAAK,CACtC,IAAIS,MAAOT,OAAM,CAAC,EACb,QAAQ,KAAKS,MAAK,IAAI,IAC1BA,MAAK,KAAOA,MAAK,KAAK,QAAQ,WAAY,EAAE,EAC5C,IAAI,KAAKA,KAAI,EAEf,CACA,OAAO,GACR,CAEA,SAAS,mBAAmB,GAAI,MAAO,CAEtC,QADI,IAAM,GACH,KACF,IAAI,KAAO,IAAI,QAAU,OAC5B,OACC,IAAO,GAAG,IAAO,aAAgB,MAAQ,sRAKzC,GAAG,YAAY,SAAS,CACzB,EAED,IAAM,IAAI,MAEZ,CAIA,SAAS,iBAAiB,GAAI,QAAS,CACtC,GAAI,GAAG,MAAQ,QAAS,CACvB,IAAIpB,KAAM,GAAG,SACb,GAAI,CAACA,KAAI,SAAS,EACjB,OAGD,IAAI,YAQJ,IAPIA,KAAI,OAAO,GAAKA,KAAI,aAAa,KACpC,YAAc,eAAe,GAAI,MAAM,GAEpC,CAACA,KAAI,MAAQ,CAAC,aAAeA,KAAI,QAAQ,IAC5C,YAAc,IAAOA,KAAI,QAAQ,EAAK,UAGnC,YAAa,CAChB,IAAI,YAAc,iBAAiB,GAAI,OAAQ,EAAI,EAC/C,iBAAmB,YAAe,MAAQ,YAAc,IAAO,GAC/D,QAAU,iBAAiB,GAAI,SAAU,EAAI,GAAK,KAClD,gBAAkB,iBAAiB,GAAI,YAAa,EAAI,EAExD,QAAU,gBAAgB,EAAE,EAEhC,WAAW,OAAO,EAClB,WAAW,QAAS,OAAQ,UAAU,EACtC,eAAe,QAAS,OAAO,EAC/B,QAAQ,UAAY,GACpB,QAAQ,GAAK,IAAM,YAAc,iBAAmB,iBACpD,eAAe,QAAS,CACvB,IAAK,QAAQ,GACb,MAAO,OACR,CAAC,EAED,IAAI,QAAU,gBAAgB,EAAE,EAChC,iBAAiB,QAAS,QAAS,EAAI,EACvC,WAAW,QAAS,OAAQ,OAAO,EACnC,eAAe,QAAS,OAAO,EAC/B,eAAe,QAAS,CACvB,IAAK,IAAM,YAAc,cAAgB,iBACzC,MAAO,OACR,CAAC,EAED,IAAI,QAAU,gBAAgB,EAAE,EAChC,wBAAiB,QAAS,QAAS,EAAI,EACvC,WAAW,QAAS,QAAS,WAAW,EACxC,eAAe,QAAS,OAAO,EAC/B,eAAe,QAAS,CACvB,IAAK,YACL,MAAO,OACR,CAAC,EAEG,QACH,QAAQ,KAAO,GACL,kBACV,QAAQ,OAAS,iBAGX,OACR,CACD,CACD,CAEA,SAAS,gBAAgB,GAAI,CAC5B,OAAO,iBAAiB,GAAG,IAAK,GAAG,UAAU,MAAM,EAAG,GAAG,MAAM,CAChE,CAEA,IAAI,QAAU,CACb,gBACD,EAEI,UAAY,CACf,QACA,QACA,OACD,EAIA,SAAS,aAAa,GAAI,IAAK,CAC1B,IAAI,OACP,QAAQ,GAAI,cAAgB,MAAS,IAAI,MAAS,IAAM,GAAG,CAE7D,CAIA,SAAS,KAAK,GAAI,IAAK,CAClB,IAAI,OACP,QAAQ,GAAI,YAAc,MAAS,IAAI,MAAS,IAAM,GAAG,CAE3D,CAEA,IAAI,aAAe,CAClB,MACA,KAAM,aACN,IACD,EAII,YAAc,CACjB,WAAY,GACZ,QAAS,UACT,WAAY,aACZ,SACA,WACA,YACA,iBACA,cACA,gBACA,WAAY,cAAc,SAAS,CACpC,EAII,YACA,sBAEA,oBAAsB,OAAO,eAAe,EAahD,SAAS,SAAS,KAAM,QAAS,CAC3B,OACL,YAAc,oBAAoB,QAAQ,YAAc,EAAE,EAC1D,sBAAwB,QAAQ,eAAiB,GAEjD,aAAa,IAAI,EAEjB,gBAAgB,KAAM,EAAK,EAC5B,CAEA,SAAS,gBAAgB,KAAM,CAC9B,OAAO,QACN,iFACC,KAAO,IAAM,KAAO,GACtB,CACD,CAEA,SAAS,aAAa,KAAM,CAE3B,GADA,KAAK,OAAS,SAAS,IAAI,EACvB,KAAK,OAAS,EAAG,CAIpB,GACC,CAAC,sBAAsB,KAAK,GAAG,GAC/B,KAAK,MAAQ,QACb,KAAK,SAAS,iBAAiB,GAAK,KAEpC,OAED,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAAK,CACrD,IAAI,MAAQ,KAAK,SAAS,CAAC,EAC3B,aAAa,KAAK,EACb,MAAM,SACV,KAAK,OAAS,GAEhB,CACA,GAAI,KAAK,aACR,QAAS,IAAM,EAAG,IAAM,KAAK,aAAa,OAAQ,IAAM,IAAK,MAAO,CACnE,IAAI,MAAQ,KAAK,aAAa,GAAG,EAAE,MACnC,aAAa,KAAK,EACb,MAAM,SACV,KAAK,OAAS,GAEhB,CAEF,CACD,CAEA,SAAS,gBAAgB,KAAM,QAAS,CACvC,GAAI,KAAK,OAAS,EAAG,CAOpB,IANI,KAAK,QAAU,KAAK,QACvB,KAAK,YAAc,SAKhB,KAAK,QAAU,KAAK,SAAS,QAAU,EAC1C,KAAK,SAAS,SAAW,GACzB,KAAK,SAAS,CAAC,EAAE,OAAS,GACxB,CACF,KAAK,WAAa,GAClB,MACD,MACC,KAAK,WAAa,GAEnB,GAAI,KAAK,SACR,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAI,EAAG,IAChD,gBAAgB,KAAK,SAAS,CAAC,EAAG,SAAW,CAAC,CAAC,KAAK,GAAG,EAGzD,GAAI,KAAK,aACR,QAAS,IAAM,EAAG,IAAM,KAAK,aAAa,OAAQ,IAAM,IAAK,MAC5D,gBAAgB,KAAK,aAAa,GAAG,EAAE,MAAO,OAAO,CAGxD,CACD,CAEA,SAAS,SAAS,KAAM,CACvB,OAAI,KAAK,OAAS,EACV,GAEJ,KAAK,OAAS,EACV,GAED,CAAC,EAAE,KAAK,KACd,CAAC,KAAK,aACN,CAAC,KAAK,IAAM,CAAC,KAAK,KAClB,CAAC,aAAa,KAAK,GAAG,GACtB,sBAAsB,KAAK,GAAG,GAC9B,CAAC,2BAA2B,IAAI,GAChC,OAAO,KAAK,IAAI,EAAE,MAAM,WAAW,EAErC,CAEA,SAAS,2BAA2B,KAAM,CACzC,KAAO,KAAK,QAAQ,CAEnB,GADA,KAAO,KAAK,OACR,KAAK,MAAQ,WAChB,MAAO,GAER,GAAI,KAAK,IACR,MAAO,EAET,CACA,MAAO,EACR,CAIA,IAAI,QAAU,0DACV,WAAa,gBACb,aAAe,+FAGf,SAAW,CACd,IAAK,GACL,IAAK,EACL,MAAO,GACP,MAAO,GACP,GAAI,GACJ,KAAM,GACN,MAAO,GACP,KAAM,GACN,OAAU,CAAC,EAAG,EAAE,CACjB,EAGI,SAAW,CAEd,IAAK,CAAC,MAAO,QAAQ,EACrB,IAAK,MACL,MAAO,QAEP,MAAO,CAAC,IAAK,UAAU,EAEvB,GAAI,CAAC,KAAM,SAAS,EACpB,KAAM,CAAC,OAAQ,WAAW,EAC1B,MAAO,CAAC,QAAS,YAAY,EAC7B,KAAM,CAAC,OAAQ,WAAW,EAE1B,OAAU,CAAC,YAAa,SAAU,KAAK,CACxC,EAKI,SAAW,SAAU,UAAW,CAAE,MAAQ,MAAQ,UAAY,eAAkB,EAEhF,aAAe,CAClB,KAAM,4BACN,QAAS,2BACT,KAAM,SAAS,wCAAwC,EACvD,KAAM,SAAS,iBAAiB,EAChC,MAAO,SAAS,kBAAkB,EAClC,IAAK,SAAS,gBAAgB,EAC9B,KAAM,SAAS,iBAAiB,EAChC,KAAM,SAAS,2CAA2C,EAC1D,OAAQ,SAAS,2CAA2C,EAC5D,MAAO,SAAS,2CAA2C,CAC5D,EAEA,SAAS,YACR4B,QACA5C,UACC,CACD,IAAI,OAASA,UAAW,YAAc,MAClC,eAAiB,GACjB,gBAAkB,GACtB,QAAS,QAAQ4C,QAAQ,CACxB,IAAI,YAAc,WAAWA,QAAO,IAAI,CAAC,EACrCA,QAAO,IAAI,GAAKA,QAAO,IAAI,EAAE,QAChC,iBAAmB,KAAO,IAAM,YAAc,IAE9C,gBAAkB,IAAO,KAAO,KAAQ,YAAc,GAExD,CAEA,OADA,eAAiB,IAAO,eAAe,MAAM,EAAG,EAAE,EAAK,IACnD,gBACI,OAAS,MAAQ,eAAiB,KAAQ,gBAAgB,MAAM,EAAG,EAAE,EAAK,KAE1E,OAAS,cAElB,CAEA,SAAS,WAAW,QAAS,CAC5B,GAAI,CAAC,QACJ,MAAO,eAGR,GAAI,MAAM,QAAQ,OAAO,EACxB,MAAQ,IAAO,QAAQ,IAAI,SAAU3C,SAAS,CAAE,OAAO,WAAWA,QAAO,CAAG,CAAC,EAAE,KAAK,GAAG,EAAK,IAG7F,IAAI,aAAe,aAAa,KAAK,QAAQ,KAAK,EAC9C,qBAAuB,QAAQ,KAAK,QAAQ,KAAK,EACjD,qBAAuB,aAAa,KAAK,QAAQ,MAAM,QAAQ,WAAY,EAAE,CAAC,EAElF,GAAK,QAAQ,UAKN,CACN,IAAI,KAAO,GACP,gBAAkB,GAClB,KAAO,CAAC,EACZ,QAAS,OAAO,QAAQ,UACvB,GAAI,aAAa,GAAG,EACnB,iBAAmB,aAAa,GAAG,EAE/B,SAAS,GAAG,GACf,KAAK,KAAK,GAAG,UAEJ,MAAQ,QAAS,CAC3B,IAAI,UAAa,QAAQ,UACzB,iBAAmB,SAClB,CAAC,OAAQ,QAAS,MAAO,MAAM,EAC7B,OAAO,SAAU,YAAa,CAAE,MAAO,CAAC,UAAU,WAAW,CAAG,CAAC,EACjE,IAAI,SAAU,YAAa,CAAE,MAAQ,UAAY,YAAc,KAAQ,CAAC,EACxE,KAAK,IAAI,CACZ,CACD,MACC,KAAK,KAAK,GAAG,EAGX,KAAK,SACR,MAAQ,aAAa,IAAI,GAGtB,kBACH,MAAQ,iBAET,IAAI,YAAc,aACd,UAAa,QAAQ,MAAS,0BAC/B,qBACE,WAAc,QAAQ,MAAS,2BAChC,qBACE,UAAa,QAAQ,MACtB,QAAQ,MACb,MAAQ,oBAAsB,KAAO,YAAc,GACpD,KA1CC,QAAI,cAAgB,qBACZ,QAAQ,MAER,qBAAuB,qBAAwB,UAAa,QAAQ,MAAU,QAAQ,OAAS,GAwCzG,CAEA,SAAS,aAAa,KAAM,CAC3B,MAIC,mCACC,KAAK,IAAI,aAAa,EAAE,KAAK,IAAI,EAAK,eAEzC,CAEA,SAAS,cAAc,IAAK,CAC3B,IAAI,OAAS,SAAS,IAAK,EAAE,EAC7B,GAAI,OACH,MAAQ,oBAAsB,OAE/B,IAAI,QAAU,SAAS,GAAG,EACtB,QAAU,SAAS,GAAG,EAC1B,MACC,qBACC,KAAK,UAAU,GAAG,EAAK,IACvB,KAAK,UAAU,OAAO,EAAK,eAEtB,KAAK,UAAU,OAAO,EAC5B,GAEF,CAIA,SAAS,GAAG,GAAI,IAAK,CAEpB,GAAG,cAAgB,SAAU,KAAM,CAAE,MAAQ,MAAQ,KAAO,IAAO,IAAI,MAAS,GAAM,CACvF,CAIA,SAAS,OAAO,GAAI,IAAK,CACxB,GAAG,SAAW,SAAU,KAAM,CAC7B,MAAQ,MAAQ,KAAO,KAAQ,GAAG,IAAO,KAAQ,IAAI,MAAS,KAAO,IAAI,WAAa,IAAI,UAAU,KAAO,OAAS,UAAY,IAAI,WAAa,IAAI,UAAU,KAAO,QAAU,IAAM,GACvL,CACD,CAIA,IAAI,eAAiB,CACpB,GACA,KAAM,OACN,MAAO,IACR,EAQI,aAAe,SAAsB,QAAS,CACjD,KAAK,QAAU,QACf,KAAK,KAAO,QAAQ,MAAQ,SAC5B,KAAK,WAAa,oBAAoB,QAAQ,QAAS,eAAe,EACtE,KAAK,WAAa,oBAAoB,QAAQ,QAAS,SAAS,EAChE,KAAK,WAAa,OAAO,OAAO,CAAC,EAAG,cAAc,EAAG,QAAQ,UAAU,EACvE,IAAIH,eAAgB,QAAQ,eAAiB,GAC7C,KAAK,eAAiB,SAAU,GAAI,CAAE,MAAO,CAAC,CAAC,GAAG,WAAa,CAACA,eAAc,GAAG,GAAG,CAAG,EACvF,KAAK,OAAS,EACd,KAAK,gBAAkB,CAAC,EACxB,KAAK,IAAM,EACZ,EAIA,SAAS,SACR,IACA,QACC,CACD,IAAI,MAAQ,IAAI,aAAa,OAAO,EAEhC,KAAO,IAAO,IAAI,MAAQ,SAAW,OAAS,WAAW,IAAK,KAAK,EAAK,YAC5E,MAAO,CACN,OAAS,qBAAuB,KAAO,IACvC,gBAAiB,MAAM,eACxB,CACD,CAEA,SAAS,WAAW,GAAI,MAAO,CAK9B,GAJI,GAAG,SACN,GAAG,IAAM,GAAG,KAAO,GAAG,OAAO,KAG1B,GAAG,YAAc,CAAC,GAAG,gBACxB,OAAO,UAAU,GAAI,KAAK,EACpB,GAAI,GAAG,MAAQ,CAAC,GAAG,cACzB,OAAO,QAAQ,GAAI,KAAK,EAClB,GAAI,GAAG,KAAO,CAAC,GAAG,aACxB,OAAO,OAAO,GAAI,KAAK,EACjB,GAAI,GAAG,IAAM,CAAC,GAAG,YACvB,OAAO,MAAM,GAAI,KAAK,EAChB,GAAI,GAAG,MAAQ,YAAc,CAAC,GAAG,YAAc,CAAC,MAAM,IAC5D,OAAO,YAAY,GAAI,KAAK,GAAK,SAC3B,GAAI,GAAG,MAAQ,OACrB,OAAO,QAAQ,GAAI,KAAK,EAGxB,IAAI,KACJ,GAAI,GAAG,UACN,KAAO,aAAa,GAAG,UAAW,GAAI,KAAK,MACrC,CACN,IAAItC,OACA,CAAC,GAAG,OAAU,GAAG,KAAO,MAAM,eAAe,EAAE,KAClDA,MAAO,UAAU,GAAI,KAAK,GAG3B,IAAI0D,UAAW,GAAG,eAAiB,KAAO,YAAY,GAAI,MAAO,EAAI,EACrE,KAAO,OAAU,GAAG,IAAO,KAAO1D,MAAQ,IAAMA,MAAQ,KAAO0D,UAAY,IAAMA,UAAY,IAAM,GACpG,CAEA,QAAS,EAAI,EAAG,EAAI,MAAM,WAAW,OAAQ,IAC5C,KAAO,MAAM,WAAW,CAAC,EAAE,GAAI,IAAI,EAEpC,OAAO,IAET,CAGA,SAAS,UAAU,GAAI,MAAO,CAC7B,GAAG,gBAAkB,GAIrB,IAAI,iBAAmB,MAAM,IAC7B,OAAI,GAAG,MACN,MAAM,IAAM,GAAG,KAEhB,MAAM,gBAAgB,KAAM,qBAAwB,WAAW,GAAI,KAAK,EAAK,GAAI,EACjF,MAAM,IAAM,iBACJ,OAAS,MAAM,gBAAgB,OAAS,IAAM,GAAG,YAAc,QAAU,IAAM,GACxF,CAGA,SAAS,QAAQ,GAAI,MAAO,CAE3B,GADA,GAAG,cAAgB,GACf,GAAG,IAAM,CAAC,GAAG,YAChB,OAAO,MAAM,GAAI,KAAK,EAChB,GAAI,GAAG,YAAa,CAG1B,QAFI,IAAM,GACN,OAAS,GAAG,OACT,QAAQ,CACd,GAAI,OAAO,IAAK,CACf,IAAM,OAAO,IACb,KACD,CACA,OAAS,OAAO,MACjB,CACA,OAAK,IAIG,MAAS,WAAW,GAAI,KAAK,EAAK,IAAO,MAAM,SAAY,IAAM,IAAM,IAFvE,WAAW,GAAI,KAAK,CAG7B,KACC,QAAO,UAAU,GAAI,KAAK,CAE5B,CAEA,SAAS,MACR,GACA,MACA,OACA,SACC,CACD,UAAG,YAAc,GACV,gBAAgB,GAAG,aAAa,MAAM,EAAG,MAAO,OAAQ,QAAQ,CACxE,CAEA,SAAS,gBACR,WACA,MACA,OACA,SACC,CACD,GAAI,CAAC,WAAW,OACf,OAAO,UAAY,OAGpB,IAAI,UAAY,WAAW,MAAM,EACjC,GAAI,UAAU,IACb,MAAQ,IAAO,UAAU,IAAO,KAAQ,cAAc,UAAU,KAAK,EAAK,IAAO,gBAAgB,WAAY,MAAO,OAAQ,QAAQ,EAEpI,MAAQ,GAAM,cAAc,UAAU,KAAK,EAI5C,SAAS,cAAc,GAAI,CAC1B,OAAO,OACJ,OAAO,GAAI,KAAK,EAChB,GAAG,KACF,QAAQ,GAAI,KAAK,EACjB,WAAW,GAAI,KAAK,CACzB,CACD,CAEA,SAAS,OACR,GACA,MACA,OACA,UACC,CACD,IAAI,IAAM,GAAG,IACT,MAAQ,GAAG,MACX,UAAY,GAAG,UAAa,IAAO,GAAG,UAAc,GACpD,UAAY,GAAG,UAAa,IAAO,GAAG,UAAc,GAKxD,UAAG,aAAe,IACV,WAAa,MAAQ,KAAO,IAAM,cAC3B,MAAQ,UAAY,UAAY,aAChC,QAAU,YAAY,GAAI,KAAK,EAC7C,IACF,CAEA,SAAS,UAAU,GAAI,MAAO,CAC7B,IAAI1D,MAAO,IAIP,KAAO,cAAc,GAAI,KAAK,EAC9B,OAAQA,OAAQ,KAAO,KAGvB,GAAG,MACNA,OAAQ,OAAU,GAAG,IAAO,KAGzB,GAAG,MACNA,OAAQ,OAAU,GAAG,IAAO,KAEzB,GAAG,WACNA,OAAQ,kBAGL,GAAG,MACNA,OAAQ,aAGL,GAAG,YACNA,OAAQ,QAAY,GAAG,IAAO,MAG/B,QAAS,EAAI,EAAG,EAAI,MAAM,WAAW,OAAQ,IAC5CA,OAAQ,MAAM,WAAW,CAAC,EAAE,EAAE,EA+B/B,GA5BI,GAAG,QACNA,OAAQ,SAAY,SAAS,GAAG,KAAK,EAAK,KAGvC,GAAG,QACNA,OAAQ,YAAe,SAAS,GAAG,KAAK,EAAK,KAG1C,GAAG,SACNA,OAAS,YAAY,GAAG,OAAQ,EAAK,EAAK,KAEvC,GAAG,eACNA,OAAS,YAAY,GAAG,aAAc,EAAI,EAAK,KAI5C,GAAG,YAAc,CAAC,GAAG,YACxBA,OAAQ,QAAW,GAAG,WAAc,KAGjC,GAAG,cACNA,OAAS,eAAe,GAAI,GAAG,YAAa,KAAK,EAAK,KAGnD,GAAG,QACNA,OAAQ,gBAAmB,GAAG,MAAM,MAAS,aAAgB,GAAG,MAAM,SAAY,eAAkB,GAAG,MAAM,WAAc,MAGxH,GAAG,eAAgB,CACtB,IAAI,eAAiB,kBAAkB,GAAI,KAAK,EAC5C,iBACHA,OAAQ,eAAiB,IAE3B,CACA,OAAAA,MAAOA,MAAK,QAAQ,KAAM,EAAE,EAAI,IAI5B,GAAG,eACNA,MAAO,MAAQA,MAAO,KAAS,GAAG,IAAO,KAAS,SAAS,GAAG,YAAY,EAAK,KAG5E,GAAG,WACNA,MAAO,GAAG,SAASA,KAAI,GAGpB,GAAG,gBACNA,MAAO,GAAG,cAAcA,KAAI,GAEtBA,KACR,CAEA,SAAS,cAAc,GAAI,MAAO,CACjC,IAAI,KAAO,GAAG,WACd,GAAK,KACL,KAAI,IAAM,eACN,WAAa,GACb,EAAG,EAAG,IAAK,YACf,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,EAAI,EAAG,IAAK,CACxC,IAAM,KAAK,CAAC,EACZ,YAAc,GACd,IAAI,IAAM,MAAM,WAAW,IAAI,IAAI,EAC/B,MAGH,YAAc,CAAC,CAAC,IAAI,GAAI,IAAK,MAAM,IAAI,GAEpC,cACH,WAAa,GACb,KAAO,UAAc,IAAI,KAAQ,cAAmB,IAAI,QAAW,KAAQ,IAAI,MAAS,WAAc,IAAI,MAAS,gBAAmB,KAAK,UAAU,IAAI,KAAK,EAAM,KAAO,IAAI,IAAO,SAAW,IAAI,aAAe,IAAI,IAAO,IAAQ,IAAI,IAAO,KAAU,KAAO,IAAI,UAAa,cAAiB,KAAK,UAAU,IAAI,SAAS,EAAM,IAAM,KAE/U,CACA,GAAI,WACH,OAAO,IAAI,MAAM,EAAG,EAAE,EAAI,IAE5B,CAEA,SAAS,kBAAkB,GAAI,MAAO,CACrC,IAAI,IAAM,GAAG,SAAS,CAAC,EAEvB,GAAI,KAAO,IAAI,OAAS,EAAG,CAC1B,IAAI,gBAAkB,SAAS,IAAK,MAAM,OAAO,EACjD,MAAQ,qCAAwC,gBAAgB,OAAU,sBAAyB,gBAAgB,gBAAgB,IAAI,SAAU,KAAM,CAAE,MAAQ,cAAgB,KAAO,GAAM,CAAC,EAAE,KAAK,GAAG,EAAK,IAC/M,CACD,CAEA,SAAS,eACR,GACA,MACA,MACC,CAKD,IAAI,iBAAmB,GAAG,KAAO,OAAO,KAAK,KAAK,EAAE,KAAK,SAAU,IAAK,CACvE,IAAI,KAAO,MAAM,GAAG,EACpB,OACC,KAAK,mBACL,KAAK,IACL,KAAK,KACL,kBAAkB,IAAI,CAExB,CAAC,EAMG,SAAW,CAAC,CAAC,GAAG,GAOpB,GAAI,CAAC,iBAEJ,QADI,OAAS,GAAG,OACT,QAAQ,CACd,GACE,OAAO,WAAa,OAAO,YAAc,qBAC1C,OAAO,IACN,CACD,iBAAmB,GACnB,KACD,CACI,OAAO,KACV,SAAW,IAEZ,OAAS,OAAO,MACjB,CAGD,IAAI,eAAiB,OAAO,KAAK,KAAK,EACpC,IAAI,SAAU,IAAK,CAAE,OAAO,cAAc,MAAM,GAAG,EAAG,KAAK,CAAG,CAAC,EAC/D,KAAK,GAAG,EAEV,MAAQ,mBAAqB,eAAiB,KAAO,iBAAmB,aAAe,KAAO,CAAC,kBAAoB,SAAY,eAAkB,KAAK,cAAc,EAAM,IAAM,GACjL,CAEA,SAAS,KAAKe,KAAK,CAGlB,QAFI2B,MAAO,KACP,EAAI3B,KAAI,OACL,GACN2B,MAAQA,MAAO,GAAM3B,KAAI,WAAW,EAAE,CAAC,EAExC,OAAO2B,QAAS,CACjB,CAEA,SAAS,kBAAkB,GAAI,CAC9B,OAAI,GAAG,OAAS,EACX,GAAG,MAAQ,OACP,GAED,GAAG,SAAS,KAAK,iBAAiB,EAEnC,EACR,CAEA,SAAS,cACR,GACA,MACC,CACD,IAAI,eAAiB,GAAG,SAAS,YAAY,EAC7C,GAAI,GAAG,IAAM,CAAC,GAAG,aAAe,CAAC,eAChC,OAAO,MAAM,GAAI,MAAO,cAAe,MAAM,EAE9C,GAAI,GAAG,KAAO,CAAC,GAAG,aACjB,OAAO,OAAO,GAAI,MAAO,aAAa,EAEvC,IAAI,UAAY,GAAG,YAAc,oBAC9B,GACA,OAAO,GAAG,SAAS,EAClB,GAAK,YAAc,UAAY,aACrB,GAAG,MAAQ,WACrB,GAAG,IAAM,eACP,IAAO,GAAG,GAAM,MAAQ,YAAY,GAAI,KAAK,GAAK,aAAe,aAClE,YAAY,GAAI,KAAK,GAAK,YAC3B,WAAW,GAAI,KAAK,GAAK,IAEzB,aAAe,UAAY,GAAK,cACpC,MAAQ,SAAW,GAAG,YAAc,aAAiB,OAAS,GAAK,aAAe,GACnF,CAEA,SAAS,YACR,GACA,MACA,UACA,cACA,WACC,CACD,IAAIgB,UAAW,GAAG,SAClB,GAAIA,UAAS,OAAQ,CACpB,IAAI,KAAOA,UAAS,CAAC,EAErB,GAAIA,UAAS,SAAW,GACvB,KAAK,KACL,KAAK,MAAQ,YACb,KAAK,MAAQ,OACZ,CACD,IAAI,kBAAoB,UACrB,MAAM,eAAe,IAAI,EAAI,KAAO,KACpC,GACH,MAAQ,IAAO,eAAiB,YAAY,KAAM,KAAK,EAAK,iBAC7D,CACA,IAAI,oBAAsB,UACvB,qBAAqBA,UAAU,MAAM,cAAc,EACnD,EACC,IAAM,YAAc,QACxB,MAAQ,IAAOA,UAAS,IAAI,SAAU,EAAG,CAAE,OAAO,IAAI,EAAG,KAAK,CAAG,CAAC,EAAE,KAAK,GAAG,EAAK,KAAO,oBAAuB,IAAM,oBAAuB,GAC7I,CACD,CAMA,SAAS,qBACRA,UACAf,gBACC,CAED,QADI,IAAM,EACD,EAAI,EAAG,EAAIe,UAAS,OAAQ,IAAK,CACzC,IAAI,GAAKA,UAAS,CAAC,EACnB,GAAI,GAAG,OAAS,EAGhB,IAAI,mBAAmB,EAAE,GACvB,GAAG,cAAgB,GAAG,aAAa,KAAK,SAAU,EAAG,CAAE,OAAO,mBAAmB,EAAE,KAAK,CAAG,CAAC,EAAI,CACjG,IAAM,EACN,KACD,EACIf,gBAAe,EAAE,GACnB,GAAG,cAAgB,GAAG,aAAa,KAAK,SAAU,EAAG,CAAE,OAAOA,gBAAe,EAAE,KAAK,CAAG,CAAC,KACzF,IAAM,GAER,CACA,OAAO,GACR,CAEA,SAAS,mBAAmB,GAAI,CAC/B,OAAO,GAAG,MAAQ,QAAa,GAAG,MAAQ,YAAc,GAAG,MAAQ,MACpE,CAEA,SAAS,QAAQ,KAAM,MAAO,CAC7B,OAAI,KAAK,OAAS,EACV,WAAW,KAAM,KAAK,EACnB,KAAK,OAAS,GAAK,KAAK,UAC3B,WAAW,IAAI,EAEf,QAAQ,IAAI,CAErB,CAEA,SAAS,QAAQ,KAAM,CACtB,MAAQ,OAAS,KAAK,OAAS,EAC5B,KAAK,WACL,yBAAyB,KAAK,UAAU,KAAK,IAAI,CAAC,GAAK,GAC3D,CAEA,SAAS,WAAWC,SAAS,CAC5B,MAAQ,MAAS,KAAK,UAAUA,SAAQ,IAAI,EAAK,GAClD,CAEA,SAAS,QAAQ,GAAI,MAAO,CAC3B,IAAI,SAAW,GAAG,UAAY,YAC1Bc,UAAW,YAAY,GAAI,KAAK,EAChC,IAAM,MAAQ,UAAYA,UAAY,sBAAwBA,UAAW,IAAO,IAChFS,OAAQ,GAAG,OAAS,GAAG,aACxB,UAAU,GAAG,OAAS,CAAC,GAAG,OAAO,GAAG,cAAgB,CAAC,CAAC,EAAE,IAAI,SAAUS,MAAM,CAC7E,MAAQ,CAEP,KAAM,SAASA,MAAK,IAAI,EACxB,MAAOA,MAAK,MACZ,QAASA,MAAK,OACf,CACD,CAAC,CAAC,EACA,KACC,QAAU,GAAG,SAAS,QAAQ,EAClC,OAAKT,QAAS,UAAY,CAACT,YAC1B,KAAO,SAEJS,SACH,KAAO,IAAMA,QAEV,UACH,MAAQA,OAAQ,GAAK,SAAW,IAAM,SAEhC,IAAM,GACd,CAGA,SAAS,aACR,cACA,GACA,MACC,CACD,IAAIT,UAAW,GAAG,eAAiB,KAAO,YAAY,GAAI,MAAO,EAAI,EACrE,MAAQ,MAAQ,cAAgB,IAAO,UAAU,GAAI,KAAK,GAAMA,UAAY,IAAMA,UAAY,IAAM,GACrG,CAEA,SAAS,SAASE,OAAO,CAGxB,QAFI,YAAc,GACd,aAAe,GACV,EAAI,EAAG,EAAIA,OAAM,OAAQ,IAAK,CACtC,IAAIC,MAAOD,OAAM,CAAC,EACd,MAAQ,yBAAyBC,MAAK,KAAK,EAC3CA,MAAK,QACR,cAAiBA,MAAK,KAAQ,IAAM,MAAQ,IAE5C,aAAe,IAAQA,MAAK,KAAQ,KAAQ,MAAQ,GAEtD,CAEA,OADA,YAAc,IAAO,YAAY,MAAM,EAAG,EAAE,EAAK,IAC7C,aACK,MAAQ,YAAc,KAAQ,aAAa,MAAM,EAAG,EAAE,EAAK,KAE5D,WAET,CAGA,SAAS,yBAAyB,KAAM,CACvC,OAAO,KACL,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,CAC/B,CAQA,IAAI,oBAAsB,IAAI,OAAO,MACpC,iMAGC,MAAM,GAAG,EAAE,KAAK,SAAS,EAAI,KAAK,EAGhC,iBAAmB,IAAI,OAAO,MACjC,qBACC,MAAM,GAAG,EAAE,KAAK,uBAAuB,EAAI,mBAAmB,EAG5D,cAAgB,iGAGpB,SAAS,aAAa,IAAKvC,MAAM,CAC5B,KACH,UAAU,IAAKA,KAAI,CAErB,CAEA,SAAS,UAAU,KAAMA,MAAM,CAC9B,GAAI,KAAK,OAAS,EAAG,CACpB,QAAS,QAAQ,KAAK,SACrB,GAAI,MAAM,KAAK,IAAI,EAAG,CACrB,IAAI,MAAQ,KAAK,SAAS,IAAI,EAC9B,GAAI,MAAO,CACV,IAAIC,OAAQ,KAAK,YAAY,IAAI,EAC7B,OAAS,QACZ,SAAS,KAAO,UAAa,MAAQ,IAAOD,MAAMC,MAAK,EAC7C,OAAS,UAAY,KAAK,CAAC,IAAM,IAC3C,iCAAiC,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,EACxE,KAAK,KAAK,IAAI,EACxB,WAAW,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,EAE5D,gBAAgB,MAAQ,KAAO,KAAQ,MAAQ,IAAOD,MAAMC,MAAK,CAEnE,CACD,CAED,GAAI,KAAK,SACR,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,IACzC,UAAU,KAAK,SAAS,CAAC,EAAGD,KAAI,CAGnC,MAAW,KAAK,OAAS,GACxB,gBAAgB,KAAK,WAAY,KAAK,KAAMA,MAAM,IAAI,CAExD,CAEA,SAAS,WAAW,IAAK,KAAMA,MAAMC,OAAO,CAC3C,IAAI,SAAW,IAAI,QAAQ,cAAe,EAAE,EACxC,aAAe,SAAS,MAAM,gBAAgB,EAC9C,cAAgB,SAAS,OAAO,aAAa,MAAQ,CAAC,IAAM,KAC/DD,MACC,4DACQ,aAAa,CAAC,EAAK,mBAAuB,KAAK,KAAK,EAC5DC,MACD,EAED,gBAAgB,IAAK,KAAMD,MAAMC,MAAK,CACvC,CAEA,SAAS,SAAS,KAAM,KAAMD,MAAMC,OAAO,CAC1C,gBAAgB,KAAK,KAAO,GAAI,KAAMD,MAAMC,MAAK,EACjD,gBAAgB,KAAK,MAAO,cAAe,KAAMD,MAAMC,MAAK,EAC5D,gBAAgB,KAAK,UAAW,iBAAkB,KAAMD,MAAMC,MAAK,EACnE,gBAAgB,KAAK,UAAW,iBAAkB,KAAMD,MAAMC,MAAK,CACpE,CAEA,SAAS,gBACR,MACA,KACA,KACAD,MACAC,OACC,CACD,GAAI,OAAO,OAAU,SACpB,GAAI,CACH,IAAI,SAAU,OAAS,MAAQ,IAAK,CACrC,MAAY,CACXD,MAAM,WAAa,KAAO,KAAQ,MAAQ,oBAAwB,KAAK,KAAK,EAAKC,MAAK,CACvF,CAEF,CAEA,SAAS,gBAAgB,IAAK,KAAMD,MAAMC,OAAO,CAChD,GAAI,CACH,IAAI,SAAU,UAAY,GAAI,CAC/B,OAAS,EAAG,CACX,IAAI,aAAe,IAAI,QAAQ,cAAe,EAAE,EAAE,MAAM,mBAAmB,EAE1ED,MADG,aAEF,qDACQ,aAAa,CAAC,EAAK;AAAA,oBAA4B,KAAK,KAAK,EAKjE,uBAA0B,EAAE,QAAW;AAAA;AAAA,MAC9B,IAAM;AAAA;AAAA,oBACS,KAAK,KAAK,EAAK;AAAA,EANvCC,MACD,CASF,CACD,CAEA,SAAS,iCAAiC,IAAK,KAAMD,MAAMC,OAAO,CACjE,GAAI,CACH,IAAI,SAAS,IAAK,EAAE,CACrB,OAAS,EAAG,CACXD,MACC,0CAA6C,EAAE,QAAW;AAAA;AAAA,MACjD,IAAM;AAAA;AAAA,oBACS,KAAK,KAAK,EAAK;AAAA,EACvCC,MACD,CACD,CACD,CAIA,IAAI,MAAQ,EAEZ,SAAS,kBACR,OACA,MACA,IACC,CACG,QAAU,SAAQ,MAAQ,GAC1B,MAAQ,SAAQ,IAAM,OAAO,QAKjC,QAHI,MAAQ,OAAO,MAAM,OAAO,EAC5B,MAAQ,EACR,IAAM,CAAC,EACF,EAAI,EAAG,EAAI,MAAM,OAAQ,IAEjC,GADA,OAAS,MAAM,CAAC,EAAE,OAAS,EACvB,OAAS,MAAO,CACnB,QAAS,EAAI,EAAI,MAAO,GAAK,EAAI,OAAS,IAAM,MAAO,IACtD,GAAI,IAAI,GAAK,GAAK,MAAM,QACxB,KAAI,KAAM,IAAM,EAAI,GAAM,SAAS,IAAK,EAAI,OAAO,EAAI,CAAC,EAAE,MAAM,EAAK,MAAS,MAAM,CAAC,CAAG,EACxF,IAAI,WAAa,MAAM,CAAC,EAAE,OAC1B,GAAI,IAAM,EAAG,CAEZ,IAAI,IAAM,OAAS,MAAQ,YAAc,EACrC,OAAS,IAAM,MAAQ,WAAa,IAAM,IAAM,MACpD,IAAI,KAAK,SAAW,SAAS,IAAK,GAAG,EAAI,SAAS,IAAK,MAAM,CAAC,CAC/D,SAAW,EAAI,EAAG,CACjB,GAAI,IAAM,MAAO,CAChB,IAAI,SAAW,KAAK,IAAI,IAAM,MAAO,UAAU,EAC/C,IAAI,KAAK,SAAW,SAAS,IAAK,QAAQ,CAAC,CAC5C,CACA,OAAS,WAAa,CACvB,EAED,KACD,CAED,OAAO,IAAI,KAAK;AAAA,CAAI,CACrB,CAEA,SAAS,SAASR,KAAK,EAAG,CACzB,IAAI,OAAS,GACb,GAAI,EAAI,EACP,KACK,EAAI,IAAK,QAAUA,MACvB,KAAO,EACH,KAAK,IACTA,MAAOA,KAGT,OAAO,MACR,CAMA,SAAS,eAAe,KAAM,OAAQ,CACrC,GAAI,CACH,OAAO,IAAI,SAAS,IAAI,CACzB,OAAS,IAAK,CACb,cAAO,KAAK,CAAE,IAAU,IAAW,CAAC,EAC7B,IACR,CACD,CAEA,SAAS,0BAA0B+B,SAAS,CAC3C,IAAI,MAAQ,OAAO,OAAO,IAAI,EAE9B,OAAO,SACN,SACA,QACA,GACC,CACD,QAAU,OAAO,CAAC,EAAG,OAAO,EAC5B,IAAI,QAAU,QAAQ,MAAQ,KAC9B,OAAO,QAAQ,KAMf,IAAI,IAAM,QAAQ,WACf,OAAO,QAAQ,UAAU,EAAI,SAC7B,SACH,GAAI,MAAM,GAAG,EACZ,OAAO,MAAM,GAAG,EAIjB,IAAI,SAAWA,SAAQ,SAAU,OAAO,EAMpC,IAAM,CAAC,EACP,YAAc,CAAC,EACnB,WAAI,OAAS,eAAe,SAAS,OAAQ,WAAW,EACxD,IAAI,gBAAkB,SAAS,gBAAgB,IAAI,SAAU,KAAM,CAClE,OAAO,eAAe,KAAM,WAAW,CACxC,CAAC,EAQO,MAAM,GAAG,EAAI,GACtB,CACD,CAIA,SAAS,sBAAsB,YAAa,CAC3C,OAAO,SAAwBC,aAAa,CAC3C,SAASD,SACR,SACA,QACC,CACD,IAAI,aAAe,OAAO,OAAOC,YAAW,EACxC,OAAS,CAAC,EACV,KAAO,CAAC,EAERzB,MAAO,SAAU,IAAKC,OAAOyB,KAAK,EACpCA,KAAM,KAAO,QAAQ,KAAK,GAAG,CAC/B,EAEA,GAAI,QAAS,CACZ,GAAI,EAAS,IAAI,mBAEb,QAAQ,UACX,aAAa,SACXD,aAAY,SAAW,CAAC,GAAG,OAAO,QAAQ,OAAO,GAGhD,QAAQ,aACX,aAAa,WAAa,OACzB,OAAO,OAAOA,aAAY,YAAc,IAAI,EAC5C,QAAQ,UACT,GAGD,QAAS,OAAO,QACX,MAAQ,WAAa,MAAQ,eAChC,aAAa,GAAG,EAAI,QAAQ,GAAG,EAGlC,CAEA,aAAa,KAAOzB,MAEpB,IAAI,SAAW,YAAY,SAAS,KAAK,EAAG,YAAY,EAExD,gBAAS,OAAS,OAClB,SAAS,KAAO,KACT,QACR,CAEA,MAAO,CACN,QAASwB,SACT,mBAAoB,0BAA0BA,QAAO,CACtD,CACD,CACD,CAOA,IAAI,eAAiB,sBAAsB,SAC1C,SACA,QACC,CACD,IAAI,IAAM,MAAM,SAAS,KAAK,EAAG,OAAO,EACpC,QAAQ,WAAa,IACxB,SAAS,IAAK,OAAO,EAEtB,IAAI,KAAO,SAAS,IAAK,OAAO,EAChC,MAAO,CACN,IACA,OAAQ,KAAK,OACb,gBAAiB,KAAK,eACvB,CACD,CAAC,EAIG,MAAQ,eAAe,WAAW,EAClC,QAAU,MAAM,QAChB,mBAAqB,MAAM,mBAK3B,IACJ,SAAS,gBAAgB,KAAM,CAC9B,WAAM,KAAO,SAAS,cAAc,KAAK,EACzC,IAAI,UAAY,KAAO;AAAA,KAAqB;AAAA,KACrC,IAAI,UAAU,QAAQ,OAAO,EAAI,CACzC,CAGA,IAAI,qBAAuB,UAAY,gBAAgB,EAAK,EAAI,GAE5D,4BAA8B,UAAY,gBAAgB,EAAI,EAAI,GAIlE,aAAe,OAAO,SAAU,GAAI,CACvC,IAAI,GAAK,MAAM,EAAE,EACjB,OAAO,IAAM,GAAG,SACjB,CAAC,EAEG,MAAQ,YAAY,UAAU,OAClC,YAAY,UAAU,OAAS,SAC9B,GACA,UACC,CAID,GAHA,GAAK,IAAM,MAAM,EAAE,EAGf,KAAO,SAAS,MAAQ,KAAO,SAAS,gBAE3C,OAAO,KAGR,IAAI,QAAU,KAAK,SAEnB,GAAI,CAAC,QAAQ,OAAQ,CACpB,IAAI,SAAW,QAAQ,SACvB,GAAI,SACH,GAAI,OAAO,UAAa,SACnB,SAAS,OAAO,CAAC,IAAM,MAC1B,SAAW,aAAa,QAAQ,WAIvB,SAAS,SACnB,SAAW,SAAS,cAGpB,QAAO,UAEE,KACV,SAAW,aAAa,EAAE,GAE3B,GAAI,SAAU,CAIb,IAAIpB,KAAM,mBAAmB,SAAU,CACtC,kBAAmB,GACnB,qBACA,4BACA,WAAY,QAAQ,WACpB,SAAU,QAAQ,QACnB,EAAG,IAAI,EACH0C,QAAS1C,KAAI,OACbkE,iBAAkBlE,KAAI,gBAC1B,QAAQ,OAAS0C,QACjB,QAAQ,gBAAkBwB,gBAI3B,CACD,CACA,OAAO,MAAM,KAAK,KAAM,GAAI,SAAS,CACtC,EAMA,SAAS,aAAa,GAAI,CACzB,GAAI,GAAG,UACN,OAAO,GAAG,UAEV,IAAI,UAAY,SAAS,cAAc,KAAK,EAC5C,iBAAU,YAAY,GAAG,UAAU,EAAI,CAAC,EACjC,UAAU,SAEnB,CAEA,YAAY,QAAU,mBAEK,MAAM,QAAW,YAYtC,YAAc,CACnB,GAAI,CACH,IAAK,EACL,IAAK,IACL,KAAM,KACN,MAAO,CACR,EAEA,GAAI,CACH,IAAK,IACL,IAAK,IACL,KAAM,KACN,MAAO,CACR,EAEA,GAAI,CACH,IAAK,IACL,IAAK,IACL,KAAM,KACN,MAAO,CACR,EAEA,GAAI,CACH,IAAK,IACL,IAAK,KACL,KAAM,KACN,MAAO,CACR,EAEA,GAAI,CACH,IAAK,KACL,IAAK,OAAO,kBACZ,KAAM,KACN,MAAO,CACR,CAED,EAIM,0BAA4B,8BAC5B,yBAA2B,6BAC3B,kBAAoB,sBACpB,UAAY,oBAElB,MAAM,SAAU,CACf,aAAc,CACb,KAAK,EAAI,OACT,KAAK,aAAe,OACpB,KAAK,YAAc,OACnB,KAAK,gBAAkB,OACvB,KAAK,gBAAkB,OACvB,KAAK,WAAa,OAElB,KAAK,YAAc,CAAC,MAAO,SAAW,CACrC,IAAI,YAAc,KAAK,YAEnB,OAAO,OAAU,WACpB,MAAQ,MAAM,QAAQ,IAAK,EAAE,GAG9B,IAAI,MAAQ,GACR,iBAAmB,sBACnB,aAAe,QAAU,YAqB7B,SAAS,qBAAqB,OAAQ,UAAW,UAAW,QAAS,CAQpE,GAPI,WAAc,OACjB,UAAY,GAGb,UAAY,WAAa,IACzB,QAAU,SAAW,IAEjB,MAAM,MAAM,GAAK,QAAU,KAC9B,MAAO,GAGR,QAAU,OAAS,KAAO,QAAQ,SAAS,EAC3C,IAAI,MAAQ,OAAO,MAAM,GAAG,EACxB,cAAgB,MAAM,CAAC,EAAE,QAAQ,2BAA4B,KAAO,SAAS,EAC7E,YAAc,MAAM,CAAC,EAAI,QAAU,MAAM,CAAC,EAAI,GAK9C,OAAS,cAAgB,YAC7B,OAAO,OAAO,QAAQ,QAAS,EAAE,CAElC,CACA,OAAQ,aAAa,MAAM,gBAAgB,EAAE,CAAC,EAAG,CAChD,IAAK,SACJ,MAAQ,qBAAqB,MAAO,CAAC,EACrC,MAED,IAAK,qBACJ,MAAQ,qBAAqB,MAAO,CAAC,EACrC,MAED,IAAK,8BACJ,MAAQ,qBAAqB,MAAO,EAAG,IAAK,GAAG,EAC/C,MAED,IAAK,0CACJ,MAAQ,qBAAqB,MAAO,EAAG,IAAK,GAAG,EAC/C,MAED,IAAK,0CACJ,MAAQ,qBAAqB,MAAO,EAAG,GAAG,EAC1C,KACF,CAEA,MAAO,uBAAyB,aAAa,QAAQ,iBAAkB,KAAK,EAAI,SACjF,EAEA,KAAK,eAAiB,IACd,KAAK,IAAI,SAAS,gBAAgB,YAAa,OAAO,YAAc,CAAC,EAG7E,KAAK,cAAgB,CAACC,OAAQ,SAAc,CAC3C,MAAM,EAAIA,QAAwC,KAAK,eAAe,EACtE,IAAI,WACJ,cAAO,OAAO,WAAW,EAAE,QAAQ,GAAK,CACnC,GAAK,EAAE,KAAO,GAAK,EAAE,MACxB,WAAa,EAEf,CAAC,EACM,UACR,EAEA,KAAK,kBAAoB,CAAC,KAAO,OAAQ,UAAY,OAAW,OAAS,CAAC,IAAM,CAAE,EAElF,KAAK,iBAAmB,CAAC,UAAY,SAAc,CAAE,EAErD,KAAK,iBAAmB,MAAQ,CAAE,EAElC,KAAK,eAAiB,IAAM,CAE5B,EAEA,KAAK,aAAe,IAAM,CAE1B,EAEA,KAAK,aAAe,CAAC,GAAI,MAAQ,CAEjC,EAEA,KAAK,kBAAoBC,YAAa,CAAE,EAExC,KAAK,UAAY,CAAC,KAAM,UAAY,CAAE,CACvC,CAED,CAEA,MAAM,SAAU,CAOf,YAAY,MAAO,QAAS,CAC3B,KAAK,kBAAoB,CAAC,CACzB,MAAAD,MACD,IAAM,CAAE,EAER,KAAK,eAAiB,CAAC,CACtB,MAAAA,OACA,SACA,UACD,IAAM,CAAE,EAER,KAAK,yBAA2B,CAAC,CAChC,MAAAA,OACA,WACA,aACD,IAAM,CAAE,EAER,KAAK,eAAiB,IAAM,CAAE,EAE9B,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,MAAM,kBAAkB,IAAI,CAC7B,CAWD,CASA,MAAM,gBAAgB,SAAU,CAO/B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,OAAO,EAEpB,KAAK,gBAAkB,CAAC,CACvB,QAAAE,SACA,UACA,IACD,IAAM,CAAE,EAER,KAAK,kBAAoB,CAAC,CACzB,QAAAA,SACA,SACD,IAAM,CAAE,EAER,KAAK,iBAAmB,CAAC,CACxB,QAAAA,SACA,SACD,IAAM,CAAE,EAER,KAAK,cAAgB,CAAC,CACrB,QAAAA,SACA,UACA,QACA,IACD,IAAM,CAAE,EAER,KAAK,gBAAkB,CAAC,CACvB,QAAAA,SACA,UACA,OACD,IAAM,CAAE,EAER,KAAK,QAAU,CAAC,CACf,QAAAA,QACD,IAAM,CAAE,EAER,KAAK,MAAQ,MACb,KAAK,QAAU,OAChB,CAWD,CAIA,MAAM,UAAW,CAChB,YAAY,MAAO,QAAS,CAC3B,KAAK,aAAe,GAAK,CACxB,KAAK,OAAO,EAAE,OAAO,SAAS,CAC/B,EAEA,KAAK,MAAQ,IAAM,CAClB,SAAS,KAAK,UAAU,OAAO,gBAAgB,EAC/C,SAAS,KAAK,UAAU,OAAO,qBAAqB,EACpD,KAAK,OAAS,EACf,EAEA,KAAK,KAAO,IAAM,CACjB,SAAS,KAAK,UAAU,IAAI,gBAAgB,EAC5C,SAAS,KAAK,UAAU,IAAI,qBAAqB,EACjD,KAAK,OAAS,EACf,EAEA,KAAK,OAAS,CAAC,UAAY,SAAc,CACpC,YAAc,GACjB,KAAK,KAAK,EACA,YAAc,GACxB,KAAK,MAAM,EACD,KAAK,OACf,KAAK,MAAM,EAEX,KAAK,KAAK,CAEZ,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,OAAS,GACd,SAAS,gBAAgB,iBAAiB,yBAA0B,KAAK,YAAY,EACrF,eAAe,EAAE,qBAAqB,EAAE,IAAI,OAAO,EAAE,GAAG,QAAS,SAAU,IAAK,CAC/E,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,sBAAsB,CACnE,CAAC,EACD,KAAK,QAAQ,cAAc,yBAAyB,EAAE,iBAAiB,QAAS,GAAK,CACpF,EAAE,eACF,KAAK,MAAM,CACZ,CAAC,CACF,CAED,CAEA,IAAI,YAAc,oBAAoB,GAAG,EACrC,oBAAmC,oBAAoB,EAAE,WAAW,EAKxE,MAAM,IAAK,CACV,YAAY,MAAO,QAAS,CAC3B,KAAK,cAAgB,CAAC,IAAK,MAAQ,CAC7B,IAAI,SAAS,KAAK,WAAW,IACjC,IAAI,eAAe,EACnB,KAAK,aAAa,IAAI,SAAS,CAAC,EAElC,EAEA,KAAK,aAAe,KAAO,CAC1B,IAAI,SAAS,KAAK,WAAW,EAC7B,MAAMC,OAAQ,KAEV,eAAe,EAAE,cAAc,EAAE,SAAS,gBAAgB,GAC7D,eAAe,EAAE,gBAAgB,EAAE,SAAS,4BAA4B,EAIzE,eAAe,EAAE,gBAAgB,EAAE,YAAY,2BAA2B,EAE1E,IAAI,OAAS,IAAI,OAAO,EAAE,KAAK,wBAAwB,EACnD,WAAa,KAAK,IAAI,MAAM,KAAM,OAAO,IAAI,UAAY,CAC5D,OAAO,eAAe,EAAE,IAAI,EAAE,MAAM,CACrC,CAAC,EAAE,IAAI,CAAC,EACJ,MAAQ,IAAI,OAAO,EAAE,KAAO,IAAI,WAAW,EAAI,WAE/C,MAAQ,eAAe,EAAE,MAAM,EAAE,MAAM,EAC1C,OAAO,IAAI,CACV,MAAO,OACP,KAAM,MACP,CAAC,EAED,OAAO,IAAI,CACV,KAAM,OACN,MAAO,MACR,CAAC,EAGF,WAAW,UAAY,CACtB,eAAe,EAAE,SAAS,IAAI,EAAE,GAAG,aAAc,KAAO,CACnD,eAAe,EAAE,IAAI,MAAM,EAAE,QAAQ,mCAAmC,EAAE,SAAW,GAExFA,OAAM,aAAa,GAAG,CAExB,CAAC,CACF,EAAG,GAAG,CACP,EAEA,KAAK,aAAe,KAAO,CACtB,MAAQ,OAAW,IAAI,YAAY,KAAK,WAAW,EAAQ,eAAe,EAAE,yBAAyB,EAAE,YAAY,KAAK,WAAW,EACvI,eAAe,EAAE,SAAS,IAAI,EAAE,IAAI,YAAY,EAE5C,eAAe,EAAE,cAAc,EAAE,SAAS,gBAAgB,GAC7D,eAAe,EAAE,gBAAgB,EAAE,YAAY,oBAAoB,EAIhE,eAAe,EAAE,YAAY,EAAE,SAAW,GAC7C,eAAe,EAAE,gBAAgB,EAAE,SAAS,2BAA2B,CAEzE,EAEA,MAAMnG,MAAO,KACb,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,SAAW,eAAe,EAAE,OAAO,EACxC,KAAK,KAAO,eAAe,EAAE,gBAAgB,EAC7C,KAAK,UAAY,KAAK,KAAK,KAAK,GAAG,EACnC,KAAK,UAAY,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,GAAG,EAClD,KAAK,SAAW,KAAK,KAAK,KAAK,yBAAyB,EACxD,KAAK,UAAY,KAAK,KAAK,KAAK,qBAAqB,EACrD,KAAK,cAAgB,KAAK,UAAU,KAAK,GAAG,EAC5C,KAAK,YAAc,YACnB,KAAK,SAAS,GAAG,+BAAgC,SAAU,IAAK,CAC/D,IAAI,IAAM,GACN,IAAM,eAAe,EAAE,IAAI,EAE/B,OAAK,IAAI,SAASA,MAAK,WAAW,IACjC,IAAI,eAAe,EACnBA,MAAK,aAAa,IAAI,SAAS,CAAC,EAChC,IAAM,IAGPA,MAAK,aAAa,GAAG,EACd,GACR,CAAC,EACD,KAAK,SAAS,KAAK,CAAC,EAAG,KAAO,CAC7B,oBAAoB,EAAE,GAAI,SAAU,IAAK,CACxC,eAAe,EAAE,IAAMA,MAAK,WAAW,EAAE,KAAK,SAAUnB,IAAI,CAC3D,IAAI,QAAU,eAAe,EAAE,IAAI,EAE/B,QAAQ,IAAI,IAAI,MAAM,EAAE,SAAW,GACtC,QAAQ,YAAYmB,MAAK,WAAW,CAEtC,CAAC,CACF,EAAG,UAAY,CAGf,CAAC,EAEG,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,WAAW,GAAK,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,UAAU,GACnG,eAAe,EAAE,EAAE,EAAE,GAAG,aAAc,IAAM,CAC3CA,MAAK,aAAa,CACnB,CAAC,CAEH,CAAC,EAED,KAAK,SAAS,KAAK,CAAC,EAAG,KAAO,CAC7B,eAAe,EAAE,EAAE,EAAE,GAAG,UAAW,SAAU,KAAM,CAClDA,MAAK,aAAa,eAAe,EAAE,EAAE,CAAC,CACvC,CAAC,CACF,CAAC,EAED,eAAe,EAAE,cAAc,EAAE,GAAG,aAAc,IAAM,CACvDA,MAAK,aAAa,CACnB,CAAC,EACD,eAAe,EAAE,qBAAqB,EAAE,GAAG,sBAAuB,KAAO,CACxEA,MAAK,aAAa,eAAe,EAAE,IAAI,CAAC,CACzC,CAAC,EACD,KAAK,cAAc,GAAG,aAAc,SAAU,IAAK,CAElD,IAAI,yBAAyB,CAC9B,CAAC,EACD,KAAK,UAAU,GAAG,UAAW,SAAU,IAAK,CAC3C,IAAI,IAAM,eAAe,EAAE,IAAI,EAAE,OAAO,EACxCA,MAAK,cAAc,IAAK,GAAG,CAC5B,CAAC,EACD,eAAe,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,GAAG,UAAW,UAAY,CAEpF,IAAI,SAAW,KACX,cAAgB,GACpBA,MAAK,UAAU,KAAK,UAAY,CAC3B,eAAe,EAAE,IAAI,EAAE,GAAG,QAAQ,IACrC,cAAgB,GAElB,CAAC,EAEG,eACHA,MAAK,SAAS,KAAK,UAAY,CAC9BA,MAAK,aAAa,eAAe,EAAE,IAAI,CAAC,CACzC,CAAC,CAEH,CAAC,CACF,CAED,CAIA,SAAS,WAAW,KAAM,CACzB,IAAI,mBAAqB,SAAS,cAAc,2BAA2B,GAAG,YAC9E,GAAI,mBAAoB,CACvB,IAAI,aAAe,KAAK,MAAM,kBAAkB,EAC5C,oBAAsB,aAAa,QAAQ,oBAAoB,GAAK,aAAa,QAAQ,oBAAoB,GAAK,IAAM,cAAc,wBAA0B,cAAc,eAElL,OADY,KAAK,MAAM,KAAK,MAAQ,KAAK,YAAc,mBAAmB,CAE3E,CACA,MAAO,EACR,CAGA,MAAM,eAAe,OAAQ,CAM5B,YAAY,MAAO,SAAU,SAAU,CA+ItC,GA9IA,MAAM,MAAO,SAAU,QAAQ,EAG/B,KAAK,kBAAoB,KAEzB,KAAK,qBAAuB,GAE3B,KAAK,aAAe,GAAK,CAEzB,MAAM,cAAgB,IAAM,CAC3B,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,mCAAmC,EAAG,IAAM,CAClG,MAAM,MAAQ,WAAW,EAAE,OAAO,IAAI,EACtC,GAAG,UAAU,IAAI,MAAM,EACvB,MAAM,aAAe,EAAE,OAAO,MAAQ,EAAE,OAAO,KAAK,WAAa,EACjE,GAAG,YAAe,MAAoG,EAAE,OAAO,MAAQ,EAAE,OAAO,KAAK,aAAe,OAAY,EAAE,OAAO,KAAK,WAAa,EAAI,EAApL,EAAE,OAAO,MAAQ,EAAE,OAAO,KAAK,aAAe,OAAY,EAAE,OAAO,KAAK,WAAa,EAC5G,cAAc,GAAG,UAAU,OAAO,MAAM,CAC7C,CAAC,EACD,MAAM,MAAQ,KAAK,MAAM,YAAY,EAAE,OAAO,KAAK,WAAW,EAC9D,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,gCAAgC,EAAG,IAAM,CAC/F,GAAG,UAAU,IAAI,MAAM,EACvB,MAAM,aAAe,EAAE,OAAO,KAAK,YAAc,EACjD,GAAG,UAAY,MACX,cAAc,GAAG,UAAU,OAAO,MAAM,CAC7C,CAAC,CACF,GAEkB,EAAE,OAAO,MAAM,YAAc,GAE/B,IACf,KAAK,qBAAuB,IAE7B,cAAc,CACf,EAEA,KAAK,kBAAoB,GAAK,CAC7B,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,MAAM,CACpC,EAEA,KAAK,wBAA0B,GAAK,CACnC,EAAE,eAAe,EACjB,KAAK,WAAW,OAAO,CACxB,EAEA,KAAK,UAAY,IAAM,CACtB,MAAM,OAAS,KAAK,QAAQ,cAAc,gBAAgB,EAEtD,QACH,OAAO,iBAAiB,QAAS,KAAK,OAAO,CAE/C,EAEA,KAAK,QAAU,GAAK,CACnB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,QAAS,EAAI,CAC3C,EAEA,KAAK,iBAAmB,IAAM,CAC7B,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,MAAQ,CAC3D,KAAK,iBAAiB,QAAS,KAAK,QAAQ,CAC7C,CAAC,CACF,EAEA,KAAK,SAAW,GAAK,CACpB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,SAAU,EAAI,CAC5C,EAEA,KAAK,mBAAqB,IAAM,CAC/B,KAAK,SAAS,KAAK,WAAW,EAAE,SAAS,IAAI,EAC7C,KAAK,SAAS,KAAK,gBAAgB,EAAE,MAAM,UAAY,CAEtD,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,OAAO,CACvD,CAAC,EACD,KAAK,SAAS,KAAK,mBAAmB,EAAE,IAAI,EAE5C,MAAMA,MAAO,KACb,KAAK,SAAS,KAAK,mBAAmB,EAAE,GAAG,QAAS,UAAY,CAC/D,MAAM,EAAI,KAEN,EAAE,MAAQ,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,IAAM,OAAO,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC,GAEvEA,MAAK,MAAM,iBAAiB,EAAK,CAEnC,CAAC,EACD,KAAK,kBAAkB,CACxB,EAEA,KAAK,kBAAoB,IAAM,CAE1B,OAAO,WAAa,IACvB,KAAK,SAAS,KAAK,iCAAiC,EAAE,KAAK,WAAY,EAAE,EAEzE,KAAK,SAAS,KAAK,iCAAiC,EAAE,WAAW,UAAU,CAE7E,EAEA,KAAK,eAAiB,CAAC,CACtB,MAAAgG,OACA,SACA,UACD,IAAM,CACL,KAAK,kBAAkB,CACxB,EAEA,KAAK,iBAAmB,IAAM,CAC7B,GAAI,yBAA0B,OAAQ,CAGrC,MAAM,cAAgB,KAAK,QAAQ,QAAQ,kBAAkB,EAC7D,cAAc,UAAU,IAAI,eAAe,EAC1B,IAAI,qBAAqB,CAAC,CAAC,CAAC,IAAM,CAClD,EAAE,OAAO,UAAU,OAAO,UAAW,EAAE,kBAAoB,CAAC,CAC7D,EAAG,CACF,UAAW,CAAC,CAAC,CACd,CAAC,EACQ,QAAQ,aAAa,CAC/B,CACD,EAEA,KAAK,cAAgB,CAAC,CACrB,OACD,IAAM,CAED,QAAQ,QAAQ,kBACnB,KAAK,SAAS,KAAK,4BAA8B,QAAQ,QAAQ,gBAAkB,GAAG,EAAE,QAAQ,cAAc,EAAE,SAAS,YAAY,EACrI,KAAK,SAAS,KAAK,iBAAiB,EAAE,SAAS,aAAa,EAE9D,EAEA,KAAK,gBAAkB,IAAM,CAE5B,KAAK,SAAS,KAAK,yBAAyB,EAAE,YAAY,YAAY,EACtE,KAAK,SAAS,KAAK,iBAAiB,EAAE,YAAY,aAAa,CAChE,EAEA,KAAK,SAAW,eAAe,EAAE,KAAK,OAAO,EAC7C,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,4BAA4B,EAAG,IAAM,GAAG,iBAAiB,QAAS,KAAK,iBAAiB,CAAC,EACpJ,KAAK,QAAQ,cAAc,2BAA2B,EAAE,iBAAiB,QAAS,KAAK,uBAAuB,EAC9G,KAAK,WAAa,IAAI,WAAW,MAAO,KAAK,QAAQ,cAAc,eAAe,CAAC,EACnF,SAAS,gBAAgB,iBAAiB,kBAAmB,KAAK,YAAY,EAE1E,OAAO,QAAQ,WAAY,CAC9B,MAAM,SAAW,KAAK,QAAQ,cAAc,QAAQ,EAC9C,cAAgB,KAAK,QAAQ,QAAQ,cAC3C,SAAS,iBAAiB,6BAA8B,IAAM,CAE7D,KAAK,QAAQ,aAAa,wBAAyB,MAAM,EACzD,MAAM,cAAgB,KAAK,QAAQ,QAAQ,kBAAkB,EACzD,KAAK,QAAQ,QAAQ,eAAiB,QAAQ,cAAc,UAAU,OAAO,eAAe,EAE5F,eAAiB,SACpB,KAAK,QAAQ,UAAU,OAAO,wBAAwB,EAClD,UAAU,SAAS,UAAU,OAAO,gBAAgB,EAE1D,CAAC,EACD,SAAS,iBAAiB,+BAAgC,IAAM,CAE/D,KAAK,QAAQ,aAAa,wBAAyB,OAAO,EACtD,KAAK,QAAQ,QAAQ,eAAiB,QAAQ,KAAK,iBAAiB,EAEpE,eAAiB,SACpB,KAAK,QAAQ,UAAU,IAAI,wBAAwB,EAC/C,UAAU,SAAS,UAAU,IAAI,gBAAgB,EAEvD,CAAC,CACF,CAGA,KAAK,QAAQ,cAAc,mBAAmB,EAAE,iBAAiB,QAAS,IAAM,KAAK,MAAM,iBAAiB,EAAK,CAAC,EAClH,KAAK,mBAAmB,EAEpB,KAAK,QAAQ,QAAQ,eAAiB,SAAW,KAAK,QAAQ,QAAQ,iBAAmB,SAAW,CAAC,KAAK,QAAQ,QAAQ,kBAC7H,KAAK,iBAAiB,EAGvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,KAAO,IAAI,KAAK,KAAM,QAAQ,CACpC,CAED,CAGA,MAAM,eAAe,OAAQ,CAC5B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,kBAAoB,IAAM,CAC9B,IAAI,gBAAkB,KAAK,cAAc,aAAe,KAAK,cAAc,aAC3E,KAAK,cAAc,UAAU,OAAO,eAAe,EAE/C,OAAO,YAAc,iBACxB,KAAK,cAAc,UAAU,IAAI,eAAe,CAElD,EAEA,KAAK,cAAgB,IAAM,CAC1B,KAAK,kBAAkB,CACxB,EAEA,KAAK,cAAgB,SAAS,cAAc,iBAAiB,EAC7D,KAAK,OAAS,SAAS,cAAc,QAAQ,EAC7C,KAAK,cAAgB,SAAS,cAAc,gBAAgB,EAC5D,KAAK,kBAAkB,EACvB,IAAIhG,MAAO,KACX,SAAS,iBAAiB,uBAAwB,KAAK,iBAAiB,EACxE,SAAS,iBAAiB,yBAA0B,KAAK,iBAAiB,EAC1E,SAAS,iBAAiB,yBAA0B,KAAK,iBAAiB,EAC1E,SAAS,iBAAiB,2BAA4B,KAAK,iBAAiB,EAC5E,SAAS,iBAAiB,0BAA2B,KAAK,iBAAiB,CAC5E,CAED,CAGA,MAAM,wBAAwB,OAAQ,CAAE,CAGxC,MAAM,mBAAmB,OAAQ,CAAE,CAEnC,IAAI,aAAe,oBAAoB,GAAG,EACtC,qBAAoC,oBAAoB,EAAE,YAAY,EAE1E,MAAM,QAAS,CAKd,YAAY,MAAO,QAAS,CAC3B,KAAK,KAAO,IAAM,CACb,yBAA0B,SAC7B,KAAK,SAAW,IAAI,qBAAqB,IAAM,CAC9C,KAAK,MAAM,CACZ,EAAG,CACF,UAAW,CAAC,CAAC,CACd,CAAC,EACD,KAAK,SAAS,QAAQ,KAAK,OAAO,EAEpC,EAEA,KAAK,MAAQ,IAAM,CAClB,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,aAAa,EAAG,CAAC,GAAIM,SAAU,CACzF,WAAW,IAAM,CAChB,GAAG,UAAU,IAAI,aAAa,CAC/B,EAAG,IAAMA,MAAK,CACf,CAAC,CACF,EAEA,KAAK,QAAU,IAAM,CACpB,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,aAAa,EAAG,IAAM,CAC5E,GAAG,UAAU,SAAS,aAAa,IAEtC,GAAG,UAAU,IAAI,SAAS,EAC1B,GAAG,UAAU,OAAO,aAAa,EACjC,WAAW,IAAM,CAChB,GAAG,UAAU,OAAO,SAAS,EAC7B,GAAG,UAAU,IAAI,aAAa,CAC/B,EAAG,GAAG,EAER,CAAC,CACF,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,KAAK,CACX,CAED,CAMA,MAAM,aAAa,OAAQ,CAC1B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,YAAc,OAAS,CAC3B,MAAM,SAAW,eAAe,EAAE,IAAM,MAAM,KAAK,WAAW,CAAC,EAC/D,MAAM,MAAM,IAAM,CACjB,SAAS,SAAS,QAAQ,CAC3B,EAAG,IAAM,CACR,SAAS,YAAY,QAAQ,CAC9B,CAAC,EAEG,MAAM,GAAG,QAAQ,GACpB,SAAS,SAAS,QAAQ,CAE5B,EAEA,qBAAqB,EAAE,KAAK,QAAQ,iBAAiB,0CAA0C,EAAG,CACjG,WAAY,EACb,EAAG,IAAM,CACR,KAAK,SAAW,IAAI,SAAS,MAAO,OAAO,EAC3C,eAAe,EAAE,iCAAiC,EAAE,KAAK,CAACA,OAAO,OAAS,CACzE,KAAK,YAAY,eAAe,EAAE,IAAI,CAAC,CACxC,CAAC,EACD,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAACA,OAAO,OAAS,CAChE,KAAK,YAAY,eAAe,EAAE,IAAI,CAAC,CACxC,CAAC,CACF,CAAC,CACF,CAED,CAcA,SAAS,wBAAwB,IAAK,CACrC,OAAQ,MAAQ,MACf,OAAO,KAAQ,UACf,gBAAiB,KACjB,IAAI,cAAgB,MACtB,CACA,SAAS,sBAAsBsD,QAAQ,IAAK,CACvCA,UAAW,SAAUA,QAAS,CAAC,GAC/B,MAAQ,SAAU,IAAM,CAAC,GAC7B,OAAO,KAAK,GAAG,EAAE,QAAQ,SAAU,IAAK,CACnC,OAAOA,QAAO,GAAG,EAAM,IAC1BA,QAAO,GAAG,EAAI,IAAI,GAAG,EACb,wBAAwB,IAAI,GAAG,CAAC,GACxC,wBAAwBA,QAAO,GAAG,CAAC,GACnC,OAAO,KAAK,IAAI,GAAG,CAAC,EAAE,OAAS,GAC/B,sBAAsBA,QAAO,GAAG,EAAG,IAAI,GAAG,CAAC,CAE7C,CAAC,CACF,CAEA,IAAI,IAAM,OAAO,SAAa,IAAc,SAAW,CAAC,EACpD,YAAc,CACjB,KAAM,CAAC,EACP,iBAAkB,UAAY,CAAE,EAChC,oBAAqB,UAAY,CAAE,EACnC,cAAe,CACd,KAAM,UAAY,CAAE,EACpB,SAAU,EACX,EACA,cAAe,UAAY,CAC1B,OAAO,IACR,EACA,iBAAkB,UAAY,CAC7B,MAAO,CAAC,CACT,EACA,eAAgB,UAAY,CAC3B,OAAO,IACR,EACA,YAAa,UAAY,CACxB,MAAO,CACN,UAAW,UAAY,CAAE,CAC1B,CACD,EACA,cAAe,UAAY,CAC1B,MAAO,CACN,SAAU,CAAC,EACX,WAAY,CAAC,EACb,MAAO,CAAC,EACR,aAAc,UAAY,CAAE,EAC5B,qBAAsB,UAAY,CACjC,MAAO,CAAC,CACT,CACD,CACD,EACA,gBAAiB,UAAY,CAC5B,MAAO,CAAC,CACT,EACA,WAAY,UAAY,CACvB,OAAO,IACR,EACA,SAAU,CACT,KAAM,GACN,KAAM,GACN,SAAU,GACV,KAAM,GACN,OAAQ,GACR,SAAU,GACV,SAAU,GACV,OAAQ,EACT,CACD,EACA,sBAAsB,IAAK,WAAW,EAEtC,IAAI,IAAM,OAAO,OAAW,IAAc,OAAS,CAAC,EAChD,UAAY,CACf,SAAU,YACV,UAAW,CACV,UAAW,EACZ,EACA,SAAU,CACT,KAAM,GACN,KAAM,GACN,SAAU,GACV,KAAM,GACN,OAAQ,GACR,SAAU,GACV,SAAU,GACV,OAAQ,EACT,EACA,QAAS,CACR,aAAc,UAAY,CAAE,EAC5B,UAAW,UAAY,CAAE,EACzB,GAAI,UAAY,CAAE,EAClB,KAAM,UAAY,CAAE,CACrB,EACA,YAAa,UAAuB,CACnC,OAAO,IACR,EACA,iBAAkB,UAAY,CAAE,EAChC,oBAAqB,UAAY,CAAE,EACnC,iBAAkB,UAAY,CAC7B,MAAO,CACN,iBAAkB,UAAY,CAC7B,MAAO,EACR,CACD,CACD,EACA,MAAO,UAAY,CAAE,EACrB,KAAM,UAAY,CAAE,EACpB,OAAQ,CAAC,EACT,WAAY,UAAY,CAAE,EAC1B,aAAc,UAAY,CAAE,EAC5B,WAAY,UAAY,CACvB,MAAO,CAAC,CACT,CACD,EACA,sBAAsB,IAAK,SAAS,EAoBpC,MAAM,IAAK,CACV,YAAY,IAAK,CAChB,MAAM5D,MAAO,KAEb,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EACpCA,MAAK,CAAC,EAAI,IAAI,CAAC,EAEhB,OAAAA,MAAK,OAAS,IAAI,OAEX,IACR,CACD,CAEA,SAAS,EAAE,SAAU,QAAS,CAC7B,MAAM,IAAM,CAAC,EACb,IAAI,EAAI,EACR,GAAI,UAAY,CAAC,SACZ,oBAAoB,KACvB,OAAO,SAGT,GAAI,UAEH,GAAI,OAAO,UAAa,SAAU,CACjC,IAAI,IACA,WACJ,MAAMqB,MAAO,SAAS,KAAK,EAC3B,GAAIA,MAAK,QAAQ,GAAG,GAAK,GAAKA,MAAK,QAAQ,GAAG,GAAK,EAAG,CACrD,IAAI,SAAW,MAQf,IAPIA,MAAK,QAAQ,KAAK,IAAM,IAAG,SAAW,MACtCA,MAAK,QAAQ,KAAK,IAAM,IAAG,SAAW,UACtCA,MAAK,QAAQ,KAAK,IAAM,GAAKA,MAAK,QAAQ,KAAK,IAAM,KAAG,SAAW,MACnEA,MAAK,QAAQ,QAAQ,IAAM,IAAG,SAAW,SACzCA,MAAK,QAAQ,SAAS,IAAM,IAAG,SAAW,UAC9C,WAAa,IAAI,cAAc,QAAQ,EACvC,WAAW,UAAYA,MAClB,EAAI,EAAG,EAAI,WAAW,WAAW,OAAQ,GAAK,EAClD,IAAI,KAAK,WAAW,WAAW,CAAC,CAAC,CAEnC,KAQC,KAPI,CAAC,SAAW,SAAS,CAAC,IAAM,KAAO,CAAC,SAAS,MAAM,UAAU,EAEhE,IAAM,CAAC,IAAI,eAAe,SAAS,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAGxD,KAAO,SAAW,KAAK,iBAAiB,SAAS,KAAK,CAAC,EAEnD,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EAC5B,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAG9B,SAAW,SAAS,UAAY,WAAa,KAAO,WAAa,IAEhE,IAAI,KAAK,QAAQ,UACP,SAAS,OAAS,GAAK,SAAS,CAAC,EAAE,SAE7C,IAAK,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EACrC,IAAI,KAAK,SAAS,CAAC,CAAC,EAIvB,OAAO,IAAI,KAAK,GAAG,CACpB,CAEA,EAAE,GAAK,KAAK,UACZ,EAAE,MAAQ,KACV,EAAE,KAAO,KAET,SAAS,OAAO,IAAK,CACpB,MAAM,YAAc,CAAC,EACrB,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EAChC,YAAY,QAAQ,IAAI,CAAC,CAAC,IAAM,IAAI,YAAY,KAAK,IAAI,CAAC,CAAC,EAEhE,OAAO,WACR,CACA,SAAS,YAAY,OAAQ,CAC5B,OAAO,OAAO,YAAY,EAAE,QAAQ,QAAS,CAAC,MAAO,SAAW,OAAO,YAAY,CAAC,CACrF,CAEA,SAAS,sBAAsB,SAAU,CACxC,OAAI,OAAO,sBAA8B,OAAO,sBAAsB,QAAQ,EACrE,OAAO,4BAAoC,OAAO,4BAA4B,QAAQ,EACxF,OAAO,WAAW,SAAU,IAAO,EAAE,CAC7C,CACA,SAAS,qBAAqB,GAAI,CACjC,OAAI,OAAO,qBAA6B,OAAO,qBAAqB,EAAE,EAC7D,OAAO,2BAAmC,OAAO,2BAA2B,EAAE,EAChF,OAAO,aAAa,EAAE,CAC9B,CAGA,SAAS,sBAAsB,UAAW,CACzC,GAAI,OAAO,UAAc,IACxB,OAAO,KAER,MAAM+E,SAAU,UAAU,MAAM,GAAG,EACnC,QAAS,EAAI,EAAG,EAAIA,SAAQ,OAAQ,GAAK,EACxC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,OAAO,KAAK,CAAC,EAAM,KAAe,OAAO,KAAK,CAAC,EAAE,UAAc,KAAa,KAAK,CAAC,EAAE,UAAU,IAAIA,SAAQ,CAAC,CAAC,EAGlH,OAAO,IACR,CACA,SAAS,yBAAyB,UAAW,CAC5C,MAAMA,SAAU,UAAU,MAAM,GAAG,EACnC,QAAS,EAAI,EAAG,EAAIA,SAAQ,OAAQ,GAAK,EACxC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,OAAO,KAAK,CAAC,EAAM,KAAe,OAAO,KAAK,CAAC,EAAE,UAAc,KAAa,KAAK,CAAC,EAAE,UAAU,OAAOA,SAAQ,CAAC,CAAC,EAGrH,OAAO,IACR,CACA,SAAS,SAAS,UAAW,CAC5B,OAAK,KAAK,CAAC,EACJ,KAAK,CAAC,EAAE,UAAU,SAAS,SAAS,EADtB,EAEtB,CACA,SAAS,YAAY,UAAW,CAC/B,MAAMA,SAAU,UAAU,MAAM,GAAG,EACnC,QAAS,EAAI,EAAG,EAAIA,SAAQ,OAAQ,GAAK,EACxC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,OAAO,KAAK,CAAC,EAAM,KAAe,OAAO,KAAK,CAAC,EAAE,UAAc,KAAa,KAAK,CAAC,EAAE,UAAU,OAAOA,SAAQ,CAAC,CAAC,EAGrH,OAAO,IACR,CACA,SAAS,KAAK9B,OAAO,MAAO,CAC3B,GAAI,UAAU,SAAW,GAAK,OAAOA,QAAU,SAE9C,OAAI,KAAK,CAAC,EAAU,KAAK,CAAC,EAAE,aAAaA,MAAK,EAC9C,OAID,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,UAAU,SAAW,EAExB,KAAK,CAAC,EAAE,aAAaA,OAAO,KAAK,MAIjC,WAAW,YAAYA,OACtB,KAAK,CAAC,EAAE,QAAQ,EAAIA,OAAM,QAAQ,EAClC,KAAK,CAAC,EAAE,aAAa,SAAUA,OAAM,QAAQ,CAAC,EAIjD,OAAO,IACR,CAEA,SAAS,WAAWS,MAAM,CACzB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,KAAK,CAAC,EAAE,gBAAgBA,KAAI,EAE7B,OAAO,IACR,CAEA,SAAS,KAAKhB,OAAO,MAAO,CAC3B,GAAI,UAAU,SAAW,GAAK,OAAOA,QAAU,UAE9C,GAAI,KAAK,CAAC,EAAG,OAAO,KAAK,CAAC,EAAEA,MAAK,MAC3B,CAEN,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,UAAU,SAAW,EAExB,KAAK,CAAC,EAAEA,MAAK,EAAI,UAIjB,WAAW,YAAYA,OACtB,KAAK,CAAC,EAAE,QAAQ,EAAIA,OAAM,QAAQ,EAIrC,OAAO,IACR,CACD,CACA,SAAS,KAAK,IAAK,MAAO,CACzB,IAAI,GACJ,GAAI,OAAO,MAAU,IAAa,CAGjC,GAFA,GAAK,KAAK,CAAC,EAEP,GAAI,CACP,GAAI,GAAG,wBAA2B,OAAO,GAAG,uBAC3C,OAAO,GAAG,uBAAuB,GAAG,EAGrC,MAAM,QAAU,GAAG,aAAa,QAAQ,GAAG,EAAE,EAC7C,OAAI,SAGJ,MACD,CACA,MACD,CAGA,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAK,KAAK,CAAC,EACN,GAAG,yBAAwB,GAAG,uBAAyB,CAAC,GAC7D,GAAG,uBAAuB,GAAG,EAAI,MAElC,OAAO,IACR,CACA,SAAS,WAAW,IAAK,CACxB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACb,GAAG,wBAA0B,GAAG,uBAAuB,GAAG,IAC7D,GAAG,uBAAuB,GAAG,EAAI,KACjC,OAAO,GAAG,uBAAuB,GAAG,EAEtC,CACD,CACA,SAAS,SAAU,CAClB,MAAM,GAAK,KAAK,CAAC,EACjB,GAAI,CAAC,GAAI,OACT,MAAMsC,SAAU,CAAC,EACjB,GAAI,GAAG,QAEN,UAAW,WAAW,GAAG,QACxBA,SAAQ,OAAO,EAAI,GAAG,QAAQ,OAAO,MAGtC,SAAS,EAAI,EAAG,EAAI,GAAG,WAAW,OAAQ,GAAK,EAAG,CAEjD,MAAMtB,MAAO,GAAG,WAAW,CAAC,EACxBA,MAAK,KAAK,QAAQ,OAAO,GAAK,IACjCsB,SAAQ,YAAYtB,MAAK,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAIA,MAAK,MAE3D,CAGD,UAAW,OAAOsB,SACbA,SAAQ,GAAG,IAAM,QAASA,SAAQ,GAAG,EAAI,GACpCA,SAAQ,GAAG,IAAM,OAAQA,SAAQ,GAAG,EAAI,GACxC,WAAWA,SAAQ,GAAG,CAAC,IAAMA,SAAQ,GAAG,EAAI,IAAGA,SAAQ,GAAG,GAAK,GAEzE,OAAOA,QACR,CACA,SAAS,IAAI,MAAO,CACnB,MAAM,IAAM,KACZ,GAAI,OAAO,MAAU,IAAa,CACjC,GAAI,IAAI,CAAC,EAAG,CACX,GAAI,IAAI,CAAC,EAAE,UAAY,IAAI,CAAC,EAAE,SAAS,YAAY,IAAM,SAAU,CAClE,MAAM,OAAS,CAAC,EAChB,QAAS,EAAI,EAAG,EAAI,IAAI,CAAC,EAAE,gBAAgB,OAAQ,GAAK,EACvD,OAAO,KAAK,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAE5C,OAAO,MACR,CACA,OAAO,IAAI,CAAC,EAAE,KACf,CACA,MACD,CAEA,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EAAG,CACvC,MAAM,GAAK,IAAI,CAAC,EAChB,GAAI,MAAM,QAAQ,KAAK,GAAK,GAAG,UAAY,GAAG,SAAS,YAAY,IAAM,SACxE,QAAS,EAAI,EAAG,EAAI,GAAG,QAAQ,OAAQ,GAAK,EAC3C,GAAG,QAAQ,CAAC,EAAE,SAAW,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,KAAK,GAAK,OAGhE,GAAG,MAAQ,KAEb,CACA,OAAO,GACR,CAGA,SAAS,UAAUC,WAAW,CAC7B,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,QAAU,KAAK,CAAC,EAAE,MACxB,QAAQ,gBAAkBA,WAC1B,QAAQ,UAAYA,UACrB,CACA,OAAO,IACR,CACA,SAAS,wBAAwB,SAAU,CACtC,OAAO,UAAa,WACvB,SAAW,GAAG,QAAQ,MAEvB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,QAAU,KAAK,CAAC,EAAE,MACxB,QAAQ,yBAA2B,SACnC,QAAQ,mBAAqB,QAC9B,CACA,OAAO,IACR,CAEA,SAAS,mBAAmB,KAAM,CACjC,GAAI,CAAC,UAAW,eAAgB,SAAU,OAAO,EAAI,KACjD,OAAO,KAAK,CAAC,GAAM,aACtB,CAAC,UAAW,SAAU,OAAO,EAAI,KACjC,eAAiB,QAEb,UAAS,QAAU,IAExB,SAAS,gBAAgB,EAAG,CAC3B,MAAM1C,QAAS,EAAE,OACjB,GAAI,CAACA,QAAQ,OACb,MAAM,UAAY,EAAE,OAAO,eAAiB,CAAC,EAI7C,GAHI,UAAU,QAAQ,CAAC,EAAI,GAC1B,UAAU,QAAQ,CAAC,EAEhB,EAAEA,OAAM,EAAE,GAAG,cAAc,EAAG,SAAS,MAAMA,QAAQ,SAAS,MAC7D,CACJ,MAAM2C,SAAU,EAAE3C,OAAM,EAAE,QAAQ,EAClC,QAAS,EAAI,EAAG,EAAI2C,SAAQ,OAAQ,GAAK,EACpC,EAAEA,SAAQ,CAAC,CAAC,EAAE,GAAG,cAAc,GAAG,SAAS,MAAMA,SAAQ,CAAC,EAAG,SAAS,CAE5E,CACD,CACA,SAAS,YAAY,EAAG,CACvB,MAAM,UAAY,GAAK,EAAE,OAAS,EAAE,OAAO,eAAiB,CAAC,EAAI,CAAC,EAC9D,UAAU,QAAQ,CAAC,EAAI,GAC1B,UAAU,QAAQ,CAAC,EAEpB,SAAS,MAAM,KAAM,SAAS,CAC/B,CACA,MAAMhB,QAAS,UAAU,MAAM,GAAG,EAClC,IAAI,EACJ,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACjB,GAAK,eAaJ,IAAK,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EAAG,CACtC,MAAM,MAAQA,QAAO,CAAC,EACjB,GAAG,oBAAmB,GAAG,kBAAoB,CAAC,GAC9C,GAAG,kBAAkB,KAAK,IAAG,GAAG,kBAAkB,KAAK,EAAI,CAAC,GACjE,GAAG,kBAAkB,KAAK,EAAE,KAAK,CAChC,SACA,cAAe,eAChB,CAAC,EACD,GAAG,iBAAiB,MAAO,gBAAiB,OAAO,CACpD,KArBA,KAAK,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EAAG,CACtC,MAAM,MAAQA,QAAO,CAAC,EACjB,GAAG,gBAAe,GAAG,cAAgB,CAAC,GACtC,GAAG,cAAc,KAAK,IAAG,GAAG,cAAc,KAAK,EAAI,CAAC,GACzD,GAAG,cAAc,KAAK,EAAE,KAAK,CAC5B,SACA,cAAe,WAChB,CAAC,EACD,GAAG,iBAAiB,MAAO,YAAa,OAAO,CAChD,CAcF,CACA,OAAO,IACR,CACA,SAAS,OAAO,KAAM,CACrB,GAAI,CAAC,UAAW,eAAgB,SAAU,OAAO,EAAI,KACjD,OAAO,KAAK,CAAC,GAAM,aACtB,CAAC,UAAW,SAAU,OAAO,EAAI,KACjC,eAAiB,QAEb,UAAS,QAAU,IAExB,MAAMA,QAAS,UAAU,MAAM,GAAG,EAClC,QAAS,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EAAG,CAC1C,MAAM,MAAQA,QAAO,CAAC,EACtB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACjB,IAAI,SAMJ,GALI,CAAC,gBAAkB,GAAG,cACzB,SAAW,GAAG,cAAc,KAAK,EACvB,gBAAkB,GAAG,oBAC/B,SAAW,GAAG,kBAAkB,KAAK,GAElC,UAAY,SAAS,OACxB,QAAS,EAAI,SAAS,OAAS,EAAG,GAAK,EAAG,GAAK,EAAG,CACjD,MAAM,QAAU,SAAS,CAAC,EACtB,UAAY,QAAQ,WAAa,UAG1B,UAAY,QAAQ,UAAY,QAAQ,SAAS,WAAa,QAAQ,SAAS,YAAc,UAFvG,GAAG,oBAAoB,MAAO,QAAQ,cAAe,OAAO,EAC5D,SAAS,OAAO,EAAG,CAAC,GAIT,WACX,GAAG,oBAAoB,MAAO,QAAQ,cAAe,OAAO,EAC5D,SAAS,OAAO,EAAG,CAAC,EAEtB,CAEF,CACD,CACA,OAAO,IACR,CACA,SAAS,qBAAqB,KAAM,CACnC,MAAM,IAAM,KACZ,GAAI,CAAC,UAAW,eAAgB,SAAU,OAAO,EAAI,KACjD,OAAO,KAAK,CAAC,GAAM,aACtB,CAAC,UAAW,SAAU,OAAO,EAAI,KACjC,eAAiB,QAElB,SAAS,eAAe,UAAW,CAClC,SAAS,MAAM,KAAM,SAAS,EAC9B,IAAI,IAAI,UAAW,eAAgB,YAAa,OAAO,EACnD,YAAY,WACf,OAAO,YAAY,SAErB,CACA,mBAAY,UAAY,SACjB,IAAI,GAAG,UAAW,eAAgB,YAAa,OAAO,CAC9D,CACA,SAAS,wBAAwB,KAAM,CACtC,MAAMA,QAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAC1B,UAAY,KAAK,CAAC,EACxB,QAAS,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EAAG,CAC1C,MAAM,MAAQA,QAAO,CAAC,EACtB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACjB,IAAI,IACJ,GAAI,CACH,IAAM,IAAI,IAAI,YAAY,MAAO,CAChC,OAAQ,UACR,QAAS,GACT,WAAY,EACb,CAAC,CACF,MAAY,CACX,IAAM,IAAI,YAAY,OAAO,EAC7B,IAAI,UAAU,MAAO,GAAM,EAAI,EAC/B,IAAI,OAAS,SACd,CAEA,GAAG,cAAgB,KAAK,OAAO,CAACpF,MAAM,YAAc,UAAY,CAAC,EACjE,GAAG,cAAc,GAAG,EACpB,GAAG,cAAgB,CAAC,EACpB,OAAO,GAAG,aACX,CACD,CACA,OAAO,IACR,CACA,SAAS,cAAc,SAAU,CAChC,MAAMoF,QAAS,CAAC,sBAAuB,eAAe,EAChD,IAAM,KACZ,IAAI,EACJ,SAAS,aAAa,EAAG,CAExB,GAAI,EAAE,SAAW,KAEjB,IADA,SAAS,KAAK,KAAM,CAAC,EAChB,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EACnC,IAAI,IAAIA,QAAO,CAAC,EAAG,YAAY,CAEjC,CACA,GAAI,SACH,IAAK,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EACnC,IAAI,GAAGA,QAAO,CAAC,EAAG,YAAY,EAGhC,OAAO,IACR,CACA,SAAS,aAAa,SAAU,CAC/B,MAAMA,QAAS,CAAC,qBAAsB,cAAc,EAC9C,IAAM,KACZ,IAAI,EACJ,SAAS,aAAa,EAAG,CACxB,GAAI,EAAE,SAAW,KAEjB,IADA,SAAS,KAAK,KAAM,CAAC,EAChB,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EACnC,IAAI,IAAIA,QAAO,CAAC,EAAG,YAAY,CAEjC,CACA,GAAI,SACH,IAAK,EAAI,EAAG,EAAIA,QAAO,OAAQ,GAAK,EACnC,IAAI,GAAGA,QAAO,CAAC,EAAG,YAAY,EAGhC,OAAO,IACR,CAEA,SAAS,OAAQ,CAChB,OAAI,KAAK,CAAC,IAAM,OACR,OAAO,WAGX,KAAK,OAAS,EACV,WAAW,KAAK,IAAI,OAAO,CAAC,EAG7B,IACR,CACA,SAAS,wBAAwB,eAAgB,CAChD,GAAI,KAAK,OAAS,EAAG,CACpB,GAAI,eAAgB,CAEnB,MAAME,QAAS,KAAK,OAAO,EAC3B,OAAO,KAAK,CAAC,EAAE,YAAc,WAAWA,QAAO,iBAAiB,cAAc,CAAC,EAAI,WAAWA,QAAO,iBAAiB,aAAa,CAAC,CACrI,CACA,OAAO,KAAK,CAAC,EAAE,WAChB,CACA,OAAO,IACR,CACA,SAAS,QAAS,CACjB,OAAI,KAAK,CAAC,IAAM,OACR,OAAO,YAGX,KAAK,OAAS,EACV,WAAW,KAAK,IAAI,QAAQ,CAAC,EAG9B,IACR,CACA,SAAS,yBAAyB,eAAgB,CACjD,GAAI,KAAK,OAAS,EAAG,CACpB,GAAI,eAAgB,CAEnB,MAAMA,QAAS,KAAK,OAAO,EAC3B,OAAO,KAAK,CAAC,EAAE,aAAe,WAAWA,QAAO,iBAAiB,YAAY,CAAC,EAAI,WAAWA,QAAO,iBAAiB,eAAe,CAAC,CACtI,CACA,OAAO,KAAK,CAAC,EAAE,YAChB,CACA,OAAO,IACR,CACA,SAAS,QAAS,CACjB,GAAI,KAAK,OAAS,EAAG,CACpB,MAAM,GAAK,KAAK,CAAC,EACX,IAAM,GAAG,sBAAsB,EAC/B,KAAO,IAAI,KACX,UAAY,GAAG,WAAa,KAAK,WAAa,EAC9C,WAAa,GAAG,YAAc,KAAK,YAAc,EACjDe,WAAY,KAAO,IAAM,IAAI,QAAU,GAAG,UAC1CC,YAAa,KAAO,IAAM,IAAI,QAAU,GAAG,WACjD,MAAO,CACN,IAAM,IAAI,IAAMD,WAAa,UAC7B,KAAO,IAAI,KAAOC,YAAc,UACjC,CACD,CAEA,OAAO,IACR,CACA,SAAS,MAAO,CACf,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,KAAK,CAAC,EAAE,MAAM,QAAU,OAEzB,OAAO,IACR,CACA,SAAS,mBAAoB,CAC5B,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACb,GAAG,MAAM,UAAY,SACxB,GAAG,MAAM,QAAU,IAEhB,OAAO,iBAAiB,GAAI,IAAI,EAAE,iBAAiB,SAAS,IAAM,SAErE,GAAG,MAAM,QAAU,QAErB,CACA,OAAO,IACR,CACA,SAAS,QAAS,CACjB,OAAI,KAAK,CAAC,EAAU,IAAI,iBAAiB,KAAK,CAAC,EAAG,IAAI,EAC/C,CAAC,CACT,CACA,SAAS,IAAI1C,OAAO,MAAO,CAC1B,IAAI,EACJ,GAAI,UAAU,SAAW,EACxB,GAAI,OAAOA,QAAU,UACpB,GAAI,KAAK,CAAC,EAAG,OAAO,IAAI,iBAAiB,KAAK,CAAC,EAAG,IAAI,EAAE,iBAAiBA,MAAK,MACxE,CACN,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAEjC,QAASC,SAAQD,OAChB,KAAK,CAAC,EAAE,MAAMC,KAAI,EAAID,OAAMC,KAAI,EAGlC,OAAO,IACR,CAED,GAAI,UAAU,SAAW,GAAK,OAAOD,QAAU,SAAU,CACxD,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,KAAK,CAAC,EAAE,MAAMA,MAAK,EAAI,MAExB,OAAO,IACR,CACA,OAAO,IACR,CAGA,SAAS,sBAAuB,CAC/B,MAAM,IAAM,CAAC,EACb,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,IAAI,KAAK,KAAK,CAAC,CAAC,EAEjB,OAAO,GACR,CAEA,SAAS,KAAK,SAAU,CAEvB,GAAI,CAAC,SAAU,OAAO,KAEtB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAErC,GAAI,SAAS,KAAK,KAAK,CAAC,EAAG,EAAG,KAAK,CAAC,CAAC,IAAM,GAE1C,OAAO,KAIT,OAAO,IACR,CACA,SAAS,QAAQ,SAAU,CAE1B,GAAI,CAAC,SAAU,OAAO,KAEtB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAErC,GAAI,SAAS,KAAK,KAAK,CAAC,EAAG,KAAK,CAAC,EAAG,CAAC,IAAM,GAE1C,OAAO,KAIT,OAAO,IACR,CACA,SAAS,OAAO,SAAU,CACzB,MAAM,aAAe,CAAC,EAChB,IAAM,KACZ,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EAChC,SAAS,KAAK,IAAI,CAAC,EAAG,EAAG,IAAI,CAAC,CAAC,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,EAE/D,OAAO,IAAI,KAAK,YAAY,CAC7B,CACA,SAAS,IAAI,SAAU,CACtB,MAAM,cAAgB,CAAC,EACjB,IAAM,KACZ,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EACpC,cAAc,KAAK,SAAS,KAAK,IAAI,CAAC,EAAG,EAAG,IAAI,CAAC,CAAC,CAAC,EAEpD,OAAO,IAAI,KAAK,aAAa,CAC9B,CAEA,SAAS,kBAAkB1C,MAAM,CAChC,GAAI,OAAOA,MAAS,IACnB,OAAO,KAAK,CAAC,EAAI,KAAK,CAAC,EAAE,UAAY,OAGtC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,KAAK,CAAC,EAAE,UAAYA,MAErB,OAAO,IACR,CAEA,SAAS,kBAAkB,KAAM,CAChC,GAAI,OAAO,KAAS,IACnB,OAAI,KAAK,CAAC,EACF,KAAK,CAAC,EAAE,YAAY,KAAK,EAE1B,KAGR,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,KAAK,CAAC,EAAE,YAAc,KAEvB,OAAO,IACR,CACA,SAAS,GAAG,SAAU,CACrB,MAAM,GAAK,KAAK,CAAC,EACjB,IAAI,YACA,EACJ,GAAI,CAAC,IAAM,OAAO,SAAa,IAAa,MAAO,GACnD,GAAI,OAAO,UAAa,SAAU,CACjC,GAAI,GAAG,QAAS,OAAO,GAAG,QAAQ,QAAQ,EACrC,GAAI,GAAG,sBAAuB,OAAO,GAAG,sBAAsB,QAAQ,EACtE,GAAI,GAAG,kBAAmB,OAAO,GAAG,kBAAkB,QAAQ,EAGnE,IADA,YAAc,EAAE,QAAQ,EACnB,EAAI,EAAG,EAAI,YAAY,OAAQ,GAAK,EACxC,GAAI,YAAY,CAAC,IAAM,GAAI,MAAO,GAEnC,MAAO,EACR,KAAO,IAAI,WAAa,IAAK,OAAO,KAAO,IACtC,GAAI,WAAa,IAAK,OAAO,KAAO,IAEzC,GAAI,SAAS,UAAY,oBAAoB,KAAM,CAElD,IADA,YAAc,SAAS,SAAW,CAAC,QAAQ,EAAI,SAC1C,EAAI,EAAG,EAAI,YAAY,OAAQ,GAAK,EACxC,GAAI,YAAY,CAAC,IAAM,GAAI,MAAO,GAEnC,MAAO,EACR,CACA,MAAO,EACR,CACA,SAAS,QAAQ,GAAI,CACpB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,KAAK,CAAC,IAAM,GAAI,OAAO,EAE5B,MAAO,EACR,CACA,SAAS,oBAAqB,CAC7B,IAAI,MAAQ,KAAK,CAAC,EACd,EACJ,GAAI,MAAO,CAGV,IAFA,EAAI,GAEI,MAAQ,MAAM,mBAAqB,MACtC,MAAM,WAAa,IAAG,GAAK,GAEhC,OAAO,CACR,CAED,CAEA,SAAS,GAAGf,OAAO,CAClB,GAAI,OAAOA,OAAU,IAAa,OAAO,KACzC,MAAM,OAAS,KAAK,OACpB,IAAI,YACJ,OAAIA,OAAQ,OAAS,EACb,IAAI,KAAK,CAAC,CAAC,EAEfA,OAAQ,GACX,YAAc,OAASA,OACnB,YAAc,EAAU,IAAI,KAAK,CAAC,CAAC,EAChC,IAAI,KAAK,CAAC,KAAK,WAAW,CAAC,CAAC,GAE7B,IAAI,KAAK,CAAC,KAAKA,MAAK,CAAC,CAAC,CAC9B,CACA,SAAS,UAAU,KAAM,CACxB,IAAI,SAEJ,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,SAAW,KAAK,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,OAAO,UAAa,SAAU,CACjC,MAAM,QAAU,IAAI,cAAc,KAAK,EAEvC,IADA,QAAQ,UAAY,SACb,QAAQ,YACd,KAAK,CAAC,EAAE,YAAY,QAAQ,UAAU,CAExC,SAAW,oBAAoB,KAC9B,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EACzC,KAAK,CAAC,EAAE,YAAY,SAAS,CAAC,CAAC,OAGhC,KAAK,CAAC,EAAE,YAAY,QAAQ,CAG/B,CAEA,OAAO,IACR,CAEA,SAAS,SAAS,OAAQ,CACzB,SAAE,MAAM,EAAE,OAAO,IAAI,EACd,IACR,CACA,SAAS,QAAQ,SAAU,CAC1B,IAAI,EACA,EACJ,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,GAAI,OAAO,UAAa,SAAU,CACjC,MAAM,QAAU,IAAI,cAAc,KAAK,EAEvC,IADA,QAAQ,UAAY,SACf,EAAI,QAAQ,WAAW,OAAS,EAAG,GAAK,EAAG,GAAK,EACpD,KAAK,CAAC,EAAE,aAAa,QAAQ,WAAW,CAAC,EAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAEnE,SAAW,oBAAoB,KAC9B,IAAK,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EACrC,KAAK,CAAC,EAAE,aAAa,SAAS,CAAC,EAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,OAGxD,KAAK,CAAC,EAAE,aAAa,SAAU,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAGtD,OAAO,IACR,CAEA,SAAS,UAAU,OAAQ,CAC1B,SAAE,MAAM,EAAE,QAAQ,IAAI,EACf,IACR,CACA,SAAS,0BAA0B,SAAU,CAC5C,MAAM,OAAS,EAAE,QAAQ,EACzB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,OAAO,SAAW,EACrB,OAAO,CAAC,EAAE,WAAW,aAAa,KAAK,CAAC,EAAG,OAAO,CAAC,CAAC,UAC1C,OAAO,OAAS,EAC1B,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACvC,OAAO,CAAC,EAAE,WAAW,aAAa,KAAK,CAAC,EAAE,UAAU,EAAI,EAAG,OAAO,CAAC,CAAC,CAIxE,CACA,SAAS,YAAY,SAAU,CAC9B,MAAM,MAAQ,EAAE,QAAQ,EACxB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACrC,GAAI,MAAM,SAAW,EACpB,MAAM,CAAC,EAAE,WAAW,aAAa,KAAK,CAAC,EAAG,MAAM,CAAC,EAAE,WAAW,UACpD,MAAM,OAAS,EACzB,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,EACtC,MAAM,CAAC,EAAE,WAAW,aAAa,KAAK,CAAC,EAAE,UAAU,EAAI,EAAG,MAAM,CAAC,EAAE,WAAW,CAIlF,CACA,SAAS,kBAAkB,SAAU,CACpC,OAAI,KAAK,OAAS,EACb,SACC,KAAK,CAAC,EAAE,oBAAsB,EAAE,KAAK,CAAC,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EACnE,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,EAEtC,IAAI,KAAK,CAAC,CAAC,EAGf,KAAK,CAAC,EAAE,mBAA2B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,EACrE,IAAI,KAAK,CAAC,CAAC,EAEZ,IAAI,KAAK,CAAC,CAAC,CACnB,CACA,SAAS,QAAQ,SAAU,CAC1B,MAAM,QAAU,CAAC,EACjB,IAAI,GAAK,KAAK,CAAC,EACf,GAAI,CAAC,GAAI,OAAO,IAAI,KAAK,CAAC,CAAC,EAC3B,KAAO,GAAG,oBAAoB,CAC7B,MAAMiB,MAAO,GAAG,mBACZ,SACC,EAAEA,KAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,KAAKA,KAAI,EACrC,QAAQ,KAAKA,KAAI,EACxB,GAAKA,KACN,CACA,OAAO,IAAI,KAAK,OAAO,CACxB,CACA,SAAS,KAAK,SAAU,CACvB,GAAI,KAAK,OAAS,EAAG,CACpB,MAAM,GAAK,KAAK,CAAC,EACjB,OAAI,SACC,GAAG,wBAA0B,EAAE,GAAG,sBAAsB,EAAE,GAAG,QAAQ,EACjE,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC,EAErC,IAAI,KAAK,CAAC,CAAC,EAGf,GAAG,uBAA+B,IAAI,KAAK,CAAC,GAAG,sBAAsB,CAAC,EACnE,IAAI,KAAK,CAAC,CAAC,CACnB,CACA,OAAO,IAAI,KAAK,CAAC,CAAC,CACnB,CACA,SAAS,QAAQ,SAAU,CAC1B,MAAM,QAAU,CAAC,EACjB,IAAI,GAAK,KAAK,CAAC,EACf,GAAI,CAAC,GAAI,OAAO,IAAI,KAAK,CAAC,CAAC,EAC3B,KAAO,GAAG,wBAAwB,CACjC,MAAM8D,MAAO,GAAG,uBACZ,SACC,EAAEA,KAAI,EAAE,GAAG,QAAQ,GAAG,QAAQ,KAAKA,KAAI,EACrC,QAAQ,KAAKA,KAAI,EACxB,GAAKA,KACN,CACA,OAAO,IAAI,KAAK,OAAO,CACxB,CACA,SAAS,SAAS,SAAU,CAC3B,OAAO,KAAK,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,QAAQ,CAAC,CACzD,CACA,SAAS,oBAAoB,SAAU,CACtC,MAAMkB,SAAU,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,KAAK,CAAC,EAAE,aAAe,OACtB,SACC,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,QAAQ,GAAGA,SAAQ,KAAK,KAAK,CAAC,EAAE,UAAU,EAEvEA,SAAQ,KAAK,KAAK,CAAC,EAAE,UAAU,GAIlC,OAAO,EAAE,OAAOA,QAAO,CAAC,CACzB,CACA,SAAS,QAAQ,SAAU,CAC1B,MAAMA,SAAU,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,IAAI,OAAS,KAAK,CAAC,EAAE,WACrB,KAAO,QACF,SACC,EAAE,MAAM,EAAE,GAAG,QAAQ,GAAGA,SAAQ,KAAK,MAAM,EAE/CA,SAAQ,KAAK,MAAM,EAEpB,OAAS,OAAO,UAElB,CACA,OAAO,EAAE,OAAOA,QAAO,CAAC,CACzB,CACA,SAAS,QAAQ,SAAU,CAC1B,IAAIG,SAAU,KACd,OAAI,OAAO,SAAa,IAChB,IAAI,KAAK,CAAC,CAAC,GAEdA,SAAQ,GAAG,QAAQ,IACvBA,SAAUA,SAAQ,QAAQ,QAAQ,EAAE,GAAG,CAAC,GAElCA,SACR,CACA,SAAS,KAAK,SAAU,CACvB,MAAM,cAAgB,CAAC,EACvB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,MAAQ,KAAK,CAAC,EAAE,iBAAiB,QAAQ,EAC/C,QAAS,EAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,EACtC,cAAc,KAAK,MAAM,CAAC,CAAC,CAE7B,CACA,OAAO,IAAI,KAAK,aAAa,CAC9B,CACA,SAAS,SAAS,SAAU,CAC3B,MAAM7C,UAAW,CAAC,EAClB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,WAAa,KAAK,CAAC,EAAE,WAE3B,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAK,EACtC,SAEM,WAAW,CAAC,EAAE,WAAa,GAAK,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,QAAQ,GACtEA,UAAS,KAAK,WAAW,CAAC,CAAC,EAFvB,WAAW,CAAC,EAAE,WAAa,GAAGA,UAAS,KAAK,WAAW,CAAC,CAAC,CAKhE,CACA,OAAO,IAAI,KAAK,OAAOA,SAAQ,CAAC,CACjC,CACA,SAAS,qBAAsB,CAC9B,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,KAAK,CAAC,EAAE,YAAY,KAAK,CAAC,EAAE,WAAW,YAAY,KAAK,CAAC,CAAC,EAE/D,OAAO,IACR,CACA,SAAS,QAAS,CACjB,OAAO,KAAK,OAAO,CACpB,CACA,SAAS,oBAAoB,KAAM,CAClC,MAAM,IAAM,KACZ,IAAI,EACA,EACJ,IAAK,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACpC,MAAM,MAAQ,EAAE,KAAK,CAAC,CAAC,EACvB,IAAK,EAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,EAClC,IAAI,IAAI,MAAM,EAAI,MAAM,CAAC,EACzB,IAAI,QAAU,CAEhB,CACA,OAAO,GACR,CACA,SAAS,OAAQ,CAChB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,GAAK,KAAK,CAAC,EACjB,GAAI,GAAG,WAAa,EAAG,CACtB,QAAS,EAAI,EAAG,EAAI,GAAG,WAAW,OAAQ,GAAK,EAC1C,GAAG,WAAW,CAAC,EAAE,YACpB,GAAG,WAAW,CAAC,EAAE,WAAW,YAAY,GAAG,WAAW,CAAC,CAAC,EAG1D,GAAG,YAAc,EAClB,CACD,CACA,OAAO,IACR,CAEA,SAAS,YAAY,KAAM,CAC1B,GAAI,CAAC,KAAM,IAAK,SAAU,OAAQ,QAAQ,EAAI,KAC9C,OAAI,KAAK,SAAW,GAAK,OAAO,QAAW,aAC1C,SAAW,OACX,CAAC,KAAM,IAAK,SAAU,SAAU,MAAM,EAAI,MAEvC,OAAO,OAAW,MAAa,OAAS,SAErC,KAAK,KAAK,UAAmB,CACnC,MAAM,GAAK,KACX,IAAI,WACA,YACA,OACA,QACA,OACA,QACA2C,WACAC,YACA,WAAa,IAAM,GAAK,MAAQ,EAChC,YAAc,KAAO,GAAK,OAAS,EAgBvC,GAfI,OAAO,OAAW,MACrB,OAAS,SAEN,aACH,WAAa,GAAG,UACX,WACJ,GAAG,UAAY,MAGb,cACH,YAAc,GAAG,WACZ,WACJ,GAAG,WAAa,OAGd,CAAC,SAAU,OACX,aACH,OAAS,GAAG,aAAe,GAAG,aAC9B,OAAS,KAAK,IAAI,KAAK,IAAI,IAAK,MAAM,EAAG,CAAC,GAEvC,cACH,QAAU,GAAG,YAAc,GAAG,YAC9B,QAAU,KAAK,IAAI,KAAK,IAAI,KAAM,OAAO,EAAG,CAAC,GAE9C,IAAI,UAAY,KACZ,YAAc,SAAW,aAAY,WAAa,IAClD,aAAe,UAAY,cAAa,YAAc,IAC1D,SAASlC,QAAO,KAAO,IAAI,KAAK,EAAE,QAAQ,EAAG,CACxC,YAAc,OACjB,UAAY,MAEb,MAAM,SAAW,KAAK,IAAI,KAAK,KAAK,KAAO,WAAa,SAAU,CAAC,EAAG,CAAC,EACjE,aAAe,SAAW,SAAW,SAAY,GAAO,KAAK,IAAI,SAAW,KAAK,EAAE,EAAI,EAC7F,IAAI,KAoBJ,GAnBI,aAAYiC,WAAY,WAAc,cAAgB,OAAS,aAC/D,cAAaC,YAAa,YAAe,cAAgB,QAAU,cACnE,YAAc,OAAS,YAAcD,YAAa,SACrD,GAAG,UAAY,OACf,KAAO,IAEJ,YAAc,OAAS,YAAcA,YAAa,SACrD,GAAG,UAAY,OACf,KAAO,IAEJ,aAAe,QAAU,aAAeC,aAAc,UACzD,GAAG,WAAa,QAChB,KAAO,IAEJ,aAAe,QAAU,aAAeA,aAAc,UACzD,GAAG,WAAa,QAChB,KAAO,IAGJ,KAAM,CACL,UAAU,SAAS,EACvB,MACD,CACI,aAAY,GAAG,UAAYD,YAC3B,cAAa,GAAG,WAAaC,aACjC,sBAAsBlC,OAAM,CAC7B,CACA,sBAAsBA,OAAM,CAC7B,CAAC,CACF,CAEA,SAAS,aAAa,KAAM,CAC3B,GAAI,CAAC,IAAK,SAAU,OAAQ,QAAQ,EAAI,KACpC,KAAK,SAAW,GAAK,OAAO,QAAW,aAC1C,CAAC,IAAK,SAAU,SAAU,MAAM,EAAI,MAErC,MAAM,IAAM,KACZ,OAAI,OAAO,IAAQ,IACd,IAAI,OAAS,EAAU,IAAI,CAAC,EAAE,UAC3B,KAED,IAAI,SAAS,OAAW,IAAK,SAAU,OAAQ,QAAQ,CAC/D,CACA,SAAS,cAAc,KAAM,CAC5B,GAAI,CAAC,KAAM,SAAU,OAAQ,QAAQ,EAAI,KACrC,KAAK,SAAW,GAAK,OAAO,QAAW,aAC1C,CAAC,KAAM,SAAU,SAAU,MAAM,EAAI,MAEtC,MAAM,IAAM,KACZ,OAAI,OAAO,KAAS,IACf,IAAI,OAAS,EAAU,IAAI,CAAC,EAAE,WAC3B,KAED,IAAI,SAAS,KAAM,OAAW,SAAU,OAAQ,QAAQ,CAChE,CAEA,SAAS,QAAQ,aAAc,cAAe,CAC7C,MAAM,IAAM,KACN,EAAI,CACT,MAAO,OAAO,OAAO,CAAC,EAAG,YAAY,EACrC,OAAQ,OAAO,OAAO,CACrB,SAAU,IACV,OAAQ,OAMT,EAAG,aAAa,EAEhB,SAAU,IACV,UAAW,GACX,IAAK,CAAC,EAEN,eAAe,OAAQ,SAAU,CAChC,OAAI,SAAW,QACP,GAAO,KAAK,IAAI,SAAW,KAAK,EAAE,EAAI,EAE1C,OAAO,QAAW,WACd,OAAO,QAAQ,EAEhB,QACR,EACA,MAAO,CACF,EAAE,SACL,qBAAqB,EAAE,OAAO,EAE/B,EAAE,UAAY,GACd,EAAE,SAAS,KAAK,CAACjE,OAAO,KAAO,CAC9B,MAAM,QAAU,GAChB,OAAO,QAAQ,mBAChB,CAAC,EACD,EAAE,IAAM,CAAC,CACV,EACA,KAAK,SAAU,CAOd,GANA,EAAE,UAAY,GACd,EAAE,SAAS,KAAK,CAACA,OAAO,KAAO,CAC9B,MAAM,QAAU,GAChB,OAAO,QAAQ,mBAChB,CAAC,EACG,UAAU,SAAS,GAAG,EACtB,EAAE,IAAI,OAAS,EAAG,CACrB,MAAM,IAAM,EAAE,IAAI,MAAM,EACxB,EAAE,QAAQ,IAAI,CAAC,EAAG,IAAI,CAAC,CAAC,CACzB,CACD,EACA,QAAQyD,OAAO,OAAQ,CACtB,GAAI,EAAE,UACL,SAAE,IAAI,KAAK,CAACA,OAAO,MAAM,CAAC,EACnB,EAER,MAAM,SAAW,CAAC,EAGlB,EAAE,SAAS,KAAK,CAACzD,OAAO,KAAO,CAC9B,IAAI,iBACA,aACA,KACA,WACA,eAEC,GAAG,sBAAqB,EAAE,SAASA,MAAK,EAAE,oBAAsB,GAErE,SAASA,MAAK,EAAI,CACjB,UAAW,EACZ,EACA,OAAO,KAAKyD,MAAK,EAAE,QAASC,OAAS,CACpC,iBAAmB,OAAO,iBAAiB,GAAI,IAAI,EAAE,iBAAiBA,KAAI,EAAE,QAAQ,IAAK,GAAG,EAC5F,aAAe,WAAW,gBAAgB,EAC1C,KAAO,iBAAiB,QAAQ,aAAc,EAAE,EAChD,WAAa,WAAWD,OAAMC,KAAI,CAAC,EACnC,eAAiBD,OAAMC,KAAI,EAAI,KAC/B,SAAS1D,MAAK,EAAE0D,KAAI,EAAI,CACvB,iBACA,aACA,KACA,WACA,eACA,aAAc,YACf,CACD,CAAC,CACF,CAAC,EAED,IAAI,UAAY,KACZ,KACA,aAAe,EACf,UAAY,EACZ,KACA,MAAQ,GAEZ,EAAE,UAAY,GAEd,SAASO,SAAS,CACjB,KAAO,IAAI,KAAK,EAAE,QAAQ,EAC1B,IAAI,SACA,aAEC,QACJ,MAAQ,GACJ,OAAO,OAAO,OAAO,MAAM,GAAG,GAE/B,YAAc,OACjB,UAAY,MAET,OAAO,UAEV,OAAO,SAAS,IAAK,KAAK,IAAI,KAAK,KAAK,KAAO,WAAa,OAAO,SAAU,CAAC,EAAG,CAAC,EAAK,UAAY,OAAO,SAAY,KAAO,EAAI,EAAK,UAAY,OAAO,SAAY,KAAO,SAAS,EAGtL,SAAS,QAAS,SAAY,CAC7B,MAAM,GAAK,QACP,MAAQ,GAAG,MACf,OAAO,KAAKR,MAAK,EAAE,QAASC,OAAS,CACpC,GAAI,MAAQ,GAAG,KAAM,OACrB,SAAW,KAAK,IAAI,KAAK,KAAK,KAAO,WAAa,OAAO,SAAU,CAAC,EAAG,CAAC,EACxE,aAAe,EAAE,eAAe,OAAO,OAAQ,QAAQ,EACvD,KAAM,CAAE,aAAc,WAAY,IAAK,EAAI,GAAGA,KAAI,EAClD,GAAGA,KAAI,EAAE,aAAe,aAAgB,cAAgB,WAAa,cACrE,MAAM,aAAe,GAAGA,KAAI,EAAE,aAe9B,IAZE,WAAa,cAAgB,cAAgB,YAC7C,WAAa,cAAgB,cAAgB,cAC9C,GAAG,UAAU,MAAMA,KAAI,EAAI,WAAa,KACxC,WAAa,EACT,YAAc,OAAO,KAAKD,MAAK,EAAE,SACpC,GAAG,KAAO,GACV,cAAgB,GAEb,eAAiB,SAAS,SAC7B,KAAO,KAGL,KAAM,CACT,EAAE,KAAK,OAAO,QAAQ,EACtB,MACD,CACA,GAAG,UAAU,MAAMC,KAAI,EAAI,aAAe,IAC3C,CAAC,CACF,CAAC,EACG,QAEJ,EAAE,QAAU,sBAAsBO,OAAM,EACzC,CACA,SAAE,QAAU,sBAAsBA,OAAM,EACjC,CACR,CACD,EAEA,GAAI,EAAE,SAAS,SAAW,EACzB,OAAO,IAGR,IAAI,gBACJ,QAAS,EAAI,EAAG,EAAI,EAAE,SAAS,OAAQ,GAAK,EACvC,EAAE,SAAS,CAAC,EAAE,oBACjB,gBAAkB,EAAE,SAAS,CAAC,EAAE,oBAC1B,EAAE,SAAS,CAAC,EAAE,oBAAsB,EAE5C,OAAK,kBACJ,gBAAkB,GAGf,eAAiB,OACpB,gBAAgB,KAAK,EAErB,gBAAgB,QAAQ,EAAE,MAAO,EAAE,MAAM,EAGnC,GACR,CAEA,SAAS,MAAO,CACf,MAAM,IAAM,KACZ,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EAChC,IAAI,CAAC,EAAE,qBACV,IAAI,CAAC,EAAE,oBAAoB,KAAK,CAGnC,CAEA,MAAM,UAAa,gBAAiB,MAAM,GAAG,EAC7C,SAAS,cAAc,QAAS,KAAM,CACrC,GAAI,OAAO,KAAK,CAAC,EAAM,IAAa,CACnC,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACjC,UAAU,QAAQ,IAAI,EAAI,IACzB,QAAQ,KAAK,CAAC,EAAG,KAAK,CAAC,EAAE,IAAI,EAAE,EAElC,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,IAAI,GAI1B,OAAO,IACR,CACA,OAAO,KAAK,GAAG,KAAM,GAAG,IAAI,CAC7B,CAEA,SAAS,SAAS,KAAM,CACvB,OAAO,cAAc,KAAK,IAAI,EAAE,QAAS,GAAG,IAAI,CACjD,CACA,SAAS,qBAAqB,KAAM,CACnC,OAAO,cAAc,KAAK,IAAI,EAAE,OAAQ,GAAG,IAAI,CAChD,CACA,SAAS,sBAAsB,KAAM,CACpC,OAAO,cAAc,KAAK,IAAI,EAAE,QAAS,GAAG,IAAI,CACjD,CACA,SAAS,WAAW,KAAM,CACzB,OAAO,cAAc,KAAK,IAAI,EAAE,UAAW,GAAG,IAAI,CACnD,CACA,SAAS,YAAY,KAAM,CAC1B,OAAO,cAAc,KAAK,IAAI,EAAE,WAAY,GAAG,IAAI,CACpD,CACA,SAAS,SAAS,KAAM,CACvB,OAAO,cAAc,KAAK,IAAI,EAAE,QAAS,GAAG,IAAI,CACjD,CACA,SAAS,WAAW,KAAM,CACzB,OAAO,cAAc,KAAK,IAAI,EAAE,UAAW,GAAG,IAAI,CACnD,CACA,SAAS,YAAY,KAAM,CAC1B,OAAO,cAAc,KAAK,IAAI,EAAE,WAAY,GAAG,IAAI,CACpD,CACA,SAAS,uBAAuB,KAAM,CACrC,OAAO,cAAc,KAAK,IAAI,EAAE,SAAU,GAAG,IAAI,CAClD,CACA,SAAS,UAAU,KAAM,CACxB,OAAO,cAAc,KAAK,IAAI,EAAE,SAAU,GAAG,IAAI,CAClD,CACA,SAAS,aAAa,KAAM,CAC3B,OAAO,cAAc,KAAK,IAAI,EAAE,YAAa,GAAG,IAAI,CACrD,CACA,SAAS,aAAa,KAAM,CAC3B,OAAO,cAAc,KAAK,IAAI,EAAE,YAAa,GAAG,IAAI,CACrD,CACA,SAAS,WAAW,KAAM,CACzB,OAAO,cAAc,KAAK,IAAI,EAAE,UAAW,GAAG,IAAI,CACnD,CACA,SAAS,cAAc,KAAM,CAC5B,OAAO,cAAc,KAAK,IAAI,EAAE,aAAc,GAAG,IAAI,CACtD,CACA,SAAS,cAAc,KAAM,CAC5B,OAAO,cAAc,KAAK,IAAI,EAAE,aAAc,GAAG,IAAI,CACtD,CACA,SAAS,YAAY,KAAM,CAC1B,OAAO,cAAc,KAAK,IAAI,EAAE,WAAY,GAAG,IAAI,CACpD,CACA,SAAS,aAAa,KAAM,CAC3B,OAAO,cAAc,KAAK,IAAI,EAAE,YAAa,GAAG,IAAI,CACrD,CACA,SAAS,cAAc,KAAM,CAC5B,OAAO,cAAc,KAAK,IAAI,EAAE,aAAc,GAAG,IAAI,CACtD,CACA,SAAS,YAAY,KAAM,CAC1B,OAAO,cAAc,KAAK,IAAI,EAAE,WAAY,GAAG,IAAI,CACpD,CACA,SAAS,aAAa,KAAM,CAC3B,OAAO,cAAc,KAAK,IAAI,EAAE,YAAa,GAAG,IAAI,CACrD,CACA,SAAS,UAAU,KAAM,CACxB,OAAO,cAAc,KAAK,IAAI,EAAE,SAAU,GAAG,IAAI,CAClD,CACA,SAAS,uBAAuB,KAAM,CACrC,OAAO,cAAc,KAAK,IAAI,EAAE,SAAU,GAAG,IAAI,CAClD,CAoBA,MAAM,QAAU,CACf,SAAU,sBACV,YAAa,yBACb,SACA,YACA,KACA,WACA,KACA,UACA,WAAY,wBACZ,GAAI,gBACJ,IACA,QAAS,qBACT,cACA,WAAY,wBACZ,YAAa,yBACb,OACA,IACA,KACA,KAAM,kBACN,KAAM,kBACN,GACA,MAAO,mBACP,GACA,OACA,QACA,KAAM,kBACN,QACA,KACA,QACA,OAAQ,oBACR,QACA,QACA,KACA,SACA,OACA,OAAQ,oBACR,IAAK,iBACL,MACD,EAEA,OAAO,KAAK,OAAO,EAAE,QAAS,YAAe,CAC5C,EAAE,GAAG,UAAU,EAAI,EAAE,GAAG,UAAU,GAAK,QAAQ,UAAU,CAC1D,CAAC,EAED,MAAM,MAAQ,CACb,YAAY,IAAK,CAChB,MAAM,OAAS,IACf,OAAO,KAAK,MAAM,EAAE,QAAS,KAAQ,CACpC,GAAI,CACH,OAAO,GAAG,EAAI,IACf,MAAY,CAEZ,CACA,GAAI,CACH,OAAO,OAAO,GAAG,CAClB,MAAY,CAEZ,CACD,CAAC,CACF,EACA,SAAS,SAAU,MAAQ,EAAG,CAC7B,OAAO,WAAW,SAAU,KAAK,CAClC,EACA,KAAM,CACL,OAAO,KAAK,IAAI,CACjB,EACA,aAAa,GAAI,KAAO,IAAK,CAC5B,IAAI,OACA,aACA,gBAEJ,MAAM,SAAW,IAAI,iBAAiB,GAAI,IAAI,EAE9C,OAAI,IAAI,iBACP,aAAe,SAAS,WAAa,SAAS,gBAC1C,aAAa,MAAM,GAAG,EAAE,OAAS,IACpC,aAAe,aAAa,MAAM,IAAI,EAAE,IAAK,GAAM,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAIlF,gBAAkB,IAAI,IAAI,gBAAgB,eAAiB,OAAS,GAAK,YAAY,IAErF,gBAAkB,SAAS,cAAgB,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,WAAa,SAAS,iBAAiB,WAAW,EAAE,QAAQ,aAAc,oBAAoB,EACzN,OAAS,gBAAgB,SAAS,EAAE,MAAM,GAAG,GAG1C,OAAS,MAER,IAAI,gBAAiB,aAAe,gBAAgB,IAE/C,OAAO,SAAW,GAAI,aAAe,WAAW,OAAO,EAAE,CAAC,EAE9D,aAAe,WAAW,OAAO,CAAC,CAAC,GAErC,OAAS,MAER,IAAI,gBAAiB,aAAe,gBAAgB,IAE/C,OAAO,SAAW,GAAI,aAAe,WAAW,OAAO,EAAE,CAAC,EAE9D,aAAe,WAAW,OAAO,CAAC,CAAC,GAElC,cAAgB,CACxB,EACA,cAAc,IAAK,CAClB,MAAMoC,OAAQ,CAAC,EACf,IAAI,WAAa,KAAO,IAAI,SAAS,KACjC,EACA,OACA,MACA,OACJ,GAAI,OAAO,YAAe,UAAY,WAAW,OAKhD,IAJA,WAAa,WAAW,QAAQ,GAAG,EAAI,GAAK,WAAW,QAAQ,QAAS,EAAE,EAAI,GAC9E,OAAS,WAAW,MAAM,GAAG,EAAE,OAAQ,YAAe,aAAe,EAAE,EACvE,OAAS,OAAO,OAEX,EAAI,EAAG,EAAI,OAAQ,GAAK,EAC5B,MAAQ,OAAO,CAAC,EAAE,QAAQ,QAAS,EAAE,EAAE,MAAM,GAAG,EAChDA,OAAM,mBAAmB,MAAM,CAAC,CAAC,CAAC,EAAI,OAAO,MAAM,CAAC,EAAM,IAAc,OAAY,mBAAmB,MAAM,CAAC,CAAC,GAAK,GAGtH,OAAOA,MACR,EACA,SAAS,EAAG,CACX,OAAO,OAAO,GAAM,UAAY,IAAM,MAAQ,EAAE,aAAe,EAAE,cAAgB,MAClF,EACA,UAAU,KAAM,CACf,MAAM,GAAK,OAAO,KAAK,CAAC,CAAC,EACzB,QAAS,EAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EAAG,CACxC,MAAM,WAAa,KAAK,CAAC,EACzB,GAAgC,YAAe,KAAM,CACpD,MAAM,UAAY,OAAO,KAAK,OAAO,UAAU,CAAC,EAChD,QAAS,UAAY,EAAG3E,KAAM,UAAU,OAAQ,UAAYA,KAAK,WAAa,EAAG,CAChF,MAAM,QAAU,UAAU,SAAS,EAC7B,KAAO,OAAO,yBAAyB,WAAY,OAAO,EAC5D,OAAS,QAAa,KAAK,aAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAK,MAAM,SAAS,WAAW,OAAO,CAAC,EACpE,MAAM,OAAO,GAAG,OAAO,EAAG,WAAW,OAAO,CAAC,EACnC,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAK,MAAM,SAAS,WAAW,OAAO,CAAC,GAC5E,GAAG,OAAO,EAAI,CAAC,EACf,MAAM,OAAO,GAAG,OAAO,EAAG,WAAW,OAAO,CAAC,GAE7C,GAAG,OAAO,EAAI,WAAW,OAAO,EAGnC,CACD,CACD,CACA,OAAO,EACR,CACD,EAEM,SAAW,UAAmB,CACnC,MAAO,CACN,MAAO,CAAC,EAAG,iBAAkB,KAAS,IAAI,eAAiB,eAAe,IAAI,eAE9E,cAAe,CAAC,CAAC,IAAI,cAAiB,mBAAoB,IAAI,WAAc,IAAI,UAAU,gBAAkB,EAE5G,UAAW,UAAyB,CACnC,MAAQ,qBAAsB,KAAO,2BAA4B,GAClE,GAAE,EAEF,iBAAkB,UAAgC,CACjD,IAAI4E,iBAAkB,GACtB,GAAI,CACH,MAAM/B,MAAO,OAAO,eAAe,CAAC,EAAG,UAAW,CAEjD,KAAM,CACL+B,iBAAkB,EACnB,CACD,CAAC,EACD,IAAI,iBAAiB,sBAAuB,KAAM/B,KAAI,CACvD,MAAY,CAEZ,CACA,OAAO+B,gBACR,GAAE,EAEF,UAAW,UAAyB,CACnC,MAAO,mBAAoB,GAC5B,GAAE,CACH,CACD,GAAE,EAEF,MAAM,WAAY,CACjB,YAAY,OAAS,CAAC,EAAG,CACxB,MAAM5G,MAAO,KACbA,MAAK,OAAS,OAGdA,MAAK,gBAAkB,CAAC,EAEpBA,MAAK,QAAUA,MAAK,OAAO,IAC9B,OAAO,KAAKA,MAAK,OAAO,EAAE,EAAE,QAAS,WAAc,CAClDA,MAAK,GAAG,UAAWA,MAAK,OAAO,GAAG,SAAS,CAAC,CAC7C,CAAC,CAEH,CAEA,GAAGuF,QAAQ,QAAS,SAAU,CAC7B,MAAMvF,MAAO,KACb,GAAI,OAAO,SAAY,WAAY,OAAOA,MAC1C,MAAM,OAAS,SAAW,UAAY,OACtC,OAAAuF,QAAO,MAAM,GAAG,EAAE,QAAS,OAAU,CAC/BvF,MAAK,gBAAgB,KAAK,IAAGA,MAAK,gBAAgB,KAAK,EAAI,CAAC,GACjEA,MAAK,gBAAgB,KAAK,EAAE,MAAM,EAAE,OAAO,CAC5C,CAAC,EACMA,KACR,CAEA,KAAKuF,QAAQ,QAAS,SAAU,CAC/B,MAAMvF,MAAO,KACb,GAAI,OAAO,SAAY,WAAY,OAAOA,MAC1C,SAAS,eAAe,KAAM,CAC7BA,MAAK,IAAIuF,QAAQ,WAAW,EACxB,YAAY,SACf,OAAO,YAAY,QAEpB,QAAQ,MAAMvF,MAAM,IAAI,CACzB,CACA,mBAAY,QAAU,QACfA,MAAK,GAAGuF,QAAQ,YAAa,QAAQ,CAC7C,CAEA,IAAIA,QAAQ,QAAS,CACpB,MAAMvF,MAAO,KACb,OAAKA,MAAK,iBACVuF,QAAO,MAAM,GAAG,EAAE,QAAS,OAAU,CAChC,OAAO,QAAY,IACtBvF,MAAK,gBAAgB,KAAK,EAAI,CAAC,EACrBA,MAAK,gBAAgB,KAAK,GAAKA,MAAK,gBAAgB,KAAK,EAAE,QACrEA,MAAK,gBAAgB,KAAK,EAAE,QAAQ,CAAC,aAAcM,SAAU,EACxD,eAAiB,SAAY,aAAa,SAAW,aAAa,UAAY,UACjFN,MAAK,gBAAgB,KAAK,EAAE,OAAOM,OAAO,CAAC,CAE7C,CAAC,CAEH,CAAC,EACMN,KACR,CAEA,QAAQ,KAAM,CACb,MAAMA,MAAO,KACb,GAAI,CAACA,MAAK,gBAAiB,OAAOA,MAClC,IAAIuF,QACApF,MACA,QACJ,OAAI,OAAO,KAAK,CAAC,GAAM,UAAY,MAAM,QAAQ,KAAK,CAAC,CAAC,GACvDoF,QAAS,KAAK,CAAC,EACfpF,MAAO,KAAK,MAAM,EAAG,KAAK,MAAM,EAChC,QAAUH,QAEVuF,QAAS,KAAK,CAAC,EAAE,OACjBpF,MAAO,KAAK,CAAC,EAAE,KACf,QAAU,KAAK,CAAC,EAAE,SAAWH,QAEV,MAAM,QAAQuF,OAAM,EAAIA,QAASA,QAAO,MAAM,GAAG,GACzD,QAAS,OAAU,CAC9B,GAAIvF,MAAK,iBAAmBA,MAAK,gBAAgB,KAAK,EAAG,CACxD,MAAM,SAAW,CAAC,EAClBA,MAAK,gBAAgB,KAAK,EAAE,QAAS,cAAiB,CACrD,SAAS,KAAK,YAAY,CAC3B,CAAC,EACD,SAAS,QAAS,cAAiB,CAClC,aAAa,MAAM,QAASG,KAAI,CACjC,CAAC,CACF,CACD,CAAC,EACMH,KACR,CAEA,iBAAiB,eAAgB,CAChC,MAAM,SAAW,KACZ,SAAS,SACd,OAAO,KAAK,SAAS,OAAO,EAAE,QAAS,YAAe,CACrD,MAAM,OAAS,SAAS,QAAQ,UAAU,EAEtC,OAAO,QACV,MAAM,OAAO,eAAgB,OAAO,MAAM,CAE5C,CAAC,CACF,CAEA,WAAW,cAAgB,CAAC,EAAG,CAC9B,MAAM,SAAW,KACZ,SAAS,SACd,OAAO,KAAK,SAAS,OAAO,EAAE,QAAS,YAAe,CACrD,MAAM,OAAS,SAAS,QAAQ,UAAU,EACpC,aAAe,cAAc,UAAU,GAAK,CAAC,EAE/C,OAAO,UACV,OAAO,KAAK,OAAO,QAAQ,EAAE,QAAS,gBAAmB,CACxD,MAAM,WAAa,OAAO,SAAS,cAAc,EAC7C,OAAO,YAAe,WACzB,SAAS,cAAc,EAAI,WAAW,KAAK,QAAQ,EAEnD,SAAS,cAAc,EAAI,UAE7B,CAAC,EAGE,OAAO,IAAM,SAAS,IACzB,OAAO,KAAK,OAAO,EAAE,EAAE,QAAS,iBAAoB,CACnD,SAAS,GAAG,gBAAiB,OAAO,GAAG,eAAe,CAAC,CACxD,CAAC,EAIE,OAAO,QACV,OAAO,OAAO,KAAK,QAAQ,EAAE,YAAY,CAE3C,CAAC,CACF,CAEA,WAAW,WAAW6G,YAAY,CACjC,MAAM,MAAQ,KACT,MAAM,KACX,MAAM,IAAIA,WAAU,CACrB,CAEA,OAAO,cAAc,UAAW,OAAQ,CACvC,MAAM,MAAQ,KACT,MAAM,UAAU,UAAS,MAAM,UAAU,QAAU,CAAC,GACzD,MAAM,KAAO,OAAO,MAAS,GAAG,OAAO,KAAK,MAAM,UAAU,OAAO,EAAE,MAAM,IAAI,MAAM,IAAI,CAAC,GAC1F,aAAM,UAAU,QAAQ,IAAI,EAAI,OAE5B,OAAO,OACV,OAAO,KAAK,OAAO,KAAK,EAAE,QAAS,KAAQ,CAC1C,MAAM,UAAU,GAAG,EAAI,OAAO,MAAM,GAAG,CACxC,CAAC,EAGE,OAAO,QACV,OAAO,KAAK,OAAO,MAAM,EAAE,QAAS,KAAQ,CAC3C,MAAM,GAAG,EAAI,OAAO,OAAO,GAAG,CAC/B,CAAC,EAGE,OAAO,SACV,OAAO,QAAQ,MAAM,MAAO,MAAM,EAE5B,KACR,CAEA,OAAO,IAAI,UAAW,OAAQ,CAC7B,MAAM,MAAQ,KACd,OAAI,MAAM,QAAQ,MAAM,GACvB,OAAO,QAAS,GAAM,MAAM,cAAc,CAAC,CAAC,EACrC,OAED,MAAM,cAAc,OAAQ,GAAG,MAAM,CAC7C,CACD,CAEA,SAAS,YAAa,CACrB,MAAM,OAAS,KACf,IAAIb,OACAc,QACJ,MAAM,IAAM,OAAO,IACf,OAAO,OAAO,OAAO,MAAU,IAClCd,OAAQ,OAAO,OAAO,MAEtBA,OAAQ,IAAI,CAAC,EAAE,YAEZ,OAAO,OAAO,OAAO,OAAW,IACnCc,QAAS,OAAO,OAAO,OAEvBA,QAAS,IAAI,CAAC,EAAE,aAEZ,EAAAd,SAAU,GAAK,OAAO,aAAa,GAAOc,UAAW,GAAK,OAAO,WAAW,KAKjFd,OAAQA,OAAQ,SAAS,IAAI,IAAI,cAAc,EAAG,EAAE,EAAI,SAAS,IAAI,IAAI,eAAe,EAAG,EAAE,EAC7Fc,QAASA,QAAS,SAAS,IAAI,IAAI,aAAa,EAAG,EAAE,EAAI,SAAS,IAAI,IAAI,gBAAgB,EAAG,EAAE,EAE/F,MAAM,OAAO,OAAQ,CACpB,MAAAd,OACA,OAAAc,QACA,KAAM,OAAO,aAAa,EAAId,OAAQc,OACvC,CAAC,EACF,CAEA,SAAS,cAAe,CACvB,MAAM,OAAS,KACT,OAAS,OAAO,OAEhB,CACL,WAAY,KAAM,WAAY,aAAc,IAAK,QAClD,EAAI,OACE,UAAY,OAAO,SAAW,OAAO,QAAQ,QAC7C,qBAAuB,UAAY,OAAO,QAAQ,OAAO,OAAS,OAAO,OAAO,OAChF,OAAS,WAAW,SAAS,IAAI,OAAO,OAAO,UAAU,EAAE,EAC3D,aAAe,UAAY,OAAO,QAAQ,OAAO,OAAS,OAAO,OACvE,IAAI,SAAW,CAAC,EAChB,MAAM,WAAa,CAAC,EACd,gBAAkB,CAAC,EAEzB,SAAS,gBAAgB,WAAY,CACpC,OAAK,OAAO,QACR,aAAe,OAAO,OAAS,EADP,EAK7B,CAEA,IAAI,aAAe,OAAO,mBACtB,OAAO,cAAiB,aAC3B,aAAe,OAAO,mBAAmB,KAAK,MAAM,GAGrD,IAAI,YAAc,OAAO,kBACrB,OAAO,aAAgB,aAC1B,YAAc,OAAO,kBAAkB,KAAK,MAAM,GAGnD,MAAM,uBAAyB,OAAO,SAAS,OACzC,yBAA2B,OAAO,SAAS,OAEjD,IAAI,aAAe,OAAO,aACtB,cAAgB,CAAC,aACjB,cAAgB,EAChBxG,OAAQ,EACZ,GAAI,OAAO,WAAe,IACzB,OAEG,OAAO,cAAiB,UAAY,aAAa,QAAQ,GAAG,GAAK,IACpE,aAAgB,WAAW,aAAa,QAAQ,IAAK,EAAE,CAAC,EAAI,IAAO,YAGpE,OAAO,YAAc,CAAC,aAGlB,IAAK,OAAO,IAAI,CAAE,WAAY,GAAI,UAAW,EAAG,CAAC,EAChD,OAAO,IAAI,CAAE,YAAa,GAAI,aAAc,EAAG,CAAC,EAErD,IAAI,uBACA,OAAO,gBAAkB,IACxB,KAAK,MAAM,aAAe,OAAO,eAAe,IAAM,aAAe,OAAO,OAAO,gBACtF,uBAAyB,aAEzB,uBAAyB,KAAK,KAAK,aAAe,OAAO,eAAe,EAAI,OAAO,gBAEhF,OAAO,gBAAkB,QAAU,OAAO,sBAAwB,QACrE,uBAAyB,KAAK,IAAI,uBAAwB,OAAO,cAAgB,OAAO,eAAe,IAKzG,IAAI,UACJ,MAAM,gBAAkB,OAAO,gBACzB,aAAe,uBAAyB,gBACxC,eAAiB,KAAK,MAAM,aAAe,OAAO,eAAe,EACvE,QAAS,EAAI,EAAG,EAAI,aAAc,GAAK,EAAG,CACzC,UAAY,EACZ,MAAMyG,OAAQ,OAAO,GAAG,CAAC,EACzB,GAAI,OAAO,gBAAkB,EAAG,CAE/B,IAAI,mBACA,OACA,IACJ,GAAI,OAAO,sBAAwB,OAAS,OAAO,eAAiB,EAAG,CACtE,MAAM,WAAa,KAAK,MAAM,GAAK,OAAO,eAAiB,OAAO,gBAAgB,EAC5E,kBAAoB,EAAI,OAAO,gBAAkB,OAAO,eAAiB,WACzE,eAAiB,aAAe,EACnC,OAAO,eACP,KAAK,IAAI,KAAK,MAAM,aAAe,WAAa,gBAAkB,OAAO,gBAAkB,eAAe,EAAG,OAAO,cAAc,EACrI,IAAM,KAAK,MAAM,kBAAoB,cAAc,EACnD,OAAU,kBAAoB,IAAM,eAAkB,WAAa,OAAO,eAE1E,mBAAqB,OAAW,IAAM,uBAA0B,gBAChEA,OACE,IAAI,CACJ,4BAA6B,mBAC7B,yBAA0B,mBAC1B,iBAAkB,mBAClB,gBAAiB,mBACjB,MAAO,kBACR,CAAC,CACH,MAAW,OAAO,sBAAwB,UACzC,OAAS,KAAK,MAAM,EAAI,eAAe,EACvC,IAAM,EAAK,OAAS,iBAChB,OAAS,gBAAmB,SAAW,gBAAkB,MAAQ,gBAAkB,KACtF,KAAO,EACH,KAAO,kBACV,IAAM,EACN,QAAU,MAIZ,IAAM,KAAK,MAAM,EAAI,YAAY,EACjC,OAAS,EAAK,IAAM,cAErBA,OAAM,IACL,UAAU,OAAO,aAAa,EAAI,MAAQ,MAAM,GAC/C,MAAQ,GAAK,OAAO,cAAkB,GAAG,OAAO,YAAY,IAC9D,CACD,CACA,GAAIA,OAAM,IAAI,SAAS,IAAM,OAE7B,IAAI,OAAO,gBAAkB,OAAQ,CACpC,MAAM,YAAc,IAAI,iBAAiBA,OAAM,CAAC,EAAG,IAAI,EACjD,iBAAmBA,OAAM,CAAC,EAAE,MAAM,UAClC,uBAAyBA,OAAM,CAAC,EAAE,MAAM,gBAO9C,GANI,mBACHA,OAAM,CAAC,EAAE,MAAM,UAAY,QAExB,yBACHA,OAAM,CAAC,EAAE,MAAM,gBAAkB,QAE9B,OAAO,aACV,UAAY,OAAO,aAAa,EAC7BA,OAAM,WAAW,EAAI,EACrBA,OAAM,YAAY,EAAI,UAGrB,OAAO,aAAa,EAAG,CAC1B,MAAMf,OAAQ,WAAW,YAAY,iBAAiB,OAAO,CAAC,EACxD,YAAc,WAAW,YAAY,iBAAiB,cAAc,CAAC,EACrE,aAAe,WAAW,YAAY,iBAAiB,eAAe,CAAC,EACvE,WAAa,WAAW,YAAY,iBAAiB,aAAa,CAAC,EACnE,YAAc,WAAW,YAAY,iBAAiB,cAAc,CAAC,EACrE,UAAY,YAAY,iBAAiB,YAAY,EACvD,WAAa,YAAc,aAC9B,UAAYA,OAAQ,WAAa,YAEjC,UAAYA,OAAQ,YAAc,aAAe,WAAa,WAEhE,KAAO,CACN,MAAMc,QAAS,WAAW,YAAY,iBAAiB,QAAQ,CAAC,EAC1D,WAAa,WAAW,YAAY,iBAAiB,aAAa,CAAC,EACnE,cAAgB,WAAW,YAAY,iBAAiB,gBAAgB,CAAC,EACzE,UAAY,WAAW,YAAY,iBAAiB,YAAY,CAAC,EACjE,aAAe,WAAW,YAAY,iBAAiB,eAAe,CAAC,EACvE,UAAY,YAAY,iBAAiB,YAAY,EACvD,WAAa,YAAc,aAC9B,UAAYA,QAAS,UAAY,aAEjC,UAAYA,QAAS,WAAa,cAAgB,UAAY,YAEhE,CAEG,mBACHC,OAAM,CAAC,EAAE,MAAM,UAAY,kBAExB,yBACHA,OAAM,CAAC,EAAE,MAAM,gBAAkB,wBAE9B,OAAO,eAAc,UAAY,KAAK,MAAM,SAAS,EAC1D,MACC,WAAa,YAAe,OAAO,cAAgB,GAAK,cAAiB,OAAO,cAC5E,OAAO,eAAc,UAAY,KAAK,MAAM,SAAS,GAErD,OAAO,CAAC,IACP,OAAO,aAAa,EACvB,OAAO,CAAC,EAAE,MAAM,MAAQ,GAAG,SAAS,KAEpC,OAAO,CAAC,EAAE,MAAM,OAAS,GAAG,SAAS,MAIpC,OAAO,CAAC,IACX,OAAO,CAAC,EAAE,gBAAkB,WAE7B,gBAAgB,KAAK,SAAS,EAG1B,OAAO,gBACV,cAAgB,cAAiB,UAAY,EAAM,cAAgB,EAAK,aACpE,gBAAkB,GAAK,IAAM,IAAG,cAAgB,cAAiB,WAAa,EAAK,cACnF,IAAM,IAAG,cAAgB,cAAiB,WAAa,EAAK,cAC5D,KAAK,IAAI,aAAa,EAAI,EAAI,MAAM,cAAgB,GACpD,OAAO,eAAc,cAAgB,KAAK,MAAM,aAAa,GAC5DzG,OAAS,OAAO,iBAAmB,GAAG,SAAS,KAAK,aAAa,EACtE,WAAW,KAAK,aAAa,IAEzB,OAAO,eAAc,cAAgB,KAAK,MAAM,aAAa,IAC5DA,OAAQ,KAAK,IAAI,OAAO,OAAO,mBAAoBA,MAAK,GAAK,OAAO,OAAO,iBAAmB,GAAG,SAAS,KAAK,aAAa,EACjI,WAAW,KAAK,aAAa,EAC7B,cAAgB,cAAgB,UAAY,cAG7C,OAAO,aAAe,UAAY,aAElC,cAAgB,UAEhBA,QAAS,EACV,CACA,OAAO,YAAc,KAAK,IAAI,OAAO,YAAa,UAAU,EAAI,YAChE,IAAI,cAWJ,GARC,KAAO,WAAa,OAAO,SAAW,SAAW,OAAO,SAAW,cACnE,WAAW,IAAI,CAAE,MAAO,GAAG,OAAO,YAAc,OAAO,YAAY,IAAK,CAAC,EAEtE,OAAO,iBACN,OAAO,aAAa,EAAG,WAAW,IAAI,CAAE,MAAO,GAAG,OAAO,YAAc,OAAO,YAAY,IAAK,CAAC,EAC/F,WAAW,IAAI,CAAE,OAAQ,GAAG,OAAO,YAAc,OAAO,YAAY,IAAK,CAAC,GAG5E,OAAO,gBAAkB,IAC5B,OAAO,aAAe,UAAY,OAAO,cAAgB,uBACzD,OAAO,YAAc,KAAK,KAAK,OAAO,YAAc,OAAO,eAAe,EAAI,OAAO,aACjF,OAAO,aAAa,EAAG,WAAW,IAAI,CAAE,MAAO,GAAG,OAAO,YAAc,OAAO,YAAY,IAAK,CAAC,EAC/F,WAAW,IAAI,CAAE,OAAQ,GAAG,OAAO,YAAc,OAAO,YAAY,IAAK,CAAC,EAC3E,OAAO,gBAAgB,CAC1B,cAAgB,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EAAG,CAC5C,IAAI,eAAiB,SAAS,CAAC,EAC3B,OAAO,eAAc,eAAiB,KAAK,MAAM,cAAc,GAC/D,SAAS,CAAC,EAAI,OAAO,YAAc,SAAS,CAAC,GAAG,cAAc,KAAK,cAAc,CACtF,CACA,SAAW,aACZ,CAID,GAAI,CAAC,OAAO,eAAgB,CAC3B,cAAgB,CAAC,EACjB,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EAAG,CAC5C,IAAI,eAAiB,SAAS,CAAC,EAC3B,OAAO,eAAc,eAAiB,KAAK,MAAM,cAAc,GAC/D,SAAS,CAAC,GAAK,OAAO,YAAc,YACvC,cAAc,KAAK,cAAc,CAEnC,CACA,SAAW,cACP,KAAK,MAAM,OAAO,YAAc,UAAU,EAAI,KAAK,MAAM,SAAS,SAAS,OAAS,CAAC,CAAC,EAAI,GAC7F,SAAS,KAAK,OAAO,YAAc,UAAU,CAE/C,CAUA,GATI,SAAS,SAAW,IAAG,SAAW,CAAC,CAAC,GAEpC,OAAO,eAAiB,IACvB,OAAO,aAAa,EACnB,IAAK,OAAO,OAAO,eAAe,EAAE,IAAI,CAAE,WAAY,GAAG,YAAY,IAAK,CAAC,EAC1E,OAAO,OAAO,eAAe,EAAE,IAAI,CAAE,YAAa,GAAG,YAAY,IAAK,CAAC,EACtE,OAAO,OAAO,eAAe,EAAE,IAAI,CAAE,aAAc,GAAG,YAAY,IAAK,CAAC,GAG5E,OAAO,gBAAkB,OAAO,qBAAsB,CACzD,IAAI,cAAgB,EACpB,gBAAgB,QAAS,gBAAmB,CAC3C,eAAiB,gBAAkB,OAAO,aAAe,OAAO,aAAe,EAChF,CAAC,EACD,eAAiB,OAAO,aACxB,MAAM,QAAU,cAAgB,WAChC,SAAW,SAAS,IAAK,MACpB,KAAO,EAAU,CAAC,aAClB,KAAO,QAAgB,QAAU,YAC9B,IACP,CACF,CAEA,GAAI,OAAO,yBAA0B,CACpC,IAAI,cAAgB,EAKpB,GAJA,gBAAgB,QAAS,gBAAmB,CAC3C,eAAiB,gBAAkB,OAAO,aAAe,OAAO,aAAe,EAChF,CAAC,EACD,eAAiB,OAAO,aACpB,cAAgB,WAAY,CAC/B,MAAM,iBAAmB,WAAa,eAAiB,EACvD,SAAS,QAAQ,CAAC,KAAM,YAAc,CACrC,SAAS,SAAS,EAAI,KAAO,eAC9B,CAAC,EACD,WAAW,QAAQ,CAAC,KAAM,YAAc,CACvC,WAAW,SAAS,EAAI,KAAO,eAChC,CAAC,CACF,CACD,CAEA,MAAM,OAAO,OAAQ,CACpB,OACA,SACA,WACA,eACD,CAAC,EAEG,eAAiB,sBACpB,OAAO,KAAK,oBAAoB,EAE7B,SAAS,SAAW,yBACnB,OAAO,OAAO,eAAe,OAAO,cAAc,EACtD,OAAO,KAAK,sBAAsB,GAE/B,WAAW,SAAW,0BACzB,OAAO,KAAK,wBAAwB,GAGjC,OAAO,qBAAuB,OAAO,wBACxC,OAAO,mBAAmB,CAE5B,CAEA,SAAS,iBAAiB,MAAO,CAChC,MAAM,OAAS,KACT,aAAe,CAAC,EACtB,IAAI,UAAY,EACZ,EAOJ,GANI,OAAO,OAAU,SACpB,OAAO,cAAc,KAAK,EAChB,QAAU,IACpB,OAAO,cAAc,OAAO,OAAO,KAAK,EAGrC,OAAO,OAAO,gBAAkB,QAAU,OAAO,OAAO,cAAgB,EAC3E,GAAI,OAAO,OAAO,eACjB,OAAO,cAAc,KAAK,CAACA,OAAOyG,SAAU,CAC3C,aAAa,KAAKA,MAAK,CACxB,CAAC,MAED,KAAK,EAAI,EAAG,EAAI,KAAK,KAAK,OAAO,OAAO,aAAa,EAAG,GAAK,EAAG,CAC/D,MAAMzG,OAAQ,OAAO,YAAc,EACnC,GAAIA,OAAQ,OAAO,OAAO,OAAQ,MAClC,aAAa,KAAK,OAAO,OAAO,GAAGA,MAAK,EAAE,CAAC,CAAC,CAC7C,MAGD,aAAa,KAAK,OAAO,OAAO,GAAG,OAAO,WAAW,EAAE,CAAC,CAAC,EAI1D,IAAK,EAAI,EAAG,EAAI,aAAa,OAAQ,GAAK,EACzC,GAAI,OAAO,aAAa,CAAC,EAAM,IAAa,CAC3C,MAAMwG,QAAS,aAAa,CAAC,EAAE,aAC/B,UAAYA,QAAS,UAAYA,QAAS,SAC3C,CAIG,WAAW,OAAO,WAAW,IAAI,SAAU,GAAG,SAAS,IAAI,CAChE,CAEA,SAAS,oBAAqB,CAC7B,MAAM,OAAS,KACT,OAAS,OAAO,OACtB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACvC,OAAO,CAAC,EAAE,kBAAoB,OAAO,aAAa,EAAI,OAAO,CAAC,EAAE,WAAa,OAAO,CAAC,EAAE,SAEzF,CAEA,SAAS,qBAAqBE,WAAa,MAAQ,KAAK,WAAc,EAAG,CACxE,MAAM,OAAS,KACT,OAAS,OAAO,OAEhB,CAAE,OAAQ,aAAc,GAAI,EAAI,OAEtC,GAAI,OAAO,SAAW,EAAG,OACrB,OAAO,OAAO,CAAC,EAAE,kBAAsB,KAAa,OAAO,mBAAmB,EAElF,IAAI,aAAe,CAACA,WAChB,MAAK,aAAeA,YAGxB,OAAO,YAAY,OAAO,iBAAiB,EAE3C,OAAO,qBAAuB,CAAC,EAC/B,OAAO,cAAgB,CAAC,EAExB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,MAAMD,OAAQ,OAAO,CAAC,EAChB,eACJ,cAAgB,OAAO,eAAiB,OAAO,aAAa,EAAI,GAAMA,OAAM,oBACzEA,OAAM,gBAAkB,OAAO,cACpC,GAAI,OAAO,uBAA0B,OAAO,gBAAkB,OAAO,WAAa,CACjF,MAAM,YAAc,EAAE,aAAeA,OAAM,mBACrC,WAAa,YAAc,OAAO,gBAAgB,CAAC,GACtC,aAAe,GAAK,YAAc,OAAO,KAAO,GAC9D,WAAa,GAAK,YAAc,OAAO,MACvC,aAAe,GAAK,YAAc,OAAO,QAE7C,OAAO,cAAc,KAAKA,MAAK,EAC/B,OAAO,qBAAqB,KAAK,CAAC,EAClC,OAAO,GAAG,CAAC,EAAE,SAAS,OAAO,iBAAiB,EAEhD,CACAA,OAAM,SAAW,IAAM,CAAC,cAAgB,aACzC,CACA,OAAO,cAAgB,EAAE,OAAO,aAAa,CAC9C,CAEA,SAAS,eAAeC,WAAW,CAClC,MAAM,OAAS,KACf,GAAI,OAAOA,WAAc,IAAa,CACrC,MAAM,WAAa,OAAO,aAAe,GAAK,EAE9CA,WAAa,QAAU,OAAO,WAAc,OAAO,UAAY,YAAgB,CAChF,CACA,MAAM,OAAS,OAAO,OAChB,eAAiB,OAAO,aAAa,EAAI,OAAO,aAAa,EACnE,GAAI,CAAE,SAAU,YAAa,KAAM,EAAI,OACvC,MAAM,aAAe,YACf,OAAS,MACX,iBAAmB,GACtB,SAAW,EACX,YAAc,GACd,MAAQ,KAER,UAAYA,WAAY,OAAO,aAAa,GAAM,eAClD,YAAc,UAAY,EAC1B,MAAQ,UAAY,GAErB,MAAM,OAAO,OAAQ,CACpB,SACA,YACA,KACD,CAAC,GAEG,OAAO,qBAAuB,OAAO,uBAA0B,OAAO,gBAAkB,OAAO,aAAa,OAAO,qBAAqBA,UAAS,EAEjJ,aAAe,CAAC,cACnB,OAAO,KAAK,uBAAuB,EAEhC,OAAS,CAAC,QACb,OAAO,KAAK,iBAAiB,GAEzB,cAAgB,CAAC,aAAiB,QAAU,CAAC,QACjD,OAAO,KAAK,UAAU,EAGvB,OAAO,KAAK,WAAY,QAAQ,CACjC,CAEA,SAAS,qBAAsB,CAC9B,MAAM,OAAS,KAET,CACL,OAAQ,OAAQ,WAAY,YAAa,SAC1C,EAAI,OACE,UAAY,OAAO,SAAW,OAAO,QAAQ,QAEnD,OAAO,YAAY,GAAG,OAAO,gBAAgB,IAAI,OAAO,cAAc,IAAI,OAAO,cAAc,IAAI,OAAO,yBAAyB,IAAI,OAAO,uBAAuB,IAAI,OAAO,uBAAuB,EAAE,EAEzM,IAAI,YACA,UACH,YAAc,OAAO,WAAW,KAAK,IAAI,OAAO,UAAU,6BAA6B,WAAW,IAAI,EAEtG,YAAc,OAAO,GAAG,WAAW,EAIpC,YAAY,SAAS,OAAO,gBAAgB,EAExC,OAAO,OAEN,YAAY,SAAS,OAAO,mBAAmB,EAClD,WACE,SAAS,IAAI,OAAO,UAAU,SAAS,OAAO,mBAAmB,8BAA8B,SAAS,IAAI,EAC5G,SAAS,OAAO,yBAAyB,EAE3C,WACE,SAAS,IAAI,OAAO,UAAU,IAAI,OAAO,mBAAmB,6BAA6B,SAAS,IAAI,EACtG,SAAS,OAAO,yBAAyB,GAI7C,IAAI,UAAY,YAAY,QAAQ,IAAI,OAAO,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,OAAO,cAAc,EAC7F,OAAO,MAAQ,UAAU,SAAW,IACvC,UAAY,OAAO,GAAG,CAAC,EACvB,UAAU,SAAS,OAAO,cAAc,GAGzC,IAAI,UAAY,YAAY,QAAQ,IAAI,OAAO,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,OAAO,cAAc,EAC7F,OAAO,MAAQ,UAAU,SAAW,IACvC,UAAY,OAAO,GAAG,EAAE,EACxB,UAAU,SAAS,OAAO,cAAc,GAErC,OAAO,OAEN,UAAU,SAAS,OAAO,mBAAmB,EAChD,WACE,SAAS,IAAI,OAAO,UAAU,SAAS,OAAO,mBAAmB,8BAA8B,UAAU,KAAK,yBAAyB,CAAC,IAAI,EAC5I,SAAS,OAAO,uBAAuB,EAEzC,WACE,SAAS,IAAI,OAAO,UAAU,IAAI,OAAO,mBAAmB,6BAA6B,UAAU,KAAK,yBAAyB,CAAC,IAAI,EACtI,SAAS,OAAO,uBAAuB,EAEtC,UAAU,SAAS,OAAO,mBAAmB,EAChD,WACE,SAAS,IAAI,OAAO,UAAU,SAAS,OAAO,mBAAmB,8BAA8B,UAAU,KAAK,yBAAyB,CAAC,IAAI,EAC5I,SAAS,OAAO,uBAAuB,EAEzC,WACE,SAAS,IAAI,OAAO,UAAU,IAAI,OAAO,mBAAmB,6BAA6B,UAAU,KAAK,yBAAyB,CAAC,IAAI,EACtI,SAAS,OAAO,uBAAuB,EAG5C,CAEA,SAAS,kBAAkB,eAAgB,CAC1C,MAAM,OAAS,KACTA,WAAY,OAAO,aAAe,OAAO,UAAY,CAAC,OAAO,UAC7D,CACL,WAAY,SAAU,OAAQ,YAAa,cAAe,UAAW,kBAAmB,UAAW,iBACpG,EAAI,OACJ,IAAI,YAAc,eACd,UACJ,GAAI,OAAO,YAAgB,IAAa,CACvC,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAK,EACvC,OAAO,WAAW,EAAI,CAAC,EAAM,IAC5BA,YAAa,WAAW,CAAC,GAAKA,WAAY,WAAW,EAAI,CAAC,GAAM,WAAW,EAAI,CAAC,EAAI,WAAW,CAAC,GAAK,EACxG,YAAc,EACJA,YAAa,WAAW,CAAC,GAAKA,WAAY,WAAW,EAAI,CAAC,IACpE,YAAc,EAAI,GAETA,YAAa,WAAW,CAAC,IACnC,YAAc,GAIZ,OAAO,sBACN,YAAc,GAAK,OAAO,YAAgB,OAAa,YAAc,EAE3E,CACA,GAAI,SAAS,QAAQA,UAAS,GAAK,EAClC,UAAY,SAAS,QAAQA,UAAS,MAChC,CACN,MAAM,KAAO,KAAK,IAAI,OAAO,mBAAoB,WAAW,EAC5D,UAAY,KAAO,KAAK,OAAO,YAAc,MAAQ,OAAO,cAAc,CAC3E,CAEA,GADI,WAAa,SAAS,SAAQ,UAAY,SAAS,OAAS,GAC5D,cAAgB,cAAe,CAC9B,YAAc,oBACjB,OAAO,UAAY,UACnB,OAAO,KAAK,iBAAiB,GAE9B,MACD,CAGA,MAAM,UAAY,SAAS,OAAO,OAAO,GAAG,WAAW,EAAE,KAAK,yBAAyB,GAAK,YAAa,EAAE,EAE3G,MAAM,OAAO,OAAQ,CACpB,UACA,UACA,cACA,WACD,CAAC,EACD,OAAO,KAAK,mBAAmB,EAC/B,OAAO,KAAK,iBAAiB,EACzB,oBAAsB,WACzB,OAAO,KAAK,iBAAiB,GAE1B,OAAO,aAAe,OAAO,OAAO,qBACvC,OAAO,KAAK,aAAa,CAE3B,CAEA,SAAS,mBAAmB,EAAG,CAC9B,MAAM,OAAS,KACT,OAAS,OAAO,OAChBD,OAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAC5D,IAAI,WAAa,GACjB,GAAIA,OACH,QAAS,EAAI,EAAG,EAAI,OAAO,OAAO,OAAQ,GAAK,EAC1C,OAAO,OAAO,CAAC,IAAMA,SAAO,WAAa,IAI/C,GAAIA,QAAS,WACZ,OAAO,aAAeA,OAClB,OAAO,SAAW,OAAO,OAAO,QAAQ,QAC3C,OAAO,aAAe,SAAS,EAAEA,MAAK,EAAE,KAAK,yBAAyB,EAAG,EAAE,EAE3E,OAAO,aAAe,EAAEA,MAAK,EAAE,MAAM,MAEhC,CACN,OAAO,aAAe,OACtB,OAAO,aAAe,OACtB,MACD,CACI,OAAO,qBAAuB,OAAO,eAAiB,QAAa,OAAO,eAAiB,OAAO,aACrG,OAAO,oBAAoB,CAE7B,CAEA,IAAI,OAAS,CACZ,WACA,aACA,iBACA,mBACA,qBACA,eACA,oBACA,kBACA,kBACD,EAEA,SAAS,aAAa,KAAO,KAAK,aAAa,EAAI,IAAM,IAAK,CAC7D,MAAM,OAAS,KAET,CACL,OAAQ,aAAc,IAAK,UAAAC,WAAW,UACvC,EAAI,OAEJ,GAAI,OAAO,iBACV,OAAO,IAAM,CAACA,WAAYA,WAE3B,GAAI,OAAO,QACV,OAAOA,WAGR,IAAI,iBAAmB,MAAM,aAAa,WAAW,CAAC,EAAG,IAAI,EAC7D,OAAI,MAAK,iBAAmB,CAAC,kBAEtB,kBAAoB,CAC5B,CAEA,SAAS,aAAaA,WAAW,aAAc,CAC9C,MAAM,OAAS,KACT,CACL,aAAc,IAAK,OAAQ,WAAY,UAAW,QACnD,EAAI,OACJ,IAAI,EAAI,EACJ,EAAI,EACR,MAAM,EAAI,EAEN,OAAO,aAAa,EACvB,EAAI,IAAM,CAACA,WAAYA,WAEvB,EAAIA,WAGD,OAAO,eACV,EAAI,KAAK,MAAM,CAAC,EAChB,EAAI,KAAK,MAAM,CAAC,GAGb,OAAO,QACV,UAAU,OAAO,aAAa,EAAI,aAAe,WAAW,EAAI,OAAO,aAAa,EAAI,CAAC,EAAI,CAAC,EACnF,OAAO,kBAClB,WAAW,UAAU,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAE3D,OAAO,kBAAoB,OAAO,UAClC,OAAO,UAAY,OAAO,aAAa,EAAI,EAAI,EAG/C,IAAI,YACJ,MAAM,eAAiB,OAAO,aAAa,EAAI,OAAO,aAAa,EAC/D,iBAAmB,EACtB,YAAc,EAEd,aAAeA,WAAY,OAAO,aAAa,GAAM,eAElD,cAAgB,UACnB,OAAO,eAAeA,UAAS,EAGhC,OAAO,KAAK,eAAgB,OAAO,UAAW,YAAY,CAC3D,CAEA,SAAS,cAAe,CACvB,MAAQ,CAAC,KAAK,SAAS,CAAC,CACzB,CAEA,SAAS,cAAe,CACvB,MAAQ,CAAC,KAAK,SAAS,KAAK,SAAS,OAAS,CAAC,CAChD,CAEA,SAAS,YAAYA,WAAY,EAAG,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,gBAAkB,GAAM,SAAU,CACrH,MAAM,OAAS,KAET,CACL,OACA,SACD,EAAI,OAEJ,GAAI,OAAO,WAAa,OAAO,+BAC9B,MAAO,GAGR,MAAMC,cAAe,OAAO,aAAa,EACnCC,cAAe,OAAO,aAAa,EACzC,IAAI,aAQJ,GAPI,iBAAmBF,WAAYC,cAAc,aAAeA,cACvD,iBAAmBD,WAAYE,cAAc,aAAeA,cAChE,aAAeF,WAGpB,OAAO,eAAe,YAAY,EAE9B,OAAO,QAAS,CACnB,MAAM,IAAM,OAAO,aAAa,EAChC,OAAI,QAAU,EACb,UAAU,IAAM,aAAe,WAAW,EAAI,CAAC,aAG3C,UAAU,SACb,UAAU,SAAS,CAClB,CAAC,IAAM,OAAS,KAAK,EAAG,CAAC,aACzB,SAAU,QACX,CAAC,EAED,UAAU,IAAM,aAAe,WAAW,EAAI,CAAC,aAG1C,EACR,CAEA,OAAI,QAAU,GACb,OAAO,cAAc,CAAC,EACtB,OAAO,aAAa,YAAY,EAC5B,eACH,OAAO,KAAK,wBAAyB,MAAO,QAAQ,EACpD,OAAO,KAAK,eAAe,KAG5B,OAAO,cAAc,KAAK,EAC1B,OAAO,aAAa,YAAY,EAC5B,eACH,OAAO,KAAK,wBAAyB,MAAO,QAAQ,EACpD,OAAO,KAAK,iBAAiB,GAEzB,OAAO,YACX,OAAO,UAAY,GACd,OAAO,oCACX,OAAO,kCAAoC,SAAuB,EAAG,CAChE,CAAC,QAAU,OAAO,WAClB,EAAE,SAAW,OACjB,OAAO,WAAW,CAAC,EAAE,oBAAoB,gBAAiB,OAAO,iCAAiC,EAClG,OAAO,WAAW,CAAC,EAAE,oBAAoB,sBAAuB,OAAO,iCAAiC,EACxG,OAAO,kCAAoC,KAC3C,OAAO,OAAO,kCACV,cACH,OAAO,KAAK,eAAe,EAE7B,GAED,OAAO,WAAW,CAAC,EAAE,iBAAiB,gBAAiB,OAAO,iCAAiC,EAC/F,OAAO,WAAW,CAAC,EAAE,iBAAiB,sBAAuB,OAAO,iCAAiC,IAIhG,EACR,CAEA,IAAI,UAAY,CACf,aACA,aACA,aACA,aACA,WACD,EAEA,SAAS,cAAc,SAAU,aAAc,CAC9C,MAAM,OAAS,KAEV,OAAO,OAAO,SAClB,OAAO,WAAW,WAAW,QAAQ,EAGtC,OAAO,KAAK,gBAAiB,SAAU,YAAY,CACpD,CAEA,SAAS,gBAAgB,aAAe,GAAM,UAAW,CACxD,MAAM,OAAS,KACT,CAAE,YAAa,OAAQ,aAAc,EAAI,OAC/C,GAAI,OAAO,QAAS,OAChB,OAAO,YACV,OAAO,iBAAiB,EAGzB,IAAI,IAAM,UASV,GARK,MACA,YAAc,cAAe,IAAM,OAC9B,YAAc,cAAe,IAAM,OACvC,IAAM,SAGZ,OAAO,KAAK,iBAAiB,EAEzB,cAAgB,cAAgB,cAAe,CAClD,GAAI,MAAQ,QAAS,CACpB,OAAO,KAAK,2BAA2B,EACvC,MACD,CACA,OAAO,KAAK,4BAA4B,EACpC,MAAQ,OACX,OAAO,KAAK,0BAA0B,EAEtC,OAAO,KAAK,0BAA0B,CAExC,CACD,CAEA,SAAS,gCAAgC,aAAe,GAAM,UAAW,CACxE,MAAM,OAAS,KACT,CAAE,YAAa,cAAe,MAAO,EAAI,OAE/C,GADA,OAAO,UAAY,GACf,OAAO,QAAS,OACpB,OAAO,cAAc,CAAC,EAEtB,IAAI,IAAM,UASV,GARK,MACA,YAAc,cAAe,IAAM,OAC9B,YAAc,cAAe,IAAM,OACvC,IAAM,SAGZ,OAAO,KAAK,eAAe,EAEvB,cAAgB,cAAgB,cAAe,CAClD,GAAI,MAAQ,QAAS,CACpB,OAAO,KAAK,yBAAyB,EACrC,MACD,CACA,OAAO,KAAK,0BAA0B,EAClC,MAAQ,OACX,OAAO,KAAK,wBAAwB,EAEpC,OAAO,KAAK,wBAAwB,CAEtC,CACD,CAEA,IAAI,6BAA+B,CAClC,cACA,gBACA,cAAe,+BAChB,EAEA,SAAS,QAAQ1G,OAAQ,EAAG,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,CACrF,MAAM,OAAS,KACf,IAAI,WAAaA,OACb,WAAa,IAAG,WAAa,GAEjC,KAAM,CACL,OAAQ,SAAU,WAAY,cAAe,YAAa,aAAc,IAAK,SAC9E,EAAI,OACJ,GAAI,OAAO,WAAa,OAAO,+BAC9B,MAAO,GAGR,MAAM,KAAO,KAAK,IAAI,OAAO,OAAO,mBAAoB,UAAU,EAClE,IAAI,UAAY,KAAO,KAAK,OAAO,WAAa,MAAQ,OAAO,OAAO,cAAc,EAChF,WAAa,SAAS,SAAQ,UAAY,SAAS,OAAS,IAE3D,aAAe,OAAO,cAAgB,MAAQ,eAAiB,IAAM,cACzE,OAAO,KAAK,wBAAwB,EAGrC,MAAM0G,WAAY,CAAC,SAAS,SAAS,EAMrC,GAHA,OAAO,eAAeA,UAAS,EAG3B,OAAO,oBACV,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAK,EACvC,CAAC,KAAK,MAAMA,WAAY,GAAG,GAAK,KAAK,MAAM,WAAW,CAAC,EAAI,GAAG,IACjE,WAAa,GAKhB,GAAI,OAAO,aAAe,aAAe,cACpC,CAAC,OAAO,gBAAkBA,WAAY,OAAO,WAAaA,WAAY,OAAO,aAAa,GAG1F,CAAC,OAAO,gBAAkBA,WAAY,OAAO,WAAaA,WAAY,OAAO,aAAa,IACxF,aAAe,KAAO,YAAY,MAAO,GAIhD,IAAI,UAOJ,GANI,WAAa,YAAa,UAAY,OACjC,WAAa,YAAa,UAAY,OAC1C,UAAY,QAIZ,KAAO,CAACA,aAAc,OAAO,WAAe,CAAC,KAAOA,aAAc,OAAO,UAC7E,cAAO,kBAAkB,UAAU,EAE/B,OAAO,YACV,OAAO,iBAAiB,EAEzB,OAAO,oBAAoB,EACvB,OAAO,SAAW,SACrB,OAAO,aAAaA,UAAS,EAE1B,YAAc,UACjB,OAAO,gBAAgB,aAAc,SAAS,EAC9C,OAAO,cAAc,aAAc,SAAS,GAEtC,GAER,GAAI,OAAO,QAAS,CACnB,MAAM,IAAM,OAAO,aAAa,EAChC,IAAI,EAAI,CAACA,WACT,OAAI,MACH,EAAI,UAAU,YAAc,UAAU,YAAc,GAEjD,QAAU,EACb,UAAU,IAAM,aAAe,WAAW,EAAI,EAG1C,UAAU,SACb,UAAU,SAAS,CAClB,CAAC,IAAM,OAAS,KAAK,EAAG,EACxB,SAAU,QACX,CAAC,EAED,UAAU,IAAM,aAAe,WAAW,EAAI,EAGzC,EACR,CAEA,OAAI,QAAU,GACb,OAAO,cAAc,CAAC,EACtB,OAAO,aAAaA,UAAS,EAC7B,OAAO,kBAAkB,UAAU,EACnC,OAAO,oBAAoB,EAC3B,OAAO,KAAK,wBAAyB,MAAO,QAAQ,EACpD,OAAO,gBAAgB,aAAc,SAAS,EAC9C,OAAO,cAAc,aAAc,SAAS,IAE5C,OAAO,cAAc,KAAK,EAC1B,OAAO,aAAaA,UAAS,EAC7B,OAAO,kBAAkB,UAAU,EACnC,OAAO,oBAAoB,EAC3B,OAAO,KAAK,wBAAyB,MAAO,QAAQ,EACpD,OAAO,gBAAgB,aAAc,SAAS,EACzC,OAAO,YACX,OAAO,UAAY,GACd,OAAO,gCACX,OAAO,8BAAgC,SAAuB,EAAG,CAC5D,CAAC,QAAU,OAAO,WAClB,EAAE,SAAW,OACjB,OAAO,WAAW,CAAC,EAAE,oBAAoB,gBAAiB,OAAO,6BAA6B,EAC9F,OAAO,WAAW,CAAC,EAAE,oBAAoB,sBAAuB,OAAO,6BAA6B,EACpG,OAAO,8BAAgC,KACvC,OAAO,OAAO,8BACd,OAAO,cAAc,aAAc,SAAS,EAC7C,GAED,OAAO,WAAW,CAAC,EAAE,iBAAiB,gBAAiB,OAAO,6BAA6B,EAC3F,OAAO,WAAW,CAAC,EAAE,iBAAiB,sBAAuB,OAAO,6BAA6B,IAI5F,EACR,CAEA,SAAS,YAAY1G,OAAQ,EAAG,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,CACzF,MAAM,OAAS,KACf,IAAI,SAAWA,OACf,OAAI,OAAO,OAAO,OACjB,UAAY,OAAO,cAGb,OAAO,QAAQ,SAAU,MAAO,aAAc,QAAQ,CAC9D,CAGA,SAAS,UAAU,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,CAC5E,MAAM,OAAS,KACT,CAAE,OAAQ,SAAU,EAAI,OACxB,UAAY,OAAO,YAAc,OAAO,mBAAqB,EAAI,OAAO,eAC9E,GAAI,OAAO,KAAM,CAChB,GAAI,UAAW,MAAO,GACtB,OAAO,QAAQ,EAEf,OAAO,YAAc,OAAO,WAAW,CAAC,EAAE,UAC3C,CACA,OAAO,OAAO,QAAQ,OAAO,YAAc,UAAW,MAAO,aAAc,QAAQ,CACpF,CAGA,SAAS,UAAU,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,CAC5E,MAAM,OAAS,KACT,CACL,OAAQ,UAAW,SAAU,WAAY,YAC1C,EAAI,OAEJ,GAAI,OAAO,KAAM,CAChB,GAAI,UAAW,MAAO,GACtB,OAAO,QAAQ,EAEf,OAAO,YAAc,OAAO,WAAW,CAAC,EAAE,UAC3C,CACA,MAAM0G,WAAY,aAAe,OAAO,UAAY,CAAC,OAAO,UAC5D,SAASG,WAAUzG,KAAK,CACvB,OAAIA,KAAM,EAAU,CAAC,KAAK,MAAM,KAAK,IAAIA,IAAG,CAAC,EACtC,KAAK,MAAMA,IAAG,CACtB,CACA,MAAM,oBAAsByG,WAAUH,UAAS,EACzC,mBAAqB,SAAS,IAAKtG,MAAQyG,WAAUzG,IAAG,CAAC,EACzD,qBAAuB,WAAW,IAAKA,MAAQyG,WAAUzG,IAAG,CAAC,EAE7D,YAAc,SAAS,mBAAmB,QAAQ,mBAAmB,CAAC,EAC5E,IAAI,SAAW,SAAS,mBAAmB,QAAQ,mBAAmB,EAAI,CAAC,EACvE,OAAO,SAAa,KAAe,OAAO,SAC7C,SAAS,QAAS,MAAS,CACtB,CAAC,UAAY,qBAAuB,OAAM,SAAW,KAC1D,CAAC,EAEF,IAAI,UACJ,OAAI,OAAO,SAAa,MACvB,UAAY,WAAW,QAAQ,QAAQ,EACnC,UAAY,IAAG,UAAY,OAAO,YAAc,IAE9C,OAAO,QAAQ,UAAW,MAAO,aAAc,QAAQ,CAC/D,CAGA,SAAS,WAAW,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,CAC7E,MAAM,OAAS,KACf,OAAO,OAAO,QAAQ,OAAO,YAAa,MAAO,aAAc,QAAQ,CACxE,CAGA,SAAS,eAAe,MAAQ,KAAK,OAAO,MAAO,aAAe,GAAM,SAAU,UAAY,GAAK,CAClG,MAAM,OAAS,KACf,IAAIJ,OAAQ,OAAO,YACnB,MAAM,KAAO,KAAK,IAAI,OAAO,OAAO,mBAAoBA,MAAK,EACvD,UAAY,KAAO,KAAK,OAAOA,OAAQ,MAAQ,OAAO,OAAO,cAAc,EAE3E0G,WAAY,OAAO,aAAe,OAAO,UAAY,CAAC,OAAO,UAEnE,GAAIA,YAAa,OAAO,SAAS,SAAS,EAAG,CAG5C,MAAM,YAAc,OAAO,SAAS,SAAS,EACvC,SAAW,OAAO,SAAS,UAAY,CAAC,EACzCA,WAAY,aAAgB,SAAW,aAAe,YAC1D1G,QAAS,OAAO,OAAO,eAEzB,KAAO,CAGN,MAAM,SAAW,OAAO,SAAS,UAAY,CAAC,EACxC,YAAc,OAAO,SAAS,SAAS,EACxC0G,WAAY,WAAc,YAAc,UAAY,YACxD1G,QAAS,OAAO,OAAO,eAEzB,CACA,OAAAA,OAAQ,KAAK,IAAIA,OAAO,CAAC,EACzBA,OAAQ,KAAK,IAAIA,OAAO,OAAO,WAAW,OAAS,CAAC,EAE7C,OAAO,QAAQA,OAAO,MAAO,aAAc,QAAQ,CAC3D,CAEA,SAAS,qBAAsB,CAC9B,MAAM,OAAS,KACT,CAAE,OAAQ,UAAW,EAAI,OAEzB,cAAgB,OAAO,gBAAkB,OAAS,OAAO,qBAAqB,EAAI,OAAO,cAC/F,IAAI,aAAe,OAAO,aACtB,UACJ,GAAI,OAAO,KAAM,CAChB,GAAI,OAAO,UAAW,OACtB,UAAY,SAAS,EAAE,OAAO,YAAY,EAAE,KAAK,yBAAyB,EAAG,EAAE,EAC3E,OAAO,eAER,aAAe,OAAO,aAAgB,cAAgB,GACnD,aAAgB,OAAO,OAAO,OAAS,OAAO,aAAiB,cAAgB,GAEnF,OAAO,QAAQ,EACf,aAAe,WACb,SAAS,IAAI,OAAO,UAAU,6BAA6B,SAAS,WAAW,OAAO,mBAAmB,GAAG,EAC5G,GAAG,CAAC,EACJ,MAAM,EAER,MAAM,SAAS,IAAM,CACpB,OAAO,QAAQ,YAAY,CAC5B,CAAC,GAED,OAAO,QAAQ,YAAY,EAElB,aAAe,OAAO,OAAO,OAAS,eAChD,OAAO,QAAQ,EACf,aAAe,WACb,SAAS,IAAI,OAAO,UAAU,6BAA6B,SAAS,WAAW,OAAO,mBAAmB,GAAG,EAC5G,GAAG,CAAC,EACJ,MAAM,EAER,MAAM,SAAS,IAAM,CACpB,OAAO,QAAQ,YAAY,CAC5B,CAAC,GAED,OAAO,QAAQ,YAAY,CAE7B,MACC,OAAO,QAAQ,YAAY,CAE7B,CAEA,IAAI,MAAQ,CACX,QACA,YACA,UACA,UACA,WACA,eACA,mBACD,EAEA,SAAS,YAAa,CACrB,MAAM,OAAS,KACT,CAAE,OAAQ,UAAW,EAAI,OAE/B,WAAW,SAAS,IAAI,OAAO,UAAU,IAAI,OAAO,mBAAmB,EAAE,EAAE,OAAO,EAElF,IAAI,OAAS,WAAW,SAAS,IAAI,OAAO,UAAU,EAAE,EAExD,GAAI,OAAO,uBAAwB,CAClC,MAAM,eAAiB,OAAO,eAAkB,OAAO,OAAS,OAAO,eACvE,GAAI,iBAAmB,OAAO,eAAgB,CAC7C,QAAS,EAAI,EAAG,EAAI,eAAgB,GAAK,EAAG,CAC3C,MAAM,UAAY,EAAE,IAAI,cAAc,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,UAAU,IAAI,OAAO,eAAe,EAAE,EACvG,WAAW,OAAO,SAAS,CAC5B,CACA,OAAS,WAAW,SAAS,IAAI,OAAO,UAAU,EAAE,CACrD,CACD,CAEI,OAAO,gBAAkB,QAAU,CAAC,OAAO,eAAc,OAAO,aAAe,OAAO,QAE1F,OAAO,aAAe,KAAK,KAAK,WAAW,OAAO,cAAgB,OAAO,cAAe,EAAE,CAAC,EAC3F,OAAO,cAAgB,OAAO,qBAC1B,OAAO,aAAe,OAAO,SAChC,OAAO,aAAe,OAAO,QAG9B,MAAM,cAAgB,CAAC,EACjB,aAAe,CAAC,EACtB,OAAO,KAAK,CAACA,OAAO,KAAO,CAC1B,MAAMyG,OAAQ,EAAE,EAAE,EACdzG,OAAQ,OAAO,cAAc,aAAa,KAAK,EAAE,EACjDA,OAAQ,OAAO,QAAUA,QAAS,OAAO,OAAS,OAAO,cAAc,cAAc,KAAK,EAAE,EAChGyG,OAAM,KAAK,0BAA2BzG,MAAK,CAC5C,CAAC,EACD,QAAS,EAAI,EAAG,EAAI,aAAa,OAAQ,GAAK,EAC7C,WAAW,OAAO,EAAE,aAAa,CAAC,EAAE,UAAU,EAAI,CAAC,EAAE,SAAS,OAAO,mBAAmB,CAAC,EAE1F,QAAS,EAAI,cAAc,OAAS,EAAG,GAAK,EAAG,GAAK,EACnD,WAAW,QAAQ,EAAE,cAAc,CAAC,EAAE,UAAU,EAAI,CAAC,EAAE,SAAS,OAAO,mBAAmB,CAAC,CAE7F,CAEA,SAAS,SAAU,CAClB,MAAM,OAAS,KAEf,OAAO,KAAK,eAAe,EAE3B,KAAM,CACL,YAAa,OAAQ,aAAc,eAAgB,eAAgB,SAAU,aAAc,GAC5F,EAAI,OACJ,IAAI,SACJ,OAAO,eAAiB,GACxB,OAAO,eAAiB,GAGxB,MAAM,KADgB,CAAC,SAAS,WAAW,EACd,OAAO,aAAa,EAG7C,YAAc,cACjB,SAAY,OAAO,OAAU,aAAe,EAAM,YAClD,UAAY,aACS,OAAO,QAAQ,SAAU,EAAG,GAAO,EAAI,GACxC,OAAS,GAC5B,OAAO,cAAc,IAAM,CAAC,OAAO,UAAY,OAAO,WAAa,IAAI,GAE9D,aAAe,OAAO,OAAS,eAEzC,SAAW,CAAC,OAAO,OAAS,YAAc,aAC1C,UAAY,aACS,OAAO,QAAQ,SAAU,EAAG,GAAO,EAAI,GACxC,OAAS,GAC5B,OAAO,cAAc,IAAM,CAAC,OAAO,UAAY,OAAO,WAAa,IAAI,GAGzE,OAAO,eAAiB,eACxB,OAAO,eAAiB,eAExB,OAAO,KAAK,SAAS,CACtB,CAEA,SAAS,aAAc,CACtB,MAAM,OAAS,KACT,CAAE,WAAY,OAAQ,MAAO,EAAI,OACvC,WAAW,SAAS,IAAI,OAAO,UAAU,IAAI,OAAO,mBAAmB,KAAK,OAAO,UAAU,IAAI,OAAO,eAAe,EAAE,EAAE,OAAO,EAClI,OAAO,WAAW,yBAAyB,CAC5C,CAEA,IAAI,KAAO,CACV,WACA,QACA,WACD,EAEA,SAAS,cAAc,OAAQ,CAC9B,MAAM,OAAS,KACf,GAAI,QAAQ,OAAS,CAAC,OAAO,OAAO,eAAkB,OAAO,OAAO,eAAiB,OAAO,UAAa,OAAO,OAAO,QAAS,OAChI,MAAM,GAAK,OAAO,GAClB,GAAG,MAAM,OAAS,OAClB,GAAG,MAAM,OAAS,OAAS,mBAAqB,eAChD,GAAG,MAAM,OAAS,OAAS,eAAiB,YAC5C,GAAG,MAAM,OAAS,OAAS,WAAa,MACzC,CAEA,SAAS,iBAAkB,CAC1B,MAAM,OAAS,KACX,QAAQ,OAAU,OAAO,OAAO,eAAiB,OAAO,UAAa,OAAO,OAAO,UACvF,OAAO,GAAG,MAAM,OAAS,GAC1B,CAEA,IAAI,WAAa,CAChB,cACA,eACD,EAEA,SAAS,YAAY,OAAQ,CAC5B,MAAM,OAAS,KACT,CAAE,WAAY,MAAO,EAAI,OAI/B,GAHI,OAAO,MACV,OAAO,YAAY,EAEhB,OAAO,QAAW,UAAY,WAAY,OAC7C,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,OAAO,CAAC,GAAG,WAAW,OAAO,OAAO,CAAC,CAAC,OAG3C,WAAW,OAAO,MAAM,EAErB,OAAO,MACV,OAAO,WAAW,EAEb,OAAO,UAAY,QAAQ,UAChC,OAAO,OAAO,CAEhB,CAEA,SAAS,aAAa,OAAQ,CAC7B,MAAM,OAAS,KACT,CAAE,OAAQ,WAAY,WAAY,EAAI,OAExC,OAAO,MACV,OAAO,YAAY,EAEpB,IAAI,eAAiB,YAAc,EACnC,GAAI,OAAO,QAAW,UAAY,WAAY,OAAQ,CACrD,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,OAAO,CAAC,GAAG,WAAW,QAAQ,OAAO,CAAC,CAAC,EAE5C,eAAiB,YAAc,OAAO,MACvC,MACC,WAAW,QAAQ,MAAM,EAEtB,OAAO,MACV,OAAO,WAAW,EAEb,OAAO,UAAY,QAAQ,UAChC,OAAO,OAAO,EAEf,OAAO,QAAQ,eAAgB,EAAG,EAAK,CACxC,CAEA,SAAS,SAASA,OAAO,OAAQ,CAChC,MAAM,OAAS,KACT,CAAE,WAAY,OAAQ,WAAY,EAAI,OAC5C,IAAI,kBAAoB,YACpB,OAAO,OACV,mBAAqB,OAAO,aAC5B,OAAO,YAAY,EACnB,OAAO,OAAS,WAAW,SAAS,IAAI,OAAO,UAAU,EAAE,GAE5D,MAAM,WAAa,OAAO,OAAO,OACjC,GAAIA,QAAS,EAAG,CACf,OAAO,aAAa,MAAM,EAC1B,MACD,CACA,GAAIA,QAAS,WAAY,CACxB,OAAO,YAAY,MAAM,EACzB,MACD,CACA,IAAI,eAAiB,kBAAoBA,OAAQ,kBAAoB,EAAI,kBAEzE,MAAM,aAAe,CAAC,EACtB,QAAS,EAAI,WAAa,EAAG,GAAKA,OAAO,GAAK,EAAG,CAChD,MAAM,aAAe,OAAO,OAAO,GAAG,CAAC,EACvC,aAAa,OAAO,EACpB,aAAa,QAAQ,YAAY,CAClC,CAEA,GAAI,OAAO,QAAW,UAAY,WAAY,OAAQ,CACrD,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,OAAO,CAAC,GAAG,WAAW,OAAO,OAAO,CAAC,CAAC,EAE3C,eAAiB,kBAAoBA,OAAQ,kBAAoB,OAAO,OAAS,iBAClF,MACC,WAAW,OAAO,MAAM,EAGzB,QAAS,EAAI,EAAG,EAAI,aAAa,OAAQ,GAAK,EAC7C,WAAW,OAAO,aAAa,CAAC,CAAC,EAG9B,OAAO,MACV,OAAO,WAAW,EAEb,OAAO,UAAY,QAAQ,UAChC,OAAO,OAAO,EAEX,OAAO,KACV,OAAO,QAAQ,eAAiB,OAAO,aAAc,EAAG,EAAK,EAE7D,OAAO,QAAQ,eAAgB,EAAG,EAAK,CAEzC,CAEA,SAAS,YAAY,cAAe,CACnC,MAAM,OAAS,KACT,CAAE,OAAQ,WAAY,WAAY,EAAI,OAE5C,IAAI,kBAAoB,YACpB,OAAO,OACV,mBAAqB,OAAO,aAC5B,OAAO,YAAY,EACnB,OAAO,OAAS,WAAW,SAAS,IAAI,OAAO,UAAU,EAAE,GAE5D,IAAI,eAAiB,kBACjB,cAEJ,GAAI,OAAO,eAAkB,UAAY,WAAY,cAAe,CACnE,QAAS,EAAI,EAAG,EAAI,cAAc,OAAQ,GAAK,EAC9C,cAAgB,cAAc,CAAC,EAC3B,OAAO,OAAO,aAAa,GAAG,OAAO,OAAO,GAAG,aAAa,EAAE,OAAO,EACrE,cAAgB,iBAAgB,gBAAkB,GAEvD,eAAiB,KAAK,IAAI,eAAgB,CAAC,CAC5C,MACC,cAAgB,cACZ,OAAO,OAAO,aAAa,GAAG,OAAO,OAAO,GAAG,aAAa,EAAE,OAAO,EACrE,cAAgB,iBAAgB,gBAAkB,GACtD,eAAiB,KAAK,IAAI,eAAgB,CAAC,EAGxC,OAAO,MACV,OAAO,WAAW,EAGb,OAAO,UAAY,QAAQ,UAChC,OAAO,OAAO,EAEX,OAAO,KACV,OAAO,QAAQ,eAAiB,OAAO,aAAc,EAAG,EAAK,EAE7D,OAAO,QAAQ,eAAgB,EAAG,EAAK,CAEzC,CAEA,SAAS,iBAAkB,CAC1B,MAAM,OAAS,KAET,cAAgB,CAAC,EACvB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAO,OAAQ,GAAK,EAC9C,cAAc,KAAK,CAAC,EAErB,OAAO,YAAY,aAAa,CACjC,CAEA,IAAI,aAAe,CAClB,YACA,aACA,SACA,YACA,eACD,EAEA,MAAM,QAAU,UAAkB,CACjC,MAAM,SAAW,IAAI,UAAU,SACzB,GAAK,IAAI,UAAU,UAEnB,OAAS,CACd,IAAK,GACL,QAAS,GACT,cAAe,GACf,QAAS,GACT,OAAQ,GACR,KAAM,GACN,KAAM,GACN,KAAM,GACN,GAAI,GACJ,QAAS,GACT,MAAO,GACP,QAAS,GACT,QAAS,CAAC,EAAE,IAAI,SAAW,IAAI,UAC/B,SAAU,CAAC,EAAE,IAAI,SAAW,IAAI,UAChC,SAAU,EACX,EAEM,YAAc,IAAI,OAAO,MACzB,aAAe,IAAI,OAAO,OAE1B,QAAU,GAAG,MAAM,6BAA6B,EACtD,IAAI,KAAO,GAAG,MAAM,sBAAsB,EAC1C,MAAM,KAAO,GAAG,MAAM,yBAAyB,EACzC,OAAS,CAAC,MAAQ,GAAG,MAAM,4BAA4B,EACvD,GAAK,GAAG,QAAQ,OAAO,GAAK,GAAK,GAAG,QAAQ,UAAU,GAAK,EAC3D,KAAO,GAAG,QAAQ,OAAO,GAAK,EAC9B,QAAU,GAAG,QAAQ,QAAQ,GAAK,GAAK,GAAG,QAAQ,UAAU,GAAK,EACjE,QAAU,WAAa,QACvB,SAAW,GAAG,YAAY,EAAE,QAAQ,UAAU,GAAK,EACzD,IAAI,MAAQ,WAAa,WAGzB,MAAI,CAAC,MACD,OACA,QAAQ,QAET,cAAgB,MAAQ,eAAiB,MACtC,cAAgB,KAAO,eAAiB,MACxC,cAAgB,KAAO,eAAiB,MACxC,cAAgB,KAAO,eAAiB,QAG7C,KAAO,GAAG,MAAM,qBAAqB,EACrC,MAAQ,IAGT,OAAO,GAAK,GACZ,OAAO,KAAO,KACd,OAAO,QAAU,QAGb,SAAW,CAAC,UACf,OAAO,GAAK,UACZ,OAAO,UAAY,QAAQ,CAAC,EAC5B,OAAO,QAAU,GACjB,OAAO,cAAgB,GAAG,YAAY,EAAE,QAAQ,QAAQ,GAAK,IAE1D,MAAQ,QAAU,QACrB,OAAO,GAAK,MACZ,OAAO,IAAM,IAGV,QAAU,CAAC,OACd,OAAO,UAAY,OAAO,CAAC,EAAE,QAAQ,KAAM,GAAG,EAC9C,OAAO,OAAS,IAEb,OACH,OAAO,UAAY,KAAK,CAAC,EAAE,QAAQ,KAAM,GAAG,EAC5C,OAAO,KAAO,IAEX,OACH,OAAO,UAAY,KAAK,CAAC,EAAI,KAAK,CAAC,EAAE,QAAQ,KAAM,GAAG,EAAI,KAC1D,OAAO,KAAO,IAGX,OAAO,KAAO,OAAO,WAAa,GAAG,QAAQ,UAAU,GAAK,GAC3D,OAAO,UAAU,MAAM,GAAG,EAAE,CAAC,IAAM,OACtC,OAAO,UAAY,GAAG,YAAY,EAAE,MAAM,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,GAKvE,OAAO,QAAU,CAAC,GAAG,QAAU,MAAQ,QAAU,GAAG,MAAM,4BAA4B,GAAK,IAAI,UAAU,cACpG,IAAI,YAAc,IAAI,WAAW,4BAA4B,EAAE,QACpE,OAAO,QAAU,OAAO,QACxB,OAAO,WAAa,OAAO,QAG3B,OAAO,QAAU,EAAE,OAAO,KAAO,OAAO,UAAY,SAChD,OAAO,UACV,OAAO,SAAW,SAClB,OAAO,MAAQ,MACf,OAAO,QAAU,QACb,OAAO,QACV,OAAO,GAAK,SAET,OAAO,UACV,OAAO,GAAK,YAKd,OAAO,WAAa,IAAI,kBAAoB,EAGrC,MACR,GAAE,EAEF,SAAS,aAAa,MAAO,CAC5B,MAAM,OAAS,KACTH,MAAO,OAAO,gBACd,CAAE,OAAQ,OAAQ,EAAI,OAE5B,GAAI,OAAO,WAAa,OAAO,+BAC9B,OAED,IAAI,EAAI,MACJ,EAAE,gBAAe,EAAI,EAAE,eAC3B,MAAM,UAAY,EAAE,EAAE,MAAM,EAQ5B,GANI,OAAO,oBAAsB,WAC5B,CAAC,UAAU,QAAQ,OAAO,SAAS,EAAE,SAE1CA,MAAK,aAAe,EAAE,OAAS,aAC3B,CAACA,MAAK,cAAgB,UAAW,GAAK,EAAE,QAAU,IAClD,CAACA,MAAK,cAAgB,WAAY,GAAK,EAAE,OAAS,GAClDA,MAAK,WAAaA,MAAK,QAAS,OACpC,GAAI,OAAO,WAAa,UAAU,QAAQ,OAAO,kBAAoB,OAAO,kBAAoB,IAAI,OAAO,cAAc,EAAE,EAAE,CAAC,EAAG,CAChI,OAAO,WAAa,GACpB,MACD,CACA,GAAI,OAAO,cACN,CAAC,UAAU,QAAQ,OAAO,YAAY,EAAE,CAAC,EAAG,OAGjD,QAAQ,SAAW,EAAE,OAAS,aAAe,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAC1E,QAAQ,SAAW,EAAE,OAAS,aAAe,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAC1E,MAAM,OAAS,QAAQ,SACjB,OAAS,QAAQ,SAIjB,mBAAqB,OAAO,oBAAsB,OAAO,sBACzD,mBAAqB,OAAO,oBAAsB,OAAO,sBAC/D,GACC,uBACK,QAAU,oBACV,QAAU,IAAI,OAAO,MAAQ,qBAoBnC,IAfA,MAAM,OAAOA,MAAM,CAClB,UAAW,GACX,QAAS,GACT,oBAAqB,GACrB,YAAa,OACb,YAAa,MACd,CAAC,EAED,QAAQ,OAAS,OACjB,QAAQ,OAAS,OACjBA,MAAK,eAAiB,MAAM,IAAI,EAChC,OAAO,WAAa,GACpB,OAAO,WAAW,EAClB,OAAO,eAAiB,OACpB,OAAO,UAAY,IAAGA,MAAK,mBAAqB,IAChD,EAAE,OAAS,aAAc,CAC5B,IAAIiH,gBAAiB,GACjB,UAAU,GAAGjH,MAAK,YAAY,IAAGiH,gBAAiB,IAErD,IAAI,eACD,EAAE,IAAI,aAAa,EAAE,GAAGjH,MAAK,YAAY,GACzC,IAAI,gBAAkB,UAAU,CAAC,GAEpC,IAAI,cAAc,KAAK,EAGxB,MAAM,qBAAuBiH,iBAAkB,OAAO,gBAAkB,OAAO,0BAC3E,OAAO,+BAAiC,uBAC3C,EAAE,eAAe,CAEnB,CACA,OAAO,KAAK,aAAc,CAAC,EAC5B,CAEA,SAAS,YAAY,MAAO,CAC3B,MAAM,OAAS,KACTjH,MAAO,OAAO,gBACd,CAAE,OAAQ,QAAS,aAAc,GAAI,EAAI,OAC/C,IAAI,EAAI,MAER,GADI,EAAE,gBAAe,EAAI,EAAE,eACvB,CAACA,MAAK,UAAW,CAChBA,MAAK,aAAeA,MAAK,aAC5B,OAAO,KAAK,oBAAqB,CAAC,EAEnC,MACD,CACA,GAAIA,MAAK,cAAgB,EAAE,OAAS,YAAa,OACjD,MAAM,YAAc,EAAE,OAAS,aAAe,EAAE,gBAAkB,EAAE,cAAc,CAAC,GAAK,EAAE,eAAe,CAAC,GACpG,MAAQ,EAAE,OAAS,YAAc,YAAY,MAAQ,EAAE,MACvD,MAAQ,EAAE,OAAS,YAAc,YAAY,MAAQ,EAAE,MAC7D,GAAI,EAAE,wBAAyB,CAC9B,QAAQ,OAAS,MACjB,QAAQ,OAAS,MACjB,MACD,CACA,GAAI,CAAC,OAAO,eAAgB,CAE3B,OAAO,WAAa,GAChBA,MAAK,YACR,MAAM,OAAO,QAAS,CACrB,OAAQ,MACR,OAAQ,MACR,SAAU,MACV,SAAU,KACX,CAAC,EACDA,MAAK,eAAiB,MAAM,IAAI,GAEjC,MACD,CACA,GAAIA,MAAK,cAAgB,OAAO,qBAAuB,CAAC,OAAO,MAC9D,GAAI,OAAO,WAAW,GAErB,GACE,MAAQ,QAAQ,QAAU,OAAO,WAAa,OAAO,aAAa,GAC/D,MAAQ,QAAQ,QAAU,OAAO,WAAa,OAAO,aAAa,EACrE,CACDA,MAAK,UAAY,GACjBA,MAAK,QAAU,GACf,MACD,UAEC,MAAQ,QAAQ,QAAU,OAAO,WAAa,OAAO,aAAa,GAC/D,MAAQ,QAAQ,QAAU,OAAO,WAAa,OAAO,aAAa,EAEtE,OAGF,GAAIA,MAAK,cAAgB,IAAI,eACxB,EAAE,SAAW,IAAI,eAAiB,EAAE,EAAE,MAAM,EAAE,GAAGA,MAAK,YAAY,EAAG,CACxEA,MAAK,QAAU,GACf,OAAO,WAAa,GACpB,MACD,CAKD,GAHIA,MAAK,qBACR,OAAO,KAAK,YAAa,CAAC,EAEvB,EAAE,eAAiB,EAAE,cAAc,OAAS,EAAG,OAEnD,QAAQ,SAAW,MACnB,QAAQ,SAAW,MAEnB,MAAM,MAAQ,QAAQ,SAAW,QAAQ,OACnC,MAAQ,QAAQ,SAAW,QAAQ,OACzC,GAAI,OAAO,OAAO,WAAa,KAAK,KAAM,OAAS,EAAM,OAAS,CAAE,EAAI,OAAO,OAAO,UAAW,OAEjG,GAAI,OAAOA,MAAK,YAAgB,IAAa,CAC5C,IAAI,WACC,OAAO,aAAa,GAAK,QAAQ,WAAa,QAAQ,QAAY,OAAO,WAAW,GAAK,QAAQ,WAAa,QAAQ,OAC1HA,MAAK,YAAc,GAGd,MAAQ,MAAU,MAAQ,OAAU,KACxC,WAAc,KAAK,MAAM,KAAK,IAAI,KAAK,EAAG,KAAK,IAAI,KAAK,CAAC,EAAI,IAAO,KAAK,GACzEA,MAAK,YAAc,OAAO,aAAa,EAAI,WAAa,OAAO,WAAc,GAAK,WAAa,OAAO,WAGzG,CASA,GARIA,MAAK,aACR,OAAO,KAAK,oBAAqB,CAAC,EAE/B,OAAOA,MAAK,YAAgB,MAC3B,QAAQ,WAAa,QAAQ,QAAU,QAAQ,WAAa,QAAQ,UACvEA,MAAK,YAAc,IAGjBA,MAAK,YAAa,CACrBA,MAAK,UAAY,GACjB,MACD,CACA,GAAI,CAACA,MAAK,YACT,OAED,OAAO,WAAa,GAChB,CAAC,OAAO,SAAW,EAAE,YACxB,EAAE,eAAe,EAEd,OAAO,0BAA4B,CAAC,OAAO,QAC9C,EAAE,gBAAgB,EAGdA,MAAK,UACL,OAAO,MACV,OAAO,QAAQ,EAEhBA,MAAK,eAAiB,OAAO,aAAa,EAC1C,OAAO,cAAc,CAAC,EAClB,OAAO,WACV,OAAO,WAAW,QAAQ,mCAAmC,EAE9DA,MAAK,oBAAsB,GAEvB,OAAO,aAAe,OAAO,iBAAmB,IAAQ,OAAO,iBAAmB,KACrF,OAAO,cAAc,EAAI,EAE1B,OAAO,KAAK,kBAAmB,CAAC,GAEjC,OAAO,KAAK,aAAc,CAAC,EAC3BA,MAAK,QAAU,GAEf,IAAI,KAAO,OAAO,aAAa,EAAI,MAAQ,MAC3C,QAAQ,KAAO,KAEf,MAAQ,OAAO,WACX,MAAK,KAAO,CAAC,MAEjB,OAAO,eAAiB,KAAO,EAAI,OAAS,OAC5CA,MAAK,iBAAmB,KAAOA,MAAK,eAEpC,IAAI,oBAAsB,GACtB,gBAAkB,OAAO,gBA0B7B,GAzBI,OAAO,sBACV,gBAAkB,GAEd,KAAO,GAAKA,MAAK,iBAAmB,OAAO,aAAa,GAC5D,oBAAsB,GAClB,OAAO,aAAYA,MAAK,iBAAoB,OAAO,aAAa,EAAI,GAAO,CAAC,OAAO,aAAa,EAAIA,MAAK,eAAiB,OAAS,kBAC7H,KAAO,GAAKA,MAAK,iBAAmB,OAAO,aAAa,IAClE,oBAAsB,GAClB,OAAO,aAAYA,MAAK,iBAAoB,OAAO,aAAa,EAAI,GAAO,OAAO,aAAa,EAAIA,MAAK,eAAiB,OAAS,kBAGnI,sBACH,EAAE,wBAA0B,IAIzB,CAAC,OAAO,gBAAkB,OAAO,iBAAmB,QAAUA,MAAK,iBAAmBA,MAAK,iBAC9FA,MAAK,iBAAmBA,MAAK,gBAE1B,CAAC,OAAO,gBAAkB,OAAO,iBAAmB,QAAUA,MAAK,iBAAmBA,MAAK,iBAC9FA,MAAK,iBAAmBA,MAAK,gBAK1B,OAAO,UAAY,EACtB,GAAI,KAAK,IAAI,IAAI,EAAI,OAAO,WAAaA,MAAK,oBAC7C,GAAI,CAACA,MAAK,mBAAoB,CAC7BA,MAAK,mBAAqB,GAC1B,QAAQ,OAAS,QAAQ,SACzB,QAAQ,OAAS,QAAQ,SACzBA,MAAK,iBAAmBA,MAAK,eAC7B,QAAQ,KAAO,OAAO,aAAa,EAAI,QAAQ,SAAW,QAAQ,OAAS,QAAQ,SAAW,QAAQ,OACtG,MACD,MACM,CACNA,MAAK,iBAAmBA,MAAK,eAC7B,MACD,CAGG,CAAC,OAAO,cAAgB,OAAO,WAG/B,OAAO,UAAY,OAAO,qBAAuB,OAAO,yBAC3D,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,GAExB,OAAO,WAENA,MAAK,WAAW,SAAW,GAC9BA,MAAK,WAAW,KAAK,CACpB,SAAU,QAAQ,OAAO,aAAa,EAAI,SAAW,QAAQ,EAC7D,KAAMA,MAAK,cACZ,CAAC,EAEFA,MAAK,WAAW,KAAK,CACpB,SAAU,QAAQ,OAAO,aAAa,EAAI,WAAa,UAAU,EACjE,KAAM,MAAM,IAAI,CACjB,CAAC,GAGF,OAAO,eAAeA,MAAK,gBAAgB,EAE3C,OAAO,aAAaA,MAAK,gBAAgB,EAC1C,CAEA,SAAS,WAAW,MAAO,CAC1B,MAAM,OAAS,KACTA,MAAO,OAAO,gBAEd,CACL,OAAQ,QAAS,aAAc,IAAK,WAAY,WAAY,QAC7D,EAAI,OACJ,IAAI,EAAI,MAMR,GALI,EAAE,gBAAe,EAAI,EAAE,eACvBA,MAAK,qBACR,OAAO,KAAK,WAAY,CAAC,EAE1BA,MAAK,oBAAsB,GACvB,CAACA,MAAK,UAAW,CAChBA,MAAK,SAAW,OAAO,YAC1B,OAAO,cAAc,EAAK,EAE3BA,MAAK,QAAU,GACfA,MAAK,YAAc,GACnB,MACD,CAEI,OAAO,YAAcA,MAAK,SAAWA,MAAK,YAAc,OAAO,iBAAmB,IAAQ,OAAO,iBAAmB,KACvH,OAAO,cAAc,EAAK,EAI3B,MAAM,aAAe,MAAM,IAAI,EACzB,SAAW,aAAeA,MAAK,eAgBrC,GAbI,OAAO,aACV,OAAO,mBAAmB,CAAC,EAC3B,OAAO,KAAK,YAAa,CAAC,EACtB,SAAW,KAAQ,aAAeA,MAAK,cAAiB,KAC3D,OAAO,KAAK,wBAAyB,CAAC,GAIxCA,MAAK,cAAgB,MAAM,IAAI,EAC/B,MAAM,SAAS,IAAM,CACf,OAAO,YAAW,OAAO,WAAa,GAC5C,CAAC,EAEG,CAACA,MAAK,WAAa,CAACA,MAAK,SAAW,CAAC,OAAO,gBAAkB,QAAQ,OAAS,GAAKA,MAAK,mBAAqBA,MAAK,eAAgB,CACtIA,MAAK,UAAY,GACjBA,MAAK,QAAU,GACfA,MAAK,YAAc,GACnB,MACD,CACAA,MAAK,UAAY,GACjBA,MAAK,QAAU,GACfA,MAAK,YAAc,GAEnB,IAAI,WAOJ,GANI,OAAO,aACV,WAAa,IAAM,OAAO,UAAY,CAAC,OAAO,UAE9C,WAAa,CAACA,MAAK,iBAGhB,OAAO,QACV,OAGD,GAAI,OAAO,SAAU,CACpB,GAAI,WAAa,CAAC,OAAO,aAAa,EAAG,CACxC,OAAO,QAAQ,OAAO,WAAW,EACjC,MACD,CACA,GAAI,WAAa,CAAC,OAAO,aAAa,EAAG,CACpC,OAAO,OAAO,OAAS,SAAS,OACnC,OAAO,QAAQ,SAAS,OAAS,CAAC,EAElC,OAAO,QAAQ,OAAO,OAAO,OAAS,CAAC,EAExC,MACD,CAEA,GAAI,OAAO,iBAAkB,CAC5B,GAAIA,MAAK,WAAW,OAAS,EAAG,CAC/B,MAAM,cAAgBA,MAAK,WAAW,IAAI,EACpC,cAAgBA,MAAK,WAAW,IAAI,EAEpC,SAAW,cAAc,SAAW,cAAc,SAClD,KAAO,cAAc,KAAO,cAAc,KAChD,OAAO,SAAW,SAAW,KAC7B,OAAO,UAAY,EACf,KAAK,IAAI,OAAO,QAAQ,EAAI,OAAO,0BACtC,OAAO,SAAW,IAIf,KAAO,KAAQ,MAAM,IAAI,EAAI,cAAc,KAAQ,OACtD,OAAO,SAAW,EAEpB,MACC,OAAO,SAAW,EAEnB,OAAO,UAAY,OAAO,8BAE1BA,MAAK,WAAW,OAAS,EACzB,IAAI,iBAAmB,IAAO,OAAO,sBACrC,MAAM,iBAAmB,OAAO,SAAW,iBAE3C,IAAI,YAAc,OAAO,UAAY,iBACjC,MAAK,YAAc,CAAC,aAExB,IAAI,SAAW,GACX,oBACJ,MAAM,aAAe,KAAK,IAAI,OAAO,QAAQ,EAAI,GAAK,OAAO,4BAC7D,IAAI,aACJ,GAAI,YAAc,OAAO,aAAa,EACjC,OAAO,wBACN,YAAc,OAAO,aAAa,EAAI,CAAC,eAC1C,YAAc,OAAO,aAAa,EAAI,cAEvC,oBAAsB,OAAO,aAAa,EAC1C,SAAW,GACXA,MAAK,oBAAsB,IAE3B,YAAc,OAAO,aAAa,EAE/B,OAAO,MAAQ,OAAO,iBAAgB,aAAe,YAC/C,YAAc,OAAO,aAAa,EACxC,OAAO,wBACN,YAAc,OAAO,aAAa,EAAI,eACzC,YAAc,OAAO,aAAa,EAAI,cAEvC,oBAAsB,OAAO,aAAa,EAC1C,SAAW,GACXA,MAAK,oBAAsB,IAE3B,YAAc,OAAO,aAAa,EAE/B,OAAO,MAAQ,OAAO,iBAAgB,aAAe,YAC/C,OAAO,eAAgB,CACjC,IAAI,UACJ,QAAS,EAAI,EAAG,EAAI,SAAS,OAAQ,GAAK,EACzC,GAAI,SAAS,CAAC,EAAI,CAAC,YAAa,CAC/B,UAAY,EACZ,KACD,CAGG,KAAK,IAAI,SAAS,SAAS,EAAI,WAAW,EAAI,KAAK,IAAI,SAAS,UAAY,CAAC,EAAI,WAAW,GAAK,OAAO,iBAAmB,OAC9H,YAAc,SAAS,SAAS,EAEhC,YAAc,SAAS,UAAY,CAAC,EAErC,YAAc,CAAC,WAChB,CAOA,GANI,cACH,OAAO,KAAK,gBAAiB,IAAM,CAClC,OAAO,QAAQ,CAChB,CAAC,EAGE,OAAO,WAAa,GAMvB,GALI,IACH,iBAAmB,KAAK,KAAK,CAAC,YAAc,OAAO,WAAa,OAAO,QAAQ,EAE/E,iBAAmB,KAAK,KAAK,YAAc,OAAO,WAAa,OAAO,QAAQ,EAE3E,OAAO,eAAgB,CAQ1B,MAAM,aAAe,KAAK,KAAK,IAAM,CAAC,YAAc,aAAe,OAAO,SAAS,EAC7E,iBAAmB,OAAO,gBAAgB,OAAO,WAAW,EAC9D,aAAe,iBAClB,iBAAmB,OAAO,MAChB,aAAe,EAAI,iBAC7B,iBAAmB,OAAO,MAAQ,IAElC,iBAAmB,OAAO,MAAQ,GAEpC,UACU,OAAO,eAAgB,CACjC,OAAO,eAAe,EACtB,MACD,CAEI,OAAO,wBAA0B,UACpC,OAAO,eAAe,mBAAmB,EACzC,OAAO,cAAc,gBAAgB,EACrC,OAAO,aAAa,WAAW,EAC/B,OAAO,gBAAgB,GAAM,OAAO,cAAc,EAClD,OAAO,UAAY,GACnB,WAAW,cAAc,IAAM,CAC1B,CAAC,QAAU,OAAO,WAAa,CAACA,MAAK,sBACzC,OAAO,KAAK,gBAAgB,EAC5B,OAAO,cAAc,OAAO,KAAK,EACjC,WAAW,IAAM,CAChB,OAAO,aAAa,mBAAmB,EACvC,WAAW,cAAc,IAAM,CAC1B,CAAC,QAAU,OAAO,WACtB,OAAO,cAAc,CACtB,CAAC,CACF,EAAG,CAAC,EACL,CAAC,GACS,OAAO,UACjB,OAAO,eAAe,WAAW,EACjC,OAAO,cAAc,gBAAgB,EACrC,OAAO,aAAa,WAAW,EAC/B,OAAO,gBAAgB,GAAM,OAAO,cAAc,EAC7C,OAAO,YACX,OAAO,UAAY,GACnB,WAAW,cAAc,IAAM,CAC1B,CAAC,QAAU,OAAO,WACtB,OAAO,cAAc,CACtB,CAAC,IAGF,OAAO,eAAe,WAAW,EAGlC,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,CAC5B,SAAW,OAAO,eAAgB,CACjC,OAAO,eAAe,EACtB,MACD,EAEI,CAAC,OAAO,kBAAoB,UAAY,OAAO,gBAClD,OAAO,eAAe,EACtB,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,GAE5B,MACD,CAGA,IAAI,UAAY,EACZ,UAAY,OAAO,gBAAgB,CAAC,EACxC,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAM,EAAI,OAAO,mBAAqB,EAAI,OAAO,eAAiB,CACxG,MAAMkH,WAAa,EAAI,OAAO,mBAAqB,EAAI,EAAI,OAAO,eAC9D,OAAO,WAAW,EAAIA,UAAS,EAAM,IACpC,YAAc,WAAW,CAAC,GAAK,WAAa,WAAW,EAAIA,UAAS,IACvE,UAAY,EACZ,UAAY,WAAW,EAAIA,UAAS,EAAI,WAAW,CAAC,GAE3C,YAAc,WAAW,CAAC,IACpC,UAAY,EACZ,UAAY,WAAW,WAAW,OAAS,CAAC,EAAI,WAAW,WAAW,OAAS,CAAC,EAElF,CAGA,MAAM,OAAS,WAAa,WAAW,SAAS,GAAK,UAC/C,UAAa,UAAY,OAAO,mBAAqB,EAAI,EAAI,OAAO,eAE1E,GAAI,SAAW,OAAO,aAAc,CAEnC,GAAI,CAAC,OAAO,WAAY,CACvB,OAAO,QAAQ,OAAO,WAAW,EACjC,MACD,CACI,OAAO,iBAAmB,SACzB,OAAS,OAAO,gBAAiB,OAAO,QAAQ,UAAY,SAAS,EACpE,OAAO,QAAQ,SAAS,GAE1B,OAAO,iBAAmB,SACzB,MAAS,EAAI,OAAO,gBAAkB,OAAO,QAAQ,UAAY,SAAS,EACzE,OAAO,QAAQ,SAAS,EAE/B,KAAO,CAEN,GAAI,CAAC,OAAO,YAAa,CACxB,OAAO,QAAQ,OAAO,WAAW,EACjC,MACD,CAC0B,OAAO,aAAe,EAAE,SAAW,OAAO,WAAW,QAAU,EAAE,SAAW,OAAO,WAAW,QAQ7G,EAAE,SAAW,OAAO,WAAW,OACzC,OAAO,QAAQ,UAAY,SAAS,EAEpC,OAAO,QAAQ,SAAS,GATpB,OAAO,iBAAmB,QAC7B,OAAO,QAAQ,UAAY,SAAS,EAEjC,OAAO,iBAAmB,QAC7B,OAAO,QAAQ,SAAS,EAO3B,CACD,CAEA,SAAS,UAAW,CACnB,MAAM,OAAS,KAET,CAAE,OAAQ,EAAG,EAAI,OAEvB,GAAI,IAAM,GAAG,cAAgB,EAAG,OAG5B,OAAO,aACV,OAAO,cAAc,EAItB,KAAM,CAAE,eAAgB,eAAgB,QAAS,EAAI,OAGrD,OAAO,eAAiB,GACxB,OAAO,eAAiB,GAExB,OAAO,WAAW,EAClB,OAAO,aAAa,EAEpB,OAAO,oBAAoB,GACtB,OAAO,gBAAkB,QAAU,OAAO,cAAgB,IAAM,OAAO,OAAS,CAAC,OAAO,aAAe,CAAC,OAAO,OAAO,eAC1H,OAAO,QAAQ,OAAO,OAAO,OAAS,EAAG,EAAG,GAAO,EAAI,EAEvD,OAAO,QAAQ,OAAO,YAAa,EAAG,GAAO,EAAI,EAG9C,OAAO,UAAY,OAAO,SAAS,SAAW,OAAO,SAAS,QACjE,OAAO,SAAS,IAAI,EAGrB,OAAO,eAAiB,eACxB,OAAO,eAAiB,eAEpB,OAAO,OAAO,eAAiB,WAAa,OAAO,UACtD,OAAO,cAAc,CAEvB,CAEA,SAAS,QAAQ,EAAG,CACnB,MAAM,OAAS,KACV,OAAO,aACP,OAAO,OAAO,eAAe,EAAE,eAAe,EAC9C,OAAO,OAAO,0BAA4B,OAAO,YACpD,EAAE,gBAAgB,EAClB,EAAE,yBAAyB,GAG9B,CAEA,SAAS,UAAW,CACnB,MAAM,OAAS,KACT,CAAE,UAAW,YAAa,EAAI,OACpC,OAAO,kBAAoB,OAAO,UAC9B,OAAO,aAAa,EACnB,aACH,OAAO,UAAc,UAAU,YAAc,UAAU,YAAe,UAAU,WAEhF,OAAO,UAAY,CAAC,UAAU,WAG/B,OAAO,UAAY,CAAC,UAAU,UAG3B,OAAO,YAAc,KAAI,OAAO,UAAY,GAEhD,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,EAE3B,IAAI,YACJ,MAAM,eAAiB,OAAO,aAAa,EAAI,OAAO,aAAa,EAC/D,iBAAmB,EACtB,YAAc,EAEd,aAAe,OAAO,UAAY,OAAO,aAAa,GAAM,eAEzD,cAAgB,OAAO,UAC1B,OAAO,eAAe,aAAe,CAAC,OAAO,UAAY,OAAO,SAAS,EAG1E,OAAO,KAAK,eAAgB,OAAO,UAAW,EAAK,CACpD,CAEA,IAAI,mBAAqB,GACzB,SAAS,oBAAqB,CAAE,CAEhC,SAAS,cAAe,CACvB,MAAM,OAAS,KACT,CACL,OAAQ,YAAa,GAAI,SAC1B,EAAI,OAEJ,OAAO,aAAe,aAAa,KAAK,MAAM,EAC9C,OAAO,YAAc,YAAY,KAAK,MAAM,EAC5C,OAAO,WAAa,WAAW,KAAK,MAAM,EACtC,OAAO,UACV,OAAO,SAAW,SAAS,KAAK,MAAM,GAGvC,OAAO,QAAU,QAAQ,KAAK,MAAM,EAEpC,MAAM,QAAU,CAAC,CAAC,OAAO,OAGzB,GAAI,CAAC,QAAQ,OAAS,QAAQ,cAC7B,GAAG,iBAAiB,YAAY,MAAO,OAAO,aAAc,EAAK,EACjE,IAAI,iBAAiB,YAAY,KAAM,OAAO,YAAa,OAAO,EAClE,IAAI,iBAAiB,YAAY,IAAK,OAAO,WAAY,EAAK,MACxD,CACN,GAAI,QAAQ,MAAO,CAClB,MAAM,gBAAkB,YAAY,QAAU,cAAgB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GACvJ,GAAG,iBAAiB,YAAY,MAAO,OAAO,aAAc,eAAe,EAC3E,GAAG,iBAAiB,YAAY,KAAM,OAAO,YAAa,QAAQ,gBAAkB,CAAE,QAAS,GAAO,OAAQ,EAAI,OAAO,EACzH,GAAG,iBAAiB,YAAY,IAAK,OAAO,WAAY,eAAe,EACnE,YAAY,QACf,GAAG,iBAAiB,YAAY,OAAQ,OAAO,WAAY,eAAe,EAEtE,qBACJ,IAAI,iBAAiB,aAAc,kBAAkB,EACrD,mBAAqB,GAEvB,EACK,OAAO,eAAiB,CAAC,OAAO,KAAO,CAAC,OAAO,SAAa,OAAO,eAAiB,CAAC,QAAQ,OAAS,OAAO,OACjH,GAAG,iBAAiB,YAAa,OAAO,aAAc,EAAK,EAC3D,IAAI,iBAAiB,YAAa,OAAO,YAAa,OAAO,EAC7D,IAAI,iBAAiB,UAAW,OAAO,WAAY,EAAK,EAE1D,EAEI,OAAO,eAAiB,OAAO,2BAClC,GAAG,iBAAiB,QAAS,OAAO,QAAS,EAAI,EAE9C,OAAO,SACV,UAAU,iBAAiB,SAAU,OAAO,QAAQ,EAIjD,OAAO,qBACV,OAAO,GAAI,OAAO,KAAO,OAAO,QAAU,0CAA4C,wBAA0B,SAAU,EAAI,EAE9H,OAAO,GAAG,iBAAkB,SAAU,EAAI,CAE5C,CAEA,SAAS,cAAe,CACvB,MAAM,OAAS,KAET,CACL,OAAQ,YAAa,GAAI,SAC1B,EAAI,OAEE,QAAU,CAAC,CAAC,OAAO,OAGzB,GAAI,CAAC,QAAQ,OAAS,QAAQ,cAC7B,GAAG,oBAAoB,YAAY,MAAO,OAAO,aAAc,EAAK,EACpE,IAAI,oBAAoB,YAAY,KAAM,OAAO,YAAa,OAAO,EACrE,IAAI,oBAAoB,YAAY,IAAK,OAAO,WAAY,EAAK,MAC3D,CACN,GAAI,QAAQ,MAAO,CAClB,MAAM,gBAAkB,YAAY,QAAU,gBAAkB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GACzJ,GAAG,oBAAoB,YAAY,MAAO,OAAO,aAAc,eAAe,EAC9E,GAAG,oBAAoB,YAAY,KAAM,OAAO,YAAa,OAAO,EACpE,GAAG,oBAAoB,YAAY,IAAK,OAAO,WAAY,eAAe,EACtE,YAAY,QACf,GAAG,oBAAoB,YAAY,OAAQ,OAAO,WAAY,eAAe,CAE/E,EACK,OAAO,eAAiB,CAAC,OAAO,KAAO,CAAC,OAAO,SAAa,OAAO,eAAiB,CAAC,QAAQ,OAAS,OAAO,OACjH,GAAG,oBAAoB,YAAa,OAAO,aAAc,EAAK,EAC9D,IAAI,oBAAoB,YAAa,OAAO,YAAa,OAAO,EAChE,IAAI,oBAAoB,UAAW,OAAO,WAAY,EAAK,EAE7D,EAEI,OAAO,eAAiB,OAAO,2BAClC,GAAG,oBAAoB,QAAS,OAAO,QAAS,EAAI,EAGjD,OAAO,SACV,UAAU,oBAAoB,SAAU,OAAO,QAAQ,EAIxD,OAAO,IAAK,OAAO,KAAO,OAAO,QAAU,0CAA4C,wBAA0B,QAAQ,CAC1H,CAEA,IAAI,yBAA2B,CAC9B,aACA,YACD,EAEA,SAAS,eAAgB,CACxB,MAAM,OAAS,KACT,CACL,YAAa,YAAa,aAAe,EAAG,OAAQ,GACrD,EAAI,OACEC,aAAc,OAAO,YAC3B,GAAI,CAACA,cAAgBA,cAAe,OAAO,KAAKA,YAAW,EAAE,SAAW,EAAI,OAG5E,MAAM,WAAa,OAAO,cAAcA,YAAW,EAEnD,GAAI,YAAc,OAAO,oBAAsB,WAAY,CAC1D,MAAM,qBAAuB,cAAcA,aAAcA,aAAY,UAAU,EAAI,OAC/E,sBACH,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,iBAAiB,EAAE,QAAS,OAAU,CAC/G,MAAM,WAAa,qBAAqB,KAAK,EACzC,OAAO,WAAe,MACtB,QAAU,kBAAoB,aAAe,QAAU,aAAe,QACzE,qBAAqB,KAAK,EAAI,OACpB,QAAU,gBACpB,qBAAqB,KAAK,EAAI,WAAW,UAAU,EAEnD,qBAAqB,KAAK,EAAI,SAAS,WAAY,EAAE,EAEvD,CAAC,EAGF,MAAM,iBAAmB,sBAAwB,OAAO,eAClD,YAAc,OAAO,gBAAkB,EACvC,WAAa,iBAAiB,gBAAkB,EAClD,aAAe,CAAC,WACnB,IAAI,YAAY,GAAG,OAAO,sBAAsB,YAAY,OAAO,sBAAsB,iBAAiB,EAChG,CAAC,aAAe,aAC1B,IAAI,SAAS,GAAG,OAAO,sBAAsB,UAAU,EACnD,iBAAiB,sBAAwB,UAC5C,IAAI,SAAS,GAAG,OAAO,sBAAsB,iBAAiB,GAIhE,MAAM,iBAAmB,iBAAiB,WAAa,iBAAiB,YAAc,OAAO,UACvF,YAAc,OAAO,OAAS,iBAAiB,gBAAkB,OAAO,eAAiB,kBAE3F,kBAAoB,aACvB,OAAO,gBAAgB,EAGxB,MAAM,OAAO,OAAO,OAAQ,gBAAgB,EAE5C,MAAM,OAAO,OAAQ,CACpB,eAAgB,OAAO,OAAO,eAC9B,eAAgB,OAAO,OAAO,eAC9B,eAAgB,OAAO,OAAO,cAC/B,CAAC,EAED,OAAO,kBAAoB,WAEvB,aAAe,cAClB,OAAO,YAAY,EACnB,OAAO,WAAW,EAClB,OAAO,aAAa,EACpB,OAAO,QAAS,YAAc,aAAgB,OAAO,aAAc,EAAG,EAAK,GAG5E,OAAO,KAAK,aAAc,gBAAgB,CAC3C,CACD,CAEA,SAAS,cAAcA,aAAa,CAEnC,GAAI,CAACA,aAAa,OAClB,IAAI,WAAa,GAEjB,MAAM,OAAS,OAAO,KAAKA,YAAW,EAAE,IAAK,OAAU,CACtD,GAAI,OAAO,OAAU,UAAY,MAAM,QAAQ,GAAG,IAAM,EAAG,CAC1D,MAAM,SAAW,WAAW,MAAM,OAAO,CAAC,CAAC,EAE3C,MAAO,CAAE,MADK,IAAI,YAAc,SAChB,KAAM,CACvB,CACA,MAAO,CAAE,MAAO,MAAO,KAAM,CAC9B,CAAC,EAED,OAAO,KAAK,CAAC,EAAG,IAAM,SAAS,EAAE,MAAO,EAAE,EAAI,SAAS,EAAE,MAAO,EAAE,CAAC,EACnE,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,KAAM,CAAE,MAAO,KAAM,EAAI,OAAO,CAAC,EAC7B,OAAS,IAAI,aAChB,WAAa,MAEf,CACA,OAAO,YAAc,KACtB,CAEA,IAAI,YAAc,CAAE,cAAe,aAAc,EAEjD,SAAS,YAAa,CACrB,MAAM,OAAS,KACT,CACL,WAAY,OAAQ,IAAK,GAC1B,EAAI,OACE,SAAW,CAAC,EAElB,SAAS,KAAK,aAAa,EAC3B,SAAS,KAAK,OAAO,SAAS,EAE1B,OAAO,UACV,SAAS,KAAK,WAAW,EAEtB,OAAO,YACV,SAAS,KAAK,YAAY,EAEvB,KACH,SAAS,KAAK,KAAK,EAEhB,OAAO,gBAAkB,IAC5B,SAAS,KAAK,UAAU,EACpB,OAAO,sBAAwB,UAClC,SAAS,KAAK,iBAAiB,GAG7B,OAAO,SACV,SAAS,KAAK,SAAS,EAEpB,OAAO,KACV,SAAS,KAAK,KAAK,EAGhB,OAAO,SACV,SAAS,KAAK,UAAU,EAGzB,SAAS,QAAS,QAAW,CAC5B,WAAW,KAAK,OAAO,uBAAyB,MAAM,CACvD,CAAC,EAED,IAAI,SAAS,WAAW,KAAK,GAAG,CAAC,CAClC,CAEA,SAAS,eAAgB,CACxB,MAAM,OAAS,KACT,CAAE,IAAK,UAAW,EAAI,OAE5B,IAAI,YAAY,WAAW,KAAK,GAAG,CAAC,CACrC,CAEA,IAAI,QAAU,CAAE,WAAY,aAAc,EAE1C,SAAS,UAAU,QAAS,IAAK,OAAQ,MAAO,iBAAkB,SAAU,CAC3E,IAAI,MACJ,SAAS,SAAU,CACd,UAAU,SAAS,CACxB,CAGI,CAFc,EAAE,OAAO,EAAE,OAAO,SAAS,EAAE,CAAC,IAE7B,CAAC,QAAQ,UAAY,CAAC,mBACpC,KACH,MAAQ,IAAI,IAAI,MAChB,MAAM,OAAS,QACf,MAAM,QAAU,QACZ,QACH,MAAM,MAAQ,OAEX,SACH,MAAM,OAAS,QAEZ,MACH,MAAM,IAAM,MAOd,QAAQ,CAEV,CAEA,SAAS,eAAgB,CACxB,MAAM,OAAS,KACf,OAAO,aAAe,OAAO,IAAI,KAAK,KAAK,EAC3C,SAAS,SAAU,CACd,OAAO,OAAW,KAAe,SAAW,MAAQ,CAAC,QAAU,OAAO,YACtE,OAAO,eAAiB,SAAW,OAAO,cAAgB,GAC1D,OAAO,eAAiB,OAAO,aAAa,SAC3C,OAAO,OAAO,qBAAqB,OAAO,OAAO,EACrD,OAAO,KAAK,aAAa,GAE3B,CACA,QAAS,EAAI,EAAG,EAAI,OAAO,aAAa,OAAQ,GAAK,EAAG,CACvD,MAAM,QAAU,OAAO,aAAa,CAAC,EACrC,OAAO,UACN,QACA,QAAQ,YAAc,QAAQ,aAAa,KAAK,EAChD,QAAQ,QAAU,QAAQ,aAAa,QAAQ,EAC/C,QAAQ,OAAS,QAAQ,aAAa,OAAO,EAC7C,GACA,OACD,CACD,CACD,CAEA,IAAI,yBAA2B,CAC9B,UACA,aACD,EAEA,SAAS,eAAgB,CACxB,MAAM,OAAS,KACT,OAAS,OAAO,OAChB,UAAY,OAAO,SACnB,kBAAoB,OAAO,OAAO,OAAS,GAAM,OAAO,mBAAsB,OAAO,cAAgB,OAAO,OAAO,OAAS,GAAQ,OAAO,OAAO,CAAC,EAAG,YAAe,OAAO,OAAO,OAErL,OAAO,oBAAsB,OAAO,mBAAqB,kBAC5D,OAAO,SAAW,mBAAqB,OAAO,KAE9C,OAAO,SAAW,OAAO,SAAS,SAAW,EAG9C,OAAO,eAAiB,CAAC,OAAO,SAChC,OAAO,eAAiB,CAAC,OAAO,SAG5B,YAAc,OAAO,UAAU,OAAO,KAAK,OAAO,SAAW,OAAS,QAAQ,EAE9E,WAAa,YAAc,OAAO,WACrC,OAAO,MAAQ,GACX,OAAO,YAAY,OAAO,WAAW,OAAO,EAElD,CAEA,IAAI,gBAAkB,CAAE,aAAc,EAElC,SAAW,CACd,KAAM,GACN,UAAW,aACX,kBAAmB,YACnB,aAAc,EACd,MAAO,IACP,QAAS,GACT,qBAAsB,GAEtB,+BAAgC,GAGhC,mBAAoB,GACpB,mBAAoB,GAGpB,SAAU,GACV,iBAAkB,GAClB,sBAAuB,EACvB,uBAAwB,GACxB,4BAA6B,EAC7B,8BAA+B,EAC/B,eAAgB,GAChB,wBAAyB,IAGzB,WAAY,GAGZ,eAAgB,GAGhB,iBAAkB,GAGlB,OAAQ,QAGR,YAAa,OAGb,aAAc,EACd,cAAe,EACf,gBAAiB,EACjB,oBAAqB,SACrB,eAAgB,EAChB,mBAAoB,EACpB,eAAgB,GAChB,qBAAsB,GACtB,mBAAoB,EACpB,kBAAmB,EACnB,oBAAqB,GACrB,yBAA0B,GAG1B,cAAe,GAGf,aAAc,GAGd,WAAY,EACZ,WAAY,GACZ,cAAe,GACf,YAAa,GACb,WAAY,GACZ,gBAAiB,GACjB,aAAc,IACd,aAAc,GACd,eAAgB,GAChB,UAAW,EACX,yBAA0B,GAC1B,yBAA0B,GAC1B,8BAA+B,GAC/B,oBAAqB,GAGrB,kBAAmB,GAGnB,WAAY,GACZ,gBAAiB,IAGjB,oBAAqB,GACrB,sBAAuB,GAGvB,WAAY,GAGZ,cAAe,GACf,yBAA0B,GAC1B,oBAAqB,GAGrB,cAAe,GACf,oBAAqB,GAGrB,KAAM,GACN,qBAAsB,EACtB,aAAc,KACd,uBAAwB,GAGxB,eAAgB,GAChB,eAAgB,GAChB,aAAc,KACd,UAAW,GACX,eAAgB,oBAChB,kBAAmB,KAGnB,iBAAkB,GAGlB,uBAAwB,oBACxB,WAAY,eACZ,gBAAiB,+BACjB,iBAAkB,sBAClB,0BAA2B,gCAC3B,kBAAmB,uBACnB,oBAAqB,yBACrB,eAAgB,oBAChB,wBAAyB,8BACzB,eAAgB,oBAChB,wBAAyB,8BACzB,aAAc,iBAGd,mBAAoB,EACrB,EAIA,MAAM,WAAa,CAClB,OACA,UACA,WAAY,6BACZ,MACA,KACA,WACA,aACA,OAAQ,yBACR,YACA,cAAe,gBACf,QACA,OAAQ,wBACT,EAEM,iBAAmB,CAAC,EAE1B,MAAM,eAAe,WAAY,CAChC,eAAe,KAAM,CACpB,IAAI,GACA,OACA,KAAK,SAAW,GAAK,KAAK,CAAC,EAAE,aAAe,KAAK,CAAC,EAAE,cAAgB,OACvE,OAAS,KAAK,CAAC,EAEf,CAAC,GAAI,MAAM,EAAI,KAEX,SAAQ,OAAS,CAAC,GAEvB,OAAS,MAAM,OAAO,CAAC,EAAG,MAAM,EAC5B,IAAM,CAAC,OAAO,KAAI,OAAO,GAAK,IAElC,MAAM,MAAM,EAEZ,OAAO,KAAK,UAAU,EAAE,QAAS,gBAAmB,CACnD,OAAO,KAAK,WAAW,cAAc,CAAC,EAAE,QAAS,aAAgB,CAC3D,OAAO,UAAU,WAAW,IAChC,OAAO,UAAU,WAAW,EAAI,WAAW,cAAc,EAAE,WAAW,EAExE,CAAC,CACF,CAAC,EAGD,MAAM,OAAS,KACX,OAAO,OAAO,QAAY,MAC7B,OAAO,QAAU,CAAC,GAEnB,OAAO,KAAK,OAAO,OAAO,EAAE,QAAS,YAAe,CACnD,MAAM,OAAS,OAAO,QAAQ,UAAU,EACxC,GAAI,OAAO,OAAQ,CAClB,MAAM,gBAAkB,OAAO,KAAK,OAAO,MAAM,EAAE,CAAC,EAC9C,aAAe,OAAO,OAAO,eAAe,EAElD,GADI,OAAO,cAAiB,UAAY,eAAiB,MACrD,EAAE,mBAAmB,QAAU,YAAa,cAAe,OAC3D,OAAO,eAAe,IAAM,KAC/B,OAAO,eAAe,EAAI,CAAE,QAAS,EAAK,GAG1C,OAAO,OAAO,eAAe,GAAM,UAChC,EAAE,YAAa,OAAO,eAAe,KAExC,OAAO,eAAe,EAAE,QAAU,IAE9B,OAAO,eAAe,IAAG,OAAO,eAAe,EAAI,CAAE,QAAS,EAAM,EAC1E,CACD,CAAC,EAGD,MAAM,aAAe,MAAM,OAAO,CAAC,EAAG,QAAQ,EAC9C,OAAO,iBAAiB,YAAY,EAGpC,OAAO,OAAS,MAAM,OAAO,CAAC,EAAG,aAAc,iBAAkB,MAAM,EACvE,OAAO,eAAiB,MAAM,OAAO,CAAC,EAAG,OAAO,MAAM,EACtD,OAAO,aAAe,MAAM,OAAO,CAAC,EAAG,MAAM,EAG7C,OAAO,EAAI,EAGX,MAAM,IAAM,EAAE,OAAO,OAAO,EAAE,EAG9B,GAFA,GAAK,IAAI,CAAC,EAEN,CAAC,GACJ,OAGD,GAAI,IAAI,OAAS,EAAG,CACnB,MAAM,QAAU,CAAC,EACjB,WAAI,KAAK,CAAChH,OAAO,cAAgB,CAChC,MAAM,UAAY,MAAM,OAAO,CAAC,EAAG,OAAQ,CAAE,GAAI,WAAY,CAAC,EAC9D,QAAQ,KAAK,IAAI,OAAO,SAAS,CAAC,CACnC,CAAC,EACM,OACR,CAEA,GAAG,OAAS,OACZ,IAAI,KAAK,SAAU,MAAM,EAGzB,IAAI,WACJ,OAAI,IAAM,GAAG,YAAc,GAAG,WAAW,eACxC,WAAa,EAAE,GAAG,WAAW,cAAc,IAAI,OAAO,OAAO,YAAY,EAAE,CAAC,EAE5E,WAAW,SAAY,SAAY,IAAI,SAAS,OAAO,GAEvD,WAAa,IAAI,SAAS,IAAI,OAAO,OAAO,YAAY,EAAE,EAG3D,MAAM,OAAO,OAAQ,CACpB,IACA,GACA,WACA,UAAW,WAAW,CAAC,EAGvB,WAAY,CAAC,EAGb,OAAQ,EAAE,EACV,WAAY,CAAC,EACb,SAAU,CAAC,EACX,gBAAiB,CAAC,EAGlB,cAAe,CACd,OAAO,OAAO,OAAO,YAAc,YACpC,EACA,YAAa,CACZ,OAAO,OAAO,OAAO,YAAc,UACpC,EAEA,IAAM,GAAG,IAAI,YAAY,IAAM,OAAS,IAAI,IAAI,WAAW,IAAM,MACjE,aAAc,OAAO,OAAO,YAAc,eAAiB,GAAG,IAAI,YAAY,IAAM,OAAS,IAAI,IAAI,WAAW,IAAM,OACtH,SAAU,WAAW,IAAI,SAAS,IAAM,cAGxC,YAAa,EACb,UAAW,EAGX,YAAa,GACb,MAAO,GAGP,UAAW,EACX,kBAAmB,EACnB,SAAU,EACV,SAAU,EACV,UAAW,GAGX,eAAgB,OAAO,OAAO,eAC9B,eAAgB,OAAO,OAAO,eAG9B,aAAc,UAAuB,CACpC,MAAM,MAAQ,CAAC,aAAc,YAAa,WAAY,aAAa,EACnE,IAAI,QAAU,CAAC,YAAa,YAAa,SAAS,EAClD,OAAI,QAAQ,gBACX,QAAU,CAAC,cAAe,cAAe,WAAW,GAErD,OAAO,iBAAmB,CACzB,MAAO,MAAM,CAAC,EACd,KAAM,MAAM,CAAC,EACb,IAAK,MAAM,CAAC,EACZ,OAAQ,MAAM,CAAC,CAChB,EACA,OAAO,mBAAqB,CAC3B,MAAO,QAAQ,CAAC,EAChB,KAAM,QAAQ,CAAC,EACf,IAAK,QAAQ,CAAC,CACf,EACO,QAAQ,OAAS,CAAC,OAAO,OAAO,cAAgB,OAAO,iBAAmB,OAAO,kBACzF,GAAE,EACF,gBAAiB,CAChB,UAAW,OACX,QAAS,OACT,oBAAqB,OACrB,eAAgB,OAChB,YAAa,OACb,iBAAkB,OAClB,eAAgB,OAChB,mBAAoB,OAEpB,aAAc,wDAEd,cAAe,MAAM,IAAI,EACzB,aAAc,OAEd,WAAY,CAAC,EACb,oBAAqB,OACrB,aAAc,OACd,YAAa,MACd,EAGA,WAAY,GAGZ,eAAgB,OAAO,OAAO,eAE9B,QAAS,CACR,OAAQ,EACR,OAAQ,EACR,SAAU,EACV,SAAU,EACV,KAAM,CACP,EAGA,aAAc,CAAC,EACf,aAAc,CAEf,CAAC,EAGD,OAAO,WAAW,EAGd,OAAO,OAAO,MACjB,OAAO,KAAK,EAIN,MACR,CAEA,sBAAuB,CACtB,MAAM,OAAS,KACT,CACL,OAAQ,OAAQ,WAAY,KAAM,WAAY,WAC/C,EAAI,OACJ,IAAI,IAAM,EACV,GAAI,OAAO,eAAgB,CAC1B,IAAI,UAAY,OAAO,WAAW,EAAE,gBAChC,UACJ,QAAS,EAAI,YAAc,EAAG,EAAI,OAAO,OAAQ,GAAK,EACjD,OAAO,CAAC,GAAK,CAAC,YACjB,WAAa,OAAO,CAAC,EAAE,gBACvB,KAAO,EACH,UAAY,aAAY,UAAY,KAG1C,QAAS,EAAI,YAAc,EAAG,GAAK,EAAG,GAAK,EACtC,OAAO,CAAC,GAAK,CAAC,YACjB,WAAa,OAAO,CAAC,EAAE,gBACvB,KAAO,EACH,UAAY,aAAY,UAAY,IAG3C,KACC,SAAS,EAAI,YAAc,EAAG,EAAI,OAAO,OAAQ,GAAK,EACjD,WAAW,CAAC,EAAI,WAAW,WAAW,EAAI,aAC7C,KAAO,GAIV,OAAO,GACR,CAEA,QAAS,CACR,MAAM,OAAS,KACf,GAAI,CAAC,QAAU,OAAO,UAAW,OACjC,KAAM,CAAE,SAAU,MAAO,EAAI,OAEzB,OAAO,aACV,OAAO,cAAc,EAEtB,OAAO,WAAW,EAClB,OAAO,aAAa,EACpB,OAAO,eAAe,EACtB,OAAO,oBAAoB,EAE3B,SAASiH,eAAe,CACvB,MAAM,eAAiB,OAAO,aAAe,OAAO,UAAY,GAAK,OAAO,UACtE,aAAe,KAAK,IAAI,KAAK,IAAI,eAAgB,OAAO,aAAa,CAAC,EAAG,OAAO,aAAa,CAAC,EACpG,OAAO,aAAa,YAAY,EAChC,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,CAC5B,CACA,IAAI,WACA,OAAO,OAAO,UACjBA,cAAa,EACT,OAAO,OAAO,YACjB,OAAO,iBAAiB,KAGpB,OAAO,OAAO,gBAAkB,QAAU,OAAO,OAAO,cAAgB,IAAM,OAAO,OAAS,CAAC,OAAO,OAAO,eACjH,WAAa,OAAO,QAAQ,OAAO,OAAO,OAAS,EAAG,EAAG,GAAO,EAAI,EAEpE,WAAa,OAAO,QAAQ,OAAO,YAAa,EAAG,GAAO,EAAI,EAE1D,YACJA,cAAa,GAGX,OAAO,eAAiB,WAAa,OAAO,UAC/C,OAAO,cAAc,EAEtB,OAAO,KAAK,QAAQ,CACrB,CAEA,gBAAgB,aAAc,WAAa,GAAM,CAChD,MAAM,OAAS,KACT,iBAAmB,OAAO,OAAO,UAKvC,OAJK,eAEJ,aAAe,mBAAqB,aAAe,WAAa,cAE5D,eAAiB,kBAAsB,eAAiB,cAAgB,eAAiB,aAI9F,OAAO,IACL,YAAY,GAAG,OAAO,OAAO,sBAAsB,GAAG,gBAAgB,EAAE,EACxE,SAAS,GAAG,OAAO,OAAO,sBAAsB,GAAG,YAAY,EAAE,EAEnE,OAAO,OAAO,UAAY,aAE1B,OAAO,OAAO,KAAK,CAAC,WAAY,UAAY,CACvC,eAAiB,WACpB,QAAQ,MAAM,MAAQ,GAEtB,QAAQ,MAAM,OAAS,EAEzB,CAAC,EAED,OAAO,KAAK,iBAAiB,EACzB,YAAY,OAAO,OAAO,GAEvB,MACR,CAEA,MAAO,CACN,MAAM,OAAS,KACX,OAAO,cAEX,OAAO,KAAK,YAAY,EAGpB,OAAO,OAAO,aACjB,OAAO,cAAc,EAItB,OAAO,WAAW,EAGd,OAAO,OAAO,MACjB,OAAO,WAAW,EAInB,OAAO,WAAW,EAGlB,OAAO,aAAa,EAEhB,OAAO,OAAO,eACjB,OAAO,cAAc,EAIlB,OAAO,OAAO,YACjB,OAAO,cAAc,EAGlB,OAAO,OAAO,eACjB,OAAO,cAAc,EAIlB,OAAO,OAAO,KACjB,OAAO,QAAQ,OAAO,OAAO,aAAe,OAAO,aAAc,EAAG,OAAO,OAAO,kBAAkB,EAEpG,OAAO,QAAQ,OAAO,OAAO,aAAc,EAAG,OAAO,OAAO,kBAAkB,EAI/E,OAAO,aAAa,EAGpB,OAAO,YAAc,GAGrB,OAAO,KAAK,MAAM,EACnB,CAEA,QAAQ,eAAiB,GAAM,YAAc,GAAM,CAClD,MAAM,OAAS,KACT,CACL,OAAQ,IAAK,WAAY,MAC1B,EAAI,OAEJ,OAAI,OAAO,OAAO,OAAW,KAAe,OAAO,YAInD,OAAO,KAAK,eAAe,EAG3B,OAAO,YAAc,GAGrB,OAAO,aAAa,EAGhB,OAAO,MACV,OAAO,YAAY,EAIhB,cACH,OAAO,cAAc,EACrB,IAAI,WAAW,OAAO,EACtB,WAAW,WAAW,OAAO,EACzB,QAAU,OAAO,QACpB,OACE,YAAY,CACZ,OAAO,kBACP,OAAO,iBACP,OAAO,eACP,OAAO,cACR,EAAE,KAAK,GAAG,CAAC,EACV,WAAW,OAAO,EAClB,WAAW,yBAAyB,GAIxC,OAAO,KAAK,SAAS,EAGrB,OAAO,KAAK,OAAO,eAAe,EAAE,QAAS,WAAc,CAC1D,OAAO,IAAI,SAAS,CACrB,CAAC,EAEG,iBAAmB,KACtB,OAAO,IAAI,CAAC,EAAE,OAAS,KACvB,OAAO,IAAI,KAAK,SAAU,IAAI,EAC9B,MAAM,YAAY,MAAM,GAEzB,OAAO,UAAY,IAEZ,IACR,CAEA,OAAO,eAAe,YAAa,CAClC,MAAM,OAAO,iBAAkB,WAAW,CAC3C,CAEA,WAAW,kBAAmB,CAC7B,OAAO,gBACR,CAEA,WAAW,UAAW,CACrB,OAAO,QACR,CAEA,WAAW,OAAQ,CAClB,OAAO,WACR,CAEA,WAAW,GAAI,CACd,OAAO,CACR,CACD,CAEA,IAAI,SAAW,CACd,KAAM,SACN,MAAO,CACN,OAAQ,MACT,EACA,OAAQ,CACP,OAAQ,MACT,CACD,EAEI,UAAY,CACf,KAAM,UACN,MAAO,CACN,QAAS,OACV,EACA,OAAQ,CACP,QAAS,OACV,CACD,EAEA,MAAM,SAAW,UAAmB,CACnC,SAAS,UAAW,CACnB,MAAM,GAAK,IAAI,UAAU,UAAU,YAAY,EAC/C,OAAQ,GAAG,QAAQ,QAAQ,GAAK,GAAK,GAAG,QAAQ,QAAQ,EAAI,GAAK,GAAG,QAAQ,SAAS,EAAI,CAC1F,CACA,MAAO,CACN,OAAQ,CAAC,CAAC,IAAI,UAAU,UAAU,MAAM,OAAO,EAC/C,SAAU,SAAS,EACnB,UAAW,+CAA+C,KAAK,IAAI,UAAU,SAAS,CACvF,CACD,GAAE,EAEF,IAAI,UAAY,CACf,KAAM,UACN,MAAO,CACN,QAAS,OACV,EACA,OAAQ,CACP,QAAS,OACV,CACD,EAEI,OAAS,CACZ,KAAM,SACN,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,OAAQ,CACP,eAAgB,CACX,CAAC,QAAU,OAAO,WAAa,CAAC,OAAO,cAC3C,OAAO,KAAK,cAAc,EAC1B,OAAO,KAAK,QAAQ,EACrB,EACA,0BAA2B,CACtB,CAAC,QAAU,OAAO,WAAa,CAAC,OAAO,aAC3C,OAAO,KAAK,mBAAmB,CAChC,CACD,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KAEf,IAAI,iBAAiB,SAAU,OAAO,OAAO,aAAa,EAG1D,IAAI,iBAAiB,oBAAqB,OAAO,OAAO,wBAAwB,CACjF,EACA,SAAU,CACT,MAAM,OAAS,KACf,IAAI,oBAAoB,SAAU,OAAO,OAAO,aAAa,EAC7D,IAAI,oBAAoB,oBAAqB,OAAO,OAAO,wBAAwB,CACpF,CACD,CACD,EAEA,MAAM,2BAA6B,CAClC,KAAM,IAAI,kBAAoB,IAAI,uBAClC,OAAO3D,QAAQ,QAAU,CAAC,EAAG,CAC5B,MAAM,OAAS,KAET,aAAe,2BAA2B,KAC1C4D,UAAW,IAAI,aAAc,WAAc,CAIhD,GAAI,UAAU,SAAW,EAAG,CAC3B,OAAO,KAAK,iBAAkB,UAAU,CAAC,CAAC,EAC1C,MACD,CACA,MAAM,eAAiB,UAA0B,CAChD,OAAO,KAAK,iBAAkB,UAAU,CAAC,CAAC,CAC3C,EAEI,IAAI,sBACP,IAAI,sBAAsB,cAAc,EAExC,IAAI,WAAW,eAAgB,CAAC,CAElC,CAAC,EAEDA,UAAS,QAAQ5D,QAAQ,CACxB,WAAY,OAAO,QAAQ,WAAe,IAAc,GAAO,QAAQ,WACvE,UAAW,OAAO,QAAQ,UAAc,IAAc,GAAO,QAAQ,UACrE,cAAe,OAAO,QAAQ,cAAkB,IAAc,GAAO,QAAQ,aAC9E,CAAC,EAED,OAAO,SAAS,UAAU,KAAK4D,SAAQ,CACxC,EACA,MAAO,CACN,MAAM,OAAS,KACf,GAAI,GAAC,QAAQ,UAAY,CAAC,OAAO,OAAO,UACxC,IAAI,OAAO,OAAO,eAAgB,CACjC,MAAM,iBAAmB,OAAO,IAAI,QAAQ,EAC5C,QAAS,EAAI,EAAG,EAAI,iBAAiB,OAAQ,GAAK,EACjD,OAAO,SAAS,OAAO,iBAAiB,CAAC,CAAC,CAE5C,CAEA,OAAO,SAAS,OAAO,OAAO,IAAI,CAAC,EAAG,CAAE,UAAW,OAAO,OAAO,oBAAqB,CAAC,EAGvF,OAAO,SAAS,OAAO,OAAO,WAAW,CAAC,EAAG,CAAE,WAAY,EAAM,CAAC,EACnE,EACA,SAAU,CACT,MAAM,OAAS,KACf,OAAO,SAAS,UAAU,QAASA,WAAa,CAC/CA,UAAS,WAAW,CACrB,CAAC,EACD,OAAO,SAAS,UAAY,CAAC,CAC9B,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,WACN,OAAQ,CACP,SAAU,GACV,eAAgB,GAChB,qBAAsB,EACvB,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,SAAU,CACT,KAAM,2BAA2B,KAAK,KAAK,MAAM,EACjD,OAAQ,2BAA2B,OAAO,KAAK,MAAM,EACrD,QAAS,2BAA2B,QAAQ,KAAK,MAAM,EACvD,UAAW,CAAC,CACb,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACS,KACR,SAAS,KAAK,CACtB,EACA,SAAU,CACM,KACR,SAAS,QAAQ,CACzB,CACD,CACD,EAEA,MAAM,QAAU,CACf,OAAO,MAAO,CACb,MAAM,OAAS,KACT,CAAE,cAAe,eAAgB,cAAe,EAAI,OAAO,OAC3D,CAAE,gBAAiB,cAAe,EAAI,OAAO,OAAO,QACpD,CACL,KAAM,aACN,GAAI,WACJ,OACA,WAAY,mBACZ,YACA,OAAQ,cACT,EAAI,OAAO,QACX,OAAO,kBAAkB,EACzB,MAAM,YAAc,OAAO,aAAe,EAE1C,IAAI,WACA,OAAO,aAAc,WAAa,QACjC,WAAa,OAAO,aAAa,EAAI,OAAS,MAEnD,IAAI,YACA,aACA,gBACH,YAAc,KAAK,MAAM,cAAgB,CAAC,EAAI,eAAiB,gBAC/D,aAAe,KAAK,MAAM,cAAgB,CAAC,EAAI,eAAiB,iBAEhE,YAAc,eAAiB,eAAiB,GAAK,gBACrD,aAAe,eAAiB,gBAEjC,MAAM,KAAO,KAAK,KAAK,aAAe,GAAK,aAAc,CAAC,EACpD,GAAK,KAAK,KAAK,aAAe,GAAK,YAAa,OAAO,OAAS,CAAC,EACjEC,SAAU,OAAO,WAAW,IAAI,GAAK,IAAM,OAAO,WAAW,CAAC,GAAK,GAEzE,MAAM,OAAO,OAAO,QAAS,CAC5B,KACA,GACA,OAAAA,QACA,WAAY,OAAO,UACpB,CAAC,EAED,SAAS,YAAa,CACrB,OAAO,aAAa,EACpB,OAAO,eAAe,EACtB,OAAO,oBAAoB,EACvB,OAAO,MAAQ,OAAO,OAAO,KAAK,SACrC,OAAO,KAAK,KAAK,CAEnB,CAEA,GAAI,eAAiB,MAAQ,aAAe,IAAM,CAAC,MAAO,CACrD,OAAO,aAAe,oBAAsBA,UAAW,gBAC1D,OAAO,OAAO,IAAI,WAAY,GAAGA,OAAM,IAAI,EAE5C,OAAO,eAAe,EACtB,MACD,CACA,GAAI,OAAO,OAAO,QAAQ,eAAgB,CACzC,OAAO,OAAO,QAAQ,eAAe,KAAK,OAAQ,CACjD,OAAAA,QACA,KACA,GACA,QAAS,UAAqB,CAC7B,MAAM,eAAiB,CAAC,EACxB,QAAS,EAAI,KAAM,GAAK,GAAI,GAAK,EAChC,eAAe,KAAK,OAAO,CAAC,CAAC,EAE9B,OAAO,cACR,GAAE,CACH,CAAC,EACD,WAAW,EACX,MACD,CACA,MAAM,eAAiB,CAAC,EAClB,cAAgB,CAAC,EACvB,GAAI,MACH,OAAO,WAAW,KAAK,IAAI,OAAO,OAAO,UAAU,EAAE,EAAE,OAAO,MAE9D,SAAS,EAAI,aAAc,GAAK,WAAY,GAAK,GAC5C,EAAI,MAAQ,EAAI,KACnB,OAAO,WAAW,KAAK,IAAI,OAAO,OAAO,UAAU,6BAA6B,CAAC,IAAI,EAAE,OAAO,EAIjG,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,GAAK,MAAQ,GAAK,KACjB,OAAO,WAAe,KAAe,MACxC,cAAc,KAAK,CAAC,GAEhB,EAAI,YAAY,cAAc,KAAK,CAAC,EACpC,EAAI,cAAc,eAAe,KAAK,CAAC,IAI9C,cAAc,QAASnH,QAAU,CAChC,OAAO,WAAW,OAAO,YAAY,OAAOA,MAAK,EAAGA,MAAK,CAAC,CAC3D,CAAC,EACD,eAAe,KAAK,CAAC,EAAG,IAAM,EAAI,CAAC,EAAE,QAASA,QAAU,CACvD,OAAO,WAAW,QAAQ,YAAY,OAAOA,MAAK,EAAGA,MAAK,CAAC,CAC5D,CAAC,EACD,OAAO,WAAW,SAAS,eAAe,EAAE,IAAI,WAAY,GAAGmH,OAAM,IAAI,EACzE,WAAW,CACZ,EACA,YAAYV,OAAOzG,OAAO,CACzB,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,QAC7B,GAAI,OAAO,OAAS,OAAO,QAAQ,MAAMA,MAAK,EAC7C,OAAO,OAAO,QAAQ,MAAMA,MAAK,EAElC,MAAM,SAAW,OAAO,YACrB,EAAE,OAAO,YAAY,KAAK,OAAQyG,OAAOzG,MAAK,CAAC,EAC/C,EAAE,eAAe,OAAO,OAAO,UAAU,8BAA8BA,MAAK,KAAKyG,MAAK,QAAQ,EACjG,OAAK,SAAS,KAAK,yBAAyB,GAAG,SAAS,KAAK,0BAA2BzG,MAAK,EACzF,OAAO,QAAO,OAAO,QAAQ,MAAMA,MAAK,EAAI,UACzC,QACR,EACA,YAAY,OAAQ,CACnB,MAAM,OAAS,KACf,GAAI,OAAO,QAAW,UAAY,WAAY,OAC7C,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,OAAO,CAAC,GAAG,OAAO,QAAQ,OAAO,KAAK,OAAO,CAAC,CAAC,OAGpD,OAAO,QAAQ,OAAO,KAAK,MAAM,EAElC,OAAO,QAAQ,OAAO,EAAI,CAC3B,EACA,aAAa,OAAQ,CACpB,MAAM,OAAS,KACT,YAAc,OAAO,YAC3B,IAAI,eAAiB,YAAc,EAC/B,kBAAoB,EAExB,GAAI,MAAM,QAAQ,MAAM,EAAG,CAC1B,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACnC,OAAO,CAAC,GAAG,OAAO,QAAQ,OAAO,QAAQ,OAAO,CAAC,CAAC,EAEvD,eAAiB,YAAc,OAAO,OACtC,kBAAoB,OAAO,MAC5B,MACC,OAAO,QAAQ,OAAO,QAAQ,MAAM,EAErC,GAAI,OAAO,OAAO,QAAQ,MAAO,CAChC,MAAM,MAAQ,OAAO,QAAQ,MACvB,SAAW,CAAC,EAClB,OAAO,KAAK,KAAK,EAAE,QAAS,aAAgB,CAC3C,MAAM,UAAY,MAAM,WAAW,EAC7B,cAAgB,UAAU,KAAK,yBAAyB,EAC1D,eACH,UAAU,KAAK,0BAA2B,SAAS,cAAe,EAAE,EAAI,CAAC,EAE1E,SAAS,SAAS,YAAa,EAAE,EAAI,iBAAiB,EAAI,SAC3D,CAAC,EACD,OAAO,QAAQ,MAAQ,QACxB,CACA,OAAO,QAAQ,OAAO,EAAI,EAC1B,OAAO,QAAQ,eAAgB,CAAC,CACjC,EACA,YAAY,cAAe,CAC1B,MAAM,OAAS,KACf,GAAI,OAAO,cAAkB,KAAe,gBAAkB,KAAM,OACpE,IAAI,YAAc,OAAO,YACzB,GAAI,MAAM,QAAQ,aAAa,EAC9B,QAAS,EAAI,cAAc,OAAS,EAAG,GAAK,EAAG,GAAK,EACnD,OAAO,QAAQ,OAAO,OAAO,cAAc,CAAC,EAAG,CAAC,EAC5C,OAAO,OAAO,QAAQ,OACzB,OAAO,OAAO,QAAQ,MAAM,cAAc,CAAC,CAAC,EAEzC,cAAc,CAAC,EAAI,cAAa,aAAe,GACnD,YAAc,KAAK,IAAI,YAAa,CAAC,OAGtC,OAAO,QAAQ,OAAO,OAAO,cAAe,CAAC,EACzC,OAAO,OAAO,QAAQ,OACzB,OAAO,OAAO,QAAQ,MAAM,aAAa,EAEtC,cAAgB,cAAa,aAAe,GAChD,YAAc,KAAK,IAAI,YAAa,CAAC,EAEtC,OAAO,QAAQ,OAAO,EAAI,EAC1B,OAAO,QAAQ,YAAa,CAAC,CAC9B,EACA,iBAAkB,CACjB,MAAM,OAAS,KACf,OAAO,QAAQ,OAAS,CAAC,EACrB,OAAO,OAAO,QAAQ,QACzB,OAAO,QAAQ,MAAQ,CAAC,GAEzB,OAAO,QAAQ,OAAO,EAAI,EAC1B,OAAO,QAAQ,EAAG,CAAC,CACpB,CACD,EAEA,IAAI,UAAY,CACf,KAAM,UACN,OAAQ,CACP,QAAS,CACR,QAAS,GACT,OAAQ,CAAC,EACT,MAAO,GACP,YAAa,KACb,eAAgB,KAChB,gBAAiB,EACjB,eAAgB,CACjB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,QAAS,CACR,OAAQ,QAAQ,OAAO,KAAK,MAAM,EAClC,YAAa,QAAQ,YAAY,KAAK,MAAM,EAC5C,aAAc,QAAQ,aAAa,KAAK,MAAM,EAC9C,YAAa,QAAQ,YAAY,KAAK,MAAM,EAC5C,gBAAiB,QAAQ,gBAAgB,KAAK,MAAM,EACpD,YAAa,QAAQ,YAAY,KAAK,MAAM,EAC5C,OAAQ,OAAO,OAAO,QAAQ,OAC9B,MAAO,CAAC,CACT,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,QAAQ,QAAS,OACpC,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,SAAS,EACvE,MAAM,gBAAkB,CACvB,oBAAqB,EACtB,EACA,MAAM,OAAO,OAAO,OAAQ,eAAe,EAC3C,MAAM,OAAO,OAAO,eAAgB,eAAe,EAE9C,OAAO,OAAO,cAClB,OAAO,QAAQ,OAAO,CAExB,EACA,cAAe,CACd,MAAM,OAAS,KACV,OAAO,OAAO,QAAQ,SAC3B,OAAO,QAAQ,OAAO,CACvB,CACD,CACD,EAEA,MAAM,SAAW,CAChB,OAAO,MAAO,CACb,MAAM,OAAS,KACT,CAAE,aAAc,GAAI,EAAI,OAC9B,IAAI,EAAI,MACJ,EAAE,gBAAe,EAAI,EAAE,eAC3B,MAAM,GAAK,EAAE,SAAW,EAAE,SACpB,WAAa,OAAO,OAAO,SAAS,WACpC,SAAW,YAAc,KAAO,GAChC,WAAa,YAAc,KAAO,GAClC,YAAc,KAAO,GACrB,aAAe,KAAO,GACtB,UAAY,KAAO,GACnB,YAAc,KAAO,GAK3B,GAHI,CAAC,OAAO,iBAAoB,OAAO,aAAa,GAAK,cAAkB,OAAO,WAAW,GAAK,aAAgB,aAG9G,CAAC,OAAO,iBAAoB,OAAO,aAAa,GAAK,aAAiB,OAAO,WAAW,GAAK,WAAc,UAC9G,MAAO,GAER,GAAI,IAAE,UAAY,EAAE,QAAU,EAAE,SAAW,EAAE,UAGzC,MAAI,eAAiB,IAAI,cAAc,WAAa,IAAI,cAAc,SAAS,YAAY,IAAM,SAAW,IAAI,cAAc,SAAS,YAAY,IAAM,aAG7J,IAAI,OAAO,OAAO,SAAS,iBAAmB,UAAY,YAAc,aAAe,cAAgB,WAAa,aAAc,CACjI,IAAI,OAAS,GAEb,GAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,OAAO,UAAU,EAAE,EAAE,OAAS,GAAK,OAAO,IAAI,QAAQ,IAAI,OAAO,OAAO,gBAAgB,EAAE,EAAE,SAAW,EACxI,OAED,MAAM,YAAc,IAAI,WAClB,aAAe,IAAI,YACnB,aAAe,OAAO,IAAI,OAAO,EACnC,MAAK,aAAa,MAAQ,OAAO,IAAI,CAAC,EAAE,YAC5C,MAAM,YAAc,CACnB,CAAC,aAAa,KAAM,aAAa,GAAG,EACpC,CAAC,aAAa,KAAO,OAAO,MAAO,aAAa,GAAG,EACnD,CAAC,aAAa,KAAM,aAAa,IAAM,OAAO,MAAM,EACpD,CAAC,aAAa,KAAO,OAAO,MAAO,aAAa,IAAM,OAAO,MAAM,CACpE,EACA,QAAS,EAAI,EAAG,EAAI,YAAY,OAAQ,GAAK,EAAG,CAC/C,MAAM,MAAQ,YAAY,CAAC,EAE1B,MAAM,CAAC,GAAK,GAAK,MAAM,CAAC,GAAK,aAC1B,MAAM,CAAC,GAAK,GAAK,MAAM,CAAC,GAAK,eAEhC,OAAS,GAEX,CACA,GAAI,CAAC,OAAQ,MACd,CACI,OAAO,aAAa,IACnB,UAAY,YAAc,aAAe,gBACxC,EAAE,eAAgB,EAAE,eAAe,EAClC,EAAE,YAAc,MAEhB,YAAc,eAAiB,CAAC,MAAU,UAAY,cAAgB,MAAM,OAAO,UAAU,IAC7F,UAAY,cAAgB,CAAC,MAAU,YAAc,eAAiB,MAAM,OAAO,UAAU,KAE/F,UAAY,YAAc,WAAa,eACtC,EAAE,eAAgB,EAAE,eAAe,EAClC,EAAE,YAAc,KAElB,YAAc,cAAa,OAAO,UAAU,GAC5C,UAAY,YAAW,OAAO,UAAU,GAE7C,OAAO,KAAK,WAAY,EAAE,EAE3B,EACA,QAAS,CACR,MAAM,OAAS,KACX,OAAO,SAAS,UACpB,EAAE,GAAG,EAAE,GAAG,UAAW,OAAO,SAAS,MAAM,EAC3C,OAAO,SAAS,QAAU,GAC3B,EACA,SAAU,CACT,MAAM,OAAS,KACV,OAAO,SAAS,UACrB,EAAE,GAAG,EAAE,IAAI,UAAW,OAAO,SAAS,MAAM,EAC5C,OAAO,SAAS,QAAU,GAC3B,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,WACN,OAAQ,CACP,SAAU,CACT,QAAS,GACT,eAAgB,GAChB,WAAY,EACb,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,SAAU,CACT,QAAS,GACT,OAAQ,SAAS,OAAO,KAAK,MAAM,EACnC,QAAS,SAAS,QAAQ,KAAK,MAAM,EACrC,OAAQ,SAAS,OAAO,KAAK,MAAM,CACpC,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,SAAS,SAC1B,OAAO,SAAS,OAAO,CAEzB,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,SAAS,SACnB,OAAO,SAAS,QAAQ,CAE1B,CACD,CACD,EAEA,SAAS,kBAAmB,CAC3B,MAAM,UAAY,UAClB,IAAI,YAAc,aAAa,IAE/B,GAAI,CAAC,YAAa,CACjB,MAAM,QAAU,IAAI,cAAc,KAAK,EACvC,QAAQ,aAAa,UAAW,SAAS,EACzC,YAAc,OAAO,QAAQ,SAAS,GAAM,UAC7C,CAEA,MAAI,CAAC,aACD,IAAI,gBACJ,IAAI,eAAe,YAGnB,IAAI,eAAe,WAAW,GAAI,EAAE,IAAM,KAG7C,YAAc,IAAI,eAAe,WAAW,eAAgB,KAAK,GAG3D,WACR,CACA,MAAM,WAAa,CAClB,eAAgB,MAAM,IAAI,EAC1B,oBAAqB,OACrB,kBAAmB,CAAC,EACpB,OAAQ,CACP,OAAI,IAAI,UAAU,UAAU,QAAQ,SAAS,EAAI,GAAW,iBACrD,iBAAiB,EAAI,QAAU,YACvC,EACA,UAAU,EAAG,CAMZ,IAAI,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EAGT,MAAI,WAAY,IACf,GAAK,EAAE,QAEJ,eAAgB,IACnB,GAAK,CAAC,EAAE,WAAa,KAElB,gBAAiB,IACpB,GAAK,CAAC,EAAE,YAAc,KAEnB,gBAAiB,IACpB,GAAK,CAAC,EAAE,YAAc,KAInB,SAAU,GAAK,EAAE,OAAS,EAAE,kBAC/B,GAAK,GACL,GAAK,GAGN,GAAK,GAAK,GACV,GAAK,GAAK,GAEN,WAAY,IACf,GAAK,EAAE,QAEJ,WAAY,IACf,GAAK,EAAE,QAGJ,EAAE,UAAY,CAAC,KAClB,GAAK,GACL,GAAK,IAGD,IAAM,KAAO,EAAE,YACf,EAAE,YAAc,GACnB,IAAM,GACN,IAAM,KAEN,IAAM,IACN,IAAM,MAKJ,IAAM,CAAC,KACV,GAAM,GAAK,EAAK,GAAK,GAElB,IAAM,CAAC,KACV,GAAM,GAAK,EAAK,GAAK,GAGf,CACN,MAAO,GACP,MAAO,GACP,OAAQ,GACR,OAAQ,EACT,CACD,EACA,kBAAmB,CAClB,MAAM,OAAS,KACf,OAAO,aAAe,EACvB,EACA,kBAAmB,CAClB,MAAM,OAAS,KACf,OAAO,aAAe,EACvB,EACA,OAAO,MAAO,CACb,IAAI,EAAI,MACR,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAEzB,OAAO,OAAO,SACjB,EAAE,eAAe,EAGlB,IAAIsD,QAAS,OAAO,IAIpB,GAHI,OAAO,OAAO,WAAW,eAAiB,cAC7CA,QAAS,EAAE,OAAO,OAAO,WAAW,YAAY,GAE7C,CAAC,OAAO,cAAgB,CAACA,QAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAK,CAAC,OAAO,eAAgB,MAAO,GAExF,EAAE,gBAAe,EAAI,EAAE,eAC3B,IAAI,MAAQ,EACZ,MAAM,UAAY,OAAO,aAAe,GAAK,EAEvCzD,MAAO,WAAW,UAAU,CAAC,EAEnC,GAAI,OAAO,YACV,GAAI,OAAO,aAAa,EACvB,GAAI,KAAK,IAAIA,MAAK,MAAM,EAAI,KAAK,IAAIA,MAAK,MAAM,EAAG,MAAQ,CAACA,MAAK,OAAS,cACrE,OAAO,WACF,KAAK,IAAIA,MAAK,MAAM,EAAI,KAAK,IAAIA,MAAK,MAAM,EAAG,MAAQ,CAACA,MAAK,WACnE,OAAO,QAEZ,MAAQ,KAAK,IAAIA,MAAK,MAAM,EAAI,KAAK,IAAIA,MAAK,MAAM,EAAI,CAACA,MAAK,OAAS,UAAY,CAACA,MAAK,OAG1F,GAAI,QAAU,EAAG,MAAO,GAIxB,GAFI,OAAO,SAAQ,MAAQ,CAAC,OAEvB,OAAO,OAAO,SAoCZ,CAON,MAAM,SAAW,CAAE,KAAM,MAAM,IAAI,EAAG,MAAO,KAAK,IAAI,KAAK,EAAG,UAAW,KAAK,KAAK,KAAK,CAAE,EACpF,CAAE,mBAAoB,EAAI,OAAO,WACjC,kBAAoB,qBACtB,SAAS,KAAO,oBAAoB,KAAO,KAC3C,SAAS,OAAS,oBAAoB,OACtC,SAAS,YAAc,oBAAoB,UAC/C,GAAI,CAAC,kBAAmB,CACvB,OAAO,WAAW,oBAAsB,OAEpC,OAAO,OAAO,MACjB,OAAO,QAAQ,EAEhB,IAAI,SAAW,OAAO,aAAa,EAAK,MAAQ,OAAO,YACvD,MAAM,aAAe,OAAO,YACtB,OAAS,OAAO,MAetB,GAbI,UAAY,OAAO,aAAa,IAAG,SAAW,OAAO,aAAa,GAClE,UAAY,OAAO,aAAa,IAAG,SAAW,OAAO,aAAa,GAEtE,OAAO,cAAc,CAAC,EACtB,OAAO,aAAa,QAAQ,EAC5B,OAAO,eAAe,EACtB,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,GAEtB,CAAC,cAAgB,OAAO,aAAiB,CAAC,QAAU,OAAO,QAC/D,OAAO,oBAAoB,EAGxB,OAAO,OAAO,eAAgB,CAYjC,aAAa,OAAO,WAAW,OAAO,EACtC,OAAO,WAAW,QAAU,OAC5B,MAAM,kBAAoB,OAAO,WAAW,kBACxC,kBAAkB,QAAU,IAC/B,kBAAkB,MAAM,EAEzB,MAAM,UAAY,kBAAkB,OAAS,kBAAkB,kBAAkB,OAAS,CAAC,EAAI,OACzF,WAAa,kBAAkB,CAAC,EAEtC,GADA,kBAAkB,KAAK,QAAQ,EAC3B,YAAc,SAAS,MAAQ,UAAU,OAAS,SAAS,YAAc,UAAU,WAEtF,kBAAkB,OAAO,CAAC,UAChB,kBAAkB,QAAU,IACnC,SAAS,KAAO,WAAW,KAAO,KAClC,WAAW,MAAQ,SAAS,OAAS,GACrC,SAAS,OAAS,EACpB,CAOD,MAAM,gBAAkB,MAAQ,EAAI,GAAM,GAC1C,OAAO,WAAW,oBAAsB,SACxC,kBAAkB,OAAO,CAAC,EAC1B,OAAO,WAAW,QAAU,MAAM,SAAS,IAAM,CAChD,OAAO,eAAe,OAAO,OAAO,MAAO,GAAM,OAAW,eAAe,CAC5E,EAAG,CAAC,CACL,CACK,OAAO,WAAW,UAItB,OAAO,WAAW,QAAU,MAAM,SAAS,IAAM,CAEhD,OAAO,WAAW,oBAAsB,SACxC,kBAAkB,OAAO,CAAC,EAC1B,OAAO,eAAe,OAAO,OAAO,MAAO,GAAM,OAAW,EAAe,CAC5E,EAAG,GAAG,EAAG,EAEX,CAQA,GALK,mBAAmB,OAAO,KAAK,SAAU,CAAC,EAG3C,OAAO,OAAO,UAAY,OAAO,OAAO,8BAA8B,OAAO,SAAS,KAAK,EAE3F,WAAa,OAAO,aAAa,GAAK,WAAa,OAAO,aAAa,EAAG,MAAO,EACtF,CACD,KAvI6B,CAE5B,MAAM,SAAW,CAChB,KAAM,MAAM,IAAI,EAChB,MAAO,KAAK,IAAI,KAAK,EACrB,UAAW,KAAK,KAAK,KAAK,EAC1B,IAAK,KACN,EAGM,kBAAoB,OAAO,WAAW,kBACxC,kBAAkB,QAAU,GAC/B,kBAAkB,MAAM,EAEzB,MAAM,UAAY,kBAAkB,OAAS,kBAAkB,kBAAkB,OAAS,CAAC,EAAI,OAmB/F,GAlBA,kBAAkB,KAAK,QAAQ,EAQ3B,WACC,SAAS,YAAc,UAAU,WAAa,SAAS,MAAQ,UAAU,OAAS,SAAS,KAAO,UAAU,KAAO,MACtH,OAAO,WAAW,cAAc,QAAQ,EAGzC,OAAO,WAAW,cAAc,QAAQ,EAKrC,OAAO,WAAW,cAAc,QAAQ,EAC3C,MAAO,EAET,CAqGA,OAAI,EAAE,eAAgB,EAAE,eAAe,EAClC,EAAE,YAAc,GACd,EACR,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KAIf,OAAI,SAAS,OAAS,GAAK,MAAM,IAAI,EAAI,OAAO,WAAW,eAAiB,GAEpE,IAcJ,SAAS,UAAY,GACnB,CAAC,OAAO,OAAS,OAAO,OAAO,OAAS,CAAC,OAAO,YACpD,OAAO,UAAU,EACjB,OAAO,KAAK,SAAU,SAAS,GAAG,IAExB,CAAC,OAAO,aAAe,OAAO,OAAO,OAAS,CAAC,OAAO,YACjE,OAAO,UAAU,EACjB,OAAO,KAAK,SAAU,SAAS,GAAG,GAGnC,OAAO,WAAW,eAAkB,IAAI,IAAI,KAAK,EAAG,QAAQ,EAErD,GACR,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAC7B,GAAI,SAAS,UAAY,GACxB,GAAI,OAAO,OAAS,CAAC,OAAO,OAAO,MAAQ,OAAO,eAEjD,MAAO,WAEE,OAAO,aAAe,CAAC,OAAO,OAAO,MAAQ,OAAO,eAE9D,MAAO,GAER,MAAO,EACR,EACA,QAAS,CACR,MAAM,OAAS,KACT,MAAQ,WAAW,MAAM,EAC/B,GAAI,OAAO,OAAO,QACjB,cAAO,UAAU,oBAAoB,MAAO,OAAO,WAAW,MAAM,EAC7D,GAGR,GADI,CAAC,OACD,OAAO,WAAW,QAAS,MAAO,GACtC,IAAIyD,QAAS,OAAO,IACpB,OAAI,OAAO,OAAO,WAAW,eAAiB,cAC7CA,QAAS,EAAE,OAAO,OAAO,WAAW,YAAY,GAEjDA,QAAO,GAAG,aAAc,OAAO,WAAW,gBAAgB,EAC1DA,QAAO,GAAG,aAAc,OAAO,WAAW,gBAAgB,EAC1DA,QAAO,GAAG,MAAO,OAAO,WAAW,MAAM,EACzC,OAAO,WAAW,QAAU,GACrB,EACR,EACA,SAAU,CACT,MAAM,OAAS,KACT,MAAQ,WAAW,MAAM,EAC/B,GAAI,OAAO,OAAO,QACjB,cAAO,UAAU,iBAAiB,MAAO,OAAO,WAAW,MAAM,EAC1D,GAGR,GADI,CAAC,OACD,CAAC,OAAO,WAAW,QAAS,MAAO,GACvC,IAAIA,QAAS,OAAO,IACpB,OAAI,OAAO,OAAO,WAAW,eAAiB,cAC7CA,QAAS,EAAE,OAAO,OAAO,WAAW,YAAY,GAEjDA,QAAO,IAAI,MAAO,OAAO,WAAW,MAAM,EAC1C,OAAO,WAAW,QAAU,GACrB,EACR,CACD,EAEA,IAAI,aAAe,CAClB,KAAM,aACN,OAAQ,CACP,WAAY,CACX,QAAS,GACT,eAAgB,GAChB,OAAQ,GACR,YAAa,GACb,YAAa,EACb,aAAc,WACf,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,QAAS,GACT,OAAQ,WAAW,OAAO,KAAK,MAAM,EACrC,QAAS,WAAW,QAAQ,KAAK,MAAM,EACvC,OAAQ,WAAW,OAAO,KAAK,MAAM,EACrC,iBAAkB,WAAW,iBAAiB,KAAK,MAAM,EACzD,iBAAkB,WAAW,iBAAiB,KAAK,MAAM,EACzD,cAAe,WAAW,cAAc,KAAK,MAAM,EACnD,cAAe,WAAW,cAAc,KAAK,MAAM,EACnD,eAAgB,MAAM,IAAI,EAC1B,oBAAqB,OACrB,kBAAmB,CAAC,CACrB,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,CAAC,OAAO,OAAO,WAAW,SAAW,OAAO,OAAO,SACtD,OAAO,WAAW,QAAQ,EAEvB,OAAO,OAAO,WAAW,SAAS,OAAO,WAAW,OAAO,CAChE,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,OAAO,SACjB,OAAO,WAAW,OAAO,EAEtB,OAAO,WAAW,SAAS,OAAO,WAAW,QAAQ,CAC1D,CACD,CACD,EAEA,MAAM,WAAa,CAClB,QAAS,CAER,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAE7B,GAAI,OAAO,OAAO,KAAM,OACxB,KAAM,CAAE,QAAS,OAAQ,EAAI,OAAO,WAEhC,SAAW,QAAQ,OAAS,IAC3B,OAAO,YACV,QAAQ,SAAS,OAAO,aAAa,EAErC,QAAQ,YAAY,OAAO,aAAa,EAEzC,QAAQ,OAAO,OAAO,eAAiB,OAAO,SAAW,WAAa,aAAa,EAAE,OAAO,SAAS,GAElG,SAAW,QAAQ,OAAS,IAC3B,OAAO,MACV,QAAQ,SAAS,OAAO,aAAa,EAErC,QAAQ,YAAY,OAAO,aAAa,EAEzC,QAAQ,OAAO,OAAO,eAAiB,OAAO,SAAW,WAAa,aAAa,EAAE,OAAO,SAAS,EAEvG,EACA,YAAY,EAAG,CACd,MAAM,OAAS,KACf,EAAE,eAAe,EACb,SAAO,aAAe,CAAC,OAAO,OAAO,OACzC,OAAO,UAAU,CAClB,EACA,YAAY,EAAG,CACd,MAAM,OAAS,KACf,EAAE,eAAe,EACb,SAAO,OAAS,CAAC,OAAO,OAAO,OACnC,OAAO,UAAU,CAClB,EACA,MAAO,CACN,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAC7B,GAAI,EAAE,OAAO,QAAU,OAAO,QAAS,OAEvC,IAAI,QACA,QACA,OAAO,SACV,QAAU,EAAE,OAAO,MAAM,EAExB,OAAO,OAAO,mBACX,OAAO,OAAO,QAAW,UACzB,QAAQ,OAAS,GACjB,OAAO,IAAI,KAAK,OAAO,MAAM,EAAE,SAAW,IAE7C,QAAU,OAAO,IAAI,KAAK,OAAO,MAAM,IAGrC,OAAO,SACV,QAAU,EAAE,OAAO,MAAM,EAExB,OAAO,OAAO,mBACX,OAAO,OAAO,QAAW,UACzB,QAAQ,OAAS,GACjB,OAAO,IAAI,KAAK,OAAO,MAAM,EAAE,SAAW,IAE7C,QAAU,OAAO,IAAI,KAAK,OAAO,MAAM,IAIrC,SAAW,QAAQ,OAAS,GAC/B,QAAQ,GAAG,QAAS,OAAO,WAAW,WAAW,EAE9C,SAAW,QAAQ,OAAS,GAC/B,QAAQ,GAAG,QAAS,OAAO,WAAW,WAAW,EAGlD,MAAM,OAAO,OAAO,WAAY,CAC/B,QACA,OAAQ,SAAW,QAAQ,CAAC,EAC5B,QACA,OAAQ,SAAW,QAAQ,CAAC,CAC7B,CAAC,CACF,EACA,SAAU,CACT,MAAM,OAAS,KACT,CAAE,QAAS,OAAQ,EAAI,OAAO,WAChC,SAAW,QAAQ,SACtB,QAAQ,IAAI,QAAS,OAAO,WAAW,WAAW,EAClD,QAAQ,YAAY,OAAO,OAAO,WAAW,aAAa,GAEvD,SAAW,QAAQ,SACtB,QAAQ,IAAI,QAAS,OAAO,WAAW,WAAW,EAClD,QAAQ,YAAY,OAAO,OAAO,WAAW,aAAa,EAE5D,CACD,EAEA,IAAI,aAAe,CAClB,KAAM,aACN,OAAQ,CACP,WAAY,CACX,OAAQ,KACR,OAAQ,KAER,YAAa,GACb,cAAe,yBACf,YAAa,uBACb,UAAW,oBACZ,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,KAAM,WAAW,KAAK,KAAK,MAAM,EACjC,OAAQ,WAAW,OAAO,KAAK,MAAM,EACrC,QAAS,WAAW,QAAQ,KAAK,MAAM,EACvC,YAAa,WAAW,YAAY,KAAK,MAAM,EAC/C,YAAa,WAAW,YAAY,KAAK,MAAM,CAChD,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACf,OAAO,WAAW,KAAK,EACvB,OAAO,WAAW,OAAO,CAC1B,EACA,QAAS,CACO,KACR,WAAW,OAAO,CAC1B,EACA,UAAW,CACK,KACR,WAAW,OAAO,CAC1B,EACA,SAAU,CACM,KACR,WAAW,QAAQ,CAC3B,EACA,MAAM,EAAG,CACR,MAAM,OAAS,KACT,CAAE,QAAS,OAAQ,EAAI,OAAO,WACpC,GACC,OAAO,OAAO,WAAW,aACtB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,GACvB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,EACzB,CACD,IAAI,SACA,QACH,SAAW,QAAQ,SAAS,OAAO,OAAO,WAAW,WAAW,EACtD,UACV,SAAW,QAAQ,SAAS,OAAO,OAAO,WAAW,WAAW,GAE7D,WAAa,GAChB,OAAO,KAAK,iBAAkB,MAAM,EAEpC,OAAO,KAAK,iBAAkB,MAAM,EAEjC,SACH,QAAQ,YAAY,OAAO,OAAO,WAAW,WAAW,EAErD,SACH,QAAQ,YAAY,OAAO,OAAO,WAAW,WAAW,CAE1D,CACD,CACD,CACD,EAEA,MAAM,WAAa,CAClB,QAAS,CAER,MAAM,OAAS,KACT,IAAM,OAAO,IACb,OAAS,OAAO,OAAO,WAC7B,GAAI,CAAC,OAAO,IAAM,CAAC,OAAO,WAAW,IAAM,CAAC,OAAO,WAAW,KAAO,OAAO,WAAW,IAAI,SAAW,EAAG,OACzG,MAAM,aAAe,OAAO,SAAW,OAAO,OAAO,QAAQ,QAAU,OAAO,QAAQ,OAAO,OAAS,OAAO,OAAO,OAC9G,IAAM,OAAO,WAAW,IAE9B,IAAI,QACJ,MAAM,MAAQ,OAAO,OAAO,KAAO,KAAK,MAAM,aAAgB,OAAO,aAAe,GAAM,OAAO,OAAO,cAAc,EAAI,OAAO,SAAS,OAc1I,GAbI,OAAO,OAAO,MACjB,QAAU,KAAK,MAAM,OAAO,YAAc,OAAO,cAAgB,OAAO,OAAO,cAAc,EACzF,QAAU,aAAe,EAAK,OAAO,aAAe,IACvD,SAAY,aAAgB,OAAO,aAAe,GAE/C,QAAU,MAAQ,IAAG,SAAW,OAChC,QAAU,GAAK,OAAO,OAAO,iBAAmB,YAAW,QAAU,MAAQ,UACvE,OAAO,OAAO,UAAc,IACtC,QAAU,OAAO,UAEjB,QAAU,OAAO,aAAe,EAG7B,OAAO,OAAS,WAAa,OAAO,WAAW,SAAW,OAAO,WAAW,QAAQ,OAAS,EAAG,CACnG,MAAM,QAAU,OAAO,WAAW,QAClC,IAAI,WACA,UACA,SAiBJ,GAhBI,OAAO,iBACV,OAAO,WAAW,WAAa,QAAQ,GAAG,CAAC,EAAE,OAAO,aAAa,EAAI,aAAe,aAAa,EAAE,EAAI,EACvG,IAAI,IAAI,OAAO,aAAa,EAAI,QAAU,SAAU,GAAG,OAAO,WAAW,YAAc,OAAO,mBAAqB,EAAE,IAAI,EACrH,OAAO,mBAAqB,GAAK,OAAO,gBAAkB,SAC7D,OAAO,WAAW,oBAAuB,QAAU,OAAO,cACtD,OAAO,WAAW,mBAAsB,OAAO,mBAAqB,EACvE,OAAO,WAAW,mBAAqB,OAAO,mBAAqB,EACzD,OAAO,WAAW,mBAAqB,IACjD,OAAO,WAAW,mBAAqB,IAGzC,WAAa,QAAU,OAAO,WAAW,mBACzC,UAAY,YAAc,KAAK,IAAI,QAAQ,OAAQ,OAAO,kBAAkB,EAAI,GAChF,UAAY,UAAY,YAAc,GAEvC,QAAQ,YAAY,GAAG,OAAO,iBAAiB,IAAI,OAAO,iBAAiB,SAAS,OAAO,iBAAiB,cAAc,OAAO,iBAAiB,SAAS,OAAO,iBAAiB,cAAc,OAAO,iBAAiB,OAAO,EAC5N,IAAI,OAAS,EAChB,QAAQ,KAAK,CAACtD,OAAO,SAAW,CAC/B,MAAM,QAAU,EAAE,MAAM,EAClB,YAAc,QAAQ,MAAM,EAC9B,cAAgB,SACnB,QAAQ,SAAS,OAAO,iBAAiB,EAEtC,OAAO,iBACN,aAAe,YAAc,aAAe,WAC/C,QAAQ,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAEhD,cAAgB,YACnB,QACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,EAE/C,cAAgB,WACnB,QACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,EAGrD,CAAC,MACK,CACN,MAAM,QAAU,QAAQ,GAAG,OAAO,EAC5B,YAAc,QAAQ,MAAM,EAElC,GADA,QAAQ,SAAS,OAAO,iBAAiB,EACrC,OAAO,eAAgB,CAC1B,MAAM,sBAAwB,QAAQ,GAAG,UAAU,EAC7C,qBAAuB,QAAQ,GAAG,SAAS,EACjD,QAAS,EAAI,WAAY,GAAK,UAAW,GAAK,EAC7C,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAE1D,GAAI,OAAO,OAAO,KACjB,GAAI,aAAe,QAAQ,OAAS,OAAO,mBAAoB,CAC9D,QAAS,EAAI,OAAO,mBAAoB,GAAK,EAAG,GAAK,EACpD,QAAQ,GAAG,QAAQ,OAAS,CAAC,EAAE,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAE3E,QAAQ,GAAG,QAAQ,OAAS,OAAO,mBAAqB,CAAC,EAAE,SAAS,GAAG,OAAO,iBAAiB,OAAO,CACvG,MACC,sBACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,EAClD,qBACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,OAGnD,sBACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,EAClD,qBACE,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,OAAO,EAC3C,KAAK,EACL,SAAS,GAAG,OAAO,iBAAiB,YAAY,CAEpD,CACD,CACA,GAAI,OAAO,eAAgB,CAC1B,MAAM,qBAAuB,KAAK,IAAI,QAAQ,OAAQ,OAAO,mBAAqB,CAAC,EAC7E,eAAmB,OAAO,WAAW,WAAa,qBAAyB,OAAO,WAAW,YAAe,EAAM,SAAW,OAAO,WAAW,WAC/I,WAAa,IAAM,QAAU,OACnC,QAAQ,IAAI,OAAO,aAAa,EAAI,WAAa,MAAO,GAAG,aAAa,IAAI,CAC7E,CACD,CAKA,GAJI,OAAO,OAAS,aACnB,IAAI,KAAK,IAAI,OAAO,YAAY,EAAE,EAAE,KAAK,OAAO,sBAAsB,QAAU,CAAC,CAAC,EAClF,IAAI,KAAK,IAAI,OAAO,UAAU,EAAE,EAAE,KAAK,OAAO,oBAAoB,KAAK,CAAC,GAErE,OAAO,OAAS,cAAe,CAClC,IAAI,qBACA,OAAO,oBACV,qBAAuB,OAAO,aAAa,EAAI,WAAa,aAE5D,qBAAuB,OAAO,aAAa,EAAI,aAAe,WAE/D,MAAM,OAAS,QAAU,GAAK,MAC9B,IAAI,OAAS,EACT,OAAS,EACT,uBAAyB,aAC5B,OAAS,MAET,OAAS,MAEV,IAAI,KAAK,IAAI,OAAO,oBAAoB,EAAE,EAAE,UAAU,6BAA6B,MAAM,YAAY,MAAM,GAAG,EAAE,WAAW,OAAO,OAAO,KAAK,CAC/I,CACI,OAAO,OAAS,UAAY,OAAO,cACtC,IAAI,KAAK,OAAO,aAAa,OAAQ,QAAU,EAAG,KAAK,CAAC,EACxD,OAAO,KAAK,mBAAoB,OAAQ,IAAI,CAAC,CAAC,GAE9C,OAAO,KAAK,mBAAoB,OAAQ,IAAI,CAAC,CAAC,EAE/C,IAAI,OAAO,OAAO,eAAiB,OAAO,SAAW,WAAa,aAAa,EAAE,OAAO,SAAS,CAClG,EACA,QAAS,CAER,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAC7B,GAAI,CAAC,OAAO,IAAM,CAAC,OAAO,WAAW,IAAM,CAAC,OAAO,WAAW,KAAO,OAAO,WAAW,IAAI,SAAW,EAAG,OACzG,MAAM,aAAe,OAAO,SAAW,OAAO,OAAO,QAAQ,QAAU,OAAO,QAAQ,OAAO,OAAS,OAAO,OAAO,OAE9G,IAAM,OAAO,WAAW,IAC9B,IAAI,eAAiB,GACrB,GAAI,OAAO,OAAS,UAAW,CAC9B,MAAM,gBAAkB,OAAO,OAAO,KAAO,KAAK,MAAM,aAAgB,OAAO,aAAe,GAAM,OAAO,OAAO,cAAc,EAAI,OAAO,SAAS,OACpJ,QAAS,EAAI,EAAG,EAAI,gBAAiB,GAAK,EACrC,OAAO,aACV,gBAAkB,OAAO,aAAa,KAAK,OAAQ,EAAG,OAAO,WAAW,EAExE,gBAAkB,IAAI,OAAO,aAAa,WAAW,OAAO,WAAW,OAAO,OAAO,aAAa,IAGpG,IAAI,KAAK,cAAc,EACvB,OAAO,WAAW,QAAU,IAAI,KAAK,IAAI,OAAO,WAAW,EAAE,CAC9D,CACI,OAAO,OAAS,aACf,OAAO,eACV,eAAiB,OAAO,eAAe,KAAK,OAAQ,OAAO,aAAc,OAAO,UAAU,EAE1F,eAAiB,gBAAgB,OAAO,YAAY,4BAEjC,OAAO,UAAU,YAErC,IAAI,KAAK,cAAc,GAEpB,OAAO,OAAS,gBACf,OAAO,kBACV,eAAiB,OAAO,kBAAkB,KAAK,OAAQ,OAAO,oBAAoB,EAElF,eAAiB,gBAAgB,OAAO,oBAAoB,YAE7D,IAAI,KAAK,cAAc,GAEpB,OAAO,OAAS,UACnB,OAAO,KAAK,mBAAoB,OAAO,WAAW,IAAI,CAAC,CAAC,CAE1D,EACA,MAAO,CACN,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAC7B,GAAI,CAAC,OAAO,GAAI,OAEhB,IAAI,IAAM,EAAE,OAAO,EAAE,EACjB,IAAI,SAAW,IAGlB,OAAO,OAAO,mBACX,OAAO,OAAO,IAAO,UACrB,IAAI,OAAS,IAEhB,IAAM,OAAO,IAAI,KAAK,OAAO,EAAE,GAG5B,OAAO,OAAS,WAAa,OAAO,WACvC,IAAI,SAAS,OAAO,cAAc,EAGnC,IAAI,SAAS,OAAO,cAAgB,OAAO,IAAI,EAE3C,OAAO,OAAS,WAAa,OAAO,iBACvC,IAAI,SAAS,GAAG,OAAO,aAAa,GAAG,OAAO,IAAI,UAAU,EAC5D,OAAO,WAAW,mBAAqB,EACnC,OAAO,mBAAqB,IAC/B,OAAO,mBAAqB,IAG1B,OAAO,OAAS,eAAiB,OAAO,qBAC3C,IAAI,SAAS,OAAO,wBAAwB,EAGzC,OAAO,WACV,IAAI,GAAG,QAAS,IAAI,OAAO,WAAW,GAAI,SAAiB,EAAG,CAC7D,EAAE,eAAe,EACjB,IAAIA,OAAQ,EAAE,IAAI,EAAE,MAAM,EAAI,OAAO,OAAO,eACxC,OAAO,OAAO,OAAMA,QAAS,OAAO,cACxC,OAAO,QAAQA,MAAK,CACrB,CAAC,EAGF,MAAM,OAAO,OAAO,WAAY,CAC/B,IACA,GAAI,IAAI,CAAC,CACV,CAAC,EACF,EACA,SAAU,CACT,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,WAC7B,GAAI,CAAC,OAAO,IAAM,CAAC,OAAO,WAAW,IAAM,CAAC,OAAO,WAAW,KAAO,OAAO,WAAW,IAAI,SAAW,EAAG,OACzG,MAAM,IAAM,OAAO,WAAW,IAE9B,IAAI,YAAY,OAAO,WAAW,EAClC,IAAI,YAAY,OAAO,cAAgB,OAAO,IAAI,EAC9C,OAAO,WAAW,SAAS,OAAO,WAAW,QAAQ,YAAY,OAAO,iBAAiB,EACzF,OAAO,WACV,IAAI,IAAI,QAAS,IAAI,OAAO,WAAW,EAAE,CAE3C,CACD,EAEA,IAAI,aAAe,CAClB,KAAM,aACN,OAAQ,CACP,WAAY,CACX,GAAI,KACJ,cAAe,OACf,UAAW,GACX,YAAa,GACb,aAAc,KACd,kBAAmB,KACnB,eAAgB,KAChB,aAAc,KACd,oBAAqB,GACrB,KAAM,UACN,eAAgB,GAChB,mBAAoB,EACpB,sBAAwB,QAAW,OACnC,oBAAsB,QAAW,OACjC,YAAa,2BACb,kBAAmB,kCACnB,cAAe,qBACf,aAAc,4BACd,WAAY,0BACZ,YAAa,2BACb,qBAAsB,qCACtB,yBAA0B,yCAC1B,eAAgB,8BAChB,UAAW,wBACZ,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,KAAM,WAAW,KAAK,KAAK,MAAM,EACjC,OAAQ,WAAW,OAAO,KAAK,MAAM,EACrC,OAAQ,WAAW,OAAO,KAAK,MAAM,EACrC,QAAS,WAAW,QAAQ,KAAK,MAAM,EACvC,mBAAoB,CACrB,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACf,OAAO,WAAW,KAAK,EACvB,OAAO,WAAW,OAAO,EACzB,OAAO,WAAW,OAAO,CAC1B,EACA,mBAAoB,CACnB,MAAM,OAAS,MACX,OAAO,OAAO,MAEP,OAAO,OAAO,UAAc,MACtC,OAAO,WAAW,OAAO,CAE3B,EACA,iBAAkB,CACjB,MAAM,OAAS,KACV,OAAO,OAAO,MAClB,OAAO,WAAW,OAAO,CAE3B,EACA,oBAAqB,CACpB,MAAM,OAAS,KACX,OAAO,OAAO,OACjB,OAAO,WAAW,OAAO,EACzB,OAAO,WAAW,OAAO,EAE3B,EACA,sBAAuB,CACtB,MAAM,OAAS,KACV,OAAO,OAAO,OAClB,OAAO,WAAW,OAAO,EACzB,OAAO,WAAW,OAAO,EAE3B,EACA,SAAU,CACM,KACR,WAAW,QAAQ,CAC3B,EACA,MAAM,EAAG,CACR,MAAM,OAAS,KAEd,OAAO,OAAO,WAAW,IACtB,OAAO,OAAO,WAAW,aACzB,OAAO,WAAW,IAAI,OAAS,GAC/B,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,OAAO,OAAO,WAAW,WAAW,IAE5C,OAAO,WAAW,IAAI,SAAS,OAAO,OAAO,WAAW,WAAW,IACnE,GAChB,OAAO,KAAK,iBAAkB,MAAM,EAEpC,OAAO,KAAK,iBAAkB,MAAM,EAErC,OAAO,WAAW,IAAI,YAAY,OAAO,OAAO,WAAW,WAAW,EAExE,CACD,CACD,EAEA,MAAM,UAAY,CACjB,cAAe,CACd,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,UAAU,IAAM,CAAC,OAAO,UAAU,GAAI,OACzD,KAAM,CAAE,UAAW,aAAc,IAAK,QAAS,EAAI,OAC7C,CACL,SAAU,UAAW,QAAS,GAC/B,EAAI,UACE,OAAS,OAAO,OAAO,UAE7B,IAAI,QAAU,SACV,QAAU,UAAY,UAAY,SAClC,KACH,OAAS,CAAC,OACN,OAAS,GACZ,QAAU,SAAW,OACrB,OAAS,GACC,CAAC,OAAS,SAAW,YAC/B,QAAU,UAAY,SAEb,OAAS,GACnB,QAAU,SAAW,OACrB,OAAS,GACC,OAAS,SAAW,YAC9B,QAAU,UAAY,QAEnB,OAAO,aAAa,GACvB,QAAQ,UAAU,eAAe,MAAM,WAAW,EAClD,QAAQ,CAAC,EAAE,MAAM,MAAQ,GAAG,OAAO,OAEnC,QAAQ,UAAU,oBAAoB,MAAM,QAAQ,EACpD,QAAQ,CAAC,EAAE,MAAM,OAAS,GAAG,OAAO,MAEjC,OAAO,OACV,aAAa,OAAO,UAAU,OAAO,EACrC,IAAI,CAAC,EAAE,MAAM,QAAU,EACvB,OAAO,UAAU,QAAU,WAAW,IAAM,CAC3C,IAAI,CAAC,EAAE,MAAM,QAAU,EACvB,IAAI,WAAW,GAAG,CACnB,EAAG,GAAI,EAET,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACX,CAAC,OAAO,OAAO,UAAU,IAAM,CAAC,OAAO,UAAU,IACrD,OAAO,UAAU,QAAQ,WAAW,QAAQ,CAC7C,EACA,YAAa,CACZ,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,UAAU,IAAM,CAAC,OAAO,UAAU,GAAI,OAEzD,KAAM,CAAE,SAAU,EAAI,OAChB,CAAE,QAAS,GAAI,EAAI,UAEzB,QAAQ,CAAC,EAAE,MAAM,MAAQ,GACzB,QAAQ,CAAC,EAAE,MAAM,OAAS,GAC1B,MAAM,UAAY,OAAO,aAAa,EAAI,IAAI,CAAC,EAAE,YAAc,IAAI,CAAC,EAAE,aAEhE,QAAU,OAAO,KAAO,OAAO,YAC/B,YAAc,SAAW,UAAY,OAAO,MAClD,IAAI,SACA,OAAO,OAAO,UAAU,WAAa,OACxC,SAAW,UAAY,QAEvB,SAAW,SAAS,OAAO,OAAO,UAAU,SAAU,EAAE,EAGrD,OAAO,aAAa,EACvB,QAAQ,CAAC,EAAE,MAAM,MAAQ,GAAG,QAAQ,KAEpC,QAAQ,CAAC,EAAE,MAAM,OAAS,GAAG,QAAQ,KAGlC,SAAW,EACd,IAAI,CAAC,EAAE,MAAM,QAAU,OAEvB,IAAI,CAAC,EAAE,MAAM,QAAU,GAEpB,OAAO,OAAO,UAAU,OAC3B,IAAI,CAAC,EAAE,MAAM,QAAU,GAExB,MAAM,OAAO,UAAW,CACvB,UACA,QACA,YACA,QACD,CAAC,EACD,UAAU,IAAI,OAAO,OAAO,eAAiB,OAAO,SAAW,WAAa,aAAa,EAAE,OAAO,OAAO,UAAU,SAAS,CAC7H,EACA,mBAAmB,EAAG,CAErB,OADe,KACJ,aAAa,EACd,EAAE,OAAS,cAAgB,EAAE,OAAS,YAAe,EAAE,cAAc,CAAC,EAAE,QAAU,EAAE,QAErF,EAAE,OAAS,cAAgB,EAAE,OAAS,YAAe,EAAE,cAAc,CAAC,EAAE,QAAU,EAAE,OAC9F,EACA,gBAAgB,EAAG,CAClB,MAAM,OAAS,KACT,CAAE,UAAW,aAAc,GAAI,EAAI,OACnC,CACL,IACA,SACA,UACA,YACD,EAAI,UAEJ,IAAI,cACJ,eAAkB,UAAU,mBAAmB,CAAC,EAAK,IAAI,OAAO,EAAE,OAAO,aAAa,EAAI,OAAS,KAAK,GACpG,eAAiB,KAAO,aAAe,SAAW,KAAO,UAAY,UACzE,cAAgB,KAAK,IAAI,KAAK,IAAI,cAAe,CAAC,EAAG,CAAC,EAClD,MACH,cAAgB,EAAI,eAGrB,MAAM,SAAW,OAAO,aAAa,GAAM,OAAO,aAAa,EAAI,OAAO,aAAa,GAAK,cAE5F,OAAO,eAAe,QAAQ,EAC9B,OAAO,aAAa,QAAQ,EAC5B,OAAO,kBAAkB,EACzB,OAAO,oBAAoB,CAC5B,EACA,YAAY,EAAG,CACd,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,UACvB,CAAE,UAAW,UAAW,EAAI,OAC5B,CAAE,IAAK,OAAQ,EAAI,UACzB,OAAO,UAAU,UAAY,GAC7B,OAAO,UAAU,aAAgB,EAAE,SAAW,QAAQ,CAAC,GAAK,EAAE,SAAW,QACtE,UAAU,mBAAmB,CAAC,EAAI,EAAE,OAAO,sBAAsB,EAAE,OAAO,aAAa,EAAI,OAAS,KAAK,EAAI,KAChH,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAElB,WAAW,WAAW,GAAG,EACzB,QAAQ,WAAW,GAAG,EACtB,UAAU,gBAAgB,CAAC,EAE3B,aAAa,OAAO,UAAU,WAAW,EAEzC,IAAI,WAAW,CAAC,EACZ,OAAO,MACV,IAAI,IAAI,UAAW,CAAC,EAEjB,OAAO,OAAO,SACjB,OAAO,WAAW,IAAI,mBAAoB,MAAM,EAEjD,OAAO,KAAK,qBAAsB,CAAC,CACpC,EACA,WAAW,EAAG,CACb,MAAM,OAAS,KACT,CAAE,UAAW,UAAW,EAAI,OAC5B,CAAE,IAAK,OAAQ,EAAI,UAEpB,OAAO,UAAU,YAClB,EAAE,eAAgB,EAAE,eAAe,EAClC,EAAE,YAAc,GACrB,UAAU,gBAAgB,CAAC,EAC3B,WAAW,WAAW,CAAC,EACvB,IAAI,WAAW,CAAC,EAChB,QAAQ,WAAW,CAAC,EACpB,OAAO,KAAK,oBAAqB,CAAC,EACnC,EACA,UAAU,EAAG,CACZ,MAAM,OAAS,KAET,OAAS,OAAO,OAAO,UACvB,CAAE,UAAW,UAAW,EAAI,OAC5B,CAAE,GAAI,EAAI,UAEX,OAAO,UAAU,YACtB,OAAO,UAAU,UAAY,GACzB,OAAO,OAAO,UACjB,OAAO,WAAW,IAAI,mBAAoB,EAAE,EAC5C,WAAW,WAAW,EAAE,GAErB,OAAO,OACV,aAAa,OAAO,UAAU,WAAW,EACzC,OAAO,UAAU,YAAc,MAAM,SAAS,IAAM,CACnD,IAAI,IAAI,UAAW,CAAC,EACpB,IAAI,WAAW,GAAG,CACnB,EAAG,GAAI,GAER,OAAO,KAAK,mBAAoB,CAAC,EAC7B,OAAO,eACV,OAAO,eAAe,EAExB,EACA,iBAAkB,CACjB,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,UAAU,GAAI,OACjC,KAAM,CACL,UAAW,iBAAkB,mBAAoB,MAClD,EAAI,OAEEsD,QADM,UAAU,IACH,CAAC,EACd,eAAiB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAO,QAAS,EAAM,EAAI,GAC3G,gBAAkB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GAC5G,QAAQ,OAKZA,QAAO,iBAAiB,iBAAiB,MAAO,OAAO,UAAU,YAAa,cAAc,EAC5FA,QAAO,iBAAiB,iBAAiB,KAAM,OAAO,UAAU,WAAY,cAAc,EAC1FA,QAAO,iBAAiB,iBAAiB,IAAK,OAAO,UAAU,UAAW,eAAe,IANzFA,QAAO,iBAAiB,mBAAmB,MAAO,OAAO,UAAU,YAAa,cAAc,EAC9F,IAAI,iBAAiB,mBAAmB,KAAM,OAAO,UAAU,WAAY,cAAc,EACzF,IAAI,iBAAiB,mBAAmB,IAAK,OAAO,UAAU,UAAW,eAAe,EAM1F,EACA,kBAAmB,CAClB,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,UAAU,GAAI,OACjC,KAAM,CACL,UAAW,iBAAkB,mBAAoB,MAClD,EAAI,OAEEA,QADM,UAAU,IACH,CAAC,EACd,eAAiB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAO,QAAS,EAAM,EAAI,GAC3G,gBAAkB,QAAQ,iBAAmB,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GAC5G,QAAQ,OAKZA,QAAO,oBAAoB,iBAAiB,MAAO,OAAO,UAAU,YAAa,cAAc,EAC/FA,QAAO,oBAAoB,iBAAiB,KAAM,OAAO,UAAU,WAAY,cAAc,EAC7FA,QAAO,oBAAoB,iBAAiB,IAAK,OAAO,UAAU,UAAW,eAAe,IAN5FA,QAAO,oBAAoB,mBAAmB,MAAO,OAAO,UAAU,YAAa,cAAc,EACjG,IAAI,oBAAoB,mBAAmB,KAAM,OAAO,UAAU,WAAY,cAAc,EAC5F,IAAI,oBAAoB,mBAAmB,IAAK,OAAO,UAAU,UAAW,eAAe,EAM7F,EACA,MAAO,CACN,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,UAAU,GAAI,OACjC,KAAM,CAAE,UAAW,IAAK,SAAU,EAAI,OAChC,OAAS,OAAO,OAAO,UAE7B,IAAI,IAAM,EAAE,OAAO,EAAE,EACjB,OAAO,OAAO,mBAAqB,OAAO,OAAO,IAAO,UAAY,IAAI,OAAS,GAAK,UAAU,KAAK,OAAO,EAAE,EAAE,SAAW,IAC9H,IAAM,UAAU,KAAK,OAAO,EAAE,GAG/B,IAAI,QAAU,IAAI,KAAK,IAAI,OAAO,OAAO,UAAU,SAAS,EAAE,EAC1D,QAAQ,SAAW,IACtB,QAAU,EAAE,eAAe,OAAO,OAAO,UAAU,SAAS,UAAU,EACtE,IAAI,OAAO,OAAO,GAGnB,MAAM,OAAO,UAAW,CACvB,IACA,GAAI,IAAI,CAAC,EACT,QACA,OAAQ,QAAQ,CAAC,CAClB,CAAC,EAEG,OAAO,WACV,UAAU,gBAAgB,CAE5B,EACA,SAAU,CACM,KACR,UAAU,iBAAiB,CACnC,CACD,EAEA,IAAI,YAAc,CACjB,KAAM,YACN,OAAQ,CACP,UAAW,CACV,GAAI,KACJ,SAAU,OACV,KAAM,GACN,UAAW,GACX,cAAe,GACf,UAAW,wBACX,UAAW,uBACZ,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,UAAW,CACV,KAAM,UAAU,KAAK,KAAK,MAAM,EAChC,QAAS,UAAU,QAAQ,KAAK,MAAM,EACtC,WAAY,UAAU,WAAW,KAAK,MAAM,EAC5C,aAAc,UAAU,aAAa,KAAK,MAAM,EAChD,cAAe,UAAU,cAAc,KAAK,MAAM,EAClD,gBAAiB,UAAU,gBAAgB,KAAK,MAAM,EACtD,iBAAkB,UAAU,iBAAiB,KAAK,MAAM,EACxD,gBAAiB,UAAU,gBAAgB,KAAK,MAAM,EACtD,mBAAoB,UAAU,mBAAmB,KAAK,MAAM,EAC5D,YAAa,UAAU,YAAY,KAAK,MAAM,EAC9C,WAAY,UAAU,WAAW,KAAK,MAAM,EAC5C,UAAW,UAAU,UAAU,KAAK,MAAM,EAC1C,UAAW,GACX,QAAS,KACT,YAAa,IACd,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACf,OAAO,UAAU,KAAK,EACtB,OAAO,UAAU,WAAW,EAC5B,OAAO,UAAU,aAAa,CAC/B,EACA,QAAS,CACO,KACR,UAAU,WAAW,CAC7B,EACA,QAAS,CACO,KACR,UAAU,WAAW,CAC7B,EACA,gBAAiB,CACD,KACR,UAAU,WAAW,CAC7B,EACA,cAAe,CACC,KACR,UAAU,aAAa,CAC/B,EACA,cAAc,SAAU,CACR,KACR,UAAU,cAAc,QAAQ,CACxC,EACA,SAAU,CACM,KACR,UAAU,QAAQ,CAC1B,CACD,CACD,EAEA,MAAM,SAAW,CAChB,aAAa,GAAI,SAAU,CAC1B,MAAM,OAAS,KACT,CAAE,GAAI,EAAI,OAEV,IAAM,EAAE,EAAE,EACV,UAAY,IAAM,GAAK,EAEvB0B,GAAI,IAAI,KAAK,sBAAsB,GAAK,IAC9C,IAAI,EAAI,IAAI,KAAK,wBAAwB,EACrC,EAAI,IAAI,KAAK,wBAAwB,EACzC,MAAM,MAAQ,IAAI,KAAK,4BAA4B,EAC7C,QAAU,IAAI,KAAK,8BAA8B,EAwBvD,GAtBI,GAAK,GACR,EAAI,GAAK,IACT,EAAI,GAAK,KACC,OAAO,aAAa,GAC9B,EAAIA,GACJ,EAAI,MAEJ,EAAIA,GACJ,EAAI,KAGA,EAAG,QAAQ,GAAG,GAAK,EACvB,EAAI,GAAG,SAAS,EAAG,EAAE,EAAI,SAAW,SAAS,IAE7C,EAAI,GAAG,EAAI,SAAW,SAAS,KAE3B,EAAG,QAAQ,GAAG,GAAK,EACvB,EAAI,GAAG,SAAS,EAAG,EAAE,EAAI,QAAQ,IAEjC,EAAI,GAAG,EAAI,QAAQ,KAGhB,OAAO,QAAY,KAAe,UAAY,KAAM,CACvD,MAAM,eAAiB,SAAY,QAAU,IAAM,EAAI,KAAK,IAAI,QAAQ,GACxE,IAAI,CAAC,EAAE,MAAM,QAAU,cACxB,CACA,GAAI,OAAO,MAAU,KAAe,QAAU,KAC7C,IAAI,UAAU,eAAe,CAAC,KAAK,CAAC,QAAQ,MACtC,CACN,MAAM,aAAe,OAAU,MAAQ,IAAM,EAAI,KAAK,IAAI,QAAQ,GAClE,IAAI,UAAU,eAAe,CAAC,KAAK,CAAC,gBAAgB,YAAY,GAAG,CACpE,CACD,EACA,cAAe,CACd,MAAM,OAAS,KACT,CACL,IAAK,OAAQ,SAAU,QACxB,EAAI,OACJ,IAAI,SAAS,0IAA0I,EACrJ,KAAK,CAAChF,OAAO,KAAO,CACpB,OAAO,SAAS,aAAa,GAAI,QAAQ,CAC1C,CAAC,EACF,OAAO,KAAK,CAAC,WAAY,UAAY,CACpC,IAAI,cAAgB,QAAQ,SACxB,OAAO,OAAO,eAAiB,GAAK,OAAO,OAAO,gBAAkB,SACvE,eAAiB,KAAK,KAAK,WAAa,CAAC,EAAK,UAAY,SAAS,OAAS,IAE7E,cAAgB,KAAK,IAAI,KAAK,IAAI,cAAe,EAAE,EAAG,CAAC,EACvD,EAAE,OAAO,EAAE,KAAK,0IAA0I,EACxJ,KAAK,CAACA,OAAO,KAAO,CACpB,OAAO,SAAS,aAAa,GAAI,aAAa,CAC/C,CAAC,CACH,CAAC,CACF,EACA,cAAc,SAAW,KAAK,OAAO,MAAO,CAC3C,MAAM,OAAS,KACT,CAAE,GAAI,EAAI,OAChB,IAAI,KAAK,0IAA0I,EACjJ,KAAK,CAACA,OAAO,aAAe,CAC5B,MAAM,YAAc,EAAE,UAAU,EAChC,IAAI,iBAAmB,SAAS,YAAY,KAAK,+BAA+B,EAAG,EAAE,GAAK,SACtF,WAAa,IAAG,iBAAmB,GACvC,YAAY,WAAW,gBAAgB,CACxC,CAAC,CACH,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,WACN,OAAQ,CACP,SAAU,CACT,QAAS,EACV,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,SAAU,CACT,aAAc,SAAS,aAAa,KAAK,MAAM,EAC/C,aAAc,SAAS,aAAa,KAAK,MAAM,EAC/C,cAAe,SAAS,cAAc,KAAK,MAAM,CAClD,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACV,OAAO,OAAO,SAAS,UAC5B,OAAO,OAAO,oBAAsB,GACpC,OAAO,eAAe,oBAAsB,GAC7C,EACA,MAAO,CACN,MAAM,OAAS,KACV,OAAO,OAAO,SAAS,SAC5B,OAAO,SAAS,aAAa,CAC9B,EACA,cAAe,CACd,MAAM,OAAS,KACV,OAAO,OAAO,SAAS,SAC5B,OAAO,SAAS,aAAa,CAC9B,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACV,OAAO,OAAO,SAAS,SAC5B,OAAO,SAAS,cAAc,QAAQ,CACvC,CACD,CACD,EAEA,MAAM,KAAO,CAEZ,0BAA0B,EAAG,CAC5B,GAAI,EAAE,cAAc,OAAS,EAAG,MAAO,GACvC,MAAM,GAAK,EAAE,cAAc,CAAC,EAAE,MACxB,GAAK,EAAE,cAAc,CAAC,EAAE,MACxB,GAAK,EAAE,cAAc,CAAC,EAAE,MACxB,GAAK,EAAE,cAAc,CAAC,EAAE,MAE9B,OADiB,KAAK,MAAO,GAAK,KAAO,GAAO,GAAK,KAAO,CAAE,CAE/D,EAEA,eAAe,EAAG,CACjB,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KACvB,KAAO,OAAO,KACd,CAAE,OAAQ,EAAI,KAGpB,GAFA,KAAK,mBAAqB,GAC1B,KAAK,iBAAmB,GACpB,CAAC,QAAQ,SAAU,CACtB,GAAI,EAAE,OAAS,cAAiB,EAAE,OAAS,cAAgB,EAAE,cAAc,OAAS,EACnF,OAED,KAAK,mBAAqB,GAC1B,QAAQ,WAAa,KAAK,0BAA0B,CAAC,CACtD,CACA,IAAI,CAAC,QAAQ,UAAY,CAAC,QAAQ,SAAS,UAC1C,QAAQ,SAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,IAAI,OAAO,OAAO,UAAU,EAAE,EACjE,QAAQ,SAAS,SAAW,IAAG,QAAQ,SAAW,OAAO,OAAO,GAAG,OAAO,WAAW,GACzF,QAAQ,SAAW,QAAQ,SAAS,KAAK,gDAAgD,EACzF,QAAQ,aAAe,QAAQ,SAAS,OAAO,IAAI,OAAO,cAAc,EAAE,EAC1E,QAAQ,SAAW,QAAQ,aAAa,KAAK,kBAAkB,GAAK,OAAO,SACvE,QAAQ,aAAa,SAAW,GAAG,CACtC,QAAQ,SAAW,OACnB,MACD,CAEG,QAAQ,UACX,QAAQ,SAAS,WAAW,CAAC,EAE9B,OAAO,KAAK,UAAY,EACzB,EACA,gBAAgB,EAAG,CAClB,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KACvB,KAAO,OAAO,KACd,CAAE,OAAQ,EAAI,KACpB,GAAI,CAAC,QAAQ,SAAU,CACtB,GAAI,EAAE,OAAS,aAAgB,EAAE,OAAS,aAAe,EAAE,cAAc,OAAS,EACjF,OAED,KAAK,iBAAmB,GACxB,QAAQ,UAAY,KAAK,0BAA0B,CAAC,CACrD,CACI,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,IACjD,QAAQ,SACX,KAAK,MAAQ,EAAE,MAAQ,KAAK,aAE5B,KAAK,MAAS,QAAQ,UAAY,QAAQ,WAAc,KAAK,aAE1D,KAAK,MAAQ,QAAQ,WACxB,KAAK,MAAS,QAAQ,SAAW,GAAQ,KAAK,MAAQ,QAAQ,SAAY,IAAM,IAE7E,KAAK,MAAQ,OAAO,WACvB,KAAK,MAAS,OAAO,SAAW,GAAQ,OAAO,SAAW,KAAK,MAAS,IAAM,IAE/E,QAAQ,SAAS,UAAU,4BAA4B,KAAK,KAAK,GAAG,EACrE,EACA,aAAa,EAAG,CACf,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KACvB,KAAO,OAAO,KACd,CAAE,OAAQ,EAAI,KACpB,GAAI,CAAC,QAAQ,SAAU,CAItB,GAHI,CAAC,KAAK,oBAAsB,CAAC,KAAK,kBAGlC,EAAE,OAAS,YAAe,EAAE,OAAS,YAAc,EAAE,eAAe,OAAS,GAAK,CAAC,OAAO,QAC7F,OAED,KAAK,mBAAqB,GAC1B,KAAK,iBAAmB,EACzB,CACI,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,IACrD,KAAK,MAAQ,KAAK,IAAI,KAAK,IAAI,KAAK,MAAO,QAAQ,QAAQ,EAAG,OAAO,QAAQ,EAC7E,QAAQ,SAAS,WAAW,OAAO,OAAO,KAAK,EAAE,UAAU,4BAA4B,KAAK,KAAK,GAAG,EACpG,KAAK,aAAe,KAAK,MACzB,KAAK,UAAY,GACb,KAAK,QAAU,IAAG,QAAQ,SAAW,QAC1C,EACA,aAAa,EAAG,CAEf,MAAM,KADS,KACK,KACd,CAAE,QAAS,KAAM,EAAI,KACvB,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,GACjD,MAAM,YACN,OAAO,SAAW,EAAE,YAAY,EAAE,eAAe,EACrD,MAAM,UAAY,GAClB,MAAM,aAAa,EAAI,EAAE,OAAS,aAAe,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAC9E,MAAM,aAAa,EAAI,EAAE,OAAS,aAAe,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAC/E,EACA,YAAY,EAAG,CACd,MAAM,OAAS,KACT,KAAO,OAAO,KACd,CAAE,QAAS,MAAO,QAAS,EAAI,KAGrC,GAFI,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,IACrD,OAAO,WAAa,GAChB,CAAC,MAAM,WAAa,CAAC,QAAQ,UAAU,OAEtC,MAAM,UACV,MAAM,MAAQ,QAAQ,SAAS,CAAC,EAAE,YAClC,MAAM,OAAS,QAAQ,SAAS,CAAC,EAAE,aACnC,MAAM,OAAS,MAAM,aAAa,QAAQ,aAAa,CAAC,EAAG,GAAG,GAAK,EACnE,MAAM,OAAS,MAAM,aAAa,QAAQ,aAAa,CAAC,EAAG,GAAG,GAAK,EACnE,QAAQ,WAAa,QAAQ,SAAS,CAAC,EAAE,YACzC,QAAQ,YAAc,QAAQ,SAAS,CAAC,EAAE,aAC1C,QAAQ,aAAa,WAAW,CAAC,EAC7B,OAAO,MACV,MAAM,OAAS,CAAC,MAAM,OACtB,MAAM,OAAS,CAAC,MAAM,SAIxB,MAAM,YAAc,MAAM,MAAQ,KAAK,MACjC,aAAe,MAAM,OAAS,KAAK,MAEzC,GAAI,cAAc,QAAQ,YAAc,aAAe,QAAQ,aAU/D,IARA,MAAM,KAAO,KAAK,IAAM,QAAQ,WAAa,EAAM,YAAc,EAAK,CAAC,EACvE,MAAM,KAAO,CAAC,MAAM,KACpB,MAAM,KAAO,KAAK,IAAM,QAAQ,YAAc,EAAM,aAAe,EAAK,CAAC,EACzE,MAAM,KAAO,CAAC,MAAM,KAEpB,MAAM,eAAe,EAAI,EAAE,OAAS,YAAc,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAC/E,MAAM,eAAe,EAAI,EAAE,OAAS,YAAc,EAAE,cAAc,CAAC,EAAE,MAAQ,EAAE,MAE3E,CAAC,MAAM,SAAW,CAAC,KAAK,UAAW,CACtC,GACC,OAAO,aAAa,IAElB,KAAK,MAAM,MAAM,IAAI,IAAM,KAAK,MAAM,MAAM,MAAM,GAAK,MAAM,eAAe,EAAI,MAAM,aAAa,GAChG,KAAK,MAAM,MAAM,IAAI,IAAM,KAAK,MAAM,MAAM,MAAM,GAAK,MAAM,eAAe,EAAI,MAAM,aAAa,GAEvG,CACD,MAAM,UAAY,GAClB,MACD,CAAE,GACD,CAAC,OAAO,aAAa,IAEnB,KAAK,MAAM,MAAM,IAAI,IAAM,KAAK,MAAM,MAAM,MAAM,GAAK,MAAM,eAAe,EAAI,MAAM,aAAa,GAChG,KAAK,MAAM,MAAM,IAAI,IAAM,KAAK,MAAM,MAAM,MAAM,GAAK,MAAM,eAAe,EAAI,MAAM,aAAa,GAEvG,CACD,MAAM,UAAY,GAClB,MACD,CACD,CACI,EAAE,YACL,EAAE,eAAe,EAElB,EAAE,gBAAgB,EAElB,MAAM,QAAU,GAChB,MAAM,SAAY,MAAM,eAAe,EAAI,MAAM,aAAa,EAAK,MAAM,OACzE,MAAM,SAAY,MAAM,eAAe,EAAI,MAAM,aAAa,EAAK,MAAM,OAErE,MAAM,SAAW,MAAM,OAC1B,MAAM,SAAY,MAAM,KAAO,GAAQ,MAAM,KAAO,MAAM,SAAY,IAAM,IAEzE,MAAM,SAAW,MAAM,OAC1B,MAAM,SAAY,MAAM,KAAO,GAAQ,MAAM,SAAW,MAAM,KAAQ,IAAM,IAGzE,MAAM,SAAW,MAAM,OAC1B,MAAM,SAAY,MAAM,KAAO,GAAQ,MAAM,KAAO,MAAM,SAAY,IAAM,IAEzE,MAAM,SAAW,MAAM,OAC1B,MAAM,SAAY,MAAM,KAAO,GAAQ,MAAM,SAAW,MAAM,KAAQ,IAAM,IAIxE,SAAS,gBAAe,SAAS,cAAgB,MAAM,eAAe,GACtE,SAAS,gBAAe,SAAS,cAAgB,MAAM,eAAe,GACtE,SAAS,WAAU,SAAS,SAAW,KAAK,IAAI,GACrD,SAAS,GAAK,MAAM,eAAe,EAAI,SAAS,gBAAkB,KAAK,IAAI,EAAI,SAAS,UAAY,EACpG,SAAS,GAAK,MAAM,eAAe,EAAI,SAAS,gBAAkB,KAAK,IAAI,EAAI,SAAS,UAAY,EAChG,KAAK,IAAI,MAAM,eAAe,EAAI,SAAS,aAAa,EAAI,IAAG,SAAS,EAAI,GAC5E,KAAK,IAAI,MAAM,eAAe,EAAI,SAAS,aAAa,EAAI,IAAG,SAAS,EAAI,GAChF,SAAS,cAAgB,MAAM,eAAe,EAC9C,SAAS,cAAgB,MAAM,eAAe,EAC9C,SAAS,SAAW,KAAK,IAAI,EAE7B,QAAQ,aAAa,UAAU,eAAe,MAAM,QAAQ,OAAO,MAAM,QAAQ,OAAO,EACzF,EACA,YAAa,CAEZ,MAAM,KADS,KACK,KACd,CAAE,QAAS,MAAO,QAAS,EAAI,KACrC,GAAI,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,EAAG,OACxD,GAAI,CAAC,MAAM,WAAa,CAAC,MAAM,QAAS,CACvC,MAAM,UAAY,GAClB,MAAM,QAAU,GAChB,MACD,CACA,MAAM,UAAY,GAClB,MAAM,QAAU,GAChB,IAAI,kBAAoB,IACpB,kBAAoB,IACxB,MAAM,kBAAoB,SAAS,EAAI,kBACjC,aAAe,MAAM,SAAW,kBAChC,kBAAoB,SAAS,EAAI,kBACjC,aAAe,MAAM,SAAW,kBAGlC,SAAS,IAAM,IAAG,kBAAoB,KAAK,KAAK,aAAe,MAAM,UAAY,SAAS,CAAC,GAC3F,SAAS,IAAM,IAAG,kBAAoB,KAAK,KAAK,aAAe,MAAM,UAAY,SAAS,CAAC,GAC/F,MAAM,iBAAmB,KAAK,IAAI,kBAAmB,iBAAiB,EAEtE,MAAM,SAAW,aACjB,MAAM,SAAW,aAGjB,MAAM,YAAc,MAAM,MAAQ,KAAK,MACjC,aAAe,MAAM,OAAS,KAAK,MACzC,MAAM,KAAO,KAAK,IAAM,QAAQ,WAAa,EAAM,YAAc,EAAK,CAAC,EACvE,MAAM,KAAO,CAAC,MAAM,KACpB,MAAM,KAAO,KAAK,IAAM,QAAQ,YAAc,EAAM,aAAe,EAAK,CAAC,EACzE,MAAM,KAAO,CAAC,MAAM,KACpB,MAAM,SAAW,KAAK,IAAI,KAAK,IAAI,MAAM,SAAU,MAAM,IAAI,EAAG,MAAM,IAAI,EAC1E,MAAM,SAAW,KAAK,IAAI,KAAK,IAAI,MAAM,SAAU,MAAM,IAAI,EAAG,MAAM,IAAI,EAE1E,QAAQ,aAAa,WAAW,gBAAgB,EAAE,UAAU,eAAe,MAAM,QAAQ,OAAO,MAAM,QAAQ,OAAO,CACtH,EACA,iBAAkB,CACjB,MAAM,OAAS,KACT,KAAO,OAAO,KACd,CAAE,OAAQ,EAAI,KAChB,QAAQ,UAAY,OAAO,gBAAkB,OAAO,cACnD,QAAQ,UACX,QAAQ,SAAS,UAAU,6BAA6B,EAErD,QAAQ,cACX,QAAQ,aAAa,UAAU,oBAAoB,EAGpD,KAAK,MAAQ,EACb,KAAK,aAAe,EAEpB,QAAQ,SAAW,OACnB,QAAQ,SAAW,OACnB,QAAQ,aAAe,OAEzB,EAEA,OAAO,EAAG,CAET,MAAM,KADS,KACK,KAEhB,KAAK,OAAS,KAAK,QAAU,EAEhC,KAAK,IAAI,EAGT,KAAK,GAAG,CAAC,CAEX,EACA,GAAG,EAAG,CACL,MAAM,OAAS,KAET,KAAO,OAAO,KACd,OAAS,OAAO,OAAO,KACvB,CAAE,QAAS,KAAM,EAAI,KAW3B,GATK,QAAQ,WACR,OAAO,OAAO,SAAW,OAAO,OAAO,QAAQ,SAAW,OAAO,QACpE,QAAQ,SAAW,OAAO,WAAW,SAAS,IAAI,OAAO,OAAO,gBAAgB,EAAE,EAElF,QAAQ,SAAW,OAAO,OAAO,GAAG,OAAO,WAAW,EAEvD,QAAQ,SAAW,QAAQ,SAAS,KAAK,gDAAgD,EACzF,QAAQ,aAAe,QAAQ,SAAS,OAAO,IAAI,OAAO,cAAc,EAAE,GAEvE,CAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,EAAG,OAExD,QAAQ,SAAS,SAAS,GAAG,OAAO,gBAAgB,EAAE,EAEtD,IAAI,OACA,OACA,QACA,QACA,MACA,MACA,WACA,WACA,WACA,YACA,YACA,aACA,cACA,cACA,cACA,cACA,WACA,YAEA,OAAO,MAAM,aAAa,EAAM,KAAe,GAClD,OAAS,EAAE,OAAS,WAAa,EAAE,eAAe,CAAC,EAAE,MAAQ,EAAE,MAC/D,OAAS,EAAE,OAAS,WAAa,EAAE,eAAe,CAAC,EAAE,MAAQ,EAAE,QAE/D,OAAS,MAAM,aAAa,EAC5B,OAAS,MAAM,aAAa,GAG7B,KAAK,MAAQ,QAAQ,aAAa,KAAK,kBAAkB,GAAK,OAAO,SACrE,KAAK,aAAe,QAAQ,aAAa,KAAK,kBAAkB,GAAK,OAAO,SACxE,GACH,WAAa,QAAQ,SAAS,CAAC,EAAE,YACjC,YAAc,QAAQ,SAAS,CAAC,EAAE,aAClC,QAAU,QAAQ,SAAS,OAAO,EAAE,KACpC,QAAU,QAAQ,SAAS,OAAO,EAAE,IACpC,MAAS,QAAW,WAAa,EAAM,OACvC,MAAS,QAAW,YAAc,EAAM,OAExC,WAAa,QAAQ,SAAS,CAAC,EAAE,YACjC,YAAc,QAAQ,SAAS,CAAC,EAAE,aAClC,YAAc,WAAa,KAAK,MAChC,aAAe,YAAc,KAAK,MAElC,cAAgB,KAAK,IAAM,WAAa,EAAM,YAAc,EAAK,CAAC,EAClE,cAAgB,KAAK,IAAM,YAAc,EAAM,aAAe,EAAK,CAAC,EACpE,cAAgB,CAAC,cACjB,cAAgB,CAAC,cAEjB,WAAa,MAAQ,KAAK,MAC1B,WAAa,MAAQ,KAAK,MAEtB,WAAa,gBAChB,WAAa,eAEV,WAAa,gBAChB,WAAa,eAGV,WAAa,gBAChB,WAAa,eAEV,WAAa,gBAChB,WAAa,iBAGd,WAAa,EACb,WAAa,GAEd,QAAQ,aAAa,WAAW,GAAG,EAAE,UAAU,eAAe,UAAU,OAAO,UAAU,OAAO,EAChG,QAAQ,SAAS,WAAW,GAAG,EAAE,UAAU,4BAA4B,KAAK,KAAK,GAAG,CACrF,EACA,KAAM,CACL,MAAM,OAAS,KAET,KAAO,OAAO,KACd,OAAS,OAAO,OAAO,KACvB,CAAE,OAAQ,EAAI,KAEf,QAAQ,WACR,OAAO,OAAO,SAAW,OAAO,OAAO,QAAQ,SAAW,OAAO,QACpE,QAAQ,SAAW,OAAO,WAAW,SAAS,IAAI,OAAO,OAAO,gBAAgB,EAAE,EAElF,QAAQ,SAAW,OAAO,OAAO,GAAG,OAAO,WAAW,EAEvD,QAAQ,SAAW,QAAQ,SAAS,KAAK,gDAAgD,EACzF,QAAQ,aAAe,QAAQ,SAAS,OAAO,IAAI,OAAO,cAAc,EAAE,GAEvE,GAAC,QAAQ,UAAY,QAAQ,SAAS,SAAW,KAErD,KAAK,MAAQ,EACb,KAAK,aAAe,EACpB,QAAQ,aAAa,WAAW,GAAG,EAAE,UAAU,oBAAoB,EACnE,QAAQ,SAAS,WAAW,GAAG,EAAE,UAAU,6BAA6B,EACxE,QAAQ,SAAS,YAAY,GAAG,OAAO,gBAAgB,EAAE,EACzD,QAAQ,SAAW,OACpB,EAEA,QAAS,CACR,MAAM,OAAS,KACT,KAAO,OAAO,KACpB,GAAI,KAAK,QAAS,OAClB,KAAK,QAAU,GAEf,MAAM,gBAAkB,OAAO,YAAY,QAAU,cAAgB,QAAQ,iBAAmB,OAAO,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GAC/J,0BAA4B,QAAQ,gBAAkB,CAAE,QAAS,GAAO,QAAS,EAAK,EAAI,GAE1F,cAAgB,IAAI,OAAO,OAAO,UAAU,GAG9C,QAAQ,UACX,OAAO,WAAW,GAAG,eAAgB,cAAe,KAAK,eAAgB,eAAe,EACxF,OAAO,WAAW,GAAG,gBAAiB,cAAe,KAAK,gBAAiB,eAAe,EAC1F,OAAO,WAAW,GAAG,aAAc,cAAe,KAAK,aAAc,eAAe,GAC1E,OAAO,YAAY,QAAU,eACvC,OAAO,WAAW,GAAG,OAAO,YAAY,MAAO,cAAe,KAAK,eAAgB,eAAe,EAClG,OAAO,WAAW,GAAG,OAAO,YAAY,KAAM,cAAe,KAAK,gBAAiB,yBAAyB,EAC5G,OAAO,WAAW,GAAG,OAAO,YAAY,IAAK,cAAe,KAAK,aAAc,eAAe,EAC1F,OAAO,YAAY,QACtB,OAAO,WAAW,GAAG,OAAO,YAAY,OAAQ,cAAe,KAAK,aAAc,eAAe,GAKnG,OAAO,WAAW,GAAG,OAAO,YAAY,KAAM,IAAI,OAAO,OAAO,KAAK,cAAc,GAAI,KAAK,YAAa,yBAAyB,CACnI,EACA,SAAU,CACT,MAAM,OAAS,KACT,KAAO,OAAO,KACpB,GAAI,CAAC,KAAK,QAAS,OAEnB,OAAO,KAAK,QAAU,GAEtB,MAAM,gBAAkB,OAAO,YAAY,QAAU,cAAgB,QAAQ,iBAAmB,OAAO,OAAO,iBAAmB,CAAE,QAAS,GAAM,QAAS,EAAM,EAAI,GAC/J,0BAA4B,QAAQ,gBAAkB,CAAE,QAAS,GAAO,QAAS,EAAK,EAAI,GAE1F,cAAgB,IAAI,OAAO,OAAO,UAAU,GAG9C,QAAQ,UACX,OAAO,WAAW,IAAI,eAAgB,cAAe,KAAK,eAAgB,eAAe,EACzF,OAAO,WAAW,IAAI,gBAAiB,cAAe,KAAK,gBAAiB,eAAe,EAC3F,OAAO,WAAW,IAAI,aAAc,cAAe,KAAK,aAAc,eAAe,GAC3E,OAAO,YAAY,QAAU,eACvC,OAAO,WAAW,IAAI,OAAO,YAAY,MAAO,cAAe,KAAK,eAAgB,eAAe,EACnG,OAAO,WAAW,IAAI,OAAO,YAAY,KAAM,cAAe,KAAK,gBAAiB,yBAAyB,EAC7G,OAAO,WAAW,IAAI,OAAO,YAAY,IAAK,cAAe,KAAK,aAAc,eAAe,EAC3F,OAAO,YAAY,QACtB,OAAO,WAAW,IAAI,OAAO,YAAY,OAAQ,cAAe,KAAK,aAAc,eAAe,GAKpG,OAAO,WAAW,IAAI,OAAO,YAAY,KAAM,IAAI,OAAO,OAAO,KAAK,cAAc,GAAI,KAAK,YAAa,yBAAyB,CACpI,CACD,EAEA,IAAI,OAAS,CACZ,KAAM,OACN,OAAQ,CACP,KAAM,CACL,QAAS,GACT,SAAU,EACV,SAAU,EACV,OAAQ,GACR,eAAgB,wBAChB,iBAAkB,qBACnB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACT,KAAO,CACZ,QAAS,GACT,MAAO,EACP,aAAc,EACd,UAAW,GACX,QAAS,CACR,SAAU,OACV,WAAY,OACZ,YAAa,OACb,SAAU,OACV,aAAc,OACd,SAAU,CACX,EACA,MAAO,CACN,UAAW,OACX,QAAS,OACT,SAAU,OACV,SAAU,OACV,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,MAAO,OACP,OAAQ,OACR,OAAQ,OACR,OAAQ,OACR,aAAc,CAAC,EACf,eAAgB,CAAC,CAClB,EACA,SAAU,CACT,EAAG,OACH,EAAG,OACH,cAAe,OACf,cAAe,OACf,SAAU,MACX,CACD,EAEC,+HAAgI,MAAM,GAAG,EAAE,QAAS,YAAe,CACnK,KAAK,UAAU,EAAI,KAAK,UAAU,EAAE,KAAK,MAAM,CAChD,CAAC,EACD,MAAM,OAAO,OAAQ,CACpB,IACD,CAAC,EAED,IAAI,MAAQ,EACZ,OAAO,eAAe,OAAO,KAAM,QAAS,CAC3C,KAAM,CACL,OAAO,KACR,EACA,IAAI,MAAO,CACV,GAAI,QAAU,MAAO,CACpB,MAAM,QAAU,OAAO,KAAK,QAAQ,SAAW,OAAO,KAAK,QAAQ,SAAS,CAAC,EAAI,OAC3E,QAAU,OAAO,KAAK,QAAQ,SAAW,OAAO,KAAK,QAAQ,SAAS,CAAC,EAAI,OACjF,OAAO,KAAK,aAAc,MAAO,QAAS,OAAO,CAClD,CACA,MAAQ,KACT,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SACtB,OAAO,KAAK,OAAO,CAErB,EACA,SAAU,CACM,KACR,KAAK,QAAQ,CACrB,EACA,WAAW,EAAG,CACb,MAAM,OAAS,KACV,OAAO,KAAK,SACjB,OAAO,KAAK,aAAa,CAAC,CAC3B,EACA,SAAS,EAAG,CACX,MAAM,OAAS,KACV,OAAO,KAAK,SACjB,OAAO,KAAK,WAAW,CAAC,CACzB,EACA,UAAU,EAAG,CACZ,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SAAW,OAAO,KAAK,SAAW,OAAO,OAAO,KAAK,QAC3E,OAAO,KAAK,OAAO,CAAC,CAEtB,EACA,eAAgB,CACf,MAAM,OAAS,KACX,OAAO,KAAK,SAAW,OAAO,OAAO,KAAK,SAC7C,OAAO,KAAK,gBAAgB,CAE9B,EACA,aAAc,CACb,MAAM,OAAS,KACX,OAAO,KAAK,SAAW,OAAO,OAAO,KAAK,SAAW,OAAO,OAAO,SACtE,OAAO,KAAK,gBAAgB,CAE9B,CACD,CACD,EAEA,MAAM,KAAO,CACZ,YAAYA,OAAO,gBAAkB,GAAM,CAC1C,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KAE7B,GADI,OAAOA,OAAU,KACjB,OAAO,OAAO,SAAW,EAAG,OAGhC,MAAM,SAFY,OAAO,SAAW,OAAO,OAAO,QAAQ,QAGvD,OAAO,WAAW,SAAS,IAAI,OAAO,OAAO,UAAU,6BAA6BA,MAAK,IAAI,EAC7F,OAAO,OAAO,GAAGA,MAAK,EAEzB,IAAI,QAAU,SAAS,KAAK,IAAI,OAAO,YAAY,SAAS,OAAO,WAAW,UAAU,OAAO,YAAY,GAAG,EAC1G,SAAS,SAAS,OAAO,YAAY,GAAK,CAAC,SAAS,SAAS,OAAO,WAAW,GAAK,CAAC,SAAS,SAAS,OAAO,YAAY,IAC7H,QAAU,QAAQ,IAAI,SAAS,CAAC,CAAC,GAE9B,QAAQ,SAAW,GAEvB,QAAQ,KAAK,CAAC,WAAY,UAAY,CACrC,MAAM,SAAW,EAAE,OAAO,EAC1B,SAAS,SAAS,OAAO,YAAY,EAErC,MAAM,WAAa,SAAS,KAAK,iBAAiB,EAC5C,IAAM,SAAS,KAAK,UAAU,EAC9B,OAAS,SAAS,KAAK,aAAa,EACpC,MAAQ,SAAS,KAAK,YAAY,EAClC,WAAa,SAAS,OAAO,SAAS,EAE5C,OAAO,UAAU,SAAS,CAAC,EAAI,KAAO,WAAa,OAAQ,MAAO,GAAO,IAAM,CAC9E,GAAI,SAAO,OAAW,KAAe,SAAW,MAAQ,CAAC,QAAW,QAAU,CAAC,OAAO,QAAW,OAAO,WA+BxG,IA9BI,YACH,SAAS,IAAI,mBAAoB,QAAQ,UAAU,IAAI,EACvD,SAAS,WAAW,iBAAiB,IAEjC,SACH,SAAS,KAAK,SAAU,MAAM,EAC9B,SAAS,WAAW,aAAa,GAE9B,QACH,SAAS,KAAK,QAAS,KAAK,EAC5B,SAAS,WAAW,YAAY,GAE7B,WAAW,QACd,WAAW,SAAS,QAAQ,EAAE,KAAK,CAAC,YAAa,WAAa,CAC7D,MAAM,QAAU,EAAE,QAAQ,EAEtB,QAAQ,KAAK,aAAa,IAC7B,QAAQ,KAAK,SAAU,QAAQ,KAAK,aAAa,CAAC,EAClD,QAAQ,WAAW,aAAa,EAElC,CAAC,EAEE,MACH,SAAS,KAAK,MAAO,GAAG,EACxB,SAAS,WAAW,UAAU,IAIhC,SAAS,SAAS,OAAO,WAAW,EAAE,YAAY,OAAO,YAAY,EACrE,SAAS,KAAK,IAAI,OAAO,cAAc,EAAE,EAAE,OAAO,EAC9C,OAAO,OAAO,MAAQ,gBAAiB,CAC1C,MAAM,mBAAqB,SAAS,KAAK,yBAAyB,EAClE,GAAI,SAAS,SAAS,OAAO,OAAO,mBAAmB,EAAG,CACzD,MAAM,cAAgB,OAAO,WAAW,SAAS,6BAA6B,kBAAkB,WAAW,OAAO,OAAO,mBAAmB,GAAG,EAC/I,OAAO,KAAK,YAAY,cAAc,MAAM,EAAG,EAAK,CACrD,KAAO,CACN,MAAM,gBAAkB,OAAO,WAAW,SAAS,IAAI,OAAO,OAAO,mBAAmB,6BAA6B,kBAAkB,IAAI,EAC3I,OAAO,KAAK,YAAY,gBAAgB,MAAM,EAAG,EAAK,CACvD,CACD,CACA,OAAO,KAAK,iBAAkB,SAAS,CAAC,EAAG,SAAS,CAAC,CAAC,EAClD,OAAO,OAAO,YACjB,OAAO,iBAAiB,EAE1B,CAAC,EAED,OAAO,KAAK,gBAAiB,SAAS,CAAC,EAAG,SAAS,CAAC,CAAC,CACtD,CAAC,CACF,EACA,MAAO,CACN,MAAM,OAAS,KACT,CACL,WAAY,OAAQ,aAAc,OAAQ,WAC3C,EAAI,OACE,UAAY,OAAO,SAAW,aAAa,QAAQ,QACnD,OAAS,aAAa,KAE5B,IAAI,cAAgB,aAAa,cAC7B,gBAAkB,SACrB,cAAgB,GAGjB,SAAS,WAAWA,OAAO,CAC1B,GAAI,WACH,GAAI,WAAW,SAAS,IAAI,aAAa,UAAU,6BAA6BA,MAAK,IAAI,EAAE,OAC1F,MAAO,WAEE,OAAOA,MAAK,EAAG,MAAO,GACjC,MAAO,EACR,CAEA,SAAS,WAAW,QAAS,CAC5B,OAAI,UACI,EAAE,OAAO,EAAE,KAAK,yBAAyB,EAE1C,EAAE,OAAO,EAAE,MAAM,CACzB,CAGA,GADK,OAAO,KAAK,qBAAoB,OAAO,KAAK,mBAAqB,IAClE,OAAO,OAAO,sBACjB,WAAW,SAAS,IAAI,aAAa,iBAAiB,EAAE,EAAE,KAAK,CAAC,QAAS,UAAY,CACpF,MAAMA,OAAQ,UAAY,EAAE,OAAO,EAAE,KAAK,yBAAyB,EAAI,EAAE,OAAO,EAAE,MAAM,EACxF,OAAO,KAAK,YAAYA,MAAK,CAC9B,CAAC,UACS,cAAgB,EAC1B,QAAS,EAAI,YAAa,EAAI,YAAc,cAAe,GAAK,EAC3D,WAAW,CAAC,GAAG,OAAO,KAAK,YAAY,CAAC,OAG7C,OAAO,KAAK,YAAY,WAAW,EAEpC,GAAI,OAAO,aACV,GAAI,cAAgB,GAAM,OAAO,oBAAsB,OAAO,mBAAqB,EAAI,CACtF,MAAM,OAAS,OAAO,mBAChB,IAAM,cACN,SAAW,KAAK,IAAI,YAAc,IAAM,KAAK,IAAI,OAAQ,GAAG,EAAG,OAAO,MAAM,EAC5E,SAAW,KAAK,IAAI,YAAc,KAAK,IAAI,IAAK,MAAM,EAAG,CAAC,EAEhE,QAAS,EAAI,YAAc,cAAe,EAAI,SAAU,GAAK,EACxD,WAAW,CAAC,GAAG,OAAO,KAAK,YAAY,CAAC,EAG7C,QAAS,EAAI,SAAU,EAAI,YAAa,GAAK,EACxC,WAAW,CAAC,GAAG,OAAO,KAAK,YAAY,CAAC,CAE9C,KAAO,CACN,MAAM,UAAY,WAAW,SAAS,IAAI,aAAa,cAAc,EAAE,EACnE,UAAU,OAAS,GAAG,OAAO,KAAK,YAAY,WAAW,SAAS,CAAC,EAEvE,MAAM,UAAY,WAAW,SAAS,IAAI,aAAa,cAAc,EAAE,EACnE,UAAU,OAAS,GAAG,OAAO,KAAK,YAAY,WAAW,SAAS,CAAC,CACxE,CAEF,CACD,EAEA,IAAI,OAAS,CACZ,KAAM,OACN,OAAQ,CACP,KAAM,CACL,QAAS,GACT,aAAc,GACd,mBAAoB,EACpB,sBAAuB,GAEvB,aAAc,cACd,aAAc,sBACd,YAAa,qBACb,eAAgB,uBACjB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,KAAM,CACL,mBAAoB,GACpB,KAAM,KAAK,KAAK,KAAK,MAAM,EAC3B,YAAa,KAAK,YAAY,KAAK,MAAM,CAC1C,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SAAW,OAAO,OAAO,gBAC/C,OAAO,OAAO,cAAgB,GAEhC,EACA,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SAAW,CAAC,OAAO,OAAO,MAAQ,OAAO,OAAO,eAAiB,GACvF,OAAO,KAAK,KAAK,CAEnB,EACA,QAAS,CACR,MAAM,OAAS,KACX,OAAO,OAAO,UAAY,CAAC,OAAO,OAAO,gBAC5C,OAAO,KAAK,KAAK,CAEnB,EACA,QAAS,CACR,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SACtB,OAAO,KAAK,KAAK,CAEnB,EACA,mBAAoB,CACnB,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SACtB,OAAO,KAAK,KAAK,CAEnB,EACA,iBAAkB,CACjB,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,UAClB,OAAO,OAAO,KAAK,uBAA0B,CAAC,OAAO,OAAO,KAAK,uBAAyB,CAAC,OAAO,KAAK,qBAC1G,OAAO,KAAK,KAAK,CAGpB,EACA,eAAgB,CACf,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SAAW,CAAC,OAAO,OAAO,KAAK,uBACrD,OAAO,KAAK,KAAK,CAEnB,EACA,aAAc,CACb,MAAM,OAAS,KACX,OAAO,OAAO,KAAK,SAAW,OAAO,OAAO,SAC/C,OAAO,KAAK,KAAK,CAEnB,CACD,CACD,EAIA,MAAM,WAAa,CAClB,aAAc,SAAsB,EAAG,EAAG,CACzC,MAAM,cAAgB,UAAkB,CACvC,IAAI,SACA,SACA,MACJ,MAAO,CAAC,MAAOI,OAAQ,CAGtB,IAFA,SAAW,GACX,SAAW,MAAM,OACV,SAAW,SAAW,GAC5B,MAAQ,SAAW,UAAY,EAC3B,MAAM,KAAK,GAAKA,KACnB,SAAW,MAEX,SAAW,MAGb,OAAO,QACR,CACD,GAAE,EACF,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,UAAY,EAAE,OAAS,EAI5B,IAAI,GACA,GAEJ,YAAK,YAAc,SAAqB,GAAI,CAC3C,OAAK,IAGL,GAAK,aAAa,KAAK,EAAG,EAAE,EAC5B,GAAK,GAAK,GAIA,GAAK,KAAK,EAAE,EAAE,IAAM,KAAK,EAAE,EAAE,EAAI,KAAK,EAAE,EAAE,IAAO,KAAK,EAAE,EAAE,EAAI,KAAK,EAAE,EAAE,GAAM,KAAK,EAAE,EAAE,GARhF,CASjB,EACO,IACR,EAEA,uBAAuB,EAAG,CACzB,MAAM,OAAS,KACV,OAAO,WAAW,SACtB,OAAO,WAAW,OAAS,OAAO,OAAO,KACtC,IAAI,WAAW,aAAa,OAAO,WAAY,EAAE,UAAU,EAC3D,IAAI,WAAW,aAAa,OAAO,SAAU,EAAE,QAAQ,EAE5D,EACA,aAAa6G,cAAc,aAAc,CACxC,MAAM,OAAS,KACT,WAAa,OAAO,WAAW,QACrC,IAAI,WACA,oBACJ,SAAS,uBAAuB,EAAG,CAKlC,MAAMP,WAAY,OAAO,aAAe,CAAC,OAAO,UAAY,OAAO,UAC/D,OAAO,OAAO,WAAW,KAAO,UACnC,OAAO,WAAW,uBAAuB,CAAC,EAG1C,oBAAsB,CAAC,OAAO,WAAW,OAAO,YAAY,CAACA,UAAS,IAGnE,CAAC,qBAAuB,OAAO,OAAO,WAAW,KAAO,eAC3D,YAAc,EAAE,aAAa,EAAI,EAAE,aAAa,IAAM,OAAO,aAAa,EAAI,OAAO,aAAa,GAClG,qBAAwBA,WAAY,OAAO,aAAa,GAAK,WAAc,EAAE,aAAa,GAGvF,OAAO,OAAO,WAAW,UAC5B,oBAAsB,EAAE,aAAa,EAAI,qBAE1C,EAAE,eAAe,mBAAmB,EACpC,EAAE,aAAa,oBAAqB,MAAM,EAC1C,EAAE,kBAAkB,EACpB,EAAE,oBAAoB,CACvB,CACA,GAAI,MAAM,QAAQ,UAAU,EAC3B,QAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAK,EACvC,WAAW,CAAC,IAAM,cAAgB,WAAW,CAAC,YAAa,QAC9D,uBAAuB,WAAW,CAAC,CAAC,OAG5B,sBAAsB,QAAU,eAAiB,YAC3D,uBAAuB,UAAU,CAEnC,EACA,cAAc,SAAU,aAAc,CACrC,MAAM,OAAS,KACT,WAAa,OAAO,WAAW,QACrC,IAAI,EACJ,SAAS,wBAAwB,EAAG,CACnC,EAAE,cAAc,SAAU,MAAM,EAC5B,WAAa,IAChB,EAAE,gBAAgB,EACd,EAAE,OAAO,YACZ,MAAM,SAAS,IAAM,CACpB,EAAE,iBAAiB,CACpB,CAAC,EAEF,EAAE,WAAW,cAAc,IAAM,CAC3B,aACD,EAAE,OAAO,MAAQ,OAAO,OAAO,WAAW,KAAO,SACpD,EAAE,QAAQ,EAEX,EAAE,cAAc,EACjB,CAAC,EAEH,CACA,GAAI,MAAM,QAAQ,UAAU,EAC3B,IAAK,EAAI,EAAG,EAAI,WAAW,OAAQ,GAAK,EACnC,WAAW,CAAC,IAAM,cAAgB,WAAW,CAAC,YAAa,QAC9D,wBAAwB,WAAW,CAAC,CAAC,OAG7B,sBAAsB,QAAU,eAAiB,YAC3D,wBAAwB,UAAU,CAEpC,CACD,EACA,IAAI,aAAe,CAClB,KAAM,aACN,OAAQ,CACP,WAAY,CACX,QAAS,OACT,QAAS,GACT,GAAI,OACL,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,QAAS,OAAO,OAAO,WAAW,QAClC,uBAAwB,WAAW,uBAAuB,KAAK,MAAM,EACrE,aAAc,WAAW,aAAa,KAAK,MAAM,EACjD,cAAe,WAAW,cAAc,KAAK,MAAM,CACpD,CACD,CAAC,CACF,EACA,GAAI,CACH,QAAS,CACR,MAAM,OAAS,KACV,OAAO,WAAW,SACnB,OAAO,WAAW,SACrB,OAAO,WAAW,OAAS,OAC3B,OAAO,OAAO,WAAW,OAE3B,EACA,QAAS,CACR,MAAM,OAAS,KACV,OAAO,WAAW,SACnB,OAAO,WAAW,SACrB,OAAO,WAAW,OAAS,OAC3B,OAAO,OAAO,WAAW,OAE3B,EACA,gBAAiB,CAChB,MAAM,OAAS,KACV,OAAO,WAAW,SACnB,OAAO,WAAW,SACrB,OAAO,WAAW,OAAS,OAC3B,OAAO,OAAO,WAAW,OAE3B,EACA,aAAaA,WAAW,aAAc,CACrC,MAAM,OAAS,KACV,OAAO,WAAW,SACvB,OAAO,WAAW,aAAaA,WAAW,YAAY,CACvD,EACA,cAAc,SAAU,aAAc,CACrC,MAAM,OAAS,KACV,OAAO,WAAW,SACvB,OAAO,WAAW,cAAc,SAAU,YAAY,CACvD,CACD,CACD,EAEA,MAAM,KAAO,CACZ,gBAAgB,IAAK,CACpB,WAAI,KAAK,WAAY,GAAG,EACjB,GACR,EACA,mBAAmB,IAAK,CACvB,WAAI,KAAK,WAAY,IAAI,EAClB,GACR,EACA,UAAU,IAAK,KAAM,CACpB,WAAI,KAAK,OAAQ,IAAI,EACd,GACR,EACA,WAAW,IAAK,MAAO,CACtB,WAAI,KAAK,aAAc,KAAK,EACrB,GACR,EACA,UAAU,IAAK,CACd,WAAI,KAAK,gBAAiB,EAAI,EACvB,GACR,EACA,SAAS,IAAK,CACb,WAAI,KAAK,gBAAiB,EAAK,EACxB,GACR,EACA,WAAW,EAAG,CACb,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KAC7B,GAAI,EAAE,UAAY,GAAI,OACtB,MAAM,UAAY,EAAE,EAAE,MAAM,EACxB,OAAO,YAAc,OAAO,WAAW,SAAW,UAAU,GAAG,OAAO,WAAW,OAAO,IACrF,OAAO,OAAS,CAAC,OAAO,OAAO,MACpC,OAAO,UAAU,EAEd,OAAO,MACV,OAAO,KAAK,OAAO,OAAO,gBAAgB,EAE1C,OAAO,KAAK,OAAO,OAAO,gBAAgB,GAGxC,OAAO,YAAc,OAAO,WAAW,SAAW,UAAU,GAAG,OAAO,WAAW,OAAO,IACrF,OAAO,aAAe,CAAC,OAAO,OAAO,MAC1C,OAAO,UAAU,EAEd,OAAO,YACV,OAAO,KAAK,OAAO,OAAO,iBAAiB,EAE3C,OAAO,KAAK,OAAO,OAAO,gBAAgB,GAGxC,OAAO,YAAc,UAAU,GAAG,IAAI,OAAO,OAAO,WAAW,WAAW,EAAE,GAC/E,UAAU,CAAC,EAAE,MAAM,CAErB,EACA,OAAO,QAAS,CAEf,MAAM,aADS,KACa,KAAK,WAC7B,aAAa,SAAW,IAC5B,aAAa,KAAK,EAAE,EACpB,aAAa,KAAK,OAAO,EAC1B,EACA,kBAAmB,CAClB,MAAM,OAAS,KAEf,GAAI,OAAO,OAAO,MAAQ,CAAC,OAAO,WAAY,OAC9C,KAAM,CAAE,QAAS,OAAQ,EAAI,OAAO,WAEhC,SAAW,QAAQ,OAAS,IAC3B,OAAO,aACV,OAAO,KAAK,UAAU,OAAO,EAC7B,OAAO,KAAK,mBAAmB,OAAO,IAEtC,OAAO,KAAK,SAAS,OAAO,EAC5B,OAAO,KAAK,gBAAgB,OAAO,IAGjC,SAAW,QAAQ,OAAS,IAC3B,OAAO,OACV,OAAO,KAAK,UAAU,OAAO,EAC7B,OAAO,KAAK,mBAAmB,OAAO,IAEtC,OAAO,KAAK,SAAS,OAAO,EAC5B,OAAO,KAAK,gBAAgB,OAAO,GAGtC,EACA,kBAAmB,CAClB,MAAM,OAAS,KACT,OAAS,OAAO,OAAO,KACzB,OAAO,YAAc,OAAO,OAAO,WAAW,WAAa,OAAO,WAAW,SAAW,OAAO,WAAW,QAAQ,QACrH,OAAO,WAAW,QAAQ,KAAK,CAAC,YAAa,WAAa,CACzD,MAAM,UAAY,EAAE,QAAQ,EAC5B,OAAO,KAAK,gBAAgB,SAAS,EACrC,OAAO,KAAK,UAAU,UAAW,QAAQ,EACzC,OAAO,KAAK,WAAW,UAAW,OAAO,wBAAwB,QAAQ,gBAAiB,UAAU,MAAM,EAAI,CAAC,CAAC,CACjH,CAAC,CAEH,EACA,MAAO,CACN,MAAM,OAAS,KAEf,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAGxC,MAAM,OAAS,OAAO,OAAO,KAC7B,IAAI,QACA,QACA,OAAO,YAAc,OAAO,WAAW,UAC1C,QAAU,OAAO,WAAW,SAEzB,OAAO,YAAc,OAAO,WAAW,UAC1C,QAAU,OAAO,WAAW,SAEzB,UACH,OAAO,KAAK,gBAAgB,OAAO,EACnC,OAAO,KAAK,UAAU,QAAS,QAAQ,EACvC,OAAO,KAAK,WAAW,QAAS,OAAO,gBAAgB,EACvD,QAAQ,GAAG,UAAW,OAAO,KAAK,UAAU,GAEzC,UACH,OAAO,KAAK,gBAAgB,OAAO,EACnC,OAAO,KAAK,UAAU,QAAS,QAAQ,EACvC,OAAO,KAAK,WAAW,QAAS,OAAO,gBAAgB,EACvD,QAAQ,GAAG,UAAW,OAAO,KAAK,UAAU,GAIzC,OAAO,YAAc,OAAO,OAAO,WAAW,WAAa,OAAO,WAAW,SAAW,OAAO,WAAW,QAAQ,QACrH,OAAO,WAAW,IAAI,GAAG,UAAW,IAAI,OAAO,OAAO,WAAW,WAAW,GAAI,OAAO,KAAK,UAAU,CAExG,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,KAAK,YAAc,OAAO,KAAK,WAAW,OAAS,GAAG,OAAO,KAAK,WAAW,OAAO,EAE/F,IAAI,QACA,QACA,OAAO,YAAc,OAAO,WAAW,UAC1C,QAAU,OAAO,WAAW,SAEzB,OAAO,YAAc,OAAO,WAAW,UAC1C,QAAU,OAAO,WAAW,SAEzB,SACH,QAAQ,IAAI,UAAW,OAAO,KAAK,UAAU,EAE1C,SACH,QAAQ,IAAI,UAAW,OAAO,KAAK,UAAU,EAI1C,OAAO,YAAc,OAAO,OAAO,WAAW,WAAa,OAAO,WAAW,SAAW,OAAO,WAAW,QAAQ,QACrH,OAAO,WAAW,IAAI,IAAI,UAAW,IAAI,OAAO,OAAO,WAAW,WAAW,GAAI,OAAO,KAAK,UAAU,CAEzG,CACD,EACA,IAAI,KAAO,CACV,KAAM,OACN,OAAQ,CACP,KAAM,CACL,QAAS,GACT,kBAAmB,sBACnB,iBAAkB,iBAClB,iBAAkB,aAClB,kBAAmB,0BACnB,iBAAkB,yBAClB,wBAAyB,uBAC1B,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,KAAM,CACL,WAAY,EAAE,gBAAgB,OAAO,OAAO,KAAK,iBAAiB,oDAAoD,CACvH,CACD,CAAC,EACD,OAAO,KAAK,IAAI,EAAE,QAAS,YAAe,CACzC,OAAO,KAAK,UAAU,EAAI,KAAK,UAAU,EAAE,KAAK,MAAM,CACvD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACV,OAAO,OAAO,KAAK,UACxB,OAAO,KAAK,KAAK,EACjB,OAAO,KAAK,iBAAiB,EAC9B,EACA,QAAS,CACR,MAAM,OAAS,KACV,OAAO,OAAO,KAAK,SACxB,OAAO,KAAK,iBAAiB,CAC9B,EACA,UAAW,CACV,MAAM,OAAS,KACV,OAAO,OAAO,KAAK,SACxB,OAAO,KAAK,iBAAiB,CAC9B,EACA,kBAAmB,CAClB,MAAM,OAAS,KACV,OAAO,OAAO,KAAK,SACxB,OAAO,KAAK,iBAAiB,CAC9B,EACA,SAAU,CACT,MAAM,OAAS,KACV,OAAO,OAAO,KAAK,SACxB,OAAO,KAAK,QAAQ,CACrB,CACD,CACD,EAEA,MAAM,QAAU,CACf,MAAO,CACN,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,QAAS,OAC5B,GAAI,CAAC,IAAI,SAAW,CAAC,IAAI,QAAQ,UAAW,CAC3C,OAAO,OAAO,QAAQ,QAAU,GAChC,OAAO,OAAO,eAAe,QAAU,GACvC,MACD,CACA,MAAMU,SAAU,OAAO,QACvBA,SAAQ,YAAc,GACtBA,SAAQ,MAAQ,QAAQ,cAAc,EAClC,GAACA,SAAQ,MAAM,KAAO,CAACA,SAAQ,MAAM,SACzCA,SAAQ,cAAc,EAAGA,SAAQ,MAAM,MAAO,OAAO,OAAO,kBAAkB,EACzE,OAAO,OAAO,QAAQ,cAC1B,IAAI,iBAAiB,WAAY,OAAO,QAAQ,kBAAkB,EAEpE,EACA,SAAU,CACT,MAAM,OAAS,KACV,OAAO,OAAO,QAAQ,cAC1B,IAAI,oBAAoB,WAAY,OAAO,QAAQ,kBAAkB,CAEvE,EACA,oBAAqB,CACpB,MAAM,OAAS,KACf,OAAO,QAAQ,MAAQ,QAAQ,cAAc,EAC7C,OAAO,QAAQ,cAAc,OAAO,OAAO,MAAO,OAAO,QAAQ,MAAM,MAAO,EAAK,CACpF,EACA,eAAgB,CACf,MAAM,UAAY,IAAI,SAAS,SAAS,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,OAAQ,MAAS,OAAS,EAAE,EAClF,MAAQ,UAAU,OAClB,IAAM,UAAU,MAAQ,CAAC,EACzB,MAAQ,UAAU,MAAQ,CAAC,EACjC,MAAO,CAAE,IAAK,KAAM,CACrB,EACA,WAAW,IAAKpH,OAAO,CACtB,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,QAAQ,aAAe,CAAC,OAAO,OAAO,QAAQ,QAAS,OACnE,MAAMyG,OAAQ,OAAO,OAAO,GAAGzG,MAAK,EACpC,IAAI,MAAQ,QAAQ,QAAQyG,OAAM,KAAK,cAAc,CAAC,EACjD,IAAI,SAAS,SAAS,SAAS,GAAG,IACtC,MAAQ,GAAG,GAAG,IAAI,KAAK,IAExB,MAAM,aAAe,IAAI,QAAQ,MAC7B,cAAgB,aAAa,QAAU,QAGvC,OAAO,OAAO,QAAQ,aACzB,IAAI,QAAQ,aAAa,CAAE,KAAM,EAAG,KAAM,KAAK,EAE/C,IAAI,QAAQ,UAAU,CAAE,KAAM,EAAG,KAAM,KAAK,EAE9C,EACA,QAAQ,KAAM,CACb,OAAO,KAAK,SAAS,EACnB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,WAAY,EAAE,EACtB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,MAAO,EAAE,EACjB,QAAQ,MAAO,EAAE,CACpB,EACA,cAAc,MAAO,MAAO,aAAc,CACzC,MAAM,OAAS,KACf,GAAI,MACH,QAAS,EAAI,EAAG,OAAS,OAAO,OAAO,OAAQ,EAAI,OAAQ,GAAK,EAAG,CAClE,MAAMA,OAAQ,OAAO,OAAO,GAAG,CAAC,EAEhC,GADqB,QAAQ,QAAQA,OAAM,KAAK,cAAc,CAAC,IAC1C,OAAS,CAACA,OAAM,SAAS,OAAO,OAAO,mBAAmB,EAAG,CACjF,MAAMzG,OAAQyG,OAAM,MAAM,EAC1B,OAAO,QAAQzG,OAAO,MAAO,YAAY,CAC1C,CACD,MAEA,OAAO,QAAQ,EAAG,MAAO,YAAY,CAEvC,CACD,EAEA,IAAI,UAAY,CACf,KAAM,UACN,OAAQ,CACP,QAAS,CACR,QAAS,GACT,aAAc,GACd,IAAK,QACN,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,QAAS,CACR,KAAM,QAAQ,KAAK,KAAK,MAAM,EAC9B,WAAY,QAAQ,WAAW,KAAK,MAAM,EAC1C,mBAAoB,QAAQ,mBAAmB,KAAK,MAAM,EAC1D,cAAe,QAAQ,cAAc,KAAK,MAAM,EAChD,QAAS,QAAQ,QAAQ,KAAK,MAAM,CACrC,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,QAAQ,SACzB,OAAO,QAAQ,KAAK,CAEtB,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,OAAO,QAAQ,SACzB,OAAO,QAAQ,QAAQ,CAEzB,EACA,eAAgB,CACf,MAAM,OAAS,KACX,OAAO,QAAQ,aAClB,OAAO,QAAQ,WAAW,OAAO,OAAO,QAAQ,IAAK,OAAO,WAAW,CAEzE,EACA,aAAc,CACb,MAAM,OAAS,KACX,OAAO,QAAQ,aAAe,OAAO,OAAO,SAC/C,OAAO,QAAQ,WAAW,OAAO,OAAO,QAAQ,IAAK,OAAO,WAAW,CAEzE,CACD,CACD,EAEA,MAAM,eAAiB,CACtB,aAAc,CACb,MAAM,OAAS,KACf,OAAO,KAAK,YAAY,EACxB,MAAM,QAAU,IAAI,SAAS,KAAK,QAAQ,IAAK,EAAE,EAC3C,gBAAkB,OAAO,OAAO,GAAG,OAAO,WAAW,EAAE,KAAK,WAAW,EAC7E,GAAI,UAAY,gBAAiB,CAChC,MAAM,SAAW,OAAO,WAAW,SAAS,IAAI,OAAO,OAAO,UAAU,eAAe,OAAO,IAAI,EAAE,MAAM,EAC1G,GAAI,OAAO,SAAa,IAAa,OACrC,OAAO,QAAQ,QAAQ,CACxB,CACD,EACA,SAAU,CACT,MAAM,OAAS,KACf,GAAI,GAAC,OAAO,eAAe,aAAe,CAAC,OAAO,OAAO,eAAe,SACxE,GAAI,OAAO,OAAO,eAAe,cAAgB,IAAI,SAAW,IAAI,QAAQ,aAC3E,IAAI,QAAQ,aAAa,KAAM,KAAO,IAAI,OAAO,OAAO,GAAG,OAAO,WAAW,EAAE,KAAK,WAAW,CAAC,IAAM,EAAG,EACzG,OAAO,KAAK,SAAS,MACf,CACN,MAAMyG,OAAQ,OAAO,OAAO,GAAG,OAAO,WAAW,EAC3ClE,MAAOkE,OAAM,KAAK,WAAW,GAAKA,OAAM,KAAK,cAAc,EACjE,IAAI,SAAS,KAAOlE,OAAQ,GAC5B,OAAO,KAAK,SAAS,CACtB,CACD,EACA,MAAO,CACN,MAAM,OAAS,KACf,GAAI,CAAC,OAAO,OAAO,eAAe,SAAY,OAAO,OAAO,SAAW,OAAO,OAAO,QAAQ,QAAU,OACvG,OAAO,eAAe,YAAc,GACpC,MAAMA,MAAO,IAAI,SAAS,KAAK,QAAQ,IAAK,EAAE,EAC9C,GAAIA,MAEH,QAAS,EAAI,EAAG,OAAS,OAAO,OAAO,OAAQ,EAAI,OAAQ,GAAK,EAAG,CAClE,MAAMkE,OAAQ,OAAO,OAAO,GAAG,CAAC,EAEhC,IADkBA,OAAM,KAAK,WAAW,GAAKA,OAAM,KAAK,cAAc,KACpDlE,OAAQ,CAACkE,OAAM,SAAS,OAAO,OAAO,mBAAmB,EAAG,CAC7E,MAAMzG,OAAQyG,OAAM,MAAM,EAC1B,OAAO,QAAQzG,OAAO,EAAO,OAAO,OAAO,mBAAoB,EAAI,CACpE,CACD,CAEG,OAAO,OAAO,eAAe,YAChC,EAAE,GAAG,EAAE,GAAG,aAAc,OAAO,eAAe,WAAW,CAE3D,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,OAAO,eAAe,YAChC,EAAE,GAAG,EAAE,IAAI,aAAc,OAAO,eAAe,WAAW,CAE5D,CACD,EACA,IAAI,iBAAmB,CACtB,KAAM,kBACN,OAAQ,CACP,eAAgB,CACf,QAAS,GACT,aAAc,GACd,WAAY,EACb,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,eAAgB,CACf,YAAa,GACb,KAAM,eAAe,KAAK,KAAK,MAAM,EACrC,QAAS,eAAe,QAAQ,KAAK,MAAM,EAC3C,QAAS,eAAe,QAAQ,KAAK,MAAM,EAC3C,YAAa,eAAe,YAAY,KAAK,MAAM,CACpD,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,eAAe,SAChC,OAAO,eAAe,KAAK,CAE7B,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,OAAO,eAAe,SAChC,OAAO,eAAe,QAAQ,CAEhC,EACA,eAAgB,CACf,MAAM,OAAS,KACX,OAAO,eAAe,aACzB,OAAO,eAAe,QAAQ,CAEhC,EACA,aAAc,CACb,MAAM,OAAS,KACX,OAAO,eAAe,aAAe,OAAO,OAAO,SACtD,OAAO,eAAe,QAAQ,CAEhC,CACD,CACD,EAIA,MAAM,SAAW,CAChB,KAAM,CACL,MAAM,OAAS,KACT,eAAiB,OAAO,OAAO,GAAG,OAAO,WAAW,EAC1D,IAAI,MAAQ,OAAO,OAAO,SAAS,MAC/B,eAAe,KAAK,sBAAsB,IAC7C,MAAQ,eAAe,KAAK,sBAAsB,GAAK,OAAO,OAAO,SAAS,OAE/E,aAAa,OAAO,SAAS,OAAO,EACpC,OAAO,SAAS,QAAU,MAAM,SAAS,IAAM,CAC1C,OAAO,OAAO,SAAS,iBACtB,OAAO,OAAO,MACjB,OAAO,QAAQ,EACf,OAAO,UAAU,OAAO,OAAO,MAAO,GAAM,EAAI,EAChD,OAAO,KAAK,UAAU,GACX,OAAO,YAGP,OAAO,OAAO,SAAS,gBAIlC,OAAO,SAAS,KAAK,GAHrB,OAAO,QAAQ,OAAO,OAAO,OAAS,EAAG,OAAO,OAAO,MAAO,GAAM,EAAI,EACxE,OAAO,KAAK,UAAU,IAJtB,OAAO,UAAU,OAAO,OAAO,MAAO,GAAM,EAAI,EAChD,OAAO,KAAK,UAAU,GAOb,OAAO,OAAO,MACxB,OAAO,QAAQ,EACf,OAAO,UAAU,OAAO,OAAO,MAAO,GAAM,EAAI,EAChD,OAAO,KAAK,UAAU,GACX,OAAO,MAGP,OAAO,OAAO,SAAS,gBAIlC,OAAO,SAAS,KAAK,GAHrB,OAAO,QAAQ,EAAG,OAAO,OAAO,MAAO,GAAM,EAAI,EACjD,OAAO,KAAK,UAAU,IAJtB,OAAO,UAAU,OAAO,OAAO,MAAO,GAAM,EAAI,EAChD,OAAO,KAAK,UAAU,GAOnB,OAAO,OAAO,SAAW,OAAO,SAAS,SAAS,OAAO,SAAS,IAAI,CAC3E,EAAG,KAAK,CACT,EACA,OAAQ,CACP,MAAM,OAAS,KAEf,OADI,OAAO,OAAO,SAAS,QAAY,KACnC,OAAO,SAAS,QAAgB,IACpC,OAAO,SAAS,QAAU,GAC1B,OAAO,KAAK,eAAe,EAC3B,OAAO,SAAS,IAAI,EACb,GACR,EACA,MAAO,CACN,MAAM,OAAS,KAEf,MADI,CAAC,OAAO,SAAS,SACjB,OAAO,OAAO,SAAS,QAAY,IAAoB,IAEvD,OAAO,SAAS,UACnB,aAAa,OAAO,SAAS,OAAO,EACpC,OAAO,SAAS,QAAU,QAE3B,OAAO,SAAS,QAAU,GAC1B,OAAO,KAAK,cAAc,EACnB,GACR,EACA,MAAM,MAAO,CACZ,MAAM,OAAS,KACV,OAAO,SAAS,UACjB,OAAO,SAAS,SAChB,OAAO,SAAS,SAAS,aAAa,OAAO,SAAS,OAAO,EACjE,OAAO,SAAS,OAAS,GACrB,QAAU,GAAK,CAAC,OAAO,OAAO,SAAS,mBAC1C,OAAO,SAAS,OAAS,GACzB,OAAO,SAAS,IAAI,IAEpB,OAAO,WAAW,CAAC,EAAE,iBAAiB,gBAAiB,OAAO,SAAS,eAAe,EACtF,OAAO,WAAW,CAAC,EAAE,iBAAiB,sBAAuB,OAAO,SAAS,eAAe,IAE9F,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,WACN,OAAQ,CACP,SAAU,CACT,QAAS,GACT,MAAO,IACP,kBAAmB,GACnB,qBAAsB,GACtB,gBAAiB,GACjB,iBAAkB,EACnB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,SAAU,CACT,QAAS,GACT,OAAQ,GACR,IAAK,SAAS,IAAI,KAAK,MAAM,EAC7B,MAAO,SAAS,MAAM,KAAK,MAAM,EACjC,KAAM,SAAS,KAAK,KAAK,MAAM,EAC/B,MAAO,SAAS,MAAM,KAAK,MAAM,EACjC,oBAAqB,CAChB,SAAS,kBAAoB,UAAY,OAAO,SAAS,SAC5D,OAAO,SAAS,MAAM,EAEnB,SAAS,kBAAoB,WAAa,OAAO,SAAS,SAC7D,OAAO,SAAS,IAAI,EACpB,OAAO,SAAS,OAAS,GAE3B,EACA,gBAAgB,EAAG,CACd,CAAC,QAAU,OAAO,WAAa,CAAC,OAAO,YACvC,EAAE,SAAW,OACjB,OAAO,WAAW,CAAC,EAAE,oBAAoB,gBAAiB,OAAO,SAAS,eAAe,EACzF,OAAO,WAAW,CAAC,EAAE,oBAAoB,sBAAuB,OAAO,SAAS,eAAe,EAC/F,OAAO,SAAS,OAAS,GACpB,OAAO,SAAS,QAGpB,OAAO,SAAS,IAAI,EAFpB,OAAO,SAAS,KAAK,EAIvB,CACD,CACD,CAAC,CACF,EACA,GAAI,CACH,MAAO,CACN,MAAM,OAAS,KACX,OAAO,OAAO,SAAS,UAC1B,OAAO,SAAS,MAAM,EACtB,SAAS,iBAAiB,mBAAoB,OAAO,SAAS,kBAAkB,EAElF,EACA,sBAAsB,MAAO,SAAU,CACtC,MAAM,OAAS,KACX,OAAO,SAAS,UACf,UAAY,CAAC,OAAO,OAAO,SAAS,qBACvC,OAAO,SAAS,MAAM,KAAK,EAE3B,OAAO,SAAS,KAAK,EAGxB,EACA,iBAAkB,CACjB,MAAM,OAAS,KACX,OAAO,SAAS,UACf,OAAO,OAAO,SAAS,qBAC1B,OAAO,SAAS,KAAK,EAErB,OAAO,SAAS,MAAM,EAGzB,EACA,UAAW,CACV,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,OAAO,SAAS,QAAU,CAAC,OAAO,OAAO,SAAS,sBAC9E,OAAO,SAAS,IAAI,CAEtB,EACA,SAAU,CACT,MAAM,OAAS,KACX,OAAO,SAAS,SACnB,OAAO,SAAS,KAAK,EAEtB,SAAS,oBAAoB,mBAAoB,OAAO,SAAS,kBAAkB,CACpF,CACD,CACD,EAEA,MAAM,KAAO,CACZ,cAAe,CACd,MAAM,OAAS,KACT,CAAE,MAAO,EAAI,OACnB,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,MAAM,SAAW,OAAO,OAAO,GAAG,CAAC,EAEnC,IAAI,GAAK,CADM,SAAS,CAAC,EAAE,kBAEtB,OAAO,OAAO,mBAAkB,IAAM,OAAO,WAClD,IAAI,GAAK,EACJ,OAAO,aAAa,IACxB,GAAK,GACL,GAAK,GAEN,MAAM,aAAe,OAAO,OAAO,WAAW,UAC3C,KAAK,IAAI,EAAI,KAAK,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAG,CAAC,EAC9C,EAAI,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC,EAAE,SAAU,EAAE,EAAG,CAAC,EACrD,SACE,IAAI,CACJ,QAAS,YACV,CAAC,EACA,UAAU,eAAe,EAAE,OAAO,EAAE,UAAU,CACjD,CACD,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACT,CAAE,OAAQ,UAAW,EAAI,OAE/B,GADA,OAAO,WAAW,QAAQ,EACtB,OAAO,OAAO,kBAAoB,WAAa,EAAG,CACrD,IAAI,eAAiB,GACrB,OAAO,cAAc,IAAM,CAE1B,GADI,gBACA,CAAC,QAAU,OAAO,UAAW,OACjC,eAAiB,GACjB,OAAO,UAAY,GACnB,MAAM,cAAgB,CAAC,sBAAuB,eAAe,EAC7D,QAAS,EAAI,EAAG,EAAI,cAAc,OAAQ,GAAK,EAC9C,WAAW,QAAQ,cAAc,CAAC,CAAC,CAErC,CAAC,CACF,CACD,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,cACN,OAAQ,CACP,WAAY,CACX,UAAW,EACZ,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,aAAc,KAAK,aAAa,KAAK,MAAM,EAC3C,cAAe,KAAK,cAAc,KAAK,MAAM,CAC9C,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACf,GAAI,OAAO,OAAO,SAAW,OAAQ,OACrC,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,MAAM,EACpE,MAAM,gBAAkB,CACvB,cAAe,EACf,gBAAiB,EACjB,eAAgB,EAChB,oBAAqB,GACrB,aAAc,EACd,iBAAkB,EACnB,EACA,MAAM,OAAO,OAAO,OAAQ,eAAe,EAC3C,MAAM,OAAO,OAAO,eAAgB,eAAe,CACpD,EACA,cAAe,CACd,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,aAAa,CAChC,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,cAAc,QAAQ,CACzC,CACD,CACD,EAEA,MAAM,KAAO,CACZ,cAAe,CACd,MAAM,OAAS,KACT,CACL,IAAK,WAAY,OAAQ,MAAO,YAAa,OAAQ,aAAc,aAAc,IAAK,KAAM,UAC7F,EAAI,OACE,OAAS,OAAO,OAAO,WACvB,aAAe,OAAO,aAAa,EACnC,UAAY,OAAO,SAAW,OAAO,OAAO,QAAQ,QAC1D,IAAI,cAAgB,EAChB,cACA,OAAO,SACN,cACH,cAAgB,WAAW,KAAK,qBAAqB,EACjD,cAAc,SAAW,IAC5B,cAAgB,EAAE,wCAAwC,EAC1D,WAAW,OAAO,aAAa,GAEhC,cAAc,IAAI,CAAE,OAAQ,GAAG,WAAW,IAAK,CAAC,IAEhD,cAAgB,IAAI,KAAK,qBAAqB,EAC1C,cAAc,SAAW,IAC5B,cAAgB,EAAE,wCAAwC,EAC1D,IAAI,OAAO,aAAa,KAI3B,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,MAAM,SAAW,OAAO,GAAG,CAAC,EAC5B,IAAI,WAAa,EACb,YACH,WAAa,SAAS,SAAS,KAAK,yBAAyB,EAAG,EAAE,GAEnE,IAAI,WAAa,WAAa,GAC1B,MAAQ,KAAK,MAAM,WAAa,GAAG,EACnC,MACH,WAAa,CAAC,WACd,MAAQ,KAAK,MAAM,CAAC,WAAa,GAAG,GAErC,MAAM,SAAW,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC,EAAE,SAAU,CAAC,EAAG,EAAE,EAC/D,IAAI,GAAK,EACL,GAAK,EACL,GAAK,EACL,WAAa,IAAM,GACtB,GAAK,CAAC,MAAQ,EAAI,WAClB,GAAK,IACM,WAAa,GAAK,IAAM,GACnC,GAAK,EACL,GAAK,CAAC,MAAQ,EAAI,aACP,WAAa,GAAK,IAAM,GACnC,GAAK,WAAc,MAAQ,EAAI,WAC/B,GAAK,aACM,WAAa,GAAK,IAAM,IACnC,GAAK,CAAC,WACN,GAAM,EAAI,WAAe,WAAa,EAAI,OAEvC,MACH,GAAK,CAAC,IAGF,eACJ,GAAK,GACL,GAAK,GAGN,MAAMgG,WAAY,WAAW,aAAe,EAAI,CAAC,UAAU,gBAAgB,aAAe,WAAa,CAAC,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,MAMhJ,GALI,UAAY,GAAK,SAAW,KAC/B,cAAiB,WAAa,GAAO,SAAW,GAC5C,MAAK,cAAiB,CAAC,WAAa,GAAO,SAAW,KAE3D,SAAS,UAAUA,UAAS,EACxB,OAAO,aAAc,CAExB,IAAI,aAAe,aAAe,SAAS,KAAK,2BAA2B,EAAI,SAAS,KAAK,0BAA0B,EACnH,YAAc,aAAe,SAAS,KAAK,4BAA4B,EAAI,SAAS,KAAK,6BAA6B,EACtH,aAAa,SAAW,IAC3B,aAAe,EAAE,mCAAmC,aAAe,OAAS,KAAK,UAAU,EAC3F,SAAS,OAAO,YAAY,GAEzB,YAAY,SAAW,IAC1B,YAAc,EAAE,mCAAmC,aAAe,QAAU,QAAQ,UAAU,EAC9F,SAAS,OAAO,WAAW,GAExB,aAAa,SAAQ,aAAa,CAAC,EAAE,MAAM,QAAU,KAAK,IAAI,CAAC,SAAU,CAAC,GAC1E,YAAY,SAAQ,YAAY,CAAC,EAAE,MAAM,QAAU,KAAK,IAAI,SAAU,CAAC,EAC5E,CACD,CAQA,GAPA,WAAW,IAAI,CACd,2BAA4B,YAAY,WAAa,CAAC,KACtD,wBAAyB,YAAY,WAAa,CAAC,KACnD,uBAAwB,YAAY,WAAa,CAAC,KAClD,mBAAoB,YAAY,WAAa,CAAC,IAC/C,CAAC,EAEG,OAAO,OACV,GAAI,aACH,cAAc,UAAU,oBAAqB,YAAc,EAAK,OAAO,YAAY,OAAO,CAAC,YAAc,CAAC,0CAA0C,OAAO,WAAW,GAAG,MACnK,CACN,MAAM,YAAc,KAAK,IAAI,aAAa,EAAK,KAAK,MAAM,KAAK,IAAI,aAAa,EAAI,EAAE,EAAI,GACpF,WAAa,KACjB,KAAK,IAAK,YAAc,EAAI,KAAK,GAAM,GAAG,EAAI,EAC5C,KAAK,IAAK,YAAc,EAAI,KAAK,GAAM,GAAG,EAAI,GAE5C,OAAS,OAAO,YAChB,OAAS,OAAO,YAAc,WAC9BmB,QAAS,OAAO,aACtB,cAAc,UAAU,WAAW,MAAM,QAAQ,MAAM,sBAAuB,aAAe,EAAKA,OAAM,OAAO,CAAC,aAAe,EAAI,MAAM,qBAAqB,CAC/J,CAED,MAAM,QAAW,QAAQ,UAAY,QAAQ,UAAc,CAAC,WAAa,EAAK,EAC9E,WACE,UAAU,qBAAqB,OAAO,eAAe,OAAO,aAAa,EAAI,EAAI,aAAa,gBAAgB,OAAO,aAAa,EAAI,CAAC,cAAgB,CAAC,MAAM,CACjK,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACT,CAAE,IAAK,MAAO,EAAI,OACxB,OACE,WAAW,QAAQ,EACnB,KAAK,8GAA8G,EACnH,WAAW,QAAQ,EACjB,OAAO,OAAO,WAAW,QAAU,CAAC,OAAO,aAAa,GAC3D,IAAI,KAAK,qBAAqB,EAAE,WAAW,QAAQ,CAErD,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,cACN,OAAQ,CACP,WAAY,CACX,aAAc,GACd,OAAQ,GACR,aAAc,GACd,YAAa,GACd,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,aAAc,KAAK,aAAa,KAAK,MAAM,EAC3C,cAAe,KAAK,cAAc,KAAK,MAAM,CAC9C,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACf,GAAI,OAAO,OAAO,SAAW,OAAQ,OACrC,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,MAAM,EACpE,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,IAAI,EAClE,MAAM,gBAAkB,CACvB,cAAe,EACf,gBAAiB,EACjB,eAAgB,EAChB,oBAAqB,GACrB,gBAAiB,EACjB,aAAc,EACd,eAAgB,GAChB,iBAAkB,EACnB,EACA,MAAM,OAAO,OAAO,OAAQ,eAAe,EAC3C,MAAM,OAAO,OAAO,eAAgB,eAAe,CACpD,EACA,cAAe,CACd,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,aAAa,CAChC,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,cAAc,QAAQ,CACzC,CACD,CACD,EAEA,MAAM,KAAO,CACZ,cAAe,CACd,MAAM,OAAS,KACT,CAAE,OAAQ,aAAc,GAAI,EAAI,OACtC,QAAS,EAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EAAG,CAC1C,MAAM,SAAW,OAAO,GAAG,CAAC,EAC5B,IAAI,SAAW,SAAS,CAAC,EAAE,SACvB,OAAO,OAAO,WAAW,gBAC5B,SAAW,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC,EAAE,SAAU,CAAC,EAAG,EAAE,GAE1D,MAAMA,QAAS,SAAS,CAAC,EAAE,kBAE3B,IAAI,QADW,KAAO,SAElB,QAAU,EACV,GAAK,CAACA,QACN,GAAK,EAYT,GAXK,OAAO,aAAa,EAKd,MACV,QAAU,CAAC,UALX,GAAK,GACL,GAAK,EACL,QAAU,CAAC,QACX,QAAU,GAKX,SAAS,CAAC,EAAE,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM,QAAQ,CAAC,EAAI,OAAO,OAEhE,OAAO,OAAO,WAAW,aAAc,CAE1C,IAAI,aAAe,OAAO,aAAa,EAAI,SAAS,KAAK,2BAA2B,EAAI,SAAS,KAAK,0BAA0B,EAC5H,YAAc,OAAO,aAAa,EAAI,SAAS,KAAK,4BAA4B,EAAI,SAAS,KAAK,6BAA6B,EAC/H,aAAa,SAAW,IAC3B,aAAe,EAAE,mCAAmC,OAAO,aAAa,EAAI,OAAS,KAAK,UAAU,EACpG,SAAS,OAAO,YAAY,GAEzB,YAAY,SAAW,IAC1B,YAAc,EAAE,mCAAmC,OAAO,aAAa,EAAI,QAAU,QAAQ,UAAU,EACvG,SAAS,OAAO,WAAW,GAExB,aAAa,SAAQ,aAAa,CAAC,EAAE,MAAM,QAAU,KAAK,IAAI,CAAC,SAAU,CAAC,GAC1E,YAAY,SAAQ,YAAY,CAAC,EAAE,MAAM,QAAU,KAAK,IAAI,SAAU,CAAC,EAC5E,CACA,SACE,UAAU,eAAe,EAAE,OAAO,EAAE,oBAAoB,OAAO,gBAAgB,OAAO,MAAM,CAC/F,CACD,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACT,CAAE,OAAQ,YAAa,UAAW,EAAI,OAK5C,GAJA,OACE,WAAW,QAAQ,EACnB,KAAK,8GAA8G,EACnH,WAAW,QAAQ,EACjB,OAAO,OAAO,kBAAoB,WAAa,EAAG,CACrD,IAAI,eAAiB,GAErB,OAAO,GAAG,WAAW,EAAE,cAAc,UAA2B,CAE/D,GADI,gBACA,CAAC,QAAU,OAAO,UAAW,OAEjC,eAAiB,GACjB,OAAO,UAAY,GACnB,MAAM,cAAgB,CAAC,sBAAuB,eAAe,EAC7D,QAAS,EAAI,EAAG,EAAI,cAAc,OAAQ,GAAK,EAC9C,WAAW,QAAQ,cAAc,CAAC,CAAC,CAErC,CAAC,CACF,CACD,CACD,EAEA,IAAI,WAAa,CAChB,KAAM,cACN,OAAQ,CACP,WAAY,CACX,aAAc,GACd,cAAe,EAChB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,WAAY,CACX,aAAc,KAAK,aAAa,KAAK,MAAM,EAC3C,cAAe,KAAK,cAAc,KAAK,MAAM,CAC9C,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACf,GAAI,OAAO,OAAO,SAAW,OAAQ,OACrC,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,MAAM,EACpE,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,IAAI,EAClE,MAAM,gBAAkB,CACvB,cAAe,EACf,gBAAiB,EACjB,eAAgB,EAChB,oBAAqB,GACrB,aAAc,EACd,iBAAkB,EACnB,EACA,MAAM,OAAO,OAAO,OAAQ,eAAe,EAC3C,MAAM,OAAO,OAAO,eAAgB,eAAe,CACpD,EACA,cAAe,CACd,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,aAAa,CAChC,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,QAC7B,OAAO,WAAW,cAAc,QAAQ,CACzC,CACD,CACD,EAEA,MAAM,UAAY,CACjB,cAAe,CACd,MAAM,OAAS,KACT,CACL,MAAO,YAAa,OAAQ,aAAc,OAAQ,WAAY,eAC/D,EAAI,OACE,OAAS,OAAO,OAAO,gBACvB,aAAe,OAAO,aAAa,EACnCnB,WAAY,OAAO,UACnB,OAAS,aAAe,CAACA,WAAa,YAAc,EAAK,CAACA,WAAa,aAAe,EACtF,OAAS,aAAe,OAAO,OAAS,CAAC,OAAO,OAChDU,WAAY,OAAO,MAEzB,QAAS,EAAI,EAAG,OAAS,OAAO,OAAQ,EAAI,OAAQ,GAAK,EAAG,CAC3D,MAAM,SAAW,OAAO,GAAG,CAAC,EACtB,UAAY,gBAAgB,CAAC,EAC7B,YAAc,SAAS,CAAC,EAAE,kBAC1B,kBAAqB,OAAS,YAAe,UAAY,GAAM,UAAa,OAAO,SAEzF,IAAI,QAAU,aAAe,OAAS,iBAAmB,EACrD,QAAU,aAAe,EAAI,OAAS,iBAEtC,WAAa,CAACA,WAAY,KAAK,IAAI,gBAAgB,EAEnD,QAAU,OAAO,QAEjB,OAAO,SAAY,UAAY,QAAQ,QAAQ,GAAG,IAAM,KAC3D,QAAY,WAAW,OAAO,OAAO,EAAI,IAAO,WAEjD,IAAI,WAAa,aAAe,EAAI,QAAW,iBAC3C,WAAa,aAAe,QAAW,iBAAoB,EAE3D,MAAQ,GAAK,EAAI,OAAO,OAAS,KAAK,IAAI,gBAAgB,EAG1D,KAAK,IAAI,UAAU,EAAI,OAAO,WAAa,GAC3C,KAAK,IAAI,UAAU,EAAI,OAAO,WAAa,GAC3C,KAAK,IAAI,UAAU,EAAI,OAAO,WAAa,GAC3C,KAAK,IAAI,OAAO,EAAI,OAAO,QAAU,GACrC,KAAK,IAAI,OAAO,EAAI,OAAO,QAAU,GACrC,KAAK,IAAI,KAAK,EAAI,OAAO,MAAQ,GAErC,MAAM,eAAiB,eAAe,UAAU,MAAM,UAAU,MAAM,UAAU,gBAAgB,OAAO,gBAAgB,OAAO,cAAc,KAAK,IAIjJ,GAFA,SAAS,UAAU,cAAc,EACjC,SAAS,CAAC,EAAE,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM,gBAAgB,CAAC,EAAI,EACjE,OAAO,aAAc,CAExB,IAAI,gBAAkB,aAAe,SAAS,KAAK,2BAA2B,EAAI,SAAS,KAAK,0BAA0B,EACtH,eAAiB,aAAe,SAAS,KAAK,4BAA4B,EAAI,SAAS,KAAK,6BAA6B,EACzH,gBAAgB,SAAW,IAC9B,gBAAkB,EAAE,mCAAmC,aAAe,OAAS,KAAK,UAAU,EAC9F,SAAS,OAAO,eAAe,GAE5B,eAAe,SAAW,IAC7B,eAAiB,EAAE,mCAAmC,aAAe,QAAU,QAAQ,UAAU,EACjG,SAAS,OAAO,cAAc,GAE3B,gBAAgB,SAAQ,gBAAgB,CAAC,EAAE,MAAM,QAAU,iBAAmB,EAAI,iBAAmB,GACrG,eAAe,SAAQ,eAAe,CAAC,EAAE,MAAM,QAAW,CAAC,iBAAoB,EAAI,CAAC,iBAAmB,EAC5G,CACD,CAGA,GAAI,QAAQ,eAAiB,QAAQ,sBAAuB,CAC3D,MAAM,GAAK,WAAW,CAAC,EAAE,MACzB,GAAG,kBAAoB,GAAG,MAAM,QACjC,CACD,EACA,cAAc,SAAU,CACR,KACR,OACL,WAAW,QAAQ,EACnB,KAAK,8GAA8G,EACnH,WAAW,QAAQ,CACtB,CACD,EAEA,IAAI,gBAAkB,CACrB,KAAM,mBACN,OAAQ,CACP,gBAAiB,CAChB,OAAQ,GACR,QAAS,EACT,MAAO,IACP,MAAO,EACP,SAAU,EACV,aAAc,EACf,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,gBAAiB,CAChB,aAAc,UAAU,aAAa,KAAK,MAAM,EAChD,cAAe,UAAU,cAAc,KAAK,MAAM,CACnD,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,cAE7B,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,WAAW,EACzE,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,sBAAsB,IAAI,EAElE,OAAO,OAAO,oBAAsB,GACpC,OAAO,eAAe,oBAAsB,GAC7C,EACA,cAAe,CACd,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,aAC7B,OAAO,gBAAgB,aAAa,CACrC,EACA,cAAc,SAAU,CACvB,MAAM,OAAS,KACX,OAAO,OAAO,SAAW,aAC7B,OAAO,gBAAgB,cAAc,QAAQ,CAC9C,CACD,CACD,EAEA,MAAM,OAAS,CACd,MAAO,CACN,MAAM,OAAS,KACT,CAAE,OAAQ,YAAa,EAAI,OAAO,OAClCW,aAAc,OAAO,YACvB,aAAa,kBAAkBA,cAClC,OAAO,OAAO,OAAS,aAAa,OACpC,MAAM,OAAO,OAAO,OAAO,OAAO,eAAgB,CACjD,oBAAqB,GACrB,oBAAqB,EACtB,CAAC,EACD,MAAM,OAAO,OAAO,OAAO,OAAO,OAAQ,CACzC,oBAAqB,GACrB,oBAAqB,EACtB,CAAC,GACS,MAAM,SAAS,aAAa,MAAM,IAC5C,OAAO,OAAO,OAAS,IAAIA,aAAY,MAAM,OAAO,CAAC,EAAG,aAAa,OAAQ,CAC5E,sBAAuB,GACvB,oBAAqB,GACrB,oBAAqB,EACtB,CAAC,CAAC,EACF,OAAO,OAAO,cAAgB,IAE/B,OAAO,OAAO,OAAO,IAAI,SAAS,OAAO,OAAO,OAAO,oBAAoB,EAC3E,OAAO,OAAO,OAAO,GAAG,MAAO,OAAO,OAAO,YAAY,CAC1D,EACA,cAAe,CACd,MAAM,OAAS,KACT,aAAe,OAAO,OAAO,OACnC,GAAI,CAAC,aAAc,OACnB,MAAM,aAAe,aAAa,aAC5B,aAAe,aAAa,aAElC,GADI,cAAgB,EAAE,YAAY,EAAE,SAAS,OAAO,OAAO,OAAO,qBAAqB,GACnF,OAAO,aAAiB,KAAe,eAAiB,KAAM,OAClE,IAAI,aAMJ,GALI,aAAa,OAAO,KACvB,aAAe,SAAS,EAAE,aAAa,YAAY,EAAE,KAAK,yBAAyB,EAAG,EAAE,EAExF,aAAe,aAEZ,OAAO,OAAO,KAAM,CACvB,IAAI,aAAe,OAAO,YACtB,OAAO,OAAO,GAAG,YAAY,EAAE,SAAS,OAAO,OAAO,mBAAmB,IAC5E,OAAO,QAAQ,EAEf,OAAO,YAAc,OAAO,WAAW,CAAC,EAAE,WAC1C,aAAe,OAAO,aAEvB,MAAM,UAAY,OAAO,OAAO,GAAG,YAAY,EAAE,QAAQ,6BAA6B,YAAY,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAC9G,UAAY,OAAO,OAAO,GAAG,YAAY,EAAE,QAAQ,6BAA6B,YAAY,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAChH,OAAO,UAAc,IAAa,aAAe,UAC5C,OAAO,UAAc,IAAa,aAAe,UACjD,UAAY,aAAe,aAAe,UAAW,aAAe,UACxE,aAAe,SACrB,CACA,OAAO,QAAQ,YAAY,CAC5B,EACA,OAAO,QAAS,CACf,MAAM,OAAS,KACT,aAAe,OAAO,OAAO,OACnC,GAAI,CAAC,aAAc,OAEnB,MAAM,cAAgB,aAAa,OAAO,gBAAkB,OACzD,aAAa,qBAAqB,EAClC,aAAa,OAAO,cAEjB,iBAAmB,OAAO,OAAO,OAAO,iBACxC,UAAY,kBAAoB,CAAC,aAAa,OAAO,KAC3D,GAAI,OAAO,YAAc,aAAa,WAAa,UAAW,CAC7D,IAAI,mBAAqB,aAAa,YAClC,eACA,UACJ,GAAI,aAAa,OAAO,KAAM,CACzB,aAAa,OAAO,GAAG,kBAAkB,EAAE,SAAS,aAAa,OAAO,mBAAmB,IAC9F,aAAa,QAAQ,EAErB,aAAa,YAAc,aAAa,WAAW,CAAC,EAAE,WACtD,mBAAqB,aAAa,aAGnC,MAAM,gBAAkB,aAAa,OACnC,GAAG,kBAAkB,EACrB,QAAQ,6BAA6B,OAAO,SAAS,IAAI,EAAE,GAAG,CAAC,EAC/D,MAAM,EACF,gBAAkB,aAAa,OACnC,GAAG,kBAAkB,EACrB,QAAQ,6BAA6B,OAAO,SAAS,IAAI,EAAE,GAAG,CAAC,EAC/D,MAAM,EACJ,OAAO,gBAAoB,IAAa,eAAiB,gBACpD,OAAO,gBAAoB,IAAa,eAAiB,gBACzD,gBAAkB,qBAAuB,mBAAqB,gBAAiB,eAAiB,mBAChG,gBAAkB,mBAAqB,mBAAqB,gBAAiB,eAAiB,gBAClG,eAAiB,gBACtB,UAAY,OAAO,YAAc,OAAO,cAAgB,OAAS,MAClE,MACC,eAAiB,OAAO,UACxB,UAAY,eAAiB,OAAO,cAAgB,OAAS,OAE1D,YACH,gBAAkB,YAAc,OAAS,iBAAmB,GAAK,kBAG9D,aAAa,sBAAwB,aAAa,qBAAqB,QAAQ,cAAc,EAAI,IAChG,aAAa,OAAO,eACnB,eAAiB,mBACpB,eAAiB,eAAiB,KAAK,MAAM,cAAgB,CAAC,EAAI,EAElE,eAAiB,eAAiB,KAAK,MAAM,cAAgB,CAAC,EAAI,EAEzD,eAAiB,qBAC3B,eAAiB,eAAiB,cAAgB,GAEnD,aAAa,QAAQ,eAAgB,QAAU,EAAI,MAAS,EAE9D,CAGA,IAAI,iBAAmB,EACvB,MAAM,iBAAmB,OAAO,OAAO,OAAO,sBAa9C,GAXI,OAAO,OAAO,cAAgB,GAAK,CAAC,OAAO,OAAO,iBACrD,iBAAmB,OAAO,OAAO,eAG7B,OAAO,OAAO,OAAO,uBACzB,iBAAmB,GAGpB,iBAAmB,KAAK,MAAM,gBAAgB,EAE9C,aAAa,OAAO,YAAY,gBAAgB,EAC5C,aAAa,OAAO,MAAS,aAAa,OAAO,SAAW,aAAa,OAAO,QAAQ,QAC3F,QAAS,EAAI,EAAG,EAAI,iBAAkB,GAAK,EAC1C,aAAa,WAAW,SAAS,6BAA6B,OAAO,UAAY,CAAC,IAAI,EAAE,SAAS,gBAAgB,MAGlH,SAAS,EAAI,EAAG,EAAI,iBAAkB,GAAK,EAC1C,aAAa,OAAO,GAAG,OAAO,UAAY,CAAC,EAAE,SAAS,gBAAgB,CAGzE,CACD,EACA,IAAI,SAAW,CACd,KAAM,SACN,OAAQ,CACP,OAAQ,CACP,OAAQ,KACR,qBAAsB,GACtB,iBAAkB,EAClB,sBAAuB,4BACvB,qBAAsB,yBACvB,CACD,EACA,QAAS,CACR,MAAM,OAAS,KACf,MAAM,OAAO,OAAQ,CACpB,OAAQ,CACP,OAAQ,KACR,KAAM,OAAO,KAAK,KAAK,MAAM,EAC7B,OAAQ,OAAO,OAAO,KAAK,MAAM,EACjC,aAAc,OAAO,aAAa,KAAK,MAAM,CAC9C,CACD,CAAC,CACF,EACA,GAAI,CACH,YAAa,CACZ,MAAM,OAAS,KACT,CAAE,MAAO,EAAI,OAAO,OACtB,CAAC,QAAU,CAAC,OAAO,SACvB,OAAO,OAAO,KAAK,EACnB,OAAO,OAAO,OAAO,EAAI,EAC1B,EACA,aAAc,CACb,MAAM,OAAS,KACV,OAAO,OAAO,QACnB,OAAO,OAAO,OAAO,CACtB,EACA,QAAS,CACR,MAAM,OAAS,KACV,OAAO,OAAO,QACnB,OAAO,OAAO,OAAO,CACtB,EACA,QAAS,CACR,MAAM,OAAS,KACV,OAAO,OAAO,QACnB,OAAO,OAAO,OAAO,CACtB,EACA,gBAAiB,CAChB,MAAM,OAAS,KACV,OAAO,OAAO,QACnB,OAAO,OAAO,OAAO,CACtB,EACA,cAAc,SAAU,CAEvB,MAAM,aADS,KACa,OAAO,OAC9B,cACL,aAAa,cAAc,QAAQ,CACpC,EACA,eAAgB,CACf,MAAM,OAAS,KACT,aAAe,OAAO,OAAO,OAC9B,cACD,OAAO,OAAO,eAAiB,cAClC,aAAa,QAAQ,CAEvB,CACD,CACD,EAIA,MAAM,WAAa,CAClB,SACA,UACA,UACA,OACA,WACA,UACA,WACA,aACA,aACA,aACA,YACA,WACA,OACA,OACA,aACA,KACA,UACA,iBACA,WACA,WACA,WACA,WACA,gBACA,QACD,EAEI,OAAO,OAAO,IAAQ,MACzB,OAAO,IAAM,OAAO,MAAM,IAC1B,OAAO,cAAgB,OAAO,MAAM,eAGrC,OAAO,IAAI,UAAU,EAEM,MAAM,kBAAqB,OAOtD,MAAM,kBAAkB,OAAQ,CAC/B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,SAAW,IAAI,SAAS,MAAO,OAAO,EAC3C,MAAM,gBAAkB,KAAK,QAAQ,cAAc,mBAAmB,EACtE,KAAK,OAAS,IAAI,kBAAkB,gBAAiB,CACpD,cAAe,EACf,cAAe,GACf,WAAY,GACZ,WAAY,CACX,GAAI,gBAAgB,iBAAiB,oBAAoB,EACzD,UAAW,EACZ,CACD,CAAC,CACF,CAED,CAEA,IAAI,OAAS,oBAAoB,GAAG,EAChC,eAA8B,oBAAoB,EAAE,MAAM,EAK9D,MAAM,0BAA0B,SAAU,CAKzC,YAAY,MAAO,QAAS,CAC3B,MAAM,MAAO,OAAO,EAGpB,KAAK,KAAO,IAAM,CACb,KAAK,QAAQ,cAAc,SAAS,IACvC,KAAK,SAAW,MAAM,UAAU,IAAI,KAAK,KAAK,QAAQ,iBAAiB,SAAS,EAAG,IAC3E,IAAK,eAAe,GAAG,GAAI,CACjC,OAAQ,EACT,CAAC,CACD,EAEH,EAEA,KAAK,QAAU,IAAM,CACpB,KAAK,SAAS,QAAQC,SAAUA,QAAO,QAAQ,CAAC,EAChD,KAAK,SAAW,CAAC,CAClB,EAEA,KAAK,SAAW,CAAC,WAAa,QACrB,YAAc,KAAK,MAAM,cAAc,GAAG,MAAQ,YAAY,GAAG,MAG1E,KAAK,yBAA2B,CAAC,CAChC,UACD,IAAM,CACL,MAAM,SAAW,KAAK,SAAS,UAAU,EAErC,CAAC,UAAY,KAAK,SAAS,SAAW,EAEzC,KAAK,KAAK,EACA,UAAY,KAAK,SAAS,OAAS,GAE7C,KAAK,QAAQ,CAEf,EAEA,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,QAEV,KAAK,SAAS,GAClB,KAAK,KAAK,CAEZ,CAED,CAIA,MAAM,uBAAuB,OAAQ,CACpC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,SAAW,IAAI,kBAAkB,MAAO,QAAQ,UAAU,EAC/D,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,CACxC,CAED,CAIA,MAAM,iBAAiB,SAAU,CAChC,YAAY,MAAO,QAAS,CAU3B,GATA,MAAM,MAAO,OAAO,EACpB,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,SAAW,KAAK,SAAS,KAAK,IAAI,EACvC,KAAK,cAAgB,KACrB,KAAK,WAAa,SAAS,eAAe,eAAe,EAAE,QAAQ,WACnE,KAAK,YAAc,SAAS,eAAe,eAAe,EAAE,QAAQ,YACpE,KAAK,YAAc,KAAK,QAAQ,iBAAiB,gCAAgC,EAE7E,EAAC,KAAK,YAIV,OAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,sDAAsD,EAAG,IAAM,CACzH,GAAG,iBAAiB,SAAU,KAAK,QAAQ,CAC5C,CAAC,EACD,IAAI,MAAQ,KACZ,OAAO,iBAAiB,6BAA8B,UAAY,CACjE,MAAM,UAAU,QAAQ,KAAK,MAAM,QAAQ,iBAAiB,sDAAsD,EAAG,IAAM,CAC1H,GAAG,iBAAiB,SAAU,MAAM,QAAQ,CAC7C,CAAC,CACF,CAAC,EACF,CAEA,MAAM,SAAS,EAAG,CAEjB,GAAI,KAAK,YAAc,OACtB,OAGD,EAAE,eAAe,EAGjB,SAAS,KAAK,UAAU,IAAI,gBAAgB,EAE5C,KAAK,cAAgB,EAAE,cAAc,cAAc,mBAAmB,EAEtE,MAAM,mBAAqB,KAAK,cAAc,UAG9C,KAAK,cAAc,UAAY,8EAA8E,KAAK,MAAM,aAAa,OAAO,UAE5I,GAAI,CACH,MAAMzH,MAAO,eAAe,EAAE,EAAE,aAAa,EAAE,UAAU,EAUzD,GAAI,EATa,MAAM,OAAO,MAAM,eAAgB,CACnD,OAAQ,OACR,YAAa,cACb,QAAS,CACR,eAAgB,mCACjB,EACA,KAAMA,KACP,CAAC,GAEa,GAEb,MAAO,GAGR,MAAM,cAAgB,CAAC,KAAK,aAAe,KAAK,aAAe,IAAM,GAAK,KAAK,YAG/E,GAAI,EAFc,MAAM,OAAO,MAAM,GAAG,aAAa,oBAAoB,GAE1D,GAEd,MAAO,GAUR,MAAM,KAAO,MAPO,MAAM,MAAM,OAAO,QAAQ,OAAO,KAAO,SAAS,EACpE,KAAK0H,cACEA,aAAY,KAAK,CACxB,EACA,MAAO,OAAU,CACjB,QAAQ,MAAM,SAAU,KAAK,CAC9B,CAAC,EAGE,KAAK,YAAc,SACtB,KAAK,MAAM,kBAAkB,OAAQ,GAAM,CAC1C,IACD,CAAC,GAED,KAAK,cAAc,UAAY,KAAK,MAAM,aAAa,aACvD,KAAK,MAAM,iBAAiB,IAAI,GAGjC,WAAW,IAAM,CAChB,KAAK,cAAc,UAAY,kBAChC,EAAG,GAAI,CACR,OAASC,GAAG,CACX,QAAQ,MAAM,0BAA2BA,EAAC,CAC3C,CAEA,MAAO,EACR,CAED,CAIA,MAAM,2BAA2B,OAAQ,CAMxC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,cAAgB,GAAK,CACzB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,WAAY,GAAM,CAC9C,IAAK,EAAE,OAAO,IACf,CAAC,CACF,EAEA,MAAM,UAAU,QAAQ,KAAK,QAAQ,iBAAiB,8CAA8C,EAAG,SAAW,CAC7G,SACH,QAAQ,iBAAiB,QAAS,KAAK,aAAa,CAEtD,CAAC,EACD,KAAK,gBAAkB,IAAI,SAAS,MAAO,OAAO,EAClD,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,CACxC,CAED,CAEA,IAAI,QAAU,oBAAoB,GAAG,EACjC,gBAA+B,oBAAoB,EAAE,OAAO,EAMhE,MAAM,sBAAsB,OAAQ,CACnC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,eAAiB,IAAM,CACvB,KAAK,SACR,KAAK,QAAQ,QAAQ,CAEvB,EAEA,KAAK,YAAc,IAAM,CACxB,KAAK,eAAe,EACpB,KAAK,QAAU,IAAK,gBAAgB,GAAG,KAAK,KAAM,CACjD,aAAc,+BAEd,YAAa,+BACb,gBAAiB,GACjB,OAAQ,eACT,CAAC,CACF,EAEA,KAAK,gBAAkB,CAAC,gBAAiB,iBAAmB,CAC3D,KAAK,SAAS,KAAK,eAAe,EAAE,KAAK,CAACxH,OAAO,SAAW,CAC3D,KAAK,yBAAyB,OAAQ,cAAc,CACrD,CAAC,CACF,EAEA,KAAK,yBAA2B,CAAC,GAAI,iBAAmB,CACvD,MAAMuD,UAAW,KAAK,SAAS,KAAK,EAAE,EAAE,KAAK,cAAc,EAC3DA,UAAS,GAAG,wBAAyB,SAAU,EAAG,CACjDA,UAAS,IAAI,IAAI,EAAE,KAAK,EAAI,EAAE,OAAO,OAAQ,EAAE,OAAS,aAAe,GAAM,CAAC,CAC/E,CAAC,CACF,EAEA,KAAK,SAAW,eAAe,EAAE,OAAO,EACxC,KAAK,KAAO,QAAQ,cAAc,kCAAkC,EACpE,KAAK,gBAAgB,mCAAoC,8BAA8B,EAEvF,OAAO,WAAa,GAAK,CACpB,EAAE,WAAW,OAAO,SAAS,OAAO,CACzC,EAEA,qBAAqB,EAAE,KAAK,IAAI,EAAE,GAAG,WAAY,IAAM,CACtD,KAAK,QAAQ,OAAO,CACrB,CAAC,EACD,SAAS,iBAAiB,uBAAwB,KAAK,WAAW,EAClE,SAAS,iBAAiB,yBAA0B,KAAK,cAAc,EACvE,SAAS,iBAAiB,yBAA0B,KAAK,WAAW,EACpE,SAAS,iBAAiB,2BAA4B,KAAK,WAAW,EACtE,SAAS,iBAAiB,0BAA2B,KAAK,WAAW,EACrE,WAAW,IAAM,CAChB,KAAK,YAAY,CAClB,EAAG,GAAG,CACP,CAED,CAIA,MAAM,qBAAqB,OAAQ,CAClC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,SAAW,IAAI,SAAS,MAAO,OAAO,CAC5C,CAED,CAIA,MAAM,sBAAsB,OAAQ,CACnC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,gBAAkB,IAAM,CAC5B,KAAK,SAAS,QAAQ,CACvB,EAEA,KAAK,SAAW,IAAI,SAAS,MAAO,OAAO,CAC5C,CAED,CAEA,SAAS,uBAAuB,QAAS,CACxC,MAAM,SAAW,QAAQ,cAAc,0BAA0B,EACjE,GAAI,CAAC,SAAU,OACf,MAAM,aAAe,SAAS,YAAc,OAEtC,mBAAqB,IAAM,CACT,OAAO,aAAa,EAAE,SAAS,GACjC,SAAS,MAAM,CACrC,EAEI,cAAgB,UAAU,QAAQ,iBAAiB,QAAS,kBAAkB,CACnF,CAKA,MAAM,6BAA6B,aAAc,CAMhD,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,eAAiB,IAAM,CACvB,KAAK,4BACR,KAAK,oBAAoB,CAE3B,EAEA,KAAK,oBAAsB,IAAM,CAChC,KAAK,sBAAsB,MAAM,EAE7B,KAAK,yBAAyB,GACjC,KAAK,iBAAiB,MAAM,EAC5B,KAAK,sBAAsB,MAAM,IAEjC,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE3B,EAEA,KAAK,iBAAmB,iBAAmB,CAC1C,KAAK,aAAa,UAAU,OAAO,aAAa,EAC5C,iBAAiB,KAAK,aAAa,UAAU,IAAI,aAAa,CACnE,EAEA,KAAK,sBAAwB,OAAS,CACrC,KAAK,aAAa,MAAM,OAAS,KAClC,EAEA,KAAK,oBAAsB,IAAM,CAChC,KAAK,eAAe,MAAM,UAAY,GAAG,KAAK,eAAe,CAAC,IAC/D,EAEA,KAAK,iBAAmB,IAChB,KAAK,eAAe,aAG5B,KAAK,eAAiB,IACd,KAAK,aAAa,aAG1B,KAAK,yBAA2B,IACxB,KAAK,iBAAiB,EAAI,KAAK,eAAe,EAGtD,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,eAAiB,KAAK,QAAQ,cAAc,oCAAoC,EACrF,KAAK,aAAe,KAAK,QAAQ,cAAc,0BAA0B,EACzE,KAAK,eAAiB,KAAK,QAAQ,cAAc,sCAAsC,EACvF,KAAK,aAAe,KAAK,aAAa,qBAAqB,KAAK,EAAE,KAAK,CAAC,EACxE,KAAK,2BAA6B,KAAK,QAAQ,UAAU,SAAS,eAAe,EAE7E,KAAK,4BACR,KAAK,oBAAoB,EAG1B,KAAK,SAAW,IAAI,kBAAkB,KAAK,MAAO,KAAK,OAAO,EAC9D,uBAAuB,KAAK,OAAO,CACpC,CAED,CAGA,MAAM,iBAAiB,OAAQ,CAAE,CAGjC,MAAM,MAAO,CACZ,YAAY,MAAO,QAAS,QAAS,CACpC,KAAK,KAAO,IAAM,CACb,KAAK,QAAQ,iBAAiB,eAAe,EAAE,QAAU,GAI7D,KAAK,OAAO,SAAS,KAAK,CAC3B,EAEA,KAAK,MAAQ,IAAM,CACd,KAAK,QAAQ,iBAAiB,eAAe,EAAE,QAAU,GAI7D,KAAK,OAAO,SAAS,MAAM,CAC5B,EAEA,KAAK,UAAY,IACT,KAAK,OAAO,SAAS,QAG7B,KAAK,QAAU,CAACvD,OAAO,cAAgB,KAAU,CAChD,KAAK,OAAO,QAAQA,OAAO,cAAgB,EAAI,GAAG,CACnD,EAEA,KAAK,cAAgB,IAAM,CACtB,KAAK,qBACR,KAAK,oBAAoB,CAE3B,EAEA,KAAK,UAAY,IAAM,CACtB,GAAI,KAAK,QAAQ,iBAAiB,eAAe,EAAE,QAAU,EAC5D,OAGD,MAAM,OAAS,IAAI,kBAAkB,KAAK,QAAS,CAClD,eAAgB,GAChB,KAAM,GACN,aAAc,KAAK,SAAW,OAAS,EAAI,EAC3C,SAAU,KAAK,MAAQ,EAAI,CAC1B,MAAO,KAAK,MACZ,qBAAsB,EACvB,EAAI,GACJ,OAAQ,KAAK,OACb,cAAe,EACf,MAAO,IACP,cAAe,GACf,WAAY,CACX,UAAW,EACZ,EACA,WAAY,CACX,OAAQ,KAAK,QAAQ,cAAc,YAAY,EAC/C,OAAQ,KAAK,QAAQ,cAAc,YAAY,CAChD,EACA,WAAY,CACX,GAAI,KAAK,QAAQ,cAAc,oBAAoB,EACnD,UAAW,EACZ,CACD,CAAC,EACD,cAAO,GAAG,cAAe,KAAK,aAAa,EACpC,MACR,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,aAAe,KACpB,KAAK,QAAU,GACf,KAAK,MAAQ,QAAQ,QAAU,OAAY,QAAQ,MAAQ,IAC3D,KAAK,OAAS,QAAQ,WAAa,QACnC,KAAK,oBAAsB,QAAQ,cACnC,KAAK,OAAS,KAAK,UAAU,CAC9B,CAED,CAMA,MAAM,kBAAkB,OAAQ,CAE/B,YAAY,MAAO,SAAU,SAAU,CACtC,MAAM,MAAO,SAAU,QAAQ,EAC/B,KAAK,gBAAkB,oBACvB,KAAK,yBAA2B,IAEhC,KAAK,aAAe,IAAM,CACzB,MAAM,sBAAwB,KAAK,OAAO,QAAQ,sBAAsB,EAClE,aAAe,SAAS,cAAc,wBAAwB,EAC9D,WAAa,SAAS,cAAc,cAAc,EAElD,YADqB,aAAe,WAAW,aAAe,EAE9D,kBAAoB,sBAAsB,KAAO,aAAe,sBAAsB,KAAO,OAAO,aAAe,SAAS,gBAAgB,cAC5I,qBAAuB,sBAAsB,QAAU,aAAe,sBAAsB,QAAU,OAAO,aAAe,SAAS,gBAAgB,cACrJ,kBAAoB,sBAAsB,KAAO,aAAe,sBAAsB,QAAU,YACtG,OAAO,mBAAqB,sBAAwB,iBACrD,EAEA,KAAK,eAAiB,IAAM,CACvB,KAAK,aAAa,EACrB,KAAK,OAAO,MAAM,EAElB,KAAK,OAAO,KAAK,CAEnB,EAEA,KAAK,cAAgB,IAAM,CACtB,KAAK,OAAO,WAAa,KAAK,MAAQ,IAEzC,aAAa,KAAK,YAAY,EAC9B,KAAK,aAAe,WAAW,IAAM,CACpC,KAAK,OAAO,MAAM,CACnB,EAAG,KAAK,IAAI,EAAG,KAAK,yBAA2B,KAAK,KAAK,CAAC,EAE5D,EAEA,KAAK,cAAgB,CAAC,CACrB,OACD,IAAM,CACL,MAAMA,OAAQ,SAAS,QAAQ,QAAQ,WAAY,CAAC,EACpD,KAAK,OAAO,QAAQA,MAAK,EACzB,KAAK,OAAO,KAAK,CAClB,EAEA,KAAK,gBAAkB,IAAM,CAC5B,KAAK,OAAO,MAAM,CACnB,EAEA,KAAK,aAAe,KAEpB,MAAM,cAAgB,SAAS,cAAc,KAAK,eAAe,EAEjE,KAAK,MAAQ,SAAS,cAAc,QAAQ,gBAAiB,EAAE,EAC/D,KAAK,OAAS,IAAI,OAAO,MAAO,cAAe,CAC9C,MAAO,KAAK,MACZ,UAAW,cAAc,QAAQ,gBACjC,cAAe,KAAK,aACrB,CAAC,EACc,KAAK,OAAO,QAAQ,iBAAiB,kBAAkB,EAC/D,QAAQyG,QAAS,uBAAuBA,MAAK,CAAC,CACtD,CAED,CAGA,MAAM,mBAAmB,OAAQ,CAAE,CAInC,MAAM,iBAAiB,OAAQ,CAC9B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,KAAO,IAAM,CACjB,IAAI/G,MAAO,KACX,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAY,CACpDA,MAAK,MAAM,YAAY,MAAM,EAAE,SAAS,MAAM,EAC9C,eAAe,EAAE,sBAAsB,EAAE,SAAS,sBAAsB,EACxEA,MAAK,UAAU,MAAM,CACtB,CAAC,EACD,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAY,CACtDA,MAAK,MAAM,YAAY,MAAM,EAAE,YAAY,MAAM,EACjD,eAAe,EAAE,sBAAsB,EAAE,YAAY,sBAAsB,EAC3EA,MAAK,UAAU,KAAK,CACrB,CAAC,EACD,eAAe,EAAE,UAAY,CACxB,eAAe,EAAE,mCAAmC,EAAE,SACzDA,MAAK,MAAM,UAAU,MAAM,EAAE,SAAS,MAAM,EAC5CA,MAAK,UAAU,MAAM,EAEvB,CAAC,EAED,eAAe,EAAE,oBAAoB,EAAE,MAAM,GAAK,CAC7CA,MAAK,MAAM,SAAS,MAAM,GACzB,CAACA,MAAK,MAAM,GAAG,EAAE,MAAM,GAAKA,MAAK,MAAM,IAAI,EAAE,MAAM,EAAE,SAAW,GAAK,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GACvHA,MAAK,MAAM,QAAQ,MAAM,CAG5B,CAAC,EAED,eAAe,EAAE,QAAQ,EAAE,GAAG,UAAW,SAAU,EAAG,CAErD,EAAI,GAAK,OAAO,MAEZ,EAAE,SAAW,EAEZ,EAAE,SACD,SAAS,gBAAkBA,MAAK,mBACnC,EAAE,eAAe,EACjBA,MAAK,gBAAgB,MAAM,GAGxB,SAAS,gBAAkBA,MAAK,kBACnC,EAAE,eAAe,EACjBA,MAAK,iBAAiB,MAAM,GAGpB,EAAE,SAAW,IAEnBA,MAAK,MAAM,SAAS,MAAM,IAC7BA,MAAK,MAAM,YAAY,MAAM,EAAE,YAAY,MAAM,EACjDA,MAAK,UAAU,KAAK,EAGvB,CAAC,CACF,EAEA,KAAK,MAAQ,eAAe,EAAE,cAAc,EAC5C,KAAK,cAAgB,KAAK,MAAM,KAAK,6FAA6F,EAClI,KAAK,UAAY,KAAK,MAAM,KAAK,gBAAgB,EACjD,KAAK,iBAAmB,KAAK,cAAc,CAAC,EAC5C,KAAK,gBAAkB,KAAK,cAAc,KAAK,cAAc,OAAS,CAAC,EACvE,KAAK,KAAK,CACX,CAED,CAEA,IAAI,QAAU,oBAAoB,GAAG,EAErC;AAAA;AAAA;AAAA;AAAA,IAOA,SAAS,QAAQ,IAAK,CACrB,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAC9D,QAAU,SAAU+H,KAAK,CACxB,OAAO,OAAOA,IACf,EAEA,QAAU,SAAUA,KAAK,CACxB,OAAOA,MAAO,OAAO,QAAW,YAAcA,KAAI,cAAgB,QAAUA,OAAQ,OAAO,UAAY,SAAW,OAAOA,IAC1H,EAGM,QAAQ,GAAG,CACnB,CAEA,SAAS,gBAAgB,IAAK,IAAK,MAAO,CACzC,OAAI,OAAO,IACV,OAAO,eAAe,IAAK,IAAK,CAC/B,MACA,WAAY,GACZ,aAAc,GACd,SAAU,EACX,CAAC,EAED,IAAI,GAAG,EAAI,MAGL,GACR,CAEA,SAAS,mBAAmB,IAAK,CAChC,OAAO,mBAAmB,GAAG,GAAK,iBAAiB,GAAG,GAAK,mBAAmB,CAC/E,CAEA,SAAS,mBAAmB,IAAK,CAChC,GAAI,MAAM,QAAQ,GAAG,EAAG,CACvB,QAAS,EAAI,EAAG,KAAO,IAAI,MAAM,IAAI,MAAM,EAAG,EAAI,IAAI,OAAQ,IAAK,KAAK,CAAC,EAAI,IAAI,CAAC,EAElF,OAAO,IACR,CACD,CAEA,SAAS,iBAAiB,KAAM,CAC/B,GAAI,OAAO,YAAY,OAAO,IAAI,GAAK,OAAO,UAAU,SAAS,KAAK,IAAI,IAAM,qBAAsB,OAAO,MAAM,KAAK,IAAI,CAC7H,CAEA,SAAS,oBAAqB,CAC7B,MAAM,IAAI,UAAU,iDAAiD,CACtE,CAKA,SAAS,uBAAwB,CAChC,OAAO,OAAO,QAAY,KAAe,QAAQ,gBAAkB,QAAQ,kBAC5E,CACA,SAAS,uBAAuB,GAAI,KAAM,CACzC,gBAAgB,GAAI,IAAI,EACxB,OAAO,oBAAoB,KAAK,SAAS,EAAE,QAAQ,SAAU,IAAK,CACjE,gBAAgB,GAAG,UAAW,KAAK,UAAW,GAAG,CAClD,CAAC,EACD,OAAO,oBAAoB,IAAI,EAAE,QAAQ,SAAU,IAAK,CACvD,gBAAgB,GAAI,KAAM,GAAG,CAC9B,CAAC,CACF,CAEA,SAAS,gBAAgB,GAAI,KAAM,YAAa,CAC/C,IAAI,SAAW,YAAc,QAAQ,mBAAmB,KAAM,WAAW,EAAI,QAAQ,mBAAmB,IAAI,EAC5G,SAAS,QAAQ,SAAU,QAAS,CACnC,IAAI,SAAW,YAAc,QAAQ,eAAe,QAAS,KAAM,WAAW,EAAI,QAAQ,eAAe,QAAS,IAAI,EAElH,YACH,QAAQ,eAAe,QAAS,SAAU,GAAI,WAAW,EAEzD,QAAQ,eAAe,QAAS,SAAU,EAAE,CAE9C,CAAC,CACF,CAEA,IAAI,UAAY,CACf,UAAW,CAAC,CACb,EACI,iCAAmC,qBAAqB,MAC5D,SAAS,wCAAwC,QAAS,CACzD,OAAO,SAAUnE,QAAQ,IAAKtD,OAAO,CACpC,IAAI,KAAO,OAAOsD,SAAW,WAAaA,QAASA,QAAO,YAErD,KAAK,iBACT,KAAK,eAAiB,CAAC,GAGpB,OAAOtD,QAAU,WACpBA,OAAQ,QAGT,KAAK,eAAe,KAAK,SAAU,QAAS,CAC3C,OAAO,QAAQ,QAAS,IAAKA,MAAK,CACnC,CAAC,CACF,CACD,CACA,SAAS,QAAS,CACjB,QAAS,KAAO,UAAU,OAAQ,MAAQ,IAAI,MAAM,IAAI,EAAG,KAAO,EAAG,KAAO,KAAM,OACjF,MAAM,IAAI,EAAI,UAAU,IAAI,EAG7B,OAAO,IAAI,OAAO,CACjB,OAAQ,KACT,CAAC,CACF,CACA,SAAS,oCAAoC,MAAO,CACnD,IAAI,KAAO,QAAQ,KAAK,EAExB,OAAO,OAAS,MAAQ,OAAS,UAAY,OAAS,UACvD,CACA,SAAS,6BAA6B,QAAS,CAC1C,OAAO,QAAY,KACtB,QAAQ,KAAK,yBAA2B,OAAO,CAEjD,CAEA,SAAS,2BAA2B,GAAI0H,WAAW,CAElD,IAAI,aAAeA,WAAU,UAAU,MAEvCA,WAAU,UAAU,MAAQ,UAAY,CACvC,IAAI,MAAQ,KAGR,KAAO,OAAO,oBAAoB,EAAE,EAExC,GAAI,GAAG,SAAS,MACf,QAAS,OAAO,GAAG,SAAS,MACtB,GAAG,eAAe,GAAG,GACzB,KAAK,KAAK,GAAG,EAKhB,KAAK,QAAQ,SAAU5F,KAAK,CAC3B,OAAO,eAAe,MAAOA,KAAK,CACjC,IAAK,UAAe,CACnB,OAAO,GAAGA,IAAG,CACd,EACA,IAAK,SAAa,MAAO,CACxB,GAAGA,IAAG,EAAI,KACX,EACA,aAAc,EACf,CAAC,CACF,CAAC,CACF,EAGA,IAAIjC,MAAO,IAAI6H,WAEfA,WAAU,UAAU,MAAQ,aAE5B,IAAI,UAAY,CAAC,EACjB,cAAO,KAAK7H,KAAI,EAAE,QAAQ,SAAU,IAAK,CACpCA,MAAK,GAAG,IAAM,SACjB,UAAU,GAAG,EAAIA,MAAK,GAAG,EAE3B,CAAC,EAIM,SACR,CAEA,IAAI,eAAiB,CAAC,OAAQ,eAAgB,UAAW,cAAe,UAAW,gBAAiB,YAAa,eAAgB,UAAW,YAAa,cAAe,SAAU,gBAAiB,gBACnM,EACA,SAAS,iBAAiB6H,WAAW,CACpC,IAAI,QAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAC,EACnF,QAAQ,KAAO,QAAQ,MAAQA,WAAU,eAAiBA,WAAU,KAEpE,IAAI,MAAQA,WAAU,UACtB,OAAO,oBAAoB,KAAK,EAAE,QAAQ,SAAU,IAAK,CACxD,GAAI,MAAQ,cAKZ,IAAI,eAAe,QAAQ,GAAG,EAAI,GAAI,CACrC,QAAQ,GAAG,EAAI,MAAM,GAAG,EACxB,MACD,CAEA,IAAI,WAAa,OAAO,yBAAyB,MAAO,GAAG,EAEvD,WAAW,QAAU,OAEpB,OAAO,WAAW,OAAU,YAC9B,QAAQ,UAAY,QAAQ,QAAU,CAAC,IAAI,GAAG,EAAI,WAAW,OAG7D,QAAQ,SAAW,QAAQ,OAAS,CAAC,IAAI,KAAK,CAC9C,KAAM,UAAgB,CACrB,OAAO,gBAAgB,CAAC,EAAG,IAAK,WAAW,KAAK,CACjD,CACD,CAAC,GAEQ,WAAW,KAAO,WAAW,QAEtC,QAAQ,WAAa,QAAQ,SAAW,CAAC,IAAI,GAAG,EAAI,CACpD,IAAK,WAAW,IAChB,IAAK,WAAW,GACjB,GAEF,CAAC,GACA,QAAQ,SAAW,QAAQ,OAAS,CAAC,IAAI,KAAK,CAC9C,KAAM,UAAgB,CACrB,OAAO,2BAA2B,KAAMA,UAAS,CAClD,CACD,CAAC,EAED,IAAI,WAAaA,WAAU,eAEvB,aACH,WAAW,QAAQ,SAAU,GAAI,CAChC,OAAO,GAAG,OAAO,CAClB,CAAC,EACD,OAAOA,WAAU,gBAIlB,IAAI,WAAa,OAAO,eAAeA,WAAU,SAAS,EACtD,MAAQ,sBAAsB,QAAU,WAAW,YAAc,QACjE,SAAW,MAAM,OAAO,OAAO,EACnC,4BAAqB,SAAUA,WAAW,KAAK,EAE3C,sBAAsB,GACzB,uBAAuB,SAAUA,UAAS,EAGpC,QACR,CACA,IAAI,sBAA+D,KAK/D,aAAe,CAClB,UAAW,GACX,UAAW,GACX,OAAQ,GACR,OAAQ,EACT,EAEA,SAAS,qBAAqB,SAAU,SAAU,MAAO,CAExD,OAAO,oBAAoB,QAAQ,EAAE,QAAQ,SAAU,IAAK,CAE3D,GAAI,cAAa,GAAG,EAKpB,KAAI,mBAAqB,OAAO,yBAAyB,SAAU,GAAG,EAEtE,GAAI,sBAAsB,CAAC,mBAAmB,cAI9C,KAAI,WAAa,OAAO,yBAAyB,SAAU,GAAG,EAQ9D,GAAI,CAAC,iCAAkC,CAItC,GAAI,MAAQ,MACX,OAGD,IAAI,gBAAkB,OAAO,yBAAyB,MAAO,GAAG,EAEhE,GAAI,CAAC,oCAAoC,WAAW,KAAK,GAAK,iBAAmB,gBAAgB,QAAU,WAAW,MACrH,MAEF,CAKA,OAAO,eAAe,SAAU,IAAK,UAAU,GAChD,CAAC,CACF,CAEA,SAAS,kCAAkC,QAAS,CACnD,OAAI,OAAO,SAAY,WACf,iBAAiB,OAAO,EAGzB,SAAUA,WAAW,CAC3B,OAAO,iBAAiBA,WAAW,OAAO,CAC3C,CACD,CAEA,kCAAkC,cAAgB,SAAuB,KAAM,CAC9E,eAAe,KAAK,MAAM,eAAgB,mBAAmB,IAAI,CAAC,CACnE,EAE2B,MAAM,wBAA2B,kCAW5D,IAAI,kBAAoB,qBAMxB,SAAS,OAAO,QAAS,CACxB,OAAO,gBAAgB,SAAU,iBAAkB,IAAK,CACnD,OAAO,iBAAiB,OAAW,MACtC,iBAAiB,OAAS,CAAC,GAEvB,MAAM,QAAQ,iBAAiB,MAAM,IACzC,iBAAiB,OAAO,GAAG,EAAI,SAAW,IAE5C,CAAC,CACF,CAMA,SAAS,eAAe,QAAS,CAChC,OAAO,gBAAgB,SAAU,iBAAkB,IAAK,CAIvD,GAHI,OAAO,iBAAiB,OAAW,MACtC,iBAAiB,OAAS,CAAC,GAExB,CAAC,MAAM,QAAQ,iBAAiB,MAAM,EAAG,CAC5C,IAAI,UAAc,QAAU,QAAQ,MAAQ,QAAU,IAClD,aAAgB,CAAC,CAAC,SAAW,QAAQ,SAAY,OAChD,iBAAiB,WACrB,iBAAiB,SAAW,CAAC,GAC9B,iBAAiB,SAAS,GAAG,EAAI,UAAY,CAC5C,IAAI,IAAM,KAAK,iBAAiB,EAChC,OAAO,IAAM,IAAI,SAAS,EAAI,YAC/B,EACA,iBAAiB,OAAO,iBAAiB,EAAI,iBAC9C,CACD,CAAC,CACF,CACA,SAAS,eAAe,SAAU,CACjC,IAAI,QAAU,UAAY,CACzB,IAAI,MAAQ,KACR,GAAK,OAAO,UAAa,WAAa,SAAS,KAAK,IAAI,EAAI,SAChE,GAAK,OAAO,OAAO,IAAM,IAAI,EAE7B,GAAG,iBAAiB,EAAI,KAAK,iBAAiB,GAAK,CAAC,EACpD,QAAS,KAAK,QAAQ,QACrB,GAAG,QAAQ,QAAQ,CAAC,CAAC,EAAI,KAAK,CAAC,EAEhC,IAAI,QAAU,SAAU5I,GAAG,CAC1B,GAAG,QAAQ,gBAAgBA,EAAC,CAAC,EAAI,OAAOA,EAAC,EACzC,OAAO,eAAe,GAAG,iBAAiB,EAAG,QAAQ,gBAAgBA,EAAC,EAAG,CACxE,WAAY,GACZ,IAAK,UAAY,CAAE,OAAO,MAAMA,EAAC,CAAG,CACrC,CAAC,CACF,EACI,OAAS,KACb,QAAS,KAAK,QAAQ,gBACrB,QAAQ,CAAC,EAEV,OAAO,EACR,EACA,eAAQ,QAAU,CAAC,EACnB,QAAQ,gBAAkB,CAAC,EACpB,OACR,CACA,SAAS,qBAAqB,SAAU,CACvC,OAAQ,OAAO,UAAa,YAC1B,CAAC,SAAS,SAAW,CAAC,SAAS,eAClC,CAMA,SAAS,QAAQ,IAAK,CACrB,OAAO,gBAAgB,SAAU,iBAAkB,EAAG,CACrD,IAAI,QAAU,iBAAiB,QAC3B,qBAAqB,OAAO,IAC/B,QAAU,iBAAiB,QAAU,eAAe,OAAO,GAE5D,QAAQ,QAAQ,CAAC,EAAI,KAAO,CAC7B,CAAC,CACF,CAMA,SAAS,gBAAgB,IAAK,CAC7B,OAAO,gBAAgB,SAAU,iBAAkB,EAAG,CACrD,IAAI,QAAU,iBAAiB,QAE1B,MAAM,QAAQ,iBAAiB,MAAM,IACzC,iBAAiB,OAAS,iBAAiB,QAAU,CAAC,EACtD,iBAAiB,OAAO,iBAAiB,EAAI,CAC5C,KAAM,kBACN,QAAS,CAAC,CACX,GAEG,qBAAqB,OAAO,IAC/B,QAAU,iBAAiB,QAAU,eAAe,OAAO,GAE5D,QAAQ,gBAAgB,CAAC,EAAI,KAAO,CACrC,CAAC,CACF,CAEA,IAAI,2BAA6B,OAAO,QAAY,KAAe,OAAO,QAAQ,YAAgB,IAClG,SAAS,cAAc,QAASwE,QAAQ,IAAK,CAC5C,GAAI,4BACC,CAAC,MAAM,QAAQ,OAAO,GACzB,OAAO,SAAY,YACnB,OAAO,QAAQ,KAAS,IAAa,CACrC,IAAI,KAAO,QAAQ,YAAY,cAAeA,QAAQ,GAAG,EACrD,OAAS,SACZ,QAAQ,KAAO,KAEjB,CAEF,CAOA,SAAS,MAAM,MAAO,QAAS,CAC9B,OAAI,UAAY,SAAU,QAAU,CAAC,GAC9B,SAAUA,QAAQ,IAAK,CAC7B,cAAc,QAASA,QAAQ,GAAG,EAClC,gBAAgB,SAAU,iBAAkB,EAAG,EAE7C,iBAAiB,QAAU,iBAAiB,MAAQ,CAAC,IAAI,CAAC,EAAI,QAC/D,iBAAiB,MAAQ,CAAE,KAAM,EAAG,MAAO,OAAS,CAAE,CACvD,CAAC,EAAEA,QAAQ,GAAG,CACf,CACD,CAMA,SAAS,KAAK,QAAS,CACtB,OAAI,UAAY,SAAU,QAAU,CAAC,GAC9B,SAAUA,QAAQ,IAAK,CAC7B,cAAc,QAASA,QAAQ,GAAG,EAClC,wCAAwC,SAAU,iBAAkB,EAAG,EAErE,iBAAiB,QAAU,iBAAiB,MAAQ,CAAC,IAAI,CAAC,EAAI,OAChE,CAAC,EAAEA,QAAQ,GAAG,CACf,CACD,CAOA,SAAS,SAAS,SAAU,QAAS,CACpC,OAAI,UAAY,SAAU,QAAU,CAAC,GAE9B,SAAUA,QAAQ,IAAK,CAC7B,cAAc,QAASA,QAAQ,GAAG,EAClC,gBAAgB,SAAU,iBAAkB,EAAG,EAE7C,iBAAiB,QAAU,iBAAiB,MAAQ,CAAC,IAAI,QAAQ,EAAI,SACrE,iBAAiB,WAAa,iBAAiB,SAAW,CAAC,IAAI,CAAC,EAAI,CACpE,IAAK,UAAY,CAChB,OAAO,KAAK,QAAQ,CACrB,EACA,IAAK,SAAU,MAAO,CAErB,KAAK,MAAM,UAAY,SAAU,KAAK,CACvC,CACD,CACD,CAAC,EAAEA,QAAQ,GAAG,CACf,CACD,CAOA,SAAS,MAAM,KAAM,QAAS,CACzB,UAAY,SAAU,QAAU,CAAC,GACrC,IAAI,GAAK,QAAQ,KAAM,KAAO,KAAO,OAAS,GAAQ,GAAI,GAAK,QAAQ,UAAW,UAAY,KAAO,OAAS,GAAQ,GACtH,OAAO,wCAAwC,SAAU,iBAAkB,QAAS,CAC/E,OAAO,iBAAiB,OAAU,WACrC,iBAAiB,MAAQ,OAAO,OAAO,IAAI,GAE5C,IAAI,MAAQ,iBAAiB,MACzB,OAAO,MAAM,IAAI,GAAM,UAAY,CAAC,MAAM,QAAQ,MAAM,IAAI,CAAC,EAChE,MAAM,IAAI,EAAI,CAAC,MAAM,IAAI,CAAC,EAElB,OAAO,MAAM,IAAI,EAAM,MAC/B,MAAM,IAAI,EAAI,CAAC,GAEhB,MAAM,IAAI,EAAE,KAAK,CAAE,QAAkB,KAAY,SAAqB,CAAC,CACxE,CAAC,CACF,CAEA,IAAI,mCAAqC,aACrC,iCAAmC,SAAU1C,KAAK,CAAE,OAAOA,KAAI,QAAQ,mCAAoC,KAAK,EAAE,YAAY,CAAG,EAMrI,SAAS,KAAK,MAAO,CACpB,OAAO,SAAU,QAAS,YAAa,WAAY,CAClD,IAAI,IAAM,iCAAiC,WAAW,EAClD,SAAW,WAAW,MAC1B,WAAW,MAAQ,UAAmB,CAGrC,QAFI,MAAQ,KACR,KAAO,CAAC,EACH,GAAK,EAAG,GAAK,UAAU,OAAQ,KACvC,KAAK,EAAE,EAAI,UAAU,EAAE,EAExB,IAAI,KAAO,SAAU+G,aAAa,CACjC,IAAI,SAAW,OAAS,IACpBA,eAAgB,OACf,KAAK,SAAW,EACnB,MAAM,MAAM,QAAQ,EAEZ,KAAK,SAAW,EACxB,MAAM,MAAM,SAAU,KAAK,CAAC,CAAC,EAG7B,MAAM,MAAM,MAAM,MAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,EAI7C,KAAK,SAAW,EACnB,MAAM,MAAM,SAAUA,YAAW,EAEzB,KAAK,SAAW,EACxB,MAAM,MAAM,SAAUA,aAAa,KAAK,CAAC,CAAC,EAG1C,MAAM,MAAM,MAAM,MAAO,CAAC,SAAUA,YAAW,EAAE,OAAO,IAAI,CAAC,CAGhE,EACI,YAAc,SAAS,MAAM,KAAM,IAAI,EAC3C,OAAI,iCAAiC,WAAW,EAC/C,YAAY,KAAK,IAAI,EAGrB,KAAK,WAAW,EAEV,WACR,CACD,CACD,CAKA,SAAS,IAAI,OAAQ,CACpB,OAAO,gBAAgB,SAAU,QAAS,IAAK,CAC9C,QAAQ,SAAW,QAAQ,UAAY,CAAC,EACxC,QAAQ,SAAS,GAAG,EAAI,CACvB,MAAO,GACP,IAAK,UAAY,CAChB,OAAO,KAAK,MAAM,QAAU,GAAG,CAChC,CACD,CACD,CAAC,CACF,CACA,SAAS,iCAAiC,IAAK,CAC9C,OAAO,eAAe,SAAY,KAAO,OAAO,IAAI,MAAS,UAC9D,CAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWA,IAAI,gBAAkB,EAEtB,MAAM,iBAAmB,CAAC,GAGxB,SAAwB,IAAK,CAC9B,IAAI,QAAS,MAAS,CACjB,OAAO,UAAU,eAAe,KAAK,KAAM,QAAQ,GAGvD,OAAO,eAAe,KAAM,SAAU,CACrC,aAAc,GACd,WAAY,GACZ,SAAU,GACV,MAAO,UAAkB,CACpB,KAAK,aAAe,MACvB,KAAK,WAAW,YAAY,IAAI,CAElC,CACD,CAAC,CACF,CAAC,CACF,GAAG,CAAC,QAAQ,UAAW,cAAc,UAAW,aAAa,SAAS,CAAC,EAEvE,SAAS,qBAAqB,IAAK,SAAU,MAAO,CACnD,QAAS,EAAI,EAAG,EAAI,IAAI,OAAQ,GAAK,EACpC,SAAS,KAAK,MAAO,IAAI,CAAC,EAAG,CAAC,CAEhC,CAEA,SAAS,uBAAuB,QAAS,CACxC,MAAM,QAAU,CAAC,EAAE,eACnB,IAAI,MAAQ,QAAQ,CAAC,EACjB,OAAS,QAAQ,CAAC,EAEtB,GAAI,QAAQ,OAAS,EAAG,CACvB,MAAM,KAAO,CAAC,EAMd,IAJA,OAAO,KAAK,OAAO,EAAE,QAAS,KAAQ,CACrC,KAAK,KAAK,QAAQ,GAAG,CAAC,CACvB,CAAC,EAEM,KAAK,OAAS,GAAG,CACvB,MAAM,GAAK,KAAK,MAAM,EAChB,GAAK,KAAK,MAAM,EACtB,KAAK,QAAQ,oBAAoB,GAAI,EAAE,CAAC,CACzC,CAEA,MAAQ,KAAK,MAAM,EACnB,OAAS,KAAK,MAAM,CACrB,CAEA,OAAI,QACH,OAAO,KAAK,MAAM,EAAE,QAAS,KAAQ,CAChC,QAAQ,KAAK,OAAQ,GAAG,IACvB,OAAO,OAAO,GAAG,GAAM,UAC1B,MAAM,GAAG,EAAI,MAAM,GAAG,GAAK,CAAC,EAC5B,MAAM,GAAG,EAAI,oBAAoB,MAAM,GAAG,EAAG,OAAO,GAAG,CAAC,GAExD,MAAM,GAAG,EAAI,OAAO,GAAG,EAG1B,CAAC,EAGK,KACR,CAEA,SAAS,SAAS,KAAM,KAAM,UAAW,CACxC,IAAI,QAEJ,OAAO,YAA0B,KAAM,CACtC,MAAM,QAAU,WAAa,CAAC,QACxB,MAAQ,IAAM,CACnB,QAAU,KACL,WAAW,KAAK,MAAM,KAAM,IAAI,CACtC,EAEA,aAAa,OAAO,EACpB,QAAU,WAAW,MAAO,IAAI,EAE5B,SAAS,KAAK,MAAM,KAAM,IAAI,CACnC,CACD,CAEA,SAAS,UAAW,CACnB,wBAAmB,EAEZ,QAAQ,eAAe,EAC/B,CAEA,SAAS,cAAc,QAAS,CAC/B,QAAQ,MAAM,OAAS,OAEvB,MAAM,eAAiB,SAAS,QAAQ,sBAAsB,EAAE,OAAQ,EAAE,EACpE,aAAe,SAAS,OAAO,iBAAiB,OAAO,EAAE,UAAW,EAAE,EACtE,cAAgB,SAAS,QAAQ,SAAS,cAAe,EAAE,EAGjE,QAAQ,SAAS,eAAiB,eAClC,QAAQ,SAAS,UAAY,aAC7B,QAAQ,SAAS,gBAAkB,cAAgB,QAAQ,SAAS,iBAAmB,cAEvF,QAAQ,MAAM,UAAY,MAC3B,CAEA,SAAS,wBAAwB,WAAY,CAC5C,MAAMC,KAAM,SAAS,cAAc,KAAK,EACxC,OAAAA,KAAI,UAAY,WAETA,KAAI,UACZ,CAEA,SAAS,SAAS,SAAU,QAAS,CACpC,GAAI,CAAC,iBAAiB,QAAQ,EAAG,CAChC,IAAIzC,QAAS,GAET,QAAQ,UAAY,QAAQ,WAAa,KAC5CA,SAAU,GAAG,QAAQ,8BAA8B,QAAQ;AAAA,UACtD,QAAQ,QAAQ;AAAA,UAKtBA,SAAU,GAAG,QAAQ;AAAA,2BACE,QAAQ,KAAK;AAAA;AAAA,QAIlC,CAAC,EAAG,IAAM,CACX,MAAMC,KAAM,EAAE,cAAc,OAAO,EACnCA,KAAI,KAAO,WAEPA,KAAI,WACPA,KAAI,WAAW,QAAU,EAEzBA,KAAI,YAAY,EAAE,eAAe,CAAC,CAAC,EAGpC,EAAE,qBAAqB,MAAM,EAAE,CAAC,EAAE,YAAYA,IAAG,CAClD,GAAG,SAAUD,OAAM,EAEnB,iBAAiB,QAAQ,EAAI,EAC9B,CACD,CAEA,SAAS,YAAY,KAAM,QAAS,MAAO,CAC1C,SAAS,aAAa,MAAO,CAC5B,KAAK,OAAO,QAAS,KAAK,CAC3B,CAEA,IAAI,KAAO,KACP,OAAO,MAAS,aACnB,KAAO,KAAK,OAAO,GAGpB,MAAM,WAAa,wBAAwB,IAAI,EAC/C,kBAAW,aAAa,uBAAwB,QAAQ,EAAE,EAC1D,WAAW,aAAa,gBAAiB,QAAQ,EAAE,EACnD,WAAW,iBAAiB,QAAS,aAAa,KAAK,KAAK,CAAC,EAEtD,UACR,CAEA,SAAS,wBAAyB,CACjC,OAAQ,OAAO,OAAW,KAAe,OAAO,SAAa,KACzD,CAAC,CAAC,SAAS,kBAAoB,CAAC,CAAC,OAAO,gBAC7C,CAEA,MAAM,YAAc,SAAS,IAAM,CAClC,MAAM,SAAW,SAAS,iBAAiB,iBAAiB,EAE5D,qBAAqB,SAAW,SAAY,CAC3C,MAAM,SAAW,QAAQ,aAAa,eAAe,IAAM,OAE3D,cAAc,OAAO,EAErB,QAAQ,MAAM,OAAS,GAAG,SAAW,QAAQ,SAAS,eAAiB,QAAQ,SAAS,eAAe,IACxG,CAAC,CACF,EAAG,GAAG,EAEA,sBAAwB,CAC7B,MAAO,IACP,gBAAiB,IACjB,aAAc,GACd,SAAU,4BACV,SAAU,wBACV,SAAU,GACV,SAAU,+BACV,UAAW,GACX,YAAa,QAGb,eAAgB,IAAM,CAAE,EACxB,aAAc,IAAM,CAAE,EACtB,YAAa,IAAM,CAAE,CACtB,EAEA,MAAM,QAAS,CACd,eAAe,KAAM,CACpB,GAAI,CAAC,uBAAuB,EAAG,OAE/B,KAAM,CAAC,SAAU,OAAO,EAAI,KAC5B,IAAI,SAEA,OAAO,UAAa,SACvB,SAAW,SAAS,iBAAiB,QAAQ,EACnC,SAAS,SACnB,SAAW,CAAC,QAAQ,EAEpB,SAAW,SAIP,SAAS,SAEd,KAAK,QAAU,oBAAoB,CAAC,EAAG,sBAAuB,OAAO,EAEjE,OAAO,UAAa,SACvB,SAAS,SAAU,KAAK,OAAO,GAG/B,KAAK,iBAAmB,IAAI,SAAS,CAAC,GACtC,SAAS,KAAK,iBAAkB,KAAK,OAAO,GAI7C,OAAO,iBAAiB,OAAQ,WAAW,EAC3C,OAAO,iBAAiB,SAAU,WAAW,EAE7C,KAAK,SAAW,CAAC,EAEjB,qBAAqB,SAAW,SAAY,CACvC,KAAK,kBACR,QAAQ,UAAU,IAAI,KAAK,iBAAiB,OAAO,CAAC,CAAC,EAGtD,MAAM,SAAW,KAAK,QAAQ,UAE9B,QAAQ,SAAW,CAClB,cAAe,KAAK,QAAQ,gBAC5B,aAAc,KAAK,QAAQ,YAC5B,EAEA,cAAc,OAAO,EAErB,KAAM,CAAE,YAAa,EAAI,QAAQ,SAEjC,GAAI,QAAQ,sBAAsB,EAAE,QAAU,QAAQ,SAAS,gBAAkB,aAAc,CAC1F,OAAO,KAAK,QAAQ,gBAAmB,YAC1C,KAAK,QAAQ,eAAe,QAAS,EAAK,EAE3C,MACD,CAEA,QAAQ,aAAa,gBAAiB,EAAE,EACxC,QAAQ,aAAa,gBAAiB,QAAQ,EAC9C,QAAQ,GAAK,QAAQ,IAAM,SAAS,EAEpC,MAAM,WAAa,SAAW,KAAK,QAAQ,SAAW,KAAK,QAAQ,SAC7D,cAAgB,YAAY,WAAY,QAAS,IAAI,EAE3D,QAAQ,WAAW,aAAa,cAAgB,KAAK,QAAQ,cAAgB,SAAY,QAAU,QAAQ,WAAW,EAEtH,QAAQ,MAAM,OAAS,GAAG,SAAW,QAAQ,SAAS,eAAiB,QAAQ,SAAS,eAAe,KAEnG,OAAO,KAAK,QAAQ,gBAAmB,YAC1C,KAAK,QAAQ,eAAe,QAAS,EAAI,EAG1C,KAAK,SAAS,KAAK,OAAO,CAC3B,CAAC,EACF,CAQA,UAAU,KAAM,CACf,IAAI,GAAK,KAAK,CAAC,EAEf,MAAM,cAAiB,SAAY,CAClC,MAAM0C,SAAU,SAAS,cAAc,mBAAmB,QAAQ,EAAE,IAAI,EAClE,SAAW,QAAQ,sBAAsB,EAAE,QAAU,QAAQ,SAAS,gBACtE,UAAY,SAAW,QAAQ,SAAS,eAAiB,QAAQ,SAAS,gBAKhF,GAAI,OAAO,KAAK,QAAQ,cAAiB,YACX,KAAK,QAAQ,aAAaA,SAAS,QAAS,CAAC,QAAQ,IAGrD,GAC5B,OAIF,QAAQ,MAAM,OAAS,GAAG,SAAS,KAEnC,MAAM,qBAAwB,iBAAoB,CAE7C,OAAO,KAAK,QAAQ,aAAgB,YACvC,KAAK,QAAQ,YAAYA,SAAS,QAAS,QAAQ,EAGpD,gBAAgB,gBAAgB,EAEhC,QAAQ,aAAa,gBAAiB,QAAQ,EAC9C,QAAQ,oBAAoB,gBAAiB,qBAAsB,EAAK,CACzE,EAEA,QAAQ,iBAAiB,gBAAiB,qBAAsB,EAAK,EAEjE,KAAK,QAAQ,MAAQ,GACxB,qBAAqB,KAAK,KAAM,CAAE,OAAQ,OAAQ,CAAC,EAGpD,MAAM,WAAa,SAAW,KAAK,QAAQ,SAAW,KAAK,QAAQ,SAE9D,WAEMA,UAAWA,SAAQ,YAC7BA,SAAQ,WAAW,aAAa,YAAY,WAAY,QAAS,IAAI,EAAGA,QAAO,EAF/EA,SAAQ,OAAO,CAIjB,EAMA,GAJI,OAAO,IAAO,WACjB,GAAK,SAAS,iBAAiB,EAAE,GAG9B,CAAC,GACJ,MAAM,IAAI,MAAM,6DAA6D,EAG9E,MAAM,MAAQ,KAAK,CAAC,EAEhB,QACH,MAAM,eAAe,EACrB,MAAM,gBAAgB,GAGnB,OAAO,IAAO,UAAY,CAAC,GAAG,SACjC,qBAAqB,GAAI,aAAa,EAEtC,cAAc,EAAE,CAElB,CAEA,QAAQ,SAAU,CACjB,IAAI,SAEC,SAEM,OAAO,UAAa,SAC9B,SAAW,SAAS,iBAAiB,QAAQ,EACnC,SAAS,SACnB,SAAW,CAAC,QAAQ,EAEpB,SAAW,SANX,SAAW,KAAK,SASjB,qBAAqB,SAAW,SAAY,CAC3C,GAAI,KAAK,SAAS,QAAQ,OAAO,IAAM,GACtC,OAGD,KAAK,SAAW,KAAK,SAAS,OAAQ,IAAO,KAAO,OAAO,EAEvD,KAAK,kBACR,QAAQ,UAAU,OAAO,KAAK,iBAAiB,OAAO,CAAC,CAAC,EAGzD,OAAO,QAAQ,SAEf,QAAQ,MAAM,OAAS,UACvB,QAAQ,MAAM,UAAY,UAE1B,QAAQ,gBAAgB,eAAe,EACvC,QAAQ,gBAAgB,eAAe,EAEvC,MAAMA,SAAU,SAAS,cAAc,mBAAmB,QAAQ,EAAE,IAAI,EACpEA,UACHA,SAAQ,OAAO,EAGZ,QAAQ,GAAG,QAAQ,OAAO,IAAM,IACnC,QAAQ,gBAAgB,IAAI,CAE9B,CAAC,EAED,OAAO,IACR,CACD,CAEA,SAAS,QAAU,eAEQ,MAAM,aAAgB,SAGjD,SAAS,qCAAqC,IAAK,CAAE,GAAI,MAAM,QAAQ,GAAG,EAAG,CAAE,QAAS,EAAI,EAAG,KAAO,MAAM,IAAI,MAAM,EAAG,EAAI,IAAI,OAAQ,IAAO,KAAK,CAAC,EAAI,IAAI,CAAC,EAAK,OAAO,IAAM,KAAS,QAAO,MAAM,KAAK,GAAG,CAAK,CAOpN,IAAI,iBAAmB,GACvB,GAAI,OAAO,OAAW,IAAa,CAClC,IAAI,mBAAqB,CACxB,IAAI,SAAU,CACb,iBAAmB,EAEpB,CACD,EACA,OAAO,iBAAiB,cAAe,KAAM,kBAAkB,EAC/D,OAAO,oBAAoB,cAAe,KAAM,kBAAkB,CACnE,CAEA,IAAI,YAAc,OAAO,OAAW,KAAe,OAAO,WAAa,OAAO,UAAU,WAAa,iBAAiB,KAAK,OAAO,UAAU,QAAQ,GAAK,OAAO,UAAU,WAAa,YAAc,OAAO,UAAU,eAAiB,GAGnO,MAAQ,CAAC,EACT,sBAAwB,GACxB,eAAiB,GACjB,4BAA8B,OAC9B,yBAA2B,OAG3B,eAAiB,SAAwB,GAAI,CAChD,OAAO,MAAM,KAAK,SAAU,KAAM,CACjC,MAAI,QAAK,QAAQ,gBAAkB,KAAK,QAAQ,eAAe,EAAE,EAKlE,CAAC,CACF,EAEI,eAAiB,SAAwB,SAAU,CACtD,IAAI,EAAI,UAAY,OAAO,MAW3B,OALI,eAAe,EAAE,MAAM,GAKvB,EAAE,QAAQ,OAAS,EAAU,IAE7B,EAAE,gBAAgB,EAAE,eAAe,EAEhC,GACR,EAEI,kBAAoB,SAA2B,QAAS,CAE3D,GAAI,2BAA6B,OAAW,CAC3C,IAAI,qBAAuB,CAAC,CAAC,SAAW,QAAQ,sBAAwB,GACpE,aAAe,OAAO,WAAa,SAAS,gBAAgB,YAE5D,sBAAwB,aAAe,IAC1C,yBAA2B,SAAS,KAAK,MAAM,aAC/C,SAAS,KAAK,MAAM,aAAe,aAAe,KAEpD,CAGI,8BAAgC,SACnC,4BAA8B,SAAS,KAAK,MAAM,SAClD,SAAS,KAAK,MAAM,SAAW,SAEjC,EAEI,uBAAyB,UAAkC,CAC1D,2BAA6B,SAChC,SAAS,KAAK,MAAM,aAAe,yBAInC,yBAA2B,QAGxB,8BAAgC,SACnC,SAAS,KAAK,MAAM,SAAW,4BAI/B,4BAA8B,OAEhC,EAGI,+BAAiC,SAAwC,cAAe,CAC3F,OAAO,cAAgB,cAAc,aAAe,cAAc,WAAa,cAAc,aAAe,EAC7G,EAEI,aAAe,SAAsB,MAAO,cAAe,CAC9D,IAAI,QAAU,MAAM,cAAc,CAAC,EAAE,QAAU,eAE/C,OAAI,eAAe,MAAM,MAAM,EACvB,GAGJ,eAAiB,cAAc,YAAc,GAAK,QAAU,GAK5D,+BAA+B,aAAa,GAAK,QAAU,EAEvD,eAAe,KAAK,GAG5B,MAAM,gBAAgB,EACf,GACR,EAEI,kBAAoB,SAA2B,cAAe,QAAS,CAE1E,GAAI,CAAC,cAAe,CAEnB,QAAQ,MAAM,gHAAgH,EAC9H,MACD,CAGA,GAAI,OAAM,KAAK,SAAUC,MAAM,CAC9B,OAAOA,MAAK,gBAAkB,aAC/B,CAAC,EAID,KAAI,KAAO,CACV,cACA,QAAS,SAAW,CAAC,CACtB,EAEA,MAAQ,CAAC,EAAE,OAAO,qCAAqC,KAAK,EAAG,CAAC,IAAI,CAAC,EAEjE,aACH,cAAc,aAAe,SAAU,MAAO,CACzC,MAAM,cAAc,SAAW,IAElC,eAAiB,MAAM,cAAc,CAAC,EAAE,QAE1C,EACA,cAAc,YAAc,SAAU,MAAO,CACxC,MAAM,cAAc,SAAW,GAElC,aAAa,MAAO,aAAa,CAEnC,EAEK,wBACJ,SAAS,iBAAiB,YAAa,eAAgB,iBAAmB,CAAE,QAAS,EAAM,EAAI,MAAS,EACxG,sBAAwB,KAGzB,kBAAkB,OAAO,EAE3B,EAEI,wBAA0B,UAAmC,CAC5D,aAEH,MAAM,QAAQ,SAAU,KAAM,CAC7B,KAAK,cAAc,aAAe,KAClC,KAAK,cAAc,YAAc,IAClC,CAAC,EAEG,wBACH,SAAS,oBAAoB,YAAa,eAAgB,iBAAmB,CAAE,QAAS,EAAM,EAAI,MAAS,EAC3G,sBAAwB,IAIzB,eAAiB,IAEjB,uBAAuB,EAGxB,MAAQ,CAAC,CACV,EAEI,iBAAmB,SAA0B,cAAe,CAC/D,GAAI,CAAC,cAAe,CAEnB,QAAQ,MAAM,8GAA8G,EAC5H,MACD,CAEA,MAAQ,MAAM,OAAO,SAAU,KAAM,CACpC,OAAO,KAAK,gBAAkB,aAC/B,CAAC,EAEG,aACH,cAAc,aAAe,KAC7B,cAAc,YAAc,KAExB,uBAAyB,MAAM,SAAW,IAC7C,SAAS,oBAAoB,YAAa,eAAgB,iBAAmB,CAAE,QAAS,EAAM,EAAI,MAAS,EAC3G,sBAAwB,KAEd,MAAM,QACjB,uBAAuB,CAEzB,EAII,YAAc,oBAAoB,GAAG,EAIzC,MAAM,SAAU,CAKf,YAAY,MAAO,QAAS,CAC3B,KAAK,SAAW,IAEhB,KAAK,UAAY,IAAM,CACtB,KAAK,QAAQ,SAAS,QAAQ,CAC/B,EAEA,KAAK,SAAW,KAAO,CAGtB,GAAI,KAAK,SAAS,MAAM,GAAK,eAAe,EAAE,GAAG,EAAE,MAAM,EAAG,CAC3D,KAAK,SAAS,KAAK,UAAU,EAAE,SAAS,MAAM,EAC9C,MACD,MACC,KAAK,SAAS,KAAK,UAAU,EAAE,YAAY,MAAM,EAKlD,KAAK,MAAQ,WAAW,IAAM,CAC7B,KAAK,IAAI,UAAU,IAAI,sBAAsB,EAC7C,KAAK,MAAQ,IACd,EAAG,KAAK,QAAQ,CACjB,EAEA,KAAK,UAAY,IAAM,CAClB,KAAK,QACR,aAAa,KAAK,KAAK,EACvB,KAAK,MAAQ,MAGd,KAAK,IAAI,UAAU,OAAO,sBAAsB,CACjD,EAEA,KAAK,QAAU,IAAM,CACpB,KAAK,SAAS,QAAQ,cAAc,CACrC,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,SAAW,eAAe,EAAE,OAAO,EACxC,KAAK,IAAM,QAAQ,cAAc,KAAK,EACtC,KAAK,MAAQ,KACb,KAAK,QAAU,eAAe,EAAE,KAAK,GAAG,EAAE,KAAK,wBAAwB,EACvE,MAAMpI,MAAO,KACb,KAAK,QAAQ,YAAY,QAAQ,EAEjC,KAAK,SAAS,KAAK,CAClB,IAAK,KAAK,IAAI,QAAQ,WAAa,KAAK,IAAI,IAC5C,MAAO,GACP,SAAU,KAAK,SACf,SAAU,UAAY,CACrBA,MAAK,SAAS,IAAI,CACnB,EACA,UAAW,KAAK,UAChB,SAAU,KAAK,UAAU,CAC1B,CAAC,CACF,CAED,CAKA,MAAM,YAAa,CAQlB,YAAY,MAAO,UAAW,MAAO4D,QAAQ,CAC5C,KAAK,KAAO,IACJ,IAAI,QAAQ,SAAW,CAC7B,GAAI,KAAK,OAAQ,CAChB,QAAQ,EACR,MACD,CAEA,GAAI,KAAK,MAAM,aAAe,QAAS,CACtC,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,QAAQ,EACR,MACD,CAEA,IAAI,SAAW,SAAS,cAAc,mBAAmB,KAAK,SAAS,IAAI,KAAK,MAAM,EAAE,EAAE,EAE1F,GAAI,CAAC,SAAU,CACd,KAAK,QAAQ,EACb,QAAQ,EACR,MACD,CAEA,MAAM,SAAW,SAAS,WAAW,SAAS,QAAS,EAAI,EAE3D,KAAO,KAAK,OAAO,YAClB,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,EAM9C,OAHA,KAAK,OAAO,YAAY,QAAQ,EAChC,KAAK,gBAAkB,KAAK,OAAO,iBAE3B,KAAK,MAAM,WAAY,CAC9B,IAAK,QACJ,OAAO,QAAQ,aAAa,CAAC,CAC5B,KAAM,kBACN,QAAS,KACV,CAAC,EAAG,IAAM,CACT,KAAK,gBAAkB,IAAI,OAAO,QAAQ,cAAc,KAAK,gBAAgB,cAAc,cAAc,CAAC,EAE1G,KAAK,gBAAgB,OAAO,cAAc,iBAAiB,UAAW,GAAK,CAC1E,EAAE,gBAAkB,UAAY,CAAE,CACnC,EAAG,CACF,QAAS,EACV,CAAC,EAED,KAAK,gBAAgB,SAAS,cAAc,iBAAiB,QAAS,GAAK,CAC1E,EAAE,yBAAyB,CAC5B,EAAG,CACF,QAAS,EACV,CAAC,EACD,KAAK,gBAAgB,OAAO,iBAAiB,uCAAwC,KAAK,SAAS,KAAK,IAAI,CAAC,EAC7G,KAAK,gBAAgB,OAAO,iBAAiB,sCAAuC,KAAK,QAAQ,KAAK,IAAI,CAAC,EAC3G,KAAK,QAAQ,EACb,QAAQ,CACT,CAAC,EACD,MAED,IAAK,QACJ,OAAO,QAAQ,aAAa,CAAC,CAC5B,KAAM,WACN,QAAS,MACT,OAAQ,UAAY,CACnB,IAAI,MAAQ,KAAK,gBAAgB,cAAc,OAAO,EAClDY,MAAO,MAAM,WAAW,QAAQ,YAAc,OAClD,KAAK,eAAiB,IAAI,OAAO,QAAQ,KAAK,MAAO,CACpD,KAAM,CACL,OAAQA,KACT,EACA,YAAa,EACd,CAAC,EACD,MAAM,iBAAiB,OAAQ,KAAK,QAAQ,KAAK,IAAI,CAAC,EACtD,MAAM,iBAAiB,QAAS,KAAK,SAAS,KAAK,IAAI,CAAC,EACxD,MAAM,iBAAiB,QAAS,KAAK,SAAS,KAAK,IAAI,CAAC,EACxD,KAAK,QAAQ,EACb,QAAQ,CACT,EAAE,KAAK,IAAI,CACZ,CAAC,CAAC,EACF,MAED,IAAK,iBACJ,IAAI,OAAS,KAAK,gBAAgB,cAAc,QAAQ,EACpDA,MAAO,OAAO,WAAW,QAAQ,YAAc,OAEnD,GAAI,OAAO,IAAI,QAAQ,aAAa,IAAM,GACzC,KAAK,kBAAoB,UACzB,KAAK,MAAM,eAAe,EAAE,KAAK,IAAM,CACtC,IAAI,OAAO,GAAG,OAAO,OAAQ,CAC5B,OAAQ,CACP,QAAS,OAAS,CACjB,KAAK,kBAAoB,MAAM,OAC/B,KAAK,QAAQ,EACb,QAAQ,CACT,EACA,cAAe,OAAS,CACnB,MAAM,OAAS,OAAO,GAAG,YAAY,QACxC,KAAK,QAAQ,EACH,MAAM,OAAS,OAAO,GAAG,YAAY,OAC/C,KAAK,SAAS,EACJ,MAAM,OAAS,OAAO,GAAG,YAAY,QAC3CA,MACH,KAAK,kBAAkB,UAAU,EAEjC,KAAK,SAAS,EAGjB,EACA,QAAS,OAAS,CACjB,QAAQ,KAAK,sBAAuB,MAAO,MAAM,IAAI,EACrD,KAAK,SAAS,CACf,CACD,CACD,CAAC,CACF,CAAC,UACS,OAAO,IAAI,QAAQ,WAAW,IAAM,GAAI,CAClD,KAAK,kBAAoB,QACzB,IAAIxE,MAAO,KACX,KAAK,MAAM,aAAa,EAAE,KAAK,IAAM,CAEpC,IAAI,OAAS,IAAI,OAAO,MAAM,OAAO,MAAM,EAC3C,OAAO,MAAM,EAAE,KAAK,UAAY,CAC/BA,MAAK,gBAAkB,OACvBA,MAAK,QAAQ,EACb,QAAQ,CACT,CAAC,EACD,OAAO,GAAG,OAAQ,UAAY,CAC7BA,MAAK,gBAAgB,QAAQwE,KAAI,EACjCxE,MAAK,QAAQ,CACd,CAAC,EACD,OAAO,GAAG,QAAS,UAAY,CAC9BA,MAAK,SAAS,CACf,CAAC,CACF,CAAC,CACF,CAEA,MAED,QACC,KAAK,QAAQ,EACb,QAAQ,CACV,CACD,CAAC,EAGF,KAAK,cAAgB,IAAM,CACZ,KAAK,OAAO,cAAc,KAAK,EAEnC,QAAQ,WAAa,CAAC,KAAK,SAAS,GAC7C,IAAI,UAAU,KAAK,MAAO,KAAK,MAAM,CAEvC,EAEA,KAAK,SAAW,IACR,OAAO,WAAW,oCAAoC,EAAE,QAGhE,KAAK,QAAU,IAAM,CACpB,KAAK,OAAS,GACd,KAAK,OAAO,cAAc,wBAAwB,EAAE,UAAU,IAAI,+BAA+B,EACjG,IAAI,EAAI,IAAI,YAAY,aAAc,CACrC,OAAQ,CACP,OAAQ,KAAK,OACb,MAAO,IACR,CACD,CAAC,EACD,KAAK,OAAO,cAAc,CAAC,EAEvB,OAAO,WAAa,OAAO,UAAU,iBACxC,OAAO,UAAU,gBAAgB,CAEnC,EAEA,KAAK,KAAO,IAAM,CACZ,KAAK,OAGT,KAAK,MAAM,EAFX,KAAK,KAAK,EAAE,KAAK,KAAK,MAAM,KAAK,IAAI,CAAC,CAIxC,EAEA,KAAK,MAAQ,IAAM,CAClB,OAAQ,KAAK,MAAM,WAAY,CAC9B,IAAK,QACJ,KAAK,gBAAgB,KAAK,EAC1B,KAAK,QAAQ,EACb,MAED,IAAK,QACJ,KAAK,eAAe,KAAK,EAAE,KAAK,KAAK,QAAQ,KAAK,IAAI,CAAC,EAAE,MAAM,QAAQ,IAAI,EAC3E,MAED,IAAK,iBACA,KAAK,mBAAqB,UAC7B,KAAK,kBAAkB,UAAU,EACvB,KAAK,mBAAqB,SACpC,KAAK,gBAAgB,KAAK,EAG3B,KAAK,QAAQ,EACb,KACF,CACD,EAEA,KAAK,QAAU,IAAM,CACpB,KAAK,OAAS,GACd,KAAK,OAAO,cAAc,wBAAwB,EAAE,UAAU,IAAI,+BAA+B,EAE5F,KAAK,SACT,KAAK,OAAS,GACd,KAAK,OAAO,cAAc,wBAAwB,EAAE,UAAU,IAAI,+BAA+B,GAGlG,IAAI,EAAI,IAAI,YAAY,aAAc,CACrC,OAAQ,CACP,OAAQ,KAAK,OACb,MAAO,IACR,CACD,CAAC,EACD,KAAK,OAAO,cAAc,CAAC,EAEvB,SAAS,gBAAkB,SAAS,MAEvC,KAAK,MAAM,CAEb,EAEA,KAAK,SAAW,IAAM,CACjB,eAAe,EAAE,MAAM,EAAE,MAAM,EAAI,KAAO,CAAC,OAAO,WAAW,kCAAkC,EAAE,SACpG,KAAK,KAAK,CAEZ,EAEA,KAAK,MAAQ,IAAM,CAClB,GAAK,KAAK,OAIV,QAAQ,KAAK,MAAM,WAAY,CAC9B,IAAK,QACJ,MAED,IAAK,QACJ,KAAK,eAAe,MAAM,EAC1B,MAED,IAAK,iBACA,KAAK,mBAAqB,UAC7B,KAAK,kBAAkB,WAAW,EACxB,KAAK,mBAAqB,SACpC,KAAK,gBAAgB,MAAM,EAG5B,KACF,CAEA,KAAK,SAAS,EACf,EAEA,KAAK,WAAa,IAAM,CACnB,KAAK,OACR,KAAK,MAAM,EAEX,KAAK,KAAK,CAEZ,EAEA,KAAK,SAAW,IAAM,CACrB,KAAK,OAAS,GACd,KAAK,OAAO,cAAc,wBAAwB,EAAE,UAAU,OAAO,+BAA+B,EACpG,IAAI,EAAI,IAAI,YAAY,cAAe,CACtC,OAAQ,CACP,OAAQ,KAAK,OACb,MAAO,IACR,CACD,CAAC,EACD,KAAK,OAAO,cAAc,CAAC,CAC5B,EAEA,KAAK,MAAQ,IAAM,CAClB,OAAQ,KAAK,MAAM,WAAY,CAC9B,IAAK,QACJ,KAAK,OAAO,cAAc,OAAO,EAAE,MAAM,EACzC,MAED,IAAK,QACJ,IAAI,OAAS,KAAK,OAAO,cAAc,cAAc,EAEjD,QAAU,OAAO,WACpB,OAAO,MAAM,EAGb,WAAW,KAAK,MAAM,KAAK,IAAI,EAAG,GAAI,EAGvC,MAED,IAAK,iBACJ,KAAK,OAAO,cAAc,QAAQ,EAAE,cAAc,MAAM,EACxD,MAED,QACC,KAAK,OAAO,MAAM,CACpB,CACD,EAEA,KAAK,QAAU,IAAM,CAAE,EAEvB,KAAK,MAAQ,MACb,KAAK,UAAY,UACjB,KAAK,QAAU,MAAM,GACrB,KAAK,MAAQ,MACb,KAAK,OAAS4D,QACd,KAAK,gBAAkB,KACvB,KAAK,OAAS,GACd,KAAK,OAAS,GACd,KAAK,eAAiB,KACtB,KAAK,gBAAkB,KACvB,KAAK,kBAAoB,KACzB,KAAK,gBAAkB,KACvB,KAAK,kBAAoB,IAC1B,CAED,CAEA,MAAM,aAAc,CACnB,aAAc,CACb,KAAK,MAAQ,CACZ,eAAgB,KAChB,cAAe,IAChB,CACD,CAUA,UAAU,QAAS,CAClB,IAAI,kBAEH,MAAM,KAAK,QAAQ,UAAU,iBAAiB,0EAA0E,CAAC,EAAE,OAAO,SAAU,QAAS,CACpJ,IAAIoC,OAAQ,QAAQ,YAChBc,QAAS,QAAQ,aACrB,OAAOd,SAAU,GAAKc,UAAW,GAAK,iBAAiB,OAAO,EAAE,iBAAiB,SAAS,IAAM,MACjG,CAAC,EACF,KAAK,MAAM,eAAiB,kBAAkB,CAAC,EAC/C,KAAK,MAAM,cAAgB,kBAAkB,kBAAkB,OAAS,CAAC,EAEpE,QAAQ,iBACZ,QAAQ,eAAiB,QAAQ,WAGlC,QAAQ,UAAU,aAAa,WAAY,IAAI,EAC/C,QAAQ,eAAe,MAAM,EAE7B,KAAK,eAAe,EAEpB,SAAS,iBAAiB,UAAW,KAAK,iBAAiB,EAC3D,SAAS,iBAAiB,WAAY,KAAK,kBAAkB,CAC9D,CAEA,gBAAiB,CACX,KAAK,oBACT,KAAK,kBAAoB,KAAK,WAAW,KAAK,IAAI,GAG9C,KAAK,qBACT,KAAK,mBAAqB,KAAK,WAAW,KAAK,IAAI,GAG/C,KAAK,sBACT,KAAK,oBAAsB,KAAK,aAAa,KAAK,IAAI,EAExD,CAEA,aAAc,CACb,SAAS,oBAAoB,UAAW,KAAK,mBAAmB,CACjE,CAEA,WAAW,IAAK,CACX,IAAI,SAAW,KAAK,MAAM,eAAiB,IAAI,SAAW,KAAK,MAAM,gBACzE,SAAS,iBAAiB,UAAW,KAAK,mBAAmB,CAC9D,CAEA,aAAa,IAAK,CACb,IAAI,UAAY,IAMhB,IAAI,SAAW,KAAK,MAAM,eAAiB,CAAC,IAAI,WACnD,IAAI,eAAe,EACnB,KAAK,MAAM,eAAe,MAAM,GAQ7B,IAAI,SAAW,KAAK,MAAM,gBAAkB,IAAI,WACnD,IAAI,eAAe,EACnB,KAAK,MAAM,cAAc,MAAM,GAEjC,CAUA,gBAAgB,QAAS,CACpB,QAAQ,WACX,QAAQ,UAAU,gBAAgB,UAAU,EAGzC,QAAQ,gBACX,QAAQ,eAAe,MAAM,EAG9B,SAAS,oBAAoB,UAAW,KAAK,iBAAiB,CAC/D,CAED,CAEA,IAAI,OAAS,UAAY,CACxB,IAAI,IAAM,KACN,GAAK,IAAI,eACT,GAAK,IAAI,MAAM,IAAM,GACzB,OAAO,GACN,MACA,CACC,IAAK,YACL,YAAa,mBACb,MAAO,CACN,OAAS,IAAI,IACb,IAAI,KAAO,yBAA2B,2BACtC,qBAAuB,IAAI,SAC5B,CACD,EACA,CACC,IAAI,MACD,GAAG,QAAS,CACb,MAAO,CAAE,IAAK,IAAI,EAAG,EACrB,SAAU,CAAE,YAAa,IAAI,GAAG,IAAI,KAAK,CAAE,CAC5C,CAAC,EACC,IAAI,GAAG,EACV,IAAI,GAAG,GAAG,EACV,GACC,MACA,CAAE,YAAa,2BAA4B,EAC3C,CACC,GACC,SACA,CACC,IAAK,SACL,MAAO,CACN,GAAI,IAAI,GACR,KAAM,SACN,aAAc,MACd,SAAU,OACV,SAAU,IACV,gBAAiB,IAAI,WACrB,gBAAiB,IAAI,IACtB,EACA,GAAI,CACH,MAAO,IAAI,WACX,KAAM,SAAU,OAAQ,CACvB,cAAO,eAAe,EACf,IAAI,MAAM,MAAM,KAAM,SAAS,CACvC,EACA,QAAS,CACR,SAAU,OAAQ,CACjB,MACC,CAAC,OAAO,KAAK,QAAQ,KAAK,GAC1B,IAAI,GAAG,OAAO,QAAS,KAAM,GAAI,OAAO,IAAK,CAC5C,KACA,SACD,CAAC,EAEM,MAER,OAAO,eAAe,EACf,IAAI,iBAAiB,EAAE,EAC/B,EACA,SAAU,OAAQ,CACjB,MACC,CAAC,OAAO,KAAK,QAAQ,KAAK,GAC1B,IAAI,GAAG,OAAO,QAAS,OAAQ,GAAI,OAAO,IAAK,CAC9C,OACA,WACD,CAAC,EAEM,MAER,OAAO,eAAe,EACf,IAAI,iBAAiB,CAAC,EAC9B,EACA,SAAU,OAAQ,CACjB,MACC,CAAC,OAAO,KAAK,QAAQ,KAAK,GAC1B,IAAI,GAAG,OAAO,QAAS,QAAS,GAAI,OAAO,IAAK,OAAO,EAEhD,MAER,OAAO,eAAe,EACf,IAAI,aAAa,EAAK,EAC9B,EACA,SAAU,OAAQ,CACjB,MACC,CAAC,OAAO,KAAK,QAAQ,KAAK,GAC1B,IAAI,GAAG,OAAO,QAAS,QAAS,GAAI,OAAO,IAAK,CAC/C,IACA,UACD,CAAC,EAEM,MAER,OAAO,eAAe,EACf,IAAI,aAAa,EAAK,EAC9B,EACA,SAAU,OAAQ,CACjB,MACC,CAAC,OAAO,KAAK,QAAQ,KAAK,GAC1B,IAAI,GAAG,OAAO,QAAS,MAAO,GAAI,OAAO,IAAK,CAC7C,MACA,QACD,CAAC,EAEM,MAER,OAAO,eAAe,EACf,IAAI,MAAM,MAAM,KAAM,SAAS,EACvC,CACD,CACD,CACD,EACA,CACC,GAAG,OAAQ,CACV,YAAa,0BACb,SAAU,CACT,YAAa,IAAI,GAAG,IAAI,eAAe,OAAS,MAAM,CACvD,CACD,CAAC,EACD,IAAI,GAAG,GAAG,EACV,GAAG,OAAQ,CAAE,YAAa,eAAgB,EAAG,CAC5C,GACC,MACA,CACC,YAAa,+BACb,MAAO,CACN,MAAO,6BACP,MAAO,KACP,OAAQ,KACR,QAAS,YACT,KAAM,OACN,OAAQ,eACR,eAAgB,IAChB,iBAAkB,QAClB,kBAAmB,OACpB,CACD,EACA,CAAC,GAAG,WAAY,CAAE,MAAO,CAAE,OAAQ,gBAAiB,CAAE,CAAC,CAAC,CACzD,CACD,CAAC,CACF,CACD,EACA,IAAI,GAAG,GAAG,EACV,GAAG,aAAc,CAAE,MAAO,CAAE,KAAM,uBAAwB,CAAE,EAAG,CAC9D,GACC,KACA,CACC,WAAY,CACX,CACC,KAAM,OACN,QAAS,SACT,MAAO,IAAI,KACX,WAAY,MACb,CACD,EACA,IAAK,KACL,MAAO,CAAE,GAAI,IAAI,UAAW,CAC7B,EACA,IAAI,GAAG,IAAI,QAAS,SAAU,OAAQ,CACrC,OAAO,GAAG,KAAM,CACf,IAAK,OAAO,MACZ,MAAO,CACN,SACC,OAAO,QAAU,IAAI,QAAQ,IAAI,YAAY,EAAE,KACjD,EACA,MAAO,CAAE,MAAO,OAAO,KAAM,EAC7B,SAAU,CAAE,YAAa,IAAI,GAAG,OAAO,KAAK,CAAE,EAC9C,GAAI,CACH,UAAW,SAAU,OAAQ,CAC5B,OAAO,IAAI,cAAc,MAAM,CAChC,CACD,CACD,CAAC,CACF,CAAC,EACD,CACD,CACD,CAAC,CACF,EACA,CACD,CACD,CACD,CACD,EACI,gBAAkB,CAAC,EACvB,OAAO,cAAgB,GA0EvB,SAAS,gBAAgB,GAAI,CAC5B,MAAM,MAAQ,GAAG,UAAU,EAAI,EAC/B,MAAM,MAAM,QAAU,+HACtB,SAAS,KAAK,YAAY,KAAK,EAC/B,MAAMd,OAAQ,MAAM,sBAAsB,EAAE,MAC5C,gBAAS,KAAK,YAAY,KAAK,EACxBA,MACR,CAEA,IAAI,iBAAmB,EAkKK,MAAM,4CAjKmC,QAAQ,OAAO,CACnF,MAAO,CACN,IAAK,CACJ,KAAM,OACN,QAAS,SACT,UAAW,SAAU,MAAO,CAC3B,MAAO,CAAC,SAAU,UAAW,SAAS,EAAE,QAAQ,KAAK,IAAM,EAC5D,CACD,EACA,UAAW,CACV,KAAM,OACN,QAAS,OACT,UAAW,SAAU,MAAO,CAC3B,MAAO,CAAC,OAAQ,IAAI,EAAE,QAAQ,KAAK,IAAM,EAC1C,CACD,EACA,KAAM,CACL,KAAM,OACN,QAAS,EACV,EACA,MAAO,CACN,KAAM,OACN,QAAS,IACV,CACD,EACA,KAAM,UAAY,CACjB,MAAO,CACN,GAAI,GACJ,MAAO,GACP,KAAM,GACN,QAAS,CAAC,EACV,eAAgB,OAGhB,aAAc,EACd,gBAAiB,MAClB,CACD,EACA,SAAU,CACT,WAAY,UAAY,CACvB,OAAO,KAAK,GAAK,WAClB,CACD,EACA,MAAO,CACN,MAAO,SAAU,OAAQ,CACxB,KAAK,QAAQ,QAAQ,CAAC,OAAQ1F,SAAU,CACnC,OAAO,QAAU,SACpB,KAAK,eAAiB,OACtB,KAAK,aAAeA,OAEtB,CAAC,CACF,CACD,EACA,YAAa,UAAY,CAExB,MAAM,GAAK,KAAK,MAAM,IAAI,UAAY,mBAAqB,KAAK,MAAM,IAAM,KAAK,MAAM,IAAI,cAAc,kBAAkB,EAC3H,IAAI,OAAS,GAAG,cAAc,QAAQ,EAElC,OAAO,GACV,KAAK,GAAK,OAAO,IAEjB,kBAAoB,EACpB,KAAK,GAAK,oBAAsB,kBAGjC,IAAI,QAAU,GAAG,cAAc,OAAO,EACtC,KAAK,MAAQ,QAAU,QAAQ,YAAc,OAC7C,IAAI,QAAU,CAAC,EACf,MAAM,UAAU,QAAQ,KAAK,OAAO,iBAAiB,QAAQ,EAAG,CAAC,OAAQA,SAAU,CAClF,QAAQ,KAAK,CACZ,MAAO,OAAO,MACd,MAAO,OAAO,WACf,CAAC,EAEG,OAAO,kBACV,KAAK,eAAiB,OACtB,KAAK,aAAeA,OAEtB,CAAC,EACD,KAAK,QAAU,QAEV,KAAK,iBACT,KAAK,eAAiB,QAAQ,CAAC,EAC/B,KAAK,aAAe,GAGrB,KAAK,YAAc,gBAAgB,MAAM,EACzC,KAAK,gBAAkB,OACvB,KAAK,gBAAgB,MAAM,QAAU,OACrC,KAAK,gBAAgB,iBAAiB,QAAS,QAAQ,GAAG,EAC1D,GAAG,WAAW,YAAY,EAAE,CAC7B,EACA,QAAS,UAAY,CACpB,GAAI,KAAK,MAAQ,UAAW,CAC3B,IAAI,EAAI,KAAK,YAAc,GAE3B,KAAK,IAAI,MAAM,MAAQ,EAAI,KAC3B,KAAK,MAAM,GAAG,MAAM,MAAQ,EAAI,IACjC,CAEA,KAAK,IAAI,YAAY,KAAK,eAAe,CAC1C,EACA,QAAS,CACR,gBAAiB,SAAU,OAAQ,CAClC,IAAIA,OACJ,YAAK,QAAQ,QAAQ,SAAU,EAAG,EAAG,CAChC,EAAE,QAAU,OAAO,QACtBA,OAAQ,EAEV,CAAC,EACMA,MACR,EACA,cAAe,SAAU,OAAQ,CAChC,KAAK,eAAiB,OACtB,KAAK,aAAe,KAAK,gBAAgB,MAAM,EAC/C,KAAK,gBAAgB,MAAQ,OAAO,MACpC,KAAK,KAAO,GACZ,KAAK,UAAU,UAAY,CAE1B,IAAI,EAAI,IAAI,YAAY,QAAQ,EAChC,KAAK,gBAAgB,cAAc,CAAC,CACrC,CAAC,EACD,KAAK,MAAM,SAAU,OAAO,MAAO,KAAK,IAAI,CAC7C,EACA,iBAAkB,SAAUmH,QAAQ,CACnC,IAAI,aAAe,KAAK,aAAeA,QAEnC,cAAgB,GAAK,aAAe,KAAK,QAAQ,SACpD,KAAK,aAAe,cAGhB,KAAK,MACT,KAAK,aAAa,EAAI,CAExB,EACA,WAAY,UAAY,CACvB,KAAK,UAAU,UAAY,CACrB,KAAK,MAIT,KAAK,KAAO,GACZ,KAAK,MAAM,OAAO,KAAK,IAJvB,KAAK,KAAO,GACZ,KAAK,MAAM,OAAO,MAAM,EAK1B,CAAC,CACF,EACA,aAAc,SAAU,MAAO,CAC9B,GAAI,CAAC,KAAK,MAAQ,CAAC,MAAO,CACzB,KAAK,KAAO,GACZ,MACD,CAEA,KAAK,cAAc,KAAK,QAAQ,KAAK,YAAY,CAAC,EAClD,KAAK,KAAO,EACb,EACA,MAAO,UAAY,CAClB,KAAK,KAAO,EACb,CACD,CACD,CAAC,EAUD,SAAS,mBACR,cACAlD,QACAwB,iBACA,mBACA,aACA,QACA,iBACA,WACC,CAED,IAAI,QAAU,OAAO,eAAkB,WACpC,cAAc,QACd,cAGCxB,UACH,QAAQ,OAASA,QACjB,QAAQ,gBAAkBwB,iBAC1B,QAAQ,UAAY,IAIjB,qBACH,QAAQ,WAAa,IAIlB,UACH,QAAQ,SAAW,UAAY,SAGhC,IAAI,KAmCJ,GAlCI,kBACH,KAAO,SAAU,QAAS,CAEzB,QACC,SACC,KAAK,QAAU,KAAK,OAAO,YAC3B,KAAK,QAAU,KAAK,OAAO,QAAU,KAAK,OAAO,OAAO,WAEtD,CAAC,SAAW,OAAO,oBAAwB,MAC9C,QAAU,qBAGP,cACH,aAAa,KAAK,KAAM,OAAO,EAG5B,SAAW,QAAQ,uBACtB,QAAQ,sBAAsB,IAAI,gBAAgB,CAEpD,EAGA,QAAQ,aAAe,MACb,eACV,KAAO,WACJ,UAAY,CACb,aAAa,KACZ,MACC,QAAQ,WAAa,KAAK,OAAS,MAAM,MAAM,SAAS,UAC1D,CACD,EACE,cAGA,KACH,GAAI,QAAQ,WAAY,CAGvB,QAAQ,cAAgB,KAExB,IAAI,eAAiB,QAAQ,OAC7B,QAAQ,OAAS,SAAkC,EAAG,QAAS,CAC9D,YAAK,KAAK,OAAO,EACV,eAAe,EAAG,OAAO,CACjC,CACD,KAAO,CAEN,IAAI,SAAW,QAAQ,aACvB,QAAQ,aAAe,SACpB,CAAC,EAAE,OAAO,SAAU,IAAI,EACxB,CAAC,IAAI,CACT,CAGD,MAAO,CACN,QAAS,cACT,OACD,CACD,CAUA,IAAI,UAAY,mBACf,4CACA,OACA,gBACA,GACA,KACA,KACA,IAED,EAGA,GAAI,EAAS,IAAI,IACjB,UAAU,QAAQ,OAAS,0CACA,MAAM,SAAY,UAAU,QAEvD,IAAI,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAAe,cAAe,cAAe,cAAe,cAAe,cAE3V,SAAS,2BAA2BnC,QAAQ,SAAU,WAAY,QAAS,CAAO,YAAoB,OAAO,eAAeA,QAAQ,SAAU,CAAE,WAAY,WAAW,WAAY,aAAc,WAAW,aAAc,SAAU,WAAW,SAAU,MAAO,WAAW,YAAc,WAAW,YAAY,KAAK,OAAO,EAAI,MAAO,CAAC,CAAG,CAE3U,SAAS,0BAA0BA,QAAQ,SAAU,WAAY,WAAY,QAAS,CAAE,IAAI,KAAO,CAAC,EAAG,cAAO,KAAK,UAAU,EAAE,QAAQ,SAAU,IAAK,CAAE,KAAK,GAAG,EAAI,WAAW,GAAG,CAAG,CAAC,EAAG,KAAK,WAAa,CAAC,CAAC,KAAK,WAAY,KAAK,aAAe,CAAC,CAAC,KAAK,cAAkB,UAAW,MAAQ,KAAK,eAAe,KAAK,SAAW,IAAQ,KAAO,WAAW,MAAM,EAAE,QAAQ,EAAE,OAAO,SAAUyE,MAAM,UAAW,CAAE,OAAO,UAAUzE,QAAQ,SAAUyE,KAAI,GAAKA,KAAM,EAAG,IAAI,EAAO,SAAW,KAAK,cAAgB,SAAU,KAAK,MAAQ,KAAK,YAAc,KAAK,YAAY,KAAK,OAAO,EAAI,OAAQ,KAAK,YAAc,QAAiB,KAAK,cAAgB,SAAU,OAAO,eAAezE,QAAQ,SAAU,IAAI,EAAG,KAAO,MAAe,IAAM,CAEntB,SAAS,0BAA0B,WAAY,QAAS,CAAE,MAAM,IAAI,MAAM,oIAAyI,CAAG,CAmBtN,MAAM,MAAQ,CACb,MAAO,QACP,QAAS,UACT,MAAO,QACP,YAAa,cACb,OAAQ,QACT,EACM,kBAAoB,YAAY,GACtC,IAAI,aAAe,KAAO,wBAAwB,CACjD,WAAY,CACX,mBAAoB,QACrB,CACD,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,MAAQ,KAAK,CAChB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,KAAK,CACjB,SAAU,EACX,CAAC,EAAG,OAAS,MAAM,SAAS,EAAG,KAAK,QAAU,QAAU,cAA0B,OAAQ,CACzF,eAAe,KAAM,CACpB,MAAM,GAAG,IAAI,EAEb,2BAA2B,KAAM,mBAAoB,YAAa,IAAI,EAEtE,2BAA2B,KAAM,UAAW,aAAc,IAAI,EAE9D,2BAA2B,KAAM,QAAS,aAAc,IAAI,EAE5D,2BAA2B,KAAM,iBAAkB,aAAc,IAAI,EAErE,2BAA2B,KAAM,oBAAqB,aAAc,IAAI,EAExE,2BAA2B,KAAM,0BAA2B,aAAc,IAAI,EAE9E,2BAA2B,KAAM,gBAAiB,aAAc,IAAI,EAEpE,2BAA2B,KAAM,mBAAoB,aAAc,IAAI,EAEvE,2BAA2B,KAAM,mBAAoB,aAAc,IAAI,EAEvE,2BAA2B,KAAM,YAAa,cAAe,IAAI,EAEjE,2BAA2B,KAAM,aAAc,cAAe,IAAI,EAElE,2BAA2B,KAAM,gBAAiB,cAAe,IAAI,EAErE,2BAA2B,KAAM,2BAA4B,cAAe,IAAI,EAEhF,2BAA2B,KAAM,mBAAoB,cAAe,IAAI,EAExE,2BAA2B,KAAM,cAAe,cAAe,IAAI,EAEnE,KAAK,QAAU,GACf,KAAK,QAAU,KACf,KAAK,QAAU,KACf,KAAK,aAAe,OACpB,KAAK,eAAiB,OACtB,KAAK,oBAAsB,OAC3B,KAAK,cAAgB,OACrB,KAAK,iBAAmB,OACxB,KAAK,mBAAqB,OAC1B,KAAK,SAAW,OAChB,KAAK,SAAW,EAChB,KAAK,UAAY,OACjB,KAAK,gBAAkB,OACvB,KAAK,YAAc,KACnB,KAAK,eAAiB,KACtB,KAAK,UAAY,KACjB,KAAK,cAAgB,OAErB,KAAK,mBAAqB,IAAM,CAC/B,eAAe,EAAE,yBAAyB,EAAE,KAAK,CAClD,EAEA,KAAK,mBAAqB,IAAM,CAC/B,eAAe,EAAE,yBAAyB,EAAE,KAAK,CAClD,CACD,CAEA,MAAO,CACN,MAAM,QAAU,KAAK,QAAQ,SAAS,KAAK,GAAK,EAAE,KAAO,KAAK,gBAAgB,EAC9E,IAAI,MACJ,eAAQ,IAAI,mBAAmB,EAC/B,QAAQ,IAAI,OAAO,EACf,QAAQ,eACX,MAAQ,QAAQ,eACN,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,OAAS,IAC5D,MAAQ,KAAK,QAAQ,MAAM,CAAC,GAGtB,CACN,QAAS,QAAQ,QACjB,QAAS,QAAQ,QACjB,QAAS,QAAQ,QACjB,aAAc,GACd,eAAgB,GAChB,oBAAqB,GACrB,cAAe,MAAQ,MAAM,GAAK,OAClC,iBAAkB,IAAI,IACtB,mBAAoB,GACpB,SAAU,OAAO,WAAW,+BAA+B,kBAAkB,GAAG,KAAK,EAAE,QACvF,SAAU,EACV,UAAW,GACX,gBAAiB,GACjB,eAAgB,GAChB,eAAgB,KAChB,UAAW,KACX,cAAe,IAChB,CACD,CAIA,IAAI,SAAU,CACb,OAAO,KAAK,QAAQ,SAAS,KAAK,GAAK,EAAE,UAAY,KAAK,SAAW,EAAE,SAAW,KAAK,SAAW,EAAE,UAAY,KAAK,OAAO,CAC7H,CAIA,IAAI,QAAS,CACZ,OAAO,KAAK,SAAW,KAAK,QAAQ,kBAAoB,KAAK,QAAQ,iBAAmB,KAAK,QAAQ,KACtG,CAIA,IAAI,OAAQ,CACX,OAAI,KAAK,aACD,MAAM,OAGV,KAAK,eACD,MAAM,MAGV,KAAK,QACJ,KAAK,QAAQ,UACT,MAAM,MAEN,MAAM,QAGP,MAAM,WAEf,CAIA,IAAI,mBAAoB,CACvB,MAAO,CAAC,KAAK,SAAW,CAAC,KAAK,QAAQ,SACvC,CAIA,IAAI,aAAc,CACjB,OAAQ,KAAK,QAAQ,OAAS,CAAC,GAAG,KAAK,GAAK,EAAE,KAAO,KAAK,aAAa,CACxE,CAIA,IAAI,oBAAqB,CACxB,OAAI,KAAK,aAAe,KAAK,YAAY,aAAe,QAChD,KAAK,aAGL,KAAK,QAAQ,OAAS,CAAC,GAAG,KAAK,GAAK,EAAE,aAAe,OAAO,CACrE,CAEA,kBAAmB,CAClB,KAAK,SAAW,CAAC,KAAK,SAAW,CAClC,CAEA,kBAAmB,CAClB,KAAK,SAAW,KAAK,IAAI,EAAG,CAAC,KAAK,SAAW,CAAC,CAC/C,CAIA,SAAS,QAAS,CACjB,IAAI,MAAQ,KAAK,iBAAiB,IAAI,OAAO,EAE7C,GAAI,CAAC,MAAO,CACX,MAAM,GAAK,KAAK,QAAQ,OAAS,CAAC,GAAG,KAAK0E,IAAKA,GAAE,KAAO,OAAO,EACzD1E,QAAS,KAAK,MAAM,aAAa,EAAE,SAAW,CAAC,EACrD,MAAQ,IAAI,aAAa,KAAK,MAAO,KAAK,UAAW,EAAGA,OAAM,EAC9DA,QAAO,iBAAiB,aAAc,KAAK,YAAY,KAAK,IAAI,CAAC,EACjEA,QAAO,iBAAiB,cAAe,KAAK,aAAa,KAAK,IAAI,CAAC,EACnEA,QAAO,iBAAiB,aAAc,KAAK,cAAc,KAAK,IAAI,CAAC,EACnE,KAAK,iBAAiB,IAAI,QAAS,KAAK,CACzC,CAEA,OAAO,KACR,CAEA,MAAM,+BAA+B,UAAW,aAAc,CAC7D,GAAI,CAAC,KAAK,iBAAkB,OAC5B,MAAM,kBAAoB,aAAe,UAAY,kCAE/C,aAAe,MADJ,MAAM,OAAO,MAAM,iBAAiB,GACjB,KAAK,EACzC,IAAI,YAAc,SAAS,cAAc,KAAK,EAC9C,YAAY,UAAY,aACC,YAAY,cAAc,iCAAiC,EAGnF,KAAK,eAAiB,YAAY,kBAAkB,UAEpD,KAAK,eAAiB,GAGvB,KAAK,UAAU,IAAM,CAEpB,IAAI,iBAAmB,KAAK,IAAI,cAAc,4CAA4C,EAC1F,GAAK,mBACL,iBAAiB,YAAc,aAE/B,KAAK,eAAiB,KAAK,IAAI,cAAc,6BAA6B,EACtE,EAAC,KAAK,gBAEV,MAAK,UAAY,KAAK,IAAI,cAAc,uCAAuC,EAC3E,KAAK,WAAW,KAAK,UAAU,iBAAiB,QAAS,KAAK,kBAAkB,EACpF,KAAK,WAAa,KAAK,IAAI,cAAc,oCAAoC,EACzE,KAAK,YAAY,KAAK,WAAW,iBAAiB,QAAS,KAAK,mBAAmB,EAEvF,IAAIoB,YAAa,SAAS,cAAc,gBAAgB,EACxDA,YAAW,aAAa,KAAK,eAAgBA,YAAW,UAAU,EACnE,CAAC,CACF,CAEA,4BAA4B,EAAG,CAC1B,CAAC,EAAE,OAAO,UAAU,SAAS,sCAAsC,GAAK,CAAC,KAAK,eAAe,SAAS,EAAE,MAAM,IACjH,EAAE,eAAe,EACjB,KAAK,oBAAoB,EAE3B,CAEA,oBAAqB,CACpB,SAAS,KAAK,UAAU,IAAI,+BAA+B,EAC3D,KAAK,eAAe,UAAU,IAAI,4BAA4B,EAC9D,kBAAkB,KAAK,cAAc,EACrC,SAAS,iBAAiB,QAAS,KAAK,2BAA2B,EACnE,KAAK,cAAc,UAAU,CAC5B,UAAW,KAAK,eAChB,eAAgB,KAAK,IAAI,cAAc,uCAAuC,CAC/E,CAAC,CACF,CAEA,qBAAsB,CACrB,SAAS,KAAK,UAAU,OAAO,+BAA+B,EAC9D,KAAK,eAAe,UAAU,OAAO,4BAA4B,EACjE,iBAAiB,KAAK,cAAc,EACpC,SAAS,oBAAoB,QAAS,KAAK,2BAA2B,EACtE,KAAK,cAAc,gBAAgB,CAClC,UAAW,KAAK,eAChB,eAAgB,KAAK,IAAI,cAAc,uCAAuC,CAC/E,CAAC,CACF,CAEA,YAAa,CAKZ,MAAM,cAAgB,KAAK,IAAI,cAAc,2BAA2B,EACxE,IAAI,eAAiB,GACjB,eAAe,QAAQ,mBAAmB,IAC7C,eAAiB,IAGlB,MAAM,gBAAkB,eAAe,QAAQ,oDAAoD,EAG7F,WAAa,iBAAiB,aAAa,mBAAmB,IAAM,OACpE,oBAAsB,iBAAiB,aAAa,6BAA6B,IAAM,OAEvF,mBAAqB,YAAc,oBAEnC,kBAAoB,CAAC,CAAC,KAAK,IAAI,QAAQ,mBAAmB,EAG1D,UAAY,kBAAoB,EAAI,KAAK,cACzC,qBAAuB,kBAAoB,GAAQ,UAAY,EAE/D,eAAiB,CACtB,UAAW,aACX,cAAe,UACf,eAAgB,qBAChB,oBAAqB,GACrB,aAAc,kBAAoB,EAAI,GACtC,UAAW,GACX,WAAY,GACZ,WAAY,CACX,GAAI,qBACJ,UAAW,EACZ,CACD,EAEM,UAAY,CACjB,UAAW,aACX,cAAe,IACf,eAAgB,GAChB,aAAc,EACd,oBAAqB,GACrB,UAAW,GACX,WAAY,GACZ,WAAY,CACX,GAAI,qBACJ,UAAW,EACZ,EACA,WAAY,CACX,OAAQ,sBACR,OAAQ,qBACT,EACA,YAAa,CAEZ,IAAK,CACJ,cAAe,KAAK,cACpB,eAAgB,KAAK,cAAgB,EACrC,aAAc,EAGf,CACD,CACD,EAkBA,GAhBA,KAAK,YAAc,IAAI,kBAAkB,KAAK,IAAI,cAAc,mBAAmB,EAAG,gBAAkB,CAAC,mBAAqB,eAAiB,SAAS,EACxJ,KAAK,YAAY,GAAG,cAAe,IAAM,CACxC,GAAI,KAAK,wBAAyB,CACjC,MAAM,MAAQ,KAAK,QAAQ,MAAM,KAAK,YAAY,WAAW,EAC7D,KAAK,uBAAuB,KAAK,CAClC,CAEA,KAAK,iBAAiB,QAAQ,GAAK,EAAE,MAAM,CAAC,CAC7C,CAAC,EACD,KAAK,YAAY,eAAiB,KAAK,mBAAqB,KAAK,SAE7D,KAAK,QAAQ,gBAChB,KAAK,QAAQ,KAAK,SAAS,KAAK,QAAQ,eAAe,EAAE,EAAG,EAAI,EAI7D,CAAC,KAAK,kBAAmB,CAC5B,IAAI,WAAa,KAEjB,GAAI,KAAK,IAAI,cAAc,iDAAiD,EAAG,CAC9E,MAAM,QAAU,SAEf,KAAK,IAAI,cAAc,iDAAiD,EAAE,QAAQ,QAAS,EAAE,EAC9F,WAAa,KAAK,SAAS,OAAO,CACnC,CAEI,YAAc,KAAK,kBACtB,WAAW,cAAc,CAE3B,CACD,CAEA,cAAe,CACd,KAAK,YAAY,QAAQ,EACzB,KAAK,YAAc,MACpB,CAEA,IAAI,WAAY,CACf,OAAO,KAAK,mBAAqB,KAAK,QACvC,CAEA,IAAI,eAAgB,CACnB,MAAO,CAAC,KAAK,mBAAqB,KAAK,eAAiB,CAAC,KAAK,QAC/D,CAEA,UAAW,CACV,IAAI,UAAY,SAAS,iBAAiB,oBAAoB,EAE1D,UAAU,OAAS,GACtB,UAAU,QAAQ,CAAC,QAAS1E,SAAU,CACrC,IAAI,QAAU,SAAS,cAAc,SAAS,QAAQ,EAAE,EAAE,EAE1D,GAAI,QAAS,CACZ,IAAI,WAAa,SAAS,cAAc,sBAAsB,QAAQ,EAAE,EAAE,EACtE,WAAa,WAAW,cAAc,YAAY,UAAU,EAChE,QAAQ,OAAO,UAAU,CAC1B,CACD,CAAC,CAEH,CAEA,gBAAiB,CAChB,IAAI,gBAAkB,SAAS,iBAAiB,mBAAmB,EAE/D,gBAAgB,OAAS,GAC5B,gBAAgB,QAAQ,CAAC,QAASA,SAAU,CAC3C,IAAI,QAAU,SAAS,cAAc,SAAS,QAAQ,EAAE,EAAE,EAE1D,GAAI,QAAS,CACZ,IAAI,iBAAmB,SAAS,cAAc,qBAAqB,QAAQ,EAAE,EAAE,EAC3E,WAAa,iBAAiB,cAAc,YAAY,gBAAgB,EAC5E,QAAQ,OAAO,UAAU,CAC1B,CACD,CAAC,CAEH,CAEA,SAAU,CACT,KAAK,SAAS,EACd,KAAK,eAAe,EAKpB,IAAI,YAAc,KAAK,IAAI,cAAc,oBAAoB,EACzD,SAAW,KAAK,IAAI,cAAc,cAAc,EAEhD,aACH,YAAY,aAAa,OAAQ,gBAAgB,EAG9C,UACH,SAAS,aAAa,OAAQ,UAAU,EAGzC,KAAK,IAAI,cAAc,gBAAgB,EAAE,iBAAiB,SAAU,KAAK,WAAW,EACpF,KAAK,iBAAmB,IAAI,IAC5B,KAAK,cAAgB,IAAI,eAErB,KAAK,eAAiB,KAAK,YAC9B,KAAK,WAAW,EAGjB,KAAK,+BAA+B,KAAK,QAAQ,GAAI,KAAK,QAAQ,KAAK,EACvE,KAAK,IAAI,iBAAiB,uBAAwB,KAAK,cAAc,KAAK,IAAI,CAAC,EAE1E,KAAK,eAEQ,KAAK,IAAI,iBAAiB,kDAAkD,EACpF,QAAQ,SAAW,CAC3B,GAAI,QAAQ,QAAQ,WAAa,QAAS,CACzC,MAAM,MAAQ,SAAS,QAAQ,QAAQ,QAAS,EAAE,EAC5C,SAAW,KAAK,SAAS,KAAK,EAEhC,UAAY,KAAK,kBACpB,SAAS,cAAc,CAEzB,CACD,CAAC,EAGE,KAAK,qBAGR,OAAO,QAAQ,aAAa,CAAC,CAC5B,KAAM,aACN,QAAS,KACV,CAAC,CAAC,EACF,SAAS,iBAAiB,oBAAqB,IAAM,CAEpD,WAAW,IAAM,CAChB,SAAS,KAAK,UAAU,OAAO,WAAW,CAC3C,EAAG,GAAG,CACP,CAAC,GAGF,OAAO,UAAY,OAAO,WAAa,UAAY,EACjD,OAAO,UAAU,EAAI,OAAO,UAAU,GAAK,CAAC,GAAG,KAAK,SAAS,CAC/D,EAEA,MAAM,QAAU,KAAK,QAAQ,OAAS,CAAC,GAAG,OAAO,GAAK,EAAE,aAAe,OAAO,EAE1E,OAAO,UAAU,UACpB,OAAO,UAAU,UAAU,MAAM,EAEjC,OAAO,UAAU,YAAa,MAAM,CAEtC,CAEA,iBAAkB,CACjB,MAAM,YAAc,IAAI,YAAY,iCAAkC,CACrE,OAAQ,CACP,eAAgB,KAAK,OACtB,CACD,CAAC,EAED,SAAS,cAAc,WAAW,EAElC,SAAS,YAAY,UAAW,CAC/B,MAAM,QAAU,SAAS,eAAe,SAAS,EACjD,QAAQ,cAAc,MAAM,GAAG,OAAO,EACtC,MAAM,aAAe,SAAS,cAAc,qBAAqB,EAAE,YAEnE,OAAO,aAAe,KAAK,MAAM,YAAY,EAAI,CAAC,CACnD,CAEA,MAAM,SAAW,YAAY,cAAc,EAE3C,SAAS,oBAAoB,eAAgB,eAAgB,CAC5D,MAAM,aAAe,eAAe,QAC9B,iBAAmB,eAAe,SAAS,OAAO,SAAW,QAAQ,UAAY,YAAY,EAC7F,2BAA6B,SAAS,iBAAiB,cAAc,EAEtE,SAAS,QAAQ,2BAEtB,iBAAiB,QAAS,SAAY,CACrC,MAAM,sBAAwB,MAAM,KAAK,0BAA0B,EAAE,KAAM,SAAY,QAAQ,QAAQ,OAAS,QAAQ,OAAO,EAC/H,GAAI,sBAAuB,CAC1B,MAAM,aAAe,sBAAsB,cAAc,OAAO,GAC5C,QAAQ,IAAM,eAAe,GAAK,eAAe,UAAY,QAAQ,YAExF,sBAAsB,UAAU,OAAO,SAAS,EAChD,sBAAsB,UAAU,OAAO,WAAW,EAClD,sBAAsB,UAAU,IAAI,WAAW,IAE/C,sBAAsB,UAAU,OAAO,SAAS,EAChD,sBAAsB,UAAU,OAAO,WAAW,EAClD,sBAAsB,UAAU,IAAI,SAAS,GAE1C,eACH,aAAa,UAAY,aAAa,QAAQ,eAAe,GAAG,yBAElE,CACD,CAAC,CACF,CAEA,SAAS,mBAAmB,eAAgB,eAAgB,CAC3D,GAAI,CAAC,SAAS,QAAQ,yBAA0B,OAGvB,SAAS,iBAAiB,SAAS,EAE3C,QAAQ,iBAAmB,CAE3C,MAAM,YAAc,SAAS,gBAAgB,aAAa,mBAAmB,CAAC,EAC9E,GAAI,MAAM,WAAW,EAAG,OAGxB,MAAM,aAAe,eAAe,QAAQ,WAAW,EACvD,GAAI,CAAC,aAAc,OAGnB,MAAM,cAAgB,gBAAgB,cAAc,iCAAiC,EACrF,GAAI,CAAC,cAAe,OAGC,cAAc,iBAAiB,kDAAkD,EACzF,QAAQ,aAAe,CACnC,YAAY,YAAc,YAC3B,CAAC,CACF,CAAC,CACF,CAGA,SAAS,iBAAiB,uCAAyC,OAAU,CAC5E,MAAM,eAAiB,MAAM,OAAO,eAC9B,eAAiB,MAAM,OAAO,eAC9B,WAAa,MAAM,OAAO,YAEhC,oBAAoB,eAAgB,cAAc,EAClD,mBAAmB,eAAgB,cAAc,EAG7C,YAAc,WAAW,4BAC5B,WAAW,2BAA2B,cAAc,CAEtD,CAAC,EAED,MAAM,iBAAmB,IAAI,YAC5B,uCACA,CACC,OAAQ,CACP,eAAgB,KAAK,QACrB,eAAgB,KAAK,QACrB,YAAa,IACd,CACD,CACD,EAIA,GAFA,SAAS,cAAc,gBAAgB,EAEnC,KAAK,QAAS,CAWjB,GAVK,KAAK,QAAQ,UAIjB,KAAK,mBAAmB,GAHxB,KAAK,mBAAqB,GAC1B,KAAK,mBAAmB,GAKzB,KAAK,cAAc,KAAK,OAAO,EAC/B,KAAK,+BAA+B,KAAK,QAAQ,GAAI,KAAK,QAAQ,KAAK,EAEnE,KAAK,QAAQ,eAAgB,CAChC,MAAM,aAAe,KAAK,IAAI,cAAc,mBAAmB,KAAK,QAAQ,eAAe,EAAE,IAAI,EACjG,KAAK,qBAAqB,aAAc,CACvC,KAAM,EACP,CAAC,CACF,CAGA,MAAMN,MAAO,KACb,KAAK,cAAgB,KAAK,IAAI,cAAc,gBAAgB,EAC5D,KAAK,UAAU,IAAM,CACpB,MAAM,MAAQ,IAAI,MAAM,QAAQ,EAChCA,MAAK,cAAc,cAAc,KAAK,CACvC,CAAC,CACF,MACC,KAAK,mBAAmB,CAE1B,CAEA,qBAAqB,EAAG,CACvB,EAAE,eAAe,EAEb,EAAE,cAAc,SAAS,EAAE,OAAO,QAAQ,GAAG,CAAC,IACjD,KAAK,mBAAqB,GAE5B,CAEA,YAAY,EAAG,CACV,KAAK,cAER,KAAK,YAAY,eAAiB,GAGlC,KAAK,YAAY,iBAAiB,EAEpC,CAEA,aAAa,EAAG,CACX,KAAK,cAER,KAAK,YAAY,eAAiB,GAEpC,CAEA,cAAc,EAAG,CAChB,EAAE,OAAO,OAAO,cAAc,wBAAwB,EAAE,iBAAiB,QAAS,KAAK,gBAAgB,KAAK,IAAI,CAAC,CAClH,CAEA,cAAc,EAAG,CAChB,MAAM,QAAU,eAAe,EAAE,KAAK,GAAG,EAAE,KAAK,wBAAwB,EAAE,EAAE,OAAO,KAAK,EAClF,aAAe,KAAK,iBAAiB,IAAI,SAAS,QAAQ,QAAQ,QAAS,EAAE,CAAC,EAC9E,QAAU,aAAa,MAAM,aAAe,SAAW,aAAa,MAAM,aAAe,iBACzF,YAAc,KAAK,IAAI,QAAQ,mBAAmB,EACxD,KAAK,qBAAqB,QAAS,CAClC,KAAM,EAAE,OAAO,UACf,UAAW,EAAE,OAAO,WAAa,CAAC,KAAK,UAAY,CAAC,aAAe,QAEnE,MAAO,EAAE,OAAO,KACjB,CAAC,CACF,CAGA,gBAAgB,EAAG,CAClB,MAAM4D,QAAS,EAAE,OACX,cAAgB,EAAE,cAyBxB,GAvBCA,QAAO,QAAQ,iBAAiB,GAChCA,QAAO,QAAQ,gBAAgB,GAC/BA,QAAO,QAAQ,6CAA6C,GAIzD,EAAE,OAAS,YACV,EAAE,UAAY,IAAM,EAAE,UAAY,IAIlCA,QAAO,UAAU,SAAS,iCAAiC,GAAKA,QAAO,UAAU,SAAS,sBAAsB,KAKrH,EAAE,eAAe,EAEbA,QAAO,UAAU,SAAS,+BAA+B,IAKzDA,QAAO,UAAY,gBAAkBA,QAAO,UAAU,SAAS,2CAA2C,EAE7G,OAGD,MAAM,SAAW,cAAc,UAAU,SAAS,+BAA+B,EAC3E,SAAW,cAAc,UAAU,SAAS,+BAA+B,EAE7E,KAAK,eACR,KAAK,iBAAiB,aAAa,EAGhC,YAAY,WAKhB,KAAK,qBAAqB,cAAe,CACxC,KAAM,GACN,WAAY,EACb,CAAC,CACF,CAEA,qBAAqB,QAAS,QAAS,CACtC,GAAI,CAAC,QACJ,OAGD,MAAM,aAAe,KAAK,SAAS,SAAS,QAAQ,QAAQ,QAAS,EAAE,CAAC,EACxE,KAAK,cAAgB,aAAa,MAAM,GACxC,KAAK,QAAQ,YAAY,EAEzB,KAAK,iBAAiB,QAAQ,mBAAqB,CAC9C,kBAAkB,UAAY,aAAa,SAC9C,kBAAkB,MAAM,CAE1B,CAAC,EACD,eAAe,EAAE,KAAK,GAAG,EAAE,KAAK,kCAAkC,EAAE,IAAI,OAAO,EAAE,YAAY,iCAAiC,EAC9H,QAAQ,UAAU,IAAI,iCAAiC,EAEnD,QAAQ,WACX,aAAa,WAAW,EACd,QAAQ,UAClB,aAAa,KAAK,EACR,QAAQ,MAClB,aAAa,KAAK,EAGf,QAAQ,OACX,aAAa,MAAM,EAKhB,OAAO,qBAAuB,QAAQ,QAAQ,SACjD,OAAO,oBAAoB,QAAQ,QAAQ,OAAO,CAEpD,CAEA,MAAM,YAAY,EAAG,CACpB,EAAE,eAAe,EACjB,KAAK,aAAe,GACpB,KAAK,UAAY,GAEjB,SAAS,cAAc,iDAAiD,EAAE,MAAM,QAAU,QAE1F,GAAI,CACH,MAAMzD,MAAO,eAAe,EAAE,KAAK,IAAI,cAAc,gBAAgB,CAAC,EAAE,UAAU,EAC5E,eAAiB,eAAe,EAAE,KAAK,IAAI,cAAc,gBAAgB,CAAC,EAChF,IAAI,iBAAmB,GAOvB,GALI,KAAK,iBAAmB,KAAK,2BAChC,iBAAmB,eAAiB,KAAK,MAAM,aAAa,eAAiB,KAAO,KAAK,MAAM,aAAa,KAIzG,KAAK,iBAAmB,KAAK,yBAA0B,CAC1D,MAAM,SAAW,CAChB,MAAO,CAAC,CACP,GAAI,KAAK,yBACT,SAAU,KAAK,QAChB,CAAC,CACF,EACM,aAAe,MAAM,OAAO,MAAM,eAAgB,CACvD,OAAQ,OACR,YAAa,cACb,QAAS,CACR,eAAgB,mBAChB,mBAAoB,gBACrB,EACA,KAAM,KAAK,UAAU,QAAQ,CAC9B,CAAC,EACK,cAAgB,MAAM,aAAa,KAAK,EAE9C,GAAI,CAAC,aAAa,GAAI,CACjB,cAAc,QAAU,MAC3B,KAAK,UAAY,cAAc,aAGhC,KAAK,aAAe,GACpB,MACD,CACD,CAEA,MAAM,SAAW,MAAM,OAAO,MAAM,eAAgB,CACnD,OAAQ,OACR,YAAa,cACb,QAAS,CACR,eAAgB,oCAChB,mBAAoB,gBACrB,EACA,KAAMA,MAAO,gBACd,CAAC,EACK,UAAY,MAAM,SAAS,KAAK,EAEtC,GAAI,CAAC,SAAS,GAAI,CAGb,UAAU,QAAU,MACvB,KAAK,UAAY,UAAU,aAG5B,KAAK,aAAe,GACpB,MACD,CAUA,MAAM,KAAO,MARK,MAAM,MAAM,OAAO,QAAQ,OAAO,KAAO,SAAS,EAClE,KAAKoI,WACEA,UAAS,KAAK,CACrB,EACA,MAAO,OAAU,CACjB,QAAQ,MAAM,SAAU,KAAK,CAC9B,CAAC,EAKF,GAAI,OAAO,OAAO,QAAY,IAAa,CAC1C,IAAI,UAAY,UAAU,MAAQ,UAAU,MAAQ,CAAC,SAAS,EAC1D,iBAAmB,UAAU,KAAK,SAAS,EAAG,CAClD,OAAO,EAAE,yBACP,EAAE,wBAAwB,cAC1B,EAAE,wBAAwB,aAAa,EACzC,CAAC,EACG,kBACJ,OAAO,QAAQ,KAAK,CAAC,QAAS,4BAA6B,CAC1D,YAAa,KAAK,YAAc,IAChC,OAAQ,KAAK,YAAc,IAC3B,YAAa,iBAAiB,cAC9B,UAAW,iBAAiB,WAC5B,IAAK,iBAAiB,IACtB,UAAW,iBAAiB,WAC5B,SAAU,iBAAiB,SAC3B,MAAO,iBAAiB,MAAQ,IAChC,SAAU,iBAAiB,MAC3B,IAAK,OAAO,SAAS,OAAS,iBAAiB,IAC/C,mBAAoB,iBAAiB,wBAAwB,aAAa,GAC1E,qBAAsB,iBAAiB,wBAAwB,aAAa,KAC5E,kBAAmB,iBAAiB,wBAAwB,aAAa,oBAC1E,CAAC,CAAC,CAEH,CAGA,MAAM,sBAAwB,KAAK,IAAI,cAAc,oBAAoB,EACzE,KAAK,aAAe,GAEhB,KAAK,aAAe,UAAY,CAAC,sBACpC,KAAK,MAAM,kBAAkB,OAAQ,GAAM,CAC1C,IACD,CAAC,EACS,KAAK,aAAe,SAAW,CAAC,uBAC1C,KAAK,eAAiB,GACtB,WAAW,IAAM,CAChB,KAAK,eAAiB,EACvB,EAAG,GAAI,EACP,KAAK,MAAM,iBAAiB,IAAI,IACtB,KAAK,aAAe,QAAU,yBACxC,OAAO,SAAS,KAAO,SAGxB,SAAS,cAAc,iDAAiD,EAAE,MAAM,QAAU,MAC3F,OAAST,GAAG,CACX,QAAQ,MAAM,0BAA2BA,EAAC,CAC3C,CACD,CAEA,iBAAiBlE,QAAQ,CACxB,MAAM,aAAe,KAAK,SAAS,SAASA,QAAO,QAAQ,QAAS,EAAE,CAAC,EACvE,KAAK,QAAQ,YAAY,EACzB,KAAK,uBAAuB,aAAa,KAAK,CAC/C,CAEA,QAAQ,aAAc,cAAgB,GAAO,CACxC,KAAK,aACR,KAAK,YAAY,QAAQ,aAAa,MAAM,SAAW,EAAG,KAAK,WAAa,CAAC,cAAgB,IAAM,CAAC,CAEtG,CAEA,uBAAuB,MAAO,CAE7B,GAAI,KAAK,wBAAyB,CACjC,MAAM,QAAU,KAAK,QAAQ,SAAS,KAAK,GAAK,EAAE,gBAAkB,EAAE,eAAe,KAAO,MAAM,EAAE,EAEhG,UACH,KAAK,QAAU,QAAQ,QACvB,KAAK,QAAU,QAAQ,QACvB,KAAK,QAAU,QAAQ,QAEzB,CACD,CAEA,iBAAiB,MAAO,KAAM,CAC7B,KAAK,SAAS,IAAI,EAAE,EAAI,KACzB,CAEA,2BAA2B,eAAgB,CAG1C,WAAW,IAAM,CAGhB,IAAI,2BAA6B,EAC7B,4BAA8B,EAC9B,kBAAoB,KAExB,GAAI,gBAAkB,eAAe,0BAA4B,eAAe,yBAAyB,OAAS,EAAG,CACpH,MAAM,sBAAwB,eAAe,yBAAyB,CAAC,EAEvE,GAAI,sBAAsB,mBAAqB,sBAAsB,kBAAkB,OAAS,EAAG,CAClG,MAAM,gBAAkB,sBAAsB,kBAAkB,CAAC,EAG3D,cAAgB,eAAe,MAC/B,uBAAyB,gBAAgB,MAE3C,cAAgB,yBACnB,4BAA8B,KAAK,OAAQ,cAAgB,wBAA0B,cAAiB,GAAG,EACzG,2BAA6B,4BAA8B,EAC3D,kBAAoB,uBAItB,CAED,SAGK,KAAK,SAAW,KAAK,QAAQ,qBAAuB,KAAK,QAAQ,oBAAoB,OAAS,EAAG,CACpG,MAAM,iBAAmB,KAAK,QAAQ,oBAAoB,CAAC,EAC3D,GAAI,iBAAiB,eAAiB,iBAAiB,cAAc,OAAS,EAAG,CAChF,MAAM,YAAc,iBAAiB,cAAc,CAAC,EAChD,YAAY,mBAAqB,YAAY,kBAAkB,OAAS,IAE3E,4BADwB,YAAY,kBAAkB,CAAC,EACT,MAC9C,2BAA6B,4BAA8B,EAE3D,kBAAoB,eAAiB,eAAe,OAAS,IAAM,6BAA+B,IAAM,KAE1G,CACD,CAI0B,SAAS,iBAAiB,sCAAsC,EAExE,QAAQ,CAAC,kBAAmBtD,SAAU,CAGxD,IAAI,mBAAqB,kBAAkB,cAAc,yBAAyB,EAC9E,QAAU,kBAAkB,cAAc,kBAAkB,EAI5D,oBAAsB,CAAC,mBAAmB,QAAQ,kBACrD,mBAAmB,QAAQ,gBAAkB,mBAAmB,aAG5D,oBAAoB,QAAQ,eAChC,mBAAmB,QAAQ,aAAe,mBAAmB,WAG1D,SAAW,CAAC,QAAQ,QAAQ,kBAC/B,QAAQ,QAAQ,gBAAkB,QAAQ,aAI3C,MAAM,gBAAkB,2BAA6B,EAC/C,oBAAsB,oBAAsB,mBAAmB,YAAY,SAAS,MAAM,EAOhG,GAAI,iBAAmB,qBAAuB,CAAC,mBAgB9C,GAbK,qBACJ,mBAAqB,SAAS,cAAc,MAAM,EAClD,mBAAmB,UAAY,yBAC/B,kBAAkB,YAAY,kBAAkB,GAG5C,UACJ,QAAU,SAAS,cAAc,MAAM,EACvC,QAAQ,UAAY,0BACpB,kBAAkB,YAAY,OAAO,GAIlC,iBAOH,GALA,mBAAmB,UAAY,mBAAmB,QAAQ,aAKtD,kBACH,GAAI,CAEH,GAAI,QAAS,CAEZ,MAAM,aAAe,QAAQ,QAAQ,OAAS,QAAQ,QAAQ,iBAAmB,GACjF,QAAQ,YAAc,IAAI,YAAY,GACtC,QAAQ,MAAM,QAAU,EACzB,CAED,OAAS,MAAO,CACf,QAAQ,MAAM,mBAAmBA,OAAQ,CAAC,4BAA6B,KAAK,CAC7E,MAIK,CAEN,MAAM,cAAgB,QAAQ,QAAQ,gBAClC,eACH,QAAQ,YAAc,cACtB,QAAQ,MAAM,QAAU,KAExB,QAAQ,YAAc,GACtB,QAAQ,MAAM,QAAU,OAE1B,CAEF,CAAC,EAGmC,SAAS,iBAAiB,iCAAiC,EACnE,QAAQ,SAAW,CAC1C,2BAA6B,EAChC,QAAQ,YAAc,oBAAoB,2BAA2B,IAErE,QAAQ,YAAc,WAExB,CAAC,CAEF,EAAG,GAAG,CACP,CAKA,cAAc,QAAS,CACtB,MAAM,gBAAkB,KAAK,QAAQ,SAAS,OAAS,EAEvD,GAAI,QAAQ,cAAgB,CAAC,KAAK,mBAAqB,gBAAiB,CAEvE,IAAI,OAAS,CAAC,EAEV,OAAO,SAAS,OAAO,OAAS,IAEnC,OAAS,OAAO,SAAS,OAAO,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,OAAOkI,IACnDA,GAAE,QAAQ,UAAU,IAAM,CACjC,GAIF,OAAO,KAAK,WAAa,QAAQ,EAAE,EAEnC,MAAM,OAAS,OAAO,SAAS,SAAW,KAAO,OAAO,SAAS,KAAO,OAAO,SAAS,SAAW,IAAM,OAAO,KAAK,GAAG,EACxH,OAAO,QAAQ,aAAa,CAC3B,KAAM,MACP,EAAG,GAAI,MAAM,CACd,CACD,CAGA,MAAM,MAAO,CACZ,OAAO,KAAK,MAAM,YAAY,KAAK,CACpC,CAEA,yBAAyB,CACxB,WACA,aACD,EAAG,CACF,MAAM,YAAc,WAAW,OAAS,kBAAkB,MACpD,aAAe,cAAc,OAAS,kBAAkB,MAE1D,cAAgB,eACnB,KAAK,SAAW,YAEZ,KAAK,cACR,KAAK,YAAY,eAAiB,KAAK,WAGnC,KAAK,gBACL,KAAK,WAAa,CAAC,KAAK,YAC3B,KAAK,WAAW,EACN,CAAC,KAAK,WAAa,KAAK,aAClC,KAAK,aAAa,GAItB,CAED,EAAI,YAAc,0BAA0B,QAAQ,UAAW,mBAAoB,CAAC,KAAK,EAAG,CAC3F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,UAAW,CAAC,KAAK,EAAG,CACnF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,QAAS,CAAC,KAAK,EAAG,CACjF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,iBAAkB,CAAC,KAAK,EAAG,CAC1F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,oBAAqB,CAAC,KAAK,EAAG,CAC7F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,0BAA2B,CAAC,KAAK,EAAG,CACnG,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,gBAAiB,CAAC,KAAK,EAAG,CACzF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,mBAAoB,CAAC,KAAK,EAAG,CAC5F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,aAAe,0BAA0B,QAAQ,UAAW,mBAAoB,CAAC,MAAM,EAAG,CAC7F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,YAAa,CAAC,MAAM,EAAG,CACvF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,aAAc,CAAC,MAAM,EAAG,CACxF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,gBAAiB,CAAC,MAAM,EAAG,CAC3F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,2BAA4B,CAAC,MAAM,EAAG,CACtG,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,mBAAoB,CAAC,MAAM,EAAG,CAC9F,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,cAAgB,0BAA0B,QAAQ,UAAW,cAAe,CAAC,MAAM,EAAG,CACzF,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,0BAA0B,QAAQ,UAAW,kBAAmB,CAAC,MAAM,EAAG,OAAO,yBAAyB,QAAQ,UAAW,iBAAiB,EAAG,QAAQ,SAAS,EAAI,QAAQ,GAAK,QACvL,MAAM,uBAAuB,OAAQ,CACpC,YAAY,MAAO,SAAU,SAAU,QAAU,CAAC,EAAG,CACpD,MAAM,MAAO,SAAU,QAAQ,EAE/B,KAAK,UAAY,IAAM,CACtB,MAAM,cAAgB,KAAK,QAAQ,cAAc,iBAAiB,EAC5D,aAAe,SAAS,cAAc,gBAAgB,EAExD,eAAiB,eACpB,cAAc,MAAM,IAAM,GAAG,aAAa,YAAY,KAExD,EAEA,KAAK,eAAiB,IAAM,CAC3B,KAAK,UAAU,EACf,KAAK,aAAa,CACnB,EAEA,KAAK,yBAA2B,CAAC,CAChC,WACA,aACD,IAAM,CACA,KAAK,KAKV,KAAK,IAAI,UAAU,CAAC,EAAE,yBAAyB,CAC9C,WACA,aACD,CAAC,CACF,EAEA,KAAK,aAAe,IAAM,CACzB,MAAM,YAAc,SAAS,iBAAiB,+BAA+B,EAC7E,GAAI,CAAC,YAAa,OAClB,IAAI,WAAa,IAEb,KAAK,QAAQ,cAAc,iCAAiC,IAC/D,WAAa,IAET,KAAK,MAAM,eAAe,GAAK,MAClC,WAAa,MAIf,YAAY,QAAQ,YAAc,CAC5B,WAAW,UAAU,SAAS,QAAQ,IAC1C,KAAK,SAAW,IAAI,aAAa,WAAY,CAC5C,MAAO,IACP,gBAAiB,WACjB,SAAU,2CAA2C,KAAK,MAAM,aAAa,cAAc,iEAC3F,SAAU,2CAA2C,KAAK,MAAM,aAAa,cAAc,+DAC3F,aAAc,SAAUL,SAAS,QAAS,SAAU,CACnD,GAAI,SAAU,CACb,MAAM,SAAW,SAAS,cAAc,gBAAgB,EAClD,mBAAqB,SAAW,SAAS,aAAe,EAC9D,eAAe,EAAE,YAAY,EAAE,QAAQ,CACtC,UAAW,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,IAAM,kBACrD,EAAG,GAAG,CACP,CAEA,eAAe,EAAE,OAAO,EAAE,YAAY,QAAQ,CAC/C,CACD,CAAC,EAEH,CAAC,CACF,EAEA,KAAK,SAAW,IAAM,CACrB,eAAe,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAY,CAC/D,IAAI,OACH,QACA,MAAQ,eAAe,EAAE,IAAI,EAAE,KAAK,GAAG,EACxC,OAAS,MAAM,MAAM,EAAE,SAAS,QAAQ,EACxC,QAAU,eAAe,EAAE,OAAO,KAAK,MAAM,CAAC,EAC9C,MAAM,IAAI,QAAQ,EAAE,KAAK,UAAY,CACpC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,CAC5D,CAAC,EACD,eAAe,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,SAAU,EAAG,CACnD,cAAO,YAAY,QAAQ,EAC3B,QAAQ,KAAK,EACb,OAAS,eAAe,EAAE,IAAI,EAC9B,QAAU,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,EAC9D,OAAO,SAAS,QAAQ,EACxB,QAAQ,OAAO,EACR,EACR,CAAC,CACF,CAAC,CACF,EAEA,KAAK,mBAAqB,IAAM,CAC3B,eAAe,EAAE,yCAAyC,EAAE,QAC/D,eAAe,EAAE,YAAY,EAAE,QAAQ,CACtC,UAAW,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,GACxD,EAAG,GAAG,CAER,EAEA,IAAI,gBAAkB,KAAK,QAAQ,cAAc,eAAe,EAE3D,kBAKL,KAAK,QAAU,KAAK,MAAM,gBAAgB,WAAW,EACrD,KAAK,IAAM,IAAI,QAAQ,CACtB,GAAI,KAAK,QAAQ,cAAc,mBAAmB,EAClD,WAAY,CACX,uBAAwB,WACzB,EACA,KAAM,KAAO,CACZ,eAAgB,KAChB,QAAS,KAAK,QACd,MAAO,KAAK,MACZ,kBAAmB,KAAK,kBACxB,cAAe,SAAU,QAAQ,eAAiB,CACnD,EACD,CAAC,EACD,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,SAAS,iBAAiB,uBAAwB,KAAK,YAAY,EACnE,SAAS,iBAAiB,yBAA0B,KAAK,YAAY,EACtE,CAEA,IAAI,mBAAoB,CACvB,MAAO,EACR,CAED,CAGA,MAAM,wBAAwB,cAAe,CAC5C,IAAI,mBAAoB,CACvB,MAAO,EACR,CAED,CAMA,MAAM,8BAA8B,SAAU,CAQ7C,YAAY,MAAO,QAAS,gBAAiB,gBAAiB,CAC7D,MAAM,MAAO,OAAO,EACpB,KAAK,uBAAyB,KAC9B,KAAK,aAAe,IACpB,KAAK,oBAAsB,cAC3B,KAAK,4BAA8B,yBACnC,KAAK,yBAA2B,8BAChC,KAAK,2BAA6B,kCAClC,KAAK,yBAA2B,cAChC,KAAK,iCAAmC,wCAExC,KAAK,WAAa,IAAM,CACnB,eAAe,EAAE,aAAa,EAAE,SAAS,qBAAqB,EACjE,KAAK,gBAAkB,kBACb,eAAe,EAAE,aAAa,EAAE,SAAS,uBAAuB,IAC1E,KAAK,gBAAkB,YACvB,KAAK,iBAAiB,EAExB,EAEA,KAAK,eAAiB,IAAM,CAG3B,GAFA,KAAK,SAAW,eAAe,EAAE,KAAK,2BAA2B,EAE7D,KAAK,kBAAoB,kBAI7B,KAAIrB,QAAS,KAAK,SAAS,SAAS,EAAE,IAAM,KAAK,SAAS,OAAO,EAE7DA,QAAS,KAAK,uBAAyB,KAAK,KAAK,UAAU,EAAI,KAAK,GAAG,OAAO,GACjF,KAAK,eAAe,EAEtB,EAEA,KAAK,0BAA4B,IAAM,CACtC,IAAI,SAAW,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAChG,KAAK,aAAe,CAAC,UAAY,WAAa,GAC/C,EAEA,KAAK,qBAAuB,UAAY,CACvC,IAAI,WAAa,SAAS,eAAe,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAG,EAAE,EACrF,cAAgB,SAAS,eAAe,EAAE,aAAa,EAAE,KAAK,sBAAsB,EAAG,EAAE,EACzF,SAAW,SAAS,eAAe,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAG,EAAE,EAClF,YAAc,cAAgB,SAC9B,mBAAqB,IAAM,YAAc,WAE7C,GAAI,KAAK,MAAM,aAAa,eAAiB,OAC5C,IAAI,UAAY,KAAK,MAAM,aAAa,aAAa,QAAQ,UAAW,WAAW,EAAE,QAAQ,UAAW,UAAU,OAElH,UAAY,GAGb,IAAI,WAAa,2EAAgF,SAAS,+EAAsF,mBAAqB,iEAAsE,KAAK,MAAM,aAAa,SAAS,kBAC5T,OAAO,UACR,EAEA,KAAK,iBAAmB,UAAY,CACnC,KAAK,0BAA0B,EAE/B,IAAI,eAAiB,eAAe,EAAE,6BAA6B,EAAE,SAAW,EAE5E,WAAa,KAAK,qBAAqB,EAEvC,CAAC,gBAAkB,CAAC,KAAK,cAC5B,eAAe,EAAE,aAAa,EAAE,OAAO,UAAU,EAIlD,eAAe,EAAE,iBAAiB,EAAE,IAAI,OAAO,EAAE,GAAG,QAAS,KAAK,eAAe,KAAK,KAAK,KAAK,CAAC,CAClG,EAEA,KAAK,YAAc,SAAW,CACzB,SACH,KAAK,QAAU,GACf,KAAK,mBAAmB,KAAK,EAC7B,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,IAEhD,KAAK,QAAU,GACf,KAAK,mBAAmB,KAAK,EAC7B,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,EAElD,EAEA,KAAK,eAAiB,IAAM,CAC3B,GAAI,KAAK,QACR,MAAO,GAGR,IAAI,SAAW,eAAe,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAE5F,CAAC,UAAY,WAAa,MAI9B,KAAK,YAAY,EAAI,EACrB,eAAe,EAAE,KAAK,CACrB,KAAM,MACN,IAAK,SACL,SAAU,MACX,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,IAAI,CAAC,EAAE,OAAO,KAAK,YAAY,KAAK,KAAM,EAAK,CAAC,EAE/E,EAEA,KAAK,wBAA0B,IAAM,CACpC,IAAI,SAAW,SAAS,SAAS,SASjC,GAPA,OAAO,eAAiB,UAAY,CACnC,IAAI,YAAc,SAAS,cAAc,6BAA6B,EAAE,UACpE,kBAAoB,SAAS,cAAc,aAAa,EAAE,UAC9D,eAAe,QAAQ,gBAAkB,SAAU,YAAY,SAAS,CAAC,EACzE,eAAe,QAAQ,kBAAoB,SAAU,kBAAkB,SAAS,CAAC,CAClF,EAEI,YAAY,WAAW,MAAQ,GAAK,eAAe,gBAAkB,QAAQ,EAAG,CACnF,IAAI,qBAAuB,SAAS,cAAc,6BAA6B,EAC/E,qBAAqB,UAAY,eAAe,QAAQ,gBAAkB,QAAQ,CACnF,CAEA,GAAI,YAAY,WAAW,MAAQ,GAAK,eAAe,kBAAoB,QAAQ,EAAG,CACrF,IAAI,oBAAsB,SAAS,cAAc,aAAa,EAC9D,oBAAoB,UAAY,eAAe,QAAQ,kBAAoB,QAAQ,CACpF,CACD,EAEA,KAAK,YAAc3G,OAAQ,CAC1B,IAAI,SAAW,eAAe,EAAEA,KAAI,EAChCiG,SAAU,eAAe,EAAE,0BAA0B,EAAE,IAAI,EAE3DA,UACH,SAAS,KAAK,aAAa,EAAE,YAAY,0FAA0F,EAAE,SAASA,QAAO,EAGtJ,KAAK,YAAY,OAAO,SAAS,KAAK,KAAK,2BAA6B,MAAQ,KAAK,wBAAwB,EAAE,IAAI,KAAK,gCAAgC,EAAG,SAAS,KAAK,KAAK,yBAA2B,MAAQ,KAAK,wBAAwB,CAAC,EAC/O,eAAe,EAAE,KAAK,mBAAmB,EAAE,YAAY,SAAS,KAAK,KAAK,mBAAmB,CAAC,EAE1F,KAAK,kBAAoB,aAC5B,KAAK,iBAAiB,EAGnB,KAAK,iBACR,KAAK,gBAAgB,EAGlB,KAAK,iBACR,KAAK,gBAAgB,CAEvB,EAEA,KAAK,gBAAkB,gBACvB,KAAK,gBAAkB,gBACvB,KAAK,GAAK,eAAe,EAAE,MAAM,EACjC,KAAK,KAAO,eAAe,EAAE,QAAQ,EACrC,KAAK,MAAQ,KACb,KAAK,YAAc,eAAe,EAAE,KAAK,wBAAwB,EACjE,KAAK,SAAW,eAAe,EAAE,KAAK,2BAA2B,EACjE,KAAK,mBAAqB,eAAe,EAAE,qBAAqB,EAChE,KAAK,QAAU,GACf,KAAK,aAAe,GACpB,KAAK,eAAiB,KACtB,KAAK,gBAAkB,KAEvB,MAAM,qBAAuB,eAAe,EAAE,sBAAsB,EAC9D,sBAAwB,eAAe,EAAE,wBAAwB,EAEnE,qBAAqB,SAAW,GAAK,sBAAsB,SAAW,IAI1E,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,CAED,CAOA,MAAM,0BAA0B,OAAQ,CACvC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,aAAe,IAAM,CAEzB,KAAK,SAAW,IAAI,kBAAkB,KAAK,MAAO,KAAK,QAAQ,UAAU,CAC1E,EAEA,KAAK,eAAiB,IAAM,CAC3B,KAAK,WAAa,IAAI,sBAAsB,KAAK,MAAO,KAAK,QAAS,KAAK,YAAa,KAAK,YAAY,CAC1G,EAEA,KAAK,YAAc,IAAM,CACxB,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,8CAA8C,EAAG,IAAM,CACjH,GAAG,oBAAoB,QAAS,KAAK,aAAa,EAClD,GAAG,iBAAiB,QAAS,KAAK,aAAa,CAChD,CAAC,EACD,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,CACxC,EAEA,KAAK,aAAe,IAAM,CACzB,KAAK,gBAAkB,IAAI,SAAS,KAAK,MAAO,KAAK,OAAO,CAC7D,EAEA,KAAK,cAAgB,IAAM,CAE1B,IAAI,YAAc,eAAe,EAAE,cAAc,EACjD,YAAY,GAAG,SAAU,UAAY,CACpC,IAAI,QAAU,CAAC,EACX1F,KAAM,eAAe,EAAE,IAAI,EAAE,IAAI,EAMrC,GAJIA,MACH,QAAQ,KAAKA,IAAG,EAGb,QAAQ,OAAQ,CACnB,IAAIiG,OAAQ,QAAQ,KAAK,GAAG,EACxB,KAAO,eAAe,EAAE,wBAAwB,EAAE,KAAK,MAAM,EAAE,QAAQ,MAAO,KAAK,EACvF,OAAO,SAAS,KAAO,KAAK,QAAQ,oBAAqB,KAAOA,OAAQ,IAAI,CAC7E,MACC,OAAO,SAAS,KAAO,eAAe,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAEhF,CAAC,EACD,eAAe,EAAE,iCAAiC,EAAE,GAAG,SAAU,UAAY,CAC5E,IAAI7B,QAAS,MAAM,UAAU,IAAI,KAAK,SAAS,iBAAiB,8CAA8C,EAAG,SAAU,GAAI,CAC9H,OAAO,GAAG,KACX,CAAC,EAAE,KAAK,GAAG,EACP,KAAO,eAAe,EAAE,wBAAwB,EAAE,KAAK,MAAM,EAAE,QAAQ,MAAO,KAAK,EACvF,OAAO,SAAS,KAAO,KAAK,QAAQ,oBAAqB,KAAOA,QAAS,IAAI,CAC9E,CAAC,CACF,EAEA,KAAK,WAAa,IAAM,CACvB,MAAM,YAAc,CAAC,EAErB,GAAI,SAAS,OAAO,OACnB,QAAS,UAAW,EAAI,EAAG,SAAW,SAAS,OAAO,OAAO,CAAC,EAAE,MAAM,GAAG,EAAG,EAAI,SAAS,OAAQ,IAChG,UAAY,SAAS,CAAC,EAAE,MAAM,GAAG,EAE7B,UAAU,OAAS,IACtB,YAAY,mBAAmB,UAAU,CAAC,CAAC,CAAC,EAAI,mBAAmB,UAAU,CAAC,CAAC,GAKlF,eAAe,EAAE,eAAe,EAAE,IAAI,yEAAyE,EAC/G,eAAe,EAAE,yCAAyC,EAAE,GAAG,SAAU,UAAY,CACpF,YAAY,QAAU,eAAe,EAAE,IAAI,EAAE,IAAI,EACjD,SAAS,OAAS,eAAe,EAAE,MAAM,WAAW,EAAE,QAAQ,MAAO,KAAK,CAC3E,CAAC,CACF,EAEA,KAAK,cAAgB,GAAK,CACzB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,WAAY,GAAM,CAC9C,IAAK,EAAE,OAAO,IACf,CAAC,CACF,EAEA,KAAK,QAAU,QACf,KAAK,MAAQ,MACb,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,EACvC,SAAS,iBAAiB,WAAY,KAAK,cAAc,EACzD,SAAS,iBAAiB,cAAe,KAAK,WAAW,EACzD,SAAS,iBAAiB,eAAgB,KAAK,YAAY,EAC3D,SAAS,iBAAiB,uBAAwB,KAAK,YAAY,EACnE,SAAS,iBAAiB,yBAA0B,KAAK,YAAY,EACrE,SAAS,iBAAiB,2BAA4B,KAAK,YAAY,EACvE,SAAS,iBAAiB,0BAA2B,KAAK,YAAY,EACtE,IAAI,KAAO,KACX,OAAO,iBAAiB,6BAA8B,UAAY,CACjE,KAAK,YAAY,CAClB,CAAC,CACF,CAED,CAKA,MAAM,8BAA8B,OAAQ,CAC3C,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,SAAW,IAAI,kBAAkB,MAAO,QAAQ,UAAU,EAC/D,KAAK,gBAAkB,IAAI,SAAS,MAAO,OAAO,CACnD,CAED,CAKA,MAAM,+BAA+B,OAAQ,CAC5C,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,KAAO,IAAM,CAEb,KAAK,iBAAiB,KAAK,gBAAgB,OAAO,EAEtD,MAAM,WAAa,GAAG,KAAK,OAAO,eAAe,KAAK,SAAS,UAAU,KAAK,KAAK,eAAe,KAAK,SAAS,GAEhH,IAAI,QAAU,IAAI,eAClB,QAAQ,KAAK,MAAO,UAAU,EAE9B,QAAQ,OAAS,IAAM,CACtB,GAAI,QAAQ,QAAU,KAAO,QAAQ,OAAS,IAAK,CAClD,IAAI,UAAY,SAAS,cAAc,KAAK,EAC5C,UAAU,UAAY,QAAQ,SAC9B,MAAM,UAAU,QAAQ,KAAK,UAAU,SAAU,OAAS,CAEzD,MAAM,WAAa,MAAM,cAAc,gCAAgC,EAEnE,YACH,KAAK,QAAQ,YAAY,UAAU,EAGpC,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,8CAA8C,EAAG,SAAW,CAC9G,SACH,QAAQ,iBAAiB,QAAS,KAAK,aAAa,CAEtD,CAAC,CACF,CAAC,EACD,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,EACvC,KAAK,gBAAkB,IAAI,SAAS,KAAK,MAAO,KAAK,OAAO,EAC5D,MAAM,OAAS,KAAK,QAAQ,cAAc,sBAAsB,EAC1D,OAAS,KAAK,QAAQ,cAAc,sBAAsB,EAChE,KAAK,OAAS,IAAI,kBAAkB,KAAK,QAAQ,cAAc,mBAAmB,EAAG,CACpF,cAAe,EACf,WAAY,CACX,OACA,MACD,EACA,YAAa,CACZ,IAAK,CACJ,cAAe,CAChB,CACD,EACA,cAAe,EAChB,CAAC,CACF,CACD,EAEA,QAAQ,KAAK,CACd,EAEA,KAAK,cAAgB,GAAK,CACzB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,WAAY,GAAM,CAC9C,IAAK,EAAE,OAAO,IACf,CAAC,CACF,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,UAAY,KAAK,QAAQ,QAAQ,UACtC,KAAK,MAAQ,KAAK,QAAQ,QAAQ,MAClC,KAAK,QAAU,KAAK,QAAQ,QAAQ,mBACpC,KAAK,UAAY,KAAK,QAAQ,QAAQ,iBACtC,KAAK,gBAAkB,KAAK,QAAQ,cAAc,gCAAgC,EAClF,KAAK,KAAK,CACX,CAED,CAGA,MAAM,iBAAiB,OAAQ,CAAE,CAGjC,MAAM,qBAAqB,OAAQ,CAAE,CAIrC,MAAM,aAAa,OAAQ,CAC1B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,SAAW,IAAI,SAAS,MAAO,OAAO,CAC5C,CAED,CAIA,MAAM,oBAAoB,OAAQ,CACjC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,MAAM,gBAAkB,KAAK,QAAQ,cAAc,mBAAmB,EACtE,KAAK,OAAS,IAAI,kBAAkB,gBAAiB,CACpD,cAAe,EACf,cAAe,GACf,WAAY,GACZ,KAAM,GACN,SAAU,CACT,MAAO,GACR,EACA,MAAO,GACR,CAAC,CACF,CAED,CAIA,MAAM,kBAAkB,OAAQ,CAC/B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAC9B,uBAAuB,KAAK,OAAO,CACpC,CAED,CAGA,MAAM,aAAa,OAAQ,CAC1B,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,eAAiB,GAAK,CAC1B,EAAE,eAAe,EACjB,MAAM,MAAQ,EAAE,cAAc,QAAQ,SAAS,EAAE,cAAc,OAAO,EAElE,EAAE,cAAc,UAAU,SAAS,uBAAuB,EAC7D,MAAM,MAAQ,KAAK,IAAI,EAAG,SAAS,MAAM,MAAO,EAAE,EAAI,CAAC,EAEvD,MAAM,MAAQ,SAAS,MAAM,MAAO,EAAE,EAAI,CAE5C,EAEA,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,iBAAiB,EAAG,IAAM,GAAG,iBAAiB,QAAS,KAAK,cAAc,CAAC,CACvI,CAED,CAEA,IAAI,0CAA4C,UAAY,CAC3D,IAAI,IAAM,KACN,GAAK,IAAI,eACT,GAAK,IAAI,MAAM,IAAM,GACzB,OAAO,GAAG,MAAO,CAChB,GACC,MACA,CACC,MAAO,IAAI,QACR,gFACF,IAAI,UACJ,KACC,IAAI,UAAY,iBAAmB,IAClC,EACJ,EACA,CACC,CAAC,IAAI,WAAa,CAAC,IAAI,KACpB,GAAG,MAAO,CAAE,YAAa,4BAA6B,CAAC,EACvD,IAAI,GAAG,EACV,IAAI,GAAG,GAAG,EACV,CAAC,IAAI,WAAa,CAAC,IAAI,KACpB,GACD,MACA,CACC,YAAa,2BACb,GAAI,CAAE,MAAO,IAAI,IAAK,CACvB,EACA,CAAC,IAAI,GAAG,CAAC,CAAC,CACX,EACE,IAAI,GAAG,EACV,IAAI,GAAG,GAAG,EACV,GAAG,MAAO,CAAE,MAAO,CAAE,kBAAmB,CAAC,IAAI,IAAK,CAAE,EAAG,CACtD,GAAG,MAAO,CAAE,IAAK,QAAS,YAAa,OAAQ,EAAG,CACjD,IAAI,YAAc,MACf,GACD,QACA,CACC,IAAK,WACL,YAAa,iBACb,MAAO,CAAE,YAAa,GAAI,SAAU,EAAG,CACxC,EACA,CAAC,GAAG,SAAU,CAAE,MAAO,CAAE,IAAK,IAAI,IAAK,KAAM,WAAY,CAAE,CAAC,CAAC,CAC9D,EACE,IAAI,GAAG,CACX,CAAC,CACF,CAAC,CACF,CACD,CACD,CAAC,CACF,EACI,mDAAqD,CACxD,UAAY,CACX,IAAI,IAAM,KACN,GAAK,IAAI,eACT,GAAK,IAAI,MAAM,IAAM,GACzB,OAAO,GACN,MACA,CAAE,YAAa,6BAA8B,MAAO,CAAE,SAAU,GAAI,CAAE,EACtE,CAAC,GAAG,MAAO,CAAE,YAAa,kCAAmC,CAAC,CAAC,CAChE,CACD,CACD,EACA,0CAA0C,cAAgB,GAc1D,MAAM,SAAU,CACf,YAAY,MAAO,QAAS,CAC3B,KAAK,YAAc,UAEd,eAAgB,WACf,UAAU,WAAW,UAMtB,OAAO,WAAW,kCAAkC,EAAE,QAClD,GAGD,SAGR,KAAK,MAAQ,gBAAkB,CAAE,EAEjC,KAAK,KAAO,QAAU,CAAE,EAExB,KAAK,KAAO,IAAM,CAAE,EAEpB,KAAK,MAAQ,IAAM,CAAE,EAErB,KAAK,MAAQ,MACb,KAAK,QAAU,OAChB,CASD,CAQA,MAAM,aAAe,KAAO,CAC3B,MAAM,MAAQ,IAAI,QAAQ,UAAW,EAAE,EAAE,MAAM,uCAAuC,EAEtF,OAAI,MAAM,CAAC,IAAM,OACT,MAAM,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC,EAGjC,GACR,EACA,MAAM,gBAAgB,SAAU,CAC/B,eAAe,KAAM,CACpB,MAAM,GAAG,IAAI,EAEb,KAAK,MAAQ,IACL,KAAK,MAAM,eAAe,EAGlC,KAAK,KAAO,CAAC,CACZ,SACA,aACA,IACA,KACA,KAAAN,MACA,OACA,KACD,IAAM,CACL,SAAW,KAAK,YAAY,QAAQ,EACpC,MAAM,QAAU,aAAa,GAAG,EAChC,OAAO,IAAI,QAAQ,SAAW,CAC7B,KAAK,MAAM,EAAE,KAAK,IAAM,CACvB,KAAK,OAAS,IAAI,GAAG,OAAO,KAAK,QAAS,CACzC,QACA,WAAY,CACX,SAAU,EACV,eAAgB,EAChB,IAAK,EACL,SAAU,SAAW,EAAI,EACzB,SAAU,aAAe,EAAI,EAC7B,KAAM,MAAQ,SAAW,EAAI,EAC7B,QACA,eAAgB,EAChB,GAAI,EACJ,eAAgB,EAChB,YAAa,EACb,SAAU,EACV,OAAQ,OAAO,SAAS,MACzB,EACA,OAAQ,CACP,QAAS,OAAS,CACjB,KAAK,OAAS,MAAM,QAEhB,MAAQ,WACX,KAAK,OAAO,KAAK,EAGd,UAEH,KAAK,OAAO,UAAU,EAGvB,QAAQ,KAAK,MAAM,CACpB,EACA,cAAe,OAAS,CACnB,MAAM,OAAS,GAAG,YAAY,SACjC,OAAO,EAGJ,MAAM,OAAS,GAAG,YAAY,OAASA,QAC1C,KAAK,OAAO,UAAU,EACtB,MAAM,EAER,CACD,CACD,CAAC,CACF,CAAC,CACF,CAAC,CACF,EAEA,KAAK,KAAO,IAAM,CACjB,KAAK,OAAO,UAAU,CACvB,CACD,CAED,CAQA,SAAS,WAAW,IAAK,CACxB,MAAM,MAAQ,yCACR,MAAQ,IAAI,MAAM,KAAK,EAG7B,OAFiB,IAAI,MAAM,GAAG,EAEjB,OAAS,EACd,IACG,OAAS,MAAM,CAAC,IAAM,OACzB,MAAM,CAAC,EAGR,GACR,CAEA,MAAM,cAAc,SAAU,CAC7B,eAAe,KAAM,CACpB,MAAM,GAAG,IAAI,EAEb,KAAK,MAAQ,IACL,KAAK,MAAM,aAAa,EAGhC,KAAK,KAAO,CAAC,CACZ,SACA,aACA,IACA,KACA,KAAAA,MACA,OACA,KACD,IAAM,CACL,SAAW,KAAK,YAAY,QAAQ,EACpC,MAAM,QAAU,WAAW,GAAG,EAC9B,OAAO,IAAI,QAAQ,CAAC,QAAS,SAAW,CACvC,KAAK,MAAM,EAAE,KAAKiE,QAAS,CAC1B,KAAK,OAAS,IAAIA,OAAM,OAAO,KAAK,QAAS,CAC5C,GAAI,QACJ,SACA,SAAU,CAAC,aACX,OAAQ,GACR,SAAU,GACV,MAAO,EACR,CAAC,EACD,KAAK,OAAO,MAAM,EAAE,KAAK,IAAM,EAC1B,MAAQ,WACX,KAAK,OAAO,UAAU,CAAC,EAGpBjE,OACH,KAAK,OAAO,QAAQ,EAAI,EAGrB,UACH,KAAK,OAAO,KAAK,EAGlB,QAAQ,KAAK,MAAM,CACpB,CAAC,EACD,KAAK,OAAO,GAAG,OAAQ,IAAM,CAC5B,OAAO,CACR,CAAC,EACD,KAAK,OAAO,GAAG,QAAS,IAAM,CAC7B,MAAM,CACP,CAAC,CACF,CAAC,CACF,CAAC,CACF,EAEA,KAAK,KAAO,IAAM,CACjB,KAAK,OAAO,KAAK,CAClB,CACD,CAED,CAIA,MAAM,iBAAiB,SAAU,CAChC,eAAe,KAAM,CACpB,MAAM,GAAG,IAAI,EAEb,KAAK,MAAQ,IACL,IAAI,QAAQ,SAAW,CAC7B,OAAO,QAAQ,aAAa,CAAC,CAC5B,KAAM,WACN,QAAS,MACT,OAAQ,UAAY,CACnB,QAAQ,OAAO,QAAQ,IAAI,CAC5B,CACD,CAAC,CAAC,CACH,CAAC,EAGF,KAAK,KAAO,CAAC,CACZ,SACA,aACA,IACA,KACA,KAAAA,MACA,OACA,QACA,KACD,KACC,SAAW,KAAK,YAAY,QAAQ,EAC7B,IAAI,QAAQ,CAAC,QAAS,SAAW,CACvC,KAAK,MAAM,EAAE,KAAK,MAAQ,CACzB,KAAK,OAAS,IAAI,KAAK,KAAK,QAAS,CACpC,KAAM,CACL,OAAQA,KACT,EACA,SACA,MAAO,MAAQ,SAAW,EAAI,EAC9B,WAAY,CACX,QAAS,EACV,EACA,YAAa,EACd,CAAC,EACD,KAAK,OAAO,GAAG,QAAS,OAAS,CAChC,KAAK,OAAS,MAAM,OAAO,KAEvB,UACH,KAAK,OAAO,KAAK,EAGd,cACH,KAAK,OAAO,eAAe,EAAK,EAGjC,QAAQ,CACT,CAAC,EACD,KAAK,OAAO,GAAG,UAAW,IAAM,CAC/B,OAAO,CACR,CAAC,EACD,KAAK,OAAO,GAAG,QAAS,IAAM,CAC7B,QAAQ,CACT,CAAC,EACD,KAAK,OAAO,GAAG,QAAS,IAAM,CAC7B,MAAM,CACP,CAAC,CACF,CAAC,CACF,CAAC,GAGF,KAAK,KAAO,IAAM,CACjB,KAAK,OAAO,KAAK,CAClB,CACD,CAED,CA+H4B,MAAM,yCArFgC,QAAQ,OAAO,CAChF,MAAO,CACN,MAAO,UACP,KAAM,QACN,UAAW,CACV,KAAM,OACN,SAAU,GACV,UAAW,SAAU,MAAO,CAC3B,MAAO,CAAC,UAAW,QAAS,KAAK,EAAE,QAAQ,KAAK,IAAM,EACvD,CACD,EACA,IAAK,CACJ,KAAM,OACN,SAAU,EACX,EACA,SAAU,CACT,KAAM,QACN,SAAU,EACX,EACA,KAAM,QACN,KAAM,QACN,aAAc,CACb,KAAM,QACN,QAAS,EACV,EACA,eAAgB,CACf,KAAM,OACN,QAAS,CACV,EACA,UAAW,CACV,KAAM,OACN,QAAS,EACV,EACA,QAAS,OACV,EAEA,MAAO,CACN,MAAO,CAEN,OAAQ,KACR,UAAW,EACZ,CACD,EAEA,SAAU,CACL,KAAK,YAAc,UACtB,KAAK,OAAS,IAAI,QAAQ,KAAK,MAAM,MAAO,KAAK,MAAM,KAAK,EAClD,KAAK,YAAc,QAC7B,KAAK,OAAS,IAAI,MAAM,KAAK,MAAM,MAAO,KAAK,MAAM,KAAK,EAChD,KAAK,YAAc,QAC7B,KAAK,OAAS,IAAI,SAAS,KAAK,MAAM,MAAO,KAAK,MAAM,QAAQ,GAGjE,KAAK,OAAO,KAAK,CAChB,SAAU,KAAK,SACf,aAAc,KAAK,aACnB,IAAK,KAAK,IACV,KAAM,KAAK,KACX,KAAM,KAAK,KACX,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,MAAO,KAAK,KACb,CAAC,CACF,EAEA,QAAS,CACR,QAAS,CACR,KAAK,UAAY,EAClB,EAEA,SAAU,CACT,KAAK,UAAY,EAClB,EAEA,OAAQ,CACP,KAAK,UAAY,EAClB,EAEA,MAAO,CACN,KAAK,OAAO,KAAK,CAClB,CAED,CACD,CAAC,EAWD,IAAI,gBAAkB,mBACrB,yCACA,0CACA,mDACA,GACA,KACA,KACA,IAED,EAGA,GAAI,EAAS,IAAI,UACjB,gBAAgB,QAAQ,OAAS,uCACN,MAAM,MAAS,gBAAgB,QAG1D,MAAM,KAAM,CACX,YAAY,MAAO,QAAS,CAC3B,KAAK,wBAA0B,IAAM,CACpC,KAAK,qBAAqB,KAAK,EAC/B,KAAK,mBAAmB,KAAK,EAE7B,IAAI,OAAS,IAAI,KAAK,KAAK,IAAI,EAAI,IAAU,GAAI,EACjD,aAAa,QAAQ,oBAAqB,KAAK,UAAU,CACxD,OAAQ,OAAO,YAAY,CAC5B,CAAC,CAAC,CACH,EAEA,KAAK,wBAA0B,IAAM,CACpC,KAAK,qBAAqB,KAAK,EAC/B,KAAK,mBAAmB,KAAK,CAC9B,EAEA,KAAK,yBAA2B,IAAM,CACrC,GAAI,CACH,MAAO,UAAO,QAAW,KAAe,OAAO,cAAgB,OAAO,eACvE,MAAY,CACX,MAAO,EACR,CACD,EAEA,KAAK,MAAQ,MACb,KAAK,QAAU,QACf,KAAK,SAAW,eAAe,EAAE,OAAO,EACxC,KAAK,qBAAuB,KAAK,SAAS,KAAK,sBAAsB,EACrE,KAAK,mBAAqB,KAAK,SAAS,KAAK,oBAAoB,EACjE,KAAK,qBAAuB,KAAK,SAAS,KAAK,kBAAkB,EACjE,KAAK,yBAA2B,KAAK,SAAS,KAAK,0BAA0B,EAC7E,KAAK,gBAAkB,KAAK,yBAAyB,EACrD,KAAK,qBAAqB,GAAG,QAAS,KAAO,CAC5C,IAAI,eAAe,EACnB,KAAK,wBAAwB,CAC9B,CAAC,EACD,KAAK,yBAAyB,GAAG,QAAS,KAAO,CAChD,IAAI,eAAe,EACnB,KAAK,wBAAwB,EAEzB,KAAK,iBACR,OAAO,aAAa,WAAW,mBAAmB,CAEpD,CAAC,EAEG,OAAO,SAAS,OAAS,YAC5B,KAAK,wBAAwB,EAG9B,IAAI,oBAAsB,KAM1B,GAJI,KAAK,kBACR,oBAAsB,OAAO,aAAa,QAAQ,mBAAmB,GAGlE,oBAAqB,CACxB,IAAI,QAAU,SAAS,cAAc,8BAA8B,EAE/D,QACH,eAAe,EAAE,eAAe,EAAE,KAAK,GAGvC,eAAe,EAAE,eAAe,EAAE,KAAK,EAEnC,KAAK,iBACR,OAAO,aAAa,WAAW,mBAAmB,EAGrD,CACD,CAED,CAEA,IAAI,gBAAiB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,kBAAmB,kBAAmB,kBAAmB,mBAAoB,uBAAwB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,wBAAyB,wBAEha,SAAS,sCAAsCZ,QAAQ,SAAU,WAAY,QAAS,CAAO,YAAoB,OAAO,eAAeA,QAAQ,SAAU,CAAE,WAAY,WAAW,WAAY,aAAc,WAAW,aAAc,SAAU,WAAW,SAAU,MAAO,WAAW,YAAc,WAAW,YAAY,KAAK,OAAO,EAAI,MAAO,CAAC,CAAG,CAEtV,SAAS,qCAAqCA,QAAQ,SAAU,WAAY,WAAY,QAAS,CAAE,IAAI,KAAO,CAAC,EAAG,cAAO,KAAK,UAAU,EAAE,QAAQ,SAAU,IAAK,CAAE,KAAK,GAAG,EAAI,WAAW,GAAG,CAAG,CAAC,EAAG,KAAK,WAAa,CAAC,CAAC,KAAK,WAAY,KAAK,aAAe,CAAC,CAAC,KAAK,cAAkB,UAAW,MAAQ,KAAK,eAAe,KAAK,SAAW,IAAQ,KAAO,WAAW,MAAM,EAAE,QAAQ,EAAE,OAAO,SAAUyE,MAAM,UAAW,CAAE,OAAO,UAAUzE,QAAQ,SAAUyE,KAAI,GAAKA,KAAM,EAAG,IAAI,EAAO,SAAW,KAAK,cAAgB,SAAU,KAAK,MAAQ,KAAK,YAAc,KAAK,YAAY,KAAK,OAAO,EAAI,OAAQ,KAAK,YAAc,QAAiB,KAAK,cAAgB,SAAU,OAAO,eAAezE,QAAQ,SAAU,IAAI,EAAG,KAAO,MAAe,IAAM,CAE9tB,SAAS,qCAAqC,WAAY,QAAS,CAAE,MAAM,IAAI,MAAM,oIAAyI,CAAG,CAmzBtM,MAAM,oBAvyBd,gBAAkB,wBAAwB,CAC5D,SAAU,gCACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,iBAAmB,KAAK,CAC3B,SAAU,EACX,CAAC,EAAG,kBAAoB,MAAM,UAAU,EAAG,kBAAoB,MAAM,aAAa,EAAG,gBAAgB,mBAAqB,mBAAqB,cAA0B,OAAQ,CAChL,eAAe,KAAM,CACpB,MAAM,GAAG,IAAI,EACb,KAAK,OAAS,GACd,KAAK,KAAO,OACZ,KAAK,KAAO,KACZ,KAAK,qBAAuB,KAC5B,KAAK,oBAAsB,KAC3B,KAAK,iBAAmB,GACxB,KAAK,UAAY,GACjB,KAAK,YAAc,GACnB,KAAK,aAAe,CAAC,EACrB,KAAK,kBAAoB,KACzB,KAAK,cAAgB,GACrB,KAAK,iBAAmB,GACxB,KAAK,iBAAmB,EACxB,KAAK,eAAiB,EACtB,KAAK,SAAW,GAChB,KAAK,iBAAmB,GAExB,KAAK,cAAgB,CACpB,MAAS,SACT,MAAS,OACT,MAAS,UACT,QAAS,OACT,MAAS,SACT,KAAQ,SACR,MAAS,cACT,MAAS,QACV,EAGA,KAAK,kBAAoB,KACzB,KAAK,qBAAuB,GAE5B,sCAAsC,KAAM,YAAa,uBAAwB,IAAI,EAErF,sCAAsC,KAAM,WAAY,wBAAyB,IAAI,EAErF,sCAAsC,KAAM,eAAgB,wBAAyB,IAAI,EAEzF,sCAAsC,KAAM,iBAAkB,wBAAyB,IAAI,EAE3F,sCAAsC,KAAM,cAAe,wBAAyB,IAAI,EAExF,sCAAsC,KAAM,iBAAkB,wBAAyB,IAAI,EAE3F,sCAAsC,KAAM,oBAAqB,wBAAyB,IAAI,EAE9F,sCAAsC,KAAM,cAAe,wBAAyB,IAAI,CACzF,CAEA,MAAO,CACN,MAAO,CACN,OAAQ,GACR,KAAM,OACN,KAAM,KACN,qBAAsB,KACtB,oBAAqB,KACrB,iBAAkB,GAClB,YAAa,GACb,cAAe,CAAC,EAChB,SAAU,EACX,CACD,CAEA,kBAAmB,CACd,KAAK,qBACR,OAAO,aAAa,KAAK,mBAAmB,EAG7C,KAAK,oBAAsB,OAAO,WAAW,IAAM,CAClD,KAAK,iBAAmB,GACxB,KAAK,eAAe,EACpB,KAAK,oBAAsB,IAC5B,EAAG,GAAI,CACR,CAEA,gBAAiB,CACZ,KAAK,qBACJ,KAAK,YAAc,IAClB,KAAK,mBACR,OAAO,aAAa,KAAK,iBAAiB,EAG3C,KAAK,kBAAoB,OAAO,WAAW,IAAM,CAChD,KAAK,cAAc,EACnB,KAAK,kBAAoB,IAC1B,EAAG,GAAG,IAEN,KAAK,iBAAmB,EACxB,KAAK,iBAAmB,GACxB,KAAK,aAAe,CAAC,EACrB,KAAK,UAAY,GACjB,KAAK,cAAgB,IAGxB,CAIA,IAAI,OAAQ,CAEX,OAAO,KAAK,MAAM,KACnB,CAEA,SAAU,CACT,SAAS,gBAAgB,iBAAiB,0BAA2B,KAAK,YAAY,EAEtF,KAAK,OACJ,OACC,QAAW,CACX,QAAQ,IAAI,gBAAiB,MAAM,EAG/B,QAAU,OAAO,OAAS,OAAO,MAAM,OAAS,IACnD,KAAK,qBAAuB,GACxB,KAAK,oBACR,aAAa,KAAK,iBAAiB,EACnC,KAAK,kBAAoB,OAK3B,KAAK,UAAU,SAAY,CAC1B,KAAK,MAAM,iBAAiB,MAAM,CACnC,CAAC,CACF,CACD,EACA,SAAS,gBAAgB,iBAAiB,UAAW,KAAK,SAAS,CACpE,CAEA,eAAgB,CACf,SAAS,gBAAgB,oBAAoB,0BAA2B,KAAK,YAAY,CAC1F,CAEA,aAAa,MAAO,CACnB,KAAM,CACL,KACA,UACA,MACD,EAAI,MAAM,OAEV,GAAI,OAAQ,CACX,GAAI,OAAO,IAAK,CACf,MAAM,IAAM,OAAO,IAEf,KAAK,sBAAwB,MAChC,KAAK,iBAAiB,GAAG,EACzB,KAAK,mBAAqB,IAE5B,CAEI,OAAO,OACV,KAAK,KAAO,OAAO,KAEf,OAAO,KAAK,WAAW,YAC1B,KAAK,SAAW,OAAO,KAAK,WAAW,WAGxC,KAAK,MAAM,iBAAiB,OAAO,IAAI,EAEzC,CAEI,OAAS,SACZ,KAAK,eAAe,EAGrB,KAAK,OAAO,KAAM,SAAS,CAC5B,CAEA,OAAQ,CACP,SAAS,KAAK,UAAU,OAAO,gBAAgB,EAC/C,SAAS,KAAK,UAAU,OAAO,sBAAsB,EACrD,KAAK,OAAS,EACf,CAEA,MAAO,CACN,KAAK,YAAY,EACjB,SAAS,KAAK,UAAU,IAAI,gBAAgB,EAC5C,SAAS,KAAK,UAAU,IAAI,sBAAsB,EAClD,KAAK,OAAS,GAEV,KAAK,OAAS,QAAU,KAAK,OAAS,MACzC,KAAK,UAAU,EACf,KAAK,UAAU,IAAM,KAAK,MAAM,aAAe,KAAK,MAAM,YAAY,MAAM,CAAC,GACnE,KAAK,OAAS,QACxB,KAAK,UAAU,IAAM,KAAK,MAAM,YAAY,MAAM,CAAC,EACzC,KAAK,OAAS,UACxB,KAAK,UAAU,IAAM,KAAK,MAAM,WAAW,MAAM,CAAC,CAEpD,CAEA,OAAO,KAAM,UAAY,OAAW,CACnC,GAAI,YAAc,GACjB,KAAK,KAAO,KACZ,KAAK,KAAK,UACA,YAAc,GACxB,KAAK,MAAM,MACL,IAAI,YAAc,WACxB,OACU,KAAK,OACf,KAAK,MAAM,GAEX,KAAK,KAAO,KACZ,KAAK,KAAK,GAEZ,CAEA,MAAM,WAAY,CACjB,GAAI,CASH,MAAM,KAAO,MARI,MAAM,MAAM,OAAO,QAAQ,OAAO,KAAO,SAAS,EACjE,KAAK2E,WACEA,UAAS,KAAK,CACrB,EACA,MAAO,OAAU,CACjB,QAAQ,MAAM,SAAU,KAAK,CAC9B,CAAC,EAGF,KAAK,KAAO,KAER,KAAK,WAAW,YACnB,KAAK,SAAW,KAAK,WAAW,WAGjC,KAAK,MAAM,iBAAiB,KAAK,IAAI,CACtC,OAAS,EAAG,CACX,QAAQ,MAAM,yBAA0B,CAAC,CAC1C,CACD,CAEA,aAAc,CACb,WAAW,UAAY,CAEtB,IAAI,gBAAkB,SAAS,iBAAiB,qBAAqB,EACjE,eAAiB,SAAS,iBAAiB,gBAAgB,EAC3D,sBAAwB,SAAS,iBAAiB,8BAA8B,EAChF,gBAAkB,SAAS,cAAc,sBAAsB,EAC/D,UAEH,SAAS,cAAc,cAAc,EAClC,aAAe,EACf,YAAW,aAAe,WAAW,UAAU,SAAS,GAC5D,IAAI,kBACJ,GAAI,GAAC,uBAAyB,CAAC,iBAE3B,sBAAsB,OAAS,GAAK,eAAe,OAAS,EAAG,CAElE,IAAI,MAAQ,EACR,gBAEJ,QAAS,IAAM,EAAG,IAAM,sBAAsB,OAAQ,MAAO,CAC5D,MAAM,aAAe,sBAAsB,GAAG,EAC9C,OAAS,WAAW,aAAa,SAAS,EAC1C,gBAAkB,KACnB,CAGA,IAAI,MAAQ,EACR,gBAEJ,QAAS,OAAS,EAAG,OAAS,eAAe,OAAQ,SAAU,CAC9D,MAAM,kBAAoB,eAAe,MAAM,EAC/C,OAAS,WAAW,kBAAkB,SAAS,EAC/C,gBAAkB,KACnB,CAGA,IAAI,MAAQ,EACR,WAEJ,QAAS,IAAM,EAAG,IAAM,gBAAgB,OAAQ,MAAO,CACtD,MAAM,eAAiB,gBAAgB,GAAG,EAC1C,OAAS,WAAW,eAAe,SAAS,EAC5C,WAAa,KACd,CAEI,WAAa,EAChB,kBAAoB,gBAAkB,WAEtC,kBAAoB,gBAGjB,kBACH,gBAAgB,UAAY,KAAK,QAAQ,YAAY,iBAAiB,GAGvE,IAAI,mBAAqB,SAAS,cAAc,4CAA4C,EACxF,cAAgB,SAAS,cAAc,uCAAuC,EAE9E,kBAAoB,kBACnB,qBACH,mBAAmB,UAAY,KAAY,KAAK,OAAO,kBAAoB,cAAgB,kBAAoB,GAAG,EAAI,KAGnH,gBACH,cAAc,UAAY,KAAY,KAAK,QAAQ,YAAY,kBAAoB,YAAY,GAGlG,CACD,EAAG,IAAI,CACR,CAQA,MAAM,iBAAiB,IAAK,CAC3B,MAAM,SAAW,MAAM,OAAO,MAAM,GAAG,EAEjC,eADS,IAAI,UAAU,EACC,gBAAgB,MAAM,SAAS,KAAK,EAAG,WAAW,EAC1E,kBAAoB,eAAe,cAAc,iDAAiD,EAClG,gBAAkB,KAAK,MAAM,eAOnC,eAAe,iBAAiB,oFAAoF,EAAE,QAAQ,MAAQ,CACrI,MAAM,WAAa,KAAK,aAAa,MAAM,GAAK,IAAI,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,EAC7E,WAAa,CAAC,SAAS,KAAK,cAAc,eAAe,SAAS,IAAI,GACzE,SAAS,KAAK,YAAY,KAAK,UAAU,EAAI,CAAC,CAEhD,CAAC,EACD,MAAM,gBAAkB,kBAAkB,UAAU,EAAI,EAClD,sBAAwB,CAC7B,+BACA,sBACA,mBACA,+BACA,6BACA,0BACA,oCACA,OACA,sBACD,EACA,gBAAgB,iBAAiB,sBAAsB,KAAK,GAAG,CAAC,EAAE,QAAQ,IAAM,GAAG,OAAO,CAAC,EAE3F,gBAAgB,YAAY,eAAe,EAE3C,IAAI,gBACH,KAAK,MACL,gBAAgB,cAAc,iDAAiD,EAC/E,GACA,CAAE,cAAe,CAAE,CACpB,EAEA,WAAW,IAAM,CACZ,OAAO,SAAW,OAAO,QAAQ,eACpC,OAAO,QAAQ,cAAc,KAAK,CAEpC,EAAG,IAAI,EAEP,KAAK,sBAAsB,eAAe,CAC3C,CAEA,sBAAsB,cAAe,CACpC,MAAM,6BAA+B,IAAM,CAC1C,MAAM,iBAAmB,cAAc,cAAc,yBAAyB,EAC9E,GAAI,CAAC,iBAAkB,OAEK,OAAO,iBAAiB,gBAAgB,EAAE,UAC1C,SAC3B,qBAAqB,CAEvB,EAEM,qBAAuB,IAAM,CAClC,MAAM,aAAe,cAAc,cAAc,oBAAoB,EACrE,GAAI,CAAC,aAAc,OAEnB,MAAM,UAAY,aAAa,YAAY,KAAK,EAE1C,qBAAuB,IAAM,CAClC,MAAM,uBAAyB,cAAc,cAAc,8DAA8D,EACzH,GAAI,CAAC,uBAAwB,OAE7B,IAAI,WAAa,UAEjB,GAAI,uBAAuB,QAAU,eAAgB,CACpD,MAAM,yBAA2B,cAAc,cAAc,kBAAkB,EAC3E,0BAA4B,yBAAyB,YAAY,KAAK,EACzE,WAAa,yBAAyB,YAAY,KAAK,EAEvD,WAAa,SAEf,CAEA,aAAa,YAAc,UAC5B,EAEwB,cAAc,iBAAiB,sDAAsD,EAC7F,QAAS,QAAW,CACnC,OAAO,iBAAiB,SAAU,oBAAoB,CACvD,CAAC,EAEqB,cAAc,iBAAiB,2CAA2C,EAClF,QAAS,QAAW,CACjC,OAAO,iBAAiB,SAAU,IAAM,CACvC,qBAAqB,CACtB,CAAC,CACF,CAAC,EAED,qBAAqB,CACtB,EAEA,6BAA6B,EAE7B,MAAM,+BAAiC,cAAc,cAAc,yBAAyB,EACxF,gCAC8B,IAAI,iBAAiB,IAAM,CAC3D,6BAA6B,CAC9B,CAAC,EAEwB,QAAQ,+BAAgC,CAChE,WAAY,GACZ,gBAAiB,CAAC,OAAO,CAC1B,CAAC,CAEH,CAGA,MAAM,gBAAiB,CACtB,MAAM,SAAW,MAAM,OAAO,MAAM,KAAK,QAAQ,EAG3C,SAFS,IAAI,UAAU,EACV,gBAAgB,MAAM,SAAS,KAAK,EAAG,WAAW,EAChD,cAAc,eAAe,EAClD,SAAS,cAAc,oBAAoB,EAAE,OAAO,EACpD,SAAS,cAAc,0BAA0B,EAAE,OAAO,EAC1D,MAAM3E,QAAS,KAAK,MAAM,aAC1BA,QAAO,YAAY,QAAQ,EAC3B,KAAK,UAAY,IAAI,MAAM,KAAK,MAAOA,OAAM,CAC9C,CAEA,cAAc,EAAG,EAAG,CACnB,OAAI,EAAI,EACA,EAAI,EAEJ,EAAI,CAEb,CAEA,IAAI,mBAAoB,CACvB,OAAO,KAAK,MAAM,iBAAmB,KAAK,MAAM,eACjD,CAQA,kBAAkB,KAAM,CACvB,OAAK,KAAK,kBACH,KAAK,QAAU,KAAK,MAAM,gBADG,EAErC,CASA,MAAM,eAAe,IAAK,SAAU,CACnC,MAAM,YAAc,KAAK,KAAK,MAAM,KAAM,MAAS,KAAK,KAAO,GAAG,EAClE,GAAI,CAAC,KAAK,kBAAmB,OAAO,IAEpC,GAAI,YAAY,YACX,KAAK,MAAM,aAAa,kBAAkB,YAAY,WAAY,CAIrE,MAAM,cAAgB,KAAK,KAAK,MAAM,IAAI,GAAK,EAAE,MAAM,EAAE,QAAQ,KAAK,MAAM,eAAe,EAE3F,GAAI,cAAgB,GAAI,CACvB,IAAI,WAAa,KAAK,cAAc,YAAY,SAAU,QAAQ,EAI9D,oBAAsB,EAEtB,SAAW,YAAY,SAC1B,oBAAsB,KAAK,KAAK,MAAM,aAAa,EAAE,SAAW,WACtD,UAAY,EAEtB,oBAAsB,KAAK,KAAK,MAAM,aAAa,EAAE,SAAW,YAAY,SAE5E,oBAAsB,KAAK,KAAK,MAAM,aAAa,EAAE,SAAW,WAGjE,MAAM,SAAW,MAAM,OAAO,MAAM,kBAAmB,CACtD,OAAQ,OACR,YAAa,cACb,QAAS,CACR,eAAgB,kBACjB,EACA,KAAM,KAAK,UAAU,CACpB,IAAO,YAAY,IACnB,SAAY,mBACb,CAAC,CACF,CAAC,EAED,OAAI,qBAAuB,GAAK,IAAY,GAE7C,CAEA,OAAO,GACR,CAGD,OAAO,GACR,CAaC,MAAM,YAAY,IAAK,SAAU,CAGjC,MAAM,KAAO,KAAK,MAAM,OAAO,KAAK,GAAK,EAAE,MAAQ,GAAG,EACtD,GAAI,CAAC,KAAM,OAEX,MAAM,WAAa,KAAK,WAClB,gBAAkB,KAAK,yBAAyB,cAAc,IAAM,KACpE,WAAa,KAAK,YAAc,CAAC,EAEjC,eAAkB,MAAS,MAAM,OAAO,KAAK,IAAM,CAGxD,GAFI,GAAG,aAAe,aACP,GAAG,yBAAyB,cAAc,IAAM,QAChD,gBAAiB,MAAO,GACvC,MAAM,QAAU,GAAG,YAAc,CAAC,EAC5B,OAAS,OAAO,KAAK,OAAO,EAAE,KAAK,EACnC,OAAS,OAAO,KAAK,UAAU,EAAE,KAAK,EAC5C,OAAI,OAAO,SAAW,OAAO,OAAe,GACrC,OAAO,MAAM,GAAK,QAAQ,CAAC,IAAM,WAAW,CAAC,CAAC,CACtD,CAAC,EAED,QAAS,QAAU,EAAG,SAAW,EAAG,UAAW,CAG9C,IAAI,UACJ,GAAI,CAEH,UAAY,MADF,MAAM,MAAM,OAAO,QAAQ,OAAO,KAAO,SAAS,GACxC,KAAK,CAC1B,MAAQ,CACP,UAAY,KAAK,IAClB,CAEA,MAAM,YAAc,eAAe,SAAS,EAC5C,GAAI,CAAC,YAAa,OAElB,IAAI,SAAW,KACf,GAAI,CAMH,SAAW,MALD,MAAM,MAAM,OAAO,QAAQ,OAAO,KAAO,iBAAkB,CACpE,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,GAAI,YAAY,IAAK,QAAS,CAAC,CACvD,CAAC,GACkB,KAAK,CACzB,MAAY,CACX,MACD,CAEA,GAAI,CAAC,SAAU,OAGf,GAAI,SAAS,SAAW,eAAiB,SAAS,SAAW,IAAK,CACjE,GAAI,QAAU,EAAG,CAChB,MAAM,IAAI,QAAQ,GAAK,WAAW,EAAG,GAAG,CAAC,EACzC,QACD,CACA,MACD,CAGA,GAAI,SAAS,OAAS,MAAM,QAAQ,SAAS,KAAK,EAAG,CACpD,KAAK,KAAO,SAIR,OAAO,MAAM,SAChB,OAAO,KAAK,QAAQ,QAAQ,EAKzB,OAAO,SAAS,kBACnB,OAAO,QAAQ,iBAAiB,QAAQ,EAErC,OAAO,SAAS,mBACnB,OAAO,QAAQ,kBAAkB,OAAQ,WAAY,CAAE,KAAM,QAAS,CAAC,EAKpE,OAAO,MAAM,oBAChB,OAAO,KAAK,mBAAmB,SAAU,aAAa,EAEvD,SAAS,gBAAgB,cAAc,IAAI,YAAY,kBAAmB,CACzE,OAAQ,CAAE,KAAM,QAAS,CAC1B,CAAC,CAAC,EACF,MACD,CAEA,MACD,CACD,CAGA,gBAAiB,CAChB,OAAO,SAAS,KAAO,KAAK,sBAE7B,CAEA,kBAAmB,CAClB,KAAK,YAAc,GACnB,KAAK,MAAM,WAAW,MAAM,CAC7B,CAEA,IAAI,oBAAqB,CACxB,OAAO,KAAK,cAAgB,MAC7B,CAEA,IAAI,mBAAoB,CACvB,IAAI,YAAc,CAAC,EACnB,OAAI,KAAK,gBAAkB,SAAS,YAAY,KAAK,SAAS,EAC1D,KAAK,iBAAmB,SAAS,YAAY,KAAK,SAAS,EAC3D,KAAK,cAAgB,SAAS,YAAY,KAAK,MAAM,EACrD,KAAK,oBAAsB,SAAS,YAAY,KAAK,YAAY,EACrE,KAAK,eAAiB,YAAY,OAC3B,YAAY,KAAK,CACzB,CAEA,IAAI,oBAAqB,CACxB,OAAI,KAAK,mBACD,GAAG,KAAK,SAAS,MAAM,mBAAmB,KAAK,WAAW,CAAC,oBAAoB,KAAK,iBAAiB,GAErG,gBAAgB,KAAK,iBAAiB,MAAM,mBAAmB,KAAK,WAAW,CAAC,EAEzF,CAEA,IAAI,wBAAyB,CAC5B,MAAO,gBAAgB,KAAK,iBAAiB,MAAM,mBAAmB,KAAK,WAAW,CAAC,GACxF,CAEA,MAAM,eAAgB,CACrB,KAAK,UAAY,GACjB,KAAK,iBAAmB,GACxB,KAAK,iBAAmB,EACxB,KAAK,cAAgB,GACrB,IAAIzD,MAEJ,GAAI,CACH,MAAM,SAAW,MAAM,MAAM,GAAG,KAAK,kBAAkB,EAAE,EAEpD,SAAS,GAGdA,MAAO,MAAM,SAAS,KAAK,CAC5B,OAAS,EAAG,CACX,QAAQ,MAAM,gBAAiB,CAAC,EAEhC,OAAO,SAAS,KAAO,KAAK,sBAC7B,CAEA,MAAM,aAAe,IAAI,IAEzB,OAAO,KAAKA,MAAK,UAAU,OAAO,EAAE,QAAQ,YAAc,CACzD,IAAI,MAAQ,aAAa,IAAI,UAAU,EACnC,OAASA,MAAK,UAAU,QAAQ,UAAU,EAEzC,QACJ,MAAQ,CACP,KAAM,CACL,SAAY,KAAK,MAAM,aAAa,SACpC,MAAS,KAAK,MAAM,aAAa,MACjC,SAAY,KAAK,MAAM,aAAa,SACpC,YAAe,KAAK,MAAM,aAAa,WACxC,EAAE,UAAU,EACZ,QAAS,CAAC,CACX,EACA,aAAa,IAAI,WAAY,KAAK,GAInC,IAAI,gBAAkB,OAAO,IAAI,MAAQ,CACxC,IAAI,KAAO,OAAO,OAAO,CAAC,EAAG,IAAI,EAEjC,OAAI,KAAK,QACR,KAAK,MAAQ,KAAK,MAAM,YAAY,KAAK,KAAK,GAGxC,IACR,CAAC,EAEG,SAAW,EACX,KAAK,gBAAkB,EAAG,SAAW,EAAY,KAAK,gBAAkB,EAAG,SAAW,EAAY,KAAK,gBAAkB,IAAG,SAAW,GAC3I,MAAM,QAAU,gBAAgB,MAAM,EAAG,QAAQ,EAE7C,MAAM,SAAW,MAAM,QAAQ,OAAS,IAC3C,KAAK,kBAAoB,OAAO,OAChC,KAAK,iBAAmB,GAE1B,CAAC,EAEG,CAAC,KAAK,kBAAoB,KAAK,YAAc,KAChD,KAAK,cAAgB,KAAK,MAAM,aAAa,gBAAgB,QAAQ,cAAe,KAAK,WAAW,GAGrG,KAAK,UAAY,GACjB,KAAK,aAAe,MAAM,KAAK,aAAa,OAAO,CAAC,CACrD,CAEA,MAAM,gBAAiB,CACtB,MAAM,SAAW,MAAM,OAAO,MAAM,kBAAmB,CACtD,OAAQ,OACR,YAAa,cACb,QAAS,CACR,eAAgB,kBACjB,EACA,KAAM,KAAK,UAAU,CACpB,WAAY,CACX,UAAa,KAAK,QACnB,CACD,CAAC,CACF,CAAC,EAEI,SAAS,IAEb,QAAQ,IAAI,4CAA6C,QAAQ,EAGlE,KAAK,iBAAmB,EACzB,CAED,EAAI,uBAAyB,qCAAqC,mBAAmB,UAAW,YAAa,CAAC,gBAAgB,EAAG,CAChI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,WAAY,CAAC,gBAAgB,EAAG,CAChI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,eAAgB,CAAC,gBAAgB,EAAG,CACpI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,iBAAkB,CAAC,gBAAgB,EAAG,CACtI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,cAAe,CAAC,gBAAgB,EAAG,CACnI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,iBAAkB,CAAC,gBAAgB,EAAG,CACtI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,oBAAqB,CAAC,gBAAgB,EAAG,CACzI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,wBAA0B,qCAAqC,mBAAmB,UAAW,cAAe,CAAC,gBAAgB,EAAG,CACnI,aAAc,GACd,WAAY,GACZ,SAAU,GACV,YAAa,IACd,CAAC,EAAG,qCAAqC,mBAAmB,UAAW,mBAAoB,CAAC,iBAAiB,EAAG,OAAO,yBAAyB,mBAAmB,UAAW,kBAAkB,EAAG,mBAAmB,SAAS,EAAG,qCAAqC,mBAAmB,UAAW,iBAAkB,CAAC,iBAAiB,EAAG,OAAO,yBAAyB,mBAAmB,UAAW,gBAAgB,EAAG,mBAAmB,SAAS,EAAI,mBAAmB,GAAK,mBAGrd,IAAI,gBAAkB,oBAAoB,GAAG,EAK7C,MAAM,cAAc,SAAU,CAK7B,YAAY,MAAO,QAAS,CAC3B,MAAM,MAAO,OAAO,EAEpB,KAAK,kBAAoB,IAAM,CAC9B,IAAI,QAAU,GACd,GAAI,CAAC,KAAK,gBAAiB,OAAO,QAClC,IAAI,UAAY,OAAO,aAAa,QAAQ,KAAK,WAAW,EAE5D,GAAI,UACH,GAAI,CACH,IAAI,OAAS,KAAK,MAAM,KAAK,MAAM,SAAS,EAAE,MAAM,EAEhD,OAAS,KAAK,IAAI,IACrB,QAAU,GAEZ,OAAS,EAAG,CACX,QAAQ,KAAK,mCAAoC,CAAC,CACnD,CAGD,OAAO,OACR,EAEA,KAAK,UAAY,MAAQ,CACxB,IAAI,OAAS,IAAI,KAAK,KAAK,IAAI,EAAI,KAAO,GAAK,GAAK,GAAK,GAAI,EAE7D,GAAI,CACC,KAAK,iBACR,aAAa,QAAQ,KAAK,YAAa,KAAK,UAAU,CACrD,OAAQ,OAAO,YAAY,CAC5B,CAAC,CAAC,CAEJ,OAAS,EAAG,CACX,QAAQ,KAAK,8BAA+B,CAAC,CAC9C,CACD,EAEA,KAAK,eAAiB,CAAC,CACtB,MAAA6F,MACD,IAAM,CAEL,IAAI,iBAAoB,eAAe,EAAG,SAAS,OAE/CA,OAAQ,IACP,mBAEH,eAAe,EAAE,SAAS,MAAM,EAChC,KAAK,YAAY,IAGd,KAAK,QAAQ,UAAU,SAAS,SAAS,GAAK,KAAK,eACtD,KAAK,QAAQ,UAAU,OAAO,SAAS,EACvC,KAAK,eAAe,GAGjB,kBACH,eAAe,EAAE,SAAS,WAAW,EAGxC,EAEA,KAAK,KAAO,IAAM,CACb,KAAK,MAAM,eAAe,EAAI,KACjC,eAAe,EAAE,SAAS,MAAM,EAChC,KAAK,YAAY,GAEb,KAAK,cACR,KAAK,QAAQ,UAAU,OAAO,SAAS,EACvC,KAAK,eAAe,GAEpB,KAAK,YAAY,CAGpB,EAEA,KAAK,YAAc,IAAM,CACxB,SAAS,cAAc,WAAW,EAAE,gBAAgB,OAAO,EAC3D,SAAS,cAAc,QAAQ,EAAE,UAAU,IAAI,UAAU,EACzD,SAAS,cAAc,QAAQ,EAAE,UAAU,IAAI,SAAS,CACzD,EAEA,KAAK,eAAiB,IAAM,CAC3B,SAAS,cAAc,QAAQ,EAAE,UAAU,IAAI,YAAY,EAC3D,SAAS,cAAc,aAAa,EAAE,gBAAgB,OAAO,EAC7D,eAAe,EAAE,SAAS,CAEzB,UAAa,GACb,aAAgB,UAChB,cAAiB,UACjB,QAAW,IACX,SAAY,IACZ,eAAkB,GAClB,eAAkB,GAClB,KAAQ,qBACR,QAAW,4BACX,IAAK,CACJ,SAAU,8DACX,CACD,CAAC,CACF,EAEA,KAAK,yBAA2B,IAAM,CACrC,GAAI,CACH,MAAO,UAAO,QAAW,KAAe,OAAO,cAAgB,OAAO,eACvE,MAAY,CACX,MAAO,EACR,CACD,EAEA,KAAK,YAAc,gBACnB,KAAK,aAAe,KAAK,QAAQ,QAAQ,cAAgB,aACzD,KAAK,cAAgB,SAAS,KAAK,QAAQ,QAAQ,UAAW,EAAE,EAChE,KAAK,WAAa,SAAS,KAAK,QAAQ,QAAQ,WAAY,EAAE,EAC9D,KAAK,SAAW,KAAK,QAAQ,QAAQ,gBAAkB,OACvD,KAAK,gBAAkB,KAAK,yBAAyB,EAEjD,KAAK,SAER,KAAK,KAAK,EACA,KAAK,kBAAkB,GAEjC,WAAW,IAAM,CAChB,KAAK,UAAU,KAAK,aAAa,EACjC,KAAK,KAAK,CACX,EAAG,IAAO,KAAK,UAAU,EAG1B,KAAK,QAAQ,cAAc,mBAAmB,EAAE,iBAAiB,QAAS,IAAM,CAC/E,KAAK,QAAQ,UAAU,OAAO,SAAS,CACxC,CAAC,CACF,CAED,CAKA,MAAM,0BAA0B,SAAU,CACzC,YAAY,MAAO,QAAS,CAC3B,MAAM,MAAO,OAAO,EAEpB,KAAK,KAAO,IAAM,CAEb,KAAK,aAAa,KAAK,UAAU,EAEjC,KAAK,YACR,KAAK,WAAW,aAAa,WAAY,GAAG,EAG7C,IAAI,UAAY,KAAK,WAAW,WAAW,EAEtC,WACJ,KAAK,UAAU,EAGZ,KAAK,aACR,KAAK,YAAY,iBAAiB,QAAS,KAAK,WAAW,EAGxD,KAAK,YACR,KAAK,WAAW,iBAAiB,QAAS,KAAK,aAAa,EAGzD,KAAK,cACR,KAAK,aAAa,iBAAiB,QAAS,KAAK,eAAe,EAG7D,KAAK,aACR,KAAK,YAAY,iBAAiB,QAAS,KAAK,eAAe,CAEjE,EAEA,KAAK,YAAc,IAAM,CAExB,SAAS,OAAS,oCAClB,KAAK,UAAU,CAChB,EAEA,KAAK,gBAAkB,IAAM,CAC5B,KAAK,cAAgB,SAAS,cAAc,qBAAqB,EACjE,KAAK,YAAc,SAAS,cAAc,wBAAwB,CACnE,EAEA,KAAK,UAAY,IAAM,CACtB,WAAW,IAAM,CAChB,GAAI,SAAS,cAAc,+BAA+B,EAAG,CAC5D,IAAI,OAAS,eAAe,EAAE,+BAA+B,EAAE,KAAK,WAAW,EAAE,OAAO,UAAU,EAC9F,WAAa,OAAO,MAAM,EAC1B,UAAY,OAAO,KAAK,EAE5B,eAAe,EAAE,+BAA+B,EAAE,MAAM,EAExD,UAAU,GAAG,UAAW,SAAU,EAAG,CAChC,EAAE,QAAU,GAAK,CAAC,EAAE,WACvB,EAAE,eAAe,EACjB,WAAW,MAAM,EAEnB,CAAC,EAED,WAAW,GAAG,UAAW,SAAU,EAAG,CACjC,EAAE,QAAU,GAAK,EAAE,WACtB,EAAE,eAAe,EACjB,UAAU,MAAM,EAElB,CAAC,CACF,CACD,EAAG,GAAG,CACP,EAEA,KAAK,WAAa,MAAQ,CAIzB,QAHI,OAAS,KAAO,IAChB,GAAK,SAAS,OAAO,MAAM,GAAG,EAEzB,EAAI,EAAG,EAAI,GAAG,OAAQ,IAAK,CAGnC,QAFI,EAAI,GAAG,CAAC,EAEL,EAAE,OAAO,CAAC,GAAK,KAAK,EAAI,EAAE,UAAU,EAAG,EAAE,MAAM,EAEtD,GAAI,EAAE,QAAQ,MAAM,GAAK,EAAG,OAAO,EAAE,UAAU,OAAO,OAAQ,EAAE,MAAM,CACvE,CAEA,OAAO,IACR,EAEA,KAAK,UAAY,IAAM,CACtB,eAAe,EAAE,+BAA+B,EAAE,IAAI,UAAW,OAAO,EACxE,KAAK,UAAU,EACf,kBAAkB,SAAS,cAAc,+BAA+B,CAAC,CAC1E,EAEA,KAAK,UAAY,IAAM,CACtB,iBAAiB,SAAS,cAAc,+BAA+B,CAAC,EACxE,eAAe,EAAE,+BAA+B,EAAE,IAAI,UAAW,MAAM,CACxE,EAEA,KAAK,gBAAkB,IAAM,CAC5B,eAAe,EAAE,uBAAuB,EAAE,UAAU,CAAC,EACrD,eAAe,EAAE,mCAAmC,EAAE,IAAI,UAAW,MAAM,EAC3E,KAAK,gBAAgB,EACrB,KAAK,cAAc,UAAU,IAAI,QAAQ,EACzC,KAAK,YAAY,UAAU,OAAO,QAAQ,EAC1C,KAAK,UAAU,CAChB,EAEA,KAAK,cAAgB,IAAM,CAC1B,eAAe,EAAE,uBAAuB,EAAE,UAAU,CAAC,EACrD,eAAe,EAAE,mCAAmC,EAAE,IAAI,UAAW,MAAM,EAC3E,KAAK,gBAAgB,EACrB,KAAK,cAAc,UAAU,OAAO,QAAQ,EAC5C,KAAK,YAAY,UAAU,IAAI,QAAQ,EACvC,KAAK,UAAU,CAChB,EAEA,KAAK,YAAc,SAAS,KAAK,QAAQ,QAAQ,QAAS,EAAE,EAC5D,KAAK,SAAW,EAChB,KAAK,YAAc,KAAK,QAAQ,QAAQ,cAAgB,OACxD,KAAK,YAAc,QAAQ,cAAc,gBAAgB,EACzD,KAAK,WAAa,QAAQ,cAAc,eAAe,EACvD,KAAK,aAAe,QAAQ,cAAc,iBAAiB,EAC3D,KAAK,YAAc,QAAQ,cAAc,mCAAmC,EAC5E,KAAK,WAAa,QAAQ,cAAc,2BAA2B,EACnE,KAAK,KAAK,CACX,CAED,CASA,SAAS,SAAS,SAAU,SAAU,CACrC,IAAI,WAAa,GACb,mBAAqB,GACzB,MAAO,IAAI,OAAS,CACnB,MAAM,UAAY,IAAM,CACnB,oBACH,SAAS,MAAM,KAAM,IAAI,EACzB,WAAW,UAAW,QAAQ,GAE9B,WAAa,GAGd,mBAAqB,EACtB,EAEA,GAAI,CAAC,WAAY,CAChB,mBAAqB,GACrB,MACD,CAEA,WAAa,GACb,SAAS,MAAM,KAAM,IAAI,EACzB,WAAW,UAAW,QAAQ,CAC/B,CACD,CAUA,MAAM,cAAc,SAAU,CAC7B,YAAY,MAAO,SAAU,CAC5B,MAAM,MAAO,QAAQ,EAErB,KAAK,IAAM,CAAC,QAAS,UAAY,CAChC,KAAK,MAAM,KAAK,OAAO,EACvB,KAAK,KAAK,QAAS,OAAO,CAC3B,EAEA,KAAK,eAAiB,IAAM,CAC3B,MAAM,YAAc,eAAe,EAAE,KAAK,KAAK,EAAE,KAAK,uCAAuC,EACvF,QAAU,YAAY,KAAK,QAAQ,EACzC,QAAQ,IAAI,UAAW,CAAC,EACxB,KAAK,wBAAwB,WAAW,EACxC,QAAQ,IAAI,UAAW,CAAC,CACzB,EAEA,KAAK,KAAO,CAAC,QAAS,QAAU,SAAc,CAC7C,MAAM,MAAQ,KAEV,UAAY,SACf,QAAU,GAGX,MAAM,YAAc,eAAe,EAAE,OAAO,EAAE,KAAK,uCAAuC,EAC1F,KAAK,wBAAwB,WAAW,EAEpC,QAAU,GACb,WAAW,IAAM,CAChB,KAAK,wBAAwB,WAAW,CACzC,EAAG,OAAO,EAKP,YAAY,KAAK,SAAS,EAAE,OAAS,GAAK,KAAK,MAAM,eAAe,GAAK,YAAY,GAAG,KAC3F,YAAY,KAAK,CAAC1F,OAAO,KAAO,CAC/B,oBAAoB,EAAE,GAAI,UAAY,CACrC,GAAI,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,iBAAiB,EAAE,SAAS,UAAU,EAAG,CAE3E,IAAIN,MAAO,eAAe,EAAE,IAAI,EAChCA,MAAK,OAAO,iBAAiB,EAAE,SAAS,UAAU,EAClDA,MAAK,KAAK,SAAS,EAAE,OAAO,IAAK,EAAG,UAAY,CAC/C,MAAM,6BAA6B,eAAe,EAAEA,KAAI,CAAC,CAC1D,CAAC,CACF,CACD,EAAG,UAAY,CACd,IAAIA,MAAO,eAAe,EAAE,IAAI,EAEhC,eAAe,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,OAAO,IAAK,EAAG,UAAY,CACjE,MAAM,wBAAwB,WAAW,CAC1C,CAAC,EACDA,MAAK,OAAO,iBAAiB,EAAE,YAAY,UAAU,CACtD,CAAC,EAAE,QAAQ,CACV,YAAa,GACb,SAAU,EACX,CAAC,CACF,CAAC,CAEH,EAEA,KAAK,6BAA+B,MAAQ,CAGvC,KAAK,KAAK,iBAAiB,EAAE,SAChC,KAAK,KAAK,iBAAiB,EAAE,IAAI,UAAW,CAAC,EAC7C,KAAK,WAAW,KAAM,EAAI,EAE5B,EAEA,KAAK,wBAA0B,WAAa,CAC3C,UAAU,KAAK,CAAC,EAAG,KAAO,CACzB,KAAK,WAAW,eAAe,EAAE,EAAE,CAAC,EACpC,eAAe,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAM,EAAI,CAC/C,CAAC,CACF,EAEA,KAAK,WAAa,CAAC,KAAM,QAAU,CAC9B,QAAU,SACb,MAAQ,IAGT,IAAI,SAAW,KAAK,OAAO,EAAE,KAAK,QAAQ,EAE1C,GAAK,SAAS,OAKd,GAAI,eAAe,EAAE,MAAM,EAAE,SAAS,qBAAqB,EAC1D,SAAS,IAAI,MAAO,GAAG,EACvB,SAAS,IAAI,OAAQ,GAAG,MAEpB,CAEJ,IAAI,eAAiB,KAAK,MAAM,EAC5B,gBAAkB,KAAK,OAAO,EAC9B,QAEA,QAAU,GACb,QAAU,KAAK,KAAK,aAAa,EAEjC,QAAU,KAAK,KAAK,KAAK,EAG1B,IAAI,WAAa,KAAK,iBAAiB,QAAQ,IAAI,CAAC,CAAC,EACjD,UAAY,KAAK,MAAM,WAAW,CAAC,CAAC,EACpC,WAAa,KAAK,MAAM,WAAW,CAAC,CAAC,EAErC,SAAW,eAAiB,WAAa,EACzC,SAAW,gBAAkB,YAAc,EAE3C,QAAU,IAAG,QAAU,GACvB,QAAU,IAAG,QAAU,GAE3B,SAAS,IAAI,MAAO,QAAU,IAAI,EAClC,SAAS,IAAI,OAAQ,QAAU,IAAI,CACpC,CACD,EAEA,KAAK,iBAAmB,KAAO,CAC9B,IAAI,MAAQ,IAAI,aAAe,IAAI,cAC/BgG,OAAQ,IAAI,OAAS,MACrBc,QAAS,IAAI,OAEjB,OAAId,OAAQ,IAAI,QACfA,OAAQ,IAAI,MACZc,QAAS,IAAI,MAAQ,OAGf,CAACd,OAAOc,OAAM,CACtB,EAEA,KAAK,MAAQ,CAAC,CACf,CAED,CAOA,SAAS,iBAAiB,MAAO,CAIhC,QAHI,SAAW,IAAI,MACf,YAAc,IAAI,MAEb,EAAI,EAAG,EAAI,MAAM,OAAQ,IAAK,CACtC,IAAI,OAAS,MAAM,CAAC,EAAE,OAElB,YAAY,QAAQ,MAAM,IAAM,KACnC,SAAS,KAAK,MAAM,CAAC,CAAC,EACtB,YAAY,KAAK,MAAM,EAEzB,CAEA,OAAO,QACR,CAEA,MAAM,uBAAuB,OAAQ,CAKpC,YAAY,MAAO,QAAS,SAAU,CAuMrC,GAtMA,MAAM,MAAO,QAAS,QAAQ,EAC9B,KAAK,sBAAwB,GAC7B,KAAK,kCAAoC,kBACzC,KAAK,YAAc,cAEnB,KAAK,aAAe,gBAAkB,CACrC,IAAI5F,KAAM,KAAK,SAAS,KAAK,WAAW,EACxC,IAAI,SAAW,eAAe,IAAI,SAAU,GAAI,CAC/C,OAAO,eAAe,EAAE,IAAI,KAAK,WAAW,QAAQ,KAAK,YAAa,GAAG,MAAM,EAAG,CACjF,OAAQA,IACT,CAAC,CACF,EAAE,KAAK,IAAI,CAAC,EACZ,eAAe,EAAE,KAAK,MAAO,eAAe,EAAI,QAAQ,EAAE,KAAK,IAAM,CACpE,IAAI,MAAQ,GACZ,SAAS,QAAQ,SAAW,CAC3B,GAAI,QAAQ,SAAW,IAAK,CAC3B,IAAI,UAAY,SAAS,cAAc,KAAK,EAC5C,UAAU,UAAY,QAAQ,aAC9B,KAAK,SAAS,OAAO,UAAU,cAAc,2BAA2B,EAAE,SAAS,EACnF,KAAK,SAAS,KAAK,aAAa,EAAE,SAAS,cAAc,EACzD,KAAK,YAAY,UAAU,cAAc,iBAAiB,CAAC,CAC5D,MACC,QAAQ,KAAK,6CAA8C,QAAQ,OAAQ,QAAQ,YAAY,EAC/F,MAAQ,EAEV,CAAC,EAEG,MACH,KAAK,KAAK,EAEV,KAAK,YAAY,CAEnB,CAAC,CACF,EAEA,KAAK,YAAc,QAAU,CAC5B,GAAI,CAAC,KAAK,YAAa,OACvB,MAAM,MAAQ,OAAO,UAAU,EAAI,EACnC,OAAO,UAAY,GACnB,KAAK,YAAY,QAAQ,OAAS,CACjC,GAAI,CAAC,MAAO,OACZ,MAAM,aAAe,MAAM,cAAc,oBAAoB,KAAK,GAAG,EAEjE,cACH,OAAO,YAAY,YAAY,CAEjC,CAAC,CACF,EAEA,KAAK,YAAc,IAAM,CACxB,KAAK,SAAS,KAAK,sBAAsB,EAAE,KAAK,EAChD,KAAK,SAAS,KAAK,sBAAsB,EAAE,KAAK,CACjD,EAEA,KAAK,KAAO,IAAM,CACjB,MAAM,OAAS,KAAK,QAAQ,cAAc,sBAAsB,EAC1D,OAAS,KAAK,QAAQ,cAAc,sBAAsB,EAChE,KAAK,SAAS,OAAO,EACrB,KAAK,OAAS,IAAI,kBAAkB,KAAK,QAAQ,cAAc,mBAAmB,EAAG,CACpF,cAAe,EACf,WAAY,CACX,OACA,MACD,EACA,YAAa,CACZ,IAAK,CACJ,cAAe,CAChB,CACD,EACA,cAAe,GACf,WAAY,EACb,CAAC,EACD,KAAK,YAAY,EACjB,KAAK,MAAQ,KAAK,MAAM,UAAU,KAAK,QAAS,GAAI,CACrD,EAEA,KAAK,YAAc,IAAM,CACpB,KAAK,QAAQ,QAAQ,YAAc,QAEtC,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,iBAAiB,EAAG,IAAM,CACpF,MAAM,MAAQ,GAAG,cAAc,sBAAsB,EAC/C,WAAa,GAAG,cAAc,uBAAuB,EACrD,YAAc,GAAG,cAAc,+BAA+B,EAC9D,EAAI,SAAS,cAAc,GAAG,EACpC,EAAE,UAAU,IAAI,iBAAiB,EACjC,EAAE,KAAO,MAAM,cAAc,GAAG,EAAE,KAClC,EAAE,YAAc,KAAK,MAAM,aAAa,WACxC,EAAE,iBAAiB,QAAS,KAAK,aAAa,EAC9C,MAAM,QAAU,SAAS,cAAc,KAAK,EAC5C,QAAQ,YAAY,CAAC,EACrB,QAAQ,UAAU,IAAI,kBAAkB,EACxC,MAAM,eAAiB,QACjB,cAAgB,QAAQ,UAAU,EAAI,EAC5C,eAAe,UAAU,IAAI,2BAA2B,EACxD,cAAc,UAAU,IAAI,0BAA0B,EACtD,WAAW,YAAY,cAAc,EACrC,YAAY,WAAW,aAAa,cAAe,YAAY,WAAW,CAC3E,CAAC,EAGE,KAAK,QAAQ,QAAQ,WAAa,QACrC,MAAM,UAAU,QAAQ,KAAK,KAAK,QAAQ,iBAAiB,iBAAiB,EAAG,IAAM,CACpF,MAAM,UAAY,OAAO,GAAG,QAAQ,SAAS,EACvC,iBAAmB,GAAG,QAAQ,kBAAoB,OAClD,eAAiB,OAAO,GAAG,QAAQ,mBAAmB,EACtD,MAAQ,GAAG,cAAc,sBAAsB,EAC/C,KAAO,GAAG,cAAc,+BAA+B,EAEvD,EAAI,SAAS,cAAc,GAAG,EAC9B,QAAU,SAAS,cAAc,KAAK,EAI5C,GAHA,QAAQ,UAAU,IAAI,mBAAmB,EACrC,gBAAkB,GAAG,QAAQ,UAAU,IAAI,aAAa,EAExD,eAAiB,GAAK,iBACzB,EAAE,UAAU,IAAI,2BAA2B,EAC3C,EAAE,SAAW,EACb,EAAE,KAAO,MAAM,cAAc,GAAG,EAAE,KAClC,EAAE,YAAc,KAAK,MAAM,aAAa,aACxC,EAAE,iBAAiB,QAAS,KAAK,aAAa,EAC9C,QAAQ,YAAY,CAAC,UACX,iBAAkB,CAE5B,MAAM,KAAO,SAAS,cAAc,MAAM,EAC1C,KAAK,OAAS,OACd,KAAK,OAAS,YACd,KAAK,GAAK,0BACV,KAAK,cAAgB,QACrB,KAAK,UAAU,IAAI,sBAAsB,EACzC,KAAK,QAAU,sBAEf,MAAM,UAAY,SAAS,cAAc,OAAO,EAChD,UAAU,KAAO,SACjB,UAAU,KAAO,YACjB,UAAU,MAAQ,UAClB,KAAK,YAAY,SAAS,EAC1B,MAAM,UAAY,SAAS,cAAc,OAAO,EAChD,UAAU,KAAO,SACjB,UAAU,KAAO,OACjB,UAAU,MAAQ,SAClB,KAAK,YAAY,SAAS,EAC1B,MAAM,QAAU,SAAS,cAAc,OAAO,EAC9C,QAAQ,KAAO,SACf,QAAQ,KAAO,KACf,QAAQ,MAAQ,UAAU,SAAS,EACnC,KAAK,YAAY,OAAO,EAExB,MAAM,IAAM,SAAS,cAAc,QAAQ,EAC3C,IAAI,UAAU,IAAI,kBAAkB,EACpC,IAAI,KAAO,SACX,IAAI,SAAW,EACf,IAAI,YAAc,KAAK,MAAM,aAAa,UAC1C,KAAK,YAAY,GAAG,EACpB,QAAQ,YAAY,IAAI,CACzB,MACC,EAAE,UAAU,IAAI,iBAAiB,EACjC,EAAE,KAAO,MAAM,cAAc,GAAG,EAAE,KAClC,EAAE,YAAc,KAAK,MAAM,aAAa,QACxC,QAAQ,YAAY,CAAC,EAGtB,KAAK,WAAW,aAAa,QAAS,KAAK,WAAW,CACvD,CAAC,CAEH,EAEA,KAAK,cAAgB,GAAK,CACzB,EAAE,eAAe,EACjB,KAAK,MAAM,kBAAkB,WAAY,GAAM,CAC9C,IAAK,EAAE,OAAO,IACf,CAAC,CACF,EAEA,KAAK,yBAA2B,IAAM,CACrC,GAAI,CACH,MAAO,UAAO,QAAW,KAAe,OAAO,cAAgB,OAAO,eACvE,MAAY,CACX,MAAO,EACR,CACD,EAEA,KAAK,SAAW,KAAO,CACtB,IAAI,WAAa,CAAC,EAElB,QAAS,YAAY,IAChB,OAAO,UAAU,eAAe,KAAK,IAAK,QAAQ,GAAK,IAAI,QAAQ,EAAE,OAAS,GACjF,WAAW,KAAK,UAAU,IAAI,QAAQ,CAAC,CAAC,EAI1C,OAAO,WAAW,KAAK,GAAG,CAC3B,EAEA,KAAK,SAAW,eAAe,EAAE,OAAO,EACxC,KAAK,OAAS,KAAK,QAAQ,QAAQ,cACnC,KAAK,WAAa,KAAK,QAAQ,QAAQ,WACvC,KAAK,YAAc,KAAK,QAAQ,QAAQ,OAAO,MAAM,GAAG,EACxD,KAAK,SAAW,KAAK,SAAS,KAAK,2BAA2B,EAE1D,MAAK,SAAS,SAAS,yBAAyB,EAIpD,MAAK,SAAS,MAAM,EAAE,SAAS,yBAAyB,EACxD,IAAI,mBAAqB,KAErB,KAAK,yBAAyB,IACjC,mBAAqB,aAAa,QAAQ,KAAK,iCAAiC,GAGjF,IAAI,gBAAkB,oBAAsB,KAAO,KAAK,MAAM,kBAAkB,EAAI,CAAC,EAErF,GAAI,KAAK,OAAQ,CAChB,IAAI,KAAO,CACV,OAAU,KAAK,MAChB,EAEA,gBAAgB,QAAQ,IAAI,CAC7B,CAEA,IAAI,YAAc,gBAAgB,OAAS,iBAAiB,eAAe,EAAI,gBAE3E,YAAY,OAAS,KAAK,wBAC7B,YAAc,YAAY,MAAM,EAAG,KAAK,qBAAqB,GAG1D,KAAK,yBAAyB,GACjC,aAAa,QAAQ,KAAK,kCAAmC,KAAK,UAAU,WAAW,CAAC,EAGrF,YAAY,OAAS,GAAK,YAAY,SAAW,GAAK,YAAY,CAAC,EAAE,SAAc,KAAK,OAC3F,KAAK,aAAa,YAAY,OAAOwH,OAC7BA,MAAK,SAAW,KAAK,MAC5B,CAAC,EAEF,KAAK,SAAS,OAAO,EAGtB,IAAI1I,MAAO,KACX,OAAO,iBAAiB,OAAQ,OAAS,CACxC,KAAK,gBAAkB,IAAI,SAAS,MAAO,OAAO,EAClD,WAAW,IAAM,CACZA,MAAK,QACRA,MAAK,OAAO,OAAO,cAAc,CAEnC,EAAG,GAAI,CACR,CAAC,EACF,CAED,CAGA,MAAM,sBAAsB,OAAQ,CAKnC,YAAY,MAAO,QAAS,SAAU,CACrC,MAAM,MAAO,QAAS,QAAQ,EAE9B,KAAK,gBAAkB,IAAM,CAC5B,IAAI,UAAY,SAAS,cAAc,cAAc,EACrD,UAAU,YAAc,UAAU,YAAY,QAAQ,IAAK,EAAE,EAC7D,IAAI,YAAc,SAAS,cAAc,gCAAgC,EACzE,YAAY,MAAQ,YAAY,MAAM,QAAQ,IAAK,EAAE,EACrD,IAAI,eAAiB,SAAS,cAAc,gCAAgC,EAExE,iBACH,eAAe,YAAc,eAAe,YAAY,QAAQ,IAAK,EAAE,EAEzE,EAEA,KAAK,eAAiB,GAAK,CACtB,KAAK,YAAY,MAAM,OAAS,EACnC,KAAK,YAAY,MAAM,QAAU,IAEjC,KAAK,YAAY,MAAM,QAAU,GAEnC,EAEA,KAAK,YAAc,GAAK,CACnB,KAAK,cACR,KAAK,YAAY,MAAQ,GACzB,KAAK,eAAe,EACpB,KAAK,YAAY,MAAM,EAEzB,EAEA,KAAK,eAAiB,GAAK,CACtB,EAAE,UAAY,KACjB,EAAE,eAAe,EACjB,KAAK,YAAY,MAAQ,GACzB,KAAK,eAAe,EACpB,KAAK,YAAY,MAAM,EAEzB,EAEA,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAc,QAAQ,cAAc,sBAAsB,EAC/D,KAAK,YAAY,iBAAiB,QAAS,KAAK,cAAc,EAC9D,KAAK,YAAc,QAAQ,cAAc,uBAAuB,EAChE,KAAK,YAAY,iBAAiB,QAAS,KAAK,WAAW,EAC3D,KAAK,YAAY,iBAAiB,UAAW,KAAK,cAAc,CACjE,CAED,CAoBA,MAAM,cAAc,SAAU,CAC7B,aAAc,CACb,MAAM,EACN,KAAK,kBAAoB,IACzB,KAAK,SAAW,CACf,OAAU,OACV,OAAU,OACV,mBAAoB,gBACpB,+BAAgC,WAChC,wBAAyB,KACzB,mBAAoB,UACpB,8BAA+B,eAC/B,kCAAmC,mBACnC,6BAA8B,cAC9B,iBAAkB,aAClB,iCAAkC,qBAClC,yBAA0B,cAC1B,mBAAoB,SACpB,mBAAoB,UACpB,yBAA0B,WAC1B,SAAY,SACZ,6BAA8B,gBAC9B,iBAAkB,KAClB,iBAAkB,KAClB,uBAAwB,kBACxB,6BAA8B,sBAC9B,oBAAqB,eACrB,qCAAsC,uBACtC,qCAAsC,eACtC,mBAAoB,cACpB,kBAAmB,SACnB,qBAAsB,aACtB,qBAAsB,YACtB,oBAAqB,UACrB,eAAgB,OACjB,EACA,KAAK,eAAiB,CACrB,mBAAoB,SACpB,gBAAiB,KAClB,EAEA,KAAK,kBAAoB,IAAM,CAC9B,SAAS,KAAK,UAAU,IAAI,QAAQ,EAEhC,YAAU,UAAU,QAAQ,QAAQ,GAAK,IAAM,UAAU,UAAU,QAAQ,QAAQ,GAAK,KAK5F,OAAO,iBAAiB,eAAgB,UAAY,CACnD,SAAS,KAAK,UAAU,IAAI,WAAW,CACxC,CAAC,CACF,EAEA,KAAK,WAAa,IAAM,CACvB,MAAM,SAAW,SAAS,cAAc,iBAAiB,EAEzD,GAAI,CAAC,SAAU,CACd,QAAQ,KAAK,0DAA0D,EACvE,MACD,CAEA,IAAI,OAEJ,GAAI,CACH,OAAS,KAAK,MAAM,SAAS,WAAW,CACzC,OAAS,EAAG,CACX,QAAQ,KAAK,oCAAqC,CAAC,EACnD,MACD,CAEA,KAAK,aAAe,OAAO,aAC3B,KAAK,YAAc,OAAO,YAC1B,KAAK,gBAAkB,OAAO,gBAC9B,KAAK,gBAAkB,OAAO,gBAC9B,QAAQ,UAAU,QAAS,CAC1B,KAAM,CAAC,GAAI,UAAY,CACtB,GAAG,UAAY,KAAK,YAAY,QAAQ,KAAK,CAC9C,EACA,OAAQ,CAAC,GAAI,UAAY,CACpB,QAAQ,WAAa,QAAQ,QAChC,GAAG,UAAY,KAAK,YAAY,QAAQ,KAAK,EAE/C,CACD,CAAC,EACD,QAAQ,UAAU,aAAc,CAC/B,KAAM,CAAC,GAAI,UAAY,CAMtB,IAAI,OAAS,GAET,GAAG,MAAQ,MACd,QAAU,QAAQ,MAAM,QAAQ,aAAc,SAAS,EAAI,UAGxD,GAAG,MAAQ,OACd,QAAU,QAAQ,MAAM,QAAQ,aAAc,UAAU,EAAI,WAGzD,GAAG,MAAQ,OACd,QAAU,QAAQ,MAAM,QAAQ,aAAc,UAAU,EAAI,WAGzD,GAAG,MAAQ,OACd,QAAU,QAAQ,MAAM,QAAQ,aAAc,UAAU,EAAI,WAGzD,GAAG,MAAQ,OACd,QAAU,QAAQ,MAAM,QAAQ,aAAc,UAAU,EAAI,WAI7D,QAAU,QAAQ,MAAQ,IAAM,GAAG,MAAQ,IAC3C,MAAM,IAAM,QAAQ,MAAM,QAAQ,aAAc,UAAU,EAAE,QAAQ,QAAS,EAAE,EAC/E,GAAG,aAAa,MAAO,GAAG,EAC1B,GAAG,aAAa,SAAU,MAAM,EAChC,GAAG,aAAa,UAAW,MAAM,EACjC,GAAG,aAAa,UAAW,MAAM,CAClC,CACD,CAAC,CACF,EAEA,KAAK,kBAAoB,SAAW,CACnC,OAAO,QAAQ,KAAK,cAAc,EAAE,QAAQ,CAAC,CAACiF,SAAS,YAAY,IAAM,CACxE,KAAK,iBAAiB,QAASA,SAAS,YAAY,CACrD,CAAC,CACF,EAEA,KAAK,iBAAmB,CAAC,QAASA,SAAS+C,aAAc,CACxD,MAAM,UAAU,QAAQ,KAAK,QAAQ,iBAAiB/C,QAAO,EAAG,IAAM,CACrE,MAAM,EAAI,IAAI,QAAQ,CACrB,GAAI,GAAG,WACP,WAAY,CACX,CAACA,QAAO,EAAG+C,UACZ,EACA,KAAM,KACE,CACN,MAAO,IACR,EAEF,CAAC,EACD,KAAK,cAAc,KAAK,CAAC,CAC1B,CAAC,CACF,EAEA,KAAK,YAAc,CAAC,QAAS,aAAc,WAAa,CACvD,MAAM,EAAI,IAAI,aAAa,KAAM,QAAS,QAAQ,EAClD,KAAK,YAAY,IAAI,QAAQ,QAAQ,iBAAkB,CAAC,EACxD,MAAM,KAAO,QAAQ,QAAQ,mBAC7B,IAAI,SAAW,KAAK,eAAe,IAAI,IAAI,EAEtC,WACJ,SAAW,CAAC,EACZ,KAAK,eAAe,IAAI,KAAM,QAAQ,GAGvC,SAAS,KAAK,CAAC,EACf,KAAK,kBAAkB,OAAO,CAC/B,EAEA,KAAK,mBAAqB,CAAC,KAAM,aAAc,WAAa,CAC3D,MAAM,SAAW,+BAA+B,IAAI,KACpD,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,QAAQ,EAAG,SAAW,CAC5E,GAAI,CACH,KAAK,YAAY,QAAS,aAAc,QAAQ,CACjD,OAAS,EAAG,CACX,QAAQ,MAAM,0BAA0B,IAAI,cAAe,QAAS,CAAC,CACtE,CACD,CAAC,CACF,EAEA,KAAK,UAAY,IAAM,CACtB,KAAK,KAAK,EACV,OAAO,QAAQ,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAM,YAAY,IAAM,CAC/D,KAAK,mBAAmB,KAAM,aAAc,EAAI,CACjD,CAAC,EACD,KAAK,aAAa,CACnB,EAEA,KAAK,cAAgB,OAAS,CAC7B,KAAM,CACL,SACD,EAAI,MAAM,OACJ,SAAW,6BAA6B,SAAS,KACjD,QAAU,SAAS,cAAc,QAAQ,EAE/C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,gBAAgB,QAAQ,qCAAqC,EAC1E,MACD,CAEA,MAAM,KAAO,QAAQ,QAAQ,mBACvB,aAAe,KAAK,SAAS,IAAI,EAEvC,GAAI,CAAC,aAAc,CAClB,QAAQ,KAAK,gCAAgC,IAAI,GAAG,EACpD,MACD,CAGA,IAAI,eAAiB,SAAS,iBAAiB,iBAAiB,EAE5D,eAAe,OAAS,GAC3B,eAAe,CAAC,EAAE,UAAU,OAAO,gBAAgB,EAGpD,KAAK,YAAY,QAAS,aAAc,EAAK,EAC7C,KAAK,aAAa,CACnB,EAEA,KAAK,gBAAkB,OAAS,CAC/B,MAAM,QAAU,MAAM,OAChB,CACL,SACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,4BAA4B,EACxE,MACD,CAEA,QAAQ,QAAQ,CACf,OACD,CAAC,CACF,EAEA,KAAK,gBAAkB,OAAS,CAC/B,MAAM,QAAU,MAAM,OAChB,CACL,UACA,IACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,4BAA4B,EACxE,MACD,CAEA,QAAQ,gBAAgB,CACvB,QACA,UACA,IACD,CAAC,CACF,EAEA,KAAK,kBAAoB,OAAS,CACjC,MAAM,QAAU,MAAM,OAChB,CACL,SACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,8BAA8B,EAC1E,MACD,CAEA,QAAQ,kBAAkB,CACzB,QACA,SACD,CAAC,CACF,EAEA,KAAK,iBAAmB,OAAS,CAChC,MAAM,QAAU,MAAM,OAChB,CACL,SACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,mCAAmC,EAC/E,MACD,CAEA,QAAQ,iBAAiB,CACxB,QACA,SACD,CAAC,CACF,EAEA,KAAK,cAAgB,OAAS,CAC7B,MAAM,QAAU,MAAM,OAChB,CACL,UACA,QACA,IACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,gCAAgC,EAC5E,MACD,CAEA,QAAQ,cAAc,CACrB,QACA,UACA,QACA,IACD,CAAC,CACF,EAEA,KAAK,gBAAkB,OAAS,CAC/B,MAAM,QAAU,MAAM,OAChB,CACL,UACA,OACD,EAAI,MAAM,OACJ,QAAU,KAAK,YAAY,IAAI,SAAS,EAE9C,GAAI,CAAC,QAAS,CACb,QAAQ,KAAK,sBAAsB,SAAS,kCAAkC,EAC9E,MACD,CAEA,QAAQ,gBAAgB,CACvB,QACA,UACA,OACD,CAAC,CACF,EAEA,KAAK,YAAc,OAAS,CAC3B,MAAMhC,OAAQ,KAAK,eAAe,EAElC,KAAK,qBAAqB,QAAQ,GAAK,EAAE,kBAAkB,CAC1D,MAAAA,MACD,CAAC,CAAC,EACF,KAAK,SAAS,CACf,EAEA,KAAK,SAAW,SAAS,IAAM,CAC9B,MAAMA,OAAQ,KAAK,eAAe,EAC5B,SAAW,KAAK,cAChB,WAAa,KAAK,cAAcA,MAAK,EAC3C,KAAK,qBAAqB,QAAQ,GAAK,CACtC,EAAE,eAAe,CAChB,MAAAA,OACA,SACA,UACD,CAAC,EAEG,aAAe,KAAK,YAEvB,EAAE,yBAAyB,CAC1B,WACA,cAAe,KAAK,WACpB,MAAAA,MACD,CAAC,CAEH,CAAC,EACD,KAAK,cAAgBA,OACrB,KAAK,WAAa,UACnB,EAAG,KAAK,iBAAiB,EAEzB,KAAK,YAAc,OAAS,CAC3B,KAAK,SAAS,KAAK,CACpB,EAEA,KAAK,SAAW,SAAS,OAAS,CACjC,KAAK,aAAa,EAClB,KAAK,qBAAqB,QAAQ,GAAK,CACtC,EAAE,eAAe,CAClB,CAAC,CACF,EAAG,KAAK,iBAAiB,EAEzB,KAAK,aAAe,IAAM,CACzB,MAAM,aAAe,eAAe,EAAE,MAAM,EAAE,OAAO,EACrD,eAAe,EAAE,iBAAiB,EAAE,KAAK,SAAU1F,OAAO,QAAS,CAClE,IAAI,KAAO,QAAQ,sBAAsB,EAErC,KAAK,QAAU,GAAK,KAAK,IAAM,cAClC,eAAe,EAAE,OAAO,EAAE,YAAY,gBAAgB,EAAE,SAAS,mCAAmC,CAEtG,CAAC,CACF,EAEA,KAAK,QAAU,GAAK,CAEf,EAAE,SAAW,IAEhB,KAAK,aAAa,CAEpB,EAEA,KAAK,iBAAmB,IAAM,CAC7B,IAAI,gBAAkB,SAAS,iBAAiB,SAAS,EAEzD,QAAS,QAAQ,gBAChB,KAAK,iBAAiB,QAAS,GAAK,CACnC,MAAMsD,QAAS,EAAE,cACjB,WAAW,IAAM,CAChB,MAAM,WAAa,KAAK,KAAO,OAAS,QACxC,KAAK,kBAAkB,aAAa,gBAAiB,UAAU,CAChE,EAAG,CAAC,CACL,CAAC,CAEH,EAEA,KAAK,eAAiB,IACd,IAAI,QAAQ,CAAC,QAAS,SAAW,CACvC,GAAI,OAAO,GAEV,QAAQ,OAAO,EAAE,UACN,SAAS,cAAc,cAAc,EA2ChD,KAAK,uBAAuB,KAAK,CAChC,QACA,MACD,CAAC,MA9CkD,CAEnD,KAAK,uBAAuB,KAAK,CAChC,QACA,MACD,CAAC,EACD,MAAM,cAAgB,SAAS,cAAc,gBAAgB,EACvD,eAAiB,SAAS,iBAAiB,kBAAkB,EAAE,CAAC,EAChE,WAAa,cAAc,QAAQ,WAEzC,IAAI,aAAe,SAAsB,GAAI,CAC5C,MAAM,KAAO,GAAG,sBAAsB,EACtC,OAAO,KAAK,KAAO,KAAO,KAAK,MAAQ,GAAK,KAAK,QAAU,OAAO,YAAc,SAAS,gBAAgB,YAC1G,EAEI,eAAiB,SAAwB,GAAI,CAEhD,OADa,GAAG,sBAAsB,EAC1B,GACb,EAEA,GAAI,gBAAkB,YAAc,QAAS,CAC5C,IAAI,UAAY,eAAe,cAAc,EACzC,SAAW,aAAa,cAAc,EAEtC,UAAY,IAAM,WAAa,IAElC,KAAK,aAAa,cAAe,qCAAsC,EAAI,EAE3E,SAAS,iBAAiB,SAAU,UAAY,CAC3C,UAEH,KAAK,aAAa,cAAe,qCAAsC,EAAI,CAE7E,EAAE,KAAK,IAAI,EAAG,CACb,QAAS,EACV,CAAC,CAEH,MAEC,KAAK,aAAa,cAAe,qCAAsC,EAAI,CAE7E,CAOD,CAAC,EAGF,KAAK,gBAAkB,IAAM,CAC5B,KAAK,uBAAuB,QAAQ,CAAC,CACpC,OACD,IAAM,CACL,QAAQ,OAAO,EAAE,CAClB,CAAC,EACD,KAAK,uBAAuB,OAAO,CAAC,CACrC,EAEA,KAAK,aAAe,IACZ,IAAI,QAAQ,CAAC,QAAS,SAAW,CACvC,GAAI,OAAO,MAEV,QAAQ,OAAO,KAAK,UACT,SAAS,cAAc,YAAY,EAS9C,KAAK,qBAAqB,KAAK,CAC9B,QACA,MACD,CAAC,MAZgD,CAEjD,MAAM,OAAS,KAAK,aAAa,YAAa,wCAAwC,EAEtF,OAAO,OAAS,IAAM,CACrB,QAAQ,OAAO,KAAK,EACpB,KAAK,cAAc,CACpB,CACD,CAMD,CAAC,EAGF,KAAK,cAAgB,IAAM,CAC1B,KAAK,qBAAqB,QAAQ,CAAC,CAClC,OACD,IAAM,CACL,QAAQ,OAAO,KAAK,CACrB,CAAC,EACD,KAAK,qBAAqB,OAAO,CAAC,CACnC,EAEA,KAAK,aAAe,IACC,uCAIrB,KAAK,kBAAoB,CAAC,KAAO,OAAQ,UAAY,OAAW,OAAS,CAAC,IAAM,CAC/E,MAAM,MAAQ,IAAI,YAAY,0BAA2B,CACxD,OAAQ,CACP,KACA,UACA,MACD,CACD,CAAC,EACD,SAAS,gBAAgB,cAAc,KAAK,CAC7C,EAEA,KAAK,iBAAmB,CAAC,UAAY,SAAc,CAClD,MAAM,MAAQ,IAAI,YAAY,yBAA0B,CACvD,OAAQ,CACP,SACD,CACD,CAAC,EACD,SAAS,gBAAgB,cAAc,KAAK,CAC7C,EAEA,KAAK,iBAAmB,MAAM,MAAQ,CACrC,MAAM,MAAQ,IAAI,YAAY,kBAAmB,CAChD,OAAQ,CACP,IACD,CACD,CAAC,EACD,SAAS,gBAAgB,cAAc,KAAK,EAC5C,IAAI,gBACA,OAAO,oBAAsB,GAChC,gBAAkB,eAElB,gBAAkB,4BAEnB,MAAM,oBAAsB,mBAEtB,YAAc,CAAC,CADA,KAAK,MAAM,KAAK,MAAQ,KAAK,mBAAqB,CAAC,EAElE,UAAY,KAAK,MAAM,KAAK,MAAQ,KAAK,YAAc,eAAe,EACtE,WAAa,KAAK,MAAM,KAAK,MAAQ,KAAK,YAAc,eAAe,EACvE,cAAgB,KAAK,MAAM,KAAK,MAAQ,KAAK,YAAc,mBAAmB,EAC9E,WAAa,KAAK,MAAM,OAE9B,GAD2B,YAAc,aAAe,GAAM,aAAe,IAAM,eAAiB,cAAkB,aAAe,GAAK,eAAiB,aACnI,CACvB,MAAM,YAAc,WAAW,IAC/B,MAAM,kBAAmB,CACxB,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,GAAI,YAAa,SAAU,CAAE,CAAC,CACtD,CAAC,EACC,KAAK,UAAY,SAAS,KAAK,CAAC,EAChC,KAAK,aAAe,CAChB,OAAO,MACV,OAAO,KAAK,QAAQ,WAAW,EAMhC,MAAM,SAAW,YAAY,MAAM,OAClC,MAAQ,KAAK,YAAc,qBAAuB,KAAK,mBAAqB,CAC7E,EACA,IAAI,YAAc,QAAQ,QAAQ,EAClC,UAAW,QAAQ,SAClB,YAAc,YAAY,KAAK,IAC9B,MAAM,kBAAmB,CACxB,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,GAAI,KAAK,IAAK,SAAU,CAAE,CAAC,CACnD,CAAC,CACF,EAED,OAAO,YAAY,KAAK,IAAM,MAAM,UAAU,EAAE,KAAK,GAAK,EAAE,KAAK,CAAC,CAAC,CACpE,CAAC,EACA,KAAK,WAAa,CACd,OAAO,MACV,OAAO,KAAK,QAAQ,SAAS,EAE9B,OAAO,SAAS,oBACf,OACA,UAAU,aAAe,EAAI,GAAO,WACpC,CAAE,KAAM,SAAU,CACnB,EACA,WAAW,IAAM,CAChB,SAAS,OAAS,oFACnB,EAAG,GAAI,CACR,CAAC,EACA,MAAM,OAAS,QAAQ,MAAM,yBAA0B,KAAK,CAAC,CAChE,CACA,QAAQ,IAAI,eAAe,EAGvB,KAAK,WAAa,GACH,KAAK,MAAM,KAAK,MAAQ,KAAK,YAAc,aAAa,GAEzE,WAAW,UAAY,CACtB,MAAM,eAAiB,SAAS,eAAe,sBAAsB,EACjE,gBAAkB,eAAe,UAAU,IAAI,MAAM,CAC1D,EAAG,GAAI,CAGV,EAEA,KAAK,aAAe,CAAC,GAAI,IAAK,MAAQ,KAAU,CAC/C,MAAM,IAAM,SAAS,cAAc,QAAQ,EAC3C,IAAI,GAAK,GACT,IAAI,IAAM,IAEN,QACH,IAAI,MAAQ,GACZ,IAAI,MAAQ,IAGb,MAAM,eAAiB,SAAS,qBAAqB,QAAQ,EAAE,CAAC,EAChE,sBAAe,WAAW,aAAa,IAAK,cAAc,EACnD,GACR,EAEA,KAAK,kBAAoBqC,YAAa,CACrC,KAAK,qBAAqB,KAAKA,UAAS,CACzC,EAEA,KAAK,0BAA4B,IAAM,CACtC,eAAe,EAAE,wEAAwE,EAAE,KAAK,SAAU3F,OAAO,OAAQ,CACxH,IAAI,OAAS,eAAe,EAAE,MAAM,EAAE,KAAK,KAAK,EAEhD,GAAI,OAAO,QAAQ,aAAa,GAAK,GAAK,OAAO,QAAQ,WAAW,GAAK,GAAK,OAAO,QAAQ,iBAAiB,GAAK,EAAG,CAErH,IAAI,eAAiB,SAAS,cAAc,KAAK,EACjD,eAAe,EAAE,cAAc,EAAE,SAAS,iBAAiB,EAE3D,IAAI,YAAc,eAAe,EAAE,MAAM,EAAE,MAAM,EAEjD,eAAe,EAAE,cAAc,EAAE,OAAO,WAAW,EAEnD,eAAe,EAAE,MAAM,EAAE,YAAY,cAAc,CACpD,CACD,CAAC,CACF,EAEA,KAAK,aAAe,GAAK,CACxB,KAAK,iBAAiB,EAAK,EAC3B,KAAK,kBAAkB,OAAQ,EAAK,CACrC,EAEA,KAAK,UAAY,CAAC,KAAM,UAAY,CACnC,KAAK,MAAM,IAAI,KAAM,OAAO,CAC7B,EAEA,KAAK,KAAO,OACZ,KAAK,EAAK,eAAe,EAExB,eAAe,EAAG,MAAM,QAAQ,WAAa,CAC7C,MAAO,SAAU,EAAG,GAAI,OAAQ,CAE/B,KAAK,iBAAiB,aAAc,OAAQ,CAC3C,QAAS,CAAC,GAAG,SAAS,kBAAkB,CACzC,CAAC,CACF,CACD,EACC,eAAe,EAAG,MAAM,QAAQ,UAAY,CAC5C,MAAO,SAAU,EAAG,GAAI,OAAQ,CAE/B,KAAK,iBAAiB,YAAa,OAAQ,CAC1C,QAAS,CAAC,GAAG,SAAS,kBAAkB,CACzC,CAAC,CACF,CACD,EAKA,KAAK,YAAc,IAAI,IAKvB,KAAK,eAAiB,IAAI,IAK1B,KAAK,qBAAuB,CAAC,EAK7B,KAAK,cAAgB,CAAC,EAGtB,KAAK,uBAAyB,CAAC,EAG/B,KAAK,qBAAuB,CAAC,EAC7B,KAAK,oBAAsB,KAC3B,SAAS,iBAAiB,uBAAwB,KAAK,aAAa,EACpE,SAAS,iBAAiB,yBAA0B,KAAK,eAAe,EACxE,SAAS,iBAAiB,yBAA0B,KAAK,eAAe,EACxE,SAAS,iBAAiB,2BAA4B,KAAK,iBAAiB,EAC5E,SAAS,iBAAiB,0BAA2B,KAAK,gBAAgB,EAC1E,SAAS,iBAAiB,uBAAwB,KAAK,aAAa,EACpE,SAAS,iBAAiB,yBAA0B,KAAK,eAAe,EACxE,SAAS,iBAAiB,mBAAoB,KAAK,SAAS,EAC5D,SAAS,iBAAiB,QAAS,KAAK,OAAO,EAC/C,OAAO,iBAAiB,SAAU,KAAK,WAAW,EAClD,OAAO,iBAAiB,SAAU,KAAK,WAAW,EAClD,KAAK,cAAgB,SAAS,cAAc,gBAAgB,EAExD,KAAK,eAER,SAAS,cAAc,gBAAgB,EAAE,iBAAiB,QAAS,KAAK,YAAY,EAIrF,KAAK,wBAA0B,EAChC,CAIA,MAAO,CACN,KAAK,WAAW,EAChB,KAAK,WAAa,KAAK,cAAc,EACrC,KAAK,IAAM,IAAK,YAAY,GAAG,EAAE,KAAK,EAEjC,SAAS,KAAK,UAAU,SAAS,eAAe,EAIrD,KAAK,MAAQ,KACb,MAAM,QAAU,SAAS,cAAc,QAAQ,EAE3C,SAAW,OAAO,SAAS,WAAa,eAE3C,KAAK,MAAQ,IAAI,MAAM,KAAM,OAAO,GAGrC,KAAK,kBAAoB,KACzB,MAAM,eAAiB,SAAS,cAAc,+BAA+B,EAEzE,gBAAkB,OAAO,SAAS,WAAa,eAElD,KAAK,kBAAoB,IAAI,kBAAkB,KAAM,cAAc,GAMhE,SAAS,KAAK,UAAU,SAAS,0BAA0B,IAC9D,KAAK,MAAQ,IAAI,MAAM,KAAM,SAAS,IAAI,GAI3C,IAAI,eAAiB,SAAS,iBAAiB,iBAAiB,EAE5D,eAAe,OAAS,GAC3B,eAAe,CAAC,EAAE,UAAU,OAAO,gBAAgB,EAGpD,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,SAAS,KAAM,uBAAwB,kBAAkB,EAC/E,KAAK,MAAQ,IAAI,MAAM,KAAM,SAAS,IAAI,CAC3C,CAED,CAGA,OAAO,QAAU,IAAI,MAErB,OAAO,wBAA0B,IAAM,CACtC,OAAO,QAAQ,gBAAgB,CAChC,CACD,GAAG,EAGH,eAAe,sBAAuB,CAGrC,IAAI,sBADW,MADJ,MAAM,MAAM,UAAU,GACP,KAAK,GACK,MAAM,KAAK,MACvC,MAAM,YAAY,eAAe,gCAAgC,CACxE,EACD,GAAI,qBAAsB,CAEzB,IAAI,QAAU,CAAE,CAAC,qBAAqB,GAAG,EAAG,CAAE,EAO1C,QADkB,MALD,MAAM,MAAM,kBAAmB,CACnD,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,OAAQ,CAAC,CACjC,CAAC,GAC0C,KAAK,GAClB,MAAM,KAAK,MAAQ,KAAK,YAAc,qBAAqB,GAAG,EAAgB,UAAZ,SACjG,CACD,CAEK,aAAa,QAAQ,gBAAgB,GACzC,qBAAqB,CAIvB,GAAG",
  "names": ["__webpack_require__", "window", "document", "undefined", "console", "el", "arr", "support", "hasOwn", "push", "slice", "indexOf", "i", "rtrim", "rhtml", "rquickExpr", "Sizzle", "matches", "docElem", "node", "nodeName", "dir", "isXML", "elem", "self", "value", "deferred", "data", "expectSync", "name", "index", "length", "j", "location", "val", "completed", "method", "type", "Item", "posY", "posX", "exports", "str", "line", "modules", "html", "text", "next", "endTag", "warn", "range", "start", "end", "ref", "Set", "vm", "len", "delimiters", "hasOwnProperty", "object", "key", "string", "escape", "he", "chr", "isReservedTag", "ref$1", "isNative", "handler", "hash", "maybeComponent", "comment", "count", "compile", "baseOptions", "tip", "child", "isUnaryTag", "module", "WeakMap", "MutationObserver", "getComputedStyle", "WOW", "map", "target", "children", "hooks", "props", "prop", "def", "fns", "on", "add", "createOnceHandler", "attrs", "render", "loop", "cached", "Vue", "res", "queue", "opts", "filter", "attr", "parentNode", "tagName", "nodeOps", "createComponent", "insert", "prev", "p", "events", "style", "styles", "css", "enter", "leave", "update", "shouldDecodeNewlines", "staticRenderFns", "width", "component", "element", "self2", "classes", "dataset", "transform", "parents", "scrollTop", "scrollLeft", "closest", "query", "supportsPassive", "components", "height", "slide", "translate", "minTranslate", "maxTranslate", "normalize", "preventDefault", "increment", "breakpoints", "setTranslate", "observer", "offset", "history", "SwiperClass", "rellax", "responseNew", "e", "obj", "Component", "returnValue", "div", "trigger", "lock", "desc", "m", "response", "q", "Vimeo", "item"]
}
