{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/bootstrap/js/dist/util.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js","webpack:///./node_modules/swiper/js/swiper.esm.bundle.js","webpack:///./app/packs/root/application.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/bootstrap/js/dist/alert.js","webpack:///./node_modules/bootstrap/js/dist/collapse.js","webpack:///./node_modules/bootstrap/js/dist/dropdown.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/bootstrap/js/dist/modal.js","webpack:///./app/packs/javascripts/preferences.js","webpack:///./app/packs/javascripts/slider.js","webpack:///./app/packs/javascripts/filter.js","webpack:///./app/packs/javascripts/car_modal.js","webpack:///./app/packs/javascripts/analytics.js","webpack:///./app/packs/javascripts/ads.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arr","getProto","slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","selector","context","fn","init","isArrayLike","obj","length","type","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","nodeType","item","window","document","rsingleTag","rootjQuery","rquickExpr","root","match","exec","find","parseHTML","ownerDocument","test","attr","getElementById","ready","Data","nodeName","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","concat","originAnchor","createElement","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","url","isLocal","protocol","global","processData","async","contentType","accepts","text","html","xml","json","contents","responseFields","converters","String","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","join","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","done","promise","method","crossDomain","host","e","data","param","traditional","trigger","toUpperCase","hasContent","cache","ifModified","headers","beforeSend","add","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","shift","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","dir","siblings","rneedsContext","rparentsprev","guaranteedUnique","children","next","sibling","cur","has","targets","filter","contains","closest","selectors","matched","parentNode","index","matchesSelector","uniqueSort","prevAll","addBack","parent","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","firstChild","contentDocument","content","childNodes","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","args","mightThrow","TypeError","notifyWith","process","exceptionHook","stackTrace","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","documentElement","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","err","safeActiveElement","on","types","one","origFn","off","leverageNative","el","set","namespace","notAsync","result","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","addEventListener","remove","mappedTypes","origCount","hasData","RegExp","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","sel","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","configurable","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","removeEventListener","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","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","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","string","camelCase","rcssNum","rnumnonpx","rcustomProp","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","css","ceil","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","val","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","opacity","computed","cssNumber","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","isFinite","getBoundingClientRect","width","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","left","margin","padding","border","prefix","suffix","expand","expanded","parts","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","getAttribute","restoreScript","removeAttribute","cloneCopyEvent","dest","udataOld","udataCur","fixInput","checked","defaultValue","domManip","collection","ignored","fragment","scripts","hasScripts","node","iNoClone","valueIsFunction","checkClone","self","_evalUrl","noModule","textContent","keepData","nodes","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","empty","append","appendChild","prepend","insertBefore","before","after","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","$","_interopDefaultLegacy","$__default","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","getSpecialTransitionEndEvent","is","transitionEndEmulator","duration","_this","called","Util","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","getUID","getSelectorFromElement","element","hrefAttr","trim","querySelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","offsetHeight","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","minMajor","ltMajor","minMinor","minPatch","maxMajor","factory","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","once","stopOnFalse","unique","dequeue","startLength","_queueHooks","stop","setter","clearQueue","count","defer","elements","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","height","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","start","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","container","cssText","divStyle","getComputedStyle","pixelPositionVal","top","reliableMarginLeftVal","roundPixelMeasures","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","input","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","pop","simulate","triggerHandler","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","Element","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","refreshCSRFTokens","forEach","CustomEvent","params","evt","createEvent","initCustomEvent","dispatchEvent","stopEverything","delegate","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","script","responseText","floor","XMLHttpRequest","OPENED","accept","open","withCredentials","onreadystatechange","DONE","parser","setAttribute","head","DOMParser","parseFromString","isCrossDomain","serializeElement","additionalParam","inputs","option","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","action","body","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","getPrototypeOf","array","preservedScriptAttributes","winnow","qualifier","not","readyList","catch","readyException","readyWait","wait","doScroll","uid","source","valueParts","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","thead","col","td","tbody","tfoot","colgroup","caption","th","optgroup","createDocumentFragment","lastChild","tag","getElementsByTagName","refElements","rhtml","selection","wrap","attached","createTextNode","opener","rboxStyle","rtrimCSS","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabIndex","tabindex","selectedIndex","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","a","valueOrFunction","serialize","serializeArray","keepScripts","createHTMLDocument","base","implementation","parsed","isObject","keys","ssrDocument","initEvent","createElementNS","importNode","hash","hostname","origin","pathname","search","win","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","matchMedia","Dom7","els","tempParent","toCreate","uniqueArray","Class","Methods","addClass","className","classes","classList","removeClass","hasClass","toggleClass","attrName","removeAttr","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","webkitTransitionDuration","_len","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","k","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","_len2","_key2","dom7proxy","_len5","_key5","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","outerHeight","offset","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","compareWith","child","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","previousElementSibling","prevEls","foundElements","found","matchedItems","_len6","_key6","toAdd","methodName","Utils","deleteProps","nextTick","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","query","urlToParse","paramsPart","decodeURIComponent","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","SwiperClass","eventsListeners","eventName","priority","onceHandler","f7proxy","eventHandler","emit","useModulesParams","instanceParams","instance","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","components","use","static","install","_len3","_key3","installModule","_len4","_key4","update","updateSize","swiper","$el","clientWidth","clientHeight","isHorizontal","isVertical","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidesNumberEvenToRows","slideSize","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginTop","marginRight","marginBottom","slidesPerColumn","slidesPerView","slidesPerColumnFill","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","newSlidesGrid","effect","setWrapperSize","slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","destroyed","transitionStart","direction","slideTo","initialSlide","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopFix","_clientLeft","slidePrev","normalize","normalizedTranslate","normalizedSnapGrid","prevIndex","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","screenWidth","screenHeight","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","currentPos","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","preventClicks","preventClicksPropagation","onScroll","dummyEventAttached","dummyEventListener","defaults","updateOnWindowResize","uniqueNavElements","preloadImages","updateOnImagesReady","passiveListeners","containerModifierClass","wrapperClass","prototypes","attachEvents","touchEvents","onClick","move","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","b","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","classNames","suffixes","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","super","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","destroy","deleteInstance","cleanStyles","newDefaults","Device$1","Support$1","isEdge","isSafari","isWebView","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","kc","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","enable","Keyboard$1","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isSupported","hasFeature","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarged","releaseOnEdges","rtlFactor","forceToAxis","newEvent","sign","ignoreWheelEvents","sensitivity","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","animateSlider","releaseScroll","getTime","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","divider","moveDivider","getPointerPosition","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","activeListenerWithCapture","slideSelector","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","$pictureEl","sourceIndex","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Controller","LinearSpline","binarySearch","guess","i1","i3","interpolate","getInterpolateFunction","controller","spline","controlled","control","controlledTranslate","setControlledTranslate","by","inverse","setControlledTransition","a11y","makeElFocusable","makeElNotFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","_swiper$navigation4","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","pathArray","part","setHistory","slugify","includes","currentState","HashNavigation","onHashCange","newHash","setHash","watchState","Autoplay","$activeSlideEl","delay","reverseDirection","stopOnLastSlide","pause","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","swiperWidth","swiperHeight","cubeEffect","$cubeShadowEl","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","perspectiveOrigin","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","hideOnClick","toEdge","fromEdge","_swiper$navigation3","isHidden","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","slideChange","loadOnTransitionStart","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","onVisibilityChange","visibilityState","beforeTransitionStart","sliderFirstMove","beforeDestroy","require","Sizzle","pseudos","getText","isXML","escapeSelector","escape","Expr","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","identifier","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","seed","nid","groups","newSelector","newContext","id","getElementsByClassName","qsa","testContext","scope","toSelector","cssSupportsSelector","CSS","supports","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","idx","matcher","unmatched","lang","elemLang","hasFocus","_matchIndexes","radio","checkbox","file","password","submit","reset","tokens","combinator","checkNonElements","doneName","oldCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","_sizzle","noConflict","truncate","rerrorNames","stack","console","warn","rbrace","rmultiDash","dataAttr","removeData","_data","_removeData","defaultDisplayMap","getDefaultDisplay","values","eased","pos","step","linear","swing","boolHook","attrHooks","bool","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","focusin","attaches","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","pageYOffset","pageXOffset","offsetParent","parentOffset","Height","Width","defaultExtra","funcName","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","unbind","undelegate","hover","fnOver","fnOut","_jQuery","_$","noGlobal","Turbolinks","supported","visit","clearCache","setProgressBarDelay","copyObject","Node","ELEMENT_NODE","throttle","u","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","loaded","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","read","put","write","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","hasAttribute","Util__default","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","SELECTOR_DISMISS","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","_extends","assign","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Default","DefaultType","Collapse","_isTransitioning","_config","_getConfig","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","_this2","triggerArrayLength","isTransitioning","_this3","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","Popper","Popper__default","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","scheduleUpdate","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","preventOverflow","boundariesElement","applyStyle","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","isBrowser","timeoutDuration","longerTimeoutBrowsers","debounce","Promise","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","getRoot","findCommonOffsetParent","element1","element2","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","getBordersSize","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","defineProperties","getClientRect","bottom","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","childrenRect","parentRect","scrollParent","borderLeftWidth","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","excludeScroll","relativeOffset","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","refRect","rects","sortedAreas","area","_ref","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","findIndex","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","shiftvariation","_data$offsets","side","shiftOffsets","transformProp","popperStyles","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","onLoad","modifierOptions","Defaults","PopperUtils","g","Function","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","_this4","modalBody","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this11","initSwiper","Swiper","destroySwiper","turbolinksReferer","refreshNetKg","netKgID","ym","yandexMetrikaID","title","adsbygoogle"],"mappings":"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","file":"js/application-b39cc958b5c4c7feabe5.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 75);\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\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.3\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\";\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n return init;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n return nodeName;\n});","define(function () {\n \"use strict\";\n\n // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\";\n\n // All support tests are defined in their respective modules.\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\";\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\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n return access;\n});","define([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return 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 trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return 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 */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","define([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","define([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n return jQuery;\n});","define([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return 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).\n function expectSync(elem, type) {\n return 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\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\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 */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\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.\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n\n // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n return result && result.value;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger(\n // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n });\n\n // Abort handling of the native event\n event.stopImmediatePropagation();\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[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\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync);\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\n };\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).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\";\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return 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 (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n return camelCase;\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/rcustomProp\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, rcustomProp, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\";\n\n // [[Class]] -> type pairs\n return {};\n});","define(function () {\n \"use strict\";\n\n /**\n * Determines whether an object can have data\n */\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Reenable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","/*!\n * Bootstrap util.js v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) : typeof define === 'function' && define.amd ? define(['jquery'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n})(this, function ($) {\n 'use strict';\n\n function _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n }\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * Private TransitionEnd Helpers\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default[\"default\"](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n function transitionEndEmulator(duration) {\n var _this = this;\n var called = false;\n $__default[\"default\"](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n function setTransitionEndSupport() {\n $__default[\"default\"].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default[\"default\"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * Public Util API\n */\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n var transitionDuration = $__default[\"default\"](element).css('transition-duration');\n var transitionDelay = $__default[\"default\"](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default[\"default\"](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n if (!element.parentNode) {\n return null;\n }\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n var version = $__default[\"default\"].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n }\n };\n Util.jQueryDetection();\n setTransitionEndSupport();\n return Util;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\";\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return 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 */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\";\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n return stripAndCollapse;\n});","define([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\";\n\n // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\";\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\";\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.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\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\"\n\n// css is assumed\n], function (jQuery, isAttached) {\n \"use strict\";\n\n // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n return adjustCSS;\n});","define(function () {\n \"use strict\";\n\n // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\";\n\n // We have to close these tags to support XHTML (trac-13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\";\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (trac-12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return /^--/;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./var/rcustomProp\", \"../var/rtrimCSS\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, rcustomProp, rtrimCSS, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n if (computed) {\n // Support: IE <=9 - 11+\n // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n // it's only available as `\"cssFloat\"`. We no longer modify properties\n // sent to `.css()` apart from camelCasing, so we need to check both.\n // Normally, this would create difference in behavior: if\n // `getPropertyValue` returns an empty string, the value returned\n // by `.css()` would be `undefined`. This is usually the case for\n // disconnected elements. However, in IE even disconnected elements\n // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n ret = computed.getPropertyValue(name) || computed[name];\n if (isCustomProp && ret) {\n // Support: Firefox 105+, Chrome <=105+\n // Spec requires trimming whitespace for custom properties (gh-4926).\n // Firefox only trims leading whitespace. Chrome just collapses\n // both leading & trailing whitespace to a single space.\n //\n // Fall back to `undefined` if empty string returned.\n // This collapses a missing definition with property defined\n // and set to an empty string but there's no standard API\n // allowing us to differentiate them without a performance penalty\n // and returning `undefined` aligns with older jQuery.\n //\n // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n }\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\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\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n return xml;\n };\n return jQuery.parseXML;\n});","define([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\",\n// filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\",\n// This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\";\n\n // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n var base, parsed, scripts;\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\");\n\n // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && [];\n\n // Single tag\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n parsed = buildFragment([data], context, scripts);\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n return jQuery.merge([], parsed.childNodes);\n };\n return jQuery.parseHTML;\n});","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () {},\n removeEventListener: function () {},\n activeElement: {\n blur: function () {},\n nodeName: ''\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () {}\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () {},\n getElementsByTagName: function () {\n return [];\n }\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nextend(doc, ssrDocument);\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function () {},\n pushState: function () {},\n go: function () {},\n back: function () {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () {},\n removeEventListener: function () {},\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n }\n };\n },\n Image: function () {},\n Date: function () {},\n screen: {},\n setTimeout: function () {},\n clearTimeout: function () {},\n matchMedia: function () {\n return {};\n }\n};\nextend(win, ssrWindow);\nexport { doc as document, extend, win as window };","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n let eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n let eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once() {\n const dom = this;\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n let eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n function onceHandler() {\n for (var _len4 = arguments.length, eventArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n eventArgs[_key4] = arguments[_key4];\n }\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;else if (selector === window) return el === window;\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append() {\n let newChild;\n for (let k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add() {\n const dom = this;\n let i;\n let j;\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\nfunction scrollTo() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n let left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render() {\n let time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n let top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n let left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n }\n };\n if (a.elements.length === 0) {\n return els;\n }\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n return els;\n}\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\nconst noTrigger = 'resize scroll'.split(' ');\nfunction eventShortcut(name) {\n for (var _len10 = arguments.length, args = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {\n args[_key10 - 1] = arguments[_key10];\n }\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\nfunction click() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout() {\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup() {\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown() {\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress() {\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit() {\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change() {\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown() {\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove() {\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup() {\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter() {\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave() {\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout() {\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover() {\n for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n args[_key27] = arguments[_key27];\n }\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart() {\n for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {\n args[_key28] = arguments[_key28];\n }\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend() {\n for (var _len29 = arguments.length, args = new Array(_len29), _key29 = 0; _key29 < _len29; _key29++) {\n args[_key29] = arguments[_key29];\n }\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove() {\n for (var _len30 = arguments.length, args = new Array(_len30), _key30 = 0; _key30 < _len30; _key30++) {\n args[_key30] = arguments[_key30];\n }\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize() {\n for (var _len31 = arguments.length, args = new Array(_len31), _key31 = 0; _key31 < _len31; _key31++) {\n args[_key31] = arguments[_key31];\n }\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll() {\n for (var _len32 = arguments.length, args = new Array(_len32), _key32 = 0; _key32 < _len32; _key32++) {\n args[_key32] = arguments[_key32];\n }\n return eventShortcut.bind(this)('scroll', ...args);\n}\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };","/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document as document$1 } from 'ssr-window';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles\n};\nObject.keys(Methods).forEach(methodName => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback) {\n let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el) {\n let axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = window.getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(paramsPart => paramsPart !== '');\n length = params.length;\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n }\n};\nconst Support = function Support() {\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document$1 instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}();\nclass SwiperClass {\n constructor() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(eventName => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.f7proxy && eventHandler.f7proxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n emit() {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach(eventHandler => {\n handlers.push(eventHandler);\n });\n handlers.forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(moduleName => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n useModules() {\n let modulesParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(moduleName => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(modulePropName => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(moduleEventName => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n static installModule(module) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || `${Object.keys(Class.prototype.modules).length}_${Utils.now()}`;\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(key => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(key => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n for (var _len3 = arguments.length, params = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n params[_key3 - 1] = arguments[_key3];\n }\n module.install.apply(Class, params);\n }\n return Class;\n }\n static use(module) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach(m => Class.installModule(m));\n return Class;\n }\n for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n params[_key4 - 1] = arguments[_key4];\n }\n return Class.installModule(module, ...params);\n }\n}\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\nfunction updateSlides() {\n const swiper = this;\n const params = swiper.params;\n const $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(`margin-${swiper.isHorizontal() ? 'top' : 'left'}`, row !== 0 && params.spaceBetween && `${params.spaceBetween}px`);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });else $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });else $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`\n });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: `${spaceBetween}px`\n });else slides.filter(slidesForMargin).css({\n marginRight: `${spaceBetween}px`\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: `${spaceBetween}px`\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\nfunction updateSlidesProgress() {\n let translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0;\n const swiper = this;\n const params = swiper.params;\n const slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\nfunction updateSlidesClasses() {\n const swiper = this;\n const slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\nfunction getTranslate() {\n let axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y';\n const swiper = this;\n const params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\nfunction translateTo() {\n let translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let translateBounds = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n let internal = arguments.length > 4 ? arguments[4] : undefined;\n const swiper = this;\n const params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit('setTransition', duration, byController);\n}\nfunction transitionStart() {\n let runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let direction = arguments.length > 1 ? arguments[1] : undefined;\n const swiper = this;\n const activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionStart');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\nfunction transitionEnd() {\n let runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let direction = arguments.length > 1 ? arguments[1] : undefined;\n const swiper = this;\n const activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionEnd');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\nfunction slideTo() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let internal = arguments.length > 3 ? arguments[3] : undefined;\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n return true;\n}\nfunction slideToLoop() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let internal = arguments.length > 3 ? arguments[3] : undefined;\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n const params = swiper.params,\n animating = swiper.animating;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n const params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map(val => normalize(val));\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(snap => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n let threshold = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\nfunction slideToClickedSlide() {\n const swiper = this;\n const params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\nfunction loopCreate() {\n const swiper = this;\n const params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document$1.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\nfunction loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}\nfunction loopDestroy() {\n const swiper = this;\n const $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\nfunction unsetGrabCursor() {\n const swiper = this;\n if (Support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\nfunction appendSlide(slides) {\n const swiper = this;\n const $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\nfunction prependSlide(slides) {\n const swiper = this;\n const params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction addSlide(index, slides) {\n const swiper = this;\n const $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides\n};\nconst Device = function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad && macos && Support.touch && (screenWidth === 1024 && screenHeight === 1366 // Pro 12.9\n || screenWidth === 834 && screenHeight === 1194 // Pro 11\n || screenWidth === 834 && screenHeight === 1112 // Pro 10.5\n || screenWidth === 768 && screenHeight === 1024 // other\n )) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone)) || window.matchMedia && window.matchMedia('(display-mode: standalone)').matches;\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}();\nfunction onTouchStart(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const params = swiper.params,\n touches = swiper.touches;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (document$1.activeElement && $(document$1.activeElement).is(data.formElements) && document$1.activeElement !== $targetEl[0]) {\n document$1.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (data.isTouchEvent && document$1.activeElement) {\n if (e.target === document$1.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now()\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || Utils.now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\nfunction onResize() {\n const swiper = this;\n const params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\nfunction onScroll() {\n const swiper = this;\n const wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nfunction attachEvents() {\n const swiper = this;\n const params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document$1.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document$1.addEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\nfunction detachEvents() {\n const swiper = this;\n const params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document$1.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\nvar events = {\n attachEvents,\n detachEvents\n};\nfunction setBreakpoint() {\n const swiper = this;\n const activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(param => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n }\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n Utils.extend(swiper.params, breakpointParams);\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n }\n}\nfunction getBreakpoint(breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\nfunction addClasses() {\n const swiper = this;\n const classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el;\n const suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n suffixes.forEach(suffix => {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n}\nfunction removeClasses() {\n const swiper = this;\n const $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n}\nvar classes = {\n addClasses,\n removeClasses\n};\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\nfunction preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}\nvar images = {\n loadImage,\n preloadImages\n};\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images\n};\nconst extendedDefaults = {};\nclass Swiper extends SwiperClass {\n constructor() {\n let el;\n let params;\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n if (!params) params = {};\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n super(params);\n Object.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(moduleName => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n if (!el) {\n return undefined;\n }\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = options => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n slidesPerViewDynamic() {\n const swiper = this;\n const params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const snapGrid = swiper.snapGrid,\n params = swiper.params;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection) {\n let needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.params.direction = newDirection;\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n destroy() {\n let deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const swiper = this;\n const params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static get Class() {\n return SwiperClass;\n }\n static get $() {\n return $;\n }\n}\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device\n },\n static: {\n device: Device\n }\n};\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support\n },\n static: {\n support: Support\n }\n};\nconst Browser = function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}();\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser\n },\n static: {\n browser: Browser\n }\n};\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const swiper = this;\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach(observer => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: []\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n }\n }\n};\nconst Virtual = {\n update(force) {\n const swiper = this;\n const _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n const _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n const _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {}\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const rtl = swiper.rtlTranslate;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document$1.activeElement && document$1.activeElement.nodeName && (document$1.activeElement.nodeName.toLowerCase() === 'input' || document$1.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document$1).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document$1).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper)\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = (eventName in document$1);\n if (!isSupported) {\n const element = document$1.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n if (!isSupported && document$1.implementation && document$1.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document$1.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document$1.implementation.hasFeature('Events.wheel', '3.0');\n }\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = Mousewheel.normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: []\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n if (swiper.params.loop) return;\n const _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy() {\n const swiper = this;\n const _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper)\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(`${params.bulletActiveClass}-prev`).prev().addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(`${params.bulletActiveClass}-next`).next().addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet.prev().addClass(`${params.bulletActiveClass}-prev`).prev().addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet.next().addClass(`${params.bulletActiveClass}-next`).next().addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet.prev().addClass(`${params.bulletActiveClass}-prev`).prev().addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet.next().addClass(`${params.bulletActiveClass}-next`).next().addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0]\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n }\n};\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n const dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const scrollbar = swiper.scrollbar;\n const $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition(e) {\n const swiper = this;\n const scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n const $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n let positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n const $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n const $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n const $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n const params = swiper.params.scrollbar;\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n }\n }\n};\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const rtl = swiper.rtl;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition() {\n let duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n const swiper = this;\n const $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const gesture = zoom.gesture;\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = Support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n swiper.zoom.enabled = false;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = Support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n };\n 'onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out'.split(' ').forEach(methodName => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom\n });\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};\nconst Lazy = {\n loadInSlide(index) {\n let loadInDuplicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, sourceEl) => {\n const $source = $(sourceEl);\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n};\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n }\n }\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n },\n\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper)\n }\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n const _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n }\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``)\n }\n });\n Object.keys(a11y).forEach(methodName => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n },\n slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper)\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = document$1.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document$1.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n const hash = document$1.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper)\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n }\n};\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n }\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = Browser.isSafari || Browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl.transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl,\n slidesSizesGrid = swiper.slidesSizesGrid;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};\nconst Thumbs = {\n init() {\n const swiper = this;\n const thumbsParams = swiper.params.thumbs;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper)\n }\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};\n\n// Swiper Class\n\nconst components = [Device$1, Support$1, Browser$1, Resize, Observer$1, Virtual$1, Keyboard$1, Mousewheel$1, Navigation$1, Pagination$1, Scrollbar$1, Parallax$1, Zoom$1, Lazy$1, Controller$1, A11y, History$1, HashNavigation$1, Autoplay$1, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs$1];\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\nSwiper.use(components);\nexport default Swiper;","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start()\nrequire(\"turbolinks\").start()\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nimport 'bootstrap/js/dist/alert';\nimport 'bootstrap/js/dist/collapse';\nimport 'bootstrap/js/dist/dropdown';\nimport 'bootstrap/js/dist/modal';\n\nrequire('javascripts/preferences')\nrequire('javascripts/slider')\nrequire('javascripts/filter')\nrequire('javascripts/car_modal')\nrequire('javascripts/analytics')\nrequire('javascripts/ads')\n","define([\"./fnToString\"], function (fnToString) {\n \"use strict\";\n\n return fnToString.call(Object);\n});","define([\"./core\", \"../external/sizzle/dist/sizzle\"], function (jQuery, Sizzle) {\n \"use strict\";\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n});","/*!\n * Sizzle CSS Selector Engine v2.3.9\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: 2022-12-19\n */\n(function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ?\n // Strip the backslash prefix from a non-hex escape sequence\n nonHex :\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ?\n // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } :\n // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0;\n\n // Can't trust NodeList.length\n while (target[j++] = els[i++]) {}\n target.length = j - 1;\n }\n };\n }\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && (\n // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n // `qSA` may not throw for unrecognized parts using forgiving parsing:\n // https://drafts.csswg.org/selectors/#forgiving-selector\n // like the `:has()` pseudo-class:\n // https://drafts.csswg.org/selectors/#relational\n // `CSS.supports` is still expected to return `false` then:\n // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n if (support.cssSupportsSelector &&\n // eslint-disable-next-line no-undef\n !CSS.supports(\"selector(:is(\" + newSelector + \"))\")) {\n // Support: IE 11+\n // Throw to get to the same code path as an error directly in qSA.\n // Note: once we only support browser supporting\n // `CSS.supports('selector(...)')`, we can most likely drop\n // the `try-catch`. IE doesn't implement the API.\n throw new Error();\n }\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return 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 */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\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 */\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\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 */\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex;\n\n // Use IE sourceIndex if available on both nodes\n if (diff) {\n return diff;\n }\n\n // Check if b follows a\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n return a ? 1 : -1;\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\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 */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\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 */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n // Expose support vars for convenience\n support = 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 */\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n return !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 */\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document);\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false);\n\n // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n }\n\n // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n\n // Support: Chrome 105+, Firefox 104+, Safari 15.4+\n // Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n //\n // `:is()` uses a forgiving selector list as an argument and is widely\n // implemented, so it's a good one to test against.\n support.cssSupportsSelector = assert(function () {\n /* eslint-disable no-undef */\n\n return CSS.supports(\"selector(*)\") &&\n // Support: Firefox 78-81 only\n // In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n // fail this test as there's no selector to test against that.\n // `CSS.supports` uses unforgiving parsing\n document.querySelectorAll(\":is(:jqfake)\") &&\n // `*` is needed as Safari & newer Chrome implemented something in between\n // for `:has()` - it throws in `qSA` if it only contains an unsupported\n // argument but multiple ones, one of which is supported, are fine.\n // We want to play safe in case `:is()` gets the same treatment.\n !CSS.supports(\"selector(:is(*,:jqfake))\");\n\n /* eslint-enable */\n });\n\n /* Attributes\n ---------------------------------------------------------------------- */\n\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n\n // Check if getElementsByTagName(\"*\") returns only elements\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n });\n\n // Support: IE<9\n support.getElementsByClassName = rnative.test(document.getElementsByClassName);\n\n // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag);\n\n // Filter out possible comments\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n return tmp;\n }\n return results;\n };\n\n // Class\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n rbuggyMatches = [];\n\n // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n rbuggyQSA = [];\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n docElem.appendChild(el).innerHTML = \"\" + \"\";\n\n // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\";\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE8\n // Enforce case-sensitivity of name attribute\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n }\n\n // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n docElem.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\");\n\n // This should fail with an exception\n // Gecko does not error, returns false instead\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n if (!support.cssSupportsSelector) {\n // Support: Chrome 105+, Safari 15.4+\n // `:has()` uses a forgiving selector list as an argument so our regular\n // `try-catch` mechanism fails to catch `:has()` with arguments not supported\n // natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n // we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n // outside that we mark `:has` as buggy.\n rbuggyQSA.push(\":has\");\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n\n /* Contains\n ---------------------------------------------------------------------- */\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n\n // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n // Support: IE <9 only\n // IE doesn't have `contains` on `document` so we need to check for\n // `documentElement` presence.\n // We need to fall back to `a` when `documentElement` is missing\n // as `ownerDocument` of elements within `