diff --git a/assets/js/components/Loadpoint.vue b/assets/js/components/Loadpoint.vue index 981bca5b5e..afe4e6cafb 100644 --- a/assets/js/components/Loadpoint.vue +++ b/assets/js/components/Loadpoint.vue @@ -56,7 +56,7 @@ /> --> @@ -164,11 +164,13 @@ export default { // vehicle connected: Boolean, // charging: Boolean, + enabled: Boolean, socTitle: String, socCharge: Number, minSoC: Number, - socTimerSet: Boolean, - socTimerActive: Boolean, + timerSet: Boolean, + timerActive: Boolean, + targetTime: String, // details chargePower: Number, diff --git a/assets/js/components/LoadpointDetails.stories.js b/assets/js/components/LoadpointDetails.stories.js index 7e0ae6d200..bbbecd38d1 100644 --- a/assets/js/components/LoadpointDetails.stories.js +++ b/assets/js/components/LoadpointDetails.stories.js @@ -62,6 +62,6 @@ VehicleTimer.args = { hasVehicle: true, range: 240.123, chargeEstimate: 5 * 3600, - socTimerSet: true, - socTimerActive: true, + timerSet: true, + timerActive: true, }; diff --git a/assets/js/components/LoadpointDetails.vue b/assets/js/components/LoadpointDetails.vue index ee1856aea9..9c69030c31 100644 --- a/assets/js/components/LoadpointDetails.vue +++ b/assets/js/components/LoadpointDetails.vue @@ -3,9 +3,6 @@
Leistung - - - ({ export const Base = Template.bind({}); Base.args = { - soc: false, socTitle: "Mein Auto", + enabled: true, connected: true, + hasVehicle: true, + socCharge: 42, }; -export const Car = Template.bind({}); -Car.args = { - soc: true, +export const Connected = Template.bind({}); +Connected.args = { socTitle: "Mein Auto", + enabled: false, connected: true, - socCharge: 15, + hasVehicle: true, + charging: false, + socCharge: 66, }; -export const CarWithMin = Template.bind({}); -CarWithMin.args = { - soc: true, +export const ReadyToCharge = Template.bind({}); +ReadyToCharge.args = { socTitle: "Mein Auto", + enabled: true, connected: true, - socCharge: 15, + hasVehicle: true, + charging: false, + socCharge: 66, +}; + +export const Charging = Template.bind({}); +Charging.args = { + socTitle: "Mein Auto", + enabled: true, + connected: true, + hasVehicle: true, + charging: true, + socCharge: 66, +}; + +const hoursFromNow = function (hours) { + const now = new Date(); + now.setHours(now.getHours() + hours); + return now.toISOString(); +}; + +export const TargetChargePlanned = Template.bind({}); +TargetChargePlanned.args = { + socTitle: "Mein Auto", + enabled: false, + connected: true, + hasVehicle: true, + socCharge: 31, + minSoC: 20, + charging: false, + timerSet: true, + timerActive: false, + targetSoC: 45, + targetTime: hoursFromNow(14), +}; + +export const TargetChargeActive = Template.bind({}); +TargetChargeActive.args = { + socTitle: "Mein Auto", + enabled: true, + connected: true, + hasVehicle: true, + socCharge: 66, minSoC: 30, + charging: true, + timerSet: true, + timerActive: true, + targetSoC: 80, + targetTime: hoursFromNow(2), +}; + +export const MinCharge = Template.bind({}); +MinCharge.args = { + socTitle: "Mein Auto", + enabled: true, + connected: true, + hasVehicle: true, + socCharge: 17, + minSoC: 20, + charging: true, +}; + +export const UnknownVehicleConnected = Template.bind({}); +UnknownVehicleConnected.args = { + socTitle: "Mein Auto", + enabled: false, + connected: true, + hasVehicle: false, +}; + +export const UnknownVehicleReadyToCharge = Template.bind({}); +UnknownVehicleReadyToCharge.args = { + socTitle: "Mein Auto", + enabled: true, + connected: true, + hasVehicle: false, + charging: false, +}; + +export const UnknownVehicleCharging = Template.bind({}); +UnknownVehicleCharging.args = { + socTitle: "Mein Auto", + enabled: true, + connected: true, + hasVehicle: false, + charging: true, +}; + +export const Disconnected = Template.bind({}); +Disconnected.args = { + socTitle: "Mein Auto", + connected: false, + hasVehicle: false, +}; + +export const DisconnectedKnownSoc = Template.bind({}); +DisconnectedKnownSoc.args = { + socTitle: "Mein Auto", + connected: false, + enabled: false, + hasVehicle: true, + socCharge: 17, }; diff --git a/assets/js/components/Vehicle.vue b/assets/js/components/Vehicle.vue index b26a08b20c..4d2104b507 100644 --- a/assets/js/components/Vehicle.vue +++ b/assets/js/components/Vehicle.vue @@ -1,47 +1,63 @@ + diff --git a/assets/js/icons.js b/assets/js/icons.js index 300e4901f6..d4eb4ab0c4 100644 --- a/assets/js/icons.js +++ b/assets/js/icons.js @@ -11,7 +11,7 @@ import { faBatteryQuarter } from "@fortawesome/free-solid-svg-icons/faBatteryQua import { faBatteryThreeQuarters } from "@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters"; import { faChevronDown } from "@fortawesome/free-solid-svg-icons/faChevronDown"; import { faChevronUp } from "@fortawesome/free-solid-svg-icons/faChevronUp"; -import { faClock } from "@fortawesome/free-solid-svg-icons"; +import { faClock } from "@fortawesome/free-solid-svg-icons/faClock"; import { faExclamationTriangle } from "@fortawesome/free-solid-svg-icons/faExclamationTriangle"; import { faLeaf } from "@fortawesome/free-solid-svg-icons/faLeaf"; import { faSun } from "@fortawesome/free-solid-svg-icons/faSun"; @@ -21,6 +21,7 @@ import { faThermometerHalf } from "@fortawesome/free-solid-svg-icons/faThermomet import { faHeart } from "@fortawesome/free-solid-svg-icons/faHeart"; import { faGift } from "@fortawesome/free-solid-svg-icons/faGift"; import { faBox } from "@fortawesome/free-solid-svg-icons/faBox"; +import { faExclamationCircle } from "@fortawesome/free-solid-svg-icons/faExclamationCircle"; library.add( faArrowDown, @@ -41,7 +42,8 @@ library.add( faThermometerHalf, faHeart, faGift, - faBox + faBox, + faExclamationCircle ); Vue.component("fa-icon", FontAwesomeIcon); diff --git a/assets/js/mixins/formatter.js b/assets/js/mixins/formatter.js index 4f7ba0544d..40c73ffcb9 100644 --- a/assets/js/mixins/formatter.js +++ b/assets/js/mixins/formatter.js @@ -58,5 +58,34 @@ export default { } return "m"; }, + fmtAbsoluteDate: function (date) { + return new Intl.DateTimeFormat("de-DE", { + weekday: "short", + hour: "numeric", + minute: "numeric", + }).format(date); + }, + fmtRelativeTime: function (date) { + var units = { + year: 24 * 60 * 60 * 1000 * 365, + month: (24 * 60 * 60 * 1000 * 365) / 12, + day: 24 * 60 * 60 * 1000, + hour: 60 * 60 * 1000, + minute: 60 * 1000, + second: 1000, + }; + + var rtf = new Intl.RelativeTimeFormat("de", { numeric: "auto", style: "narrow" }); + + var getRelativeTime = (d1, d2 = new Date()) => { + var elapsed = d1 - d2; + + // "Math.abs" accounts for both "past" & "future" scenarios + for (var u in units) + if (Math.abs(elapsed) > units[u] || u == "second") + return rtf.format(Math.round(elapsed / units[u]), u); + }; + return getRelativeTime(date); + }, }, }; diff --git a/core/loadpoint_api.go b/core/loadpoint_api.go index 669bc08a23..2cfa07cf75 100644 --- a/core/loadpoint_api.go +++ b/core/loadpoint_api.go @@ -119,6 +119,9 @@ func (lp *LoadPoint) SetTargetCharge(finishAt time.Time, targetSoC int) { lp.publish("targetTime", finishAt) lp.publish("targetSoC", targetSoC) + lp.socTimer.Time = finishAt + lp.socTimer.SoC = targetSoC + lp.requestUpdate() } diff --git a/dist/css/index.6dc6b1ad.css b/dist/css/index.82bccd36.css similarity index 61% rename from dist/css/index.6dc6b1ad.css rename to dist/css/index.82bccd36.css index dcf38dc42e..9b85123bfd 100644 --- a/dist/css/index.6dc6b1ad.css +++ b/dist/css/index.82bccd36.css @@ -1 +1 @@ -.progress-bar-animated{animation-direction:reverse}.btn.caption{opacity:1}.btn.first{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}.value,input[type=radio],label.btn{white-space:nowrap!important}.text-muted a,.text-muted a:hover{color:#6c757d!important;text-decoration:none}.bg-muted{opacity:.25}.fade-enter-active[data-v-a6ded36e],.fade-leave-active[data-v-a6ded36e]{transition:opacity .25s ease-in}.fade-enter[data-v-a6ded36e],.fade-leave-to[data-v-a6ded36e]{opacity:0}.dialog[data-v-a6ded36e]{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0}.icon[data-v-a6ded36e]{color:#0fdd42}.text-black a[data-v-a6ded36e]{color:#18191a}.icon[data-v-5f0f38d1]{color:#0fdd42}.text-black a[data-v-5f0f38d1]{color:#18191a}.logo[data-v-459f11b2]{width:85px}.app[data-v-459f11b2]{min-height:100vh} \ No newline at end of file +.progress-bar-animated{animation-direction:reverse}.btn.caption{opacity:1}.btn.first{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}.value,input[type=radio],label.btn{white-space:nowrap!important}.text-muted a,.text-muted a:hover{color:#6c757d!important;text-decoration:none}.bg-muted{opacity:.25}.fade-enter-active[data-v-a6ded36e],.fade-leave-active[data-v-a6ded36e]{transition:opacity .25s ease-in}.fade-enter[data-v-a6ded36e],.fade-leave-to[data-v-a6ded36e]{opacity:0}.dialog[data-v-a6ded36e]{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0}.icon[data-v-a6ded36e]{color:#0fdd42}.text-black a[data-v-a6ded36e]{color:#18191a}.icon[data-v-5f0f38d1]{color:#0fdd42}.text-black a[data-v-5f0f38d1]{color:#18191a}.logo[data-v-459f11b2]{width:85px}.app[data-v-459f11b2]{min-height:100vh}.subline[data-v-6c9c1346]{display:flex;align-items:center}.progress[data-v-6c9c1346]{overflow:visible}.progress-bar.bg-muted[data-v-6c9c1346]{position:relative;overflow:visible;color:var(--white)}.progress-bar.bg-muted[data-v-6c9c1346]:after{position:absolute;right:0;top:-5px;height:calc(100% + 10px);width:2px;background:var(--dark);content:""}.bg-disabled[data-v-6c9c1346]{background-color:var(--gray)}.bg-light[data-v-6c9c1346]{color:var(--dark)} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 3feaad198a..ba89781aef 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,4 +1,4 @@ -evcc
\ No newline at end of file + };
\ No newline at end of file diff --git a/dist/js/chunk-vendors.af4765ba.js b/dist/js/chunk-vendors.35669cb4.js similarity index 94% rename from dist/js/chunk-vendors.af4765ba.js rename to dist/js/chunk-vendors.35669cb4.js index 2c78663d8b..e90bc5e87d 100644 --- a/dist/js/chunk-vendors.af4765ba.js +++ b/dist/js/chunk-vendors.35669cb4.js @@ -34,19 +34,14 @@ var n=Object.freeze({});function r(e){return void 0===e||null===e}function i(e){ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ -(function(e,r){r(t,n("1157"),n("f0bd"))})(0,(function(e,t,n){"use strict";function r(e){return e&&"object"===typeof e&&"default"in e?e:{default:e}}var i=r(t),o=r(n);function a(e,t){for(var n=0;n=a)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};g.jQueryDetection(),v();var y="alert",b="4.6.0",_="bs.alert",w="."+_,x=".data-api",C=i["default"].fn[y],E='[data-dismiss="alert"]',T="close"+w,k="closed"+w,A="click"+w+x,S="alert",O="fade",N="show",j=function(){function e(e){this._element=e}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);n.isDefaultPrevented()||this._removeElement(t)},t.dispose=function(){i["default"].removeData(this._element,_),this._element=null},t._getRootElement=function(e){var t=g.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=i["default"](e).closest("."+S)[0]),n},t._triggerCloseEvent=function(e){var t=i["default"].Event(T);return i["default"](e).trigger(t),t},t._removeElement=function(e){var t=this;if(i["default"](e).removeClass(N),i["default"](e).hasClass(O)){var n=g.getTransitionDurationFromElement(e);i["default"](e).one(g.TRANSITION_END,(function(n){return t._destroyElement(e,n)})).emulateTransitionEnd(n)}else this._destroyElement(e)},t._destroyElement=function(e){i["default"](e).detach().trigger(k).remove()},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this),r=n.data(_);r||(r=new e(this),n.data(_,r)),"close"===t&&r[t](this)}))},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(e,null,[{key:"VERSION",get:function(){return b}}]),e}();i["default"](document).on(A,E,j._handleDismiss(new j)),i["default"].fn[y]=j._jQueryInterface,i["default"].fn[y].Constructor=j,i["default"].fn[y].noConflict=function(){return i["default"].fn[y]=C,j._jQueryInterface};var D="button",L="4.6.0",P="bs.button",I="."+P,R=".data-api",M=i["default"].fn[D],$="active",H="btn",q="focus",F='[data-toggle^="button"]',B='[data-toggle="buttons"]',z='[data-toggle="button"]',U='[data-toggle="buttons"] .btn',W='input:not([type="hidden"])',V=".active",X=".btn",Q="click"+I+R,Y="focus"+I+R+" blur"+I+R,K="load"+I+R,G=function(){function e(e){this._element=e,this.shouldAvoidTriggerChange=!1}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=i["default"](this._element).closest(B)[0];if(n){var r=this._element.querySelector(W);if(r){if("radio"===r.type)if(r.checked&&this._element.classList.contains($))e=!1;else{var o=n.querySelector(V);o&&i["default"](o).removeClass($)}e&&("checkbox"!==r.type&&"radio"!==r.type||(r.checked=!this._element.classList.contains($)),this.shouldAvoidTriggerChange||i["default"](r).trigger("change")),r.focus(),t=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains($)),e&&i["default"](this._element).toggleClass($))},t.dispose=function(){i["default"].removeData(this._element,P),this._element=null},e._jQueryInterface=function(t,n){return this.each((function(){var r=i["default"](this),o=r.data(P);o||(o=new e(this),r.data(P,o)),o.shouldAvoidTriggerChange=n,"toggle"===t&&o[t]()}))},s(e,null,[{key:"VERSION",get:function(){return L}}]),e}();i["default"](document).on(Q,F,(function(e){var t=e.target,n=t;if(i["default"](t).hasClass(H)||(t=i["default"](t).closest(X)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{var r=t.querySelector(W);if(r&&(r.hasAttribute("disabled")||r.classList.contains("disabled")))return void e.preventDefault();"INPUT"!==n.tagName&&"LABEL"===t.tagName||G._jQueryInterface.call(i["default"](t),"toggle","INPUT"===n.tagName)}})).on(Y,F,(function(e){var t=i["default"](e.target).closest(X)[0];i["default"](t).toggleClass(q,/^focus(in)?$/.test(e.type))})),i["default"](window).on(K,(function(){for(var e=[].slice.call(document.querySelectorAll(U)),t=0,n=e.length;t0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(ce)},t.nextWhenVisible=function(){var e=i["default"](this._element);!document.hidden&&e.is(":visible")&&"hidden"!==e.css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(fe)},t.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(He)&&(g.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=this._element.querySelector(Re);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)i["default"](this._element).one(me,(function(){return t.to(e)}));else{if(n===e)return this.pause(),void this.cycle();var r=e>n?ce:fe;this._slide(r,this._items[e])}},t.dispose=function(){i["default"](this._element).off(te),i["default"].removeData(this._element,ee),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=l({},le,e),g.typeCheckConfig(J,e,ue),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=se)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&i["default"](this._element).on(ve,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&i["default"](this._element).on(ge,(function(t){return e.pause(t)})).on(ye,(function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&ze[t.originalEvent.pointerType.toUpperCase()]?e.touchStartX=t.originalEvent.clientX:e._pointerEvent||(e.touchStartX=t.originalEvent.touches[0].clientX)},n=function(t){t.originalEvent.touches&&t.originalEvent.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.originalEvent.touches[0].clientX-e.touchStartX},r=function(t){e._pointerEvent&&ze[t.originalEvent.pointerType.toUpperCase()]&&(e.touchDeltaX=t.originalEvent.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),ae+e._config.interval))};i["default"](this._element.querySelectorAll($e)).on(Ee,(function(e){return e.preventDefault()})),this._pointerEvent?(i["default"](this._element).on(xe,(function(e){return t(e)})),i["default"](this._element).on(Ce,(function(e){return r(e)})),this._element.classList.add(Pe)):(i["default"](this._element).on(be,(function(e){return t(e)})),i["default"](this._element).on(_e,(function(e){return n(e)})),i["default"](this._element).on(we,(function(e){return r(e)})))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ie:e.preventDefault(),this.prev();break;case oe:e.preventDefault(),this.next();break}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(Me)):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===ce,r=e===fe,i=this._getItemIndex(t),o=this._items.length-1,a=r&&0===i||n&&i===o;if(a&&!this._config.wrap)return t;var s=e===fe?-1:1,l=(i+s)%this._items.length;return-1===l?this._items[this._items.length-1]:this._items[l]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),r=this._getItemIndex(this._element.querySelector(Re)),o=i["default"].Event(he,{relatedTarget:e,direction:t,from:r,to:n});return i["default"](this._element).trigger(o),o},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(Ie));i["default"](t).removeClass(Se);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&i["default"](n).addClass(Se)}},t._updateInterval=function(){var e=this._activeElement||this._element.querySelector(Re);if(e){var t=parseInt(e.getAttribute("data-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}},t._slide=function(e,t){var n,r,o,a=this,s=this._element.querySelector(Re),l=this._getItemIndex(s),u=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(u),f=Boolean(this._interval);if(e===ce?(n=je,r=De,o=de):(n=Ne,r=Le,o=pe),u&&i["default"](u).hasClass(Se))this._isSliding=!1;else{var d=this._triggerSlideEvent(u,o);if(!d.isDefaultPrevented()&&s&&u){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var p=i["default"].Event(me,{relatedTarget:u,direction:o,from:l,to:c});if(i["default"](this._element).hasClass(Oe)){i["default"](u).addClass(r),g.reflow(u),i["default"](s).addClass(n),i["default"](u).addClass(n);var h=g.getTransitionDurationFromElement(s);i["default"](s).one(g.TRANSITION_END,(function(){i["default"](u).removeClass(n+" "+r).addClass(Se),i["default"](s).removeClass(Se+" "+r+" "+n),a._isSliding=!1,setTimeout((function(){return i["default"](a._element).trigger(p)}),0)})).emulateTransitionEnd(h)}else i["default"](s).removeClass(Se),i["default"](u).addClass(Se),this._isSliding=!1,i["default"](this._element).trigger(p);f&&this.cycle()}}},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this).data(ee),r=l({},le,i["default"](this).data());"object"===typeof t&&(r=l({},r,t));var o="string"===typeof t?t:r.slide;if(n||(n=new e(this,r),i["default"](this).data(ee,n)),"number"===typeof t)n.to(t);else if("string"===typeof o){if("undefined"===typeof n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else r.interval&&r.ride&&(n.pause(),n.cycle())}))},e._dataApiClickHandler=function(t){var n=g.getSelectorFromElement(this);if(n){var r=i["default"](n)[0];if(r&&i["default"](r).hasClass(Ae)){var o=l({},i["default"](r).data(),i["default"](this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),e._jQueryInterface.call(i["default"](r),o),a&&i["default"](r).data(ee).to(a),t.preventDefault()}}},s(e,null,[{key:"VERSION",get:function(){return Z}},{key:"Default",get:function(){return le}}]),e}();i["default"](document).on(ke,Fe,Ue._dataApiClickHandler),i["default"](window).on(Te,(function(){for(var e=[].slice.call(document.querySelectorAll(Be)),t=0,n=e.length;t0&&(this._selector=a,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=e.prototype;return t.toggle=function(){i["default"](this._element).hasClass(it)?this.hide():this.show()},t.show=function(){var t,n,r=this;if(!this._isTransitioning&&!i["default"](this._element).hasClass(it)&&(this._parent&&(t=[].slice.call(this._parent.querySelectorAll(ct)).filter((function(e){return"string"===typeof r._config.parent?e.getAttribute("data-parent")===r._config.parent:e.classList.contains(ot)})),0===t.length&&(t=null)),!(t&&(n=i["default"](t).not(this._selector).data(Xe),n&&n._isTransitioning)))){var o=i["default"].Event(Ze);if(i["default"](this._element).trigger(o),!o.isDefaultPrevented()){t&&(e._jQueryInterface.call(i["default"](t).not(this._selector),"hide"),n||i["default"](t).data(Xe,null));var a=this._getDimension();i["default"](this._element).removeClass(ot).addClass(at),this._element.style[a]=0,this._triggerArray.length&&i["default"](this._triggerArray).removeClass(st).attr("aria-expanded",!0),this.setTransitioning(!0);var s=function(){i["default"](r._element).removeClass(at).addClass(ot+" "+it),r._element.style[a]="",r.setTransitioning(!1),i["default"](r._element).trigger(et)},l=a[0].toUpperCase()+a.slice(1),u="scroll"+l,c=g.getTransitionDurationFromElement(this._element);i["default"](this._element).one(g.TRANSITION_END,s).emulateTransitionEnd(c),this._element.style[a]=this._element[u]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&i["default"](this._element).hasClass(it)){var t=i["default"].Event(tt);if(i["default"](this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",g.reflow(this._element),i["default"](this._element).addClass(at).removeClass(ot+" "+it);var r=this._triggerArray.length;if(r>0)for(var o=0;o0},t._getOffset=function(){var e=this,t={};return"function"===typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),l({},e,this._config.popperConfig)},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this).data(mt),r="object"===typeof t?t:null;if(n||(n=new e(this,r),i["default"](this).data(mt,n)),"string"===typeof t){if("undefined"===typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},e._clearMenus=function(t){if(!t||t.which!==Et&&("keyup"!==t.type||t.which===wt))for(var n=[].slice.call(document.querySelectorAll(Ft)),r=0,o=n.length;r0&&a--,t.which===Ct&&adocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(On);var r=g.getTransitionDurationFromElement(this._dialog);i["default"](this._element).off(g.TRANSITION_END),i["default"](this._element).one(g.TRANSITION_END,(function(){e._element.classList.remove(On),n||i["default"](e._element).one(g.TRANSITION_END,(function(){e._element.style.overflowY=""})).emulateTransitionEnd(e._element,r)})).emulateTransitionEnd(r),this._element.focus()}},t._showElement=function(e){var t=this,n=i["default"](this._element).hasClass(An),r=this._dialog?this._dialog.querySelector(jn):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i["default"](this._dialog).hasClass(Cn)&&r?r.scrollTop=0:this._element.scrollTop=0,n&&g.reflow(this._element),i["default"](this._element).addClass(Sn),this._config.focus&&this._enforceFocus();var o=i["default"].Event(mn,{relatedTarget:e}),a=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,i["default"](t._element).trigger(o)};if(n){var s=g.getTransitionDurationFromElement(this._dialog);i["default"](this._dialog).one(g.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},t._enforceFocus=function(){var e=this;i["default"](document).off(vn).on(vn,(function(t){document!==t.target&&e._element!==t.target&&0===i["default"](e._element).has(t.target).length&&e._element.focus()}))},t._setEscapeEvent=function(){var e=this;this._isShown?i["default"](this._element).on(bn,(function(t){e._config.keyboard&&t.which===ln?(t.preventDefault(),e.hide()):e._config.keyboard||t.which!==ln||e._triggerBackdropTransition()})):this._isShown||i["default"](this._element).off(bn)},t._setResizeEvent=function(){var e=this;this._isShown?i["default"](window).on(gn,(function(t){return e.handleUpdate(t)})):i["default"](window).off(gn)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i["default"](document.body).removeClass(kn),e._resetAdjustments(),e._resetScrollbar(),i["default"](e._element).trigger(pn)}))},t._removeBackdrop=function(){this._backdrop&&(i["default"](this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=i["default"](this._element).hasClass(An)?An:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Tn,n&&this._backdrop.classList.add(n),i["default"](this._backdrop).appendTo(document.body),i["default"](this._element).on(yn,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._triggerBackdropTransition():t.hide())})),n&&g.reflow(this._backdrop),i["default"](this._backdrop).addClass(Sn),!e)return;if(!n)return void e();var r=g.getTransitionDurationFromElement(this._backdrop);i["default"](this._backdrop).one(g.TRANSITION_END,e).emulateTransitionEnd(r)}else if(!this._isShown&&this._backdrop){i["default"](this._backdrop).removeClass(Sn);var o=function(){t._removeBackdrop(),e&&e()};if(i["default"](this._element).hasClass(An)){var a=g.getTransitionDurationFromElement(this._backdrop);i["default"](this._backdrop).one(g.TRANSITION_END,o).emulateTransitionEnd(a)}else o()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Hn,popperConfig:null},tr="show",nr="out",rr={HIDE:"hide"+Xn,HIDDEN:"hidden"+Xn,SHOW:"show"+Xn,SHOWN:"shown"+Xn,INSERTED:"inserted"+Xn,CLICK:"click"+Xn,FOCUSIN:"focusin"+Xn,FOCUSOUT:"focusout"+Xn,MOUSEENTER:"mouseenter"+Xn,MOUSELEAVE:"mouseleave"+Xn},ir="fade",or="show",ar=".tooltip-inner",sr=".arrow",lr="hover",ur="focus",cr="click",fr="manual",dr=function(){function e(e,t){if("undefined"===typeof o["default"])throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=i["default"](e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i["default"](this.getTipElement()).hasClass(or))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),i["default"].removeData(this.element,this.constructor.DATA_KEY),i["default"](this.element).off(this.constructor.EVENT_KEY),i["default"](this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i["default"](this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===i["default"](this.element).css("display"))throw new Error("Please use show on visible elements");var t=i["default"].Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i["default"](this.element).trigger(t);var n=g.findShadowRoot(this.element),r=i["default"].contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!r)return;var a=this.getTipElement(),s=g.getUID(this.constructor.NAME);a.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i["default"](a).addClass(ir);var l="function"===typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,u=this._getAttachment(l);this.addAttachmentClass(u);var c=this._getContainer();i["default"](a).data(this.constructor.DATA_KEY,this),i["default"].contains(this.element.ownerDocument.documentElement,this.tip)||i["default"](a).appendTo(c),i["default"](this.element).trigger(this.constructor.Event.INSERTED),this._popper=new o["default"](this.element,a,this._getPopperConfig(u)),i["default"](a).addClass(or),i["default"](a).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i["default"](document.body).children().on("mouseover",null,i["default"].noop);var f=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,i["default"](e.element).trigger(e.constructor.Event.SHOWN),t===nr&&e._leave(null,e)};if(i["default"](this.tip).hasClass(ir)){var d=g.getTransitionDurationFromElement(this.tip);i["default"](this.tip).one(g.TRANSITION_END,f).emulateTransitionEnd(d)}else f()}},t.hide=function(e){var t=this,n=this.getTipElement(),r=i["default"].Event(this.constructor.Event.HIDE),o=function(){t._hoverState!==tr&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),i["default"](t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(i["default"](this.element).trigger(r),!r.isDefaultPrevented()){if(i["default"](n).removeClass(or),"ontouchstart"in document.documentElement&&i["default"](document.body).children().off("mouseover",null,i["default"].noop),this._activeTrigger[cr]=!1,this._activeTrigger[ur]=!1,this._activeTrigger[lr]=!1,i["default"](this.tip).hasClass(ir)){var a=g.getTransitionDurationFromElement(n);i["default"](n).one(g.TRANSITION_END,o).emulateTransitionEnd(a)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){i["default"](this.getTipElement()).addClass(Yn+"-"+e)},t.getTipElement=function(){return this.tip=this.tip||i["default"](this.config.template)[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(i["default"](e.querySelectorAll(ar)),this.getTitle()),i["default"](e).removeClass(ir+" "+or)},t.setElementContent=function(e,t){"object"!==typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=zn(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?i["default"](t).parent().is(e)||e.empty().append(t):e.text(i["default"](t).text())},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"===typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getPopperConfig=function(e){var t=this,n={placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:sr},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}};return l({},n,this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"===typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:g.isElement(this.config.container)?i["default"](this.config.container):i["default"](document).find(this.config.container)},t._getAttachment=function(e){return Zn[e.toUpperCase()]},t._setListeners=function(){var e=this,t=this.config.trigger.split(" ");t.forEach((function(t){if("click"===t)i["default"](e.element).on(e.constructor.Event.CLICK,e.config.selector,(function(t){return e.toggle(t)}));else if(t!==fr){var n=t===lr?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=t===lr?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;i["default"](e.element).on(n,e.config.selector,(function(t){return e._enter(t)})).on(r,e.config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e.element&&e.hide()},i["default"](this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;t=t||i["default"](e.currentTarget).data(n),t||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?ur:lr]=!0),i["default"](t.getTipElement()).hasClass(or)||t._hoverState===tr?t._hoverState=tr:(clearTimeout(t._timeout),t._hoverState=tr,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===tr&&t.show()}),t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;t=t||i["default"](e.currentTarget).data(n),t||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?ur:lr]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=nr,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===nr&&t.hide()}),t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=i["default"](this.element).data();return Object.keys(t).forEach((function(e){-1!==Gn.indexOf(e)&&delete t[e]})),e=l({},this.constructor.Default,t,"object"===typeof e&&e?e:{}),"number"===typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"===typeof e.title&&(e.title=e.title.toString()),"number"===typeof e.content&&(e.content=e.content.toString()),g.typeCheckConfig(Un,e,this.constructor.DefaultType),e.sanitize&&(e.template=zn(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=i["default"](this.getTipElement()),t=e.attr("class").match(Kn);null!==t&&t.length&&e.removeClass(t.join(""))},t._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(i["default"](e).removeClass(ir),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this),r=n.data(Vn),o="object"===typeof t&&t;if((r||!/dispose|hide/.test(t))&&(r||(r=new e(this,o),n.data(Vn,r)),"string"===typeof t)){if("undefined"===typeof r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return Wn}},{key:"Default",get:function(){return er}},{key:"NAME",get:function(){return Un}},{key:"DATA_KEY",get:function(){return Vn}},{key:"Event",get:function(){return rr}},{key:"EVENT_KEY",get:function(){return Xn}},{key:"DefaultType",get:function(){return Jn}}]),e}();i["default"].fn[Un]=dr._jQueryInterface,i["default"].fn[Un].Constructor=dr,i["default"].fn[Un].noConflict=function(){return i["default"].fn[Un]=Qn,dr._jQueryInterface};var pr="popover",hr="4.6.0",mr="bs.popover",vr="."+mr,gr=i["default"].fn[pr],yr="bs-popover",br=new RegExp("(^|\\s)"+yr+"\\S+","g"),_r=l({},dr.Default,{placement:"right",trigger:"click",content:"",template:''}),wr=l({},dr.DefaultType,{content:"(string|element|function)"}),xr="fade",Cr="show",Er=".popover-header",Tr=".popover-body",kr={HIDE:"hide"+vr,HIDDEN:"hidden"+vr,SHOW:"show"+vr,SHOWN:"shown"+vr,INSERTED:"inserted"+vr,CLICK:"click"+vr,FOCUSIN:"focusin"+vr,FOCUSOUT:"focusout"+vr,MOUSEENTER:"mouseenter"+vr,MOUSELEAVE:"mouseleave"+vr},Ar=function(e){function t(){return e.apply(this,arguments)||this}u(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(e){i["default"](this.getTipElement()).addClass(yr+"-"+e)},n.getTipElement=function(){return this.tip=this.tip||i["default"](this.config.template)[0],this.tip},n.setContent=function(){var e=i["default"](this.getTipElement());this.setElementContent(e.find(Er),this.getTitle());var t=this._getContent();"function"===typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(Tr),t),e.removeClass(xr+" "+Cr)},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var e=i["default"](this.getTipElement()),t=e.attr("class").match(br);null!==t&&t.length>0&&e.removeClass(t.join(""))},t._jQueryInterface=function(e){return this.each((function(){var n=i["default"](this).data(mr),r="object"===typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,r),i["default"](this).data(mr,n)),"string"===typeof e)){if("undefined"===typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},s(t,null,[{key:"VERSION",get:function(){return hr}},{key:"Default",get:function(){return _r}},{key:"NAME",get:function(){return pr}},{key:"DATA_KEY",get:function(){return mr}},{key:"Event",get:function(){return kr}},{key:"EVENT_KEY",get:function(){return vr}},{key:"DefaultType",get:function(){return wr}}]),t}(dr);i["default"].fn[pr]=Ar._jQueryInterface,i["default"].fn[pr].Constructor=Ar,i["default"].fn[pr].noConflict=function(){return i["default"].fn[pr]=gr,Ar._jQueryInterface};var Sr="scrollspy",Or="4.6.0",Nr="bs.scrollspy",jr="."+Nr,Dr=".data-api",Lr=i["default"].fn[Sr],Pr={offset:10,method:"auto",target:""},Ir={offset:"number",method:"string",target:"(string|element)"},Rr="activate"+jr,Mr="scroll"+jr,$r="load"+jr+Dr,Hr="dropdown-item",qr="active",Fr='[data-spy="scroll"]',Br=".nav, .list-group",zr=".nav-link",Ur=".nav-item",Wr=".list-group-item",Vr=".dropdown",Xr=".dropdown-item",Qr=".dropdown-toggle",Yr="offset",Kr="position",Gr=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+zr+","+this._config.target+" "+Wr+","+this._config.target+" "+Xr,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i["default"](this._scrollElement).on(Mr,(function(e){return n._process(e)})),this.refresh(),this._process()}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?Yr:Kr,n="auto"===this._config.method?t:this._config.method,r=n===Kr?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var o=[].slice.call(document.querySelectorAll(this._selector));o.map((function(e){var t,o=g.getSelectorFromElement(e);if(o&&(t=document.querySelector(o)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[i["default"](t)[n]().top+r,o]}return null})).filter((function(e){return e})).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))},t.dispose=function(){i["default"].removeData(this._element,Nr),i["default"](this._scrollElement).off(jr),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if(e=l({},Pr,"object"===typeof e&&e?e:{}),"string"!==typeof e.target&&g.isElement(e.target)){var t=i["default"](e.target).attr("id");t||(t=g.getUID(Sr),i["default"](e.target).attr("id",t)),e.target="#"+t}return g.typeCheckConfig(Sr,e,Ir),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var r=this._targets[this._targets.length-1];this._activeTarget!==r&&this._activate(r)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;){var o=this._activeTarget!==this._targets[i]&&e>=this._offsets[i]&&("undefined"===typeof this._offsets[i+1]||e=a)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};g.jQueryDetection(),v();var y="alert",b="4.6.0",_="bs.alert",w="."+_,x=".data-api",C=i["default"].fn[y],E='[data-dismiss="alert"]',T="close"+w,k="closed"+w,A="click"+w+x,S="alert",O="fade",N="show",j=function(){function e(e){this._element=e}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);n.isDefaultPrevented()||this._removeElement(t)},t.dispose=function(){i["default"].removeData(this._element,_),this._element=null},t._getRootElement=function(e){var t=g.getSelectorFromElement(e),n=!1;return t&&(n=document.querySelector(t)),n||(n=i["default"](e).closest("."+S)[0]),n},t._triggerCloseEvent=function(e){var t=i["default"].Event(T);return i["default"](e).trigger(t),t},t._removeElement=function(e){var t=this;if(i["default"](e).removeClass(N),i["default"](e).hasClass(O)){var n=g.getTransitionDurationFromElement(e);i["default"](e).one(g.TRANSITION_END,(function(n){return t._destroyElement(e,n)})).emulateTransitionEnd(n)}else this._destroyElement(e)},t._destroyElement=function(e){i["default"](e).detach().trigger(k).remove()},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this),r=n.data(_);r||(r=new e(this),n.data(_,r)),"close"===t&&r[t](this)}))},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(e,null,[{key:"VERSION",get:function(){return b}}]),e}();i["default"](document).on(A,E,j._handleDismiss(new j)),i["default"].fn[y]=j._jQueryInterface,i["default"].fn[y].Constructor=j,i["default"].fn[y].noConflict=function(){return i["default"].fn[y]=C,j._jQueryInterface};var D="button",L="4.6.0",P="bs.button",I="."+P,R=".data-api",M=i["default"].fn[D],$="active",H="btn",q="focus",F='[data-toggle^="button"]',B='[data-toggle="buttons"]',z='[data-toggle="button"]',U='[data-toggle="buttons"] .btn',W='input:not([type="hidden"])',V=".active",X=".btn",Q="click"+I+R,Y="focus"+I+R+" blur"+I+R,K="load"+I+R,G=function(){function e(e){this._element=e,this.shouldAvoidTriggerChange=!1}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=i["default"](this._element).closest(B)[0];if(n){var r=this._element.querySelector(W);if(r){if("radio"===r.type)if(r.checked&&this._element.classList.contains($))e=!1;else{var o=n.querySelector(V);o&&i["default"](o).removeClass($)}e&&("checkbox"!==r.type&&"radio"!==r.type||(r.checked=!this._element.classList.contains($)),this.shouldAvoidTriggerChange||i["default"](r).trigger("change")),r.focus(),t=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains($)),e&&i["default"](this._element).toggleClass($))},t.dispose=function(){i["default"].removeData(this._element,P),this._element=null},e._jQueryInterface=function(t,n){return this.each((function(){var r=i["default"](this),o=r.data(P);o||(o=new e(this),r.data(P,o)),o.shouldAvoidTriggerChange=n,"toggle"===t&&o[t]()}))},s(e,null,[{key:"VERSION",get:function(){return L}}]),e}();i["default"](document).on(Q,F,(function(e){var t=e.target,n=t;if(i["default"](t).hasClass(H)||(t=i["default"](t).closest(X)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{var r=t.querySelector(W);if(r&&(r.hasAttribute("disabled")||r.classList.contains("disabled")))return void e.preventDefault();"INPUT"!==n.tagName&&"LABEL"===t.tagName||G._jQueryInterface.call(i["default"](t),"toggle","INPUT"===n.tagName)}})).on(Y,F,(function(e){var t=i["default"](e.target).closest(X)[0];i["default"](t).toggleClass(q,/^focus(in)?$/.test(e.type))})),i["default"](window).on(K,(function(){for(var e=[].slice.call(document.querySelectorAll(U)),t=0,n=e.length;t0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(ce)},t.nextWhenVisible=function(){var e=i["default"](this._element);!document.hidden&&e.is(":visible")&&"hidden"!==e.css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(fe)},t.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(He)&&(g.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=this._element.querySelector(Re);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)i["default"](this._element).one(me,(function(){return t.to(e)}));else{if(n===e)return this.pause(),void this.cycle();var r=e>n?ce:fe;this._slide(r,this._items[e])}},t.dispose=function(){i["default"](this._element).off(te),i["default"].removeData(this._element,ee),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=l({},le,e),g.typeCheckConfig(J,e,ue),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=se)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&i["default"](this._element).on(ve,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&i["default"](this._element).on(ge,(function(t){return e.pause(t)})).on(ye,(function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&ze[t.originalEvent.pointerType.toUpperCase()]?e.touchStartX=t.originalEvent.clientX:e._pointerEvent||(e.touchStartX=t.originalEvent.touches[0].clientX)},n=function(t){t.originalEvent.touches&&t.originalEvent.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.originalEvent.touches[0].clientX-e.touchStartX},r=function(t){e._pointerEvent&&ze[t.originalEvent.pointerType.toUpperCase()]&&(e.touchDeltaX=t.originalEvent.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout((function(t){return e.cycle(t)}),ae+e._config.interval))};i["default"](this._element.querySelectorAll($e)).on(Ee,(function(e){return e.preventDefault()})),this._pointerEvent?(i["default"](this._element).on(xe,(function(e){return t(e)})),i["default"](this._element).on(Ce,(function(e){return r(e)})),this._element.classList.add(Pe)):(i["default"](this._element).on(be,(function(e){return t(e)})),i["default"](this._element).on(_e,(function(e){return n(e)})),i["default"](this._element).on(we,(function(e){return r(e)})))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ie:e.preventDefault(),this.prev();break;case oe:e.preventDefault(),this.next();break}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(Me)):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===ce,r=e===fe,i=this._getItemIndex(t),o=this._items.length-1,a=r&&0===i||n&&i===o;if(a&&!this._config.wrap)return t;var s=e===fe?-1:1,l=(i+s)%this._items.length;return-1===l?this._items[this._items.length-1]:this._items[l]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),r=this._getItemIndex(this._element.querySelector(Re)),o=i["default"].Event(he,{relatedTarget:e,direction:t,from:r,to:n});return i["default"](this._element).trigger(o),o},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){var t=[].slice.call(this._indicatorsElement.querySelectorAll(Ie));i["default"](t).removeClass(Se);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&i["default"](n).addClass(Se)}},t._updateInterval=function(){var e=this._activeElement||this._element.querySelector(Re);if(e){var t=parseInt(e.getAttribute("data-interval"),10);t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval}},t._slide=function(e,t){var n,r,o,a=this,s=this._element.querySelector(Re),l=this._getItemIndex(s),u=t||s&&this._getItemByDirection(e,s),c=this._getItemIndex(u),f=Boolean(this._interval);if(e===ce?(n=je,r=De,o=de):(n=Ne,r=Le,o=pe),u&&i["default"](u).hasClass(Se))this._isSliding=!1;else{var d=this._triggerSlideEvent(u,o);if(!d.isDefaultPrevented()&&s&&u){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var p=i["default"].Event(me,{relatedTarget:u,direction:o,from:l,to:c});if(i["default"](this._element).hasClass(Oe)){i["default"](u).addClass(r),g.reflow(u),i["default"](s).addClass(n),i["default"](u).addClass(n);var h=g.getTransitionDurationFromElement(s);i["default"](s).one(g.TRANSITION_END,(function(){i["default"](u).removeClass(n+" "+r).addClass(Se),i["default"](s).removeClass(Se+" "+r+" "+n),a._isSliding=!1,setTimeout((function(){return i["default"](a._element).trigger(p)}),0)})).emulateTransitionEnd(h)}else i["default"](s).removeClass(Se),i["default"](u).addClass(Se),this._isSliding=!1,i["default"](this._element).trigger(p);f&&this.cycle()}}},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this).data(ee),r=l({},le,i["default"](this).data());"object"===typeof t&&(r=l({},r,t));var o="string"===typeof t?t:r.slide;if(n||(n=new e(this,r),i["default"](this).data(ee,n)),"number"===typeof t)n.to(t);else if("string"===typeof o){if("undefined"===typeof n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else r.interval&&r.ride&&(n.pause(),n.cycle())}))},e._dataApiClickHandler=function(t){var n=g.getSelectorFromElement(this);if(n){var r=i["default"](n)[0];if(r&&i["default"](r).hasClass(Ae)){var o=l({},i["default"](r).data(),i["default"](this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),e._jQueryInterface.call(i["default"](r),o),a&&i["default"](r).data(ee).to(a),t.preventDefault()}}},s(e,null,[{key:"VERSION",get:function(){return Z}},{key:"Default",get:function(){return le}}]),e}();i["default"](document).on(ke,Fe,Ue._dataApiClickHandler),i["default"](window).on(Te,(function(){for(var e=[].slice.call(document.querySelectorAll(Be)),t=0,n=e.length;t0&&(this._selector=a,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=e.prototype;return t.toggle=function(){i["default"](this._element).hasClass(it)?this.hide():this.show()},t.show=function(){var t,n,r=this;if(!this._isTransitioning&&!i["default"](this._element).hasClass(it)&&(this._parent&&(t=[].slice.call(this._parent.querySelectorAll(ct)).filter((function(e){return"string"===typeof r._config.parent?e.getAttribute("data-parent")===r._config.parent:e.classList.contains(ot)})),0===t.length&&(t=null)),!(t&&(n=i["default"](t).not(this._selector).data(Xe),n&&n._isTransitioning)))){var o=i["default"].Event(Ze);if(i["default"](this._element).trigger(o),!o.isDefaultPrevented()){t&&(e._jQueryInterface.call(i["default"](t).not(this._selector),"hide"),n||i["default"](t).data(Xe,null));var a=this._getDimension();i["default"](this._element).removeClass(ot).addClass(at),this._element.style[a]=0,this._triggerArray.length&&i["default"](this._triggerArray).removeClass(st).attr("aria-expanded",!0),this.setTransitioning(!0);var s=function(){i["default"](r._element).removeClass(at).addClass(ot+" "+it),r._element.style[a]="",r.setTransitioning(!1),i["default"](r._element).trigger(et)},l=a[0].toUpperCase()+a.slice(1),u="scroll"+l,c=g.getTransitionDurationFromElement(this._element);i["default"](this._element).one(g.TRANSITION_END,s).emulateTransitionEnd(c),this._element.style[a]=this._element[u]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&i["default"](this._element).hasClass(it)){var t=i["default"].Event(tt);if(i["default"](this._element).trigger(t),!t.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",g.reflow(this._element),i["default"](this._element).addClass(at).removeClass(ot+" "+it);var r=this._triggerArray.length;if(r>0)for(var o=0;o0},t._getOffset=function(){var e=this,t={};return"function"===typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),l({},e,this._config.popperConfig)},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this).data(mt),r="object"===typeof t?t:null;if(n||(n=new e(this,r),i["default"](this).data(mt,n)),"string"===typeof t){if("undefined"===typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},e._clearMenus=function(t){if(!t||t.which!==Et&&("keyup"!==t.type||t.which===wt))for(var n=[].slice.call(document.querySelectorAll(Ft)),r=0,o=n.length;r0&&a--,t.which===Ct&&adocument.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(On);var r=g.getTransitionDurationFromElement(this._dialog);i["default"](this._element).off(g.TRANSITION_END),i["default"](this._element).one(g.TRANSITION_END,(function(){e._element.classList.remove(On),n||i["default"](e._element).one(g.TRANSITION_END,(function(){e._element.style.overflowY=""})).emulateTransitionEnd(e._element,r)})).emulateTransitionEnd(r),this._element.focus()}},t._showElement=function(e){var t=this,n=i["default"](this._element).hasClass(An),r=this._dialog?this._dialog.querySelector(jn):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),i["default"](this._dialog).hasClass(Cn)&&r?r.scrollTop=0:this._element.scrollTop=0,n&&g.reflow(this._element),i["default"](this._element).addClass(Sn),this._config.focus&&this._enforceFocus();var o=i["default"].Event(mn,{relatedTarget:e}),a=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,i["default"](t._element).trigger(o)};if(n){var s=g.getTransitionDurationFromElement(this._dialog);i["default"](this._dialog).one(g.TRANSITION_END,a).emulateTransitionEnd(s)}else a()},t._enforceFocus=function(){var e=this;i["default"](document).off(vn).on(vn,(function(t){document!==t.target&&e._element!==t.target&&0===i["default"](e._element).has(t.target).length&&e._element.focus()}))},t._setEscapeEvent=function(){var e=this;this._isShown?i["default"](this._element).on(bn,(function(t){e._config.keyboard&&t.which===ln?(t.preventDefault(),e.hide()):e._config.keyboard||t.which!==ln||e._triggerBackdropTransition()})):this._isShown||i["default"](this._element).off(bn)},t._setResizeEvent=function(){var e=this;this._isShown?i["default"](window).on(gn,(function(t){return e.handleUpdate(t)})):i["default"](window).off(gn)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){i["default"](document.body).removeClass(kn),e._resetAdjustments(),e._resetScrollbar(),i["default"](e._element).trigger(pn)}))},t._removeBackdrop=function(){this._backdrop&&(i["default"](this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=i["default"](this._element).hasClass(An)?An:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Tn,n&&this._backdrop.classList.add(n),i["default"](this._backdrop).appendTo(document.body),i["default"](this._element).on(yn,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._triggerBackdropTransition():t.hide())})),n&&g.reflow(this._backdrop),i["default"](this._backdrop).addClass(Sn),!e)return;if(!n)return void e();var r=g.getTransitionDurationFromElement(this._backdrop);i["default"](this._backdrop).one(g.TRANSITION_END,e).emulateTransitionEnd(r)}else if(!this._isShown&&this._backdrop){i["default"](this._backdrop).removeClass(Sn);var o=function(){t._removeBackdrop(),e&&e()};if(i["default"](this._element).hasClass(An)){var a=g.getTransitionDurationFromElement(this._backdrop);i["default"](this._backdrop).one(g.TRANSITION_END,o).emulateTransitionEnd(a)}else o()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(e.left+e.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Hn,popperConfig:null},tr="show",nr="out",rr={HIDE:"hide"+Xn,HIDDEN:"hidden"+Xn,SHOW:"show"+Xn,SHOWN:"shown"+Xn,INSERTED:"inserted"+Xn,CLICK:"click"+Xn,FOCUSIN:"focusin"+Xn,FOCUSOUT:"focusout"+Xn,MOUSEENTER:"mouseenter"+Xn,MOUSELEAVE:"mouseleave"+Xn},ir="fade",or="show",ar=".tooltip-inner",sr=".arrow",lr="hover",ur="focus",cr="click",fr="manual",dr=function(){function e(e,t){if("undefined"===typeof o["default"])throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=i["default"](e.currentTarget).data(t);n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(i["default"](this.getTipElement()).hasClass(or))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),i["default"].removeData(this.element,this.constructor.DATA_KEY),i["default"](this.element).off(this.constructor.EVENT_KEY),i["default"](this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&i["default"](this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===i["default"](this.element).css("display"))throw new Error("Please use show on visible elements");var t=i["default"].Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){i["default"](this.element).trigger(t);var n=g.findShadowRoot(this.element),r=i["default"].contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!r)return;var a=this.getTipElement(),s=g.getUID(this.constructor.NAME);a.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i["default"](a).addClass(ir);var l="function"===typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,u=this._getAttachment(l);this.addAttachmentClass(u);var c=this._getContainer();i["default"](a).data(this.constructor.DATA_KEY,this),i["default"].contains(this.element.ownerDocument.documentElement,this.tip)||i["default"](a).appendTo(c),i["default"](this.element).trigger(this.constructor.Event.INSERTED),this._popper=new o["default"](this.element,a,this._getPopperConfig(u)),i["default"](a).addClass(or),i["default"](a).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&i["default"](document.body).children().on("mouseover",null,i["default"].noop);var f=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,i["default"](e.element).trigger(e.constructor.Event.SHOWN),t===nr&&e._leave(null,e)};if(i["default"](this.tip).hasClass(ir)){var d=g.getTransitionDurationFromElement(this.tip);i["default"](this.tip).one(g.TRANSITION_END,f).emulateTransitionEnd(d)}else f()}},t.hide=function(e){var t=this,n=this.getTipElement(),r=i["default"].Event(this.constructor.Event.HIDE),o=function(){t._hoverState!==tr&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),i["default"](t.element).trigger(t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(i["default"](this.element).trigger(r),!r.isDefaultPrevented()){if(i["default"](n).removeClass(or),"ontouchstart"in document.documentElement&&i["default"](document.body).children().off("mouseover",null,i["default"].noop),this._activeTrigger[cr]=!1,this._activeTrigger[ur]=!1,this._activeTrigger[lr]=!1,i["default"](this.tip).hasClass(ir)){var a=g.getTransitionDurationFromElement(n);i["default"](n).one(g.TRANSITION_END,o).emulateTransitionEnd(a)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){i["default"](this.getTipElement()).addClass(Yn+"-"+e)},t.getTipElement=function(){return this.tip=this.tip||i["default"](this.config.template)[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(i["default"](e.querySelectorAll(ar)),this.getTitle()),i["default"](e).removeClass(ir+" "+or)},t.setElementContent=function(e,t){"object"!==typeof t||!t.nodeType&&!t.jquery?this.config.html?(this.config.sanitize&&(t=zn(t,this.config.whiteList,this.config.sanitizeFn)),e.html(t)):e.text(t):this.config.html?i["default"](t).parent().is(e)||e.empty().append(t):e.text(i["default"](t).text())},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"===typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getPopperConfig=function(e){var t=this,n={placement:e,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:sr},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}};return l({},n,this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"===typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:g.isElement(this.config.container)?i["default"](this.config.container):i["default"](document).find(this.config.container)},t._getAttachment=function(e){return Zn[e.toUpperCase()]},t._setListeners=function(){var e=this,t=this.config.trigger.split(" ");t.forEach((function(t){if("click"===t)i["default"](e.element).on(e.constructor.Event.CLICK,e.config.selector,(function(t){return e.toggle(t)}));else if(t!==fr){var n=t===lr?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=t===lr?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;i["default"](e.element).on(n,e.config.selector,(function(t){return e._enter(t)})).on(r,e.config.selector,(function(t){return e._leave(t)}))}})),this._hideModalHandler=function(){e.element&&e.hide()},i["default"](this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;t=t||i["default"](e.currentTarget).data(n),t||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusin"===e.type?ur:lr]=!0),i["default"](t.getTipElement()).hasClass(or)||t._hoverState===tr?t._hoverState=tr:(clearTimeout(t._timeout),t._hoverState=tr,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===tr&&t.show()}),t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;t=t||i["default"](e.currentTarget).data(n),t||(t=new this.constructor(e.currentTarget,this._getDelegateConfig()),i["default"](e.currentTarget).data(n,t)),e&&(t._activeTrigger["focusout"===e.type?ur:lr]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=nr,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===nr&&t.hide()}),t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=i["default"](this.element).data();return Object.keys(t).forEach((function(e){-1!==Gn.indexOf(e)&&delete t[e]})),e=l({},this.constructor.Default,t,"object"===typeof e&&e?e:{}),"number"===typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"===typeof e.title&&(e.title=e.title.toString()),"number"===typeof e.content&&(e.content=e.content.toString()),g.typeCheckConfig(Un,e,this.constructor.DefaultType),e.sanitize&&(e.template=zn(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=i["default"](this.getTipElement()),t=e.attr("class").match(Kn);null!==t&&t.length&&e.removeClass(t.join(""))},t._handlePopperPlacementChange=function(e){this.tip=e.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(i["default"](e).removeClass(ir),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each((function(){var n=i["default"](this),r=n.data(Vn),o="object"===typeof t&&t;if((r||!/dispose|hide/.test(t))&&(r||(r=new e(this,o),n.data(Vn,r)),"string"===typeof t)){if("undefined"===typeof r[t])throw new TypeError('No method named "'+t+'"');r[t]()}}))},s(e,null,[{key:"VERSION",get:function(){return Wn}},{key:"Default",get:function(){return er}},{key:"NAME",get:function(){return Un}},{key:"DATA_KEY",get:function(){return Vn}},{key:"Event",get:function(){return rr}},{key:"EVENT_KEY",get:function(){return Xn}},{key:"DefaultType",get:function(){return Jn}}]),e}();i["default"].fn[Un]=dr._jQueryInterface,i["default"].fn[Un].Constructor=dr,i["default"].fn[Un].noConflict=function(){return i["default"].fn[Un]=Qn,dr._jQueryInterface};var pr="popover",hr="4.6.0",mr="bs.popover",vr="."+mr,gr=i["default"].fn[pr],yr="bs-popover",br=new RegExp("(^|\\s)"+yr+"\\S+","g"),_r=l({},dr.Default,{placement:"right",trigger:"click",content:"",template:''}),wr=l({},dr.DefaultType,{content:"(string|element|function)"}),xr="fade",Cr="show",Er=".popover-header",Tr=".popover-body",kr={HIDE:"hide"+vr,HIDDEN:"hidden"+vr,SHOW:"show"+vr,SHOWN:"shown"+vr,INSERTED:"inserted"+vr,CLICK:"click"+vr,FOCUSIN:"focusin"+vr,FOCUSOUT:"focusout"+vr,MOUSEENTER:"mouseenter"+vr,MOUSELEAVE:"mouseleave"+vr},Ar=function(e){function t(){return e.apply(this,arguments)||this}u(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(e){i["default"](this.getTipElement()).addClass(yr+"-"+e)},n.getTipElement=function(){return this.tip=this.tip||i["default"](this.config.template)[0],this.tip},n.setContent=function(){var e=i["default"](this.getTipElement());this.setElementContent(e.find(Er),this.getTitle());var t=this._getContent();"function"===typeof t&&(t=t.call(this.element)),this.setElementContent(e.find(Tr),t),e.removeClass(xr+" "+Cr)},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var e=i["default"](this.getTipElement()),t=e.attr("class").match(br);null!==t&&t.length>0&&e.removeClass(t.join(""))},t._jQueryInterface=function(e){return this.each((function(){var n=i["default"](this).data(mr),r="object"===typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,r),i["default"](this).data(mr,n)),"string"===typeof e)){if("undefined"===typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},s(t,null,[{key:"VERSION",get:function(){return hr}},{key:"Default",get:function(){return _r}},{key:"NAME",get:function(){return pr}},{key:"DATA_KEY",get:function(){return mr}},{key:"Event",get:function(){return kr}},{key:"EVENT_KEY",get:function(){return vr}},{key:"DefaultType",get:function(){return wr}}]),t}(dr);i["default"].fn[pr]=Ar._jQueryInterface,i["default"].fn[pr].Constructor=Ar,i["default"].fn[pr].noConflict=function(){return i["default"].fn[pr]=gr,Ar._jQueryInterface};var Sr="scrollspy",Or="4.6.0",Nr="bs.scrollspy",jr="."+Nr,Dr=".data-api",Lr=i["default"].fn[Sr],Pr={offset:10,method:"auto",target:""},Ir={offset:"number",method:"string",target:"(string|element)"},Rr="activate"+jr,Mr="scroll"+jr,$r="load"+jr+Dr,Hr="dropdown-item",qr="active",Fr='[data-spy="scroll"]',Br=".nav, .list-group",zr=".nav-link",Ur=".nav-item",Wr=".list-group-item",Vr=".dropdown",Xr=".dropdown-item",Qr=".dropdown-toggle",Yr="offset",Kr="position",Gr=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+zr+","+this._config.target+" "+Wr+","+this._config.target+" "+Xr,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,i["default"](this._scrollElement).on(Mr,(function(e){return n._process(e)})),this.refresh(),this._process()}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?Yr:Kr,n="auto"===this._config.method?t:this._config.method,r=n===Kr?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var o=[].slice.call(document.querySelectorAll(this._selector));o.map((function(e){var t,o=g.getSelectorFromElement(e);if(o&&(t=document.querySelector(o)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[i["default"](t)[n]().top+r,o]}return null})).filter((function(e){return e})).sort((function(e,t){return e[0]-t[0]})).forEach((function(t){e._offsets.push(t[0]),e._targets.push(t[1])}))},t.dispose=function(){i["default"].removeData(this._element,Nr),i["default"](this._scrollElement).off(jr),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if(e=l({},Pr,"object"===typeof e&&e?e:{}),"string"!==typeof e.target&&g.isElement(e.target)){var t=i["default"](e.target).attr("id");t||(t=g.getUID(Sr),i["default"](e.target).attr("id",t)),e.target="#"+t}return g.typeCheckConfig(Sr,e,Ir),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var r=this._targets[this._targets.length-1];this._activeTarget!==r&&this._activate(r)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;){var o=this._activeTarget!==this._targets[i]&&e>=this._offsets[i]&&("undefined"===typeof this._offsets[i+1]||e=0&&(t=e.slice(r),e=e.slice(0,r));var i=e.indexOf("?");return i>=0&&(n=e.slice(i+1),e=e.slice(0,i)),{path:e,query:n,hash:t}}function N(e){return e.replace(/\/\//g,"/")}var j=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},D=G,L=$,P=H,I=B,R=K,M=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function $(e,t){var n,r=[],i=0,o=0,a="",s=t&&t.delimiter||"/";while(null!=(n=M.exec(e))){var l=n[0],u=n[1],c=n.index;if(a+=e.slice(o,c),o=c+l.length,u)a+=u[1];else{var f=e[o],d=n[2],p=n[3],h=n[4],m=n[5],v=n[6],g=n[7];a&&(r.push(a),a="");var y=null!=d&&null!=f&&f!==d,b="+"===v||"*"===v,_="?"===v||"*"===v,w=n[2]||s,x=h||m;r.push({name:p||i++,prefix:d||"",delimiter:w,optional:_,repeat:b,partial:y,asterisk:!!g,pattern:x?U(x):g?".*":"[^"+z(w)+"]+?"})}}return o1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)C.on=w,C.attrs={href:l,"aria-current":y};else{var T=se(this.$slots.default);if(T){T.isStatic=!1;var k=T.data=i({},T.data);for(var A in k.on=k.on||{},k.on){var S=k.on[A];A in w&&(k.on[A]=Array.isArray(S)?S:[S])}for(var O in w)O in k.on?k.on[O].push(w[O]):k.on[O]=b;var N=T.data.attrs=i({},T.data.attrs);N.href=l,N["aria-current"]=y}else C.on=w}return e(this.tag,C,this.$slots.default)}};function ae(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(void 0===e.button||0===e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function se(e){if(e)for(var t,n=0;n-1&&(s.params[f]=n.params[f]);return s.path=Z(u.path,s.params,'named route "'+l+'"'),d(u,s,a)}if(s.path){s.params={};for(var p=0;p=e.length?n():e[i]?t(e[i],(function(){r(i+1)})):r(i+1)};r(0)}var He={redirected:2,aborted:4,cancelled:8,duplicated:16};function qe(e,t){return Ue(e,t,He.redirected,'Redirected when going from "'+e.fullPath+'" to "'+Ve(t)+'" via a navigation guard.')}function Fe(e,t){var n=Ue(e,t,He.duplicated,'Avoided redundant navigation to current location: "'+e.fullPath+'".');return n.name="NavigationDuplicated",n}function Be(e,t){return Ue(e,t,He.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function ze(e,t){return Ue(e,t,He.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+t.fullPath+'" via a navigation guard.')}function Ue(e,t,n,r){var i=new Error(r);return i._isRouter=!0,i.from=e,i.to=t,i.type=n,i}var We=["params","query","hash"];function Ve(e){if("string"===typeof e)return e;if("path"in e)return e.path;var t={};return We.forEach((function(n){n in e&&(t[n]=e[n])})),JSON.stringify(t,null,2)}function Xe(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Qe(e,t){return Xe(e)&&e._isRouter&&(null==t||e.type===t)}function Ye(e){return function(t,n,r){var i=!1,o=0,a=null;Ke(e,(function(e,t,n,s){if("function"===typeof e&&void 0===e.cid){i=!0,o++;var l,u=et((function(t){Ze(t)&&(t=t.default),e.resolved="function"===typeof t?t:te.extend(t),n.components[s]=t,o--,o<=0&&r()})),c=et((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Xe(e)?e:new Error(t),r(a))}));try{l=e(u,c)}catch(d){c(d)}if(l)if("function"===typeof l.then)l.then(u,c);else{var f=l.component;f&&"function"===typeof f.then&&f.then(u,c)}}})),i||r()}}function Ke(e,t){return Ge(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Ge(e){return Array.prototype.concat.apply([],e)}var Je="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Ze(e){return e.__esModule||Je&&"Module"===e[Symbol.toStringTag]}function et(e){var t=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!t)return t=!0,e.apply(this,n)}}var tt=function(e,t){this.router=e,this.base=nt(t),this.current=g,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function nt(e){if(!e)if(ue){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function rt(e,t){var n,r=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,r=Ie&&n;r&&this.listeners.push(Ce());var i=function(){var n=e.current,i=dt(e.base);e.current===g&&i===e._startLocation||e.transitionTo(i,(function(e){r&&Ee(t,e,n,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){Re(N(r.base+e.fullPath)),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){Me(N(r.base+e.fullPath)),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(dt(this.base)!==this.current.fullPath){var t=N(this.base+this.current.fullPath);e?Re(t):Me(t)}},t.prototype.getCurrentLocation=function(){return dt(this.base)},t}(tt);function dt(e){var t=window.location.pathname;return e&&0===t.toLowerCase().indexOf(e.toLowerCase())&&(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var pt=function(e){function t(t,n,r){e.call(this,t,n),r&&ht(this.base)||mt()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,n=t.options.scrollBehavior,r=Ie&&n;r&&this.listeners.push(Ce());var i=function(){var t=e.current;mt()&&e.transitionTo(vt(),(function(n){r&&Ee(e.router,n,t,!0),Ie||bt(n.fullPath)}))},o=Ie?"popstate":"hashchange";window.addEventListener(o,i),this.listeners.push((function(){window.removeEventListener(o,i)}))}},t.prototype.push=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){yt(e.fullPath),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){bt(e.fullPath),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;vt()!==t&&(e?yt(t):bt(t))},t.prototype.getCurrentLocation=function(){return vt()},t}(tt);function ht(e){var t=dt(e);if(!/^\/#/.test(t))return window.location.replace(N(e+"/#"+t)),!0}function mt(){var e=vt();return"/"===e.charAt(0)||(bt("/"+e),!1)}function vt(){var e=window.location.href,t=e.indexOf("#");return t<0?"":(e=e.slice(t+1),e)}function gt(e){var t=window.location.href,n=t.indexOf("#"),r=n>=0?t.slice(0,n):t;return r+"#"+e}function yt(e){Ie?Re(gt(e)):window.location.hash=e}function bt(e){Ie?Me(gt(e)):window.location.replace(gt(e))}var _t=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var e=t.current;t.index=n,t.updateRoute(r),t.router.afterHooks.forEach((function(t){t&&t(r,e)}))}),(function(e){Qe(e,He.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(tt),wt=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=he(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Ie&&!1!==e.fallback,this.fallback&&(t="hash"),ue||(t="abstract"),this.mode=t,t){case"history":this.history=new ft(this,e.base);break;case"hash":this.history=new pt(this,e.base,this.fallback);break;case"abstract":this.history=new _t(this,e.base);break;default:0}},xt={currentRoute:{configurable:!0}};function Ct(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function Et(e,t,n){var r="hash"===n?"#"+t:t;return e?N(e+"/"+r):r}wt.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},xt.currentRoute.get=function(){return this.history&&this.history.current},wt.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof ft||n instanceof pt){var r=function(e){var r=n.current,i=t.options.scrollBehavior,o=Ie&&i;o&&"fullPath"in e&&Ee(t,e,r,!1)},i=function(e){n.setupListeners(),r(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},wt.prototype.beforeEach=function(e){return Ct(this.beforeHooks,e)},wt.prototype.beforeResolve=function(e){return Ct(this.resolveHooks,e)},wt.prototype.afterEach=function(e){return Ct(this.afterHooks,e)},wt.prototype.onReady=function(e,t){this.history.onReady(e,t)},wt.prototype.onError=function(e){this.history.onError(e)},wt.prototype.push=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!==typeof Promise)return new Promise((function(t,n){r.history.push(e,t,n)}));this.history.push(e,t,n)},wt.prototype.replace=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!==typeof Promise)return new Promise((function(t,n){r.history.replace(e,t,n)}));this.history.replace(e,t,n)},wt.prototype.go=function(e){this.history.go(e)},wt.prototype.back=function(){this.go(-1)},wt.prototype.forward=function(){this.go(1)},wt.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},wt.prototype.resolve=function(e,t,n){t=t||this.history.current;var r=ee(e,t,n,this),i=this.match(r,t),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=Et(a,o,this.mode);return{location:r,route:i,href:s,normalizedTo:r,resolved:i}},wt.prototype.getRoutes=function(){return this.matcher.getRoutes()},wt.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},wt.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(wt.prototype,xt),wt.install=le,wt.version="3.5.1",wt.isNavigationFailure=Qe,wt.NavigationFailureType=He,wt.START_LOCATION=g,ue&&window.Vue&&window.Vue.use(wt),t["a"]=wt},"8df4":function(e,t,n){"use strict";var r=n("7a77");function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e,t=new i((function(t){e=t}));return{token:t,cancel:e}},e.exports=i},"91fb":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="heart",o=512,a=512,s=[],l="f004",u="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faHeart=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},"9e52":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="arrow-up",o=448,a=512,s=[],l="f062",u="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faArrowUp=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},a14b:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="chevron-up",o=448,a=512,s=[],l="f077",u="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faChevronUp=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},a206:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="arrow-down",o=448,a=512,s=[],l="f063",u="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faArrowDown=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},ab8b:function(e,t,n){},ad3d:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return x}));var r=n("ecee"),i="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{};function o(e,t){return t={exports:{}},e(t,t.exports),t.exports}var a=o((function(e){(function(t){var n=function(e,t,r){if(!u(t)||f(t)||d(t)||p(t)||l(t))return t;var i,o=0,a=0;if(c(t))for(i=[],a=t.length;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},f=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(t.children||[]).map(m.bind(null,e)),o=Object.keys(t.attributes||{}).reduce((function(e,n){var r=t.attributes[n];switch(n){case"class":e["class"]=p(r);break;case"style":e["style"]=d(r);break;default:e.attrs[n]=r}return e}),{class:{},style:{},attrs:{}}),a=r.class,s=void 0===a?{}:a,l=r.style,f=void 0===l?{}:l,v=r.attrs,g=void 0===v?{}:v,y=c(r,["class","style","attrs"]);return"string"===typeof t?t:e(t.tag,u({class:h(o.class,s),style:u({},o.style,f),attrs:u({},o.attrs,g)},y,{props:n}),i)}var v=!1;try{v=!0}catch(C){}function g(){var e;!v&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}function y(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?l({},e,t):{}}function b(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},l(t,"fa-"+e.size,null!==e.size),l(t,"fa-rotate-"+e.rotation,null!==e.rotation),l(t,"fa-pull-"+e.pull,null!==e.pull),l(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(n).map((function(e){return n[e]?e:null})).filter((function(e){return e}))}function _(e,t){var n=0===(e||"").length?[]:[e];return n.concat(t).join(" ")}function w(e){return r["d"].icon?r["d"].icon(e):null===e?null:"object"===("undefined"===typeof e?"undefined":s(e))&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}var x={name:"FontAwesomeIcon",functional:!0,props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(e){return["horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1}},render:function(e,t){var n=t.props,i=n.icon,o=n.mask,a=n.symbol,s=n.title,l=w(i),c=y("classes",b(n)),f=y("transform","string"===typeof n.transform?r["d"].transform(n.transform):n.transform),d=y("mask",w(o)),p=Object(r["b"])(l,u({},c,f,d,{symbol:a,title:s}));if(!p)return g("Could not find one or more icon(s)",l,d);var h=p.abstract,v=m.bind(null,e);return v(h[0],{},t.data)}};Boolean,Boolean}).call(this,n("c8ba"))},af2b:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="sun",o=512,a=512,s=[],l="f185",u="M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faSun=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},b50d:function(e,t,n){"use strict";var r=n("c532"),i=n("467f"),o=n("7aac"),a=n("30b5"),s=n("83b9"),l=n("c345"),u=n("3934"),c=n("2d83");e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var v=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),a(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in p?l(p.getAllResponseHeaders()):null,o=e.responseType&&"text"!==e.responseType?p.response:p.responseText,a={data:o,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};i(t,n,a),p=null}},p.onabort=function(){p&&(n(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||u(v))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(y){if("json"!==e.responseType)throw y}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),f||(f=null),p.send(f)}))}},ba01:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="box",o=512,a=512,s=[],l="f466",u="M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faBox=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},bc3a:function(e,t,n){e.exports=n("cee4")},bf13:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="leaf",o=576,a=512,s=[],l="f06c",u="M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faLeaf=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},c074:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})); + */function r(e,t){0}function i(e,t){for(var n in t)e[n]=t[n];return e}var o=/[!'()*]/g,a=function(e){return"%"+e.charCodeAt(0).toString(16)},s=/%2C/g,l=function(e){return encodeURIComponent(e).replace(o,a).replace(s,",")};function u(e){try{return decodeURIComponent(e)}catch(t){0}return e}function c(e,t,n){void 0===t&&(t={});var r,i=n||d;try{r=i(e||"")}catch(s){r={}}for(var o in t){var a=t[o];r[o]=Array.isArray(a)?a.map(f):f(a)}return r}var f=function(e){return null==e||"object"===typeof e?e:String(e)};function d(e){var t={};return e=e.trim().replace(/^(\?|#|&)/,""),e?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),r=u(n.shift()),i=n.length>0?u(n.join("=")):null;void 0===t[r]?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]})),t):t}function p(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return l(t);if(Array.isArray(n)){var r=[];return n.forEach((function(e){void 0!==e&&(null===e?r.push(l(t)):r.push(l(t)+"="+l(e)))})),r.join("&")}return l(t)+"="+l(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var h=/\/?$/;function m(e,t,n,r){var i=r&&r.options.stringifyQuery,o=t.query||{};try{o=v(o)}catch(s){}var a={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:o,params:t.params||{},fullPath:b(t,i),matched:e?y(e):[]};return n&&(a.redirectedFrom=b(n,i)),Object.freeze(a)}function v(e){if(Array.isArray(e))return e.map(v);if(e&&"object"===typeof e){var t={};for(var n in e)t[n]=v(e[n]);return t}return e}var g=m(null,{path:"/"});function y(e){var t=[];while(e)t.unshift(e),e=e.parent;return t}function b(e,t){var n=e.path,r=e.query;void 0===r&&(r={});var i=e.hash;void 0===i&&(i="");var o=t||p;return(n||"/")+o(r)+i}function _(e,t,n){return t===g?e===t:!!t&&(e.path&&t.path?e.path.replace(h,"")===t.path.replace(h,"")&&(n||e.hash===t.hash&&w(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&w(e.query,t.query)&&w(e.params,t.params))))}function w(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),r=Object.keys(t).sort();return n.length===r.length&&n.every((function(n,i){var o=e[n],a=r[i];if(a!==n)return!1;var s=t[n];return null==o||null==s?o===s:"object"===typeof o&&"object"===typeof s?w(o,s):String(o)===String(s)}))}function x(e,t){return 0===e.path.replace(h,"/").indexOf(t.path.replace(h,"/"))&&(!t.hash||e.hash===t.hash)&&C(e.query,t.query)}function C(e,t){for(var n in t)if(!(n in e))return!1;return!0}function E(e){for(var t=0;t=0&&(t=e.slice(r),e=e.slice(0,r));var i=e.indexOf("?");return i>=0&&(n=e.slice(i+1),e=e.slice(0,i)),{path:e,query:n,hash:t}}function N(e){return e.replace(/\/\//g,"/")}var j=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},D=G,L=$,P=H,I=B,R=K,M=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function $(e,t){var n,r=[],i=0,o=0,a="",s=t&&t.delimiter||"/";while(null!=(n=M.exec(e))){var l=n[0],u=n[1],c=n.index;if(a+=e.slice(o,c),o=c+l.length,u)a+=u[1];else{var f=e[o],d=n[2],p=n[3],h=n[4],m=n[5],v=n[6],g=n[7];a&&(r.push(a),a="");var y=null!=d&&null!=f&&f!==d,b="+"===v||"*"===v,_="?"===v||"*"===v,w=n[2]||s,x=h||m;r.push({name:p||i++,prefix:d||"",delimiter:w,optional:_,repeat:b,partial:y,asterisk:!!g,pattern:x?U(x):g?".*":"[^"+z(w)+"]+?"})}}return o1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)C.on=w,C.attrs={href:l,"aria-current":y};else{var T=se(this.$slots.default);if(T){T.isStatic=!1;var k=T.data=i({},T.data);for(var A in k.on=k.on||{},k.on){var S=k.on[A];A in w&&(k.on[A]=Array.isArray(S)?S:[S])}for(var O in w)O in k.on?k.on[O].push(w[O]):k.on[O]=b;var N=T.data.attrs=i({},T.data.attrs);N.href=l,N["aria-current"]=y}else C.on=w}return e(this.tag,C,this.$slots.default)}};function ae(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(void 0===e.button||0===e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function se(e){if(e)for(var t,n=0;n-1&&(s.params[f]=n.params[f]);return s.path=Z(u.path,s.params,'named route "'+l+'"'),d(u,s,a)}if(s.path){s.params={};for(var p=0;p=e.length?n():e[i]?t(e[i],(function(){r(i+1)})):r(i+1)};r(0)}var He={redirected:2,aborted:4,cancelled:8,duplicated:16};function qe(e,t){return Ue(e,t,He.redirected,'Redirected when going from "'+e.fullPath+'" to "'+Ve(t)+'" via a navigation guard.')}function Fe(e,t){var n=Ue(e,t,He.duplicated,'Avoided redundant navigation to current location: "'+e.fullPath+'".');return n.name="NavigationDuplicated",n}function Be(e,t){return Ue(e,t,He.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function ze(e,t){return Ue(e,t,He.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+t.fullPath+'" via a navigation guard.')}function Ue(e,t,n,r){var i=new Error(r);return i._isRouter=!0,i.from=e,i.to=t,i.type=n,i}var We=["params","query","hash"];function Ve(e){if("string"===typeof e)return e;if("path"in e)return e.path;var t={};return We.forEach((function(n){n in e&&(t[n]=e[n])})),JSON.stringify(t,null,2)}function Xe(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Qe(e,t){return Xe(e)&&e._isRouter&&(null==t||e.type===t)}function Ye(e){return function(t,n,r){var i=!1,o=0,a=null;Ke(e,(function(e,t,n,s){if("function"===typeof e&&void 0===e.cid){i=!0,o++;var l,u=et((function(t){Ze(t)&&(t=t.default),e.resolved="function"===typeof t?t:te.extend(t),n.components[s]=t,o--,o<=0&&r()})),c=et((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=Xe(e)?e:new Error(t),r(a))}));try{l=e(u,c)}catch(d){c(d)}if(l)if("function"===typeof l.then)l.then(u,c);else{var f=l.component;f&&"function"===typeof f.then&&f.then(u,c)}}})),i||r()}}function Ke(e,t){return Ge(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Ge(e){return Array.prototype.concat.apply([],e)}var Je="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Ze(e){return e.__esModule||Je&&"Module"===e[Symbol.toStringTag]}function et(e){var t=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!t)return t=!0,e.apply(this,n)}}var tt=function(e,t){this.router=e,this.base=nt(t),this.current=g,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function nt(e){if(!e)if(ue){var t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function rt(e,t){var n,r=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,r=Ie&&n;r&&this.listeners.push(Ce());var i=function(){var n=e.current,i=dt(e.base);e.current===g&&i===e._startLocation||e.transitionTo(i,(function(e){r&&Ee(t,e,n,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){Re(N(r.base+e.fullPath)),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){Me(N(r.base+e.fullPath)),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(dt(this.base)!==this.current.fullPath){var t=N(this.base+this.current.fullPath);e?Re(t):Me(t)}},t.prototype.getCurrentLocation=function(){return dt(this.base)},t}(tt);function dt(e){var t=window.location.pathname;return e&&0===t.toLowerCase().indexOf(e.toLowerCase())&&(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var pt=function(e){function t(t,n,r){e.call(this,t,n),r&&ht(this.base)||mt()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router,n=t.options.scrollBehavior,r=Ie&&n;r&&this.listeners.push(Ce());var i=function(){var t=e.current;mt()&&e.transitionTo(vt(),(function(n){r&&Ee(e.router,n,t,!0),Ie||bt(n.fullPath)}))},o=Ie?"popstate":"hashchange";window.addEventListener(o,i),this.listeners.push((function(){window.removeEventListener(o,i)}))}},t.prototype.push=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){yt(e.fullPath),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,i=this,o=i.current;this.transitionTo(e,(function(e){bt(e.fullPath),Ee(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;vt()!==t&&(e?yt(t):bt(t))},t.prototype.getCurrentLocation=function(){return vt()},t}(tt);function ht(e){var t=dt(e);if(!/^\/#/.test(t))return window.location.replace(N(e+"/#"+t)),!0}function mt(){var e=vt();return"/"===e.charAt(0)||(bt("/"+e),!1)}function vt(){var e=window.location.href,t=e.indexOf("#");return t<0?"":(e=e.slice(t+1),e)}function gt(e){var t=window.location.href,n=t.indexOf("#"),r=n>=0?t.slice(0,n):t;return r+"#"+e}function yt(e){Ie?Re(gt(e)):window.location.hash=e}function bt(e){Ie?Me(gt(e)):window.location.replace(gt(e))}var _t=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var e=t.current;t.index=n,t.updateRoute(r),t.router.afterHooks.forEach((function(t){t&&t(r,e)}))}),(function(e){Qe(e,He.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(tt),wt=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=he(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!Ie&&!1!==e.fallback,this.fallback&&(t="hash"),ue||(t="abstract"),this.mode=t,t){case"history":this.history=new ft(this,e.base);break;case"hash":this.history=new pt(this,e.base,this.fallback);break;case"abstract":this.history=new _t(this,e.base);break;default:0}},xt={currentRoute:{configurable:!0}};function Ct(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function Et(e,t,n){var r="hash"===n?"#"+t:t;return e?N(e+"/"+r):r}wt.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},xt.currentRoute.get=function(){return this.history&&this.history.current},wt.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof ft||n instanceof pt){var r=function(e){var r=n.current,i=t.options.scrollBehavior,o=Ie&&i;o&&"fullPath"in e&&Ee(t,e,r,!1)},i=function(e){n.setupListeners(),r(e)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},wt.prototype.beforeEach=function(e){return Ct(this.beforeHooks,e)},wt.prototype.beforeResolve=function(e){return Ct(this.resolveHooks,e)},wt.prototype.afterEach=function(e){return Ct(this.afterHooks,e)},wt.prototype.onReady=function(e,t){this.history.onReady(e,t)},wt.prototype.onError=function(e){this.history.onError(e)},wt.prototype.push=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!==typeof Promise)return new Promise((function(t,n){r.history.push(e,t,n)}));this.history.push(e,t,n)},wt.prototype.replace=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!==typeof Promise)return new Promise((function(t,n){r.history.replace(e,t,n)}));this.history.replace(e,t,n)},wt.prototype.go=function(e){this.history.go(e)},wt.prototype.back=function(){this.go(-1)},wt.prototype.forward=function(){this.go(1)},wt.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},wt.prototype.resolve=function(e,t,n){t=t||this.history.current;var r=ee(e,t,n,this),i=this.match(r,t),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=Et(a,o,this.mode);return{location:r,route:i,href:s,normalizedTo:r,resolved:i}},wt.prototype.getRoutes=function(){return this.matcher.getRoutes()},wt.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},wt.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(wt.prototype,xt),wt.install=le,wt.version="3.5.1",wt.isNavigationFailure=Qe,wt.NavigationFailureType=He,wt.START_LOCATION=g,ue&&window.Vue&&window.Vue.use(wt),t["a"]=wt},"8df4":function(e,t,n){"use strict";var r=n("7a77");function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e,t=new i((function(t){e=t}));return{token:t,cancel:e}},e.exports=i},"91fb":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="heart",o=512,a=512,s=[],l="f004",u="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faHeart=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},"9e52":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="arrow-up",o=448,a=512,s=[],l="f062",u="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faArrowUp=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},a14b:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="chevron-up",o=448,a=512,s=[],l="f077",u="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faChevronUp=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},a206:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="arrow-down",o=448,a=512,s=[],l="f063",u="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faArrowDown=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},ab8b:function(e,t,n){},ad3d:function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return x}));var r=n("ecee"),i="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{};function o(e,t){return t={exports:{}},e(t,t.exports),t.exports}var a=o((function(e){(function(t){var n=function(e,t,r){if(!u(t)||f(t)||d(t)||p(t)||l(t))return t;var i,o=0,a=0;if(c(t))for(i=[],a=t.length;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},f=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(t.children||[]).map(m.bind(null,e)),o=Object.keys(t.attributes||{}).reduce((function(e,n){var r=t.attributes[n];switch(n){case"class":e["class"]=p(r);break;case"style":e["style"]=d(r);break;default:e.attrs[n]=r}return e}),{class:{},style:{},attrs:{}}),a=r.class,s=void 0===a?{}:a,l=r.style,f=void 0===l?{}:l,v=r.attrs,g=void 0===v?{}:v,y=c(r,["class","style","attrs"]);return"string"===typeof t?t:e(t.tag,u({class:h(o.class,s),style:u({},o.style,f),attrs:u({},o.attrs,g)},y,{props:n}),i)}var v=!1;try{v=!0}catch(C){}function g(){var e;!v&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}function y(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?l({},e,t):{}}function b(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},l(t,"fa-"+e.size,null!==e.size),l(t,"fa-rotate-"+e.rotation,null!==e.rotation),l(t,"fa-pull-"+e.pull,null!==e.pull),l(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(n).map((function(e){return n[e]?e:null})).filter((function(e){return e}))}function _(e,t){var n=0===(e||"").length?[]:[e];return n.concat(t).join(" ")}function w(e){return r["d"].icon?r["d"].icon(e):null===e?null:"object"===("undefined"===typeof e?"undefined":s(e))&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}var x={name:"FontAwesomeIcon",functional:!0,props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(e){return["horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1}},render:function(e,t){var n=t.props,i=n.icon,o=n.mask,a=n.symbol,s=n.title,l=w(i),c=y("classes",b(n)),f=y("transform","string"===typeof n.transform?r["d"].transform(n.transform):n.transform),d=y("mask",w(o)),p=Object(r["b"])(l,u({},c,f,d,{symbol:a,title:s}));if(!p)return g("Could not find one or more icon(s)",l,d);var h=p.abstract,v=m.bind(null,e);return v(h[0],{},t.data)}};Boolean,Boolean}).call(this,n("c8ba"))},adbc:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="exclamation-circle",o=512,a=512,s=[],l="f06a",u="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faExclamationCircle=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},af2b:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="sun",o=512,a=512,s=[],l="f185",u="M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faSun=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},b50d:function(e,t,n){"use strict";var r=n("c532"),i=n("467f"),o=n("7aac"),a=n("30b5"),s=n("83b9"),l=n("c345"),u=n("3934"),c=n("2d83");e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var v=s(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),a(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in p?l(p.getAllResponseHeaders()):null,o=e.responseType&&"text"!==e.responseType?p.response:p.responseText,a={data:o,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};i(t,n,a),p=null}},p.onabort=function(){p&&(n(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||u(v))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){"undefined"===typeof f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(y){if("json"!==e.responseType)throw y}"function"===typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),f||(f=null),p.send(f)}))}},ba01:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="box",o=512,a=512,s=[],l="f466",u="M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faBox=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},bc3a:function(e,t,n){e.exports=n("cee4")},bf13:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="leaf",o=576,a=512,s=[],l="f06c",u="M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faLeaf=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},c345:function(e,t,n){"use strict";var r=n("c532"),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,a={};return e?(r.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},c401:function(e,t,n){"use strict";var r=n("c532");e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},c532:function(e,t,n){"use strict";var r=n("1d2b"),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function l(e){return"[object ArrayBuffer]"===i.call(e)}function u(e){return"undefined"!==typeof FormData&&e instanceof FormData}function c(e){var t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function f(e){return"string"===typeof e}function d(e){return"number"===typeof e}function p(e){return null!==e&&"object"===typeof e}function h(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function m(e){return"[object Date]"===i.call(e)}function v(e){return"[object File]"===i.call(e)}function g(e){return"[object Blob]"===i.call(e)}function y(e){return"[object Function]"===i.call(e)}function b(e){return p(e)&&y(e.pipe)}function _(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function w(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function C(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!r;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,r="/"===a.charAt(0))}return t=n(i(t.split("/"),(function(e){return!!e})),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),a="/"===o(e,-1);return e=n(i(e.split("/"),(function(e){return!!e})),!r).join("/"),e||r||(e="."),e&&a&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),o=r(n.split("/")),a=Math.min(i.length,o.length),s=a,l=0;l=1;--o)if(t=e.charCodeAt(o),47===t){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(47!==s)-1===r&&(i=!1,r=a+1),46===s?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=a+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("4362"))},e683:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},ecee:function(e,t,n){"use strict";(function(e){ /*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -var r={prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"]}},c345:function(e,t,n){"use strict";var r=n("c532"),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,a={};return e?(r.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}})),a):a}},c401:function(e,t,n){"use strict";var r=n("c532");e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},c532:function(e,t,n){"use strict";var r=n("1d2b"),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function l(e){return"[object ArrayBuffer]"===i.call(e)}function u(e){return"undefined"!==typeof FormData&&e instanceof FormData}function c(e){var t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function f(e){return"string"===typeof e}function d(e){return"number"===typeof e}function p(e){return null!==e&&"object"===typeof e}function h(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function m(e){return"[object Date]"===i.call(e)}function v(e){return"[object File]"===i.call(e)}function g(e){return"[object Blob]"===i.call(e)}function y(e){return"[object Function]"===i.call(e)}function b(e){return p(e)&&y(e.pipe)}function _(e){return"undefined"!==typeof URLSearchParams&&e instanceof URLSearchParams}function w(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"===typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function C(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e){"string"!==typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!r;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,r="/"===a.charAt(0))}return t=n(i(t.split("/"),(function(e){return!!e})),!r).join("/"),(r?"/":"")+t||"."},t.normalize=function(e){var r=t.isAbsolute(e),a="/"===o(e,-1);return e=n(i(e.split("/"),(function(e){return!!e})),!r).join("/"),e||r||(e="."),e&&a&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0;n--)if(""!==e[n])break;return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),o=r(n.split("/")),a=Math.min(i.length,o.length),s=a,l=0;l=1;--o)if(t=e.charCodeAt(o),47===t){if(!i){r=o;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=r(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!==typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(47!==s)-1===r&&(i=!1,r=a+1),46===s?-1===t?t=a:1!==o&&(o=1):-1!==t&&(o=-1);else if(!i){n=a+1;break}}return-1===t||-1===r||0===o||1===o&&t===r-1&&t===n+1?"":e.slice(t,r)};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n("4362"))},e683:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},ecee:function(e,t,n){"use strict";(function(e){ -/*! - * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ function r(e){return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return T.head.insertBefore(t,r),e}}var _e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function we(){var e=12,t="";while(e-- >0)t+=_e[62*Math.random()|0];return t}function xe(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ce(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(xe(e[n]),'" ')}),"").trim()}function Ee(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n],";")}),"")}function Te(e){return e.size!==ye.size||e.x!==ye.x||e.y!==ye.y||e.rotate!==ye.rotate||e.flipX||e.flipY}function ke(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),a="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:l,path:u}}function Ae(e){var t=e.transform,n=e.width,r=void 0===n?N:n,i=e.height,o=void 0===i?N:i,a=e.startCentered,s=void 0!==a&&a,l="";return l+=s&&S?"translate(".concat(t.x/ge-r/2,"em, ").concat(t.y/ge-o/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/ge,"em), calc(-50% + ").concat(t.y/ge,"em)) "):"translate(".concat(t.x/ge,"em, ").concat(t.y/ge,"em) "),l+="scale(".concat(t.size/ge*(t.flipX?-1:1),", ").concat(t.size/ge*(t.flipY?-1:1),") "),l+="rotate(".concat(t.rotate,"deg) "),l}var Se={x:0,y:0,width:"100%",height:"100%"};function Oe(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function Ne(e){return"g"===e.tag?e.children:[e]}function je(e){var t=e.children,n=e.attributes,r=e.main,i=e.mask,o=e.maskId,a=e.transform,s=r.width,u=r.icon,c=i.width,f=i.icon,d=ke({transform:a,containerWidth:c,iconWidth:s}),p={tag:"rect",attributes:l({},Se,{fill:"white"})},h=u.children?{children:u.children.map(Oe)}:{},m={tag:"g",attributes:l({},d.inner),children:[Oe(l({tag:u.tag,attributes:l({},u.attributes,d.path)},h))]},v={tag:"g",attributes:l({},d.outer),children:[m]},g="mask-".concat(o||we()),y="clip-".concat(o||we()),b={tag:"mask",attributes:l({},Se,{id:g,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,v]},_={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:Ne(f)},b]};return t.push(_,{tag:"rect",attributes:l({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(g,")")},Se)}),{children:t,attributes:n}}function De(e){var t=e.children,n=e.attributes,r=e.main,i=e.transform,o=e.styles,a=Ee(o);if(a.length>0&&(n["style"]=a),Te(i)){var s=ke({transform:i,containerWidth:r.width,iconWidth:r.width});t.push({tag:"g",attributes:l({},s.outer),children:[{tag:"g",attributes:l({},s.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:l({},r.icon.attributes,s.path)}]}]})}else t.push(r.icon);return{children:t,attributes:n}}function Le(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,o=e.styles,a=e.transform;if(Te(a)&&n.found&&!r.found){var s=n.width,u=n.height,c={x:s/u/2,y:.5};i["style"]=Ee(l({},o,{"transform-origin":"".concat(c.x+a.x/16,"em ").concat(c.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}function Pe(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,o=e.symbol,a=!0===o?"".concat(t,"-").concat(z.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:l({},i,{id:a}),children:r}]}]}function Ie(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,o=e.iconName,a=e.transform,s=e.symbol,u=e.title,c=e.maskId,f=e.titleId,d=e.extra,p=e.watchable,h=void 0!==p&&p,m=r.found?r:n,v=m.width,g=m.height,y="fak"===i,b=y?"":"fa-w-".concat(Math.ceil(v/g*16)),_=[z.replacementClass,o?"".concat(z.familyPrefix,"-").concat(o):"",b].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),w={children:[],attributes:l({},d.attributes,{"data-prefix":i,"data-icon":o,class:_,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(v," ").concat(g)})},x=y&&!~d.classes.indexOf("fa-fw")?{width:"".concat(v/g*16*.0625,"em")}:{};h&&(w.attributes[L]=""),u&&w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||we())},children:[u]});var C=l({},w,{prefix:i,iconName:o,main:n,mask:r,maskId:c,transform:a,symbol:s,styles:l({},x,d.styles)}),E=r.found&&n.found?je(C):De(C),T=E.children,k=E.attributes;return C.children=T,C.attributes=k,s?Pe(C):Le(C)}function Re(e){var t=e.content,n=e.width,r=e.height,i=e.transform,o=e.title,a=e.extra,s=e.watchable,u=void 0!==s&&s,c=l({},a.attributes,o?{title:o}:{},{class:a.classes.join(" ")});u&&(c[L]="");var f=l({},a.styles);Te(i)&&(f["transform"]=Ae({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f["transform"]);var d=Ee(f);d.length>0&&(c["style"]=d);var p=[];return p.push({tag:"span",attributes:c,children:[t]}),o&&p.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),p}var Me=function(){},$e=(z.measurePerformance&&k&&k.mark&&k.measure,function(e,t){return function(n,r,i,o){return e.call(t,n,r,i,o)}}),He=function(e,t,n,r){var i,o,a,s=Object.keys(e),l=s.length,u=void 0!==r?$e(t,r):t;for(void 0===n?(i=1,a=e[s[0]]):(i=0,a=n);i2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,i=void 0!==r&&r,o=Object.keys(t).reduce((function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e}),{});"function"!==typeof W.hooks.addPack||i?W.styles[e]=l({},W.styles[e]||{},o):W.hooks.addPack(e,o),"fas"===e&&qe("fa",t)}var Fe=W.styles,Be=W.shims,ze=function(){var e=function(e){return He(Fe,(function(t,n,r){return t[r]=He(n,e,{}),t}),{})};e((function(e,t,n){return t[3]&&(e[t[3]]=n),e})),e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in Fe;He(Be,(function(e,n){var r=n[0],i=n[1],o=n[2];return"far"!==i||t||(i="fas"),e[r]={prefix:i,iconName:o},e}),{})};ze();W.styles;function Ue(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function We(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,i=e.children,o=void 0===i?[]:i;return"string"===typeof e?xe(e):"<".concat(t," ").concat(Ce(r),">").concat(o.map(We).join(""),"")}var Ve=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],i=n.slice(1).join("-");if(r&&"h"===i)return e.flipX=!0,e;if(r&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i;break}return e}),t):t};function Xe(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}Xe.prototype=Object.create(Error.prototype),Xe.prototype.constructor=Xe;var Qe={fill:"currentColor"},Ye={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Ke=(l({},Qe,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),l({},Ye,{attributeName:"opacity"}));l({},Qe,{cx:"256",cy:"364",r:"28"}),l({},Ye,{attributeName:"r",values:"28;14;28;28;14;28;"}),l({},Ke,{values:"1;0;1;1;0;1;"}),l({},Qe,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),l({},Ke,{values:"1;0;0;0;0;1;"}),l({},Qe,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),l({},Ke,{values:"0;0;1;1;0;0;"}),W.styles;function Ge(e){var t=e[0],n=e[1],r=e.slice(4),i=u(r,1),o=i[0],a=null;return a=Array.isArray(o)?{tag:"g",attributes:{class:"".concat(z.familyPrefix,"-").concat(R.GROUP)},children:[{tag:"path",attributes:{class:"".concat(z.familyPrefix,"-").concat(R.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(z.familyPrefix,"-").concat(R.PRIMARY),fill:"currentColor",d:o[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:t,height:n,icon:a}}W.styles;var Je='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';function Ze(){var e=j,t=D,n=z.familyPrefix,r=z.replacementClass,i=Je;if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),a=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var et=function(){function e(){i(this,e),this.definitions={}}return a(e,[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:rt(t||{}),i=n.mask;return i&&(i=(i||{}).icon?i:rt(i||{})),e(r,l({},n,{mask:i}))}}var ot=new et,at=!1,st={transform:function(e){return Ve(e)}},lt=it((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ye:n,i=t.symbol,o=void 0!==i&&i,a=t.mask,s=void 0===a?null:a,u=t.maskId,c=void 0===u?null:u,f=t.title,d=void 0===f?null:f,p=t.titleId,h=void 0===p?null:p,m=t.classes,v=void 0===m?[]:m,g=t.attributes,y=void 0===g?{}:g,b=t.styles,_=void 0===b?{}:b;if(e){var w=e.prefix,x=e.iconName,C=e.icon;return nt(l({type:"icon"},e),(function(){return tt(),z.autoA11y&&(d?y["aria-labelledby"]="".concat(z.replacementClass,"-title-").concat(h||we()):(y["aria-hidden"]="true",y["focusable"]="false")),Ie({icons:{main:Ge(C),mask:s?Ge(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:w,iconName:x,transform:l({},ye,r),symbol:o,title:d,maskId:c,titleId:h,extra:{attributes:y,styles:_,classes:v}})}))}})),ut=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ye:n,i=t.title,o=void 0===i?null:i,a=t.classes,s=void 0===a?[]:a,u=t.attributes,f=void 0===u?{}:u,d=t.styles,p=void 0===d?{}:d;return nt({type:"text",content:e},(function(){return tt(),Re({content:e,transform:l({},ye,r),title:o,extra:{attributes:f,styles:p,classes:["".concat(z.familyPrefix,"-layers-text")].concat(c(s))}})}))}}).call(this,n("c8ba"))},f0bd:function(e,t,n){"use strict";n.r(t),function(e){ @@ -75,4 +70,4 @@ function r(e){return r="function"===typeof Symbol&&"symbol"===typeof Symbol.iter * SOFTWARE. */ var n="undefined"!==typeof window&&"undefined"!==typeof document&&"undefined"!==typeof navigator,r=function(){for(var e=["Edge","Trident","Firefox"],t=0;t=0)return 1;return 0}();function i(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}function o(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),r))}}var a=n&&window.Promise,s=a?i:o;function l(e){var t={};return e&&"[object Function]"===t.toString.call(e)}function u(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView,r=n.getComputedStyle(e,null);return t?r[t]:r}function c(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function f(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=u(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:f(c(e))}function d(e){return e&&e.referenceNode?e.referenceNode:e}var p=n&&!(!window.MSInputMethodContext||!document.documentMode),h=n&&/MSIE 10/.test(navigator.userAgent);function m(e){return 11===e?p:10===e?h:p||h}function v(e){if(!e)return document.documentElement;var t=m(10)?document.body:null,n=e.offsetParent||null;while(n===t&&e.nextElementSibling)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===u(n,"position")?v(n):n:e?e.ownerDocument.documentElement:document.documentElement}function g(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||v(e.firstElementChild)===e)}function y(e){return null!==e.parentNode?y(e.parentNode):e}function b(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var a=o.commonAncestorContainer;if(e!==a&&t!==a||r.contains(i))return g(a)?a:v(a);var s=y(e);return s.host?b(s.host,t):b(e,y(t).host)}function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",r=e.nodeName;if("BODY"===r||"HTML"===r){var i=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||i;return o[n]}return e[n]}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=_(t,"top"),i=_(t,"left"),o=n?-1:1;return e.top+=r*o,e.bottom+=r*o,e.left+=i*o,e.right+=i*o,e}function x(e,t){var n="x"===t?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+r+"Width"])}function C(e,t,n,r){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],m(10)?parseInt(n["offset"+e])+parseInt(r["margin"+("Height"===e?"Top":"Left")])+parseInt(r["margin"+("Height"===e?"Bottom":"Right")]):0)}function E(e){var t=e.body,n=e.documentElement,r=m(10)&&getComputedStyle(n);return{height:C("Height",t,n,r),width:C("Width",t,n,r)}}var T=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},k=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],r=m(10),i="HTML"===t.nodeName,o=N(e),a=N(t),s=f(e),l=u(t),c=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&i&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var p=O({top:o.top-a.top-c,left:o.left-a.left-d,width:o.width,height:o.height});if(p.marginTop=0,p.marginLeft=0,!r&&i){var h=parseFloat(l.marginTop),v=parseFloat(l.marginLeft);p.top-=c-h,p.bottom-=c-h,p.left-=d-v,p.right-=d-v,p.marginTop=h,p.marginLeft=v}return(r&&!n?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(p=w(p,t)),p}function D(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,r=j(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),a=t?0:_(n),s=t?0:_(n,"left"),l={top:a-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:o};return O(l)}function L(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===u(e,"position"))return!0;var n=c(e);return!!n&&L(n)}function P(e){if(!e||!e.parentElement||m())return document.documentElement;var t=e.parentElement;while(t&&"none"===u(t,"transform"))t=t.parentElement;return t||document.documentElement}function I(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},a=i?P(e):b(e,d(t));if("viewport"===r)o=D(a,i);else{var s=void 0;"scrollParent"===r?(s=f(c(t)),"BODY"===s.nodeName&&(s=e.ownerDocument.documentElement)):s="window"===r?e.ownerDocument.documentElement:r;var l=j(s,a,i);if("HTML"!==s.nodeName||L(a))o=l;else{var u=E(e.ownerDocument),p=u.height,h=u.width;o.top+=l.top-l.marginTop,o.bottom=p+l.top,o.left+=l.left-l.marginLeft,o.right=h+l.left}}n=n||0;var m="number"===typeof n;return o.left+=m?n:n.left||0,o.top+=m?n:n.top||0,o.right-=m?n:n.right||0,o.bottom-=m?n:n.bottom||0,o}function R(e){var t=e.width,n=e.height;return t*n}function M(e,t,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=I(n,r,o,i),s={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},l=Object.keys(s).map((function(e){return S({key:e},s[e],{area:R(s[e])})})).sort((function(e,t){return t.area-e.area})),u=l.filter((function(e){var t=e.width,r=e.height;return t>=n.clientWidth&&r>=n.clientHeight})),c=u.length>0?u[0].key:l[0].key,f=e.split("-")[1];return c+(f?"-"+f:"")}function $(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=r?P(t):b(t,d(n));return j(n,i,r)}function H(e){var t=e.ownerDocument.defaultView,n=t.getComputedStyle(e),r=parseFloat(n.marginTop||0)+parseFloat(n.marginBottom||0),i=parseFloat(n.marginLeft||0)+parseFloat(n.marginRight||0),o={width:e.offsetWidth+i,height:e.offsetHeight+r};return o}function q(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function F(e,t,n){n=n.split("-")[0];var r=H(e),i={width:r.width,height:r.height},o=-1!==["right","left"].indexOf(n),a=o?"top":"left",s=o?"left":"top",l=o?"height":"width",u=o?"width":"height";return i[a]=t[a]+t[l]/2-r[l]/2,i[s]=n===s?t[s]-r[u]:t[q(s)],i}function B(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===n}));var r=B(e,(function(e){return e[t]===n}));return e.indexOf(r)}function U(e,t,n){var r=void 0===n?e:e.slice(0,z(e,"name",n));return r.forEach((function(e){e["function"]&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e["function"]||e.fn;e.enabled&&l(n)&&(t.offsets.popper=O(t.offsets.popper),t.offsets.reference=O(t.offsets.reference),t=n(t,e))})),t}function W(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=$(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=F(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=U(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function V(e,t){return e.some((function(e){var n=e.name,r=e.enabled;return r&&n===t}))}function X(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;ra[h]&&(e.offsets.popper[d]+=s[d]+m-a[h]),e.offsets.popper=O(e.offsets.popper);var v=s[d]+s[c]/2-m/2,g=u(e.instance.popper),y=parseFloat(g["margin"+f]),b=parseFloat(g["border"+f+"Width"]),_=v-e.offsets.popper[d]-y-b;return _=Math.max(Math.min(a[c]-m,_),0),e.arrowElement=r,e.offsets.arrow=(n={},A(n,d,Math.round(_)),A(n,p,""),n),e}function fe(e){return"end"===e?"start":"start"===e?"end":e}var de=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],pe=de.slice(3);function he(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=pe.indexOf(e),r=pe.slice(n+1).concat(pe.slice(0,n));return t?r.reverse():r}var me={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function ve(e,t){if(V(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=I(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split("-")[0],i=q(r),o=e.placement.split("-")[1]||"",a=[];switch(t.behavior){case me.FLIP:a=[r,i];break;case me.CLOCKWISE:a=he(r);break;case me.COUNTERCLOCKWISE:a=he(r,!0);break;default:a=t.behavior}return a.forEach((function(s,l){if(r!==s||a.length===l+1)return e;r=e.placement.split("-")[0],i=q(r);var u=e.offsets.popper,c=e.offsets.reference,f=Math.floor,d="left"===r&&f(u.right)>f(c.left)||"right"===r&&f(u.left)f(c.top)||"bottom"===r&&f(u.top)f(n.right),m=f(u.top)f(n.bottom),g="left"===r&&p||"right"===r&&h||"top"===r&&m||"bottom"===r&&v,y=-1!==["top","bottom"].indexOf(r),b=!!t.flipVariations&&(y&&"start"===o&&p||y&&"end"===o&&h||!y&&"start"===o&&m||!y&&"end"===o&&v),_=!!t.flipVariationsByContent&&(y&&"start"===o&&h||y&&"end"===o&&p||!y&&"start"===o&&v||!y&&"end"===o&&m),w=b||_;(d||g||w)&&(e.flipped=!0,(d||g)&&(r=a[l+1]),w&&(o=fe(o)),e.placement=r+(o?"-"+o:""),e.offsets.popper=S({},e.offsets.popper,F(e.instance.popper,e.offsets.reference,e.placement)),e=U(e.instance.modifiers,e,"flip"))})),e}function ge(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",l=a?"left":"top",u=a?"width":"height";return n[s]o(r[s])&&(e.offsets.popper[l]=o(r[s])),e}function ye(e,t,n,r){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+i[1],a=i[2];if(!o)return e;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=r}var l=O(s);return l[t]/100*o}if("vh"===a||"vw"===a){var u=void 0;return u="vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),u/100*o}return o}function be(e,t,n,r){var i=[0,0],o=-1!==["right","left"].indexOf(r),a=e.split(/(\+|\-)/).map((function(e){return e.trim()})),s=a.indexOf(B(a,(function(e){return-1!==e.search(/,|\s/)})));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,u=-1!==s?[a.slice(0,s).concat([a[s].split(l)[0]]),[a[s].split(l)[1]].concat(a.slice(s+1))]:[a];return u=u.map((function(e,r){var i=(1===r?!o:o)?"height":"width",a=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)}),[]).map((function(e){return ye(e,i,t,n)}))})),u.forEach((function(e,t){e.forEach((function(n,r){te(n)&&(i[t]+=n*("-"===e[r-1]?-1:1))}))})),i}function _e(e,t){var n=t.offset,r=e.placement,i=e.offsets,o=i.popper,a=i.reference,s=r.split("-")[0],l=void 0;return l=te(+n)?[+n,0]:be(n,o,a,s),"left"===s?(o.top+=l[0],o.left-=l[1]):"right"===s?(o.top+=l[0],o.left+=l[1]):"top"===s?(o.left+=l[0],o.top-=l[1]):"bottom"===s&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e}function we(e,t){var n=t.boundariesElement||v(e.instance.popper);e.instance.reference===n&&(n=v(n));var r=X("transform"),i=e.instance.popper.style,o=i.top,a=i.left,s=i[r];i.top="",i.left="",i[r]="";var l=I(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=o,i.left=a,i[r]=s,t.boundaries=l;var u=t.priority,c=e.offsets.popper,f={primary:function(e){var n=c[e];return c[e]l[e]&&!t.escapeWithReference&&(r=Math.min(c[n],l[e]-("right"===e?c.width:c.height))),A({},n,r)}};return u.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";c=S({},c,f[t](e))})),e.offsets.popper=c,e}function xe(e){var t=e.placement,n=t.split("-")[0],r=t.split("-")[1];if(r){var i=e.offsets,o=i.reference,a=i.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",u=s?"width":"height",c={start:A({},l,o[l]),end:A({},l,o[l]+o[u]-a[u])};e.offsets.popper=S({},a,c[r])}return e}function Ce(e){if(!ue(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=B(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};T(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=s(this.update.bind(this)),this.options=S({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(S({},e.Defaults.modifiers,i.modifiers)).forEach((function(t){r.options.modifiers[t]=S({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return S({name:e},r.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&l(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)})),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return k(e,[{key:"update",value:function(){return W.call(this)}},{key:"destroy",value:function(){return Q.call(this)}},{key:"enableEventListeners",value:function(){return J.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();Ae.Utils=("undefined"!==typeof window?window:e).PopperUtils,Ae.placements=de,Ae.Defaults=ke,t["default"]=Ae}.call(this,n("c8ba"))},f303:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="temperature-high",o=512,a=512,s=[],l="f769",u="M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faTemperatureHigh=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u},f6b4:function(e,t,n){"use strict";var r=n("c532");function i(){this.handlers=[]}i.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},fdca:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="fas",i="thermometer-half",o=256,a=512,s=[],l="f2c9",u="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z";t.definition={prefix:r,iconName:i,icon:[o,a,s,l,u]},t.faThermometerHalf=t.definition,t.prefix=r,t.iconName=i,t.width=o,t.height=a,t.ligatures=s,t.unicode=l,t.svgPathData=u}}]); -//# sourceMappingURL=chunk-vendors.af4765ba.js.map \ No newline at end of file +//# sourceMappingURL=chunk-vendors.35669cb4.js.map \ No newline at end of file diff --git a/dist/js/chunk-vendors.35669cb4.js.map b/dist/js/chunk-vendors.35669cb4.js.map new file mode 100644 index 0000000000..9ceffd406f --- /dev/null +++ b/dist/js/chunk-vendors.35669cb4.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faGift.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faClock.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faHeart.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faExclamationCircle.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faSun.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBox.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faLeaf.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.js"],"names":["utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","this","defaults","interceptors","request","response","prototype","config","arguments","url","method","toLowerCase","chain","undefined","promise","Promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","push","length","then","shift","getUri","params","paramsSerializer","replace","data","module","exports","callback","arr","apply","global","factory","document","w","Error","window","noGlobal","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","map","elem","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","expando","Math","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackInverse","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","_","flag","Identity","v","Thrower","ex","adoptValue","reject","noValue","fail","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","err","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","bind","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","iconName","ligatures","unicode","svgPathData","definition","icon","faGift","thisArg","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","stringify","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isRegExp","isValidArrayIndex","floor","isPromise","toNumber","makeMap","str","expectsLowerCase","isReservedAttribute","hit","camelizeRE","camelize","c","capitalize","charAt","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","_length","nativeBind","Function","_from","toObject","res","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","getTime","keysA","keysB","looseIndexOf","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","path","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Set","clear","Dep","subs","addSub","sub","removeSub","depend","addDep","update","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","childOb","dependArray","newVal","del","items","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","methods","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getPropDefaultValue","prevShouldObserve","default","_props","getType","isSameType","expectedTypes","handleError","info","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","MutationObserver","setImmediate","counter","observer","textNode","characterData","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","_c","d","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","ref","ensureCtor","comp","__esModule","toStringTag","errorComp","resolved","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","reason","component","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","_watchers","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","Number","created","destroyed","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","querySelector","createElement$1","tagName","multiple","createElementNS","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","number","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","classList","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","o","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","newPos","oldPos","dx","dy","platformComponents","enhanceError","__CANCEL__","encode","serializedParams","isDate","toISOString","hashmarkIndex","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","search","hostname","port","pathname","requestURL","isString","faBatteryFull","arch","execPath","title","pid","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","createError","Popper","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","assign","_inheritsLoose","subClass","superClass","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","getSpecialTransitionEndEvent","transitionEndEmulator","_this","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","getUID","getSelectorFromElement","element","hrefAttr","getTransitionDurationFromElement","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","isElement","typeCheckConfig","componentName","configTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","_proto","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","NAME$1","VERSION$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY$1","JQUERY_NO_CONFLICT$1","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API$1","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","shouldAvoidTriggerChange","triggerChangeEvent","addAriaPressed","avoidTriggerChange","initialButton","inputBtn","_len","_button","NAME$2","VERSION$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY$2","JQUERY_NO_CONFLICT$2","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","keyboard","slide","pause","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$1","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE$1","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","move","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","VERSION$3","DATA_KEY$3","EVENT_KEY$3","DATA_API_KEY$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API$3","CLASS_NAME_SHOW$1","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","capitalizedDimension","scrollSize","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","NAME$4","VERSION$4","DATA_KEY$4","EVENT_KEY$4","DATA_API_KEY$4","JQUERY_NO_CONFLICT$4","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK","EVENT_CLICK_DATA_API$4","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW$2","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE$2","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$2","flip","boundary","reference","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","scheduleUpdate","_getPlacement","$parentDropdown","placement","_getOffset","offsets","enabled","preventOverflow","boundariesElement","applyStyle","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","NAME$5","VERSION$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$5","JQUERY_NO_CONFLICT$5","ESCAPE_KEYCODE$1","Default$3","backdrop","DefaultType$3","EVENT_HIDE$2","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$5","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$3","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","scrollDiv","scrollbarWidth","clientWidth","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","area","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","small","span","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","NAME$6","VERSION$6","DATA_KEY$6","EVENT_KEY$6","JQUERY_NO_CONFLICT$6","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$4","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_leave","getTipElement","_hideModalHandler","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","instance","popper","initConfigAnimation","NAME$7","VERSION$7","DATA_KEY$7","EVENT_KEY$7","JQUERY_NO_CONFLICT$7","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$5","SELECTOR_TITLE","SELECTOR_CONTENT","Event$1","Popover","_Tooltip","_getContent","NAME$8","VERSION$8","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$6","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API$2","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$2","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","scrollSpys","scrollSpysLength","$spy","NAME$9","VERSION$9","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$7","JQUERY_NO_CONFLICT$9","EVENT_HIDE$3","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_CLICK_DATA_API$6","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE$3","CLASS_NAME_DISABLED$1","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$6","SELECTOR_DROPDOWN$1","SELECTOR_NAV_LIST_GROUP$1","SELECTOR_ACTIVE$2","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE$4","SELECTOR_DROPDOWN_TOGGLE$1","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","hiddenEvent","activeElements","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","NAME$a","VERSION$a","DATA_KEY$a","EVENT_KEY$a","JQUERY_NO_CONFLICT$a","EVENT_CLICK_DISMISS$1","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","CLASS_NAME_FADE$5","CLASS_NAME_HIDE","CLASS_NAME_SHOW$7","CLASS_NAME_SHOWING","DefaultType$7","autohide","Default$7","SELECTOR_DATA_DISMISS$1","Toast","_clearTimeout","_close","Scrollspy","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","faClock","payload","faTemperatureLow","Cancel","write","expires","domain","secure","cookie","isNumber","toGMTString","read","decodeURIComponent","faBatteryQuarter","isAbsoluteURL","combineURLs","baseURL","requestedURL","faBatteryEmpty","faExclamationTriangle","faChevronDown","faBatteryHalf","condition","encodeReserveRE","encodeReserveReplacer","commaRE","decode","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","stringifyQuery","val2","x","trailingSlashRE","createRoute","record","redirectedFrom","router","route","meta","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","View","routerView","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","encodeAsterisk","flags","pretty","attachKeys","re","sensitive","regexpToRegexp","arrayToRegexp","regexp","stringToRegexp","strict","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","required","custom","exact","exactPath","exactActiveClass","ariaCurrentValue","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","installed","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","toFixed","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","y","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","ua","pushState","runQueue","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","History","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","VueRouter","apps","registerHook","createHref","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","back","getMatchedComponents","normalizedTo","START_LOCATION","CancelToken","executor","resolvePromise","cancel","faHeart","faArrowUp","faChevronUp","faArrowDown","commonjsGlobal","createCommonjsModule","humps","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","output","_isArray","separateWords","separator","_isNumerical","chr","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_typeof","objectWithoutProperties","toConsumableArray","arr2","styleToObject","reduce","acc","pair","classToObject","combineClassObjects","objs","_data$class","dClass","_data$style","dStyle","_data$attrs","dAttrs","remainingData","PRODUCTION","log","_console","objectWithKey","_classes","spin","pulse","fixedWidth","listItem","inverse","size","rotation","pull","swapOpacity","addStaticClass","normalizeIconArgs","icon$$1","FontAwesomeIcon","validator","mask","iconArgs","maskArgs","renderedIcon","convertCurry","faExclamationCircle","faSun","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","auth","unescape","Authorization","btoa","responseURL","responseData","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","faBox","faLeaf","ignoreDuplicateOf","line","FormData","ArrayBuffer","isView","URLSearchParams","product","assignValue","stripBOM","faBatteryThreeQuarters","g","createInstance","defaultConfig","axios","all","promises","spread","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","f","resolvedAbsolute","isAbsolute","trailingSlash","paths","fromParts","toParts","min","samePartsLength","outputParts","sep","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","relativeURL","_classCallCheck","_defineProperty","_objectSpread","getOwnPropertySymbols","sym","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_arr","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","_ref","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","FontAwesomeConfig","getAttrConfig","coerce","_ref2","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","shims","functions","listener","loaded","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","rejectPromise","invokeCallback","subscriber","settled","_state","handleThenable","fulfill","publishFulfillment","publishRejection","publish","_then","notifyRejectionHandled","P","onFulfillment","onRejection","race","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","fill","deGroup","makeIconMasking","main","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","found","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","noop$1","bindInternal4","thisContext","subject","initialValue","defineIcons","_params$skipHooks","skipHooks","addPack","build","lookup","reducer","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","rest","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","cx","cy","r","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","debounce","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","bottom","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","setStyles","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","subtractLength","onLoad","Defaults","Utils","PopperUtils","faTemperatureHigh","eject","faThermometerHalf"],"mappings":"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","file":"js/chunk-vendors.35669cb4.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\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/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.3\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'temperature-high';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f769';\nvar svgPathData = 'M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faTemperatureHigh = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'thermometer-half';\nvar width = 256;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f2c9';\nvar svgPathData = 'M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faThermometerHalf = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/chunk-vendors.af4765ba.js.map b/dist/js/chunk-vendors.af4765ba.js.map deleted file mode 100644 index f2158b991b..0000000000 --- a/dist/js/chunk-vendors.af4765ba.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faGift.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryFull.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faTemperatureLow.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryQuarter.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryEmpty.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faExclamationTriangle.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faChevronDown.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryHalf.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faHeart.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faArrowUp.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faChevronUp.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faArrowDown.js","webpack:///./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faSun.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBox.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faLeaf.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faTemperatureHigh.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/faThermometerHalf.js"],"names":["utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","this","defaults","interceptors","request","response","prototype","config","arguments","url","method","toLowerCase","chain","undefined","promise","Promise","resolve","forEach","interceptor","unshift","fulfilled","rejected","push","length","then","shift","getUri","params","paramsSerializer","replace","data","module","exports","callback","arr","apply","global","factory","document","w","Error","window","noGlobal","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","obj","nodeType","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","map","elem","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","expando","Math","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackInverse","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","_","flag","Identity","v","Thrower","ex","adoptValue","reject","noValue","fail","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","err","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","bind","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","iconName","ligatures","unicode","svgPathData","definition","icon","faGift","thisArg","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","stringify","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isRegExp","isValidArrayIndex","floor","isPromise","toNumber","makeMap","str","expectsLowerCase","isReservedAttribute","hit","camelizeRE","camelize","c","capitalize","charAt","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","_length","nativeBind","Function","_from","toObject","res","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","getTime","keysA","keysB","looseIndexOf","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","path","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Set","clear","Dep","subs","addSub","sub","removeSub","depend","addDep","update","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","childOb","dependArray","newVal","del","items","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","methods","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getPropDefaultValue","prevShouldObserve","default","_props","getType","isSameType","expectedTypes","handleError","info","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","MutationObserver","setImmediate","counter","observer","textNode","characterData","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","_c","d","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","ref","ensureCtor","comp","__esModule","toStringTag","errorComp","resolved","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","reason","component","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","_watchers","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","Number","created","destroyed","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","querySelector","createElement$1","tagName","multiple","createElementNS","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","number","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","classList","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","o","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","newPos","oldPos","dx","dy","platformComponents","enhanceError","__CANCEL__","encode","serializedParams","isDate","toISOString","hashmarkIndex","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","search","hostname","port","pathname","requestURL","isString","faBatteryFull","arch","execPath","title","pid","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","createError","Popper","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","assign","_inheritsLoose","subClass","superClass","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","getSpecialTransitionEndEvent","transitionEndEmulator","_this","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","getUID","getSelectorFromElement","element","hrefAttr","getTransitionDurationFromElement","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","isElement","typeCheckConfig","componentName","configTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","_proto","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","NAME$1","VERSION$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY$1","JQUERY_NO_CONFLICT$1","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API$1","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","shouldAvoidTriggerChange","triggerChangeEvent","addAriaPressed","avoidTriggerChange","initialButton","inputBtn","_len","_button","NAME$2","VERSION$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY$2","JQUERY_NO_CONFLICT$2","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","keyboard","slide","pause","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$1","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE$1","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","move","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","VERSION$3","DATA_KEY$3","EVENT_KEY$3","DATA_API_KEY$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API$3","CLASS_NAME_SHOW$1","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","capitalizedDimension","scrollSize","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","NAME$4","VERSION$4","DATA_KEY$4","EVENT_KEY$4","DATA_API_KEY$4","JQUERY_NO_CONFLICT$4","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK","EVENT_CLICK_DATA_API$4","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW$2","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE$2","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$2","flip","boundary","reference","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","scheduleUpdate","_getPlacement","$parentDropdown","placement","_getOffset","offsets","enabled","preventOverflow","boundariesElement","applyStyle","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","NAME$5","VERSION$5","DATA_KEY$5","EVENT_KEY$5","DATA_API_KEY$5","JQUERY_NO_CONFLICT$5","ESCAPE_KEYCODE$1","Default$3","backdrop","DefaultType$3","EVENT_HIDE$2","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$5","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$3","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","clientHeight","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","scrollDiv","scrollbarWidth","clientWidth","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","area","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","small","span","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","NAME$6","VERSION$6","DATA_KEY$6","EVENT_KEY$6","JQUERY_NO_CONFLICT$6","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$4","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_leave","getTipElement","_hideModalHandler","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","instance","popper","initConfigAnimation","NAME$7","VERSION$7","DATA_KEY$7","EVENT_KEY$7","JQUERY_NO_CONFLICT$7","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$5","SELECTOR_TITLE","SELECTOR_CONTENT","Event$1","Popover","_Tooltip","_getContent","NAME$8","VERSION$8","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$6","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API$2","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$2","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","scrollSpys","scrollSpysLength","$spy","NAME$9","VERSION$9","DATA_KEY$9","EVENT_KEY$9","DATA_API_KEY$7","JQUERY_NO_CONFLICT$9","EVENT_HIDE$3","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_CLICK_DATA_API$6","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE$3","CLASS_NAME_DISABLED$1","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$6","SELECTOR_DROPDOWN$1","SELECTOR_NAV_LIST_GROUP$1","SELECTOR_ACTIVE$2","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE$4","SELECTOR_DROPDOWN_TOGGLE$1","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","hiddenEvent","activeElements","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","NAME$a","VERSION$a","DATA_KEY$a","EVENT_KEY$a","JQUERY_NO_CONFLICT$a","EVENT_CLICK_DISMISS$1","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","CLASS_NAME_FADE$5","CLASS_NAME_HIDE","CLASS_NAME_SHOW$7","CLASS_NAME_SHOWING","DefaultType$7","autohide","Default$7","SELECTOR_DATA_DISMISS$1","Toast","_clearTimeout","_close","Scrollspy","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","payload","faTemperatureLow","Cancel","write","expires","domain","secure","cookie","isNumber","toGMTString","read","decodeURIComponent","faBatteryQuarter","isAbsoluteURL","combineURLs","baseURL","requestedURL","faBatteryEmpty","faExclamationTriangle","faChevronDown","faBatteryHalf","condition","encodeReserveRE","encodeReserveReplacer","commaRE","decode","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","stringifyQuery","val2","x","trailingSlashRE","createRoute","record","redirectedFrom","router","route","meta","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","View","routerView","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","encodeAsterisk","flags","pretty","attachKeys","re","sensitive","regexpToRegexp","arrayToRegexp","regexp","stringToRegexp","strict","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","required","custom","exact","exactPath","exactActiveClass","ariaCurrentValue","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","installed","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","toFixed","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","y","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","ua","pushState","runQueue","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","History","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","VueRouter","apps","registerHook","createHref","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","back","getMatchedComponents","normalizedTo","START_LOCATION","CancelToken","executor","resolvePromise","cancel","faHeart","faArrowUp","faChevronUp","faArrowDown","commonjsGlobal","createCommonjsModule","humps","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","output","_isArray","separateWords","separator","_isNumerical","chr","pascalize","camelized","decamelize","_processor","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_typeof","objectWithoutProperties","toConsumableArray","arr2","styleToObject","reduce","acc","pair","classToObject","combineClassObjects","objs","_data$class","dClass","_data$style","dStyle","_data$attrs","dAttrs","remainingData","PRODUCTION","log","_console","objectWithKey","_classes","spin","pulse","fixedWidth","listItem","inverse","size","rotation","pull","swapOpacity","addStaticClass","normalizeIconArgs","icon$$1","FontAwesomeIcon","validator","mask","iconArgs","maskArgs","renderedIcon","convertCurry","faSun","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","auth","unescape","Authorization","btoa","responseURL","responseData","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","faBox","faLeaf","faClock","ignoreDuplicateOf","line","FormData","ArrayBuffer","isView","URLSearchParams","product","assignValue","stripBOM","faBatteryThreeQuarters","g","createInstance","defaultConfig","axios","all","promises","spread","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","f","resolvedAbsolute","isAbsolute","trailingSlash","paths","fromParts","toParts","min","samePartsLength","outputParts","sep","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","relativeURL","_classCallCheck","_defineProperty","_objectSpread","getOwnPropertySymbols","sym","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_arr","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","_ref","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","FontAwesomeConfig","getAttrConfig","coerce","_ref2","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","shims","functions","listener","loaded","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeResolver","resolver","rejectPromise","invokeCallback","subscriber","settled","_state","handleThenable","fulfill","publishFulfillment","publishRejection","publish","_then","notifyRejectionHandled","P","onFulfillment","onRejection","race","meaninglessTransform","rotate","flipX","flipY","insertCss","headChildren","beforeChild","idPool","nextUniqueId","htmlEscape","joinAttributes","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","ALL_SPACE","fillBlack","fill","deGroup","makeIconMasking","main","explicitMaskId","maskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconStandard","styleString","asIcon","found","asSymbol","makeInlineSvgAbstract","_params$icons","icons","titleId","_params$watchable","watchable","isUploadedIcon","widthClass","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","_params$watchable2","noop$1","bindInternal4","thisContext","subject","initialValue","defineIcons","_params$skipHooks","skipHooks","addPack","build","lookup","reducer","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","parseTransformString","transformString","rest","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","cx","cy","r","asFoundIcon","_icon$slice","_icon$slice2","vectorData","baseStyles","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","additions","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","library","resolveIcons","maybeIconDefinition","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","debounce","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","bottom","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","findIndex","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","cancelAnimationFrame","setStyles","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","subtractLength","onLoad","Defaults","Utils","PopperUtils","faTemperatureHigh","eject","faThermometerHalf"],"mappings":"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","file":"js/chunk-vendors.af4765ba.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\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/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.2\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'temperature-high';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f769';\nvar svgPathData = 'M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faTemperatureHigh = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'thermometer-half';\nvar width = 256;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f2c9';\nvar svgPathData = 'M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z';\n\nexports.definition = {\n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n\nexports.faThermometerHalf = exports.definition;\nexports.prefix = prefix;\nexports.iconName = iconName;\nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/index.59100a52.js b/dist/js/index.59100a52.js deleted file mode 100644 index 8d58645e16..0000000000 --- a/dist/js/index.59100a52.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var s,o,r=e[0],l=e[1],c=e[2],u=0,m=[];u0?a("div",{staticClass:"mb-2 value"},[t._v(" Bezug "),a("fa-icon",{staticClass:"text-primary",attrs:{icon:"arrow-down"}})],1):a("div",{staticClass:"mb-2 value"},[t._v(" Einspeisung "),a("fa-icon",{staticClass:"text-primary",attrs:{icon:"arrow-up"}})],1),a("h2",{staticClass:"value"},[t._v(" "+t._s(t.fmt(t.gridPower))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtUnit(t.gridPower))+"W")])])]):t._e(),t.pvConfigured?a("div",{staticClass:"col-6 col-md-3 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(" Erzeugung "),a("fa-icon",{class:{"text-primary":t.pvPower>0,"text-muted":t.pvPower<=0},attrs:{icon:"sun"}})],1),a("h2",{staticClass:"value"},[t._v(" "+t._s(t.fmt(t.pvPower))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtUnit(t.pvPower))+"W")])])]):t._e(),t.batteryConfigured?a("div",{staticClass:"d-md-block col-6 col-md-3 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(" Batterie "),a("fa-icon",{staticClass:"text-primary",attrs:{icon:t.batteryIcon}})],1),a("h2",{staticClass:"value"},[t._v(" "+t._s(t.fmt(t.batteryPower))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtUnit(t.batteryPower))+"W")]),a("small",{staticClass:"text-muted"},[t._v("/")]),t._v(" "+t._s(t.batterySoC)+" "),a("small",{staticClass:"text-muted"},[t._v("%")])])]):t._e()])},wt=[],yt={data:function(){return{fmtLimit:100,fmtDigits:1}},methods:{round:function(t,e){var a=10**e;return(Math.round(t*a)/a).toFixed(e)},fmt:function(t){return void 0===t||null===t?0:(t=Math.abs(t),t>=this.fmtLimit?this.round(t/1e3,this.fmtDigits):this.round(t,0))},fmtUnit:function(t){return Math.abs(t)>=this.fmtLimit?"k":""},fmtDuration:function(t){if(t<=0||null==t)return"—";var e="0"+t%60,a="0"+Math.floor(t/60)%60,s=""+Math.floor(t/3600);return s.length<2&&(s="0"+s),s+":"+a.substr(-2)+":"+e.substr(-2)},fmtShortDuration:function(t){if(t<=0||null==t)return"—";var e,a=Math.floor(t/60)%60,s=Math.floor(t/3600);if(s>=1)a="0"+a,e=s+":"+a.substr(-2);else{var i="0"+t%60;e=a+":"+i.substr(-2)}return e},fmtShortDurationUnit:function(t){if(t<=0||null==t)return"";var e=Math.floor(t/3600);return e>=1?"h":"m"}}};const St=20,xt=["battery-empty","battery-quarter","battery-half","battery-three-quarters","battery-full"];var kt={name:"SiteDetails",props:{gridConfigured:Boolean,gridPower:Number,pvConfigured:Boolean,pvPower:Number,batteryConfigured:Boolean,batteryPower:Number,batterySoC:Number},data:function(){return{iconIdx:0}},mixins:[yt],computed:{batteryIcon:function(){return Math.abs(this.batteryPower){this.batteryPower>St?--this.iconIdx<0&&(this.iconIdx=xt.length-1):this.batteryPower=xt.length&&(this.iconIdx=0)},1e3)}},Dt=kt,Mt=Object(z["a"])(Dt,_t,wt,!1,null,null,null),Tt=Mt.exports,Pt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.multi?a("div",{staticClass:"row"},[a("div",{staticClass:"col-12 col-md-4 d-md-flex mt-3 mt-md-5 align-items-end"},[a("span",{staticClass:"h1 align-bottom"},[t._v(t._s(t.title||"Ladepunkt"))])]),a("div",{staticClass:"col-12 col-md-8 d-none d-md-block mt-3 mt-md-5"},[a("LoadpointDetails",t._b({},"LoadpointDetails",t.details,!1))],1),a("div",{staticClass:"col-12 d-md-none"},[a("div",{staticClass:"row mt-3 pb-3 bg-light"},[a("div",{staticClass:"col-12 mt-3"},[a("Mode",{staticClass:"w-100",attrs:{mode:t.mode,pvConfigured:t.pvConfigured},on:{updated:t.setTargetMode}})],1),t.hasTargetSoC?a("div",{staticClass:"col-12 mt-3"},[a("Soc",{staticClass:"w-100",attrs:{soc:t.targetSoC,levels:t.socLevels},on:{updated:t.setTargetSoC}})],1):t._e()])])]):t._e(),t.multi?t._e():a("div",{staticClass:"row d-none d-md-flex mt-5 py-3 pb-4 text-center bg-light"},[a("div",{staticClass:"mt-3",class:{"col-md-6":t.hasTargetSoC,"col-md-12":!t.hasTargetSoC}},[a("Mode",{attrs:{mode:t.mode,pvConfigured:t.pvConfigured,caption:!0},on:{updated:t.setTargetMode}})],1),t.hasTargetSoC?a("div",{staticClass:"col-md-6 mt-3"},[a("Soc",{attrs:{soc:t.targetSoC,levels:t.socLevels,caption:!0},on:{updated:t.setTargetSoC}})],1):t._e()]),t.multi?t._e():a("div",{staticClass:"row d-md-none mt-2 pb-3 bg-light"},[a("div",{staticClass:"col-12 mt-3"},[a("Mode",{staticClass:"w-100",attrs:{mode:t.mode,pvConfigured:t.pvConfigured},on:{updated:t.setTargetMode}})],1),t.hasTargetSoC?a("div",{staticClass:"col-12 mt-3"},[a("Soc",{staticClass:"w-100",attrs:{soc:t.targetSoC,levels:t.socLevels},on:{updated:t.setTargetSoC}})],1):t._e()]),t.multi?t._e():a("div",{staticClass:"row"},[a("div",{staticClass:"col-12 col-md-4 d-none d-md-flex mt-3 mt-md-5"},[a("span",{staticClass:"h1"},[t._v(t._s(t.title||"Ladepunkt"))])]),t.remoteDisabled?a("div",{staticClass:"col-12 col-md-8 d-flex d-md-flex mt-3 mt-md-5 pt-3"},[a("h5",{staticClass:"w-100"},["soft"==t.remoteDisabled?a("span",{staticClass:"badge badge-warning w-100"},[t._v(" "+t._s(t.remoteDisabledSource)+": Adaptives PV-Laden deaktiviert ")]):t._e(),"hard"==t.remoteDisabled?a("span",{staticClass:"badge badge-danger w-100"},[t._v(" "+t._s(t.remoteDisabledSource)+": Deaktiviert ")]):t._e()])]):t._e()]),a("div",{staticClass:"row border-bottom d-none d-md-block"}),a("div",{staticClass:"row"},[a("div",{staticClass:"col-12 col-md-4 mt-3 mb-3 mb-md-0"},[a("Vehicle",t._b({},"Vehicle",t.vehicle,!1))],1),t.multi?a("div",{staticClass:"col-12 col-md-4 d-none d-md-block mt-3"},[a("div",{staticClass:"mb-2"},[t._v("Modus")]),a("Mode",{staticClass:"btn-group-sm",attrs:{mode:t.mode,pvConfigured:t.pvConfigured},on:{updated:t.setTargetMode}})],1):t._e(),t.multi&&t.hasTargetSoC?a("div",{staticClass:"col-12 col-md-4 d-none d-md-block mt-3"},[a("div",{staticClass:"mb-2"},[t._v("Ladeziel")]),a("Soc",{staticClass:"btn-group-sm",attrs:{soc:t.targetSoC,levels:t.socLevels},on:{updated:t.setTargetSoC}})],1):t._e(),t.multi?t._e():a("div",{staticClass:"col-md-8 d-none d-md-block"},[a("LoadpointDetails",t._b({},"LoadpointDetails",t.details,!1))],1),a("div",{staticClass:"col-12 d-md-none"},[a("LoadpointDetails",t._b({},"LoadpointDetails",t.details,!1))],1)])])},Nt=[],Lt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"btn-group btn-group-toggle bg-white shadow-none"},[t.caption?a("label",{staticClass:"btn btn-outline-primary disabled caption font-weight-bold"},[t._v(" Ladeziel ")]):t._e(),t._l(t.levelsOrDefault,(function(e,s){return a("label",{key:s,staticClass:"btn btn-outline-primary",class:{active:t.soc==e,first:!t.caption&&0==s},attrs:{level:e,id:s}},[a("input",{attrs:{type:"radio"},domProps:{value:e},on:{click:function(a){return t.setTargetSoC(e)}}}),t._v(t._s(e)+"% ")])}))],2)},Et=[],zt={name:"Soc",props:{soc:Number,caption:Boolean,levels:Array},computed:{levelsOrDefault:function(){return null==this.levels||0==this.levels.length?[]:this.levels}},methods:{setTargetSoC:function(t){this.$emit("updated",t)}}},Bt=zt,Vt=Object(z["a"])(Bt,Lt,Et,!1,null,null,null),jt=Vt.exports,At=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"btn-group btn-group-toggle bg-white shadow-none"},[t.caption?a("label",{staticClass:"btn btn-outline-primary value disabled caption font-weight-bold"},[t._v(" Modus ")]):t._e(),a("label",{staticClass:"btn btn-outline-primary",class:{active:"off"==t.mode,first:!t.caption}},[a("input",{attrs:{type:"radio",value:"off"},on:{click:function(e){return t.setTargetMode("off")}}}),t._v("Stop ")]),a("label",{staticClass:"btn btn-outline-primary",class:{active:"now"==t.mode}},[a("input",{attrs:{type:"radio",value:"now"},on:{click:function(e){return t.setTargetMode("now")}}}),t._v("Sofort ")]),t.pvConfigured?a("label",{staticClass:"btn btn-outline-primary",class:{active:"minpv"==t.mode}},[a("input",{attrs:{type:"radio",value:"minpv"},on:{click:function(e){return t.setTargetMode("minpv")}}}),a("span",{staticClass:"d-inline d-lg-none"},[t._v("Min")]),a("span",{staticClass:"d-none d-lg-inline"},[t._v("Min + PV")])]):t._e(),t.pvConfigured?a("label",{staticClass:"btn btn-outline-primary",class:{active:"pv"==t.mode}},[a("input",{attrs:{type:"radio",value:"pv"},on:{click:function(e){return t.setTargetMode("pv")}}}),a("span",{staticClass:"d-inline d-md-none"},[t._v("PV")]),a("span",{staticClass:"d-none d-md-inline"},[t._v("Nur PV")])]):t._e()])},Ot=[],Ut={name:"Mode",props:{mode:String,pvConfigured:Boolean,caption:Boolean},methods:{setTargetMode:function(t){this.$emit("updated",t)}}},$t=Ut,It=Object(z["a"])($t,At,Ot,!1,null,null,null),Wt=It.exports,Ht=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mb-2"},[t._v(t._s(t.socTitle||"Fahrzeug"))]),a("div",{staticClass:"progress",staticStyle:{height:"24px","font-size":"100%","margin-top":"16px"}},[a("div",{staticClass:"progress-bar",class:{"progress-bar-striped":t.charging,"progress-bar-animated":t.charging,"bg-light":!t.connected,"text-secondary":!t.connected,"bg-warning":t.connected&&t.minSoCActive},style:{width:t.socChargeDisplayWidth+"%"},attrs:{role:"progressbar"}},[t._v(" "+t._s(t.socChargeDisplayValue)+" ")]),t.minSoCActive&&t.socChargeDisplayWidth<100?a("div",{staticClass:"progress-bar",class:{"progress-bar-striped":t.charging,"progress-bar-animated":t.charging,"bg-warning":!0,"bg-muted":!0},style:{width:t.minSoCRemainingDisplayWidth+"%"},attrs:{role:"progressbar"}}):t._e()])])},Rt=[],Kt={name:"Vehicle",props:{socTitle:String,connected:Boolean,charging:Boolean,hasVehicle:Boolean,socCharge:Number,minSoC:Number},computed:{socChargeDisplayWidth:function(){return this.hasVehicle&&this.socCharge>=0?this.socCharge:100},socChargeDisplayValue:function(){if(!this.hasVehicle||this.socCharge<0){let t="getrennt";return this.charging?t="laden":this.connected&&(t="verbunden"),t}let t=this.socCharge;return t>=10&&(t+="%"),t},minSoCActive:function(){return this.minSoC>0&&this.socCharge=0?a("div",{staticClass:"col-6 col-md-3 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v("Reichweite")]),a("h2",{staticClass:"value"},[t._v(" "+t._s(Math.round(t.range))+" "),a("small",{staticClass:"text-muted"},[t._v("km")])])]):a("div",{staticClass:"col-6 col-md-3 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v("Dauer")]),a("h2",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeDuration))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeDuration)))])])]),t.hasVehicle?a("div",{staticClass:"col-6 col-md-3 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v("Restzeit")]),a("h2",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeEstimate))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeEstimate)))])])]):t._e()])},qt=[],Qt={name:"LoadpointDetails",props:{chargedEnergy:Number,chargeDuration:Number,chargeEstimate:Number,chargePower:Number,climater:String,hasVehicle:Boolean,range:Number,socTimerActive:Boolean,socTimerSet:Boolean},mixins:[yt]},Xt=Qt,Yt=Object(z["a"])(Xt,Gt,qt,!1,null,null,null),te=Yt.exports,ee={methods:{collectProps:function(t){let e={};for(var a in t.props)e[a]=this[a];return e}}},ae={name:"Loadpoint",props:{id:Number,multi:Boolean,pvConfigured:Boolean,title:String,mode:String,targetSoC:Number,socLevels:Array,remoteDisabled:Boolean,remoteDisabledSource:String,chargeDuration:Number,charging:Boolean,connected:Boolean,socTitle:String,socCharge:Number,minSoC:Number,socTimerSet:Boolean,socTimerActive:Boolean,chargePower:Number,chargedEnergy:Number,hasVehicle:Boolean,climater:String,range:Number,chargeEstimate:Number},components:{LoadpointDetails:te,Soc:jt,Mode:Wt,Vehicle:Jt},mixins:[yt,ee],data:function(){return{tickerHandle:null,chargeDurationDisplayed:null}},computed:{details:function(){return this.collectProps(te)},vehicle:function(){return this.collectProps(Jt)},hasTargetSoC:function(){return null!=this.socLevels&&this.socLevels.length>0}},watch:{chargeDuration:function(){window.clearInterval(this.tickerHandle),this.charging&&this.chargeDuration>=0&&(this.chargeDurationDisplayed=this.chargeDuration,this.tickerHandle=window.setInterval(function(){this.chargeDurationDisplayed+=1}.bind(this),1e3))}},methods:{api:function(t){return"loadpoints/"+this.id+"/"+t},setTargetMode:function(t){n.a.post(this.api("mode")+"/"+t).then(function(t){this.mode=t.data.mode}.bind(this)).catch(window.toasts.error)},setTargetSoC:function(t){n.a.post(this.api("targetsoc")+"/"+t).then(function(t){this.targetSoC=t.data.targetSoC}.bind(this)).catch(window.toasts.error)}},destroyed:function(){window.clearInterval(this.tickerHandle)}},se=ae,ie=Object(z["a"])(se,Pt,Nt,!1,null,null,null),ne=ie.exports,oe={name:"Site",props:{title:String,loadpoints:Array,gridConfigured:Boolean,gridPower:Number,pvConfigured:Boolean,pvPower:Number,batteryConfigured:Boolean,batteryPower:Number,batterySoC:Number},components:{SiteDetails:Tt,Loadpoint:ne},mixins:[yt,ee],computed:{details:function(){return this.collectProps(Tt)},multi:function(){return this.loadpoints.length>1}}},re=oe,le=Object(z["a"])(re,bt,Ct,!1,null,null,null),ce=le.exports,de={name:"Main",components:{Site:ce},data:function(){return this.$root.$data.store},computed:{configured:function(){const t=window.evcc.configured;return t==window.evcc.configured||!isNaN(parseInt(t))&&parseInt(t)>0}}},ue=de,me=Object(z["a"])(ue,ft,gt,!1,null,null,null),ve=me.exports,pe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container"},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(t.title||"Home"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Netzzähler: "),t.gridConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" PV Zähler: "),t.pvConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Batteriezähler: "),t.batteryConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])])]),t._l(t.loadpoints,(function(e,s){return a("div",{key:s,attrs:{loadpoint:e,id:"loadpoint-"+s}},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(e.title||"Ladepunkt"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Ladezähler: "),e.chargeConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Phasen: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.phases)+"p")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Min. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.minCurrent)+"A")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Max. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.maxCurrent)+"A")])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-md-8 h2"},[t._m(0,!0),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-6 py-3"},[t._v(" Modell: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.socTitle||"—"))])]),a("div",{staticClass:"col-6 py-3"},[t._v(" Kapazität: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.socCapacity)+"kWh")])])])])])])}))],2)},he=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"row py-3 h2 border-bottom"},[a("div",{staticClass:"col-12"},[t._v("Fahrzeug")])])}],fe={name:"Config",data:function(){return this.$root.$data.store.state}},ge=fe,be=Object(z["a"])(ge,pe,he,!1,null,null,null),Ce=be.exports;s["a"].use(ht["a"]);const _e=[{path:"/",component:ve},{path:"/config",component:Ce}];var we=new ht["a"]({routes:_e,linkExactActiveClass:"active"});const ye=window.location;n.a.defaults.baseURL=ye.protocol+"//"+ye.hostname+(ye.port?":"+ye.port:"")+ye.pathname+"api",n.a.defaults.headers.post["Content-Type"]="application/json",window.toasts=new s["a"]({el:"#toasts",render:function(t){return t(pt,{props:{items:this.items,count:this.count}})},data:{items:{},count:0},name:"ToastsRoot",methods:{raise:function(t){let e=!1;Object.keys(this.items).forEach((function(a){let s=this.items[a];s.type==t.type&&s.message==t.message&&(e=!0)}),this),e||(t.id=this.count++,s["a"].set(this.items,t.id,t))},error:function(t){t.type="error",this.raise(t)},warn:function(t){t.type="warn",this.raise(t)},remove:function(t){s["a"].delete(this.items,t.id)}}}),new s["a"]({el:"#app",router:we,data:{store:q},render:t=>t(tt)}),window.setInterval((function(){n.a.get("health").catch((function(t){t.message="Server unavailable",window.toasts.error(t)}))}),5e3)},b19f:function(t,e,a){},f06b:function(t,e,a){"use strict";a("34a4")},fa11:function(t,e,a){"use strict";a("3ce1")}}); -//# sourceMappingURL=index.59100a52.js.map \ No newline at end of file diff --git a/dist/js/index.59100a52.js.map b/dist/js/index.59100a52.js.map deleted file mode 100644 index 3799de6c74..0000000000 --- a/dist/js/index.59100a52.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/components/Version.vue?0cc7","webpack:///./assets/js/views/App.vue?aec2","webpack:///./assets/js/icons.js","webpack:///./assets/js/components/Logo.vue?37d1","webpack:///assets/js/components/Logo.vue","webpack:///./assets/js/components/Logo.vue?6eb9","webpack:///./assets/js/components/Logo.vue","webpack:///./assets/js/components/Footer.vue?36a5","webpack:///./assets/js/components/Version.vue?091f","webpack:///assets/js/components/Version.vue","webpack:///./assets/js/components/Version.vue?1d82","webpack:///./assets/js/components/Version.vue","webpack:///assets/js/components/Footer.vue","webpack:///./assets/js/components/Footer.vue?9347","webpack:///./assets/js/components/Footer.vue","webpack:///./assets/js/store.js","webpack:///assets/js/views/App.vue","webpack:///./assets/js/views/App.vue?9ed2","webpack:///./assets/js/views/App.vue","webpack:///./assets/js/components/Toasts.vue?fc07","webpack:///./assets/js/components/ToastMessage.vue?ef00","webpack:///assets/js/components/ToastMessage.vue","webpack:///./assets/js/components/ToastMessage.vue?19ff","webpack:///./assets/js/components/ToastMessage.vue","webpack:///assets/js/components/Toasts.vue","webpack:///./assets/js/components/Toasts.vue?c63e","webpack:///./assets/js/components/Toasts.vue","webpack:///./assets/js/views/Main.vue?722e","webpack:///./assets/js/components/Site.vue?d602","webpack:///./assets/js/components/SiteDetails.vue?82b7","webpack:///./assets/js/mixins/formatter.js","webpack:///assets/js/components/SiteDetails.vue","webpack:///./assets/js/components/SiteDetails.vue?3811","webpack:///./assets/js/components/SiteDetails.vue","webpack:///./assets/js/components/Loadpoint.vue?5e9d","webpack:///./assets/js/components/Soc.vue?7887","webpack:///assets/js/components/Soc.vue","webpack:///./assets/js/components/Soc.vue?8da7","webpack:///./assets/js/components/Soc.vue","webpack:///./assets/js/components/Mode.vue?b191","webpack:///assets/js/components/Mode.vue","webpack:///./assets/js/components/Mode.vue?fbb9","webpack:///./assets/js/components/Mode.vue","webpack:///./assets/js/components/Vehicle.vue?d51b","webpack:///assets/js/components/Vehicle.vue","webpack:///./assets/js/components/Vehicle.vue?5364","webpack:///./assets/js/components/Vehicle.vue","webpack:///./assets/js/components/LoadpointDetails.vue?9747","webpack:///assets/js/components/LoadpointDetails.vue","webpack:///./assets/js/components/LoadpointDetails.vue?3057","webpack:///./assets/js/components/LoadpointDetails.vue","webpack:///./assets/js/mixins/collector.js","webpack:///assets/js/components/Loadpoint.vue","webpack:///./assets/js/components/Loadpoint.vue?8199","webpack:///./assets/js/components/Loadpoint.vue","webpack:///assets/js/components/Site.vue","webpack:///./assets/js/components/Site.vue?af05","webpack:///./assets/js/components/Site.vue","webpack:///assets/js/views/Main.vue","webpack:///./assets/js/views/Main.vue?0821","webpack:///./assets/js/views/Main.vue","webpack:///./assets/js/views/Config.vue?5ba5","webpack:///assets/js/views/Config.vue","webpack:///./assets/js/views/Config.vue?db1d","webpack:///./assets/js/views/Config.vue","webpack:///./assets/js/router.js","webpack:///./assets/js/app.js","webpack:///./assets/js/components/Footer.vue?41d1","webpack:///./assets/js/views/App.vue?586e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_m","version","staticRenderFns","_v","add","faArrowDown","faArrowUp","faBatteryEmpty","faBatteryFull","faBatteryHalf","faBatteryQuarter","faBatteryThreeQuarters","faChevronDown","faChevronUp","faExclamationTriangle","faLeaf","faSun","faTemperatureHigh","faTemperatureLow","faThermometerHalf","faHeart","faGift","faBox","component","_b","on","$event","preventDefault","showModal","_s","available","releaseNotesUrl","installed","updateStarted","closeModal","style","width","uploadProgress","updateStatus","uploadMessage","domProps","releaseNotes","update","_e","props","String","hasUpdater","Boolean","Number","modalActive","methods","async","a","post","e","computed","newVersionAvailable","components","Version","setProperty","obj","prop","set","Array","isArray","store","state","loadpoints","msg","keys","forEach","k","toasts","message","split","Logo","Footer","compact","$root","$data","installedVersion","evcc","connect","loc","location","protocol","uri","hostname","port","pathname","ws","WebSocket","self","onerror","close","onclose","setTimeout","onmessage","evt","JSON","parse","error","availableVersion","created","urlParams","URLSearchParams","search","staticStyle","_l","item","id","type","status","mounted","toast","remove","ToastMessage","items","title","details","multi","loadpoint","pvConfigured","gridPower","fmt","fmtUnit","class","pvPower","batteryIcon","batteryPower","batterySoC","fmtLimit","fmtDigits","round","num","precision","base","Math","toFixed","val","undefined","abs","fmtDuration","seconds","minutes","floor","hours","substr","fmtShortDuration","tm","fmtShortDurationUnit","limit","icons","gridConfigured","batteryConfigured","iconIdx","mixins","formatter","setInterval","setTargetMode","targetSoC","socLevels","setTargetSoC","hasTargetSoC","remoteDisabled","remoteDisabledSource","vehicle","level","active","soc","first","caption","levels","levelsOrDefault","$emit","socTitle","charging","connected","minSoCActive","socChargeDisplayWidth","socChargeDisplayValue","minSoCRemainingDisplayWidth","hasVehicle","socCharge","minSoC","chargeStatus","climater","chargePower","chargedEnergy","range","chargeDuration","chargeEstimate","socTimerActive","socTimerSet","collectProps","LoadpointDetails","Soc","Mode","Vehicle","collector","tickerHandle","chargeDurationDisplayed","watch","clearInterval","api","func","then","response","catch","destroyed","SiteDetails","Loadpoint","Site","configured","isNaN","parseInt","phases","minCurrent","maxCurrent","socCapacity","use","routes","path","Main","Config","linkExactActiveClass","defaults","baseURL","headers","el","h","Toasts","count","raise","found","warn","delete","router","App","res"],"mappings":"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","file":"js/index.59100a52.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=a6ded36e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app d-flex flex-column justify-content-between\"},[_c('div',[_c('nav',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-dark\"},[_c('div',{staticClass:\"container\"},[_c('a',{staticClass:\"navbar-brand\",attrs:{\"href\":\"https://github.com/andig/evcc\"}},[_c('Logo',{staticClass:\"logo\"})],1),_vm._m(0),_vm._m(1)])]),_c('router-view')],1),_c('Footer',{attrs:{\"version\":_vm.version}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-toggle\":\"collapse\",\"data-target\":\"#navbarNavAltMarkup\",\"aria-controls\":\"navbarNavAltMarkup\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('span',{staticClass:\"navbar-toggler-icon\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"collapse navbar-collapse\",attrs:{\"id\":\"navbarNavAltMarkup\"}},[_c('div',{staticClass:\"navbar-nav mr-auto\"}),_c('div',{staticClass:\"navbar-nav\"},[_c('a',{staticClass:\"nav-item nav-link\",attrs:{\"href\":\"https://github.com/andig/evcc/discussions\",\"target\":\"_blank\"}},[_vm._v(\" Support \")])])])}]\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\n\nimport { faArrowDown } from \"@fortawesome/free-solid-svg-icons/faArrowDown\";\nimport { faArrowUp } from \"@fortawesome/free-solid-svg-icons/faArrowUp\";\nimport { faBatteryEmpty } from \"@fortawesome/free-solid-svg-icons/faBatteryEmpty\";\nimport { faBatteryFull } from \"@fortawesome/free-solid-svg-icons/faBatteryFull\";\nimport { faBatteryHalf } from \"@fortawesome/free-solid-svg-icons/faBatteryHalf\";\nimport { faBatteryQuarter } from \"@fortawesome/free-solid-svg-icons/faBatteryQuarter\";\nimport { faBatteryThreeQuarters } from \"@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters\";\nimport { faChevronDown } from \"@fortawesome/free-solid-svg-icons/faChevronDown\";\nimport { faChevronUp } from \"@fortawesome/free-solid-svg-icons/faChevronUp\";\nimport { faClock } from \"@fortawesome/free-solid-svg-icons\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { faLeaf } from \"@fortawesome/free-solid-svg-icons/faLeaf\";\nimport { faSun } from \"@fortawesome/free-solid-svg-icons/faSun\";\nimport { faTemperatureHigh } from \"@fortawesome/free-solid-svg-icons/faTemperatureHigh\";\nimport { faTemperatureLow } from \"@fortawesome/free-solid-svg-icons/faTemperatureLow\";\nimport { faThermometerHalf } from \"@fortawesome/free-solid-svg-icons/faThermometerHalf\";\nimport { faHeart } from \"@fortawesome/free-solid-svg-icons/faHeart\";\nimport { faGift } from \"@fortawesome/free-solid-svg-icons/faGift\";\nimport { faBox } from \"@fortawesome/free-solid-svg-icons/faBox\";\n\nlibrary.add(\n faArrowDown,\n faArrowUp,\n faBatteryEmpty,\n faBatteryFull,\n faBatteryHalf,\n faBatteryQuarter,\n faBatteryThreeQuarters,\n faChevronDown,\n faChevronUp,\n faClock,\n faExclamationTriangle,\n faLeaf,\n faSun,\n faTemperatureHigh,\n faTemperatureLow,\n faThermometerHalf,\n faHeart,\n faGift,\n faBox\n);\n\nVue.component(\"fa-icon\", FontAwesomeIcon);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 122 35\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"stroke-linejoin\":\"round\",\"stroke-miterlimit\":\"2\"}},[_c('path',{attrs:{\"d\":\"M13.082 29.071a12.384 12.384 0 01-9-3.42 12.192 12.192 0 01-3.54-9.12v-.64a15.394 15.394 0 011.47-6.83 10.825 10.825 0 014.17-4.64 11.64 11.64 0 016.15-1.63 10.45 10.45 0 018.21 3.26c2 2.194 3 5.297 3 9.31v2.76H7.382a6.348 6.348 0 002 4 5.997 5.997 0 004.16 1.49 7.305 7.305 0 006.1-2.84l3.31 3.73a10 10 0 01-4.13 3.39 13.309 13.309 0 01-5.74 1.18zm-.77-20.84a4.216 4.216 0 00-3.26 1.37 7.141 7.141 0 00-1.6 3.91h9.39v-.55a5.005 5.005 0 00-1.22-3.49 4.304 4.304 0 00-3.31-1.24zM36.452 20.331l4.7-17.09h7l-8.48 25.36h-6.44l-8.52-25.36h7l4.74 17.09zM85.542 23.611a4.444 4.444 0 003-1 3.638 3.638 0 001.22-2.75h6.32a8.668 8.668 0 01-1.4 4.73 9.145 9.145 0 01-3.79 3.3 11.736 11.736 0 01-5.29 1.19 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.868 10.868 0 018.51-3.5c2.791-.134 5.524.84 7.6 2.71a9.626 9.626 0 012.9 7.21h-6.3a4.663 4.663 0 00-1.2-3.22 4.005 4.005 0 00-3.08-1.24 4.068 4.068 0 00-3.56 1.73c-.8 1.15-1.2 3-1.2 5.6v.7c0 2.61.39 4.49 1.19 5.63a4.092 4.092 0 003.65 1.72zM110.422 23.611a4.454 4.454 0 003-1 3.63 3.63 0 001.21-2.75h6.33a8.668 8.668 0 01-1.4 4.73 9.143 9.143 0 01-3.73 3.3 11.76 11.76 0 01-5.29 1.18 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.85 10.85 0 018.57-3.49 10.575 10.575 0 017.6 2.71 9.598 9.598 0 012.91 7.21h-6.33a4.651 4.651 0 00-1.21-3.22 4.492 4.492 0 00-6.64.49c-.8 1.15-1.21 3-1.21 5.6v.7c0 2.607.4 4.484 1.2 5.63a4.09 4.09 0 003.56 1.72z\",\"fill\":\"#fff\",\"fill-rule\":\"nonzero\"}}),_c('path',{attrs:{\"d\":\"M58.462.751h9.22l-6.14 12.3h6.15l-11.53 21.51 2.3-15.36h-7.68l7.68-18.45z\",\"fill\":\"#0fdd42\",\"fill-rule\":\"nonzero\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M-24.458-22.109h170v76h-170z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=14334b81&\"\nimport script from \"./Logo.vue?vue&type=script&lang=js&\"\nexport * from \"./Logo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"py-3 py-md-5 mt-3 mt-md-5 border-top\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('Version',_vm._b({},'Version',_vm.version,false))],1),_c('div',{staticClass:\"col-6 text-right\"},[_c('small',{staticClass:\"text-black\"},[_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://github.com/sponsors/andig\",\"target\":\"_blank\"}},[_c('fa-icon',{staticClass:\"icon mr-1\",attrs:{\"icon\":\"heart\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Projekt \")]),_vm._v(\"unterstützen \")],1)])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('small',{staticClass:\"text-black\"},[(_vm.newVersionAvailable)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.showModal($event)}}},[_c('fa-icon',{staticClass:\"icon mr-1\",attrs:{\"icon\":\"gift\"}}),_vm._v(\"Update\"),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\" verfügbar\")]),_vm._v(\": \"+_vm._s(_vm.available)+\" \")],1):_c('a',{attrs:{\"href\":_vm.releaseNotesUrl(_vm.installed),\"target\":\"_blank\"}},[_vm._v(\" Version \"+_vm._s(_vm.installed)+\" \")])]),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.modalActive)?_c('div',{staticClass:\"dialog\",attrs:{\"id\":\"updateModal\",\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-dialog-scrollable\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title font-weight-bold\"},[_vm._v(\"Update verfügbar\")]),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"disabled\":_vm.updateStarted},on:{\"click\":_vm.closeModal}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])]),_c('div',{staticClass:\"modal-body\"},[(_vm.updateStarted)?_c('div',[_c('p',[_vm._v(\"Nach der Aktualisierung wird evcc neu gestartet.\")]),_c('div',{staticClass:\"progress my-3\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped progress-bar-animated\",style:({ width: _vm.uploadProgress + '%' }),attrs:{\"role\":\"progressbar\"}})]),_c('p',[_vm._v(_vm._s(_vm.updateStatus)+_vm._s(_vm.uploadMessage))])]):_c('div',[_c('p',[_c('small',[_vm._v(\"Aktuell installierte Version: \"+_vm._s(_vm.installed))])]),(_vm.releaseNotes)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.releaseNotes)}}):_c('p',[_vm._v(\" Keine Releasenotes verfügbar. Mehr Informationen zur neuen Version findest du \"),_c('a',{attrs:{\"href\":_vm.releaseNotesUrl(_vm.available)}},[_vm._v(\"hier\")]),_vm._v(\". \")])])]),_c('div',{staticClass:\"modal-footer d-flex justify-content-between\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"disabled\":_vm.updateStarted},on:{\"click\":_vm.closeModal}},[_vm._v(\" Abbrechen \")]),_c('div',[(_vm.hasUpdater)?_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"disabled\":_vm.updateStarted},on:{\"click\":_vm.update}},[(_vm.updateStarted)?_c('span',[_c('span',{staticClass:\"spinner-border spinner-border-sm\",attrs:{\"role\":\"status\",\"aria-hidden\":\"true\"}}),_vm._v(\" Akualisieren \")]):_c('span',[_vm._v(\"Jetzt aktualisieren\")])]):_c('a',{staticClass:\"btn btn-primary\",attrs:{\"href\":_vm.releaseNotesUrl(_vm.available)}},[_vm._v(\" Download \")])])])])])]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=a6ded36e&scoped=true&\"\nimport script from \"./Version.vue?vue&type=script&lang=js&\"\nexport * from \"./Version.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=a6ded36e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a6ded36e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=5f0f38d1&scoped=true&\"\nimport script from \"./Footer.vue?vue&type=script&lang=js&\"\nexport * from \"./Footer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=5f0f38d1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f0f38d1\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\n\nfunction setProperty(obj, props, value) {\n const prop = props.shift();\n if (!obj[prop]) {\n Vue.set(obj, prop, {});\n }\n\n if (!props.length) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n obj[prop] = { ...obj[prop], ...value };\n } else {\n obj[prop] = value;\n }\n return;\n }\n\n setProperty(obj[prop], props, value);\n}\n\nconst store = {\n state: {\n loadpoints: [], // ensure array type\n },\n update: function (msg) {\n Object.keys(msg).forEach(function (k) {\n if (typeof window.toasts[k] === \"function\") {\n window.toasts[k]({ message: msg[k] });\n } else {\n setProperty(store.state, k.split(\".\"), msg[k]);\n }\n });\n },\n};\n\nexport default store;\n","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=459f11b2&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=459f11b2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"459f11b2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"4rem\",\"right\":\"0.5rem\"},attrs:{\"aria-atomic\":\"true\"}},_vm._l((_vm.items),function(item){return _c('ToastMessage',{key:item.id,attrs:{\"item\":item,\"id\":'message-id-' + item.id}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toast\",attrs:{\"data-delay\":\"10000\",\"data-autohide\":true}},[_c('div',{staticClass:\"toast-header\"},[(_vm.item.type != 'warn')?_c('strong',{staticClass:\"mr-auto\"},[_c('fa-icon',{staticClass:\"text-danger\",attrs:{\"icon\":\"exclamation-triangle\"}}),_vm._v(\" Error\")],1):_vm._e(),(_vm.item.type == 'warn')?_c('strong',{staticClass:\"mr-auto\"},[_c('fa-icon',{staticClass:\"text-warning\",attrs:{\"icon\":\"exclamation-triangle\"}}),_vm._v(\" Warning\")],1):_vm._e(),(_vm.item.status)?_c('small',[_vm._v(\"HTTP \"+_vm._s(_vm.item.status))]):_vm._e(),_vm._m(0)]),_c('div',{staticClass:\"toast-body\"},[_vm._v(_vm._s(_vm.item.message))])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"ml-2 mb-1 close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"toast\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastMessage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToastMessage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ToastMessage.vue?vue&type=template&id=556fd3a5&\"\nimport script from \"./ToastMessage.vue?vue&type=script&lang=js&\"\nexport * from \"./ToastMessage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toasts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toasts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Toasts.vue?vue&type=template&id=57d56c56&\"\nimport script from \"./Toasts.vue?vue&type=script&lang=js&\"\nexport * from \"./Toasts.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[(_vm.configured)?_c('Site',_vm._b({},'Site',_vm.state,false)):_c('div',[_c('div',{staticClass:\"row py-5\"},[_c('div',{staticClass:\"col12\"},[_c('p',{staticClass:\"h1 pt-5 pb-2 border-bottom\"},[_vm._v(\"Willkommen bei evcc\")]),_c('p',{staticClass:\"lead pt-2\"},[_c('b',[_vm._v(\"evcc\")]),_vm._v(\" ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen. \")]),_c('p',{staticClass:\"pt-2\"},[_vm._v(\" Es sieht aus, als wäre Dein \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" noch nicht konfiguriert. Um \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" zu konfigurieren sind die folgenden Schritte notwendig: \")]),_c('ol',{staticClass:\"pt-2\"},[_c('li',[_vm._v(\" Erzeugen einer Konfigurationsdatei mit Namen \"),_c('code',[_vm._v(\"evcc.yaml\")]),_vm._v(\". Die Standardkonfiguration \"),_c('code',[_vm._v(\"evcc.dist.yaml\")]),_vm._v(\" kann dafür als Vorlage dienen (\"),_c('a',{attrs:{\"href\":\"https://github.com/andig/evcc/blob/master/evcc.dist.yaml\"}},[_vm._v(\"Download\")]),_vm._v(\"). \")]),_c('li',[_vm._v(\"Konfiguration der Wallbox als \"),_c('code',[_vm._v(\"chargers\")]),_vm._v(\".\")]),_c('li',[_vm._v(\" Konfiguration des EVU Zählers und evtl. weiterer Zähler unter \"),_c('code',[_vm._v(\"meters\")]),_vm._v(\". \")]),_c('li',[_vm._v(\" Konfiguration des Netzanschlusses unter \"),_c('code',[_vm._v(\"site\")]),_vm._v(\". In einer Site wird der Netzanschluss mit dem konfigurierten EVU Zähler (\"),_c('code',[_vm._v(\"meter\")]),_vm._v(\") verbunden. \")]),_c('li',[_vm._v(\" Konfiguration eines Ladepunktes unter \"),_c('code',[_vm._v(\"loadpoints\")]),_vm._v(\". In einem Ladepunkt wird die konfigurierte Wallbox (\"),_c('code',[_vm._v(\"charger\")]),_vm._v(\") mit dem Ladepunkt verbunden. \")]),_c('li',[_vm._v(\" Start von \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" mit der neu erstellten Konfiguration: \"),_c('code',[_vm._v(\"evcc -c evcc.yaml\")])])]),_c('p',[_vm._v(\"Minimale Beispielkonfiguration für \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\":\")]),_c('p',[_c('code',[_c('pre',{staticClass:\"mx-3\"},[_vm._v(\" uri: localhost:7070 # Adresse für UI\\n interval: 10s # Regelintervall\\n meters:\\n - name: evu-zähler\\n type: ... # Detailkonfiguration des EVU Zählers\\n - name: ladezähler\\n type: ... # Detailkonfiguration des Ladezählers (optional)\\n chargers:\\n - name: wallbox\\n type: ... # Detailkonfiguration der Wallbox\\n site:\\n title: Home\\n meters:\\n grid: evu-zähler # EVU Zähler\\n loadpoints:\\n - title: Ladepunkt # ui display name\\n charger: wallbox # charger\\n meters:\\n charge: ladezähler # Ladezählers (optional)\\n \")])])]),_c('p',[_vm._v(\" Viel Spass mit \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\"! Bei Problemen kannst Du uns auf \"),_c('a',{attrs:{\"href\":\"https://github.com/andig/evcc/issues\"}},[_vm._v(\"GitHub\")]),_vm._v(\" erreichen. \")])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"d-none d-md-flex col-12 col-md-4 mt-md-4 align-items-end\"},[_c('p',{staticClass:\"h1\"},[_vm._v(_vm._s(_vm.title || \"Home\"))])]),(_vm.multi)?_c('div',{staticClass:\"col-12 col-md-8 mt-md-4\"},[_c('SiteDetails',_vm._b({},'SiteDetails',_vm.details,false))],1):_vm._e()]),_c('div',{staticClass:\"row d-none d-md-flex border-bottom\"}),(!_vm.multi)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"d-none d-md-block col-md-4\"}),_c('div',{staticClass:\"col-12 col-md-8\"},[_c('SiteDetails',_vm._b({},'SiteDetails',_vm.details,false))],1)]):_vm._e(),_vm._l((_vm.loadpoints),function(loadpoint,id){return _c('Loadpoint',_vm._b({key:id,attrs:{\"id\":id,\"multi\":_vm.multi,\"pvConfigured\":_vm.pvConfigured}},'Loadpoint',loadpoint,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[(_vm.gridConfigured)?_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[(_vm.gridPower > 0)?_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" Bezug \"),_c('fa-icon',{staticClass:\"text-primary\",attrs:{\"icon\":\"arrow-down\"}})],1):_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" Einspeisung \"),_c('fa-icon',{staticClass:\"text-primary\",attrs:{\"icon\":\"arrow-up\"}})],1),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.gridPower))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.gridPower))+\"W\")])])]):_vm._e(),(_vm.pvConfigured)?_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" Erzeugung \"),_c('fa-icon',{class:{\n\t\t\t\t\t'text-primary': _vm.pvPower > 0,\n\t\t\t\t\t'text-muted': _vm.pvPower <= 0,\n\t\t\t\t},attrs:{\"icon\":\"sun\"}})],1),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.pvPower))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.pvPower))+\"W\")])])]):_vm._e(),(_vm.batteryConfigured)?_c('div',{staticClass:\"d-md-block col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" Batterie \"),_c('fa-icon',{staticClass:\"text-primary\",attrs:{\"icon\":_vm.batteryIcon}})],1),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.batteryPower))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.batteryPower))+\"W\")]),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"/\")]),_vm._v(\" \"+_vm._s(_vm.batterySoC)+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"%\")])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data: function () {\n return {\n fmtLimit: 100,\n fmtDigits: 1,\n };\n },\n methods: {\n round: function (num, precision) {\n var base = 10 ** precision;\n return (Math.round(num * base) / base).toFixed(precision);\n },\n fmt: function (val) {\n if (val === undefined || val === null) {\n return 0;\n }\n val = Math.abs(val);\n return val >= this.fmtLimit ? this.round(val / 1e3, this.fmtDigits) : this.round(val, 0);\n },\n fmtUnit: function (val) {\n return Math.abs(val) >= this.fmtLimit ? \"k\" : \"\";\n },\n fmtDuration: function (d) {\n if (d <= 0 || d == null) {\n return \"—\";\n }\n var seconds = \"0\" + (d % 60);\n var minutes = \"0\" + (Math.floor(d / 60) % 60);\n var hours = \"\" + Math.floor(d / 3600);\n if (hours.length < 2) {\n hours = \"0\" + hours;\n }\n return hours + \":\" + minutes.substr(-2) + \":\" + seconds.substr(-2);\n },\n fmtShortDuration: function (d) {\n if (d <= 0 || d == null) {\n return \"—\";\n }\n var minutes = Math.floor(d / 60) % 60;\n var hours = Math.floor(d / 3600);\n var tm;\n if (hours >= 1) {\n minutes = \"0\" + minutes;\n tm = hours + \":\" + minutes.substr(-2);\n } else {\n var seconds = \"0\" + (d % 60);\n tm = minutes + \":\" + seconds.substr(-2);\n }\n return tm;\n },\n fmtShortDurationUnit: function (d) {\n if (d <= 0 || d == null) {\n return \"\";\n }\n var hours = Math.floor(d / 3600);\n if (hours >= 1) {\n return \"h\";\n }\n return \"m\";\n },\n },\n};\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SiteDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SiteDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SiteDetails.vue?vue&type=template&id=d4dfcbb4&\"\nimport script from \"./SiteDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./SiteDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.multi)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-4 d-md-flex mt-3 mt-md-5 align-items-end\"},[_c('span',{staticClass:\"h1 align-bottom\"},[_vm._v(_vm._s(_vm.title || \"Ladepunkt\"))])]),_c('div',{staticClass:\"col-12 col-md-8 d-none d-md-block mt-3 mt-md-5\"},[_c('LoadpointDetails',_vm._b({},'LoadpointDetails',_vm.details,false))],1),_c('div',{staticClass:\"col-12 d-md-none\"},[_c('div',{staticClass:\"row mt-3 pb-3 bg-light\"},[_c('div',{staticClass:\"col-12 mt-3\"},[_c('Mode',{staticClass:\"w-100\",attrs:{\"mode\":_vm.mode,\"pvConfigured\":_vm.pvConfigured},on:{\"updated\":_vm.setTargetMode}})],1),(_vm.hasTargetSoC)?_c('div',{staticClass:\"col-12 mt-3\"},[_c('Soc',{staticClass:\"w-100\",attrs:{\"soc\":_vm.targetSoC,\"levels\":_vm.socLevels},on:{\"updated\":_vm.setTargetSoC}})],1):_vm._e()])])]):_vm._e(),(!_vm.multi)?_c('div',{staticClass:\"row d-none d-md-flex mt-5 py-3 pb-4 text-center bg-light\"},[_c('div',{staticClass:\"mt-3\",class:{ 'col-md-6': _vm.hasTargetSoC, 'col-md-12': !_vm.hasTargetSoC }},[_c('Mode',{attrs:{\"mode\":_vm.mode,\"pvConfigured\":_vm.pvConfigured,\"caption\":true},on:{\"updated\":_vm.setTargetMode}})],1),(_vm.hasTargetSoC)?_c('div',{staticClass:\"col-md-6 mt-3\"},[_c('Soc',{attrs:{\"soc\":_vm.targetSoC,\"levels\":_vm.socLevels,\"caption\":true},on:{\"updated\":_vm.setTargetSoC}})],1):_vm._e()]):_vm._e(),(!_vm.multi)?_c('div',{staticClass:\"row d-md-none mt-2 pb-3 bg-light\"},[_c('div',{staticClass:\"col-12 mt-3\"},[_c('Mode',{staticClass:\"w-100\",attrs:{\"mode\":_vm.mode,\"pvConfigured\":_vm.pvConfigured},on:{\"updated\":_vm.setTargetMode}})],1),(_vm.hasTargetSoC)?_c('div',{staticClass:\"col-12 mt-3\"},[_c('Soc',{staticClass:\"w-100\",attrs:{\"soc\":_vm.targetSoC,\"levels\":_vm.socLevels},on:{\"updated\":_vm.setTargetSoC}})],1):_vm._e()]):_vm._e(),(!_vm.multi)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-4 d-none d-md-flex mt-3 mt-md-5\"},[_c('span',{staticClass:\"h1\"},[_vm._v(_vm._s(_vm.title || \"Ladepunkt\"))])]),(_vm.remoteDisabled)?_c('div',{staticClass:\"col-12 col-md-8 d-flex d-md-flex mt-3 mt-md-5 pt-3\"},[_c('h5',{staticClass:\"w-100\"},[(_vm.remoteDisabled == 'soft')?_c('span',{staticClass:\"badge badge-warning w-100\"},[_vm._v(\" \"+_vm._s(_vm.remoteDisabledSource)+\": Adaptives PV-Laden deaktiviert \")]):_vm._e(),(_vm.remoteDisabled == 'hard')?_c('span',{staticClass:\"badge badge-danger w-100\"},[_vm._v(\" \"+_vm._s(_vm.remoteDisabledSource)+\": Deaktiviert \")]):_vm._e()])]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"row border-bottom d-none d-md-block\"}),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-4 mt-3 mb-3 mb-md-0\"},[_c('Vehicle',_vm._b({},'Vehicle',_vm.vehicle,false))],1),(_vm.multi)?_c('div',{staticClass:\"col-12 col-md-4 d-none d-md-block mt-3\"},[_c('div',{staticClass:\"mb-2\"},[_vm._v(\"Modus\")]),_c('Mode',{staticClass:\"btn-group-sm\",attrs:{\"mode\":_vm.mode,\"pvConfigured\":_vm.pvConfigured},on:{\"updated\":_vm.setTargetMode}})],1):_vm._e(),(_vm.multi && _vm.hasTargetSoC)?_c('div',{staticClass:\"col-12 col-md-4 d-none d-md-block mt-3\"},[_c('div',{staticClass:\"mb-2\"},[_vm._v(\"Ladeziel\")]),_c('Soc',{staticClass:\"btn-group-sm\",attrs:{\"soc\":_vm.targetSoC,\"levels\":_vm.socLevels},on:{\"updated\":_vm.setTargetSoC}})],1):_vm._e(),(!_vm.multi)?_c('div',{staticClass:\"col-md-8 d-none d-md-block\"},[_c('LoadpointDetails',_vm._b({},'LoadpointDetails',_vm.details,false))],1):_vm._e(),_c('div',{staticClass:\"col-12 d-md-none\"},[_c('LoadpointDetails',_vm._b({},'LoadpointDetails',_vm.details,false))],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn-group btn-group-toggle bg-white shadow-none\"},[(_vm.caption)?_c('label',{staticClass:\"btn btn-outline-primary disabled caption font-weight-bold\"},[_vm._v(\" Ladeziel \")]):_vm._e(),_vm._l((_vm.levelsOrDefault),function(level,id){return _c('label',{key:id,staticClass:\"btn btn-outline-primary\",class:{ active: _vm.soc == level, first: !_vm.caption && id == 0 },attrs:{\"level\":level,\"id\":id}},[_c('input',{attrs:{\"type\":\"radio\"},domProps:{\"value\":level},on:{\"click\":function($event){return _vm.setTargetSoC(level)}}}),_vm._v(_vm._s(level)+\"% \")])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Soc.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Soc.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Soc.vue?vue&type=template&id=5c59baa0&\"\nimport script from \"./Soc.vue?vue&type=script&lang=js&\"\nexport * from \"./Soc.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn-group btn-group-toggle bg-white shadow-none\"},[(_vm.caption)?_c('label',{staticClass:\"btn btn-outline-primary value disabled caption font-weight-bold\"},[_vm._v(\" Modus \")]):_vm._e(),_c('label',{staticClass:\"btn btn-outline-primary\",class:{ active: _vm.mode == 'off', first: !_vm.caption }},[_c('input',{attrs:{\"type\":\"radio\",\"value\":\"off\"},on:{\"click\":function($event){return _vm.setTargetMode('off')}}}),_vm._v(\"Stop \")]),_c('label',{staticClass:\"btn btn-outline-primary\",class:{ active: _vm.mode == 'now' }},[_c('input',{attrs:{\"type\":\"radio\",\"value\":\"now\"},on:{\"click\":function($event){return _vm.setTargetMode('now')}}}),_vm._v(\"Sofort \")]),(_vm.pvConfigured)?_c('label',{staticClass:\"btn btn-outline-primary\",class:{ active: _vm.mode == 'minpv' }},[_c('input',{attrs:{\"type\":\"radio\",\"value\":\"minpv\"},on:{\"click\":function($event){return _vm.setTargetMode('minpv')}}}),_c('span',{staticClass:\"d-inline d-lg-none\"},[_vm._v(\"Min\")]),_c('span',{staticClass:\"d-none d-lg-inline\"},[_vm._v(\"Min + PV\")])]):_vm._e(),(_vm.pvConfigured)?_c('label',{staticClass:\"btn btn-outline-primary\",class:{ active: _vm.mode == 'pv' }},[_c('input',{attrs:{\"type\":\"radio\",\"value\":\"pv\"},on:{\"click\":function($event){return _vm.setTargetMode('pv')}}}),_c('span',{staticClass:\"d-inline d-md-none\"},[_vm._v(\"PV\")]),_c('span',{staticClass:\"d-none d-md-inline\"},[_vm._v(\"Nur PV\")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mode.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mode.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Mode.vue?vue&type=template&id=63314fe2&\"\nimport script from \"./Mode.vue?vue&type=script&lang=js&\"\nexport * from \"./Mode.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.socTitle || \"Fahrzeug\"))]),_c('div',{staticClass:\"progress\",staticStyle:{\"height\":\"24px\",\"font-size\":\"100%\",\"margin-top\":\"16px\"}},[_c('div',{staticClass:\"progress-bar\",class:{\n\t\t\t\t'progress-bar-striped': _vm.charging,\n\t\t\t\t'progress-bar-animated': _vm.charging,\n\t\t\t\t'bg-light': !_vm.connected,\n\t\t\t\t'text-secondary': !_vm.connected,\n\t\t\t\t'bg-warning': _vm.connected && _vm.minSoCActive,\n\t\t\t},style:({ width: _vm.socChargeDisplayWidth + '%' }),attrs:{\"role\":\"progressbar\"}},[_vm._v(\" \"+_vm._s(_vm.socChargeDisplayValue)+\" \")]),(_vm.minSoCActive && _vm.socChargeDisplayWidth < 100)?_c('div',{staticClass:\"progress-bar\",class:{\n\t\t\t\t'progress-bar-striped': _vm.charging,\n\t\t\t\t'progress-bar-animated': _vm.charging,\n\t\t\t\t'bg-warning': true,\n\t\t\t\t'bg-muted': true,\n\t\t\t},style:({ width: _vm.minSoCRemainingDisplayWidth + '%' }),attrs:{\"role\":\"progressbar\"}}):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vehicle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vehicle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Vehicle.vue?vue&type=template&id=6c361988&\"\nimport script from \"./Vehicle.vue?vue&type=script&lang=js&\"\nexport * from \"./Vehicle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" Leistung \"),(_vm.socTimerActive)?_c('fa-icon',{staticClass:\"text-primary ml-1\",attrs:{\"icon\":\"clock\"}}):(_vm.socTimerSet)?_c('fa-icon',{staticClass:\"text-secondary ml-1\",attrs:{\"icon\":\"clock\"}}):_vm._e(),(_vm.climater == 'heating')?_c('fa-icon',{staticClass:\"text-primary ml-1\",attrs:{\"icon\":\"temperature-low\"}}):_vm._e(),(_vm.climater == 'cooling')?_c('fa-icon',{staticClass:\"text-primary ml-1\",attrs:{\"icon\":\"temperature-high\"}}):_vm._e(),(_vm.climater == 'on')?_c('fa-icon',{staticClass:\"text-primary ml-1\",attrs:{\"icon\":\"thermometer-half\"}}):_vm._e()],1),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.chargePower))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.chargePower))+\"W\")])])]),_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\"Geladen\")]),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.chargedEnergy))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.chargedEnergy))+\"Wh\")])])]),(_vm.range >= 0)?_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\"Reichweite\")]),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(Math.round(_vm.range))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"km\")])])]):_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\"Dauer\")]),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmtShortDuration(_vm.chargeDuration))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtShortDurationUnit(_vm.chargeDuration)))])])]),(_vm.hasVehicle)?_c('div',{staticClass:\"col-6 col-md-3 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\"Restzeit\")]),_c('h2',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmtShortDuration(_vm.chargeEstimate))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtShortDurationUnit(_vm.chargeEstimate)))])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadpointDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadpointDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadpointDetails.vue?vue&type=template&id=024b8b62&\"\nimport script from \"./LoadpointDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadpointDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default {\n methods: {\n // collect all target component properties from current instance\n collectProps: function (component) {\n let data = {};\n for (var p in component.props) {\n data[p] = this[p];\n }\n return data;\n },\n },\n};\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loadpoint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loadpoint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loadpoint.vue?vue&type=template&id=e9ab9ede&\"\nimport script from \"./Loadpoint.vue?vue&type=script&lang=js&\"\nexport * from \"./Loadpoint.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Site.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Site.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Site.vue?vue&type=template&id=013c24df&\"\nimport script from \"./Site.vue?vue&type=script&lang=js&\"\nexport * from \"./Site.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=5e3635d0&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row mt-4 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_c('p',{staticClass:\"h1\"},[_vm._v(_vm._s(_vm.title || \"Home\"))])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Netzzähler: \"),(_vm.gridConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" PV Zähler: \"),(_vm.pvConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Batteriezähler: \"),(_vm.batteryConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])])]),_vm._l((_vm.loadpoints),function(loadpoint,id){return _c('div',{key:id,attrs:{\"loadpoint\":loadpoint,\"id\":'loadpoint-' + id}},[_c('div',{staticClass:\"row mt-4 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_c('p',{staticClass:\"h1\"},[_vm._v(_vm._s(loadpoint.title || \"Ladepunkt\"))])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Ladezähler: \"),(loadpoint.chargeConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Phasen: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.phases)+\"p\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Min. Strom: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.minCurrent)+\"A\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Max. Strom: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.maxCurrent)+\"A\")])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-md-8 h2\"},[_vm._m(0,true),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-6 py-3\"},[_vm._v(\" Modell: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.socTitle || \"—\"))])]),_c('div',{staticClass:\"col-6 py-3\"},[_vm._v(\" Kapazität: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.socCapacity)+\"kWh\")])])])])])])})],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row py-3 h2 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_vm._v(\"Fahrzeug\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Config.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Config.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Config.vue?vue&type=template&id=63d7c897&\"\nimport script from \"./Config.vue?vue&type=script&lang=js&\"\nexport * from \"./Config.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueRouter from \"vue-router\";\nimport Vue from \"vue\";\nimport Main from \"./views/Main\";\nimport Config from \"./views/Config\";\n\nVue.use(VueRouter);\n\nconst routes = [\n { path: \"/\", component: Main },\n { path: \"/config\", component: Config },\n];\n\nexport default new VueRouter({\n routes,\n linkExactActiveClass: \"active\", // Bootstrap